OLD: Copy of New contract deployment

Add new actions

./clio.sh push action eosio addaction '{"action":"listdomain","contract":"fio.escrow","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"cxlistdomain","contract":"fio.escrow","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"buydomain","contract":"fio.escrow","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"setmrkplcfg","contract":"fio.escrow","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"cxburned","contract":"fio.escrow","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"xferescrow","contract":"fio.address","actor":"eosio"}' -p eosio

./clio.sh push action eosio addaction '{"action":"retire","contract":"fio.token","actor":"eosio"}' -p eosio

Validation: run get_actions to confirm new actions

Create the new fees


./clio.sh push action fio.fee createfee '{"end_point":"list_domain","type":"0","suf_amount":"321768535"}' -p fio.fee

./clio.sh push action fio.fee createfee '{"end_point":"cancel_list_domain","type":"0","suf_amount":"162975491"}' -p fio.fee

./clio.sh push action fio.fee createfee '{"end_point":"buy_domain","type":"0","suf_amount":"162975491"}' -p fio.fee

./clio.sh push action fio.fee createfee '{"end_point":"set_marketplace_config","type":"0","suf_amount":"162975491"}' -p fio.fee

./clio.sh push action fio.fee createfee '{"end_point":"remove_nft","type":"1","suf_amount":"147180000"}' -p fio.fee

./clio.sh push action fio.fee createfee '{"end_point":"remove_all_nfts","type":"1","suf_amount":"289124578"}' -p fio.fee

Validation: look at fio.fee fiofees table to confirm new fees

Create account and set permissions (Part 1)

(Part 1 must be done before Part 2 msigs can be created)

(OLD!) These are what we used in our devnet and are not correct for Testnet/Mainnet.

Create the new account

./clio.sh create account eosio fio.escrow FIO7isxEua78KPVbGzKemH4nj2bWE52gqj8Hkac3tc7jKNvpfWzYS FIO7isxEua78KPVbGzKemH4nj2bWE52gqj8Hkac3tc7jKNvpfWzYS -p eosio@active

Set the account permissions

./clio.sh set account permission fio.escrow active '{"threshold": 1,"keys": [{"key": "FIO7isxEua78KPVbGzKemH4nj2bWE52gqj8Hkac3tc7jKNvpfWzYS","weight": 1}],"accounts": [{"permission":{"actor":"fio.escrow","permission":"eosio.code"},"weight":1}]}}' 4000000000 owner -p fio.escrow@owner

 

(NEW!!) This is how bohdan did it:

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.

./clio.sh push action -j -s -d eosio newaccount newaccount_payload.json -p eosio@active

Validation: compare account permissions on bloks.io to existing system account

Create account to be privileged and set RAM limits. (Part 2)

Set the account to be privileged.

./clio.sh eosio setpriv '["fio.escrow",1]' -p eosio@active

Validation: get_account for fio.escrow should return: "privileged": true

Remove RAM limits on the new account, this may be called by eosio, and fio.system only!

./clio.sh push action eosio setnolimits '{"account":"fio.escrow"}' --permission eosio@active

Validation: get_account for fio.escrow should return: ”ram_quota": -1

Deploy system contract

./clio.sh set contract eosio /opt/FIO/bin/Contracts/last/fio.system/ -p eosio

Validation: run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.

Set the contract on the new account

./clio.sh set contract fio.escrow /opt/FIO/bin/Contracts/last/fio.escrow/ -p fio.escrow

Validation: run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.

Set all other contracts

./clio.sh set contract fio.address /opt/FIO/bin/Contracts/last/fio.address/ -p fio.address
./clio.sh set contract fio.reqobt /opt/FIO/bin/Contracts/last/fio.request.obt/ -p fio.reqobt
./clio.sh set contract fio.token /opt/FIO/bin/Contracts/last/fio.token/ -p fio.token
./clio.sh set contract fio.treasury /opt/FIO/bin/Contracts/last/fio.treasury/ -p fio.treasury
./clio.sh set contract fio.staking /opt/FIO/bin/Contracts/last/fio.staking/ -p fio.staking

Validation: run fio.devtools “Contract Hashes” query to confirm ABI and contract hashes match.

Initialize the Marketplace Account

This initializes the marketplace TESTNET admin account. Thomas will need to create a Mainnet account as well.

./clio.sh push action fio.escrow setmrkplcfg '{"actor":"p325sqluvj4u", "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