Skip to content

autonomy

linj edited this page Nov 23, 2022 · 1 revision

autonomy 接口

[TOC]

1 自治系统参数默认值以及范围

1.1 可修改参数

    // 默认公示周期,以区块高度计算,换算成时间大概一周
    publicPeriod         int32 = 17280 * 7  
    // 最小公示周期
	minPublicPeriod      int32 = 17280 * 7
	// 最大公示周期
	maxPublicPeriod      int32 = 17280 * 14
	
    // 默认重大项目公示金阈值
	largeProjectAmount         = types.Coin * 100 * 10000 
	// 最小重大项公示金目阈值
	minLargeProjectAmount      = types.Coin * 100 * 10000
	// 最大重大项公示金目阈值
	maxLargeProjectAmount      = types.Coin * 300 * 10000
	
	// 默认提案金
	proposalAmount             = types.Coin * 500         
	// 最小提案金
	minProposalAmount          = types.Coin * 20
	// 最大提案金
	maxProposalAmount          = types.Coin * 2000
	
	// 默认董事会成员赞成率,以%计
	boardApproveRatio   int32 = 51                       
	// 最小董事会赞成率
	minBoardApproveRatio      = 50
	// 最大董事会赞成率
	maxBoardApproveRatio      = 66
	
	// 默认全体持票人否决率,以%计
	pubOpposeRatio      int32 = 33                     
	// 最小全体持票人否决率
	minPubOpposeRatio   int32 = 33
	// 最大全体持票人否决率
	maxPubOpposeRatio   int32 = 50
	
	// 可以调整,但是可能需要进行范围的限制:参与率最低设置为 50%, 最高设置为 80%,赞成率,最低 50.1%,最高80%
	// 不能设置太低和太高,太低就容易作弊,太高则有可能很难达到
	// 最小全体持票人参与率
	minPubAttendRatio = 50
	// 最大全体持票人参与率
	maxPubAttendRatio = 80

	// 最小全体持票人赞成率
	minPubApproveRatio = 50
	// 最大全体持票人赞成率
	maxPubApproveRatio = 80

1.2 不可修改参数

    // 董事会成员数范围
    minBoards                 = 20
	maxBoards                 = 40                  

2 提案董事会成员

2.1 提案董事会成员 PropBoard

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "PropBoard",
            "payload": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "boards": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"],
                "startBlockHeight": 100,
                "endBlockHeight": 1000,
                "realEndBlockHeight": 0,
                "boardUpdate": 3
            }
        }    
    ]
}

参数说明:

参数 类型 是否必须 说明
year int32 提案年
month int32 提案月
day int32 提案日
boards []string 提案董事会成员
startBlockHeight int64 开始投票高度
endBlockHeight int64 结束投票高度, endBlockHeight > startBlockHeight + 720 (自治系统中所有涉及提案都需要满足)
realEndBlockHeight int64 实际投票结束高度, 不需要填写
boardUpdate int32 1:新增, 2:删除, 3:整体更新

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

2.2 撤销提案董事会成员 RvkPropBoard

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "RvkPropBoard",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropBoard的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

2.3 投票提案董事会成员 VotePropBoard

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "VotePropBoard",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd",
                "voteOption": 1,
                "originAddr": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"]
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropBoard的交易hash
voteOption int32 投票提案, 1:赞成, 2:反对, 3:弃权
originAddr []string 如果有绑定挖矿的可以将挖矿地址填入进行投票

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

2.4 终止董事会成员提案 TmintPropBoard

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "TmintPropBoard",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropBoard的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

2.5 查询提案

2.5.1 通过 proposalID 查询提案 GetProposalBoard

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetProposalBoard",
            "payload": {
                "data": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
data string 提案ID, 即PropBoard的交易hash
2.5.2 通过状态或者地址以及状态地址查询提案 ListProposalBoard

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "ListProposalBoard",
            "payload": {
                "status": 1,
                "addr": "", 
                "count": 1,
                "direction": 0,
                "height": -1,
                "index": -1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
status int32 提案状态, 1:提案申请状态, 2:提案撤销状态, 3:提案投票状态, 4:提案结束状态
addr string 提案地址
count int32 查询数量
direction int32 查询方向, 0:降序, 1:升序
height int64 查询量大翻页查询时候需要输入从某个高度开始
index int32 查询量大翻页查询时候需要输入从某个index开始

响应报文:

{
    "id": int32,
    "result": {
      "propBoards": [
        {
            "propBoard": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "boards": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"],
                "startBlockHeight": 100,
                "endBlockHeight": 1000
            },
            "curRule": {
                "boardApproveRatio": 66,
                "pubOpposeRatio": 33,
                "proposalAmount": 10000000,
                "largeProjectAmount": 100000000,
                "publicPeriod": 120960,
                "pubAttendRatio": 80,
                "pubApproveRatio": 70
            },
            "board": {
                "boards": ["12cjnN5D4DPdBQSwh6vjwJbtsW4EJALTMv","1Luh4AziYyaC5zP3hUXtXFZS873xAxm6rH"],
                "revboards": ["1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"],
                "amount": 10000000,
                "startHeight": 100
            },
            "voteResult": {
                "totalVotes": 100,
                "approveVotes": 70,
                "opposeVotes": 20,
                "pass": true
            },
            "status": 1,
            "address": "1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX",
            "height": 100,
            "index": 1,
            "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
        }
      ]
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |propBoard|json|参见(1)| |curRule.boardApproveRatio|int32|董事会赞成率| |curRule.pubAttendRatio|int32|全体持票人参与率| |curRule.pubApproveRatio|int32|全体持票人赞成率| |curRule.pubOpposeRatio|int32|全体持票人否决率| |curRule.proposalAmount|int64|提案金| |curRule.largeProjectAmount|int64|重大项目阈值| |curRule.publicPeriod|int32|公示期| |board.boards|[]string|有投票权的boards| |board.revboards|[]string|无投票权的boards| |board.amount|int64|该boards在当前周期已经审批的项目金| |board.startHeight|int64|当前周期的起始区块高度| |voteResult.totalVotes|int32|总票数| |voteResult.approveVotes|int32|赞成票| |voteResult.opposeVotes|int32|反对票| |voteResult.pass|bool|是否通过, true:通过, false:未通过| |status|int32|提案状态| |address|string|提案地址| |height|int64|提案高度| |index|int32|提案index| |proposalID|string|提案ID|

2.6 查询有效的董事会成员 GetActiveBoard

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetActiveBoard",
            "payload": {
                "data": "1"
            }
        }    
    ]
}

参数说明:

参数 类型 是否必须 说明
data string "1"

响应报文:

{
    "id": int32,
    "result": {
        "boards": ["12cjnN5D4DPdBQSwh6vjwJbtsW4EJALTMv","1Luh4AziYyaC5zP3hUXtXFZS873xAxm6rH"],
        "revboards": ["1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"],
        "amount": 10000000,
        "startHeight": 100
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |boards|[]string|有投票权的boards| |revboards|[]string|无投票权的boards| |amount|int64|该boards在当前周期已经审批的项目金| |startHeight|int64|当前周期的起始区块高度|

3 提案项目

3.1 提案项目 PropProject

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "PropProject",
            "payload": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "firstStage": "",
                "lastStage": "",
                "production": "",
                "description": "",
                "contractor": "",
                "amount": 10000000,
                "amountDetail": "",
                "toAddr": "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF",
                "startBlockHeight": 100,
                "endBlockHeight": 1000,
                "realEndBlockHeight": 0,
                "projectNeedBlockNum": 100000
            }
        }    
    ]
}

参数说明:

参数 类型 是否必须 说明
year int32 提案年
month int32 提案月
day int32 提案日
firstStage string 第一阶段提案项目hash
lastStage string 上一阶段提案项目hash
production string 项目地址
description string 项目阶段性简述
contractor string 承包人
amount int64 项目经费
amountDetail string 经费细则
toAddr string 收款地址
startBlockHeight int64 开始投票高度
endBlockHeight int64 结束投票高度, endBlockHeight > startBlockHeight + 720 (自治系统中所有涉及提案都需要满足)
realEndBlockHeight int64 实际投票结束高度, 不需要填写
projectNeedBlockNum int64 项目耗时预估(以区块计算)

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

3.2 撤销提案项目 RvkPropProject

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "RvkPropProject",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropProject的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

3.3 投票提案项目 VotePropProject

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "VotePropProject",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd",
                "vote": 1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropProject的交易hash
vote int32 投票提案, 1:赞成, 2:反对, 3:弃权

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

3.4 投票反对提案项目 PubVotePropProject

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "PubVotePropProject",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd",
                "oppose": true,
                "originAddr": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"]
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropProject的交易hash
oppose bool 是否反对该提案, true:反对, false:不反对
originAddr []string 如果有绑定挖矿的可以将挖矿地址填入进行投票

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

3.5 终止提案项目 TmintPropProject

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "TmintPropProject",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropProject的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

3.5 查询提案

3.5.1 通过 proposalID 查询提案 GetProposalProject

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetProposalProject",
            "payload": {
                "data": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
data string 提案ID, 即PropProject的交易hash
3.5.2 通过状态或者地址以及状态地址查询提案 ListProposalProject

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "ListProposalProject",
            "payload": {
                "status": 1,
                "addr": "", 
                "count": 1,
                "direction": 0,
                "height": -1,
                "index": -1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
status int32 提案状态, 1:提案申请状态, 2:提案撤销状态, 3:董事会投票状态, 4:全体持票人投票状态, 5:提案结束状态
addr string 提案地址
count int32 查询数量
direction int32 查询方向, 0:降序, 1:升序
height int64 查询量大翻页查询时候需要输入从某个高度开始
index int32 查询量大翻页查询时候需要输入从某个index开始

响应报文:

{
    "id": int32,
    "result": {
        "propProjects": [
            {
                "propProject": {
                    "year": 2019,
                    "month": 8,
                    "day": 29,
                    "projects": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"],
                    "startBlockHeight": 100,
                    "endBlockHeight": 1000
                },
                "curRule": {
                    "boardApproveRatio": 66,
                    "pubOpposeRatio": 33,
                    "proposalAmount": 10000000,
                    "largeProjectAmount": 100000000,
                    "publicPeriod": 120960,
                    "pubAttendRatio": 80,
                    "pubApproveRatio": 70
                },
                "boards": ["", "", ""],
                "boardVoteRes": {
                    "totalVotes": 30,
                    "approveVotes": 20,
                    "opposeVotes": 10,
                    "pass": true
                },
                "pubVote": {
                    "publicity": true,
                    "totalVotes": 100,
                    "opposeVotes": 10,
                    "pubPass": true
                },
                "status": 1,
                "address": "1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX",
                "height": 100,
                "index": 1,
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        ]
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |propProject|json|参见(1)| |curRule.boardApproveRatio|int32|董事会赞成率| |curRule.pubAttendRatio|int32|全体持票人参与率| |curRule.pubApproveRatio|int32|全体持票人赞成率| |curRule.pubOpposeRatio|int32|全体持票人否决率| |curRule.proposalAmount|int64|提案金| |curRule.largeProjectAmount|int64|重大项目阈值| |curRule.publicPeriod|int32|公示期| |boards|[]string|投票该提案的董事会成员| |boardVoteRes.totalVotes|int32|总票数| |boardVoteRes.approveVotes|int32|赞成票| |boardVoteRes.opposeVotes|int32|反对票| |boardVoteRes.pass|bool|是否通过, true:通过, false:未通过| |pubVote.publicity|int32|全体持票数| |pubVote.totalVotes|int32|赞成票| |pubVote.opposeVotes|int32|反对票, 反对票率决定是否通过| |pubVote.pubPass|bool|最总是否通过, true:通过, false:未通过| |status|int32|提案状态| |address|string|提案地址| |height|int64|提案高度| |index|int32|提案index| |proposalID|string|提案ID|

4 提案系统参数修改

4.1 提案系统参数修改 PropRule

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "PropRule",
            "payload": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "ruleCfg": {
                    "boardApproveRatio": 66,
                    "pubOpposeRatio": 33,
                    "proposalAmount": 10000000,
                    "largeProjectAmount": 100000000,
                    "publicPeriod": 120960,
                    "pubAttendRatio": 80,
                    "pubApproveRatio": 70
                },
                "startBlockHeight": 100,
                "endBlockHeight": 1000,
                "realEndBlockHeight": 0
            }
        }    
    ]
}

参数说明:

参数 类型 是否必须 说明
year int32 提案年
month int32 提案月
day int32 提案日
ruleCfg.boardApproveRatio int32 董事会赞成率
ruleCfg.pubAttendRatio int32 全体持票人参与率
ruleCfg.pubApproveRatio int32 全体持票人赞成率
ruleCfg.pubOpposeRatio int32 全体持票人否决率
ruleCfg.proposalAmount int64 提案金
ruleCfg.largeProjectAmount int64 重大项目阈值
ruleCfg.publicPeriod int32 公示期
startBlockHeight int64 开始投票高度
endBlockHeight int64 结束投票高度, endBlockHeight > startBlockHeight + 720 (自治系统中所有涉及提案都需要满足)
realEndBlockHeight int64 实际投票高度, 不需要填写

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

4.2 撤销提案系统参数修改 RvkPropRule

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "RvkPropRule",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropRule的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

参数 类型 说明
result string 交易十六进制编码后的字符串

4.3 投票提案系统参数修改 VotePropRule

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "VotePropRule",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd",
                "vote": 1,
                "originAddr": ["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF", "1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"]
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropRule的交易hash
vote int32 投票提案, 1:赞成, 2:反对, 3:弃权
originAddr []string 如果有绑定挖矿的可以将挖矿地址填入进行投票

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

4.4 终止提案系统参数修改 TmintPropRule

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "TmintPropRule",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropRule的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

4.5 查询提案

4.5.1 通过 proposalID 查询提案 GetProposalRule

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetProposalRule",
            "payload": {
                "data": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
data string 提案ID, 即PropRule的交易hash
4.5.2 通过状态或者地址以及状态地址查询提案 ListProposalRule

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "ListProposalRule",
            "payload": {
                "status": 1,
                "addr": "", 
                "count": 1,
                "direction": 0,
                "height": -1,
                "index": -1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
status int32 提案状态, 1:提案申请状态, 2:提案撤销状态, 3:提案投票状态, 4:提案结束状态
addr string 提案地址
count int32 查询数量
direction int32 查询方向, 0:降序, 1:升序
height int64 查询量大翻页查询时候需要输入从某个高度开始
index int32 查询量大翻页查询时候需要输入从某个index开始

响应报文:

{
    "id": int32,
    "result": {
        "propRules": [
            {
                "propRule": {
                    "year": 2019,
                    "month": 8,
                    "day": 29,
                    "ruleCfg": {
                        "boardApproveRatio": 66,
                        "pubOpposeRatio": 33,
                        "proposalAmount": 10000000,
                        "largeProjectAmount": 100000000,
                        "publicPeriod": 120960,
                        "pubAttendRatio": 80,
                        "pubApproveRatio": 70
                    },
                    "startBlockHeight": 100,
                    "endBlockHeight": 1000,
                    "realEndBlockHeight": 900
                },
                "curRule": {
                    "boardApproveRatio": 66,
                    "pubOpposeRatio": 33,
                    "proposalAmount": 10000000,
                    "largeRuleAmount": 100000000,
                    "publicPeriod": 120960,
                    "pubAttendRatio": 80,
                    "pubApproveRatio": 70
                },
                "voteResult": {
                    "totalVotes": 100,
                    "approveVotes": 70,
                    "opposeVotes": 20,
                    "pass": true
                },
                "status": 1,
                "address": "1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX",
                "height": 100,
                "index": 1,
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        ]
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |propRule|json|参见(1)| |curRule|json|参见(1)| |voteResult.totalVotes|int32|总票数| |voteResult.approveVotes|int32|赞成票| |voteResult.opposeVotes|int32|反对票| |voteResult.pass|bool|是否通过, true:通过, false:未通过| |status|int32|提案状态| |address|string|提案地址| |height|int64|提案高度| |index|int32|提案index| |proposalID|string|提案ID|

4.6 查询有效系统参数 GetActiveRule

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetActiveRule",
            "payload": {
                "data": "1"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
data string "1"

响应报文:

{
    "id": int32,
    "result": {
        "boardApproveRatio": 66,
        "pubOpposeRatio": 33,
        "proposalAmount": 10000000,
        "largeRuleAmount": 100000000,
        "publicPeriod": 120960,
        "pubAttendRatio": 80,
        "pubApproveRatio": 70
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |boardApproveRatio|int32|董事会赞成率| |pubAttendRatio|int32|全体持票人参与率| |pubApproveRatio|int32|全体持票人赞成率| |pubOpposeRatio|int32|全体持票人否决率| |proposalAmount|int64|提案金| |largeProjectAmount|int64|重大项目阈值| |publicPeriod|int32|公示期|

5 提案董事会成员修改

5.1 提案董事会成员修改 PropChange

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "PropChange",
            "payload": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "changes": [
                    {
                        "cancel": true,
                         "addr": "14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
                    }
                ],
                "startBlockHeight": 100,
                "endBlockHeight": 1000,
                "realEndBlockHeight": 0
            }
        }    
    ]
}

参数说明:

参数 类型 是否必须 说明
year int32 提案年
month int32 提案月
day int32 提案日
changes strings 一个成员只允许替换一个新的, 只能填一个
changes.cancel bool true, 只允许替换, 不允许恢复操作
changes.addr string 撤销或者添加董事会的地址
startBlockHeight int64 开始投票高度
endBlockHeight int64 结束投票高度, endBlockHeight > startBlockHeight + 720 (自治系统中所有涉及提案都需要满足)
realEndBlockHeight int64 实际投票结束高度, 不需要填写

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

5.2 撤销提案董事会成员修改 RvkPropChange

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "RvkPropChange",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropChange的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

5.3 投票提案董事会成员修改 VotePropChange

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "VotePropChange",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd",
                "vote": 1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropChange的交易hash
vote bool 投票提案, 1:赞成, 2:反对, 3:弃权

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

5.4 终止提案董事会成员修改 TmintPropChange

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "TmintPropChange",
            "payload": {
                "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID, 即PropChange的交易hash

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

5.5 查询提案

5.5.1 通过 proposalID 查询提案 GetProposalChange

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "GetProposalChange",
            "payload": {
                "data": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
data string 提案ID, 即PropChange的交易hash
5.5.2 通过状态或者地址以及状态地址查询提案 ListProposalChange

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "ListProposalChange",
            "payload": {
                "status": 1,
                "addr": "", 
                "count": 1,
                "direction": 0,
                "height": -1,
                "index": -1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
status int32 提案状态, 1:提案申请状态, 2:提案撤销状态, 3:提案投票状态, 4:提案结束状态
addr string 提案地址
count int32 查询数量
direction int32 查询方向, 0降序, 1升序
height int64 查询量大翻页查询时候需要输入从某个高度开始
index int32 查询量大翻页查询时候需要输入从某个index开始

响应报文:

{
  "id": int32,
  "result": {
      "propChanges": [
        {
            "propChange": {
                "year": 2019,
                "month": 8,
                "day": 29,
                "changes": [
                    {
                        "cancel": true,
                         "addr": "14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
                    }
                ],
                "startBlockHeight": 100,
                "endBlockHeight": 1000,
                "realEndBlockHeight": 900
            },
            "curRule": {
                "changeApproveRatio": 66,
                "pubOpposeRatio": 33,
                "proposalAmount": 10000000,
                "largeProjectAmount": 100000000,
                "publicPeriod": 120960
            },
            "board": {
                "boards": ["12cjnN5D4DPdBQSwh6vjwJbtsW4EJALTMv","1Luh4AziYyaC5zP3hUXtXFZS873xAxm6rH"],
                "revboards": ["1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"],
                "amount": 10000000,
                "startHeight": 100
            },
            "voteResult": {
                "totalVotes": 100,
                "approveVotes": 70,
                "opposeVotes": 20,
                "pass": true
            },
            "status": 1,
            "address": "1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX",
            "height": 100,
            "index": 1,
            "proposalID": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
        }
      ]
    },
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |propChange|json|参见(1)| |curRule.changeApproveRatio|int32|董事会赞成率| |curRule.pubOpposeRatio|int32|全体持票人否决率| |curRule.proposalAmount|int64|提案金| |curRule.largeProjectAmount|int64|重大项目阈值| |curRule.publicPeriod|int32|公示期| |board.boards|[]string|有投票权的boards| |board.revboards|[]string|无投票权的boards| |board.amount|int64|该boards在当前周期已经审批的项目金| |board.startHeight|int64|当前周期的起始区块高度| |voteResult.totalVotes|int32|总票数| |voteResult.approveVotes|int32|赞成票| |voteResult.opposeVotes|int32|反对票| |voteResult.pass|bool|是否通过, true:通过, false:未通过| |status|int32|提案状态| |address|string|提案地址| |height|int64|提案高度| |index|int32|提案index| |proposalID|string|提案ID|

6 评论提案

6.1 评论提案 CommentProp

请求报文:

{
    "jsonrpc":"2.0",
    "method": "Chain33.CreateTransaction",
    "params": [
        {
            "execer": "autonomy",
            "actionName": "CommentProp",
            "payload": {
                "proposalID": "",
                "repHash": "",
                "comment": ""
            }
        }
    
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 所要评论的提案
repHash string 所要回复的评论
comment string 评论

响应报文:

{
    "id": int32,
    "result": "string",
    "error": null
}

参数说明:

|参数|类型|说明| |----|----|----|----| |result|string|交易十六进制编码后的字符串|

6.2 通过提案 ID 查询所对应评论 ListProposalComment

请求报文:

{
    "method": "Chain33.Query",
    "params": [
        {
            "execer": "autonomy",
            "funcName": "ListProposalComment",
            "payload": {
                "proposalID": "", 
                "count": 1,
                "direction": 0,
                "height": -1,
                "index": -1
            }
        }
    ]
}

参数说明:

参数 类型 是否必须 说明
proposalID string 提案ID
count int32 查询数量
direction int32 查询方向, 0:降序, 1:升序
height int64 查询量大翻页查询时候需要输入从某个高度开始
index int32 查询量大翻页查询时候需要输入从某个index开始

响应报文:

{
    "id": int32,
    "result": {
        "rltCmt": [
            {
                "repHash": "",
                "comment": "",
                "height": 100,
                "index": 1,
                "hash": "0x5047974ad5b275d5173367b76cea1d9509fd669e266c8456a1c12f14b347e7dd"
            }
        ]
    },
    "error": null
}

参数说明:

参数 类型 说明
repHash string 回复的评论(hash)
comment string 评论
height int64 提案高度
index int32 提案index
hash string 评论的hash
Clone this wiki locally