Skip to content

Instantly share code, notes, and snippets.

@hexonaut
Created December 3, 2020 13:43
Show Gist options
  • Save hexonaut/90f34aa729d40b6d986c72fc6868c3b6 to your computer and use it in GitHub Desktop.
Save hexonaut/90f34aa729d40b6d986c72fc6868c3b6 to your computer and use it in GitHub Desktop.
Deploy Collateral
#!/bin/bash
####################################################
# Deploy all scripts on chain to prepare for spell
#
# Requires MCD environment variables to be in scope https://changelog.makerdao.com/releases/kovan/active/contracts.json
#
# Usage: ./collateral_deploy.sh <DSS GEM JOIN DIR> <GEM JOIN VARIANT> <ILK> <TOKEN ADDRESS>
# Example: ./collateral_deploy.sh ~/dev/makerdao/dss-gem-joins GemJoin5 ETH-A 0xe3dD56821f8C422849AF4816fE9B3c53c6a2F0Bd
####################################################
cd $1
# Config
GEM_JOIN_VARIANT=$2
ILK=$(seth --to-bytes32 "$(seth --from-ascii "$3")")
TOKEN=$4
# Build everything
echo "Deploying contracts..."
# Deploy GemJoin
GEM_JOIN=$(dapp --use solc:0.5.12 build && dapp create $GEM_JOIN_VARIANT $MCD_VAT $ILK $TOKEN)
sleep 3 # Sleeps are added so the block can propagate
# Deploy new Flipper
FLIPPER_NO_CHECK=$(TX=$(seth send $FLIP_FAB 'newFlip(address,address,bytes32)(address)' $MCD_VAT $MCD_CAT $ILK --async) && seth receipt $TX logs | jq -r '.[0].address')
FLIPPER=$(seth --to-address $FLIPPER_NO_CHECK)
sleep 3
# Set up permissions
echo "Setting up permissions..."
seth send $GEM_JOIN 'rely(address)' $MCD_PAUSE_PROXY
sleep 3
seth send $GEM_JOIN 'deny(address)' $ETH_FROM
sleep 3
seth send $FLIPPER 'rely(address)' $MCD_PAUSE_PROXY
sleep 3
seth send $FLIPPER 'deny(address)' $ETH_FROM
sleep 3
echo "GemJoin: $GEM_JOIN"
echo "Flipper: $FLIPPER"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment