Msig Contract
msig 是 multiple signature(多重簽名)的簡寫,顧名思義,就是讓多個賬戶對一起事務進行簽名。可以異步提出、批准、發佈經過多方同意的事務。多重簽名是根據賬戶或公鑰所擁有權限的權重來決定的,權重達到閾值才能簽名成功。
操作實例
dmc_client 對象是 dmc.js 的一個實例,它提供了一系列的方法,用於與區塊鏈進行交互。
以下代碼中的 dmc_client 均由下面的代碼創建,不再贅述。
1 | var DMC = require('dmc.js'); |
propose
發起提案
參數
name | type | description |
---|---|---|
proposer | string | 提案人 |
proposal_name | string | 提案名 |
requested | string | 提案通過所需權限 |
trx | string | 提案具體執行的交易內容 |
示例
以下示例中,我們將使用 dmc.token
合約中的 extransfer
操作作為提案的交易內容。
1 | let actions = [{ |
approve
同意提案
參數
name | type | description |
---|---|---|
proposer | string | 提案人 |
proposal_name | string | 提案名 |
level | string | 使用哪個權限批准這個提案 |
示例
1 | let r = dmc.transact_sync({ |
unapprove
不同意提案
參數
name | type | description |
---|---|---|
proposer | string | 提案人 |
proposal_name | string | 提案名 |
level | string | 使用哪個權限拒絕這個提案 |
示例
1 | let r = dmc.transact_sync({ |
cancel
取消提案
參數
name | type | description |
---|---|---|
proposer | string | 提案人 |
proposal_name | string | 提案名 |
canceler | string | 取消賬戶 |
示例
1 | let r = dmc.transact_sync({ |
exec
執行提案
參數
name | type | description |
---|---|---|
proposer | string | 提案人 |
proposal_name | string | 提案名 |
executer | string | 執行賬戶 |
示例
1 | let r = dmc.transact_sync({ |