链上提案 (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"
        }
    ]     

PGF 提案

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

提交提案 (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