How to Propose an MSIG

Option 1 bloks.io:

Use bloks to propse

Option 2 vscode + nodejs:

To propose an msig you need to know:

  • account proposing the msig
  • proposer's private key
  • permission level to use for proposer
  • expiration of msig
  • proposal name
  • actions you wish to propose (can do multiple in 1 msig, as many as around 100 per msig)
Once you have that, you can clone this example repo: https://github.com/NatPDeveloper/example-eosio-msig​
Then you just need to:
  1. 1.
    update those fields in the index.js file
  2. 2.
    2. run npm i to install the nodejs modules
  3. 3.
    3. run node index.js which will push the msig

To install nodejs:

1
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
2
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
3
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
4
nvm install 16
5
nvm use 16
Copied!
And to do all of this you can use an IDE (integrated developer environment, where code is written) such as VS Code: https://code.visualstudio.com/Download​

How to use bloks.io's cleos login option to generate actions

Login to https://bloks.io using the cleos login option and choose the permission level. Then go to any contract to where you would push a transaction with Anchor or another wallet and click send where you will be able to copy and paste the action data.
1
cleos -u https://eos.greymass.com push transaction '{
2
"delay_sec": 0,
3
"max_cpu_usage_ms": 0,
4
"actions": [
5
{
6
"account": "eosio",
7
"name": "voteproducer",
8
"data": {
9
"voter": "dappgovfunds",
10
"proxy": "proxy4nation",
11
"producers": []
12
},
13
"authorization": [
14
{
15
"actor": "dappgovfunds",
16
"permission": "owner"
17
}
18
]
19
}
20
]
21
}'
Copied!
Turn into:
1
const actions = [
2
{
3
"account": "eosio",
4
"name": "voteproducer",
5
"data": {
6
"voter": "dappgovfunds",
7
"proxy": "proxy4nation",
8
"producers": []
9
},
10
"authorization": [
11
{
12
"actor": "dappgovfunds",
13
"permission": "owner"
14
}
15
]
16
}
17
// add more actions
18
// ,{
19
// account: "",
20
// name: "transfer",
21
// authorization: [
22
// {
23
// actor: msigAuthAccount,
24
// permission
25
// }
26
// ],
27
// data: {
28
// from: "",
29
// to:"",
30
// quantity:"",
31
// memo:"recover tokens"
32
// }
33
// }
34
]
Copied!