【发布时间】:2022-11-04 19:33:25
【问题描述】:
我在 Android Studio 中使用web3j 与智能合约进行交互。
在我的 SmartContract 中,我有 2 个函数 getName() 和 getAge(),我在构造函数中设置年龄和名称,如下所示:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.5.0 <0.9.0;
contract Identify {
string name;
uint age;
constructor() public {
name = "Shoaib Khalid";
age = 22;
}
function getName() view public returns(string memory){
return name;
}
function getAge() view public returns(uint){
return age;
}
}
但我无法读取这两个函数返回的值。正确部署智能合约后,以下是我尝试读取 getName() 函数返回的值的方法。
val identityContract = Identity_sol_Identify.load(
deployedContractAddress,
web3j,
getCredentialsFromPrivateKey(),
DefaultGasProvider.GAS_PRICE,
DefaultGasProvider.GAS_LIMIT
)
Log.d(TAG, "counter Result: ${identityContract.name.sendAsync().get()}")
我没有得到我在构造函数中设置的值Shoaib Khalid,而是得到一个TranscriptReciept 对象,输出屏幕截图附在下面。
所以我想知道你能用web3j读取智能合约中getName()函数返回的确切值吗?
【问题讨论】:
标签: ethereum smartcontracts web3-java