0

已经在 javascript(web3js) 和 c#(nethereum) 中实现了相同的解决方案,它们都允许使用 abi 和部署的合约地址加载智能合约。现在我在 java 环境(web3j)中工作并加载我需要提供凭据的智能合约。我只想从合同中调用一些静态方法,不需要凭据。没有它是否有任何解决方法来加载合同?这样我就无法在不提供凭据的情况下向用户显示合同数据。

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

1 回答 1

3

由于您想要执行的操作不需要任何 Eth 来执行,因此您使用什么凭据来执行此操作并不重要。所以你可以生成一个新的密钥对,并使用它。

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

MyContract contract = MyContract.load(
    "0x32b0138BD1b9527E95f141319ECF9B2765e06C00",
    web3,
    dummyCredentials,
    new BigInteger("22000000000"),
    new BigInteger("510000")
);
于 2018-11-29T15:06:06.230 回答