@@ -100,6 +100,23 @@ function wait_assert_state()
100
100
exit 1
101
101
}
102
102
103
+ # usage:
104
+ # wait_assert_account_state <mrenclave> <account-pub-key> <jq-filter> <expected-state>
105
+ function wait_assert_account_state()
106
+ {
107
+ for i in $( seq 1 $WAIT_ROUNDS ) ; do
108
+ state=$( ${CLIENT} trusted --mrenclave " $1 " get-storage System Account " $2 " | jq " $3 " )
109
+ if [ $state -eq " $4 " ]; then
110
+ return
111
+ else
112
+ sleep $WAIT_INTERVAL_SECONDS
113
+ fi
114
+ done
115
+ echo
116
+ echo " Assert $2 $3 failed, expected = $4 , actual = $state "
117
+ exit 1
118
+ }
119
+
103
120
# Do a live query and assert the given account's state is equal to expected
104
121
# usage:
105
122
# assert_state <mrenclave> <account> <state-name> <expected-state>
@@ -119,6 +136,25 @@ function assert_state()
119
136
exit 1
120
137
}
121
138
139
+ # usage:
140
+ # assert_account_state <mrenclave> <account-pub-key> <jq-filter> <expected-state>
141
+ function assert_account_state()
142
+ {
143
+ state=$( ${CLIENT} trusted --mrenclave " $1 " get-storage System Account " $2 " | jq " $3 " )
144
+ if [ -z " $state " ]; then
145
+ echo " Query Account $2 $3 failed"
146
+ exit 1
147
+ fi
148
+
149
+ if [ $state -eq " $4 " ]; then
150
+ return
151
+ fi
152
+ echo
153
+ echo " Assert $2 $3 failed, expected = $4 , actual = $state "
154
+ exit 1
155
+
156
+ }
157
+
122
158
echo " * Query on-chain enclave registry:"
123
159
WORKERS=$( $CLIENT list-workers)
124
160
echo " WORKERS: "
138
174
139
175
echo " * Create a new incognito account for Alice"
140
176
ICGACCOUNTALICE=//AliceIncognito
177
+ ICGACCOUNTALICE_PUBKEY=0x50503350955afe8a107d6f115dc253eb5d75a3fe37a90b373db26cc12e3c6661
141
178
echo " Alice's incognito account = ${ICGACCOUNTALICE} "
142
179
echo " "
143
180
144
- echo " * Create a new incognito account for Bob"
145
- ICGACCOUNTBOB=$( ${CLIENT} trusted --mrenclave ${MRENCLAVE} new-account)
146
- echo " Bob's incognito account = ${ICGACCOUNTBOB} "
147
- echo " "
148
-
149
181
# Asssert the initial balance of Alice incognito
150
- # The initial balance of Bob incognito should always be 0, as Bob is newly created
182
+ # We create different (new) accounts for Bob incognito, hence his initial balance is always 0
151
183
BALANCE_INCOGNITO_ALICE=0
152
184
case $TEST in
153
185
first)
154
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance 0 ;;
186
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance 0 ;;
187
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTALICE_PUBKEY} " .data.free" 0
188
+ ICGACCOUNTBOB=//BobIncognitoFirst
189
+ ICGACCOUNTBOB_PUBKEY=0xf073e0349517dcd85f4058d22d8bf585e3027b0d9826a4e2294c407aa55b7605 ;;
155
190
second)
156
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
157
- BALANCE_INCOGNITO_ALICE=$(( AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD )) ;;
191
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
192
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTALICE_PUBKEY} " .data.free" $(( AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
193
+ BALANCE_INCOGNITO_ALICE=$(( AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
194
+ ICGACCOUNTBOB=//BobIncognitoSecond
195
+ ICGACCOUNTBOB_PUBKEY=0x061d0c6eb3e940c885626236050a469eb2d44222f17d80e38d72a9379a073f46 ;;
158
196
* )
159
197
echo " unsupported test mode"
160
198
exit 1 ;;
161
199
esac
162
200
201
+ echo " * Create a new incognito account for Bob"
202
+ echo " Bob's incognito account = ${ICGACCOUNTBOB} "
203
+ echo " "
204
+
163
205
echo " * Shield ${AMOUNT_SHIELD} tokens to Alice's incognito account"
164
206
${CLIENT} shield-funds //Alice ${ICGACCOUNTALICE} ${AMOUNT_SHIELD} ${MRENCLAVE}
165
207
echo " "
166
208
167
209
echo " * Wait and assert Alice's incognito account balance... "
168
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD ))
210
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD ))
211
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTALICE_PUBKEY} " .data.free" $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD ))
169
212
echo " ✔ ok"
170
213
171
214
echo " * Wait and assert Bob's incognito account balance... "
172
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance 0
215
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance 0
216
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .data.free" 0
173
217
echo " ✔ ok"
174
218
echo " "
175
219
@@ -178,11 +222,13 @@ $CLIENT trusted --mrenclave ${MRENCLAVE} transfer ${ICGACCOUNTALICE} ${ICGACCOUN
178
222
echo " "
179
223
180
224
echo " * Wait and assert Alice's incognito account balance... "
181
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER ))
225
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER ))
226
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTALICE_PUBKEY} " .data.free" $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER ))
182
227
echo " ✔ ok"
183
228
184
229
echo " * Wait and assert Bob's incognito account balance... "
185
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance ${AMOUNT_TRANSFER}
230
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance ${AMOUNT_TRANSFER}
231
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .data.free" ${AMOUNT_TRANSFER}
186
232
echo " ✔ ok"
187
233
echo " "
188
234
@@ -191,11 +237,13 @@ ${CLIENT} trusted --mrenclave ${MRENCLAVE} --xt-signer //Alice unshield-funds ${
191
237
echo " "
192
238
193
239
echo " * Wait and assert Alice's incognito account balance... "
194
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
240
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTALICE} balance $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
241
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTALICE_PUBKEY} " .data.free" $(( BALANCE_INCOGNITO_ALICE + AMOUNT_SHIELD - AMOUNT_TRANSFER - AMOUNT_UNSHIELD ))
195
242
echo " ✔ ok"
196
243
197
244
echo " * Wait and assert Bob's incognito account balance... "
198
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance ${AMOUNT_TRANSFER}
245
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance ${AMOUNT_TRANSFER}
246
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .data.free" ${AMOUNT_TRANSFER}
199
247
echo " ✔ ok"
200
248
201
249
# Test the nonce handling, using Bob's incognito account as the sender as Alice's
@@ -207,7 +255,8 @@ echo " Charlie's incognito account = ${ICGACCOUNTCHARLIE}"
207
255
echo " "
208
256
209
257
echo " * Assert Bob's incognito initial nonce..."
210
- assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 0
258
+ # assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 0
259
+ assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .nonce" 0
211
260
echo " ✔ ok"
212
261
echo " "
213
262
219
268
echo " "
220
269
221
270
echo " * Assert Bob's incognito current nonce..."
222
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 3
271
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 3
272
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .nonce" 3
223
273
echo " ✔ ok"
224
274
echo " "
225
275
@@ -229,7 +279,8 @@ echo ""
229
279
230
280
echo " * Assert Bob's incognito nonce..."
231
281
# the nonce should be increased nontheless, even for the failed tx
232
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 4
282
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 4
283
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .nonce" 4
233
284
echo " ✔ ok"
234
285
echo " "
235
286
@@ -238,13 +289,15 @@ $CLIENT trusted --direct --mrenclave ${MRENCLAVE} transfer ${ICGACCOUNTBOB} ${IC
238
289
echo " "
239
290
240
291
echo " * Assert Bob's incognito nonce..."
241
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 5
292
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} nonce 5
293
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .nonce" 5
242
294
echo " ✔ ok"
243
295
echo " "
244
296
245
297
echo " * Wait and assert Bob's incognito account balance... "
246
298
# in total 4 balance transfer should go through => 1.2 UNIT remaining
247
- wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance $(( AMOUNT_TRANSFER * 6 / 10 ))
299
+ # wait_assert_state ${MRENCLAVE} ${ICGACCOUNTBOB} balance $(( AMOUNT_TRANSFER * 6 / 10 ))
300
+ wait_assert_account_state ${MRENCLAVE} ${ICGACCOUNTBOB_PUBKEY} " .data.free" $(( AMOUNT_TRANSFER * 6 / 10 ))
248
301
echo " ✔ ok"
249
302
250
303
echo " "
0 commit comments