dao/operations/terminus-update-mumbai-2022...

2.0 KiB

Update the Terminus contract

The Terminus contract is deployed as an EIP2535 Diamond proxy contract with a Terminus facet attached to it.

This checklist describes how to update the TerminusFacet on the Terminus diamond contract.

Purpose of update

Fix safeBatchTransferFrom to respect non-transferable pools.

Deployed addresses

You will modify this section as you go through the checklist

TerminusFacet address

export TERMINUS_FACET_ADDRESS=0xc9414ea1B5d9029dAbBeAD51bc8B128D7EBaa161

Environment variables

  • export DAO_NETWORK=polygon-test
  • export DAO_OWNER=<redacted>
  • export DAO_OWNER_ADDRESS=$(jq -r .address $DAO_OWNER)
  • export GAS_PRICE="5 gwei"
  • export CONFIRMATIONS=2
  • export TERMINUS_DIAMOND=0x040Cf7Ee9752936d8d280062a447eB53808EBc08

Deploy TerminusFacet

  • Deploy TerminusFacet contract
dao terminus deploy \
    --network $DAO_NETWORK \
    --sender $DAO_OWNER \
    --gas-price "$GAS_PRICE" \
    --confirmations $CONFIRMATIONS
  • Export address of deployed contract as export TERMINUS_FACET_ADDRESS=0xc9414ea1B5d9029dAbBeAD51bc8B128D7EBaa161

  • Store address of deployed contract under Deployed addresses / TerminusFacet address above

  • Replace existing methods on TerminusFacet:

dao core facet-cut \
    --address $TERMINUS_DIAMOND \
    --network $DAO_NETWORK \
    --sender $DAO_OWNER \
    --gas-price "$GAS_PRICE" \
    --confirmations $CONFIRMATIONS \
    --facet-name TerminusFacet \
    --facet-address $TERMINUS_FACET_ADDRESS \
    --action replace \
    --ignore-methods setController
  • Add setController method:
dao core facet-cut \
    --address $TERMINUS_DIAMOND \
    --network $DAO_NETWORK \
    --sender $DAO_OWNER \
    --gas-price "$GAS_PRICE" \
    --confirmations $CONFIRMATIONS \
    --facet-name TerminusFacet \
    --facet-address $TERMINUS_FACET_ADDRESS \
    --action add \
    --methods setController