Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

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

Testnet example: https://fio-test.bloks.io/msig/gws1hlwlqhq1/fioaddaction

Create the new fees

Mainnet fees shown below (removed nft createfee calls that were testnet only):

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

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

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

./clio.sh push action fio.fee createfee '{"end_point":"set_marketplace_config","type":"0","suf_amount":"162975491203202935"}' --permission fio.fee@active

These are already on Testnet, but they have the wrong type, so we need to update:

fio.fee createfee '{"end_point":"remove_nft","type":"1","suf_amount":"147180000"}'

fio.fee createfee '{"end_point":"remove_all_nfts","type":"1","suf_amount":"289124578"}'

Deploy system contract

set contract eosio ~/fio.contracts/build/contracts/fio.system fio.system.wasm fio.system.abi --permission eosio@active

Create account and set permissions

Create the new account

create account eosio fio.escrow FIO7isxEua78KPVbGzKemH4nj2bWE52gqj8Hkac3tc7jKNvpfWzYS FIO7isxEua78KPVbGzKemH4nj2bWE52gqj8Hkac3tc7jKNvpfWzYS -p eosio@active

Set the account permissions

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@ownerp fio.fee

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

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:

Code Block
{
   "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

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.

./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

Testnet example: https://fio-test.bloks.io/msig/un3emex141fp/setpriv.a

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.

Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/updfiosys

Set the contract on the new account

./clio -u http://localhost:8889 .sh set contract -j fio.escrow /homeopt/ubuntuFIO/fio.contractsbin/buildContracts/contractslast/fio.escrow/ -p fio.escrow.wasm fio.escrow.abi --permission fio.escrow@active

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

Testnet example: https://fio-test.bloks.io/msig/bsbdk2lectan/crtfioesc

Set all other contracts

Need to confirm no other system contract changes

#fio.address

./clio.sh set contract fio.address ~/fio.contracts/build/contracts/opt/FIO/bin/Contracts/last/fio.address fio.address.wasm / -p fio.address.abi --permission fio.address@active

...

.

...

/clio.

...

sh set contract fio.reqobt ~/fio.contracts/build/contracts/opt/FIO/bin/Contracts/last/fio.request.obt fio.request.obt.wasm fio.request.obt.abi --permission fio.reqobt@active

#fio.token

/ -p fio.reqobt
./clio.sh set contract fio.token ~/fio.contracts/build/contracts/opt/FIO/bin/Contracts/last/fio.token/ -p fio.token
.wasm fio.token.abi --permission fio.token@active

#fio.treasury

/clio.sh set contract fio.treasury /Usersopt/edrFIO/reposbin/fio.contractsMKTPLC/build/contractsContracts/last/fio.treasury/ -p fio.treasury
.wasm fio.treasury.abi --permission fio.treasury@active

#fio.staking

/clio.sh set contract fio.staking /opt/UsersFIO/bin/edrContracts/reposlast/fio.contractsMKTPLC/build/contracts/staking/ -p fio.staking fio.staking.wasm fio.staking.abi --permission fio.staking@active

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

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