# Ensure private information is already in the shell environment
# RINKEBY_RPC_URL

# ------------------------------------------------------------------------
# set some environment variables

PROXYADMIN_ADDRESS="0xb99001057c6f5c5712aa31BdFecB509768002737" # Set this
JOB_PROXY_ADDRESS="0xD6d8f49f9CDCfb02b3A23F530FB349146b28A6f6" # Set this
NEW_TOKEN_ADDRESS="0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b" # Set this (This example is Rinkeby USDC)

# ------------------------------------------------------------------------
# change the minimum bounty as a test

# schedule a change to updatePaymentTokens
RINKEBY_RPC_URL=${RINKEBY_RPC_URL} \\
  npx hardhat --network rinkeby \\
    proxy-admin-schedule \\
      --admincontract "${PROXYADMIN_ADDRESS}" \\
      --targetaddress "${JOB_PROXY_ADDRESS}" \\
      --method updatePaymentTokens \\
      --arg1 "${NEW_TOKEN_ADDRESS}" \\
      --arg2 "1" \\
      --show

# Use the displayed values and create a multisig contract in the Gnosis multisig

# Have all signing members verify the calldata
#  calldata can be found in the gnosis safe transaction proposal as "data"
npx hardhat proxy-admin-decode-calldata \\
    --targettype "JOB" \\
    --calldata "0x00000" # set this

# After scheduled and the time is passed, create another transaction to execute
RINKEBY_RPC_URL=${RINKEBY_RPC_URL} \\
  npx hardhat --network rinkeby \\
    proxy-admin-execute \\
      --admincontract "${PROXYADMIN_ADDRESS}" \\
      --targetaddress "${JOB_PROXY_ADDRESS}" \\
      --show \\
      --calldata 0x00000 --salt 0x00000000000000000000 # set these from the scheduled contract data

# Have all signing members verify the calldata
#  calldata can be found in the gnosis safe transaction proposal as "data"
npx hardhat proxy-admin-decode-calldata \\
    --targettype "JOB" \\
    --calldata "0x00000" # set this