|
9 | 9 |
|
10 | 10 | "gno.land/p/demo/tokens/grc20" |
11 | 11 | u256 "gno.land/p/gnoswap/uint256" |
12 | | - "gno.land/p/nt/bptree/v0" |
13 | 12 | "gno.land/p/nt/testutils/v0" |
14 | 13 | "gno.land/p/nt/uassert/v0" |
15 | 14 | tb "gno.land/p/onbloc/tokenbucket" |
@@ -105,6 +104,35 @@ func TestTokenOrderAckMarketMakerEscrowWithLocalGRC20RewardsMarketMaker(cur real |
105 | 104 | uassert.True(t, balance == nil || balance.IsZero()) |
106 | 105 | } |
107 | 106 |
|
| 107 | +func TestTokenOrderAckMarketMakerGRC20AfterImplResetUsesRecordedClass(cur realm, t *testing.T) { |
| 108 | + resetTokenOrderTest(cur) |
| 109 | + |
| 110 | + sender := testAddress("mm-g20-up-send") |
| 111 | + marketMaker := testAddress("mm-g20-up-maker") |
| 112 | + channelId := core.ChannelId(26) |
| 113 | + denom, tok, ledger := registerImplTestGRC20(cur, "mm_grc20_upgrade") |
| 114 | + uassert.NoError(t, ledger.Mint(address(sender), 50)) |
| 115 | + uassert.NoError(t, ledger.Approve(address(sender), zkgm.ProxyAddress(), 13)) |
| 116 | + order := z.TokenOrderV2{ |
| 117 | + Sender: []byte(sender), |
| 118 | + BaseToken: []byte(denom), |
| 119 | + BaseAmount: u256.NewUint(13), |
| 120 | + QuoteToken: []byte("quote-upgrade"), |
| 121 | + QuoteAmount: u256.NewUint(13), |
| 122 | + Kind: z.TOKEN_ORDER_KIND_ESCROW, |
| 123 | + } |
| 124 | + uassert.NoError(t, (&ZkgmV1{}).verifyTokenOrderV2(cur, channelId, sender, newSentCoinBudget(nil), u256.Zero(), order)) |
| 125 | + |
| 126 | + resetTokenOrderTest(cur) |
| 127 | + err := (&ZkgmV1{}).acknowledgeTokenOrderV2(cur, channelId, u256.Zero(), order, marketMakerAck(marketMaker)) |
| 128 | + |
| 129 | + uassert.NoError(t, err) |
| 130 | + uassert.Equal(t, int64(13), tok.BalanceOf(address(marketMaker))) |
| 131 | + uassert.Equal(t, int64(0), tok.BalanceOf(zkgm.ProxyAddress())) |
| 132 | + balance := zkgm.GetChannelBalanceV2(ChannelBalanceKeyV2(channelId, u256.Zero(), order.BaseToken, order.QuoteToken)) |
| 133 | + uassert.True(t, balance == nil || balance.IsZero()) |
| 134 | +} |
| 135 | + |
108 | 136 | func TestTokenOrderVerifyNativeRequiresSentCoin(cur realm, t *testing.T) { |
109 | 137 | order := z.TokenOrderV2{ |
110 | 138 | Sender: []byte(testAddress("v1-native-sender")), |
@@ -274,7 +302,7 @@ func TestTokenOrderExecuteUnescrowReleasesLocalGRC20(cur realm, t *testing.T) { |
274 | 302 | relayer := testAddress("g20-unescrow-relay") |
275 | 303 | denom, tok, ledger := registerImplTestGRC20(cur, "unescrow_release") |
276 | 304 | uassert.NoError(t, ledger.Mint(zkgm.ProxyAddress(), 20)) |
277 | | - recordAssetClass(denom, classLocalGRC20) |
| 305 | + recordAssetClass(cur, denom, classLocalGRC20) |
278 | 306 | path := u256.NewUint(7) |
279 | 307 | reversed, err := z.ReverseChannelPath(path) |
280 | 308 | uassert.NoError(t, err) |
@@ -304,7 +332,7 @@ func TestTokenOrderAckFailureRefundsLocalGRC20(cur realm, t *testing.T) { |
304 | 332 | sender := testAddress("v1-grc20-ack-refund") |
305 | 333 | denom, tok, ledger := registerImplTestGRC20(cur, "ack_refund") |
306 | 334 | uassert.NoError(t, ledger.Mint(zkgm.ProxyAddress(), 13)) |
307 | | - recordAssetClass(denom, classLocalGRC20) |
| 335 | + recordAssetClass(cur, denom, classLocalGRC20) |
308 | 336 | order := z.TokenOrderV2{ |
309 | 337 | Sender: []byte(sender), |
310 | 338 | BaseToken: []byte(denom), |
@@ -354,7 +382,7 @@ func TestTokenOrderTimeoutRefundsLocalGRC20(cur realm, t *testing.T) { |
354 | 382 | sender := testAddress("g20-timeout-refund") |
355 | 383 | denom, tok, ledger := registerImplTestGRC20(cur, "timeout_refund") |
356 | 384 | uassert.NoError(t, ledger.Mint(zkgm.ProxyAddress(), 13)) |
357 | | - recordAssetClass(denom, classLocalGRC20) |
| 385 | + recordAssetClass(cur, denom, classLocalGRC20) |
358 | 386 | order := z.TokenOrderV2{ |
359 | 387 | Sender: []byte(sender), |
360 | 388 | BaseToken: []byte(denom), |
@@ -1035,7 +1063,6 @@ func TestAckConstantConstructorsReturnIndependentInstances(cur realm, t *testing |
1035 | 1063 | } |
1036 | 1064 |
|
1037 | 1065 | func resetTokenOrderTest(cur realm) { |
1038 | | - assetClassOf = bptree.NewBPTree32() |
1039 | 1066 | zkgm.UpdateImpl(cross(cur), zkgm.NewUpdateRequest(cross(cur), &ZkgmV1{}, nil)) |
1040 | 1067 | } |
1041 | 1068 |
|
|
0 commit comments