Метод контракта вызова Web3j без учетных данных - PullRequest
0 голосов
/ 28 ноября 2018

Уже реализовано одно и то же решение в javascript (web3js) и c # (nethereum), и оба они позволяют загружать смарт-контракт с abi и развернутым адресом контракта.Сейчас я работаю в Java-среде (web3j) и для загрузки умного контракта мне нужно предоставить учетные данные.Я просто хочу вызвать некоторые статические методы из контракта, которые не требуют учетных данных.Есть ли обходной путь для загрузки контракта без него?Таким образом, я не могу показать данные контракта пользователю без предоставления учетных данных.

        MyContract contract = MyContract.load(
        "0x32b0138BD1b9527E95f141319ECF9B2765e06C00,
        web3,
        credentials,
        new BigInteger("22000000000"),
        new BigInteger("510000"));

1 Ответ

0 голосов
/ 29 ноября 2018

Поскольку операции, которые вы хотите выполнить, не требуют выполнения Eth, не имеет значения, какие учетные данные вы используете для этого.Таким образом, вы можете просто создать новую пару ключей и использовать это.

Credentials dummyCredentials = Credentials.create(Keys.createEcKeyPair());

MyContract contract = MyContract.load(
    "0x32b0138BD1b9527E95f141319ECF9B2765e06C00",
    web3,
    dummyCredentials,
    new BigInteger("22000000000"),
    new BigInteger("510000")
);
...