跳到主要内容

1. 使用说明

1.1. 介绍

读者对象:本章节主要描述使用C++进行布比合约编写的方法,主要面向于使用C++进行布比的合约开发的开发者。

1.2. 示例

下面是一个简单的示例:

#include <wasmio/wasmio.hpp>
#include <wasmio/system.hpp>

using namespace wasmio;

class [[wasmio::contract]] store : public contract {
public:
using contract::contract;

[[wasmio::action]]
void save(const std::string &test_key, const std::string &test_value) {
chain::store(test_key, test_value);
}
};

1.3. 编译

编译准备

  1. docker环境;

  2. 编译工具docker镜像文件bubichain-wasm-cdt_run1.0.tar.gz

  3. 导入镜像文件到docker中:

    docker load < bubichain-wasm-cdt_run1.0.tar.gz

编译

  1. 把上述示例合约保存为store.cpp文件(调用的类名与文件名需要保持一致,保存其他文件名需要同步修改类名);

  2. 启动一次性容器编译当前目录下的合约源码:

    docker run --rm -v $(pwd):/project bubichain-wasm-cdt:run1.0 bash -c "wasmio-cpp store.cpp"
  3. 编译失败会输出失败信息,编译成功则会生成store.wasm文件与store.abi文件;

1.4. 部署

环境准备

  1. curl命令行工具或其他能发送http请求的工具,用于http请求;
  2. 一个节点的http接口访问权限,节点需要开启C++智能合约功能,这里以127.0.0.1:19333为例,实际部署操作时请替换为实际IP端口;
  3. 一个已经激活的区块链账号私钥,这里以privbwQsGDqGRYuvkFAEQdS8KWxVTA3ynzMxpwLHTtFsy1eySSPTRCmt为例。

准备工作

查询账号交易序号,使用查询命令:

curl http://127.0.0.1:19333/getAccount?address=adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P

结果应该返回error_code为0,然后我们在result字段下查询nonce字段信息,如果在返回结果中没有nonce字段,则代表账号从未发送过交易,表示nonce为0;返回结果示例如下:

{
"error_code" : 0,
"result" : {
"address" : "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
"assets" : null,
"assets_hash" : "ad67d57ae19de8068dbcd47282146bd553fe9f684c57c8c114453863ee41abc3",
"balance" : 983339835000,
"metadatas" : null,
"metadatas_hash" : "ad67d57ae19de8068dbcd47282146bd553fe9f684c57c8c114453863ee41abc3",
"nonce" : 17,
"priv" : {
"master_weight" : 1,
"thresholds" : {
"tx_threshold" : 1
}
}
}
}

部署流程

  1. 准备交易内容模板,将下面的交易内容保存到tx-deploy-cpp.json文件,注意:需要把nonce参数+1,表示账号的下一笔交易;

    {
    "items": [
    {
    "transaction_json": {
    "source_address": "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
    "nonce": 18,
    "fee_limit":1500000000,
    "gas_price":1000,
    "operations": [{
    "type": 1,
    "create_account":{
    "contract":{
    "owner": "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
    "type": 2,
    "payload": "{payload}"
    },
    "init_balance": 10000000,
    "init_input" : "",
    "priv":{
    "master_weight": 0,
    "thresholds": {
    "tx_threshold": 1
    }
    }
    }
    }]
    },
    "private_keys": ["privbwQsGDqGRYuvkFAEQdS8KWxVTA3ynzMxpwLHTtFsy1eySSPTRCmt"]
    }
    ]
    }
  2. 整理交易提交内容,把编译好的store.wasm合约文件与上述tx-deploy-cpp.json文件放在同一目录下,使用下面bash命令生成交易提交内容tx-deploy-cpp-send.json

    base64 store.wasm | tr -d '\n' | sed "$(awk '{print "s|{payload}|" $0 "|g"}')" tx-deploy-cpp.json > tx-deploy-cpp-send.json

    上述命令先将store.wasm文件进行base64转码,并替换模板文件中的{payload}内容,然后另存为tx-deploy-cpp-send.json文件,tx-deploy-cpp-send.json内容示例如下:

    {
    "items": [
    {
    "transaction_json": {
    "source_address": "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
    "nonce": 18,
    "fee_limit":1500000000,
    "gas_price":1000,
    "operations": [{
    "type": 1,
    "create_account":{
    "contract":{
    "owner": "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
    "type": 3,
    "payload": "AGFzbQEAAAAB3gEjYAAAYAN/f38Bf2ADf35/AX5gBH9/f38AYAABf2ACf38AYAJ/fwF/YAR/f39/AX9gAn99AGAFf35+fn4AYAJ/fABgBH5+fn4Bf2ACfn4BfGACfn4BfWACf38BfmAAAX5gAn9+AGADfn5+AGABfwF/YAF/AGAEf39/fgF+YAN/f38BfmACfH8BfGACfn4Bf2ABfAF8YAR/fn5/AGACf38BfWACf38BfGADf39/AGACfn8Bf2AFf39/f38Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwBgAX4AYAJ+fgACsgQdA2VudhBhY3Rpb25fZGF0YV9zaXplAAQDZW52DXdhc21pb19hc3NlcnQABQNlbnYGbWVtc2V0AAEDZW52B21lbW1vdmUAAQNlbnYQcmVhZF9hY3Rpb25fZGF0YQAGA2VudgtjaGFpbl9zdG9yZQAHA2VudgVhYm9ydAAAA2VudgZtZW1jcHkAAQNlbnYNX19leHRlbmRzZnRmMgAIA2VudghfX211bHRmMwAJA2VudgtfX2Zsb2F0c2l0ZgAFA2VudghfX2FkZHRmMwAJA2Vudg1fX2V4dGVuZGRmdGYyAAoDZW52B19fZ2V0ZjIACwNlbnYNX19mbG9hdHVuc2l0ZgAFA2VudghfX2RpdnRmMwAJA2VudgdfX2VxdGYyAAsDZW52B19fbGV0ZjIACwNlbnYHX19uZXRmMgALA2VudghfX3N1YnRmMwAJA2VudgxfX3RydW5jdGZkZjIADANlbnYMX190cnVuY3Rmc2YyAA0DZW52CHByaW50c19sAAUDZW52IHNldF9ibG9ja2NoYWluX3BhcmFtZXRlcnNfcGFja2VkAAUDZW52IGdldF9ibG9ja2NoYWluX3BhcmFtZXRlcnNfcGFja2VkAAYDZW52FnNldF9wcm9wb3NlZF9wcm9kdWNlcnMADgNlbnYMY3VycmVudF90aW1lAA8DZW52FGdldF9hY3RpdmVfcHJvZHVjZXJzAAYDZW52Endhc21pb19hc3NlcnRfY29kZQAQA2ZlABESBhMABAYBEhMSAQEBAQESAQETEwQSEwASEhASFBUVAQEGEhUBFQEBFgkXCRgZAw4aGxwaARscBgYdAx4DHwMHAQYSBgEGAQYGEgYBBgYSAQEeHAcBBxMGIAUFEhMhEyIG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IAAgBEEBajYCBCAELQAAIQQMAQsgABA6IQQLIAggCXwhByABIARB8cAAai0AACIFTQ0CIAcgC1gNAAwCCwsgAUEXbEEFdkEHcUGpwABqLAAAIQxCACEHAkAgASAEQfHAAGotAAAiBU0NAEEAIQIDQCAFIAIgDHRyIQICQAJAIAAoAgQiBCAAKAJoTw0AIAAgBEEBajYCBCAELQAAIQQMAQsgABA6IQQLIARB8cAAai0AACEFAkAgAkH///8/Sw0AIAEgBUsNAQsLIAKtIQcLIAEgBU0NAEJ/IAytIgmIIgogB1QNAANAIAcgCYYhByAFrUL/AYMhCAJAAkAgACgCBCIEIAAoAmhPDQAgACAEQQFqNgIEIAQtAAAhBAwBCyAAEDohBAsgByAIhCEHIAEgBEHxwABqLQAAIgVNDQEgByAKWA0ACwsgASAEQfHAAGotAABNDQADQAJAAkAgACgCBCIEIAAoAmhPDQAgACAEQQFqNgIEIAQtAAAhBAwBCyAAEDohBAsgASAEQfHAAGotAABLDQALECNBIjYCACAGQQAgA0IBg1AbIQYgAyEHCwJAIAAoAmhFDQAgACAAKAIEQX9qNgIECwJAIAcgA1QNAAJAIAOnQQFxDQAgBg0AECNBIjYCACADQn98DwsgByADWA0AECNBIjYCACADDwsgByAGrCIIhSAIfSEHCyAHC38CAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUJ/EDshBAJAIAFFDQAgASAAIAMoAgQgAygCeGogAygCCGtqNgIACyADQZABaiQAIAQLiAECAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUKAgICAgICAgIB/EDshBAJAIAFFDQAgASAAIAMoAgQgAygCeGogAygCCGtqNgIACyADQZABaiQAIAQLhAECAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUL/////DxA7IQQCQCABRQ0AIAEgACADKAIEIAMoAnhqIAMoAghrajYCAAsgA0GQAWokACAEpwuEAQIBfwF+IwBBkAFrIgMkACADIAA2AiwgAyAANgIEIANBADYCACADQX82AkwgA0F/IABB/////wdqIABBAEgbNgIIIANCABA5IAMgAkEBQoCAgIAIEDshBAJAIAFFDQAgASAAIAMoAgQgAygCeGogAygCCGtqNgIACyADQZABaiQAIASnC0EBAX8CQCABRQ0AIABBfGohAAJAA0AgAEEEaiIAKAIAIgJFDQEgAiABRw0ACwsgAEEAIAIbDwsgACAAEC5BAnRqCxcAAkAgAA0AQQAPC0GAwwAgABBAQQBHC7ABAgJ/AX4jAEHQAWsiAyQAIANBAEGQARACIgRBADYCCCAEQgA3AwAgBEF/NgJMIARBPDYCMCAEIARBkAFqQQRyNgIsIARBATYCICAAQXxqIQMDQCADQQRqIgMoAgAQQQ0ACyAEIAM2AlQgBEIAEDkgBCACQQFCfxA7IQUCQCABRQ0AIAEgAyAEKAIEIAQoAghrIAQoAnhqIgJBAnRqIAAgAhs2AgALIARB0AFqJAAgBQu2AQEFfyAAKAJUIgNBtMAAIAMoAgAbIQRBACEFQQAhAwJAIAAoAjBFDQBBACEDIAQhBgNAIAYoAgAiB0UNASAAKAIsIANqIAdBwAAgB0GAAUkbOgAAIAZBBGohBiADQQFqIgMgACgCMEkNAAsLIAAgACgCLCIGNgIEIAAgBCADQQJ0ajYCVCAAIAYgA2o2AggCQCACRQ0AIANFDQBBASEFIAAgBkEBajYCBCABIAYtAAA6AAALIAULuQECAn8BfiMAQdABayIDJAAgA0EAQZABEAIiBEEANgIIIARCADcDACAEQX82AkwgBEE8NgIwIAQgBEGQAWpBBHI2AiwgBEEBNgIgIABBfGohAwNAIANBBGoiAygCABBBDQALIAQgAzYCVCAEQgAQOSAEIAJBAUKAgICAgICAgIB/EDshBQJAIAFFDQAgASADIAQoAgQgBCgCCGsgBCgCeGoiAkECdGogACACGzYCAAsgBEHQAWokACAFC7UBAgJ/AX4jAEHQAWsiAyQAIANBAEGQARACIgRBADYCCCAEQgA3AwAgBEF/NgJMIARBPDYCMCAEIARBkAFqQQRyNgIsIARBATYCICAAQXxqIQMDQCADQQRqIgMoAgAQQQ0ACyAEIAM2AlQgBEIAEDkgBCACQQFC/////w8QOyEFAkAgAUUNACABIAMgBCgCBCAEKAIIayAEKAJ4aiICQQJ0aiAAIAIbNgIACyAEQdABaiQAIAWnC7UBAgJ/AX4jAEHQAWsiAyQAIANBAEGQARACIgRBADYCCCAEQgA3AwAgBEF/NgJMIARBPDYCMCAEIARBkAFqQQRyNgIsIARBATYCICAAQXxqIQMDQCADQQRqIgMoAgAQQQ0ACyAEIAM2AlQgBEIAEDkgBCACQQFCgICAgAgQOyEFAkAgAUUNACABIAMgBCgCBCAEKAIIayAEKAJ4aiICQQJ0aiAAIAIbNgIACyAEQdABaiQAIAWnC7QBAQF/AkACQCABQYAISA0AIABEAAAAAAAA4H+iIQACQCABQYF4aiICQYAITg0AIAIhAQwCCyAARAAAAAAAAOB/oiEAIAFB/RcgAUH9F0gbQYJwaiEBDAELIAFBgXhKDQAgAEQAAAAAAABgA6IhAAJAIAFByQdqIgJBgXhMDQAgAiEBDAELIABEAAAAAAAAYAOiIQAgAUHwaCABQfBoShtBkg9qIQELIAAgAUH/B2qtQjSGv6ILNQAgACABNwMAIAAgBEIwiKdBgIACcSACQjCIp0H//wFxcq1CMIYgAkL///////8/g4Q3AwgLSwIBfgJ/IAFC////////P4MhAgJAAkAgAUIwiKdB//8BcSIDQf//AUYNAEEEIQQgAw0BQQJBAyACIACEUBsPCyACIACEUCEECyAEC+QGBAR/AX4BfwN+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEBBFDQAgAyAEEEkhBiACQjCIpyIHQf//AXEiCEH//wFGDQAgBg0BCyAFQRBqIAEgAiADIAQQCSAFIAUpAxAiBCAFQRBqQQhqKQMAIgMgBCADEA8gBUEIaikDACECIAUpAwAhBAwBCwJAIAEgCK1CMIYgAkL///////8/g4QiCSADIARCMIinQf//AXEiCq1CMIYgBEL///////8/g4QiCxARQQBKDQACQCABIAkgAyALEBJFDQAgASEEDAILIAVB8ABqIAEgAkIAQgAQCSAFQfgAaikDACECIAUpA3AhBAwBCwJAAkAgCEUNACABIQQMAQsgBUHgAGogASAJQgBCgICAgICAwLvAABAJIAVB6ABqKQMAIglCMIinQYh/aiEIIAUpA2AhBAsCQCAKDQAgBUHQAGogAyALQgBCgICAgICAwLvAABAJIAVB2ABqKQMAIgtCMIinQYh/aiEKIAUpA1AhAwsgCUL///////8/g0KAgICAgIDAAIQiCSALQv///////z+DQoCAgICAgMAAhCIMfSAEIANUrX0iDUJ/VSEGIAQgA30hCwJAIAggCkwNAANAAkACQCAGQQFxRQ0AAkAgDSALhEIAUg0AIAVBIGogASACQgBCABAJIAVBKGopAwAhAiAFKQMgIQQMBQsgC0I/iCEJIA1CAYYhDQwBCyAEQj+IIQ0gCUIBhiEJIAQhCwsgDSAJhCIJIAx9IAtCAYYiBCADVK19Ig1Cf1UhBiAEIAN9IQsgCEF/aiIIIApKDQALCwJAIAZFDQAgDSEJIAshBCANIAuEQgBSDQAgBUEwaiABIAJCAEIAEAkgBUE4aikDACECIAUpAzAhBAwBCwJAIAlC////////P1YNAANAIARCP4ghAyAIQX9qIQggBEIBhiEEIAMgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAdBgIACcSEGAkAgCEEASg0AIAVBwABqIAQgCUL///////8/gyAIQfgAaiAGcq1CMIaEQgBCgICAgICAwMM/EAkgBUHIAGopAwAhAiAFKQNAIQQMAQsgCUL///////8/gyAIIAZyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQACxIAIAC9Qv///////////wCDvwvmAgECfyMAQdAAayIEJAACQAJAIANBgIABSA0AIARBIGogASACQgBCgICAgICAgP//ABAJIARBIGpBCGopAwAhAiAEKQMgIQECQCADQYGAf2oiBUGAgAFODQAgBSEDDAILIARBEGogASACQgBCgICAgICAgP//ABAJIANB/f8CIANB/f8CSBtBgoB+aiEDIARBEGpBCGopAwAhAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEHAAGogASACQgBCgICAgICAgDkQCSAEQcAAakEIaikDACECIAQpA0AhAQJAIANBjf8AaiIFQYGAf0wNACAFIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAJIANB6IF9IANB6IF9ShtBmv4BaiEDIARBMGpBCGopAwAhAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAJIAAgBEEI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DAULIAxBAEchDCAJQQBIDQELIAcoAgBFDQAgCCAIKAIAQX9qNgIACyAMDQIQI0EWNgIAC0IAIQUgAUIAEDlCACEGDAILIARB4AFqIA0QCiAEQdABaiAEKQPgASAEQeABakEIaikDAEIAQoCAgICAgMAAEAkgBEHAAWogBCkD0AEgBEHQAWpBCGopAwBCAEKAgICAgIDAABAJECNBIjYCACAEQcABakEIaikDACEGIAQpA8ABIQUMBAsCQCAOKAIAIgkNACAEQcADaiANt0QAAAAAAAAAAKIQDCAEQcgDaikDACEGIAQpA8ADIQUMAQsCQCAGQglVDQAgBSAGUg0AAkAgAkF/akECSQ0AIAkgC3YNAQsgBEHgA2ogCRAOIARB8ANqIA0QCiAEQdADaiAEKQPwAyAEQfADakEIaikDACAEKQPgAyAEQeADakEIaikDABAJIARB0ANqQQhqKQMAIQYgBCkD0AMhBQwBCwJAIAUgCkF+baxXDQAgBEGgBGogDRAKIARBkARqIAQpA6AEIARBoARqQQhqKQMAQn9C////////v///ABAJIARBgARqIAQpA5AEIARBkARqQQhqKQMAQn9C////////v///ABAJECNBIjYCACAEQYAEakEIaikDACEGIAQpA4AEIQUMAQsCQCAFIApBnn5qrFkNACAEQdAEaiANEAogBEHABGogBCkD0AQgBEHQBGpBCGopAwBCAEKAgICAgIDAABAJIARBsARqIAQpA8AEIARBwARqQQhqKQMAQgBCgICAgICAwAAQCRAjQSI2AgAgBEGwBGpBCGopAwAhBiAEKQOwBCEFDAELAkAgG0UNAAJAIBtBCEoNACAbQXdqIQkgDiAVQQJ0aiIBKAIAIQgDQCAIQQpsIQggCUEBaiIMIAlPIQcgDCEJIAcNAAsgASAINgIACyAVQQFqIRULIAWnIRICQCAaQQlODQAgGiASSg0AIBJBEUoNAAJAIBJBCUcNACAEQfAEaiANEAogBEGABWogDigCABAOIARB4ARqIAQpA/AEIARB8ARqQQhqKQMAIAQpA4AFIARBgAVqQQhqKQMAEAkgBEHgBGpBCGopAwAhBiAEKQPgBCEFDAILAkAgEkEISg0AIARBwAVqIA0QCiAEQdAFaiAOKAIAEA4gBEGwBWogBCkDwAUgBEHABWpBCGopAwAgBCkD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DQEgBSAAakEgOgAACyAAQQFqIQALIAxBAnEhBCAKIQgCQCADDQAgCiEIIAQNACAKIQggACALTw0AIAsgAGshDEEAIQMDQEEgIAEgCiADaiACIAYRAwAgDCADQQFqIgNHDQALIAogA2ohCAsgAA0KDAsLQQEhCQJAIAxBAnEiDA0AQQIhCSALQQJJDQAgC0F/aiEDIAtBAWohCUEAIQADQEEgIAEgCiAAaiACIAYRAwAgAyAAQQFqIgBHDQALIAogAGohCgsgBCwAACABIAogAiAGEQMAIApBAWohCCAEQQRqIQQgDEUNBSAJIAtPDQUgCyAJayEAA0BBICABIAggAiAGEQMAIAhBAWohCCAAQX9qIgANAAwGCwsgBCgCACIOQX9qIQADQCAAQQFqIgAtAAANAAsgACAOayIAIAggACAISRsgACAMQYAIcSIVQQp2GyEJAkAgDEECcSIMDQACQCAJIAtJDQAgCUEBaiEJDAELIAsgCWshAyALQQFqIQlBACEAA0BBICABIAogAGogAiAGEQMAIAMgAEEBaiIARw0ACyAKIABqIQoLAkAgDi0AACIARQ0AAkAgFQ0AIA5BAWohAwNAIABBGHRBGHUgASAKIAIgBhEDACAKQQFqIQogAy0AACEAIANBAWohAyAADQAMAgsLIA5BAWohAwNAIAhFDQEgAEEYdEEYdSABIAogAiAGEQMAIApBAWohCiAIQX9qIQggAy0AACEAIANBAWohAyAADQALCyAEQQRqIQQCQCAMDQAgCiEIIA1BAWohAwwMCwJAIAkgC0kNACAKIQggDUEBaiEDDAwLIAsgCWshAANAQSAgASAKIAIgBhEDACAKQQFqIQogAEF/aiIADQALIAohCCANQQFqIQMMCwsgDEEhciIAIABBb3EgBCgCACIAGyEJAkACQCAADQBBACEDIAlBgAhxDQELQQAhAwNAIAUgA2pBMEE3IABBD3EiC0EKSRsgC2o6AAAgA0EBaiIDQR9LDQEgAEEPSyELIABBBHYhACALDQALCyAEQQRqIQQgBiABIAogAiAFIANBAEEQIAhBCCAJEFwhCCANQQFqIQMMCgtBJSABIAogAiAGEQMADAELIA4gASAKIAIgBhEDAAsgCkEBaiEICyANQQFqIQMMBgtBACABIAogAkF/aiAKIAJJGyACIAYRAwAgBUEgaiQA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BiACIAVqIgQhAwNAIANBADoAACADQQFqIQMgAUF/aiIBDQALIAQgACgCBCAAKAIAIgFrIgJrIQQCQCACQQFIDQAgBCABIAIQBxogACgCACEBCyAAIAY2AgggACADNgIEIAAgBDYCACABRQ0AIAEQJwsPCyAAEHsACwvMHBgAQZDAAAs8ZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2VzAAABAgQHAwYFAAAAQAAAAAAAAABAAAAAAAAAACUqcwBnZXQAAEHwwAALgQL/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBBgMMAC1ggAAAACQAAAAoAAAANAAAACwAAAAwAAACFAAAAACAAAAEgAAACIAAAAyAAAAQgAAAFIAAABiAAAAggAAAJIAAACiAAACggAAApIAAAXyAAAAAwAAAAAAAAAEHgwwALIAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAEGAxAALDBgAAAA1AAAAcQAAAABBjMQACwxr////zvv//5K///8AQaDEAAvIATAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AEHwxQALUAAAAAAAAPA/AAAAAAAAJEAAAAAAAABZQAAAAAAAQI9AAAAAAACIw0AAAAAAAGr4QAAAAACAhC5BAAAAANASY0EAAAAAhNeXQQAAAABlzc1BAEHAxgALFN4SBJUAAAAA////////////////AEHUxgALJEAjAAAUAAAAQy5VVEYtOAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBkMcACxhUIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbDHAAtYVCEiGQ0BAgMRSxwMEAQLHRIeJ2hub3BxYiAFBg8TFBUaCBYHKCQXGAkKDhsfJSODgn0mKis8PT4/Q0dKTVhZWltcXV5fYGFjZGVmZ2lqa2xyc3R5ent8AABBkMgAC4wOSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAABBoNYAC8wBAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAEHt1wALMShudWxsKQBkYXRhc3RyZWFtIGF0dGVtcHRlZCB0byByZWFkIHBhc3QgdGhlIGVuZAAAQZ7YAAsUJSUlcyVzJXMlcyVzKi4qJWMlYwAAQbLYAAsCIwAAQbTYAAsCKwAAQbbYAAsCLQAAQbjYAAsCIAAAQbrYAAsCMAAAQcDYAAsYTAAAakxMTABqAAAAAABqagAAAABqAABqAEHg2AAL0AMZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAARsJCxgAAAkGCwAACwAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAoNAAAAAA0AAAIACQ4AAAAJAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEwAAAAATAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAEDwAAAAAJEAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAARAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoaGgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABcAAAAAFwAAAAAJFAAAAAAAFAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAVAAAAABUAAAAACRYAAAAAABYAABYAAABBAAsEOC4AAA=="
    },
    "init_balance": 10000000,
    "init_input" : "",
    "priv":{
    "master_weight": 0,
    "thresholds": {
    "tx_threshold": 1
    }
    }
    }
    }]
    },
    "private_keys": ["privbwQsGDqGRYuvkFAEQdS8KWxVTA3ynzMxpwLHTtFsy1eySSPTRCmt"]
    }
    ]
    }

    提交交易,把上一步整理好的tx-deploy-cpp-send.json文件作为POST请求的参数提交到节点:

    curl -X "POST" --data-binary "@tx-deploy-cpp-send.json" http://127.0.0.1:19333/submitTransaction

    示例返回:

    {
    "results" : [
    {
    "error_code" : 0,
    "error_desc" : "",
    "hash" : "a5593b119c6c0b69d95aa1ccc0b88ae14dcbc6f469b209b6c326add13826a6b0"
    }
    ],
    "success_count" : 1
    }

    提交成功返回交易交易a5593b119c6c0b69d95aa1ccc0b88ae14dcbc6f469b209b6c326add13826a6b0

  3. 查询交易状态,向节点提交交易查询请求:

    curl http://127.0.0.1:19333/getTransactionHistory?hash=a5593b119c6c0b69d95aa1ccc0b88ae14dcbc6f469b209b6c326add13826a6b0

    示例返回:

    {"error_code":0,"result":{"total_count":1,"transactions":[{"actual_fee":1048666000,"close_time":1712910173150498,"error_code":0,"error_desc":"[{\"contract_address\":\"adxSTCcApdaDd9Q1Uk1cpipSuEnb6U3tSumCb\",\"contract_evm_address\":\"0x01c4b8b31d1eebf41f9df5b6f899ed9b9cefb58c\",\"operation_index\":0}]","hash":"a5593b119c6c0b69d95aa1ccc0b88ae14dcbc6f469b209b6c326add13826a6b0","ledger_seq":659,"signatures":[{"public_key":"b0011ced68075723ec3bd5db6f7fb4faba33f00f33e374a53806253160bc8f708e8933530369","sign_data":"0d949da0773a7835b9d6d05f62be4cb09b8dc7761ba33a8b0417ef94af47b43ddba7247eb9207f006e54bdf93fde4411b4fc2b1832e309477b440603fe118606"},{"public_key":"b00132c3d1244e0be4d711fb12d5b3d24abeb60f11e8c61c5efe28ad20b793d7fb2402f819e9","sign_data":"ca0d8917a20158c3634392451837cda37889a3b46907bc7028c778c56fff250cfcc196dca170800291d12395717bd90fb773a3b4c3407f8414a0479434b6030c"}],"transaction":{"fee_limit":1500000000,"gas_price":1000,"nonce":18,"operations":[{"create_account":{"contract":{"owner":"adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P","payload":"AGFzbQEAAAAB3gEjYAAAYAN/f38Bf2ADf35/AX5gBH9/f38AYAABf2ACf38AYAJ/fwF/YAR/f39/AX9gAn99AGAFf35+fn4AYAJ/fABgBH5+fn4Bf2ACfn4BfGACfn4BfWACf38BfmAAAX5gAn9+AGADfn5+AGABfwF/YAF/AGAEf39/fgF+YAN/f38BfmACfH8BfGACfn4Bf2ABfAF8YAR/fn5/AGACf38BfWACf38BfGADf39/AGACfn8Bf2AFf39/f38Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwBgAX4AYAJ+fgACsgQdA2VudhBhY3Rpb25fZGF0YV9zaXplAAQDZW52DXdhc21pb19hc3NlcnQABQNlbnYGbWVtc2V0AAEDZW52B21lbW1vdmUAAQNlbnYQcmVhZF9hY3Rpb25fZGF0YQAGA2VudgtjaGFpbl9zdG9yZQAHA2VudgVhYm9ydAAAA2VudgZtZW1jcHkAAQNlbnYNX19leHRlbmRzZnRmMgAIA2VudghfX211bHRmMwAJA2VudgtfX2Zsb2F0c2l0ZgAFA2VudghfX2FkZHRmMwAJA2Vudg1fX2V4dGVuZGRmdGYyAAoDZW52B19fZ2V0ZjIACwNlbnYNX19mbG9hdHVuc2l0ZgAFA2VudghfX2RpdnRmMwAJA2VudgdfX2VxdGYyAAsDZW52B19fbGV0ZjIACwNlbnYHX19uZXRmMgALA2VudghfX3N1YnRmMwAJA2VudgxfX3RydW5jdGZkZjIADANlbnYMX190cnVuY3Rmc2YyAA0DZW52CHByaW50c19sAAUDZW52IHNldF9ibG9ja2NoYWluX3BhcmFtZXRlcnNfcGFja2VkAAUDZW52IGdldF9ibG9ja2NoYWluX3BhcmFtZXRlcnNfcGFja2VkAAYDZW52FnNldF9wcm9wb3NlZF9wcm9kdWNlcnMADgNlbnYMY3VycmVudF90aW1lAA8DZW52FGdldF9hY3RpdmVfcHJvZHVjZXJzAAYDZW52Endhc21pb19hc3NlcnRfY29kZQAQA2ZlABESBhMABAYBEhMSAQEBAQESAQETEwQSEwASEhASFBUVAQEGEhUBFQEBFgkXCRgZAw4aGxwaARscBgYdAx4DHwMHAQYSBgEGAQYGEgYBBgYSAQEeHAcBBxMGIAUFEhMhEyIG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IAAgBEEBajYCBCAELQAAIQQMAQsgABA6IQQLIAggCXwhByABIARB8cAAai0AACIFTQ0CIAcgC1gNAAwCCwsgAUEXbEEFdkEHcUGpwABqLAAAIQxCACEHAkAgASAEQfHAAGotAAAiBU0NAEEAIQIDQCAFIAIgDHRyIQICQAJAIAAoAgQiBCAAKAJoTw0AIAAgBEEBajYCBCAELQAAIQQMAQsgABA6IQQLIARB8cAAai0AACEFAkAgAkH///8/Sw0AIAEgBUsNAQsLIAKtIQcLIAEgBU0NAEJ/IAytIgmIIgogB1QNAANAIAcgCYYhByAFrUL/AYMhCAJAAkAgACgCBCIEIAAoAmhPDQAgACAEQQFqNgIEIAQtAAAhBAwBCyAAEDohBAsgByAIhCEHIAEgBEHxwABqLQAAIgVNDQEgByAKWA0ACwsgASAEQfHAAGotAABNDQADQAJAAkAgACgCBCIEIAAoAmhPDQAgACAEQQFqNgIEIAQtAAAhBAwBCyAAEDohBAsgASAEQfHAAGotAABLDQALECNBIjYCACAGQQAgA0IBg1AbIQYgAyEHCwJAIAAoAmhFDQAgACAAKAIEQX9qNgIECwJAIAcgA1QNAAJAIAOnQQFxDQAgBg0AECNBIjYCACADQn98DwsgByADWA0AECNBIjYCACADDwsgByAGrCIIhSAIfSEHCyAHC38CAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUJ/EDshBAJAIAFFDQAgASAAIAMoAgQgAygCeGogAygCCGtqNgIACyADQZABaiQAIAQLiAECAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUKAgICAgICAgIB/EDshBAJAIAFFDQAgASAAIAMoAgQgAygCeGogAygCCGtqNgIACyADQZABaiQAIAQLhAECAX8BfiMAQZABayIDJAAgAyAANgIsIAMgADYCBCADQQA2AgAgA0F/NgJMIANBfyAAQf////8HaiAAQQBIGzYCCCADQgAQOSADIAJBAUL/////DxA7IQQCQCABRQ0AIAEgACADKAIEIAMo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IAUpA2AhBAsCQCAKDQAgBUHQAGogAyALQgBCgICAgICAwLvAABAJIAVB2ABqKQMAIgtCMIinQYh/aiEKIAUpA1AhAwsgCUL///////8/g0KAgICAgIDAAIQiCSALQv///////z+DQoCAgICAgMAAhCIMfSAEIANUrX0iDUJ/VSEGIAQgA30hCwJAIAggCkwNAANAAkACQCAGQQFxRQ0AAkAgDSALhEIAUg0AIAVBIGogASACQgBCABAJIAVBKGopAwAhAiAFKQMgIQQMBQsgC0I/iCEJIA1CAYYhDQwBCyAEQj+IIQ0gCUIBhiEJIAQhCwsgDSAJhCIJIAx9IAtCAYYiBCADVK19Ig1Cf1UhBiAEIAN9IQsgCEF/aiIIIApKDQALCwJAIAZFDQAgDSEJIAshBCANIAuEQgBSDQAgBUEwaiABIAJCAEIAEAkgBUE4aikDACECIAUpAzAhBAwBCwJAIAlC////////P1YNAANAIARCP4ghAyAIQX9qIQggBEIBhiEEIAMgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAdBgIACcSEGAkAgCEEASg0AIAVBwABqIAQgCUL///////8/gyAIQfgAaiAGcq1CMIaEQgBCgICAgICAwMM/EAkgBUHIAGopAwAhAiAFKQNAIQQMAQsgCUL///////8/gyAIIAZyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQACxIAIAC9Qv///////////wCDvwvmAgECfyMAQdAAayIEJAACQAJAIANBgIABSA0AIARBIGogASACQgBCgICAgICAgP//ABAJIARBIGpBCGopAwAhAiAEKQMgIQECQCADQYGAf2oiBUGAgAFODQAgBSEDDAILIARBEGogASACQgBCgICAgICAgP//ABAJIANB/f8CIANB/f8CSBtBgoB+aiEDIARBEGpBCGopAwAhAiAEKQMQIQEMAQsgA0GBgH9KDQAgBEHAAGogASACQgBCgICAgICAgDkQCSAEQcAAakEIaikDACECIAQpA0AhAQJAIANBjf8AaiIFQYGAf0wNACAFIQMMAQsgBEEwaiABIAJCAEKAgICAgICAORAJIANB6IF9IANB6IF9ShtBmv4BaiEDIARBMGpBCGopAwAhAiAEKQMwIQELIAQgASACQgAgA0H//wBqrUIwhhAJIAAgBEEIaikDADcDCCAAIAQpAwA3AwAgBEHQAGokAAukPQoBfwJ+CX8CfgF/An4BfwF+Bn8BfCMAQbAKayIEJABCACEFAkACQCACQQJNDQBCACEGDAELIAFB6ABqIQcgAUEEaiEIIAJBAnQiCUGMxABqKAIAIQogCUGAxABqKAIAIQsDQAJAAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQtBASEMAkAgCUEgRg0AIAlBd2pBBUkhDAsgDA0AC0EBIQ0CQCAJQVVqIgxBAksNAAJAIAwOAwABAAALQQEgCUEtRkEBdGshDQJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBIHIiDEHpAEcNAAJAAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQtBASEMIAlBIHJB7gBGDQEMAgsgDEHuAEcNBQJAAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQsgCUEgckHhAEcNAwJAAkAgCCgCACIJIAcoAgBJDQAgARA6IQkMAQsgCCAJQQFqNgIAIAktAAAhCQsgCUEgckHuAEcNAyADQQBHIQ4MBAsCQAJAIAgoAgAiCSAHKAIASQ0AIAEQOiEJDAELIAggCUEBajYCACAJLQAAIQkLQQIhDCAJQSByQeYARw0AAkACQCAIKAIAIgkgBygCAEkNACABEDohCQwBCyAIIAlBAWo2AgAgCS0AACEJC0EDIQwCQAJAIAlBIHJB6QBHDQACQAJAIAgoAgAiCSAHKAIASQ0AIAEQOiEJDAELIAggCUEBajYCACAJLQAAIQkLQQQhDAJAIAlBIHJB7gBHDQACQAJAIAgoAgAiCSAHKAIASQ0AIAEQOiEJDAELIAggCUEBajYCACAJLQAAIQkLQQUhDCAJQSByQekARw0AAkACQCAIKAIAIgkgBygCAEkNACABEDohCQwBCyAIIAlBAWo2AgAgCS0AACEJC0EGIQwgCUEgckH0AEcNAAJAAkAgCCgCACIJIAcoAgBJDQAgARA6IQkMAQsgCCAJQQFqNgIAIAktAAAhCQtBByEMIAlBIHJB+QBGDQILIAMNACADQQBHIQ4MAwsCQCAHKAIAIglFDQAgCCAIKAIAQX9qNgIACyAMQQRJDQAgA0UNACAJRQ0AIAgoAgAhCQNAIAlBf2ohCSAMQX9qIgxBA0sNAAsgCCAJNgIACyAEIA2yQwAAgH+UEAggBEEIaikDACEGIAQpAwAhBQwQCyADQQBHIQ4LIAxBA0sNACAMDgQCAAABAgsCQCAHKAIARQ0AIAggCCgCAEF/ajYCAAsQI0EWNgIADAMLAkACQCAIKAIAIgkgBygCAE8NACAIIAlBAWo2AgAgCS0AACEJDAELIAEQOiEJCwJAAkAgCUEoRw0AQQEhDAwBC0KAgICAgIDg//8AIQYgBygCAEUNDSAIIAgoAgBBf2o2AgAMDQsDQAJAAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQsgCUG/f2ohDwJAAkAgCUFQakEKSQ0AIA9BGkkNACAJQZ9/aiEPIAlB3wBGDQAgD0EaTw0BCyAMQQFqIQwMAQsLQoCAgICAgOD//wAhBiAJQSlGDQwCQCAHKAIAIglFDQAgCCAIKAIAQX9qNgIACyAORQ0BIAxFDQwgCUUNDCAIKAIAIQdBACEJA0AgDCAJQQFqIglHDQALIAggByAJazYCAAwMCyAJQTBHDQUCQAJAIAgoAgAiDCAHKAIATw0AIAggDEEBajYCACAMLQAAIQwMAQsgARA6IQwLIAxBIHJB+ABHDQQCQAJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLQQAhDgJAAkADQAJAIAlBMEYNACAJQS5GDQJCACEQQQAhAgwDCwJAIAgoAgAiCSAHKAIATw0AQQEhDiAIIAlBAWo2AgAgCS0AACEJDAELIAEQOiEJQQEhDgwACwsCQAJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLQgAhEAJAIAlBMEYNAEEBIQIMAQsDQAJAAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQsgEEJ/fCEQIAlBMEYNAAtBASECQQEhDgtCgICAgICAwP8/IRFBACESQgAhBkIAIRNCACEUQQAhFUIAIQUCQANAIAlBIHIhDAJAAkAgCUFQaiIPQQpJDQACQCAJQS5GDQAgDEGff2pBBUsNBAsgCUEuRw0AIAINA0EBIQIgBSEQDAELIAxBqX9qIA8gCUE5ShshCQJAAkAgBUIHVQ0AIAkgEkEEdGohEgwBCwJAIAVCHFUNACAEQTBqIBQgEUIAQoCAgICAgMD9PxAJIARBwABqIAkQCiAEQSBqIAQpAzAiFCAEQTBqQQhqKQMAIhEgBCkDQCAEQcAAakEIaikDABAJIARBEGogBiATIAQpAyAgBEEgakEIaikDABALIARBEGpBCGopAwAhEyAEKQMQIQYMAQsgFQ0AIAlFDQAgBEHgAGogFCARQgBCgICAgICAgP8/EAkgBEHQAGogBiATIAQpA2AgBEHgAGpBCGopAwAQCyAEQdAAakEIaikDACETQQEhFSAEKQNQIQYLIAVCAXwhBUEBIQ4LAkAgCCgCACIJIAcoAgBPDQAgCCAJQQFqNgIAIAktAAAhCQwBCyABEDohCQwACwsCQCAODQACQCAHKAIAIglFDQAgCCAIKAIAQX9qNgIACwJAAkAgA0UNACAJRQ0BIAggCCgCACIJQX9qNgIAIAJFDQEgCCAJQX5qNgIADAELIAFCABA5CyAEQfAAaiANt0QAAAAAAAAAAKIQDCAEQfgAaikDACEGIAQpA3AhBQwMCwJAIAVCB1UNACAFQnh8IREDQCASQQR0IRIgEUIBfCIUIBFaIQkgFCERIAkNAAsLIAxB8ABHDQIgASADEE4iEUKAgICAgICAgIB/Ug0DIANFDQFCACERIAcoAgBFDQMgCCAIKAIAQX9qNgIADAMLECNBFjYCAAtCACEFIAFCABA5QgAhBgwJC0IAIREgBygCAEUNACAIIAgoAgBBf2o2AgALAkAgEg0AIARBgAFqIA23RAAAAAAAAAAAohAMIARBiAFqKQMAIQYgBCkDgAEhBQwICwJAIBAgBSACG0IChiARfEJgfCIFQQAgCmutVw0AIARBsAFqIA0QCiAEQaABaiAEKQOwASAEQbABakEIaikDAEJ/Qv///////7///wAQCSAEQZABaiAEKQOgASAEQaABakEIaikDAEJ/Qv///////7///wAQCRAjQSI2AgAgBEGQAWpBCGopAwAhBiAEKQOQASEFDAgLIAUgCkGefmqsUw0CAkAgEkEASA0AA0AgBEGwA2ogBiATQgBCgICAgICAwP+/fxALIAYgE0IAQoCAgICAgID/PxANIQkgBEGgA2ogBiATIAYgBCkDsAMgCUEASCIIGyATIARBsANqQQhqKQMAIAgbEAsgBUJ/fCEFIARBoANqQQhqKQMAIRMgBCkDoAMhBiASQQF0IAlBf0pyIhJBf0oNAAsLAkAgBUEgIAprrXwiESALrVkNACARpyILQQFODQBBACELDAYLIAtB8QBIDQUgBEGQA2ogDRAKIARBmANqKQMAIRBCACEWIAQpA5ADIRFCACEUDAYLIAcoAgBFDQAgCCAIKAIAQX9qNgIAC0EAIQxBACAKIAtqIhdrIRhBgMAAEB8hDgJAAkADQAJAIAlBMEYNACAJQS5GDQJBACEZQgAhBQwDCwJAIAgoAgAiCSAHKAIATw0AQQEhDCAIIAlBAWo2AgAgCS0AACEJDAELIAEQOiEJQQEhDAwACwsCQAJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLAkAgCUEwRg0AQQEhGUIAIQUMAQtCACEFA0ACQAJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLIAVCf3whBSAJQTBGDQALQQEhDEEBIRkLQQAhGiAOQQA2AgAgCUFQaiESAkACQAJAAkACQCAJQS5GIg8NAEIAIQYgEkEJTQ0AQQAhFUEAIRsMAQtCACEGQQAhG0EAIRVBACEaA0ACQAJAIA9BAXFFDQACQCAZDQAgBiEFQQEhGQwCCyAMQQBHIQwMBAsgBkIBfCEGAkAgFUH8D0oNACAJQTBHIQ8gBqchHCAOIBVBAnRqIQwCQCAbRQ0AIAkgDCgCAEEKbGpBUGohEgsgHCAaIA8bIRogDCASNgIAQQEhDEEAIBtBAWoiCSAJQQlGIgkbIRsgFSAJaiEVDAELIAlBMEYNACAOIA4oAvA/QQFyNgLwP0HcjwEhGgsCQAJAIAgoAgAiCSAHKAIATw0AIAggCUEBajYCACAJLQAAIQkMAQsgARA6IQkLIAlBUGohEiAJQS5GIg8NACASQQpJDQALCyAFIAYgGRshBQJAIAxFDQAgCUEgckHlAEcNAAJAIAEgAxBOIhNCgICAgICAgICAf1INACADRQ0EQgAhEyAHKAIARQ0AIAggCCgCAEF/ajYCAAsgEyAFfCEFDAULIAxBAEchDCAJQQBIDQELIAcoAgBFDQAgCCAIKAIAQX9qNgIACyAMDQIQI0EWNgIAC0IAIQUgAUIAEDlCACEGDAILIARB4AFqIA0QCiAEQdABaiAEKQPgASAEQeABakEIaikDAEIAQoCAgICAgMAAEAkgBEHAAWogBCkD0AEgBEHQAWpBCGopAwBCAEKAgICAgIDAABAJECNBIjYCACAEQcABakEIaikDACEGIAQpA8ABIQUMBAsCQCAOKAIAIgkNACAEQcADaiANt0QAAAAAAAAAAKIQDCAEQcgDaikDACEGIAQpA8ADIQUMAQsCQCAGQglVDQAgBSAGUg0AAkAgAkF/akECSQ0AIAkgC3YNAQsgBEHgA2ogCRAOIARB8ANqIA0QCiAEQdADaiAEKQPwAyAEQfADakEIaikDACAEKQPgAyAEQeADakEIaikDABAJIARB0ANqQQhqKQMAIQYgBCkD0AMhBQwBCwJAIAUgCkF+baxXDQAgBEGgBGogDRAKIARBkARqIAQpA6AEIARBoARqQQhqKQMAQn9C////////v///ABAJIARBgARqIAQpA5AEIARBkARqQQhqKQMAQn9C////////v///ABAJECNBIjYCACAEQYAEakEIaikDACEGIAQpA4AEIQUMAQsCQCAFIApBnn5qrFkNACAEQdAEaiANEAogBEHABGogBCkD0AQgBEHQBGpBCGopAwBCAEKAgICAgIDAABAJIARBsARqIAQpA8AEIARBwARqQQhqKQMAQgBCgICAgICAwAAQCRAjQSI2AgAgBEGwBGpBCGopAwAhBiAEKQOwBCEFDAELAkAgG0UNAAJAIBtBCEoNACAbQXdqIQkgDiAVQQJ0aiIBKAIAIQgDQCAIQQpsIQggCUEBaiIMIAlPIQcgDCEJIAcNAAsgASAINgIACyAVQQFqIRULIAWnIRICQCAaQQlODQAgGiASSg0AIBJBEUoNAAJAIBJBCUcNACAEQfAEaiANEAogBEGABWogDigCABAOIARB4ARqIAQpA/AEIARB8ARqQQhqKQMAIAQpA4AFIARBgAVqQQhqKQMAEAkgBEHgBGpBCGopAwAhBiAEKQPgBCEFDAILAkAgEkEISg0AIARBwAVqIA0QCiAEQdAFaiAOKAIAEA4gBEGwBWogBCkDwAUgBEHABWpBCGopAwAgBCkD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DQEgBSAAakEgOgAACyAAQQFqIQALIAxBAnEhBCAKIQgCQCADDQAgCiEIIAQNACAKIQggACALTw0AIAsgAGshDEEAIQMDQEEgIAEgCiADaiACIAYRAwAgDCADQQFqIgNHDQALIAogA2ohCAsgAA0KDAsLQQEhCQJAIAxBAnEiDA0AQQIhCSALQQJJDQAgC0F/aiEDIAtBAWohCUEAIQADQEEgIAEgCiAAaiACIAYRAwAgAyAAQQFqIgBHDQALIAogAGohCgsgBCwAACABIAogAiAGEQMAIApBAWohCCAEQQRqIQQgDEUNBSAJIAtPDQUgCyAJayEAA0BBICABIAggAiAGEQMAIAhBAWohCCAAQX9qIgANAAwGCwsgBCgCACIOQX9qIQADQCAAQQFqIgAtAAANAAsgACAOayIAIAggACAISRsgACAMQYAIcSIVQQp2GyEJAkAgDEECcSIMDQACQCAJIAtJDQAgCUEBaiEJDAELIAsgCWshAyALQQFqIQlBACEAA0BBICABIAogAGogAiAGEQMAIAMgAEEBaiIARw0ACyAKIABqIQoLAkAgDi0AACIARQ0AAkAgFQ0AIA5BAWohAwNAIABBGHRBGHUgASAKIAIgBhEDACAKQQFqIQogAy0AACEAIANBAWohAyAADQAMAgsLIA5BAWohAwNAIAhFDQEgAEEYdEEYdSABIAogAiAGEQMAIApBAWohCiAIQX9qIQggAy0AACEAIANBAWohAyAADQALCyAEQQRqIQQCQCAMDQAgCiEIIA1BAWohAwwMCwJAIAkgC0kNACAKIQggDUEBaiEDDAwLIAsgCWshAANAQSAgASAKIAIgBhEDACAKQQFqIQogAEF/aiIADQALIAohCCANQQFqIQMMCwsgDEEhciIAIABBb3EgBCgCACIAGyEJAkACQCAADQBBACEDIAlBgAhxDQELQQAhAwNAIAUgA2pBMEE3IABBD3EiC0EKSRsgC2o6AAAgA0EBaiIDQR9LDQEgAEEPSyELIABBBHYhACALDQALCyAEQQRqIQQgBiABIAogAiAFIANBAEEQIAhBCCAJEFwhCCANQQFqIQMMCgtBJSABIAogAiAGEQMADAELIA4gASAKIAIgBhEDAAsgCkEBaiEICyANQQFqIQMMBgtBACABIAogAkF/aiAKIAJJGyACIAYRAwAgBUEgaiQA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BiACIAVqIgQhAwNAIANBADoAACADQQFqIQMgAUF/aiIBDQALIAQgACgCBCAAKAIAIgFrIgJrIQQCQCACQQFIDQAgBCABIAIQBxogACgCACEBCyAAIAY2AgggACADNgIEIAAgBDYCACABRQ0AIAEQJwsPCyAAEHsACwvMHBgAQZDAAAs8ZmFpbGVkIHRvIGFsbG9jYXRlIHBhZ2VzAAABAgQHAwYFAAAAQAAAAAAAAABAAAAAAAAAACUqcwBnZXQAAEHwwAALgQL/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBBgMMAC1ggAAAACQAAAAoAAAANAAAACwAAAAwAAACFAAAAACAAAAEgAAACIAAAAyAAAAQgAAAFIAAABiAAAAggAAAJIAAACiAAACggAAApIAAAXyAAAAAwAAAAAAAAAEHgwwALIAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAEGAxAALDBgAAAA1AAAAcQAAAABBjMQACwxr////zvv//5K///8AQaDEAAvIATAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AEHwxQALUAAAAAAAAPA/AAAAAAAAJEAAAAAAAABZQAAAAAAAQI9AAAAAAACIw0AAAAAAAGr4QAAAAACAhC5BAAAAANASY0EAAAAAhNeXQQAAAABlzc1BAEHAxgALFN4SBJUAAAAA////////////////AEHUxgALJEAjAAAUAAAAQy5VVEYtOAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBkMcACxhUIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQbDHAAtYVCEiGQ0BAgMRSxwMEAQLHRIeJ2hub3BxYiAFBg8TFBUaCBYHKCQXGAkKDhsfJSODgn0mKis8PT4/Q0dKTVhZWltcXV5fYGFjZGVmZ2lqa2xyc3R5ent8AABBkMgAC4wOSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAABBoNYAC8wBAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAEHt1wALMShudWxsKQBkYXRhc3RyZWFtIGF0dGVtcHRlZCB0byByZWFkIHBhc3QgdGhlIGVuZAAAQZ7YAAsUJSUlcyVzJXMlcyVzKi4qJWMlYwAAQbLYAAsCIwAAQbTYAAsCKwAAQbbYAAsCLQAAQbjYAAsCIAAAQbrYAAsCMAAAQcDYAAsYTAAAakxMTABqAAAAAABqagAAAABqAABqAEHg2AAL0AMZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAARsJCxgAAAkGCwAACwAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAoNAAAAAA0AAAIACQ4AAAAJAA4AAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEwAAAAATAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAEDwAAAAAJEAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAARAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAABoaGgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABcAAAAAFwAAAAAJFAAAAAAAFAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAVAAAAABUAAAAACRYAAAAAABYAABYAAABBAAsEOC4AAA==","type":3},"init_balance":10000000,"priv":{"thresholds":{"tx_threshold":1}}},"type":1}],"source_address":"adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P"},"tx_size":48666}]}}

    交易执行成功的话,可以在error_desc下的contract_address字段找到新创建的合约账号地址adxSTCcApdaDd9Q1Uk1cpipSuEnb6U3tSumCb

1.5. 调用

前置条件

  1. curl命令行工具,用于http请求;
  2. 一个节点的http接口访问权限,节点需要开启C++智能合约功能,这里以127.0.0.1:19333为例,实际部署操作时请替换为实际IP端口;
  3. ABI转换服务,这里以127.0.0.1:30000为例,实际调用操作时请替换为实际IP端口;
  4. 一个已经激活的区块链账号私钥,这里以privbwQsGDqGRYuvkFAEQdS8KWxVTA3ynzMxpwLHTtFsy1eySSPTRCmt为例。

准备工作

查询账号交易序号,使用查询命令:

curl http://127.0.0.1:19333/getAccount?address=adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P

结果应该返回error_code为0,然后我们在result字段下查询nonce字段信息,如果在返回结果中没有nonce字段,则代表账号从未发送过交易,表示nonce为0;返回结果示例如下:

{
"error_code" : 0,
"result" : {
"address" : "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
"assets" : null,
"assets_hash" : "ad67d57ae19de8068dbcd47282146bd553fe9f684c57c8c114453863ee41abc3",
"balance" : 982281169000,
"metadatas" : null,
"metadatas_hash" : "ad67d57ae19de8068dbcd47282146bd553fe9f684c57c8c114453863ee41abc3",
"nonce" : 18,
"priv" : {
"master_weight" : 1,
"thresholds" : {
"tx_threshold" : 1
}
}
}
}

调用流程

  1. 打开 https://www.json.cn/jsonzip/ 网站, 把编译生成的store.abi文件内容复制到输入框中,点击压缩并转义,生成如下字符串:

    {\"____comment\":\"This file was generated with wasmio-abigen. DO NOT EDIT \",\"version\":\"wasmio::abi/1.2\",\"types\":[],\"structs\":[{\"name\":\"save\",\"base\":\"\",\"fields\":[{\"name\":\"test_key\",\"type\":\"string\"},{\"name\":\"test_value\",\"type\":\"string\"}]}],\"actions\":[{\"name\":\"save\",\"type\":\"save\",\"ricardian_contract\":\"\"}],\"tables\":[],\"kv_tables\":{},\"ricardian_clauses\":[],\"variants\":[],\"action_results\":[]}

    准备接口参数,把上述转换后的字符串添加在abi字段位置,保存为tx-call-cpp-abi.json,示例内容如下:

    {
    "method": "save",
    "params": "[\"testKey\",\"testValue\"]",
    "abi":"{\"____comment\":\"This file was generated with wasmio-abigen. DO NOT EDIT \",\"version\":\"wasmio::abi/1.2\",\"types\":[],\"structs\":[{\"name\":\"save\",\"base\":\"\",\"fields\":[{\"name\":\"test_key\",\"type\":\"string\"},{\"name\":\"test_value\",\"type\":\"string\"}]}],\"actions\":[{\"name\":\"save\",\"type\":\"save\",\"ricardian_contract\":\"\"}],\"tables\":[],\"kv_tables\":{},\"ricardian_clauses\":[],\"variants\":[],\"action_results\":[]}"
    }

    调用ABI转换服务接口,命令如下:

    curl -X "POST" --data-binary "@tx-call-cpp-abi.json" http://127.0.0.1:30000/wasmAbiEncode

    返回示例如下:

    {
    "error_code" : 0,
    "error_desc" : "",
    "result" : {
    "abicode" : "B3Rlc3RLZXkJdGVzdFZhbHVl",
    "method" : "save",
    "params" : "[\"testKey\",\"testValue\"]"
    }
    }

    准备合约调用参数,示例如下:

    {
    "abicode": "B3Rlc3RLZXkJdGVzdFZhbHVl",
    "method": "save"
    }

    打开 https://www.json.cn/jsonzip/ 网站, 把上述调用参数复制到输入框中,点击压缩并转义,生成如下字符串:

    {\"abicode\":\"B3Rlc3RLZXkJdGVzdFZhbHVl\",\"method\":\"save\"}
  2. 准备交易内容,上一步得到的调用参数填入input参数字段,将下面的交易内容保存到tx-call-cpp.json文件,注意:需要把nonce参数+1,表示账号的下一笔交易;

    {
    "items": [
    {
    "transaction_json": {
    "source_address": "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P",
    "nonce": 19,
    "fee_limit":1500000000,
    "gas_price":1000,
    "operations": [{
    "pay_coin": {
    "amount": 0,
    "dest_address": "adxSTCcApdaDd9Q1Uk1cpipSuEnb6U3tSumCb",
    "input": "{\"abicode\":\"B3Rlc3RLZXkJdGVzdFZhbHVl\",\"method\":\"save\"}"
    },
    "type": 7
    }]
    },
    "private_keys": ["privbwQsGDqGRYuvkFAEQdS8KWxVTA3ynzMxpwLHTtFsy1eySSPTRCmt"]
    }
    ]
    }
  3. 提交交易,把上一步整理好的tx-call-cpp.json文件作为POST请求的参数提交到节点

    curl -X "POST" --data-binary "@tx-call-cpp.json" http://127.0.0.1:19333/submitTransaction

    示例返回:

    {
    "results" : [
    {
    "error_code" : 0,
    "error_desc" : "",
    "hash" : "ea0363f3a9da98f41af2a7051b518b28a0b21ae35a4a928c50ffc13ef3c67ea2"
    }
    ],
    "success_count" : 1
    }

    提交成功返回交易交易ea0363f3a9da98f41af2a7051b518b28a0b21ae35a4a928c50ffc13ef3c67ea2

  4. 查询交易状态,向节点提交交易查询请求:

    curl http://127.0.0.1:19333/getTransactionHistory?hash=ea0363f3a9da98f41af2a7051b518b28a0b21ae35a4a928c50ffc13ef3c67ea2

    示例返回:

    {"error_code":0,"result":{"total_count":1,"transactions":[{"actual_fee":448000,"close_time":1712915502585494,"error_code":0,"error_desc":"","hash":"ea0363f3a9da98f41af2a7051b518b28a0b21ae35a4a928c50ffc13ef3c67ea2","ledger_seq":748,"signatures":[{"public_key":"b0011ced68075723ec3bd5db6f7fb4faba33f00f33e374a53806253160bc8f708e8933530369","sign_data":"72de0d348db2f7d92ff9dd05af461dbf629c04451cacbb578689fb320594c40c4da08984308362852b8fbe31ffbc485b6a6c6111bbeb99778ceec21dba12260e"},{"public_key":"b00132c3d1244e0be4d711fb12d5b3d24abeb60f11e8c61c5efe28ad20b793d7fb2402f819e9","sign_data":"aa912843a9f9748e3067a32c717e17c6a69ed5b7c7b506b0af3be2c12e42c8add0916444f6a58d11cbec8629505c989658b6208d9412f533138ea93afb753705"}],"transaction":{"fee_limit":1500000000,"gas_price":1000,"nonce":19,"operations":[{"pay_coin":{"dest_address":"adxSTCcApdaDd9Q1Uk1cpipSuEnb6U3tSumCb","input":"{\"abicode\":\"B3Rlc3RLZXkJdGVzdFZhbHVl\",\"method\":\"save\"}"},"type":7}],"source_address":"adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P"},"tx_size":448}]}}

    交易执行成功的话,返回数据的error_code应该为0。

  5. 查询数据,向节点提交合约数据查询请求:

    curl http://127.0.0.1:19333/getAccountMetaData?address=adxSTCcApdaDd9Q1Uk1cpipSuEnb6U3tSumCb&key=testKey

    示例返回:

    {
    "error_code" : 0,
    "result" : {
    "testKey" : {
    "key" : "testKey",
    "value" : "testValue",
    "version" : 1
    }
    }
    }

2. 合约API

2.1. chain::load

获取合约账号的metadata信息

// 该接口可返回存储键为 “key” 参数的存储值。
// @param key: 账户元数据(metadata)的key值,字节长度范围[1,1024]
// @param value: 账户元数据(metadata)的value值,用于接收数据
// @return: 是否成功,-1表示失败,0表示成功
int chain::load(const std::string &key, std::string &value);

// 使用示例
std::string key = "key";
std::string value = "";
if(chain::load(key, value) == 0){
//使用value值
}
else{
//处理失败的情况
}

2.2. chain::store

存储合约账号的metadata信息

// 该接口设置存储键为"key"的值
// @param key: 账户元数据(metadata)的key值,字节长度范围[1,1024]
// @param value: 账户元数据(metadata)的value值,字节长度范围[0,256*1024]
// @return: 是否成功,0表示成功,失败会抛出交易异常
int chain::store(const std::string &key, const std::string &value);

// 使用示例
std::string key = "key";
std::string value = "hello, value";
chain::store(key, value);

2.3. chain::del

删除合约账号的metadata信息

// 删除key为"key"的值
// @param key: 账户元数据(metadata)的key值,字节长度范围[1,1024]
// @return: 是否成功,0表示成功,失败会抛出交易异常
int chain::del(const std::string &key);

// 使用示例
std::string key = "key";
chain::del(key);

2.4. chain::getBlockHash

获取区块信息

// 删除key为"key"的值
// @param offset_seq: 距离最后一个区块的偏移量,输入范围[0,1024)
// @param block_hash: 结果返回值
// @return: 是否成功,-1表示失败,0表示成功
int chain::getBlockHash(int64_t offset_seq, std::string &block_hash);

// 使用示例
std::string block_hash = "";
int result = chain::getBlockHash(4, block_hash);
if(0 == result){
//use block_hash,如 'c2f6892eb934d56076a49f8b01aeb3f635df3d51aaed04ca521da3494451afb3'
}
else{
//error
}

2.5. chain::tlog

输出交易日志

// 会产生一笔交易写在区块上
// @param topic: 日志主题,字节长度范围(0,128]
// @param args...: 日志的args参数个数范围为[1,5]个,类型字符串,每个参数长度(0,1024]
// @return: 失败会抛出交易异常
void chain::tlog(const std::string &topic, const std::string &args ...);

// 使用示例
chain::tlog('transfer', 'hello-arg1', 'hello-arg2');

2.6. chain::getAccountMetadata

获取指定账号的metadata

// 会产生一笔交易写在区块上
// @param account_address: 账户的地址,字节长度范围[1,1024]
// @param key: 账户的元数据(metadata)key值,字节长度范围[1,1024]
// @param value: 账户元数据(metadata)value值
// @return: 是否成功,-1表示失败,0表示成功
int chain::getAccountMetadata(const std::string &account_address, const std::string &key, std::string &value);

// 使用示例
std::string key = "adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P";
std::string value = "";
int result = int chain::getAccountMetadata(key, value);
if(0 == result){
//使用 value 字段,如 'values'
}
else{
//error处理
}

2.7. chain::getBalance

获取账号coin amount

// 会产生一笔交易写在区块上
// @param address: 账户的地址,字节长度范围[1,1024]
// @return: 成功返回账号的余额,其他情况余额为0
int64 chain::getBalance(const std::string &address);

// 使用示例
int64 balance = chain::getBalance('adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P');

2.8. chain::payCoin

转账

// 会产生一笔交易写在区块上
// @param address: 发送积分的目标地址,字节长度范围[1,1024]
// @param amount: 发送积分的数量,取值范围[0,9223372036854775807]
// @param method: 合约方法,如果不用触发合约,则可填空;如果有参数,为目标合约的方法
// @param abicode: 合约参数,如果不用触发合约,可填空;如果有合约参数,则使用元组配置参数,并使用pack打包,再转成base64
// @param metadata: 转账备注,调用/getTransactionHistory方法查询交易结果时,显示为十六进制字符串,需要转换为明文。
// @return: 是否成功,0表示成功,失败会抛出交易异常
int chain::payCoin(const std::string &address, int64 amount, const std::string &method, const std::string &abicode, const std::string &metadata);

// 使用示例
int result = chain::payCoin("adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P", "10000", "", "vote reward");
if(0 == result){
//成功
}

2.9. chain::block::timestamp

当前区块时间戳

// 会产生一笔交易写在区块上
// @return: 当前交易执行时候所在的区块时间戳。
int64 chain::block::timestamp();

// 使用示例
int64 result = chain::block::timestamp();
chain::store("hello-timestamp", result);

2.10. chain::block::number

当前区块高度

// 会产生一笔交易写在区块上
// @return: 当前交易执行时候所在的区块高度。
int64 chain::block::number();

// 使用示例
int64 result = chain::block::number();
chain::store("hello-number", result);

2.11. chain::tx::initiator

交易的发起者

// 会产生一笔交易写在区块上
// @param initiator: 交易最原始的发起者,即交易的费用付款者。
// @return: 无。
void chain::tx::initiator(std::string &initiator);

// 使用示例
std::string initiator = "";
chain::tx::initiator(initiator);

2.12. chain::tx::sender

交易的触发者

// 会产生一笔交易写在区块上
// @param sender: 交易最原始的触发者,即交易里触发合约执行的操作的账户。例如某账号发起了一笔交易,该交易中有个操作是调用合约Y(该操作的source_address是x),那么合约Y执行过程中,sender的值就是x账号的地址。
// @return: 无。
void chain::tx::sender(std::string &sender);

// 使用示例
std::string sender = "";
chain::tx::sender(sender);

2.13. chain::tx::gasPrice

交易的gas价格

// 会产生一笔交易写在区块上
// @return: 交易签名里的gas价格。
int64 chain::tx::gasPrice();

// 使用示例
int64 price = 1000;
int64 result = chain::tx::gasPrice();
utils::check(result == price, "Not valid");

2.14. chain::tx::feeLimit

交易的限制费用

// 会产生一笔交易写在区块上
// @return: 交易签名里的fee_limit。
int64 chain::tx::feeLimit();

// 使用示例
int64 fee_limit = 1000000;
int64 result = chain::tx::feeLimit();
utils::check(result == fee_limit, "Not valid");

2.15. chain::tx::hash

交易的哈希值

// 会产生一笔交易写在区块上
// @param hash: 交易的hash值。
// @return: 无。
void chain::tx::hash(std::string &hash);

// 使用示例
std::string hash = "";
chain::tx::hash(hash);

2.16. chain::msg::initiator

消息的发起者

// 会产生一笔交易写在区块上
// @param initiator: 本消息的原始的发起者账号,即交易的费用付款者。
// @return: 无。
void chain::msg::initiator(std::string &initiator);

// 使用示例
std::string initiator = "";
chain::msg::initiator(initiator);

2.17. chain::msg::sender

消息的触发者

// 会产生一笔交易写在区块上
// @param sender: 本次消息的触发者账号,例如某账号发起了一笔交易,该交易中有个操作是调用合约Y(该操作的source_address是x),那么合约Y执行过程中,sender的值就是x账号的地址。
// @return: 无。
void chain::msg::sender(std::string &sender);

// 使用示例
std::string sender = "";
chain::msg::sender(sender);
chain::store("hello-sender", sender);

2.18. chain::msg::coinAmount

本次支付操作的积分

// 会产生一笔交易写在区块上
// @return: 本次支付操作的积分。
int64 chain::msg::coinAmount();

// 使用示例
int64 amount = 1000;
int64 result = chain::msg::coinAmount();
utils::check(result == amount, "Not valid");

2.19. chain::msg::nonce

本次交易里的发起者的nonce值

// 本次交易里的发起者的nonce值,即int chain::msg::initiator()账号的nonce值。
// @return: 本次交易里的发起者的nonce值。
int64 chain::msg::nonce();

// 使用示例
int64 nonce = 10;
int64 result = chain::msg::nonce();
utils::check(result == nonce, "Not valid");

2.20. chain::msg::operationIndex

触发本次合约调用的操作的序号

// 该值等于触发本次合约的操作的序号。
// 例如某账号A发起了一笔交易tx0,tx0中第0(从0开始计数)个操作是给某个合约账户转移资产(调用合约), 那么chain::msg::operationIndex()的值就是0。
// @return: 本次合约的操作的序号。
int64 chain::msg::operationIndex();

// 使用示例
int64 index = 2;
int64 result = chain::msg::operationIndex();
utils::check(result == index, "Not valid");

2.21. chain::thisAddress

当前合约账号的地址

// 该值等于该合约账号的地址。
// 例如账号x发起了一笔交易调用合约Y,本次执行过程中,该值就是Y合约账号的地址。
// @param address: 该值等于该合约账号的地址。
// @return: 无。
void chain::thisAddress(std::string &address);

// 使用示例
std::string address = "";
chain::thisAddress(address);
chain::store("hello-this-address", address);

2.22. utils::log

输出日志

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param info: 日志内容。
// @return: 无。
void utils::log(const std::string &info);

// 使用示例
std::string info = "hello";
utils::log(info);

2.23. utils::int64Add

64位加法

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param left_value: 左值,取值范围[-9223372036854775808,9223372036854775807]。
// @param right_value: 右值,取值范围[-9223372036854775808,9223372036854775807]。
// @return: 成功,返回结果,失败交易抛出异常。
int64 utils::int64Add(int64 left_value, int64 right_value);

// 使用示例
// 正常
int64 a = 100;
int64 b = 200;
int64 result = utils::int64Add(a, b);
utils::check(result == 300, "assert");
// 异常边界
int64 a = 9223372036854775807;
int64 b = 1;
int64 result = utils::int64Add(a, b);

2.24. utils::int64Sub

64位减法

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param left_value: 左值,取值范围[-9223372036854775808,9223372036854775807]。
// @param right_value: 右值,取值范围[-9223372036854775808,9223372036854775807]。
// @return: 成功,返回结果,失败交易抛出异常。
int64 utils::int64Sub(int64 left_value, int64 right_value);

// 使用示例
// 正常
int64 a = 200;
int64 b = 100;
int64 result = utils::int64Sub(a, b);
utils::check(result == 100, "assert");
// 异常边界
int64 a = -9223372036854775808;
int64 b = 1;
int64 result = utils::int64Sub(a, b);

2.25. utils::int64Mul

64位乘法

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param left_value: 左值,取值范围[-9223372036854775808,9223372036854775807]。
// @param right_value: 右值,取值范围[-9223372036854775808,9223372036854775807]。
// @return: 成功,返回结果,失败交易抛出异常。
int64 utils::int64Mul(int64 left_value, int64 right_value);

// 使用示例
// 正常
int64 a = 200;
int64 b = 100;
int64 result = utils::int64Mul(a, b);
utils::check(result == 20000, "assert");
// 异常边界
int64 a = 9223372036854775807;
int64 b = 2;
int64 result = utils::int64Mul(a, b);

2.26. utils::int64Mod

64位取模

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param left_value: 左值,取值范围[0,9223372036854775807]。
// @param right_value: 右值,取值范围(0,9223372036854775807]。
// @return: 成功,返回结果,失败交易抛出异常。
int64 utils::int64Mod(int64 left_value,int64 right_value);

// 使用示例
// 正常
int64 a = 301;
int64 b = 100;
int64 result = utils::int64Mod(a, b);
utils::check(result == 1, "assert");

2.27. utils::int64Div

64位除法

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param left_value: 左值,取值范围[0,9223372036854775807]。
// @param right_value: 右值,取值范围(0,9223372036854775807]。
// @return: 成功,返回结果,失败交易抛出异常。
int64 utils::int64Div(int64 left_value,int64 right_value);

// 使用示例
// 正常
int64 a = 12345678912345;
int64 b = 2;
int64 result = utils::int64Div(a, b);
utils::check(result == 6172839456172, "assert");

2.28. utils::check

断言

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param condition: 断言变量,当为1时候成功,0时候断言失败,交易抛出异常,取值范围[0,1]。
// @param message: 断言失败后,抛出的消息,可以在 getTransactionHistory 方法中查到该内容。
// @return: 无。
void utils::check(int condition, const std::string &message);

// 使用示例
// 正常
utils::check(1 == 1, "Not valid");
// 交易抛出异常
utils::check(1 == 2, "Not valid");

2.29. utils::addressCheck

地址合法性检查

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param address: 地址参数,字节长度范围[1,1024]。
// @return: 0表示成功,-1表示失败。
int utils::addressCheck(const std::string &address);

// 使用示例
// 正常情况
int ret = Utils::addressCheck("adxSdqkc8ooYmthwbiCsNogfyRLH51vh4V75P");
utils::check(ret == 0, "check error");
// 异常情况
int ret = Utils::addressCheck("abc");
utils::check(ret == -1, "check error");

2.30. pack

结构体打包为数据块

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param structObj: 结构体对象。
// @return: 数据块。
template<typename T>
std::vector<char> ::pack(const T& structObj);

// 使用示例
struct SampleStruct{
int32_t element1;
std::string element2;
int64_t element3;
};

SampleStruct test;
std::vector<char> data = ::pack(test);

2.31. unpack

数据块解包为结构体

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param data: 结构体对象数据块。
// @return: 结构体对象。
template<typename T>
T ::unpack<T>(const std::vector<char>& data);

// 使用示例
struct SampleStruct{
int32_t element1;
std::string element2;
int64_t element3;
};

std::vector<char> data;
SampleStruct test = ::unpack<SampleStruct>(data);

2.32. encode_base64

数据块转换为base64字符串

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param data: 需要转换的数据。
// @return: base64字符串。
std::string encode_base64(const std::vector<char>& data);

// 使用示例
std::vector<char> data = {'a'};
print(encode_base64(data));

2.33. decode_base64

base64字符串转换为数据块

// 开发者调试使用。会在对应的bubichain执行进程里,输出一段Trace级别的日志。
// @param base64str: 需要转换的base64字符串。
// @return: 数据。
std::vector<char> decode_base64(const std::string& base64str);

// 使用示例
std::string str = "YQ==";
std::vector<char> data = decode_base64(str);
print(data[0]);