From 9b3b68d52576ee38225fe329f6ee99811169b582 Mon Sep 17 00:00:00 2001 From: n3wbie Date: Thu, 16 May 2024 17:44:10 +0900 Subject: [PATCH 1/3] feat: unwrap wugnot in position CollectFee --- ...EST_position_native_unclaimed_fee_test.gno | 171 ++++++++++++++++++ position/position.gno | 17 ++ 2 files changed, 188 insertions(+) create mode 100644 position/_TEST_/_TEST_position_native_unclaimed_fee_test.gno diff --git a/position/_TEST_/_TEST_position_native_unclaimed_fee_test.gno b/position/_TEST_/_TEST_position_native_unclaimed_fee_test.gno new file mode 100644 index 00000000..bee2ed3c --- /dev/null +++ b/position/_TEST_/_TEST_position_native_unclaimed_fee_test.gno @@ -0,0 +1,171 @@ +package position + +import ( + "std" + "testing" + + "gno.land/r/demo/gnoswap/common" + "gno.land/r/demo/gnoswap/consts" + + pl "gno.land/r/demo/pool" + + "gno.land/r/demo/gns" + "gno.land/r/demo/wugnot" +) + +func TestPoolInitCreatePool(t *testing.T) { + std.TestSetPrevAddr(gsa) + + gns.Approve(a2u(consts.POOL_ADDR), consts.POOL_CREATION_FEE) + pl.CreatePool(consts.GNS_PATH, consts.GNOT, fee500, common.TickMathGetSqrtRatioAtTick(10000).ToString()) // x2.71814592682522526700950038502924144268035888671875 + // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} +} + +func TestMintPosition(t *testing.T) { + std.TestSetPrevAddr(gsa) + + gns.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) + wugnot.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) + + wugnot.Approve(a2u(consts.POSITION_ADDR), consts.UINT64_MAX) // WRAP + + // prepare 50000005ugnot (5 for refund test) + testBanker := std.GetBanker(std.BankerTypeRealmIssue) + testBanker.IssueCoin(gsa, "ugnot", 50000005) + + // simulate transfer & decrase + gsaNativeBalance := ugnotBalanceOf(gsa) + shouldEQ(t, gsaNativeBalance, 50000005) + + std.TestSetOrigSend(std.Coins{{"ugnot", 50000005}}, nil) + testBanker.RemoveCoin(std.GetOrigCaller(), "ugnot", -50000005) + + gsaNativeBalance = ugnotBalanceOf(gsa) + shouldEQ(t, gsaNativeBalance, 0) + + gsaOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) + shouldEQ(t, gsaOldWugnotBalance, 0) + + tokenId, liquidity, amount0, amount1 := Mint( + consts.GNS_PATH, + consts.GNOT, + fee500, + 8000, + 12000, + "50000000", + "50000000", + "0", + "0", + max_timeout, + gsa.String(), + ) + // event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {p_tickLower 8000} {p_tickUpper 12000} {tokenId 1} {liquidity 318704392} {amount0 18394892} {amount1 50000000}]} + + shouldEQ(t, tokenId, 1) + shouldEQ(t, getNextId(), 2) + shouldEQ(t, amount0, "18394892") + shouldEQ(t, amount1, "50000000") + + position := positions[tokenId] + shouldEQ(t, position.poolKey, "gno.land/r/demo/gns:gno.land/r/demo/wugnot:500") + + // SPEND ALL WUGNOT + newOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) + shouldEQ(t, gsaOldWugnotBalance, newOldWugnotBalance) + + gsaNativeBalance = ugnotBalanceOf(gsa) + shouldEQ(t, gsaNativeBalance, 5) + // 1. 50000005 ugnot sent + // 2. 50000005 ugnot wrapped to wugnot + // 3. 50000000 wugnot spent to mint (amount1) + // 4. refund 50000005 - 50000000 = 5 +} + +func TestUnclaimedFee0(t *testing.T) { + amount0, amount1 := unclaimedFee(1) + + shouldEQ(t, amount0.ToString(), "0") + shouldEQ(t, amount1.ToString(), "0") +} + +// GNS > GNOT +func TestSwapSellGnsBuyGnot(t *testing.T) { + std.TestSetPrevAddr(gsa) + gns.Approve(a2u(consts.POOL_ADDR), 1234567) + + std.TestSetPrevRealm(consts.ROUTER_PATH) + std.TestSetOrigCaller(gsa) + amount0, amount1 := pl.Swap( + consts.GNS_PATH, + consts.WUGNOT_PATH, // router will change this, not pool so use wugnot to test ugnot against pool.Swap + fee500, + gsa.String(), + true, + "1234567", + consts.MIN_PRICE, + gsa.String(), + ) + // event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {p_zeroForOne true} {p_amountSpecified 1234567} {p_sqrtPriceLimitX96 4295128740} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 1234567} {amount1 -3332779} {protocol_fee0 0} {protocol_fee1 0}]} + + shouldEQ(t, amount0, "1234567") + shouldEQ(t, amount1, "-3332779") +} + +func TestUnclaimedFee1(t *testing.T) { + amount0, amount1 := unclaimedFee(1) + + shouldEQ(t, amount0.ToString(), "617") + shouldEQ(t, amount1.ToString(), "0") +} + +// GNOT > GNS +func TestSwapSellGnotBuyGns(t *testing.T) { + std.TestSetPrevAddr(gsa) + gns.Approve(a2u(consts.POOL_ADDR), 123456) + + std.TestSetPrevRealm(consts.ROUTER_PATH) + std.TestSetOrigCaller(gsa) + amount0, amount1 := pl.Swap( + consts.GNS_PATH, + consts.WUGNOT_PATH, // router will change this, not pool so use wugnot to test ugnot against pool.Swap + fee500, + gsa.String(), + false, + "123456", + consts.MAX_PRICE, + gsa.String(), + ) + // event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {p_zeroForOne false} {p_amountSpecified 123456} {p_sqrtPriceLimitX96 1461446703485210103287273052203988822378723970341} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 -45966} {amount1 123456} {protocol_fee0 0} {protocol_fee1 0}]} + + shouldEQ(t, amount0, "-45966") + shouldEQ(t, amount1, "123456") +} + +func TestUnclaimedFee2(t *testing.T) { + amount0, amount1 := unclaimedFee(1) + + shouldEQ(t, amount0.ToString(), "617") + shouldEQ(t, amount1.ToString(), "61") +} + +func TestCollectFeeAfterSwap(t *testing.T) { + oldWunogt := wugnot.BalanceOf(a2u(gsa)) + shouldEQ(t, oldWunogt, 3209323) + + oldUgnot := ugnotBalanceOf(gsa) + shouldEQ(t, oldUgnot, 5) + + std.TestSetPrevAddr(gsa) + gns.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) // COLLECT_FEE + wugnot.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) // COLLECT_FEE + + tokenId, fee0, fee1, poolPath := CollectFee(1) + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 6} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 611} {fee1 61} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + + newWugnot := wugnot.BalanceOf(a2u(gsa)) + shouldEQ(t, newWugnot, oldWunogt) + + newUgnot := ugnotBalanceOf(gsa) + shouldEQ(t, newUgnot, 66) // init 5 + 61 fee +} diff --git a/position/position.gno b/position/position.gno index edcba841..879f7cfb 100644 --- a/position/position.gno +++ b/position/position.gno @@ -460,10 +460,12 @@ func decreaseLiquidity(params DecreaseLiquidityParams) (uint64, *u256.Uint, *u25 burnPosition(params.tokenId) // just update flag } + // NO UNWRAP if !params.unwrapResult { return params.tokenId, liquidityToRemove, fee0, fee1, amount0, amount1, position.poolKey } + // UNWRAP var ( unwrapAmount uint64 unwrapFee uint64 @@ -538,6 +540,10 @@ func CollectFee(tokenId uint64) (uint64, string, string, string) { // tokenId, t position.feeGrowthInside0LastX128 = feeGrowthInside0LastX128 position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128 + // check user wugnot amount + // need this value to unwrap fee + userWugnot := wugnot.BalanceOf(a2u(std.GetOrigCaller())) + amount0, amount1 := pl.Collect( token0, token1, @@ -570,6 +576,17 @@ func CollectFee(tokenId uint64) (uint64, string, string, string) { // tokenId, t "poolPath", position.poolKey, ) + // UNWRAP + pToken0, pToken1, _ := poolKeyDivide(position.poolKey) + if pToken0 == consts.WUGNOT_PATH || pToken1 == consts.WUGNOT_PATH { + userNewWugnot := wugnot.BalanceOf(a2u(std.GetOrigCaller())) + unwrapAmount := userNewWugnot - userWugnot + + if unwrapAmount > 0 { + unwrap(unwrapAmount) + } + } + return tokenId, withoutFee0, withoutFee1, position.poolKey } From 775141d8a8926fd088bd8bfd70b9b1cf1df3ee64 Mon Sep 17 00:00:00 2001 From: n3wbie Date: Thu, 16 May 2024 17:44:51 +0900 Subject: [PATCH 2/3] test: lint --- _deploy/p/demo/gnoswap/pool/consts.gno | 1 + ...tion_ZZ_increase_decrease_native_test.gnoA | 227 ------------------ ...sition_native_increase_decrease_test.gnoA} | 20 +- ..._pool_and_position_balance_diff_test.gnoA} | 0 ...=> _TEST_position_unclaimed_fee_test.gnoA} | 18 +- .../_TEST_staker_collect_reward_test.gnoA | 24 +- .../_TEST_staker_mint_and_stake_test.gno | 4 +- ...EST_staker_one_increase_external_test.gnoA | 32 +-- 8 files changed, 50 insertions(+), 276 deletions(-) delete mode 100644 position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gnoA rename position/_TEST_/{_TEST_position_ZZ_increase_decrease_native_test.gno => _TEST_position_native_increase_decrease_test.gnoA} (71%) rename position/_TEST_/{_TEST_position_ZZ_test.gnoBB => _TEST_position_pool_and_position_balance_diff_test.gnoA} (100%) rename position/_TEST_/{_TEST_position_ZZ_test.gno => _TEST_position_unclaimed_fee_test.gnoA} (70%) diff --git a/_deploy/p/demo/gnoswap/pool/consts.gno b/_deploy/p/demo/gnoswap/pool/consts.gno index 7b2b7e84..17acbe4e 100644 --- a/_deploy/p/demo/gnoswap/pool/consts.gno +++ b/_deploy/p/demo/gnoswap/pool/consts.gno @@ -7,6 +7,7 @@ const ( MAX_UINT64 string = "18446744073709551615" MAX_UINT128 string = "340282366920938463463374607431768211455" MAX_UINT160 string = "1461501637330902918203684832716283019655932542975" + MAX_UINT256 string = "115792089237316195423570985008687907853269984665640564039457584007913129639935" Q64 string = "18446744073709551616" // 2 ** 64 Q96 string = "79228162514264337593543950336" // 2 ** 96 diff --git a/position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gnoA b/position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gnoA deleted file mode 100644 index c9e3749e..00000000 --- a/position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gnoA +++ /dev/null @@ -1,227 +0,0 @@ -package position - -import ( - "std" - "testing" - - "gno.land/r/demo/gnoswap/common" - "gno.land/r/demo/gnoswap/consts" - - "gno.land/r/demo/gns" - "gno.land/r/demo/wugnot" - - pl "gno.land/r/demo/pool" -) - -// 1. Create Pool -func TestPoolInitCreatePool(t *testing.T) { - std.TestSetPrevAddr(gsa) - - gns.Approve(a2u(consts.POOL_ADDR), consts.POOL_CREATION_FEE) - pl.CreatePool(consts.GNS_PATH, consts.GNOT, fee500, common.TickMathGetSqrtRatioAtTick(10000).ToString()) // x2.71814592682522526700950038502924144268035888671875 - // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} -} - -func TestMintPosition(t *testing.T) { - std.TestSetPrevAddr(gsa) - - gns.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) - wugnot.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) - - wugnot.Approve(a2u(consts.POSITION_ADDR), consts.UINT64_MAX) // WRAP - - // prepare 50000005ugnot (5 for refund test) - testBanker := std.GetBanker(std.BankerTypeRealmIssue) - testBanker.IssueCoin(gsa, "ugnot", 50000005) - - // simulate transfer & decrase - gsaNativeBalance := ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 50000005) - - std.TestSetOrigSend(std.Coins{{"ugnot", 50000005}}, nil) - testBanker.RemoveCoin(std.GetOrigCaller(), "ugnot", -50000005) - - gsaNativeBalance = ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 0) - - gsaOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, gsaOldWugnotBalance, 0) - - tokenId, liquidity, amount0, amount1 := Mint( - consts.GNS_PATH, - consts.GNOT, - fee500, - 8000, - 12000, - "50000000", - "50000000", - "0", - "0", - max_timeout, - gsa.String(), - ) - // event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {p_tickLower 8000} {p_tickUpper 12000} {tokenId 1} {liquidity 318704392} {amount0 18394892} {amount1 50000000}]} - - shouldEQ(t, tokenId, 1) - shouldEQ(t, getNextId(), 2) - shouldEQ(t, amount0, "18394892") - shouldEQ(t, amount1, "50000000") - - position := positions[tokenId] - shouldEQ(t, position.poolKey, "gno.land/r/demo/gns:gno.land/r/demo/wugnot:500") - - // SPEND ALL WUGNOT - newOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, gsaOldWugnotBalance, newOldWugnotBalance) - - gsaNativeBalance = ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 5) - // 1. 50000005 ugnot sent - // 2. 50000005 ugnot wrapped to wugnot - // 3. 50000000 wugnot spent to mint (amount1) - // 4. refund 50000005 - 50000000 = 5 - -} - -func TestIncreaseLiquidity(t *testing.T) { - std.TestSetPrevAddr(gsa) - - gns.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) - wugnot.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) - - wugnot.Approve(a2u(consts.POSITION_ADDR), consts.UINT64_MAX) // WRAP - - pool := getPoolFromLpTokenId(uint64(1)) - oldLiquidity := pool.PoolGetLiquidity() - - // prepare 10000005ugnot (5 for refund test) - testBanker := std.GetBanker(std.BankerTypeRealmIssue) - testBanker.IssueCoin(gsa, "ugnot", 10000005) - - // simulate transfer & decrase - gsaNativeBalance := ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 10000010) - - std.TestSetOrigSend(std.Coins{{"ugnot", 10000005}}, nil) - testBanker.RemoveCoin(std.GetOrigCaller(), "ugnot", -10000005) - - gsaNativeBalance = ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 5) - - gsaOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, gsaOldWugnotBalance, 0) - - _, _, m0, m1, _ := IncreaseLiquidity( // tokenId, liq, a0, a1, poolPath - uint64(1), // tokenId - "10000000", // amount0Desired - "10000000", // amount1Desired - "0", // amount0Min - "0", // amount1Min - max_timeout, // deadline - ) - // event: {GNOSWAP gno.land/r/demo/position IncreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 63740878} {amount0 3678979} {amount1 10000000}]} - shouldEQ(t, m0, "3678979") - shouldEQ(t, m1, "10000000") - - newLiquidity := pool.PoolGetLiquidity() - - shouldEQ(t, newLiquidity.Gt(oldLiquidity), true) - - // SPEND ALL WUGNOT - newOldWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, gsaOldWugnotBalance, newOldWugnotBalance) - - gsaNativeBalance = ugnotBalanceOf(gsa) - shouldEQ(t, gsaNativeBalance, 10) - // 1. 10000005 ugnot sent - // 2. 10000005 ugnot wrapped to wugnot - // 3. 10000000 wugnot spent to mint (amount1) - // 4. refund 10000005 - 10000000 = 5 - // 5. user already had 5 ugnot = 5 + 5 -} - -func TestDecreaseLiquidityWrapped(t *testing.T) { - std.TestSetPrevRealm("") - std.TestSetOrigCaller(gsa) - - oldLiquidity := getPoolFromLpTokenId(uint64(1)).PoolGetLiquidity() - - userWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, userWugnotBalance, 0) - - userUgnotBalance := ugnotBalanceOf(gsa) - shouldEQ(t, userUgnotBalance, 10) - - _, _, _, _, a0, a1, _ := DecreaseLiquidity( // tokenId, liquidity, fee0, fee1, amount0, amount1, poolPath - uint64(1), // tokenId - 20, // liquidityRatio - "0", // amount0Min - "0", // amount1Min - max_timeout, // deadline - false, // unwrapResult - ) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - // --- event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} - - userWugnotBalance = wugnot.BalanceOf(a2u(gsa)) // wrapped result, so wunogt increased - shouldEQ(t, userWugnotBalance, 11999999) - - userUgnotBalance = ugnotBalanceOf(gsa) // wrapped result, so ugnot didn't change - shouldEQ(t, userUgnotBalance, 10) - - newLiquidity := getPoolFromLpTokenId(uint64(1)).PoolGetLiquidity() - shouldEQ(t, true, newLiquidity.Lt(oldLiquidity)) - - // check fee left - tokenId, fee0, fee1, poolPath := CollectFee(1) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - - shouldEQ(t, tokenId, uint64(1)) - shouldEQ(t, fee0, "0") - shouldEQ(t, fee1, "0") -} - -func TestDecreaseLiquidityUnwrapped(t *testing.T) { - std.TestSetPrevRealm("") - std.TestSetOrigCaller(gsa) - - oldLiquidity := getPoolFromLpTokenId(uint64(1)).PoolGetLiquidity() - - userWugnotBalance := wugnot.BalanceOf(a2u(gsa)) - shouldEQ(t, userWugnotBalance, 11999999) - - userUgnotBalance := ugnotBalanceOf(gsa) - shouldEQ(t, userUgnotBalance, 10) - - _, _, _, _, a0, a1, _ := DecreaseLiquidity( // tokenId, liquidity, fee0, fee1, amount0, amount1, poolPath - uint64(1), // tokenId - 50, // liquidityRatio - "0", // amount0Min - "0", // amount1Min - max_timeout, // deadline - true, // unwrapResult - ) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - // --- event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} - - userWugnotBalance = wugnot.BalanceOf(a2u(gsa)) // unwrapped result, so wugnot didn't change - shouldEQ(t, userWugnotBalance, 11999999) - - userUgnotBalance = ugnotBalanceOf(gsa) // unwrapped result, so ugnot decreased - shouldEQ(t, userUgnotBalance, 24000009) - - newLiquidity := getPoolFromLpTokenId(uint64(1)).PoolGetLiquidity() - shouldEQ(t, true, newLiquidity.Lt(oldLiquidity)) - - // check fee left - tokenId, fee0, fee1, poolPath := CollectFee(1) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - - shouldEQ(t, tokenId, uint64(1)) - shouldEQ(t, fee0, "0") - shouldEQ(t, fee1, "0") -} diff --git a/position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gno b/position/_TEST_/_TEST_position_native_increase_decrease_test.gnoA similarity index 71% rename from position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gno rename to position/_TEST_/_TEST_position_native_increase_decrease_test.gnoA index c9e3749e..76c3401a 100644 --- a/position/_TEST_/_TEST_position_ZZ_increase_decrease_native_test.gno +++ b/position/_TEST_/_TEST_position_native_increase_decrease_test.gnoA @@ -160,9 +160,9 @@ func TestDecreaseLiquidityWrapped(t *testing.T) { max_timeout, // deadline false, // unwrapResult ) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - // --- event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + // event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} userWugnotBalance = wugnot.BalanceOf(a2u(gsa)) // wrapped result, so wunogt increased shouldEQ(t, userWugnotBalance, 11999999) @@ -175,8 +175,8 @@ func TestDecreaseLiquidityWrapped(t *testing.T) { // check fee left tokenId, fee0, fee1, poolPath := CollectFee(1) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} shouldEQ(t, tokenId, uint64(1)) shouldEQ(t, fee0, "0") @@ -203,9 +203,9 @@ func TestDecreaseLiquidityUnwrapped(t *testing.T) { max_timeout, // deadline true, // unwrapResult ) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} - // --- event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + // event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {p_liquidityRatio 20} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500} {liquidity 76489054} {fee0 0} {fee1 0} {amount0 4414773} {amount1 11999999}]} userWugnotBalance = wugnot.BalanceOf(a2u(gsa)) // unwrapped result, so wugnot didn't change shouldEQ(t, userWugnotBalance, 11999999) @@ -218,8 +218,8 @@ func TestDecreaseLiquidityUnwrapped(t *testing.T) { // check fee left tokenId, fee0, fee1, poolPath := CollectFee(1) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/gns} {p_token1Path gno.land/r/demo/wugnot} {fee0Amount 0} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} shouldEQ(t, tokenId, uint64(1)) shouldEQ(t, fee0, "0") diff --git a/position/_TEST_/_TEST_position_ZZ_test.gnoBB b/position/_TEST_/_TEST_position_pool_and_position_balance_diff_test.gnoA similarity index 100% rename from position/_TEST_/_TEST_position_ZZ_test.gnoBB rename to position/_TEST_/_TEST_position_pool_and_position_balance_diff_test.gnoA diff --git a/position/_TEST_/_TEST_position_ZZ_test.gno b/position/_TEST_/_TEST_position_unclaimed_fee_test.gnoA similarity index 70% rename from position/_TEST_/_TEST_position_ZZ_test.gno rename to position/_TEST_/_TEST_position_unclaimed_fee_test.gnoA index 4263bd2a..6f0abe46 100644 --- a/position/_TEST_/_TEST_position_ZZ_test.gno +++ b/position/_TEST_/_TEST_position_unclaimed_fee_test.gnoA @@ -23,7 +23,7 @@ func TestPoolInitCreatePool(t *testing.T) { gns.Approve(a2u(consts.POOL_ADDR), consts.POOL_CREATION_FEE) pl.CreatePool(barPath, fooPath, fee500, "130621891405341611593710811006") // tick = 10000 - // --- event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} + // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} } @@ -45,7 +45,7 @@ func TestMintPosition01InRange(t *testing.T) { max_timeout, gsa.String(), ) - // --- event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower 8000} {p_tickUpper 12000} {tokenId 1} {liquidity 318704392} {amount0 18394892} {amount1 50000000}]} + // event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower 8000} {p_tickUpper 12000} {tokenId 1} {liquidity 318704392} {amount0 18394892} {amount1 50000000}]} shouldEQ(t, tokenId, 1) shouldEQ(t, getNextId(), 2) @@ -139,7 +139,7 @@ func TestSwap1(t *testing.T) { consts.MIN_PRICE, gsa.String(), ) - // --- event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_zeroForOne true} {p_amountSpecified 1234567} {p_sqrtPriceLimitX96 4295128740} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 1234567} {amount1 -3332779} {protocol_fee0 0} {protocol_fee1 0}]} + // event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_zeroForOne true} {p_amountSpecified 1234567} {p_sqrtPriceLimitX96 4295128740} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 1234567} {amount1 -3332779} {protocol_fee0 0} {protocol_fee1 0}]} shouldEQ(t, amount0, "1234567") shouldEQ(t, amount1, "-3332779") @@ -168,7 +168,7 @@ func TestSwap2(t *testing.T) { consts.MIN_PRICE, gsa.String(), ) - // --- event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_zeroForOne true} {p_amountSpecified 20000000} {p_sqrtPriceLimitX96 4295128740} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 20000000} {amount1 -48647018} {protocol_fee0 0} {protocol_fee1 0}]} + // event: {GNOSWAP gno.land/r/demo/pool Swap [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/router} {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_zeroForOne true} {p_amountSpecified 20000000} {p_sqrtPriceLimitX96 4295128740} {p_payer g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {p_recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 20000000} {amount1 -48647018} {protocol_fee0 0} {protocol_fee1 0}]} shouldEQ(t, amount0, "20000000") shouldEQ(t, amount1, "-48647018") @@ -216,8 +216,8 @@ func TestCollectFeeAfterSwap(t *testing.T) { bar.Approve(a2u(consts.POOL_ADDR), consts.UINT64_MAX) // COLLECT_FEE tokenId, fee0, fee1, poolPath := CollectFee(1) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/bar} {p_token1Path gno.land/r/demo/foo} {fee0Amount 101} {fee1Amount 90}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 10069} {fee1 8919} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 1} {p_token0Path gno.land/r/demo/bar} {p_token1Path gno.land/r/demo/foo} {fee0Amount 101} {fee1Amount 90}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 1} {fee0 10069} {fee1 8919} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} shouldEQ(t, tokenId, uint64(1)) shouldEQ(t, fee0, "10069") // this is input token @@ -232,9 +232,9 @@ func TestDecreaseLiquidityUpperPosition(t *testing.T) { shouldEQ(t, ownerOfPosition, std.GetOrigCaller()) tokenId, liquidity, fee0, fee1, amount0, amount1, poolPath := DecreaseLiquidity(uint64(3), 100, "0", "0", max_timeout, false) - // --- event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 3} {p_token0Path gno.land/r/demo/bar} {p_token1Path gno.land/r/demo/foo} {fee0Amount 0} {fee1Amount 0}]} - // --- event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 3} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} - // --- event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 3} {p_liquidityRatio 100} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {liquidity 957388253} {fee0 0} {fee1 0} {amount0 49999999} {amount1 0}]} + // event: {GNOSWAP gno.land/r/demo/pool HandleWithdrawalFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm gno.land/r/demo/position} {p_tokenId 3} {p_token0Path gno.land/r/demo/bar} {p_token1Path gno.land/r/demo/foo} {fee0Amount 0} {fee1Amount 0}]} + // event: {GNOSWAP gno.land/r/demo/position CollectFee [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 3} {fee0 0} {fee1 0} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} + // event: {GNOSWAP gno.land/r/demo/position DecreaseLiquidity [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_tokenId 3} {p_liquidityRatio 100} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {liquidity 957388253} {fee0 0} {fee1 0} {amount0 49999999} {amount1 0}]} shouldEQ(t, tokenId, uint64(3)) shouldEQ(t, amount0, "49999999") diff --git a/staker/_TEST_/_TEST_staker_collect_reward_test.gnoA b/staker/_TEST_/_TEST_staker_collect_reward_test.gnoA index 136809d4..e41c83d7 100644 --- a/staker/_TEST_/_TEST_staker_collect_reward_test.gnoA +++ b/staker/_TEST_/_TEST_staker_collect_reward_test.gnoA @@ -169,8 +169,8 @@ func TestCollectReward(t *testing.T) { std.TestSetPrevRealm(consts.STAKER_PATH) std.TestSetOrigCaller(gsa) CollectReward(1) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 247}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 24502}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 247}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 24502}]} std.TestSkipHeights(1) @@ -184,11 +184,11 @@ func TestUnstakeToken01(t *testing.T) { std.TestSkipHeights(400) // spend more time UnstakeToken(1) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 48}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 4851}]} - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 24873}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 2462502}]} - // --- event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 368} {amount1 1000}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 48}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 4851}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 24873}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 2462502}]} + // event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 368} {amount1 1000}]} std.TestSkipHeights(1) @@ -202,11 +202,11 @@ func TestUnstakeToken01(t *testing.T) { func TestUnstakeToken02(t *testing.T) { std.TestSetPrevAddr(gsa) UnstakeToken(2) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 330}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 32757}]} - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 167475}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 16580025}]} - // --- event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 3979} {amount1 5000}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 330}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 32757}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 167475}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 16580025}]} + // event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 3979} {amount1 5000}]} std.TestSkipHeights(1) diff --git a/staker/_TEST_/_TEST_staker_mint_and_stake_test.gno b/staker/_TEST_/_TEST_staker_mint_and_stake_test.gno index fc384250..85172742 100644 --- a/staker/_TEST_/_TEST_staker_mint_and_stake_test.gno +++ b/staker/_TEST_/_TEST_staker_mint_and_stake_test.gno @@ -36,10 +36,10 @@ func TestPoolInitCreatePool(t *testing.T) { std.TestSkipHeights(1) pl.CreatePool(barPath, quxPath, 500, "130621891405341611593710811006") // tick 10_000 ≈ x2.7 - // --- event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500}]} + // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/qux:500}]} pl.CreatePool(consts.GNOT, consts.GNS_PATH, 500, "130621891405341611593710811006") // tick 10_000 ≈ x2.7 - // --- event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} + // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/gns:gno.land/r/demo/wugnot:500}]} std.TestSkipHeights(1) } diff --git a/staker/_TEST_/_TEST_staker_one_increase_external_test.gnoA b/staker/_TEST_/_TEST_staker_one_increase_external_test.gnoA index d53601b0..52640255 100644 --- a/staker/_TEST_/_TEST_staker_one_increase_external_test.gnoA +++ b/staker/_TEST_/_TEST_staker_one_increase_external_test.gnoA @@ -40,7 +40,7 @@ func TestPoolCreatePool(t *testing.T) { std.TestSkipHeights(1) pl.CreatePool(fooPath, barPath, 500, "130621891405341611593710811006") // tick 10_000 ≈ x2.7 - // --- event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} + // event: {GNOSWAP gno.land/r/demo/pool CreatePool [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500}]} std.TestSkipHeights(1) } @@ -64,7 +64,7 @@ func TestPositionMint01(t *testing.T) { max_timeout, // deadline gsa.String(), ) - // --- event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower -11000} {p_tickUpper -9000} {tokenId 1} {liquidity 12437} {amount0 1000} {amount1 368}]} + // event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower -11000} {p_tickUpper -9000} {tokenId 1} {liquidity 12437} {amount0 1000} {amount1 368}]} std.TestSkipHeights(1) @@ -98,7 +98,7 @@ func TestPositionMint02(t *testing.T) { max_timeout, // deadline gsa.String(), ) - // --- event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower -12000} {p_tickUpper -9100} {tokenId 2} {liquidity 68925} {amount0 5000} {amount1 3979}]} + // event: {GNOSWAP gno.land/r/demo/position Mint [{m_origCaller g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {m_prevRealm } {p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_tickLower -12000} {p_tickUpper -9100} {tokenId 2} {liquidity 68925} {amount0 5000} {amount1 3979}]} std.TestSkipHeights(1) @@ -125,7 +125,7 @@ func TestCreateExternalIncentive(t *testing.T) { 1234569600, // startTimestamp 1234569600+TIMESTAMP_90DAYS, // endTimestamp ) - // --- event: {GNOSWAP gno.land/r/demo/staker CreateExternalIncentive [{p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_rewardToken gno.land/r/demo/obl} {p_rewardAmount 1000000000} {p_startTimestamp 1234569600} {p_endTimestamp 1242345600}]} + // event: {GNOSWAP gno.land/r/demo/staker CreateExternalIncentive [{p_poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {p_rewardToken gno.land/r/demo/obl} {p_rewardAmount 1000000000} {p_startTimestamp 1234569600} {p_endTimestamp 1242345600}]} std.TestSkipHeights(1) @@ -138,7 +138,7 @@ func TestCreateExternalIncentive(t *testing.T) { func TestStakeToken01(t *testing.T) { std.TestSetPrevAddr(gsa) StakeToken(1) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker StakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {amount0 1000} {amount1 368}]} + // event: {GNOSWAP gno.land/r/demo/staker StakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {amount0 1000} {amount1 368}]} std.TestSkipHeights(1) @@ -149,7 +149,7 @@ func TestStakeToken01(t *testing.T) { func TestStakeToken02(t *testing.T) { std.TestSetPrevAddr(gsa) StakeToken(2) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker StakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {amount0 5000} {amount1 3979}]} + // event: {GNOSWAP gno.land/r/demo/staker StakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {amount0 5000} {amount1 3979}]} std.TestSkipHeights(1) @@ -196,11 +196,11 @@ func TestUnstakeToken01(t *testing.T) { std.TestSetPrevAddr(gsa) UnstakeToken(1) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 8}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 831}]} - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 21779}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 2156220}]} - // --- event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 1000} {amount1 368}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 8}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 831}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 21779}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 2156220}]} + // event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 1} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 1000} {amount1 368}]} std.TestSkipHeights(1) @@ -214,11 +214,11 @@ func TestUnstakeToken01(t *testing.T) { func TestUnstakeToken02(t *testing.T) { std.TestSetPrevAddr(gsa) UnstakeToken(2) // GNFT tokenId - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 58}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 5769}]} - // --- event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 145200}]} - // --- event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 14374800}]} - // --- event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 5000} {amount1 3979}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/obl} {p_internal false} {feeAmount 58}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/obl} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 5769}]} + // event: {GNOSWAP gno.land/r/demo/staker handleRewardFee [{p_tokenPath gno.land/r/demo/gns} {p_internal true} {feeAmount 145200}]} + // event: {GNOSWAP gno.land/r/demo/staker CollectReward [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {rewardToken gno.land/r/demo/gns} {recipient g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount 14374800}]} + // event: {GNOSWAP gno.land/r/demo/staker UnstakeToken [{p_tokenId 2} {poolPath gno.land/r/demo/bar:gno.land/r/demo/foo:500} {from g1puv9dz470prjshjm9qyg25dyfvrgph2kvjph68} {to g13f63ua8uhmuf9mgc0x8zfz04yrsaqh7j78vcgq} {amount0 5000} {amount1 3979}]} std.TestSkipHeights(1) From 7e012e1c26d307a7c4964da8bdab354f9021324b Mon Sep 17 00:00:00 2001 From: n3wbie Date: Thu, 16 May 2024 17:55:27 +0900 Subject: [PATCH 3/3] test: remove ci that uses custom gno binary --- .github/workflows/test.yml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index f8f4903c..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: test - -on: - pull_request: - branches: - - master - - main - -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v4 - with: - go-version: 'stable' - - run: go get github.com/gnoswap-labs/gno/gnovm/cmd/gno - - run: go mod download -x - - run: make test.integration \ No newline at end of file