From aa667951be3b35702e34ea8b1ec65b714451bc6f Mon Sep 17 00:00:00 2001 From: Louis Holbrook Date: Mon, 5 Jul 2021 10:58:08 +0000 Subject: [PATCH] Add flavors of demurrage token to dev deployment --- apps/contract-migration/docker/Dockerfile | 15 +++++++-- .../override_requirements.txt | 3 ++ apps/contract-migration/requirements.txt | 8 ++--- apps/contract-migration/reset.sh | 31 +++++++++++++------ apps/contract-migration/run_job.sh | 11 ++++++- apps/contract-migration/seed_cic_eth.sh | 5 +-- apps/util/requirements/update_base.sh | 12 ++++--- docker-compose.yml | 13 ++++++-- 8 files changed, 72 insertions(+), 26 deletions(-) create mode 100644 apps/contract-migration/override_requirements.txt diff --git a/apps/contract-migration/docker/Dockerfile b/apps/contract-migration/docker/Dockerfile index a15ac1c8..6aa16479 100644 --- a/apps/contract-migration/docker/Dockerfile +++ b/apps/contract-migration/docker/Dockerfile @@ -22,7 +22,7 @@ COPY contract-migration/nvm.sh . ENV CONFINI_DIR /usr/local/etc/cic/ RUN mkdir -vp $CONFINI_DIR -ARG cic_config_commit=35c69ba75f00c8147150acf325565d5391cf25bf +ARG cic_config_commit=0abe0867f18077907c7023bf0ef5e466a3984dd8 ARG cic_config_url=https://gitlab.com/grassrootseconomics/cic-config.git/ RUN echo Install confini schema files && \ git clone --depth 1 $cic_config_url cic-config && \ @@ -56,7 +56,9 @@ COPY contract-migration/requirements.txt . ARG pip_extra_args="" ARG pip_index_url=https://pypi.org/simple ARG pip_extra_index_url=https://pip.grassrootseconomics.net:8433 -RUN pip install --index-url https://pypi.org/simple \ +ARG pip_trusted_host=pypi.org +RUN pip install --index-url $pip_index_url \ + --trusted-host $pip_trusted_host \ --extra-index-url $pip_extra_index_url -r requirements.txt # -------------- begin runtime container ---------------- @@ -97,4 +99,13 @@ RUN chmod gu+x *.sh # USER grassroots +ARG pip_index_url=https://pypi.org/simple +ARG pip_extra_index_url=https://pip.grassrootseconomics.net:8433 +ARG pip_trusted_host=pypi.org +COPY contract-migration/override_requirements.txt . +RUN pip install --index-url $pip_index_url \ + --force-reinstall \ + --trusted-host $pip_trusted_host \ + --extra-index-url $pip_extra_index_url -r override_requirements.txt + ENTRYPOINT [ ] diff --git a/apps/contract-migration/override_requirements.txt b/apps/contract-migration/override_requirements.txt new file mode 100644 index 00000000..5c78ae38 --- /dev/null +++ b/apps/contract-migration/override_requirements.txt @@ -0,0 +1,3 @@ +#eth-contract-registry==0.5.5a3 +#erc20-demurrage-token==0.0.1b4 +#eth-address-index==0.1.1a12 diff --git a/apps/contract-migration/requirements.txt b/apps/contract-migration/requirements.txt index 291ced7a..6cd247c3 100644 --- a/apps/contract-migration/requirements.txt +++ b/apps/contract-migration/requirements.txt @@ -1,4 +1,4 @@ - cic-base[full_graph]==0.1.2b15 - sarafu-faucet==0.0.3a3 - sarafu-token==0.0.1a8 - cic-eth==0.11.0b16 +cic_base[full]==0.1.3a3+build.984b5cff +sarafu-faucet~=0.0.4a1 +cic-eth~=0.11.1a2 +erc20-demurrage-token==0.0.2a1 diff --git a/apps/contract-migration/reset.sh b/apps/contract-migration/reset.sh index fc8666a4..9a9f5318 100755 --- a/apps/contract-migration/reset.sh +++ b/apps/contract-migration/reset.sh @@ -2,8 +2,20 @@ set -a -CIC_CHAIN_SPEC=${CIC_CHAIN_SPEC:-evm:bloxberg:8995} CIC_DEFAULT_TOKEN_SYMBOL=${CIC_DEFAULT_TOKEN_SYMBOL:-GFT} +TOKEN_SYMBOL=${CIC_DEFAULT_TOKEN_SYMBOL} +cat <&2 echo using static gas price $DEV_ETH_GAS_PRICE fi -if [[ $CIC_DEFAULT_TOKEN_SYMBOL != 'GFT' && $CIC_DEFAULT_TOKEN_SYMBOL != 'SRF' ]]; then - >&2 echo CIC_DEFAULT_TOKEN_SYMBOL must be one of [GFT,SRF], but was $CIC_DEFAULT_TOKEN_SYMBOL +if [[ $TOKEN_SYMBOL != 'GFT' && $TOKEN_SYMBOL != 'SRF' ]]; then + >&2 echo TOKEN_SYMBOL must be one of [GFT,SRF], but was $TOKEN_SYMBOL exit 1 fi @@ -60,17 +72,18 @@ if [[ -n "${ETH_PROVIDER}" ]]; then ./wait-for-it.sh "${ETH_PROVIDER_HOST}:${ETH_PROVIDER_PORT}" fi - if [ $CIC_DEFAULT_TOKEN_SYMBOL == 'GFT' ]; then + if [ $TOKEN_SYMBOL == 'GFT' ]; then >&2 echo "deploying 'giftable token'" - 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` + DEV_RESERVE_ADDRESS=`giftable-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -vv -ww --name "Giftable Token" --symbol "GFT" --decimals 6 -vv` else - >&2 echo "deploying 'sarafu' token'" - 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` + >&2 echo "deploying 'redistributed demurrage token'" + if [ -z $TOKEN_SINK_ADDRESS && ! -z $TOKEN_REDISTRIBUTION_PERIOD ]; then + >&2 echo -e "\033[;93mtoken sink address not set, so redistribution will be BURNED\033[;39m" + fi + DEV_RESERVE_ADDRESS=`erc20-demurrage-token-deploy $gas_price_arg -p $ETH_PROVIDER -y $DEV_ETH_KEYSTORE_FILE -i $CIC_CHAIN_SPEC -vv -ww` fi 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` - >&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 $DEV_ETH_KEYSTORE_FILE -vv -w` >&2 echo "add deployer address as account index writer" diff --git a/apps/contract-migration/run_job.sh b/apps/contract-migration/run_job.sh index 9c4c61b6..5edb2b00 100644 --- a/apps/contract-migration/run_job.sh +++ b/apps/contract-migration/run_job.sh @@ -2,13 +2,22 @@ if [[ $((RUN_MASK & 1)) -eq 1 ]] then + >&2 echo -e "\033[;96mRUNNING\033[;39m RUN_MASK 1 - contract deployment" ./reset.sh if [ $? -ne "0" ]; then - exit 1; + >&2 echo -e "\033[;31mFAILED\033[;39m RUN_MASK 1 - contract deployment" + exit 1; fi + >&2 echo -e "\033[;32mSUCCEEDED\033[;39m RUN_MASK 1 - contract deployment" fi if [[ $((RUN_MASK & 2)) -eq 2 ]] then + >&2 echo -e "\033[;96mRUNNING\033[;39m RUN_MASK 2 - custodial service initialization" ./seed_cic_eth.sh + if [ $? -ne "0" ]; then + >&2 echo -e "\033[;31mFAILED\033[;39m RUN_MASK 2 - custodial service initialization" + exit 1; + fi + >&2 echo -e "\033[;32mSUCCEEDED\033[;39m RUN_MASK 2 - custodial service initialization" fi diff --git a/apps/contract-migration/seed_cic_eth.sh b/apps/contract-migration/seed_cic_eth.sh index 505857ee..6d4c3365 100755 --- a/apps/contract-migration/seed_cic_eth.sh +++ b/apps/contract-migration/seed_cic_eth.sh @@ -14,6 +14,7 @@ DEV_DATABASE_NAME_CIC_ETH=${DEV_DATABASE_NAME_CIC_ETH:-"cic-eth"} CIC_DATA_DIR=${CIC_DATA_DIR:-/tmp/cic} ETH_PASSPHRASE='' CIC_DEFAULT_TOKEN_SYMBOL=${CIC_DEFAULT_TOKEN_SYMBOL:-GFT} +TOKEN_SYMBOL=$CIC_DEFAULT_TOKEN_SYMBOL if [[ $CIC_DEFAULT_TOKEN_SYMBOL != 'GFT' && $CIC_DEFAULT_TOKEN_SYMBOL != 'SRF' ]]; then >&2 echo CIC_DEFAULT_TOKEN_SYMBOL must be one of [GFT,SRF], but was $CIC_DEFAULT_TOKEN_SYMBOL exit 1 @@ -98,8 +99,8 @@ echo DEV_ETH_SARAFU_TOKEN_ADDRESS=$DEV_ETH_RESERVE_ADDRESS >> $env_out_file export DEV_ETH_SARAFU_TOKEN_ADDRESS=$DEV_ETH_RESERVE_ADDRESS # Transfer tokens to gifter address ->&2 echo "transfer sarafu tokens to token gifter address" ->&2 erc20-transfer -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --token-address $DEV_RESERVE_ADDRESS -w $debug $DEV_ETH_ACCOUNT_SARAFU_GIFTER ${token_amount:0:-1} +>&2 echo "transfer tokens to token gifter address" +>&2 erc20-transfer -y $keystore_file -i $CIC_CHAIN_SPEC -p $ETH_PROVIDER --gas-limit 100000 --token-address $DEV_RESERVE_ADDRESS -w $debug $DEV_ETH_ACCOUNT_SARAFU_GIFTER ${token_amount:0:-1} #echo -n 0 > $init_level_file diff --git a/apps/util/requirements/update_base.sh b/apps/util/requirements/update_base.sh index 49eb3ee7..32f61ab1 100644 --- a/apps/util/requirements/update_base.sh +++ b/apps/util/requirements/update_base.sh @@ -9,16 +9,18 @@ fi t=$(mktemp) >&2 echo using tmp $t -repos=(../../cic-cache ../../cic-eth ../../cic-ussd ../../data-seeding ../../cic-notify) +repos=(../../cic-cache ../../cic-eth ../../cic-ussd ../../data-seeding ../../cic-notify ../../contract-migration) for r in ${repos[@]}; do f="$r/requirements.txt" >&2 echo updating $f - pyreq-update $f base_requirement.txt -vv > $t + pyreq-update $f base_requirement.txt -v > $t cp $t $f f="$r/test_requirements.txt" - >&2 echo updating $f - pyreq-update $f base_requirement.txt -vv > $t - cp $t $f + if [ -f $f ]; then + >&2 echo updating $f + pyreq-update $f base_requirement.txt -v > $t + cp $t $f + fi done diff --git a/docker-compose.yml b/docker-compose.yml index 749d9c62..d2d4d081 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -72,11 +72,11 @@ services: contract-migration: build: + dockerfile: contract-migration/docker/Dockerfile args: pip_index_url: ${PIP_DEFAULT_INDEX_URL:-https://pypi.org/simple} pip_extra_args: $PIP_EXTRA_ARGS context: apps/ - dockerfile: contract-migration/docker/Dockerfile # image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/contract-migration:latest environment: # ETH_PROVIDER should be broken out into host/port but cic-eth expects this @@ -101,9 +101,16 @@ services: DEV_PIP_EXTRA_INDEX_URL: ${DEV_PIP_EXTRA_INDEX_URL:-https://pip.grassrootseconomics.net:8433} RUN_MASK: ${RUN_MASK:-0} # bit flags; 1: contract migrations 2: seed data DEV_FAUCET_AMOUNT: ${DEV_FAUCET_AMOUNT:-0} - CIC_DEFAULT_TOKEN_SYMBOL: ${CIC_DEFAULT_TOKEN_SYMBOL:-GFT} - DEV_SARAFU_DEMURRAGE_LEVEL: ${DEV_SARAFU_DEMURRAGE_LEVEL:-196454828847045000000000000000000} + #DEV_SARAFU_DEMURRAGE_LEVEL: ${DEV_SARAFU_DEMURRAGE_LEVEL:-196454828847045000000000000000000} DEV_ETH_GAS_PRICE: ${DEV_ETH_GAS_PRICE:-1} + CIC_DEFAULT_TOKEN_SYMBOL: ${CIC_DEFAULT_TOKEN_SYMBOL:-GFT} + TOKEN_NAME: $TOKEN_NAME + TOKEN_DECIMALS: $TOKEN_DECIMALS + TOKEN_REDISTRIBUTION_PERIOD: $TOKEN_REDISTRIBUTION_PERIOD + TOKEN_SUPPLY_LIMIT: $TOKEN_SUPPLY_LIMIT + TOKEN_DEMURRAGE_LEVEL: ${TOKEN_DEMURRAGE_LEVEL:-196454828847045000000000000000000} + TOKEN_SINK_ADDRESS: $TOKEN_SINK_ADDRESS + #CONFINI_DIR: ${CONFINI_DIR:-/tmp/cic/config} command: ["./run_job.sh"] #command: ["./reset.sh"] depends_on: