[Release n.n] Release Script
Guidance
To alert the reader of anything of note before proceeding; Include descriptive text on execution order, things of note.
Rollout Guides
Insert links to rollout guides here
Items of Interest:
TestNet mSig Proposals:
Capture from Telegram TestNet channel
Execution Notes:
BP may execute msig via links above
For addaction and createfee actions, view transaction (after execution)
View transaction details, click ‘Block Number’, then confirm that next block is produced by clicking ‘Next’
For contract deployment (set contract) validation, run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.
Use Aloha EOS TestNet Producer Reliability Tracker to verify that no blocks are missed. Note, missed rounds will result in a post to the Telegram TestNet channel.
Use FioWatch tool to check transaction
Add new actions
Document new actions as well as validation here
[Example] ./clio.sh push action eosio addaction '{"action":"listdomain","contract":"fio.escrow","actor":"eosio"}' -p eosio
Validation (Postman): Verify new actions exist using https://fiotestnet.greymass.com/v1/chain/get_actions
Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fioaddaction
Create the new fees
Document new fees as well as validation here
[Example] ./clio.sh push action fio.fee createfee '{"end_point":"list_domain","type":"0","suf_amount":"304804402"}' -p fio.fee
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_fee, {“end_point”:”wrap_fio_domain”}
https://fiotestnet.greymass.com/v1/chain/get_table_rows
BlockPane Dev Tools
Point to TestNet and set contract=fio.fee and table=fio.fee
Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fiocreatefee
Create account and set permissions (Part 1)
(Part 1 must be done before Part 2 msigs can be created)
First, create a file called “payload.json” with the following permissions:
{
"creator": "eosio",
"name": "fio.escrow",
"owner": {
"threshold": 1,
"keys": [],
"accounts": [{
"permission": {"actor": "eosio", "permission": "active"},
"weight": 1
}],
"waits": []
},
"active": {
"threshold": 1,
"keys": [],
"accounts": [{
"permission": {"actor": "eosio", "permission": "active"},
"weight": 1
},
{
"permission": {"actor": "fio.escrow", "permission": "eosio.code"},
"weight": 1
}],
"waits": []
}
}
Next create a new account with those permissions.
[Example] ./clio.sh push action -j -s -d eosio newaccount newaccount_payload.json -p eosio@active
Validation:
View account Insert Account Creation mSig here and compare to FIO System account (specifically permissions)
System account may be retrieved via Postman at https://fiotestnet.greymass.com/v1/chain/get_account
Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioescrow2
Create account to be privileged and set RAM limits. (Part 2)
Set the account to be privileged.
[Example] ./clio.sh eosio setpriv '["fio.escrow",1]' -p eosio@active
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_account
account = fio.oracle
Expected Result: "privileged": true
Remove RAM limits on the new account, this may be called by eosio, and fio.system only!
[Example] ./clio.sh push action eosio setnolimits '{"account":"fio.escrow"}' --permission eosio@active
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_account
account = fio.oracle
Expected Result: "ram_quota": -1
Testnet example: https://fio-test.bloks.io/msig/un3emex141fp/setpriv.a
Deploy EOSIO system contract
[Example] ./clio.sh set contract eosio /opt/FIO/bin/Contracts/last/fio.system/ -p eosio
Validation: See Validation Notes for contract validation
Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys
Set the contract on the new account
[Example] ./clio.sh set contract fio.escrow /opt/FIO/bin/Contracts/last/fio.escrow/ -p fio.escrow
Validation: See Validation Notes above for contract validation
Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc
Set all other contracts
[Example] ./clio.sh set contract fio.address /opt/FIO/bin/Contracts/last/fio.address/ -p fio.address
Validation: See Validation Notes above for contract validation
Initialize the Marketplace Account (must be done after escrow contract is set)
This initializes the marketplace TESTNET admin account. Thomas will need to create a Mainnet account as well.
TESTNET: ./clio.sh push action fio.escrow setmrkplcfg '{"actor":"p325sqluvj4u", "listing_fee": "5000000000", "commission_fee": 3, "max_fee": "1000000000", "e_break": 0}' -p eosio@active
MAINNET: ./clio.sh push action fio.escrow setmrkplcfg '{"actor":"q3k31xlj413z", "listing_fee": "5000000000", "commission_fee": 3, "max_fee": "1000000000", "e_break": 0}' -p eosio@active
Validation: check fio.escrow mrkplconfigs table to confirm account was added
Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/setmrkplcfg