Skip to content

1. 提案管理API

1.1 提案查询

wallet_getPermissionList

获取合约权限列表

  • 获取指定合约的黑白名单管理员名单等信息

  • 请求参数

    • 合约地址
  • 返回值

  • 实例

    bash
    curl --location --request GET '192.168.2.12:9001' \
    --header 'Content-Type: text/plain' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getPermissionList",
        "params": [
            "zltc_V7WT2NE191FJf7rUjHoKPbTaKHbKCR8En"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": {
            "permissionMode": 1,
            "threshold": 7,
            "blackList": [],
            "whiteList": [
                "zltc_TbMJndAHmi4Z8WDnCEQX2uPzNctNFqPJd",
                "zltc_cSGdEJWw5r17uvBe8MLGQHKY4QJsfodfg",
                "zltc_j8XPWoakQzGRk4NPYheNeJFAiDBgQ25W8",
                "zltc_X9mYCE7BPTw6VGmn2SsPnifZ6JqjroYww"
            ],
            "managerList": {
                "zltc_fnvthyf8pcXeraTpqk4GM5Sa5E7TBC8ZR": 10,
                "zltc_j8XPWoakQzGRk4NPYheNeJFAiDBgQ25W8": 10
            }
        }
    }
  • 错误码

    • 2571 提案状态错误,合约不存在, 请确认合约地址是否正确,或者合约是否已经部署

wallet_getProposalById

获取提案详细内容

  • 根据提案ID获取提案详细信息

  • 请求参数

    • 提案ID
  • 返回值

    • 提案内容和提案结果

      json
      {
          "proposalContent": {}, // proposal具体内容
          "proposalResult": {
             "agreeCollection": [
                 "",
                 ""
             ],
             "againstCollection": []
          }
      }
    • proposalContent 的结构参考具体提案介绍

    • proposalResult中的agreeCollection和againstCollection的类型是 地址字符串列表

  • 实例

    bash
    curl --location --request GET 'http://192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getProposalById",
        "params": [
            "0x030000000070726f706f73616c5f616464726573736d000000000000003230323430373130"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": {
            "proposalContent": {
                "proposalId": "0x027eb68d749ce348b2be25d56cc6c48b625801f8420000000000000000",
                "proposalState": 1,
                "nonce": 0,
                "contractAddress": "zltc_btbpFhmMV88ZakUDEK45KwvSzuoSHGU68",
                "isRevoke": 3,
                "period": 0
            },
            "proposalResult": {
                "agreeCollection": [
                    "address",
                    "address"
                ],
                "againstCollection": []
            }
        }
    }
  • 错误码

    • 无错误码

wallet_getProposal

获取提案

  • 获取提案

  • 请求参数

    • json
      {
          "proposalId":  提案id,为空则按后续规则查询
          "proposalType": 提案类型,为空则返回所有类型 
          "proposalState": 提案状态,为空则返回所有状态 
          "proposalAddress": 指定地址查询特定类型的提案
        	"dateStart":开始时间(必填项)
      	"dateEnd": 结束时间(必填项)
      }
  • 返回值

    • 提案列表

      json
      [
          {
              "proposalContent": {}, // 提案具体内容 见附件2.2
              "ProposalType":        // 提案类型,int类型
          }
      ]

      proposalContent 见附件2.2

  • 示例

    bash
    curl --location --request GET 'http://192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getProposal",
        "params": [
            {
                "proposalId": "",
                "proposalType": 2,
                "proposalAddress": "zltc_YsBiB4CrsFHXMmS9my5HZWswSR7jpaS6M",
            	"dateStart":"20250101",
    			"dateEnd": "20250101",
            }
        ],
        "id": 485
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 485,
        "result": [
            {
                "proposalContent": {
                    "proposalId": "0x025d89a33667109e145cdcadcf33462d358d472d170000000000000000",
                    "proposalState": 1,
                    "Nonce": 0,
                    "contractAddress": "zltc_YsBiB4CrsFHXMmS9my5HZWswSR7jpaS6M",
                    "isRevoke": 3,
                    "period": 0
                },
                "ProposalType": 2
            }
        ]
    }
  • 错误码

    • 无错误码

wallet_getAllProposalId

获取合约权限列表

  • 获取所有提案的ID

  • 请求参数

    { "dateStart":开始时间(必填项) "dateEnd": 结束时间(必填项) }

  • 返回值

    • 提案ID列表
  • 实例

    bash
    curl --location --request GET '192.168.2.12:9001' \
    --header 'Content-Type: text/plain' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getAllProposalId",
        "params": [
            {
           		"dateStart":"20250101",
    			"dateEnd": "20250101",
            }
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": 
            [
                "0xc066797d84c2ec41b6e5dfa114ca84b57e51b19b2908222ba40cfd3cad09b814",
                "0xcf70c2238ab4bab2a1c83ee9ea31768d3070f5092f7019c650f3aac4e503bf68",
                "0xb704557725e81ad068007fd1d37fab257794bad0223c3042b89eeef3886889cb",
                "0xf6f697e652e0fbb3a4e405c44a53611799b58cce8fff8818459f4fb0ae486fda",
                "0x560574d55b96fe50c919950b8d5dc91d35edc17b3e882a6512833f16104c794d",
                "0x6076c5274ea4b13a61290bb579862ed3175e19d8cef91d7de35610cd1f8fbf3a",
                "0x966afb8b564173c54a8a674e573b16e109ead0c642b7c7f7228ae9496c696e25",
                "0x9d38707fba3328d6bbda44f6009310d2b3e4b6ee90441f50fb8687d33ab95d0b",
                "0xb516e728eae5121ac1fd7df52c6d2ea793bb7a9d3b4a206bd7ac57b57f294ea2",
                "0xf6184690a964067f28017287c7eb1503d476fa60a925a1d6f1efafdde41d9635"
                "0x698922b82faf3d6befaa610ecadb46d45acd160dc5a5dcf8087831d760222b37"
                "0x007e42cfc0e477e5af8f8e2841d13c5c9aa99d36e015e21fa96e19181c8cc3de"
            ]
        
    }
  • 错误码

    • 无错误码

wallet_getVoteById

根据投票ID获取投票详细

  • 请求参数

    { "voteId": 0x1234 }

  • 返回值

    • 投票详情
  • 实例

    bash
    curl --location --request GET 'http://127.0.0.1:54006' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getVoteById",
        "params": [     			"0x04015188e430e42a9c14be15b1515465d0aa4382996400000000000000013230323430393034"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": {
            "voteId": "",
            "proposalId": "",
            "voteSuggestion": "",
            "address": "",
            "proposalType": "",
            "nonce": "",
            "createAt": ""
        }    
    }
  • 错误码

    • 无错误码

wallet_getVote

根据投票ID获取投票详细

  • 请求参数

    json
    {
        "owner":  账户地址(必填项)
        "suggestion": 投票建议(必填项,0:反对票 1:同意票 2:所有)
      	"dateStart":开始时间(必填项)
    	"dateEnd": 结束时间(必填项)
    }
  • 实例

    bash
    curl --location --request GET 'http://127.0.0.1:54006' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getVote",
        "params": [
            {
                "owner": "zltc_Xw6WF5iFFA2ujhj12DN6HRZ5wk2azEc1R",
                "suggestion": 2,
                "dateStart": "20240711",
                "dateEnd": "20240712"
            }
        ],
        "id": 485
    }'
  • 返回值

    • 符合条件的投票id列表
  • 返回值示例

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": [
            "0x04015188e430e42a9c14be15b1515465d0aa4382996400000000000000013230323430393034".
            "0x04015188e430e42a9c14be15b1515465d0aa4382996400000000000000013230323430393034"
        ]   
    }
  • 错误码

    • 无错误码

1.2 提案发起(获取发起提案的code)

通过下面这些接口获取Code后,通过code调用预置合约生产->提案ID

合约内部管理

wallet_getContractInnerManagerCode

获取发起合约内部管理决策的Code

  • 请求参数(顺序不能变)

    • 合约地址
    • 操作命令(3.2有详细说明操作命令)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getContractInnerManagerCode",
        "params": [
            "zltc_RQ24mGatWkocpVEhWNS3Q6Q9xSBQ3Qkc6",
            "CWzltc_TbMJndAHmi4Z8WDnCEQX2uPzNctNFqPJd"
        ],
        "id": 481
    }'
  • 返回值

    • code
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x65aba7570000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002843577a6c74635f54624d4a6e6441486d69345a3857446e434551583275507a4e63744e4671504a64000000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getContractInnerManagerCode

获取发起初始化合约内部管理的code

  • 请求参数(顺序不能变)

    {
        "contractAddress": "合约地址",
        "permissionList": {
            "permissionMode": 1,
            "threshold": 0,
            "blackList": [],
            "whiteList": [],
            "managerList": [
                {
                    "address": "zltc_Xmk6g2Lgxitrx4xEPUZgF4hHdnHwDcBuU",
                    "weight": 10
                }
            ]
        }
    }
  • 实例

    bash
    curl --location --request GET 'http://127.0.0.1:54006' \
    --header 'chainId: 123' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getInitContractInnerManagerCode",
        "params": [
            {
                "contractAddress": "zltc_TArLkGjatNkY8X8uJTDwjw7qC2LR1rHcR",
                "permissionList": {
                    "permissionMode": 1,
                    "threshold": 0,
                    "blackList": [],
                    "whiteList": [],
                    "managerList": [
                       {
                            "address": "zltc_Xmk6g2Lgxitrx4xEPUZgF4hHdnHwDcBuU",
                            "weight": 10
                        }
                    ]
                }
            }
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x65aba7570000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002843577a6c74635f54624d4a6e6441486d69345a3857446e434551583275507a4e63744e4671504a64000000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

合约生命周期

wallet_getNewSuspendCode

获取合约生命周期的相关code

eg. 吊销,解冻,冻结

  • 请求参数(顺序不能变)

    • 合约地址
    • 0/1/2(4.2有详细说明操作命令)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getNewSuspendCode",
        "params": [
            "zltc_RQ24mGatWkocpVEhWNS3Q6Q9xSBQ3Qkc6",
            1
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x65d4b8b50000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a0000000000000000000000000000000000000000000000000000000000000001"
    }
  • 错误码

    • 无错误码

链配置更改

wallet_getChangePeriodCode

获取更改出块间隔的code

  • 请求参数

    • 出块间隔(字符串)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getChangePeriodCode",
        "params": [
            "3000"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0xa4bf13610000000000000000000000000000000000000000000000000000000000000bb8"
    }
  • 错误码

    • 无错误码

wallet_getAddLatcSaintCode

获取添加共识节点的code

  • 请求参数

    • 合约地址的数组
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getAddLatcSaintCode",
        "params": [
            ["zltc_RQ24mGatWkocpVEhWNS3Q6Q9xSBQ3Qkc6"]
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x8bd24adc000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a"
    }
  • 错误码

    • 无错误码

wallet_getDelLatcSaintCode

获取删除共识节点的code

  • 请求参数

    • 合约地址的数组
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getDelLatcSaintCode",
        "params": [
            ["zltc_RQ24mGatWkocpVEhWNS3Q6Q9xSBQ3Qkc6"]
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x08ce76a7000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a"
    }
  • 错误码

    • 无错误码

wallet_getReplaceLatcSaintCode

获取替换共识节点的code

  • 请求参数

    参数名参数类型
    oldSaint地址原共识节点地址
    newSaint地址新的共识节点地址
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET 'http://192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getReplaceLatcSaintCode",
        "params": [
           {
             "oldSaint": "zltc_g2L1GFdBZW6wHRBs1uZNDWeHjvMErzwri",
             "newSaint": "zltc_Xmk6g2Lgxitrx4xEPUZgF4hHdnHwDcBuU"
           }
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x08ce76a7000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a"
    }
  • 错误码

    • 无错误码

wallet_getReplacePreacherCode

获取替换盟主的code

  • 请求参数

    参数名参数类型
    oldSaint地址原盟主节点地址
    newSaint地址新的原盟主节点地址
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET 'http://192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getReplacePreacherCode",
        "params": [
           {
             "oldSaint": "zltc_g2L1GFdBZW6wHRBs1uZNDWeHjvMErzwri",
             "newSaint": "zltc_Xmk6g2Lgxitrx4xEPUZgF4hHdnHwDcBuU"
           }
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x08ce76a7000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000b9d798fe5a6df07f93a7a8a3e106b5ed5aa800a"
    }
  • 错误码

    • 无错误码

wallet_getChangeIsDictatorshipCode

获取更改合约生命周期投票通过策略的code

  • 请求参数

    • true/false (是否是盟主独裁)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getChangeIsDictatorshipCode",
        "params": [
            false
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x531770b30000000000000000000000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getChangeDeployRuleCode

获取更改合约生命周期部署阶段投票通过策略的code

  • 请求参数

  • 返回值

    • code
  • 实例

    bash
    {
        "jsonrpc": "2.0",
        "method": "wallet_getChangeDeployRuleCode",
        "params": [
            2
        ],
        "id": 481
    }
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x3e719df00000000000000000000000000000000000000000000000000000000000000002"
    }
  • 错误码

    • 无错误码

wallet_getChangeNoEmptyAnchor

获取更改合约无交易增加出块时间开关的code

  • 请求参数

    • true/false (开启或关闭无交易增加出块时间)
  • 返回值

    • code
  • 实例

    bash
    {
        "jsonrpc": "2.0",
        "method": "wallet_getChangeNoEmptyAnchor",
        "params": [
            true
        ],
        "id": 481
    }
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x4864b6ef0000000000000000000000000000000000000000000000000000000000000001"
    }
  • 错误码

    • 无错误码

wallet_getSwitchIsContractVote

获取开关合约生命周期的code

  • 请求参数

    • true/false
  • 返回值

    • code
  • 实例

    bash
    {
        "jsonrpc": "2.0",
        "method": "wallet_getSwitchIsContractVote",
        "params": [
            false
        ],
        "id": 481
    }
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0xb223a59b0000000000000000000000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getSwitchContractPermission

获取开关合约内部管理的code

  • 请求参数

    • true/false
  • 返回值

    • code
  • 实例

    bash
    {
        "jsonrpc": "2.0",
        "method": "wallet_getSwitchContractPermission",
        "params": [
            true
        ],
        "id": 481
    }
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x6bbb4f0a0000000000000000000000000000000000000000000000000000000000000001"
    }
  • 错误码

    • 无错误码

1.3 提案决策

wallet_getVoteCode

获取提案投票code

  • 请求参数

    • 提案ID(字符串)
    • 0/1 (反对/同意)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getVoteCode",
        "params": [
            "123132131",
            1
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x90ca27f30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000093132333133323133310000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getRefreshCode

获取提案投票刷新的code,用来刷新提案的结果

  • 请求参数

    • 提案ID(字符串)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET '192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getVoteCode",
        "params": [
            "123132131"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x90ca27f30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000093132333133323133310000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getCancelCode

获取取消提案的code

  • 请求参数

    • 提案ID(字符串)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET 'http://192.168.2.12:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getCancelCode",
        "params": [
            "0x025d89a33667109e145cdcadcf33462d358d472d170000000000000000"
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x90ca27f30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000093132333133323133310000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

wallet_getChangeProposalExpireTime

获取修改提案过期时间的code

  • 请求参数

    • 过期时间 (单位:天)
  • 返回值

    • code
  • 实例

    bash
    curl --location --request GET 'http://192.168.31.26:5001' \
    --header 'Content-Type: application/json' \
    --data '{
        "jsonrpc": "2.0",
        "method": "wallet_getChangeProposalExpireTime",
        "params": [
            1
        ],
        "id": 481
    }'
  • 返回结果

    json
    {
        "jsonRpc": "2.0",
        "id": 481,
        "result": "0x90ca27f30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000093132333133323133310000000000000000000000000000000000000000000000"
    }
  • 错误码

    • 无错误码

Released under the MIT License.