已经在javascript(web3js)和c#(nethereum)中实现了相同的解决方案,并且它们都允许使用abi和已部署的合同地址加载智能合同。现在,我正在Java环境(web3j)中工作,并且要加载智能合约,我需要提供凭据。 我只想从合同中调用一些静态方法,而这些方法不需要凭据。如果没有合同,是否有任何解决方法来加载合同?这样,如果不提供凭据,我将无法向用户显示合同数据。
MyContract contract = MyContract.load(
"0x32b0138BD1b9527E95f141319ECF9B2765e06C00,
web3,
credentials,
new BigInteger("22000000000"),
new BigInteger("510000"));
答案 0 :(得分:1)
由于您要执行的操作不需要任何Eth来执行,因此使用什么凭据都无关紧要。这样您就可以生成一个新的密钥对,并使用它。
Credentials dummyCredentials = Credentials.create(Keys.createEcKeyPair());
MyContract contract = MyContract.load(
"0x32b0138BD1b9527E95f141319ECF9B2765e06C00",
web3,
dummyCredentials,
new BigInteger("22000000000"),
new BigInteger("510000")
);