主页 > imtoken钱包2.0版本下载 > 【PlatONE 联盟链使用指南】链交互工具 Platonecli 合约操作指南
【PlatONE 联盟链使用指南】链交互工具 Platonecli 合约操作指南
imtoken钱包2.0版本下载 2023-02-04 06:18:31
PlatONE是万向区块链与Matrix Element联合打造的新一代隐私计算联盟链平台。它支持企业级应用程序。 2019年9月正式开源并投入实际产品使用。目前,PlatONE的单链TPS已超过50000,获得了工信部的认可区块链合约地址查询,并通过了中国电子标准化研究院的功能认证和测试认证。
我们将通过一系列科普文章带您进入 PlatONE,从入门到精通。上周,我们通过链交互工具 platonecli 介绍了合约命名系统的使用。今天区块链合约地址查询,我们将学习如何通过 platonecil 进行合约的部署、调用、查询等相关操作。
合约调用合约执行
描述:调用并执行合约中的方法。支持wasm虚拟机合约和evm虚拟机合约方法调用。你仍然可以通过这个命令调用系统合约
参数:
: 合约账户地址或合约cns注册名称
: 被执行合约的具体方法,
--abi : 合约abi文件路径。
--param value: 合约方法的入参,当有多个入参时,一个--param对应一个参数。格式:--param --param
--vm value: 选择进行执行的合约(目前支持evm合约,wasm合约,默认为wasm合约)
操作:
# 通过合约地址调用合约
## wasm合约(默认)
./platonecli contract execute "0x2ee8d0545ebd20f9a992ff54cb0f21a153539206" "setName" --param wxbc --abi "../../../cmd/platonecli/test/test_case/wasm/contracta.cpp.abi.json" --keyfile ../conf/keyfile.json
## evm合约
./platonecli contract execute ... ... --param --vm evm --keyfile ../conf/keyfile.json
# 通过合约名称调用合约(cns服务)
./platonecli contract execute "test" "setName" --param wxbc --abi "../../../cmd/platonecli/test/test_case/wasm/contracta.cpp.abi.json" --keyfile ../conf/keyfile.json
输出结果:
# 同步查询
result:Operation Succeeded
合约方法查询合约方法
说明:根据合约的cns注册名称或地址查询合约方法。
参数:
--abi : 合约abi文件路径
操作:
./platonecli contract methods --abi "../../../cmd/platonecli/test/test_case/wasm/contracta.cpp.abi.json"
输出结果:
# 查询结果
-------------------contract methods list------------------------
function: atransfer(from string,to string,asset int32)
function: atransfer1(from string,to string,asset int32) int32
function: atransfer2(from string,to string,asset int32) string
function: adcall(from string,to string,asset int32)
function: adcallInt64(from string,to string,asset int32) int32
function: adcallString(from string,to string,asset int32 string
合约部署合约部署
描述:合约部署者将写好的合约部署到链上。支持wasm虚拟机合约和evm虚拟机合约部署。
参数:
: 合约编译后得到的二进制代码文件路径
--abi : 合约abi文件路径,部署wasm合约必须提供,部署evm合约不需要提供
--vm value: 选择进行部署的合约(目前支持evm合约,wasm合约,默认为wasm合约)
操作:
## wasm合约
./platonecli contract deploy "../../../cmd/platonecli/test/test_case/wasm/contracta.wasm" --abi "../../../cmd/platonecli/test/test_case/wasm/contracta.cpp.abi.json" --keyfile ../conf/keyfile.json
## evm合约
./platonecli contract deploy ../../../cmd/platonecli/test/test_case/sol/storage_byzantium_065.bin --abi ../../../cmd/platonecli/test/test_case/sol/storage_byzantium_065.abi --keyfile ../conf/keyfile.json -vm evm
输出结果:
{
"status": "Operation Succeeded",
"contractAddress": "0x388d05bad3aab0fdd4a5256d4732c2129037cf19",
"blockNumber": 168,
"GasUsed": 1451477,
"From": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18",
"To": "",
"TxHash": ""
}
收据查询合同收据
说明:根据交易的哈希值查询交易回执。
参数:
: 交易的哈希值
操作:
./platonecli contract receipt 0x86d35fdd3bd67969ba71acba50076551ba8de31230b3bbfa8a536177c1610c23
输出结果:
{
"blockHash": "0x308cd14101c4687b8966433f155e7272b8dbe6baa761c9b2d9e2aee225f39bad",
"blockNumber": "0xa8",
"contractAddress": "0x388d05bad3aab0fdd4a5256d4732c2129037cf19",
"cumulativeGasUsed": "0x1625d5",
"from": "0x8d4d2ed9ca6c6279bab46be1624cf7adbab89e18",
"gasUsed": "0x1625d5",
"root": "",
"to": "",
"transactionHash": "0x86d35fdd3bd67969ba71acba50076551ba8de31230b3bbfa8a536177c1610c23",
"transactionIndex": "0x0",
"logs": [],
"status": "0x1"
}