Ultimate E2E for ERC TO NATIVE (#182)
* Introducing ultimate erc-to-native, with ultimate-commons * Ports * group * up * Addresses * Typo. * Redis key * Redis key as a parameter * ultimate * parameters * job name * jobs * Cosmetics * cosmetics * cosmetics * jobs * Descriptions
This commit is contained in:
parent
c865198290
commit
76daf5a436
@ -45,6 +45,9 @@ orbs:
|
|||||||
paths:
|
paths:
|
||||||
- ~/.cache/yarn
|
- ~/.cache/yarn
|
||||||
wait-for-oracle:
|
wait-for-oracle:
|
||||||
|
parameters:
|
||||||
|
redis-key:
|
||||||
|
type: string
|
||||||
steps:
|
steps:
|
||||||
- run:
|
- run:
|
||||||
name: Install redis tools
|
name: Install redis tools
|
||||||
@ -54,7 +57,7 @@ orbs:
|
|||||||
command: |
|
command: |
|
||||||
set +e
|
set +e
|
||||||
i=0
|
i=0
|
||||||
while [[ $(redis-cli GET native-erc-collected-signatures:lastProcessedBlock) = "" ]]; do
|
while [[ $(redis-cli GET << parameters.redis-key >> ) ]]; do
|
||||||
((i++))
|
((i++))
|
||||||
if [ "$i" -gt 30 ]
|
if [ "$i" -gt 30 ]
|
||||||
then
|
then
|
||||||
@ -177,8 +180,18 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run: deployment/molecule/molecule.sh monitor
|
- run: deployment/molecule/molecule.sh monitor
|
||||||
ultimate-native-to-erc:
|
ultimate:
|
||||||
executor: tokenbridge-orb/machine-with-docker-caching
|
executor: tokenbridge-orb/machine-with-docker-caching
|
||||||
|
parameters:
|
||||||
|
scenario-name:
|
||||||
|
description: "Molecule scenario name used to create the infrastructure"
|
||||||
|
type: string
|
||||||
|
redis-key:
|
||||||
|
description: "Redis key checked for non-emptiness to assert if Oracle is running"
|
||||||
|
type: string
|
||||||
|
ui-e2e-grep:
|
||||||
|
description: "Mocha grep string used to run ui-e2e tests specific to given type of bridge"
|
||||||
|
type: string
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run: git submodule update --init
|
- run: git submodule update --init
|
||||||
@ -188,15 +201,16 @@ jobs:
|
|||||||
- tokenbridge-orb/yarn-install-cached-on-machine
|
- tokenbridge-orb/yarn-install-cached-on-machine
|
||||||
- run:
|
- run:
|
||||||
name: Prepare the infrastructure
|
name: Prepare the infrastructure
|
||||||
command: e2e-commons/up.sh deploy native-to-erc
|
command: e2e-commons/up.sh deploy << parameters.scenario-name >>
|
||||||
no_output_timeout: 30m
|
no_output_timeout: 30m
|
||||||
- tokenbridge-orb/wait-for-oracle
|
- tokenbridge-orb/wait-for-oracle:
|
||||||
|
redis-key: << parameters.redis-key >>
|
||||||
- run:
|
- run:
|
||||||
name: Run the ui-e2e tests
|
name: Run the ui-e2e tests
|
||||||
command: |
|
command: |
|
||||||
nvm use default;
|
nvm use default;
|
||||||
node ./e2e-commons/scripts/blocks.js &
|
node ./e2e-commons/scripts/blocks.js &
|
||||||
cd ui-e2e; yarn mocha -g "NATIVE TO ERC" -b ./test.js
|
cd ui-e2e; yarn mocha -g "<< parameters.ui-e2e-grep >>" -b ./test.js
|
||||||
workflows:
|
workflows:
|
||||||
tokenbridge:
|
tokenbridge:
|
||||||
jobs:
|
jobs:
|
||||||
@ -226,4 +240,13 @@ workflows:
|
|||||||
- deployment-oracle
|
- deployment-oracle
|
||||||
- deployment-ui
|
- deployment-ui
|
||||||
- deployment-monitor
|
- deployment-monitor
|
||||||
- ultimate-native-to-erc
|
- ultimate:
|
||||||
|
name: "ultimate: native to erc"
|
||||||
|
scenario-name: native-to-erc
|
||||||
|
redis-key: native-erc-collected-signatures:lastProcessedBlock
|
||||||
|
ui-e2e-grep: "NATIVE TO ERC"
|
||||||
|
- ultimate:
|
||||||
|
name: "ultimate: erc to native"
|
||||||
|
scenario-name: erc-to-native
|
||||||
|
redis-key: erc-native-collected-signatures:lastProcessedBlock
|
||||||
|
ui-e2e-grep: "ERC TO NATIVE"
|
||||||
|
7
deployment/group_vars/erc-to-native.yml
Normal file
7
deployment/group_vars/erc-to-native.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
BRIDGE_MODE: "ERC_TO_NATIVE"
|
||||||
|
HOME_BRIDGE_ADDRESS: "0x488Af810997eD1730cB3a3918cD83b3216E6eAda"
|
||||||
|
FOREIGN_BRIDGE_ADDRESS: "0x488Af810997eD1730cB3a3918cD83b3216E6eAda"
|
||||||
|
ERC20_TOKEN_ADDRESS: "0x3C665A31199694Bf723fD08844AD290207B5797f"
|
||||||
|
UI_PORT: 3002
|
||||||
|
MONITOR_PORT: 3012
|
@ -1,56 +1,7 @@
|
|||||||
---
|
---
|
||||||
## General settings
|
|
||||||
BRIDGE_MODE: "NATIVE_TO_ERC"
|
BRIDGE_MODE: "NATIVE_TO_ERC"
|
||||||
HOME_NATIVE_NAME: "POA"
|
|
||||||
ALLOW_HTTP: yes
|
|
||||||
LOG_LEVEL: debug
|
|
||||||
|
|
||||||
## Home contract
|
|
||||||
HOME_RPC_URL: "https://sokol.poa.network"
|
|
||||||
HOME_NAME: "POA Sokol"
|
|
||||||
HOME_WITHOUT_EVENTS: false
|
|
||||||
HOME_BRIDGE_ADDRESS: "0x32198D570fffC7033641F8A9094FFDCaAEF42624"
|
HOME_BRIDGE_ADDRESS: "0x32198D570fffC7033641F8A9094FFDCaAEF42624"
|
||||||
HOME_POLLING_INTERVAL: 5000
|
|
||||||
|
|
||||||
## Foreign contract
|
|
||||||
FOREIGN_RPC_URL: "https://sokol.poa.network"
|
|
||||||
FOREIGN_NAME: "Kovan"
|
|
||||||
FOREIGN_WITHOUT_EVENTS: false
|
|
||||||
FOREIGN_BRIDGE_ADDRESS: "0x2B6871b9B02F73fa24F4864322CdC78604207769"
|
FOREIGN_BRIDGE_ADDRESS: "0x2B6871b9B02F73fa24F4864322CdC78604207769"
|
||||||
ERC20_TOKEN_ADDRESS: "0xdbeE25CbE97e4A5CC6c499875774dc7067E9426B"
|
ERC20_TOKEN_ADDRESS: "0xdbeE25CbE97e4A5CC6c499875774dc7067E9426B"
|
||||||
FOREIGN_POLLING_INTERVAL: 1000
|
|
||||||
|
|
||||||
## Home Gasprice
|
|
||||||
HOME_GAS_PRICE_ORACLE_URL: "https://gasprice.poa.network/"
|
|
||||||
HOME_GAS_PRICE_SPEED_TYPE: "standard"
|
|
||||||
HOME_GAS_PRICE_FALLBACK: 1000000000 # in wei
|
|
||||||
HOME_GAS_PRICE_UPDATE_INTERVAL: 600000
|
|
||||||
HOME_GAS_PRICE_FACTOR: 1
|
|
||||||
|
|
||||||
## Foreign Gasprice
|
|
||||||
FOREIGN_GAS_PRICE_ORACLE_URL: "https://gasprice.poa.network/"
|
|
||||||
FOREIGN_GAS_PRICE_SPEED_TYPE: "standard"
|
|
||||||
FOREIGN_GAS_PRICE_FALLBACK: 1000000000 # in wei
|
|
||||||
FOREIGN_GAS_PRICE_UPDATE_INTERVAL: 600000
|
|
||||||
FOREIGN_GAS_PRICE_FACTOR: 1
|
|
||||||
|
|
||||||
## UI
|
|
||||||
UI_TITLE: "TokenBridge UI app - %c"
|
|
||||||
UI_DESCRIPTION: "The POA cross-chain bridge serves as a method of transferring POA native tokens from the POA Network to the Ethereum network in a quick and cost-efficient manner."
|
|
||||||
UI_PORT: 3000
|
UI_PORT: 3000
|
||||||
UI_HOME_EXPLORER_TX_TEMPLATE: https://blockscout.com/poa/sokol/tx/%s
|
MONITOR_PORT: 3010
|
||||||
UI_FOREIGN_EXPLORER_TX_TEMPLATE: https://blockscout.com/eth/kovan/tx/%s
|
|
||||||
UI_HOME_EXPLORER_ADDRESS_TEMPLATE: https://blockscout.com/poa/sokol/address/%s
|
|
||||||
UI_FOREIGN_EXPLORER_ADDRESS_TEMPLATE: https://blockscout.com/eth/kovan/address/%s
|
|
||||||
UI_HOME_GAS_PRICE_FALLBACK: 1000000000
|
|
||||||
UI_FOREIGN_GAS_PRICE_FALLBACK: 1000000000
|
|
||||||
|
|
||||||
## Monitor
|
|
||||||
MONITOR_PORT: 3003
|
|
||||||
MONITOR_HOME_DEPLOYMENT_BLOCK: 0
|
|
||||||
MONITOR_FOREIGN_DEPLOYMENT_BLOCK: 0
|
|
||||||
MONITOR_HOME_GAS_LIMIT: 300000
|
|
||||||
MONITOR_FOREIGN_GAS_LIMIT: 300000
|
|
||||||
MONITOR_HOME_GAS_PRICE_FALLBACK: 1000000000
|
|
||||||
MONITOR_FOREIGN_GAS_PRICE_FALLBACK: 1000000000
|
|
||||||
MONITOR_LEFT_TX_THRESHOLD: 100
|
|
||||||
|
56
deployment/group_vars/ultimate.yml
Normal file
56
deployment/group_vars/ultimate.yml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
## General settings
|
||||||
|
# BRIDGE_MODE: ""
|
||||||
|
HOME_NATIVE_NAME: "POA"
|
||||||
|
ALLOW_HTTP: yes
|
||||||
|
LOG_LEVEL: debug
|
||||||
|
|
||||||
|
## Home contract
|
||||||
|
HOME_RPC_URL: "https://sokol.poa.network"
|
||||||
|
HOME_NAME: "POA Sokol"
|
||||||
|
HOME_WITHOUT_EVENTS: false
|
||||||
|
# HOME_BRIDGE_ADDRESS: "0x32198D570fffC7033641F8A9094FFDCaAEF42624"
|
||||||
|
HOME_POLLING_INTERVAL: 5000
|
||||||
|
|
||||||
|
## Foreign contract
|
||||||
|
FOREIGN_RPC_URL: "https://sokol.poa.network"
|
||||||
|
FOREIGN_NAME: "Kovan"
|
||||||
|
FOREIGN_WITHOUT_EVENTS: false
|
||||||
|
# FOREIGN_BRIDGE_ADDRESS: "0x2B6871b9B02F73fa24F4864322CdC78604207769"
|
||||||
|
# ERC20_TOKEN_ADDRESS: "0xdbeE25CbE97e4A5CC6c499875774dc7067E9426B"
|
||||||
|
FOREIGN_POLLING_INTERVAL: 1000
|
||||||
|
|
||||||
|
## Home Gasprice
|
||||||
|
HOME_GAS_PRICE_ORACLE_URL: "https://gasprice.poa.network/"
|
||||||
|
HOME_GAS_PRICE_SPEED_TYPE: "standard"
|
||||||
|
HOME_GAS_PRICE_FALLBACK: 1000000000 # in wei
|
||||||
|
HOME_GAS_PRICE_UPDATE_INTERVAL: 600000
|
||||||
|
HOME_GAS_PRICE_FACTOR: 1
|
||||||
|
|
||||||
|
## Foreign Gasprice
|
||||||
|
FOREIGN_GAS_PRICE_ORACLE_URL: "https://gasprice.poa.network/"
|
||||||
|
FOREIGN_GAS_PRICE_SPEED_TYPE: "standard"
|
||||||
|
FOREIGN_GAS_PRICE_FALLBACK: 1000000000 # in wei
|
||||||
|
FOREIGN_GAS_PRICE_UPDATE_INTERVAL: 600000
|
||||||
|
FOREIGN_GAS_PRICE_FACTOR: 1
|
||||||
|
|
||||||
|
## UI
|
||||||
|
UI_TITLE: "TokenBridge UI app - %c"
|
||||||
|
UI_DESCRIPTION: "The POA cross-chain bridge serves as a method of transferring POA native tokens from the POA Network to the Ethereum network in a quick and cost-efficient manner."
|
||||||
|
# UI_PORT: 3000
|
||||||
|
UI_HOME_EXPLORER_TX_TEMPLATE: https://blockscout.com/poa/sokol/tx/%s
|
||||||
|
UI_FOREIGN_EXPLORER_TX_TEMPLATE: https://blockscout.com/eth/kovan/tx/%s
|
||||||
|
UI_HOME_EXPLORER_ADDRESS_TEMPLATE: https://blockscout.com/poa/sokol/address/%s
|
||||||
|
UI_FOREIGN_EXPLORER_ADDRESS_TEMPLATE: https://blockscout.com/eth/kovan/address/%s
|
||||||
|
UI_HOME_GAS_PRICE_FALLBACK: 1000000000
|
||||||
|
UI_FOREIGN_GAS_PRICE_FALLBACK: 1000000000
|
||||||
|
|
||||||
|
## Monitor
|
||||||
|
# MONITOR_PORT: 3003
|
||||||
|
MONITOR_HOME_DEPLOYMENT_BLOCK: 0
|
||||||
|
MONITOR_FOREIGN_DEPLOYMENT_BLOCK: 0
|
||||||
|
MONITOR_HOME_GAS_LIMIT: 300000
|
||||||
|
MONITOR_FOREIGN_GAS_LIMIT: 300000
|
||||||
|
MONITOR_HOME_GAS_PRICE_FALLBACK: 1000000000
|
||||||
|
MONITOR_FOREIGN_GAS_PRICE_FALLBACK: 1000000000
|
||||||
|
MONITOR_LEFT_TX_THRESHOLD: 100
|
14
deployment/molecule/ultimate-erc-to-native/Dockerfile.j2
Normal file
14
deployment/molecule/ultimate-erc-to-native/Dockerfile.j2
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Molecule managed
|
||||||
|
|
||||||
|
{% if item.registry is defined %}
|
||||||
|
FROM {{ item.registry.url }}/{{ item.image }}
|
||||||
|
{% else %}
|
||||||
|
FROM {{ item.image }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
||||||
|
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python*-dnf bash && dnf clean all; \
|
||||||
|
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
||||||
|
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \
|
||||||
|
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \
|
||||||
|
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi
|
56
deployment/molecule/ultimate-erc-to-native/molecule.yml
Normal file
56
deployment/molecule/ultimate-erc-to-native/molecule.yml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
platforms:
|
||||||
|
- name: oracle-erc-to-native-host
|
||||||
|
groups:
|
||||||
|
- ultimate
|
||||||
|
- erc-to-native
|
||||||
|
children:
|
||||||
|
- oracle
|
||||||
|
image: ubuntu:16.04
|
||||||
|
privileged: true
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- name: ui-erc-to-native-host
|
||||||
|
groups:
|
||||||
|
- ultimate
|
||||||
|
- erc-to-native
|
||||||
|
children:
|
||||||
|
- ui
|
||||||
|
image: ubuntu:16.04
|
||||||
|
privileged: true
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
playbooks:
|
||||||
|
prepare: ../prepare.yml
|
||||||
|
converge: ../ultimate-commons/converge.yml
|
||||||
|
inventory:
|
||||||
|
host_vars:
|
||||||
|
oracle-erc-to-native-host:
|
||||||
|
bridge_repo_branch: $CODEBASE_BRANCH
|
||||||
|
HOME_RPC_URL: "http://parity1:8545"
|
||||||
|
FOREIGN_RPC_URL: "http://parity2:8545"
|
||||||
|
VALIDATOR_ADDRESS: "0xaaB52d66283F7A1D5978bcFcB55721ACB467384b"
|
||||||
|
VALIDATOR_ADDRESS_PRIVATE_KEY: "8e829f695aed89a154550f30262f1529582cc49dc30eff74a6b491359e0230f9"
|
||||||
|
ui-erc-to-native-host:
|
||||||
|
bridge_repo_branch: $CODEBASE_BRANCH
|
||||||
|
HOME_RPC_URL: "http://localhost:8541"
|
||||||
|
FOREIGN_RPC_URL: "http://localhost:8542"
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
lint:
|
||||||
|
name: flake8
|
||||||
|
scenario:
|
||||||
|
name: ultimate-erc-to-native
|
||||||
|
test_sequence:
|
||||||
|
- cleanup
|
||||||
|
- destroy
|
||||||
|
- syntax
|
||||||
|
- create
|
||||||
|
- prepare
|
||||||
|
- converge
|
@ -4,6 +4,7 @@ driver:
|
|||||||
platforms:
|
platforms:
|
||||||
- name: oracle-native-to-erc-host
|
- name: oracle-native-to-erc-host
|
||||||
groups:
|
groups:
|
||||||
|
- ultimate
|
||||||
- native-to-erc
|
- native-to-erc
|
||||||
children:
|
children:
|
||||||
- oracle
|
- oracle
|
||||||
@ -14,6 +15,7 @@ platforms:
|
|||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
- name: ui-native-to-erc-host
|
- name: ui-native-to-erc-host
|
||||||
groups:
|
groups:
|
||||||
|
- ultimate
|
||||||
- native-to-erc
|
- native-to-erc
|
||||||
children:
|
children:
|
||||||
- ui
|
- ui
|
||||||
@ -26,7 +28,7 @@ provisioner:
|
|||||||
name: ansible
|
name: ansible
|
||||||
playbooks:
|
playbooks:
|
||||||
prepare: ../prepare.yml
|
prepare: ../prepare.yml
|
||||||
converge: converge.yml
|
converge: ../ultimate-commons/converge.yml
|
||||||
inventory:
|
inventory:
|
||||||
host_vars:
|
host_vars:
|
||||||
oracle-native-to-erc-host:
|
oracle-native-to-erc-host:
|
||||||
|
@ -48,5 +48,9 @@ while [ "$1" != "" ]; do
|
|||||||
../deployment/molecule/molecule.sh ultimate-native-to-erc
|
../deployment/molecule/molecule.sh ultimate-native-to-erc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == "erc-to-native" ]; then
|
||||||
|
../deployment/molecule/molecule.sh ultimate-erc-to-native
|
||||||
|
fi
|
||||||
|
|
||||||
shift # Shift all the parameters down by one
|
shift # Shift all the parameters down by one
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user