wallet-cli contract call¶
只读合约调用。
用法¶
wallet-cli contract call --contract <address> --method <sig> [--params <json>] [options]
说明¶
在 TRON 或 EVM 上以 constant(只读)方式调用合约方法:不签名、不广播、不消耗任何费用,也不需要账户。
函数签名和参数类型都由你显式给出——不会去获取或参考任何 ABI。参数是一个 JSON 数组,元素为与方法签名逐一对应的 {type, value} 对象。
选项¶
| 选项 | 说明 |
|---|---|
--contract <string> |
必填。 合约地址——TRON 为 base58,EVM 为 0x |
--method <string> |
必填。 函数签名,例如 balanceOf(address) |
--params <string> |
ABI 参数的 JSON 数组,元素形如 {type,value};省略表示不传参数 |
此外还有全局选项。
示例¶
wallet-cli contract call --contract TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf --method "balanceOf(address)" --params '[{"type":"address","value":"TMSgJxtPw29AFEHMXsjGo4kWV7UwbCToHJ"}]' --network tron:3448148188
Method balanceOf
Result 0000000000000000000000000000000000000000000000000000000000000000 (raw)
wallet-cli contract call --contract TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf --method "balanceOf(address)" --params '[{"type":"address","value":"TMSgJxtPw29AFEHMXsjGo4kWV7UwbCToHJ"}]' --network tron:3448148188 -o json
{"schema":"wallet-cli.result.v1","success":true,"command":"contract.call","data":{"contract":"TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf","method":"balanceOf(address)","result":["0000000000000000000000000000000000000000000000000000000000000000"]},"meta":{"durationMs":15,"warnings":[]},"chain":{"family":"tron","network":"tron:3448148188","chainId":"3448148188"}}
同一个调用在 EVM 网络上是这样。注意 result 的形状:TRON 原样透传节点的 constant_result 数组,而 EVM 节点返回的是单个 0x 字符串:
wallet-cli contract call --contract 0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238 --method "balanceOf(address)" --params '[{"type":"address","value":"0x541B10b92b45C08513e67bb8209f035D810212B6"}]' --network eip155:11155111
Method balanceOf
Result 0x0000000000000000000000000000000000000000000000000000000000000000 (raw)
{"schema":"wallet-cli.result.v1","success":true,"command":"contract.call","data":{"contract":"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238","method":"balanceOf(address)","result":"0x0000000000000000000000000000000000000000000000000000000000000000"},"meta":{"durationMs":236,"warnings":[]},"chain":{"family":"evm","network":"eip155:11155111","chainId":"11155111"}}
输出¶
| 字段 | 类型 | 含义 |
|---|---|---|
contract |
string | 被调用的合约地址 |
method |
string | 实际调用的方法签名 |
result |
string[] | string | ABI 编码的原始返回数据。TRON 上是节点 constant_result 数组的原样透传——CLI 不做任何切分或重新分组;EVM 上则是单个 0x 字符串。需按方法的返回类型自行解码 |
退出码¶
0 成功 · 1 执行失败(rpc_error、合约 revert) · 2 用法错误(invalid_value——方法签名或参数 JSON 有误)。
另请参见¶
contract send · contract info · token balance