主页 > 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"
}