没有凭据的Web3j调用约定方法



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

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

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

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

最新更新