智能合约相关 API


submitucontractdeploytx

用于部署智能合约

被部署的智能合约文件必须在节点运行环境的/tmp/lua/路径下

Parameters

address 发布智能合约者的地址

filepath 发布的智能合约文件路径+文件名

fee 发布智能合约所需费用 推荐最少1.1WICC

Returns

hash 发布合约交易的哈希

Example

// Request
curl -u Waykichain:admin -d '{"jsonrpc": "1.0", "id":"curltest", "method": "submitucontractdeploytx", "params": ["wLKf2NqwtHk3BfzK5wMDfbKYN1SC3weyR4", "/tmp/lua/test.lua", "WICC:110000000:sawi"] }' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result":
    {
        "hash":"641794c5db4af756660197878dce462b887224a2efad8387d915bbc2acb5aa9d"
    },
    "error":null,
    "id":"curltext"
}

getcontractregid

获取智能合约的regid

Parameters

txhash 发布合约时的交易哈希

Returns

regid 该智能合约的regid

regid_hex 智能合约的regid转成hex

Example

// Request
curl -u Waykichain:admin -d '{"jsonrpc":"2.0","id":"curltext","method":"getcontractregid","params":["641794c5db4af756660197878dce462b887224a2efad8387d915bbc2acb5aa9d"]}' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result": {
        "regid": "48493-2",
        "regid_hex": "6dbd00000200"
    },
    "error": null,
    "id": "curltext"
}

submitucontractcalltx

创建调用智能合约交易

Parameters

sender_addr 合约调用者地址/regid

contract_regid 智能合约的regid

arguments 调用合约的参数

amount symbol:amount:unit,向智能合约发送币种数量, 支持但不仅限于 WICC WUSD WGRT,

fee, symbol:amount:unit,调用合约交易手续费,支持但不仅限于 WICC WUSD WGRT

Returns

hash 调用合约的交易哈希

Example

// Request
curl -u Waykichain:admin -d '{"jsonrpc": "1.0", "id":"curltest", "method": "submitucontractcalltx", "params": ["wLKf2NqwtHk3BfzK5wMDfbKYN1SC3weyR4", "35211-2", "f005", "WICC:0:sawi", "WICC:1000000:sawi"] }' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result": {
        "txid": "3fc3328fd7dac89df16d338d0834315dee379c943936e4de9199103eb6172bf6"
    },
    "error": null,
    "id": "curltext"
}

getcontractaccountinfo

获取用户在智能合约中的相关信息

Parameters

regid 智能合约的regid

address 查询的用户地址/regid

Returns

account_uid 查询的用户地址转成16进制字符串

free_value 智能合约的自由可操作的代币的数量

frozen_funds 智能合约的冻结的币的数量和解冻时间的数据列表

Example

// Request
curl -u Waykichain:admin -d '{"jsonrpc":"2.0","id":"curltext","method":"getcontractaccountinfo","params":["48493-2","wMHkGQKHf4CXdZRRoez8b9YgYnPzGxbs3j"]}' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result": {
        "account_uid": "774d486b47514b4866344358645a52526f657a3862395967596e507a47786273336a",
        "free_value": 0,
        "frozen_funds": []
    },
    "error": null,
    "id": "curltext"
}

getcontractdata

获取智能合约相关原生数据信息

Parameters

contract_regid 智能合约的regid

key 智能合约数据的key值

hexadecimal_format key和value是否为hex格式

`true`: hex格式 
`false`  不是hex格式

Returns

contract_regid 智能合约的regid

key 智能合约数据的key值

value 智能合约数据的value值

Example

curl -u Waykichain:admin -d '{"jsonrpc":"2.0","id":"curltext","method":"getcontractdata","params":["50552-2","owner",false]}' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result": {
        "contract_regid": "50552-2",
        "key": "owner",
        "value": "wMHkGQKHf4CXdZRRoez8b9YgYnPzGxbs3j"
    },
    "error": null,
    "id": "curltext"
}

getcontractinfo

获取智能合约信息

Parameters

contract_regid 智能合约 regid

Returns

contract_regid 智能合约 regid

vm_type 合约运行的虚拟机类型

upgradable

code 智能合约代码(hex)

memo 发布合约时的备注信息

abi abi信息

Example

// Request
curl -u Waykichain:admin -d '{"jsonrpc":"2.0","id":"curltext","method":"getcontractinfo","params":["49100-2"]}' -H 'content-type:application/json;' http://127.0.0.1:6967

// Response
{
    "result": {
        "contract_regid": "49100-2",
        "vm_type": 1,
        "upgradable": true,
        "code": "6d796c6962203d207265717569726520226d796c6962220a0a4d61696e203d2066756e6374696f6e28290a0a656e640a0a4d61696e28290a0a",
        "memo": "",
        "abi": ""
    },
    "error": null,
    "id": "curltext"
}