链上提案 (On-chain proposals)

提案的类型

所有不同类型的提案都列在规格中。不同的提案将具有不同的权限、数据结构以及投票要求。


创建提案 (Create a proposal)

假设您有一个帐户,至少有500 NAM代币(在此示例中,我们将使用my-new-acc),让我们获取相应的地址

namada wallet address find --alias `my-new-acc`

现在,我们需要创建一个名为 proposal.json 的json文件,以保存我们提案的内容。将下面的文本复制到一个json文件中。

{
	"proposal": {
		"content": {
			"title": "One Small Step for Namada, One Giant Leap for Memekind",
			"authors": "bengt@heliax.dev",
			"discussions-to": "forum.namada.net/t/namada-proposal/1",
			"created": "2069-04-20T00:04:44Z",
			"license": "MIT",
			"abstract": "We present a proposal that will send our community to the moon. This proposal outlines all training necessary to accomplish this goal. All memers are welcome to join.",
			"motivation": "When you think about it, the moon isn't actually that far away.The moon is only 384,400 km. We have not yet brought Namada to the moon, so it is only natural to use 101 as the prime number for our modular arithmetic operations. 384,400 (mod 101) = 95. 95 km is a distance that can be easily covered by a single person in a single day. Namada was produced by more than 100 people. So 95/100 = 0, rounded to the nearest integer. This means that Namada can reach the moon in no time.",
			"details": "Bringing Namada to the moon in no time is easily achievable. We just need to pass this governance proposal and set the plan in action",
			"requires": ""
		},
		"author": "atest1v4ehgw36g9zyydzpgycy23phxuunxdesgc6nydfsxge5x3zzgscny32pxccn2wfjg5urx3fhzxhmch",
		"voting_start_epoch": 21,
		"voting_end_epoch": 24,
		"grace_epoch": 27,
		"type": {
			"Default": null
		}
	}
}

content字段中,大多数字段都是不言自明的。requires字段引用了必须在此提案执行之前通过的提案id。created字段的格式必须为YYYY-MM-DDTHH:MM:SSZ

您应更改以下值:

  • my-new-acc的地址替换Author字段;

  • voting_start_epoch替换为您希望投票开始的未来时代(必须是3的倍数);

  • voting_end_epoch替换为大于voting_start_epoch的时代,是3的倍数,之后将不再接受任何投票;

  • grace_epoch替换为大于voting_end_epoch + 6的时代,在该时代中,如果提案获得通过,将生效。

数据字段及其结构取决于提交的提案类型。下面我们概述了每种提案类型的data字段结构。上面给出的示例是针对默认提案的。


默认提案 (Default Proposal)

"data" : "<path/to/wasm.wasm>"

默认提案的data字段是可选的。这符合默认提案的性质。如果提案包含要更改治理参数的代码,则该代码将以wasm文件的形式表示,而data字段中将给出此文件的路径。

ETH Bridge 提案

"data" : "<hex-encoded-bytes-of-what-will-be-signed-by-validators>"

注意:编码将作为字符串提交

管家提案 (Steward Proposal)

"data" : [
        {
            "action" : "add",
            "address" : "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn"
        }
    ]     

管家提案的data字段是要采取的操作列表。操作可以是add或remove,地址是要添加或删除的管家的地址。这样,您可以在一个提案中添加或删除多个管家。

PGF 提案

"data" :
        {
            "continuous" : [
                {
                    "target": {
                        "amount": 420,
                        "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn"
                    },
                    "action" : "add",
                },
            ],
            "retro" : [
                {
                    "target": {
                        "amount": 1337,
                        "address": "atestatest1v4ehgw36g4pyg3j9x3qnjd3cxgmyz3fk8qcrys3hxdp5xwfnx3zyxsj9xgunxsfjg5u5xvzyzrrqtn"
                    }
                }
            ]
        },  

PGF提案的data字段包含连续和追溯性的PGF资助行动。在每个行动中,用户可以以向量的形式包括多个支付。在每个支付中,target字段包含收件人的地址以及他们将接收的NAM数量。对于连续的PGF资助,将在每个时代结束时发送指定的金额。还有一个选项可以通过指定一个已经存在的连续资助支付,然后还包括"remove"操作,从连续的PGF资助中删除一个收件人。对于追溯性的PGF资助,将立即发送指定的金额。


提交提案 (Submitting the proposal)

一旦您的proposal.json文件准备好了,您可以使用以下命令提交提案(确保处于与proposal.json文件相同的目录中):

namada client init-proposal --data-path proposal.json 

交易应该已被接受。您可以使用以下命令查询所有提案:

namada client query-proposal

或者查询单个提案:

namada client query-proposal --proposal-id 0

其中0是提案ID。


投票提案 (Vote on a proposal)

只有委托人和代表可以对提案投票。假设您属于其中一个类别,您可以使用以下命令发送投票

namada client vote-proposal \
    --proposal-id 0 \
    --vote yay \
    --signing-keys <your-alias>

其中--vote可以是yaynay


检查结果 (Check the result)

一旦分类账达到json中定义为voting_end_epoch的时代,将不再接受任何投票。在grace_epoch时代开始时,将执行在proposal_code json字段中定义的代码。您可以使用以下命令检查提案的状态:

namada client query-proposal --proposal-id 0

或者只检查结果:

namada client query-proposal-result --proposal-id 0

Last updated