|
using | propose_action = eosio::action_wrapper<"propose"_n, &multisig::propose > |
|
using | approve_action = eosio::action_wrapper<"approve"_n, &multisig::approve > |
|
using | unapprove_action = eosio::action_wrapper<"unapprove"_n, &multisig::unapprove > |
|
using | cancel_action = eosio::action_wrapper<"cancel"_n, &multisig::cancel > |
|
using | exec_action = eosio::action_wrapper<"exec"_n, &multisig::exec > |
|
using | invalidate_action = eosio::action_wrapper<"invalidate"_n, &multisig::invalidate > |
|
typedef eosio::multi_index< "proposal"_n, proposal > | proposals |
|
typedef eosio::multi_index< "approvals"_n, old_approvals_info > | old_approvals |
|
typedef eosio::multi_index< "approvals2"_n, approvals_info > | approvals |
|
typedef eosio::multi_index< "invals"_n, invalidation > | invalidations |
|
|
void | propose (name proposer, name proposal_name, std::vector< permission_level > requested, ignore< transaction > trx) |
| Создает предложение транзакции. Позволяет аккаунту proposer создать предложение proposal_name с требуемыми уровнями разрешений. Подробнее...
|
|
void | approve (name proposer, name proposal_name, permission_level level, const eosio::binary_extension< eosio::checksum256 > &proposal_hash) |
| Одобряет существующее предложение. Позволяет аккаунту, владельцу level разрешения, одобрить предложение proposal_name. Подробнее...
|
|
void | unapprove (name proposer, name proposal_name, permission_level level) |
| Отзывает одобрение существующего предложения. Позволяет аккаунту отозвать свое одобрение предложения, перемещая разрешение из provided_approvals обратно в requested_approvals. Подробнее...
|
|
void | cancel (name proposer, name proposal_name, name canceler) |
| Отменяет существующее предложение. Позволяет аккаунту canceler отменить предложение proposal_name, созданное proposer. Подробнее...
|
|
void | exec (name proposer, name proposal_name, name executer) |
| Выполняет предложение. Позволяет аккаунту executer выполнить предложение, если все условия выполнены. Подробнее...
|
|
void | invalidate (name account) |
| Инвалидирует аккаунт. Позволяет аккаунту инвалидировать себя, добавляя свое имя в таблицу инвалидаций. Подробнее...
|
|
The eosio.msig
system contract allows for creation of proposed transactions which require authorization from a list of accounts, approval of the proposed transactions by those accounts required to approve it, and finally, it also allows the execution of the approved transactions on the blockchain.
In short, the workflow to propose, review, approve and then executed a transaction it can be described by the following:
- first you create a transaction json file,
- then you submit this proposal to the
eosio.msig
contract, and you also insert the account permissions required to approve this proposal into the command that submits the proposal to the blockchain,
- the proposal then gets stored on the blockchain by the
eosio.msig
contract, and is accessible for review and approval to those accounts required to approve it,
- after each of the appointed accounts required to approve the proposed transactions reviews and approves it, you can execute the proposed transaction. The
eosio.msig
contract will execute it automatically, but not before validating that the transaction has not expired, it is not cancelled, and it has been signed by all the permissions in the initial proposal's required permission list.