【发布时间】:2021-12-28 20:36:22
【问题描述】:
如何从 debot 调用另一个合约的本地运行(不发送消息)功能?例如,用于获取公共变量。
【问题讨论】:
如何从 debot 调用另一个合约的本地运行(不发送消息)功能?例如,用于获取公共变量。
【问题讨论】:
这对我很有用。
在debot中:
interface IOther {
function funcName()
external returns(uint);
}
function runLocal() public{
optional(uint256) pubkey = 0;
address remoteContract = address.makeAddrStd(0, 0xceaa3bc6b00cf2b1e750dae2dd94d246a126a989009a3fb3bb73bea1a48b3b);
TvmCell message = tvm.buildExtMsg({
abiVer: 2,
callbackId: tvm.functionId(onSuccessFuncName),
onErrorId: tvm.functionId(onErrorFuncName),
time: uint64(now),
dest: remoteContract,
call: {
IOther.funcName
}
});
tvm.sendrawmsg(message, 1);
}
function onSuccessFuncName(uint response) public{
/* working with response from remote contract */
}
function onErrorFuncName() public{
/* catch error */
}
【讨论】: