Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Allocation tests | |
on: | |
push: | |
workflow_dispatch: | |
schedule: | |
- cron: "42 3 * * *" | |
jobs: | |
test_allocation: | |
name: Test Allocation | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: "dev-build-cache" | |
- name: Build | |
run: | | |
cargo build | |
cp target/debug/erc20_processor /usr/local/bin/erc20_processor | |
[ $(which erc20_processor) == "/usr/local/bin/erc20_processor" ] | |
- name: Generate ethereum accounts | |
run: | | |
erc20_processor generate-key -n 5 > .env | |
cat .env | grep ETH_ADDRESS | sed "s/#\s//g" | sed "s/:\s/=/g" > $GITHUB_ENV | |
- name: Create random allocation id | |
run: | | |
echo ALLOCATION_ID0=$(shuf -i 0-2000000000 -n 1) >> $GITHUB_ENV | |
echo ALLOCATION_ID1=$(shuf -i 0-2000000000 -n 1) >> $GITHUB_ENV | |
echo ALLOCATION_ID2=$(shuf -i 0-2000000000 -n 1) >> $GITHUB_ENV | |
- name: Show created addresses | |
run: | | |
echo "Eth address 0: $ETH_ADDRESS_0" | |
echo "Eth address 1: $ETH_ADDRESS_1" | |
echo "Eth address 2: $ETH_ADDRESS_2" | |
echo "Eth address 3: $ETH_ADDRESS_3" | |
echo "Eth address 4: $ETH_ADDRESS_4" | |
- name: Get ETH from faucet for account 1 and 2 | |
run: | | |
erc20_processor get-dev-eth --account-no 1 | |
erc20_processor get-dev-eth --account-no 2 | |
- name: Check ETH balance after getting funds from faucet (should be 0.01) | |
run: | | |
x=1; while [ $(erc20_processor balance | jq -r ".\"$ETH_ADDRESS_1\".gasDecimal") != "0.01" ]; do echo "Waiting for funds for $x seconds"; sleep 5; x=$(( x + 5 )); done | |
while [ $(erc20_processor balance | jq -r ".\"$ETH_ADDRESS_2\".gasDecimal") != "0.01" ]; do echo "Waiting for funds for $x seconds"; sleep 5; x=$(( x + 5 )); done | |
- name: Mint tokens | |
run: | | |
erc20_processor mint-test-tokens --account-no 1 | |
erc20_processor run | |
- name: Check token balance | |
run: | | |
[ $(erc20_processor balance | jq -r ".\"$ETH_ADDRESS_1\".tokenDecimal") == "1000" ] | |
- name: Deposit 800.0 GLM tokens | |
run: | | |
erc20_processor deposit --account-no 1 --amount 800 | |
erc20_processor run | |
erc20_processor balance | |
- name: Create allocation | |
run: | | |
set -x | |
erc20_processor make-allocation --account-no 1 --amount 1 --fee-amount 0.1 --block-for 0 --spender $ETH_ADDRESS_2 --allocation-id $ALLOCATION_ID0 --use-internal | |
erc20_processor make-allocation --account-no 1 --amount 1 --fee-amount 0.1 --block-for 1000 --spender $ETH_ADDRESS_2 --allocation-id $ALLOCATION_ID1 --use-internal | |
erc20_processor run | |
- name: Check token balance zero | |
run: | | |
set -x | |
erc20_processor check-allocation --allocation-id $ALLOCATION_ID0 | |
erc20_processor check-allocation --allocation-id $ALLOCATION_ID1 | |
- name: Make single transfer from allocation | |
run: | | |
set -x | |
erc20_processor transfer --allocation-id $ALLOCATION_ID0 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal | |
erc20_processor run | |
- name: Make single transfer without allocation | |
run: | | |
set -x | |
erc20_processor transfer --account-no 1 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal | |
erc20_processor run | |
- name: Make multiple transfers from allocation | |
run: | | |
set -x | |
erc20_processor transfer --allocation-id $ALLOCATION_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_0 --use-internal | |
erc20_processor transfer --allocation-id $ALLOCATION_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_3 --use-internal | |
erc20_processor transfer --allocation-id $ALLOCATION_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal | |
erc20_processor run | |
erc20_processor balance | |
- name: Make multiple transfer without allocation | |
run: | | |
set -x | |
erc20_processor transfer --account-no 1 --amount 0.0001 --recipient $ETH_ADDRESS_0 --use-internal | |
erc20_processor transfer --account-no 1 --amount 0.0001 --recipient $ETH_ADDRESS_3 --use-internal | |
erc20_processor transfer --account-no 1 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal | |
erc20_processor run | |
erc20_processor balance | |
- name: Free allocation | |
run: | | |
set -x | |
erc20_processor cancel-allocation --allocation-id $ALLOCATION_ID0 --account-no 1 --use-internal | |
erc20_processor cancel-allocation --allocation-id $ALLOCATION_ID1 --account-no 1 --use-internal || echo "Error expected (OK)" | |
erc20_processor cancel-allocation --allocation-id $ALLOCATION_ID1 --account-no 2 --use-internal || echo "Error expected (OK)" | |
erc20_processor run | |
- name: Withdraw all tokens | |
run: | | |
set -x | |
erc20_processor withdraw --account-no 1 --all | |
erc20_processor withdraw --account-no 2 --all | |
erc20_processor run | |
- name: Transfer all left ETH tokens | |
run: | | |
set -x | |
erc20_processor transfer --account-no 1 --recipient 0x5b984629E2Cc7570cBa7dD745b83c3dD23Ba6d0f --token eth --all | |
erc20_processor transfer --account-no 2 --recipient 0x5b984629E2Cc7570cBa7dD745b83c3dD23Ba6d0f --token eth --all | |
erc20_processor run |