-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (110 loc) · 5.35 KB
/
allocation.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Deposit tests
on:
push:
workflow_dispatch:
schedule:
- cron: "42 3 * * *"
jobs:
test_deposit:
name: Test Deposit
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 deposit id
run: |
echo DEPOSIT_ID0=$(shuf -i 0-2000000000 -n 1) >> $GITHUB_ENV
echo DEPOSIT_ID1=$(shuf -i 0-2000000000 -n 1) >> $GITHUB_ENV
echo DEPOSIT_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: Create deposit
run: |
set -x
erc20_processor create-deposit --account-no 1 --amount 1 --fee-amount 0.1 --block-for 0 --spender $ETH_ADDRESS_2 --deposit-nonce $DEPOSIT_ID0
erc20_processor create-deposit --account-no 1 --amount 1 --fee-amount 0.1 --block-for 1000 --spender $ETH_ADDRESS_2 --deposit-nonce $DEPOSIT_ID1
erc20_processor run
- name: Check token balance zero
run: |
set -x
erc20_processor check-deposit --deposit-id $DEPOSIT_ID0
erc20_processor check-deposit --deposit-id $DEPOSIT_ID1
- name: Make single transfer from deposit
run: |
set -x
erc20_processor transfer --deposit-id $DEPOSIT_ID0 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal
erc20_processor run
- name: Make single transfer without deposit
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 deposit
run: |
set -x
erc20_processor transfer --deposit-id $DEPOSIT_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_0 --use-internal
erc20_processor transfer --deposit-id $DEPOSIT_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_3 --use-internal
erc20_processor transfer --deposit-id $DEPOSIT_ID1 --account-no 2 --amount 0.0001 --recipient $ETH_ADDRESS_4 --use-internal
erc20_processor run
erc20_processor balance
- name: Make multiple transfer without deposit
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 deposit
run: |
set -x
erc20_processor cancel-deposit --deposit-id $DEPOSIT_ID0 --account-no 1 --use-internal
erc20_processor cancel-deposit --deposit-id $DEPOSIT_ID1 --account-no 1 --use-internal || echo "Error expected (OK)"
erc20_processor cancel-deposit --deposit-id $DEPOSIT_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