[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

Validation Notes:

  • 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

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:

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