Make contract migration reset script work for independent deployment
This commit is contained in:
parent
885bb75377
commit
68edf51744
@ -11,7 +11,14 @@ REGION=KE
|
|||||||
|
|
||||||
[ussd]
|
[ussd]
|
||||||
MENU_FILE=/usr/src/data/ussd_menu.json
|
MENU_FILE=/usr/src/data/ussd_menu.json
|
||||||
|
user =
|
||||||
|
pass =
|
||||||
|
|
||||||
[statemachine]
|
[statemachine]
|
||||||
STATES=/usr/src/cic-ussd/states/
|
STATES=/usr/src/cic-ussd/states/
|
||||||
TRANSITIONS=/usr/src/cic-ussd/transitions/
|
TRANSITIONS=/usr/src/cic-ussd/transitions/
|
||||||
|
|
||||||
|
[client]
|
||||||
|
host =
|
||||||
|
port =
|
||||||
|
ssl =
|
||||||
|
@ -57,10 +57,10 @@ WORKDIR /home/grassroots
|
|||||||
USER grassroots
|
USER grassroots
|
||||||
|
|
||||||
ARG pip_extra_index_url=https://pip.grassrootseconomics.net:8433
|
ARG pip_extra_index_url=https://pip.grassrootseconomics.net:8433
|
||||||
ARG cic_base_version=0.1.2a66
|
ARG cic_base_version=0.1.2a68
|
||||||
ARG cic_eth_version=0.11.0b2
|
ARG cic_eth_version=0.11.0b3
|
||||||
ARG sarafu_token_version=0.0.1a6
|
ARG sarafu_token_version=0.0.1a6
|
||||||
ARG sarafu_faucet_version=0.0.2a20
|
ARG sarafu_faucet_version=0.0.2a23
|
||||||
ARG cic_contracts_version=0.0.2a2
|
ARG cic_contracts_version=0.0.2a2
|
||||||
RUN pip install --user --extra-index-url $pip_extra_index_url cic-base[full_graph]==$cic_base_version \
|
RUN pip install --user --extra-index-url $pip_extra_index_url cic-base[full_graph]==$cic_base_version \
|
||||||
cic-eth==$cic_eth_version \
|
cic-eth==$cic_eth_version \
|
||||||
@ -71,7 +71,8 @@ RUN pip install --user --extra-index-url $pip_extra_index_url cic-base[full_grap
|
|||||||
FROM python:3.8.6-slim-buster as runtime-image
|
FROM python:3.8.6-slim-buster as runtime-image
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get install -y --no-install-recommends gnupg libpq-dev
|
RUN apt-get install -y --no-install-recommends gnupg libpq-dev
|
||||||
|
RUN apt-get install -y --no-install-recommends jq
|
||||||
|
|
||||||
COPY --from=compile-image /usr/local/bin/ /usr/local/bin/
|
COPY --from=compile-image /usr/local/bin/ /usr/local/bin/
|
||||||
COPY --from=compile-image /usr/local/etc/cic/ /usr/local/etc/cic/
|
COPY --from=compile-image /usr/local/etc/cic/ /usr/local/etc/cic/
|
||||||
|
@ -2,15 +2,19 @@
|
|||||||
|
|
||||||
set -a
|
set -a
|
||||||
|
|
||||||
|
CIC_CHAIN_SPEC=${CIC_CHAIN_SPEC:-evm:bloxberg:8995}
|
||||||
DEV_TOKEN_TYPE=${DEV_TOKEN_TYPE:-giftable}
|
DEV_TOKEN_TYPE=${DEV_TOKEN_TYPE:-giftable}
|
||||||
DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER=0xEb3907eCad74a0013c259D5874AE7f22DcBcC95C
|
|
||||||
DEV_ETH_ACCOUNT_RESERVE_MINTER=${DEV_ETH_ACCOUNT_RESERVE_MINTER:-$DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER}
|
DEV_ETH_ACCOUNT_RESERVE_MINTER=${DEV_ETH_ACCOUNT_RESERVE_MINTER:-$DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER}
|
||||||
DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER=${DEV_ETH_ACCOUNT_RESERVE_MINTER:-$DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER}
|
DEV_ETH_ACCOUNT_ACCOUNTS_INDEX_WRITER=${DEV_ETH_ACCOUNT_RESERVE_MINTER:-$DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER}
|
||||||
DEV_RESERVE_AMOUNT=${DEV_ETH_RESERVE_AMOUNT:-""10000000000000000000000000000000000}
|
DEV_RESERVE_AMOUNT=${DEV_ETH_RESERVE_AMOUNT:-""10000000000000000000000000000000000}
|
||||||
faucet_amount=${DEV_FAUCET_AMOUNT:-0}
|
faucet_amount=${DEV_FAUCET_AMOUNT:-0}
|
||||||
keystore_file=$(realpath ./keystore/UTC--2021-01-08T17-18-44.521011372Z--eb3907ecad74a0013c259d5874ae7f22dcbcc95c)
|
DEV_ETH_KEYSTORE_FILE=${DEV_ETH_KEYSTORE_FILE:-`realpath ./keystore/UTC--2021-01-08T17-18-44.521011372Z--eb3907ecad74a0013c259d5874ae7f22dcbcc95c`}
|
||||||
|
|
||||||
if [ ! -z $DEV_ETH_ACCOUNT_GAS_PRICE ]; then
|
set -e
|
||||||
|
|
||||||
|
DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER=`eth-checksum $(cat $DEV_ETH_KEYSTORE_FILE | jq -r .address)`
|
||||||
|
|
||||||
|
if [ ! -z $DEV_ETH_GAS_PRICE ]; then
|
||||||
gas_price_arg="--gas-price $DEV_ETH_GAS_PRICE"
|
gas_price_arg="--gas-price $DEV_ETH_GAS_PRICE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -24,76 +28,85 @@ echo "environment:"
|
|||||||
printenv
|
printenv
|
||||||
echo \n
|
echo \n
|
||||||
|
|
||||||
|
echo "using wallet address '$DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER' from keystore file $DEV_ETH_KEYSTORE_FILE"
|
||||||
|
|
||||||
# This is a grassroots team convention for building the Bancor contracts using the bancor protocol repository truffle setup
|
# This is a grassroots team convention for building the Bancor contracts using the bancor protocol repository truffle setup
|
||||||
# Running this in docker-internal dev container (built from Docker folder in this repo) will write a
|
# Running this in docker-internal dev container (built from Docker folder in this repo) will write a
|
||||||
# source-able env file to CIC_DATA_DIR. Services dependent on these contracts can mount this file OR
|
# source-able env file to CIC_DATA_DIR. Services dependent on these contracts can mount this file OR
|
||||||
# define these parameters at runtime
|
# define these parameters at runtime
|
||||||
# pushd /usr/src
|
# pushd /usr/src
|
||||||
|
|
||||||
|
if [ -z $CIC_DATA_DIR ]; then
|
||||||
|
CIC_DATA_DIR=`mktemp -d`
|
||||||
|
fi
|
||||||
|
>&2 echo using data dir $CIC_DATA_DIR
|
||||||
|
|
||||||
init_level_file=${CIC_DATA_DIR}/.init
|
init_level_file=${CIC_DATA_DIR}/.init
|
||||||
if [ ! -f ${CIC_DATA_DIR}/.init ]; then
|
if [ ! -f ${CIC_DATA_DIR}/.init ]; then
|
||||||
echo "Creating .init file..."
|
echo "Creating .init file..."
|
||||||
mkdir -p $CIC_DATA_DIR
|
mkdir -p $CIC_DATA_DIR
|
||||||
touch /tmp/cic/config/.init
|
touch $CIC_DATA_DIR/.init
|
||||||
# touch $init_level_file
|
# touch $init_level_file
|
||||||
fi
|
fi
|
||||||
echo -n 1 > $init_level_file
|
echo -n 1 > $init_level_file
|
||||||
|
|
||||||
# Abort on any error (including if wait-for-it fails).
|
# Abort on any error (including if wait-for-it fails).
|
||||||
set -e
|
|
||||||
|
|
||||||
# Wait for the backend to be up, if we know where it is.
|
# Wait for the backend to be up, if we know where it is.
|
||||||
if [[ -n "${ETH_PROVIDER}" ]]; then
|
if [[ -n "${ETH_PROVIDER}" ]]; then
|
||||||
echo "waiting for ${ETH_PROVIDER}..."
|
|
||||||
./wait-for-it.sh "${ETH_PROVIDER_HOST}:${ETH_PROVIDER_PORT}"
|
if [ ! -z "$DEV_USE_DOCKER_WAIT_SCRIPT" ]; then
|
||||||
|
echo "waiting for ${ETH_PROVIDER}..."
|
||||||
|
./wait-for-it.sh "${ETH_PROVIDER_HOST}:${ETH_PROVIDER_PORT}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $DEV_TOKEN_TYPE == 'giftable' ]; then
|
if [ $DEV_TOKEN_TYPE == 'giftable' ]; then
|
||||||
>&2 echo "deploying 'giftable token'"
|
>&2 echo "deploying 'giftable token'"
|
||||||
DEV_RESERVE_ADDRESS=`giftable-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $keystore_file -i $CIC_CHAIN_SPEC -v -w --name "Giftable Token" --symbol "GFT" --decimals 6 -vv`
|
DEV_RESERVE_ADDRESS=`giftable-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -vv -w --name "Giftable Token" --symbol "GFT" --decimals 6 -vv`
|
||||||
else
|
else
|
||||||
>&2 echo "deploying 'sarafu' token'"
|
>&2 echo "deploying 'sarafu' token'"
|
||||||
DEV_RESERVE_ADDRESS=`sarafu-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $keystore_file -i $CIC_CHAIN_SPEC -v -w --name "Sarafu" --decimals 6 -vv SRF $DEV_SARAFU_DEMURRAGE_LEVEL`
|
DEV_RESERVE_ADDRESS=`sarafu-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -vv -w --name "Sarafu" --decimals 6 -vv SRF $DEV_SARAFU_DEMURRAGE_LEVEL`
|
||||||
fi
|
fi
|
||||||
giftable-token-gift $gas_price_arg -p $ETH_PROVIDER -y $keystore_file -i $CIC_CHAIN_SPEC -v -w -a $DEV_RESERVE_ADDRESS $DEV_RESERVE_AMOUNT
|
giftable-token-gift $gas_price_arg -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -vv -w -a $DEV_RESERVE_ADDRESS $DEV_RESERVE_AMOUNT
|
||||||
|
|
||||||
#BANCOR_REGISTRY_ADDRESS=`cic-bancor-deploy $gas_price_arg --bancor-dir /usr/local/share/cic/bancor -z $DEV_ETH_RESERVE_ADDRESS -p $ETH_PROVIDER -o $DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER`
|
#BANCOR_REGISTRY_ADDRESS=`cic-bancor-deploy $gas_price_arg --bancor-dir /usr/local/share/cic/bancor -z $DEV_ETH_RESERVE_ADDRESS -p $ETH_PROVIDER -o $DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER`
|
||||||
|
|
||||||
>&2 echo "deploy account index contract"
|
>&2 echo "deploy account index contract"
|
||||||
DEV_ACCOUNT_INDEX_ADDRESS=`eth-accounts-index-deploy $gas_price_arg -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -y $keystore_file -vv -w`
|
DEV_ACCOUNT_INDEX_ADDRESS=`eth-accounts-index-deploy $gas_price_arg -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -vv -w`
|
||||||
>&2 echo "add deployer address as account index writer"
|
>&2 echo "add deployer address as account index writer"
|
||||||
eth-accounts-index-writer $gas_price_arg -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -a $DEV_ACCOUNT_INDEX_ADDRESS -ww $debug $DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER
|
eth-accounts-index-writer $gas_price_arg -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -a $DEV_ACCOUNT_INDEX_ADDRESS -ww -vv $debug $DEV_ETH_ACCOUNT_CONTRACT_DEPLOYER
|
||||||
|
|
||||||
CIC_REGISTRY_ADDRESS=`eth-contract-registry-deploy -i $gas_price_arg $CIC_CHAIN_SPEC -y $keystore_file --identifier BancorRegistry --identifier AccountRegistry --identifier TokenRegistry --identifier AddressDeclarator --identifier Faucet --identifier TransferAuthorization -p $ETH_PROVIDER -vv -w`
|
CIC_REGISTRY_ADDRESS=`eth-contract-registry-deploy $gas_price_arg -i $CIC_CHAIN_SPEC -y $DEV_ETH_KEYSTORE_FILE --identifier BancorRegistry --identifier AccountRegistry --identifier TokenRegistry --identifier AddressDeclarator --identifier Faucet --identifier TransferAuthorization -p $ETH_PROVIDER -vv -w`
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv ContractRegistry $CIC_REGISTRY_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv ContractRegistry $CIC_REGISTRY_ADDRESS
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv AccountRegistry $DEV_ACCOUNT_INDEX_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv AccountRegistry $DEV_ACCOUNT_INDEX_ADDRESS
|
||||||
|
|
||||||
# Deploy address declarator registry
|
# Deploy address declarator registry
|
||||||
>&2 echo "deploy address declarator contract"
|
>&2 echo "deploy address declarator contract"
|
||||||
declarator_description=0x546869732069732074686520434943206e6574776f726b000000000000000000
|
declarator_description=0x546869732069732074686520434943206e6574776f726b000000000000000000
|
||||||
DEV_DECLARATOR_ADDRESS=`eth-address-declarator-deploy -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -v $declarator_description`
|
DEV_DECLARATOR_ADDRESS=`eth-address-declarator-deploy -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -vv $declarator_description`
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv AddressDeclarator $DEV_DECLARATOR_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv AddressDeclarator $DEV_DECLARATOR_ADDRESS
|
||||||
|
|
||||||
# Deploy transfer authorization contact
|
# Deploy transfer authorization contact
|
||||||
>&2 echo "deploy address declarator contract"
|
>&2 echo "deploy address declarator contract"
|
||||||
DEV_TRANSFER_AUTHORIZATION_ADDRESS=`erc20-transfer-auth-deploy $gas_price_arg -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -v`
|
DEV_TRANSFER_AUTHORIZATION_ADDRESS=`erc20-transfer-auth-deploy $gas_price_arg -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -vv`
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv TransferAuthorization $DEV_TRANSFER_AUTHORIZATION_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv TransferAuthorization $DEV_TRANSFER_AUTHORIZATION_ADDRESS
|
||||||
|
|
||||||
# Deploy token index contract
|
# Deploy token index contract
|
||||||
>&2 echo "deploy token index contract"
|
>&2 echo "deploy token index contract"
|
||||||
DEV_TOKEN_INDEX_ADDRESS=`eth-token-index-deploy $gas_price_arg -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -v`
|
DEV_TOKEN_INDEX_ADDRESS=`eth-token-index-deploy $gas_price_arg -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -vv`
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv TokenRegistry $DEV_TOKEN_INDEX_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv TokenRegistry $DEV_TOKEN_INDEX_ADDRESS
|
||||||
>&2 echo "add reserve token to token index"
|
>&2 echo "add reserve token to token index"
|
||||||
eth-token-index-add $gas_price_arg -w -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv -a $DEV_TOKEN_INDEX_ADDRESS $DEV_RESERVE_ADDRESS
|
eth-token-index-add $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv -a $DEV_TOKEN_INDEX_ADDRESS $DEV_RESERVE_ADDRESS
|
||||||
|
|
||||||
# Sarafu faucet contract
|
# Sarafu faucet contract
|
||||||
>&2 echo "deploy token faucet contract"
|
>&2 echo "deploy token faucet contract"
|
||||||
DEV_FAUCET_ADDRESS=`sarafu-faucet-deploy $gas_price_arg -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -v --account-index-address $DEV_ACCOUNT_INDEX_ADDRESS $DEV_RESERVE_ADDRESS`
|
DEV_FAUCET_ADDRESS=`sarafu-faucet-deploy $gas_price_arg -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -w -vv --account-index-address $DEV_ACCOUNT_INDEX_ADDRESS $DEV_RESERVE_ADDRESS`
|
||||||
eth-contract-registry-set $gas_price_arg -w -y $keystore_file -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv Faucet $DEV_FAUCET_ADDRESS
|
eth-contract-registry-set $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -r $CIC_REGISTRY_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv Faucet $DEV_FAUCET_ADDRESS
|
||||||
>&2 echo "set faucet as token minter"
|
>&2 echo "set faucet as token minter"
|
||||||
giftable-token-minter $gas_price_arg -w -y $keystore_file -a $DEV_RESERVE_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv $DEV_FAUCET_ADDRESS
|
giftable-token-minter $gas_price_arg -w -y $DEV_ETH_KEYSTORE_FILE -a $DEV_RESERVE_ADDRESS -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -vv $DEV_FAUCET_ADDRESS
|
||||||
|
|
||||||
>&2 echo "set token faucet amount"
|
>&2 echo "set token faucet amount"
|
||||||
sarafu-faucet-set $gas_price_arg -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -a $DEV_FAUCET_ADDRESS $faucet_amount
|
sarafu-faucet-set $gas_price_arg -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER -a $DEV_FAUCET_ADDRESS -vv $faucet_amount
|
||||||
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
cic-base[full_graph]==0.1.2a66
|
cic-base[full_graph]==0.1.2a68
|
||||||
sarafu-faucet==0.0.2a20
|
sarafu-faucet==0.0.2a23
|
||||||
cic-eth==0.11.0b2
|
cic-eth==0.11.0b3
|
||||||
cic-types==0.1.0a10
|
cic-types==0.1.0a10
|
||||||
crypto-dev-signer==0.4.14b1
|
crypto-dev-signer==0.4.14b1
|
||||||
|
@ -85,6 +85,7 @@ services:
|
|||||||
# ETH_PROVIDER should be broken out into host/port but cic-eth expects this
|
# ETH_PROVIDER should be broken out into host/port but cic-eth expects this
|
||||||
ETH_PROVIDER: http://eth:8545
|
ETH_PROVIDER: http://eth:8545
|
||||||
# And these two are for wait-for-it (could parse this)
|
# And these two are for wait-for-it (could parse this)
|
||||||
|
DEV_USE_DOCKER_WAIT_SCRIPT: 1
|
||||||
ETH_PROVIDER_HOST: eth
|
ETH_PROVIDER_HOST: eth
|
||||||
ETH_PROVIDER_PORT: 8545
|
ETH_PROVIDER_PORT: 8545
|
||||||
CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996}
|
CIC_CHAIN_SPEC: ${CIC_CHAIN_SPEC:-evm:bloxberg:8996}
|
||||||
|
Loading…
Reference in New Issue
Block a user