Overview
This document covers the upgrade to the FIO Protocol release of Fio 3.5 (core) and Fio.Contracts 2.9.
...
Batch #2 msigs can only be created after Batch #1 msigs are executed since they need the fio.perms account to exist in order to set the privilege and RAM limits.
...
[FIP-47] Deployment and rollout guide : Fio Contracts Update (use regproducer to update info)
Add new actions (Batch #1)
./clio -u http://localhost:8889 push action eosio addaction '{"action":"newfioacc","contract":"eosio","actor":"eosio"}' --permission eosio
...
Validation (Postman): Verify new actions exist using g
Create
...
new fees (Batch #1)
./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"new_fio_chain_account","type":"0","suf_amount":"2000000000"}' --permission fio.fee@active
...
./clio -u http://localhost:8889 push action -f fio.fee createfee '{"end_point":"register_fio_domain_address","type":"0","suf_amount":"1183130919351"}' --permission fio.fee@active
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_fee, {“end_point”:”new_fio_chain_account”}
https://fiotestnet.greymass.com/v1/chain/get_fee, {“end_point”:”update_encrypt_key”}
BlockPane Dev Tools
Point to TestNet and set contract=fio.fee and table=fio.fee
Create account and set permissions (Batch #1)
(This must be done before Batch #2 msigs are created)
First, create a file called “payload.json” with the following permissions:
...
./clio -u http://localhost:8889 push action -j -s -d eosio 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
Create account to be privileged and set RAM limits. (Batch #2)
Set the account to be privileged.
./clio -u http://localhost:8889 push action eosio setpriv '["fio.perms",1]' -p eosio@active
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_account
account = fio.perms
Expected Result: "privileged": true
...
./clio -u http://localhost:8889 push action eosio setnolimits '{"account":"fio.perms"}' --permission eosio@active
Validation:
Postman
https://fiotestnet.greymass.com/v1/chain/get_account
account = fio.perms
Expected Result: "ram_quota": -1
Deploy EOSIO system contract (Batch #3)
./clio -u http://localhost:8889 set contract -j eosio /opt/FIO/bin/Contracts/last/fio.system fio.system.wasm fio.system.abi -p eosio@active
Deploy any new system contracts and set each contract on the new account (Batch #3)
./clio -u http://localhost:8889 set contract -j fio.perms /opt/FIO/bin/Contracts/last/fio.perms -p fio.perms@active
...
Set all other contracts (Batch #3)
./clio -u http://localhost:8889 set contract -j eosio.msig /opt/FIO/bin/Contracts/last/eosio.msig eosio.msig.wasm eosio.msig.abi -p eosio.msig@active
...
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
TODO: Remove once script is finalized.
Examples
Fee: Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fiocreatefee
New Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioescrow2
Privileges: Testnet example: https://fio-test.bloks.io/msig/un3emex141fp/setpriv.a
Contract Update: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys
Set contract on Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc
Marketplace Account: Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/setmrkplcfg
...