@bananapus/nana-sdk-core 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/utils/token.d.ts +2 -2
- package/dist/cjs/utils/token.d.ts.map +1 -1
- package/dist/cjs/utils/token.js +30 -9
- package/dist/cjs/utils/token.js.map +1 -1
- package/dist/cjs/v6/pay.d.ts +25 -0
- package/dist/cjs/v6/pay.d.ts.map +1 -1
- package/dist/cjs/v6/pay.js +31 -0
- package/dist/cjs/v6/pay.js.map +1 -1
- package/dist/cjs/v6/uniswapV4.d.ts +87 -1
- package/dist/cjs/v6/uniswapV4.d.ts.map +1 -1
- package/dist/cjs/v6/uniswapV4.js +191 -1
- package/dist/cjs/v6/uniswapV4.js.map +1 -1
- package/dist/esm/utils/token.d.ts +2 -2
- package/dist/esm/utils/token.d.ts.map +1 -1
- package/dist/esm/utils/token.js +30 -9
- package/dist/esm/utils/token.js.map +1 -1
- package/dist/esm/v6/pay.d.ts +25 -0
- package/dist/esm/v6/pay.d.ts.map +1 -1
- package/dist/esm/v6/pay.js +31 -1
- package/dist/esm/v6/pay.js.map +1 -1
- package/dist/esm/v6/uniswapV4.d.ts +87 -1
- package/dist/esm/v6/uniswapV4.d.ts.map +1 -1
- package/dist/esm/v6/uniswapV4.js +188 -1
- package/dist/esm/v6/uniswapV4.js.map +1 -1
- package/package.json +17 -10
- package/dist/cjs/utils/data.test.d.ts +0 -2
- package/dist/cjs/utils/data.test.d.ts.map +0 -1
- package/dist/cjs/utils/data.test.js +0 -27
- package/dist/cjs/utils/data.test.js.map +0 -1
- package/dist/cjs/utils/deploy.test.d.ts +0 -2
- package/dist/cjs/utils/deploy.test.d.ts.map +0 -1
- package/dist/cjs/utils/deploy.test.js +0 -65
- package/dist/cjs/utils/deploy.test.js.map +0 -1
- package/dist/cjs/utils/fee.test.d.ts +0 -2
- package/dist/cjs/utils/fee.test.d.ts.map +0 -1
- package/dist/cjs/utils/fee.test.js +0 -11
- package/dist/cjs/utils/fee.test.js.map +0 -1
- package/dist/cjs/utils/format.test.d.ts +0 -2
- package/dist/cjs/utils/format.test.d.ts.map +0 -1
- package/dist/cjs/utils/format.test.js +0 -27
- package/dist/cjs/utils/format.test.js.map +0 -1
- package/dist/cjs/utils/ipfs.test.d.ts +0 -2
- package/dist/cjs/utils/ipfs.test.d.ts.map +0 -1
- package/dist/cjs/utils/ipfs.test.js +0 -67
- package/dist/cjs/utils/ipfs.test.js.map +0 -1
- package/dist/cjs/utils/revnet.test.d.ts +0 -2
- package/dist/cjs/utils/revnet.test.d.ts.map +0 -1
- package/dist/cjs/utils/revnet.test.js +0 -12
- package/dist/cjs/utils/revnet.test.js.map +0 -1
- package/dist/cjs/utils/ruleset.test.d.ts +0 -2
- package/dist/cjs/utils/ruleset.test.d.ts.map +0 -1
- package/dist/cjs/utils/ruleset.test.js +0 -23
- package/dist/cjs/utils/ruleset.test.js.map +0 -1
- package/dist/cjs/utils/token.test.d.ts +0 -2
- package/dist/cjs/utils/token.test.d.ts.map +0 -1
- package/dist/cjs/utils/token.test.js +0 -40
- package/dist/cjs/utils/token.test.js.map +0 -1
- package/dist/cjs/utils/urn.test.d.ts +0 -2
- package/dist/cjs/utils/urn.test.d.ts.map +0 -1
- package/dist/cjs/utils/urn.test.js +0 -114
- package/dist/cjs/utils/urn.test.js.map +0 -1
- package/dist/cjs/v6/cashOut.test.d.ts +0 -2
- package/dist/cjs/v6/cashOut.test.d.ts.map +0 -1
- package/dist/cjs/v6/cashOut.test.js +0 -122
- package/dist/cjs/v6/cashOut.test.js.map +0 -1
- package/dist/cjs/v6/currency.test.d.ts +0 -2
- package/dist/cjs/v6/currency.test.d.ts.map +0 -1
- package/dist/cjs/v6/currency.test.js +0 -26
- package/dist/cjs/v6/currency.test.js.map +0 -1
- package/dist/cjs/v6/fees.test.d.ts +0 -2
- package/dist/cjs/v6/fees.test.d.ts.map +0 -1
- package/dist/cjs/v6/fees.test.js +0 -40
- package/dist/cjs/v6/fees.test.js.map +0 -1
- package/dist/cjs/v6/launch.test.d.ts +0 -2
- package/dist/cjs/v6/launch.test.d.ts.map +0 -1
- package/dist/cjs/v6/launch.test.js +0 -162
- package/dist/cjs/v6/launch.test.js.map +0 -1
- package/dist/cjs/v6/loans.test.d.ts +0 -2
- package/dist/cjs/v6/loans.test.d.ts.map +0 -1
- package/dist/cjs/v6/loans.test.js +0 -129
- package/dist/cjs/v6/loans.test.js.map +0 -1
- package/dist/cjs/v6/nft.test.d.ts +0 -2
- package/dist/cjs/v6/nft.test.d.ts.map +0 -1
- package/dist/cjs/v6/nft.test.js +0 -279
- package/dist/cjs/v6/nft.test.js.map +0 -1
- package/dist/cjs/v6/omnichain.test.d.ts +0 -2
- package/dist/cjs/v6/omnichain.test.d.ts.map +0 -1
- package/dist/cjs/v6/omnichain.test.js +0 -145
- package/dist/cjs/v6/omnichain.test.js.map +0 -1
- package/dist/cjs/v6/pay.test.d.ts +0 -2
- package/dist/cjs/v6/pay.test.d.ts.map +0 -1
- package/dist/cjs/v6/pay.test.js +0 -137
- package/dist/cjs/v6/pay.test.js.map +0 -1
- package/dist/cjs/v6/permissions.test.d.ts +0 -2
- package/dist/cjs/v6/permissions.test.d.ts.map +0 -1
- package/dist/cjs/v6/permissions.test.js +0 -142
- package/dist/cjs/v6/permissions.test.js.map +0 -1
- package/dist/cjs/v6/projectPayers.test.d.ts +0 -2
- package/dist/cjs/v6/projectPayers.test.d.ts.map +0 -1
- package/dist/cjs/v6/projectPayers.test.js +0 -85
- package/dist/cjs/v6/projectPayers.test.js.map +0 -1
- package/dist/cjs/v6/revnets.test.d.ts +0 -2
- package/dist/cjs/v6/revnets.test.d.ts.map +0 -1
- package/dist/cjs/v6/revnets.test.js +0 -233
- package/dist/cjs/v6/revnets.test.js.map +0 -1
- package/dist/cjs/v6/rulesets.test.d.ts +0 -2
- package/dist/cjs/v6/rulesets.test.d.ts.map +0 -1
- package/dist/cjs/v6/rulesets.test.js +0 -160
- package/dist/cjs/v6/rulesets.test.js.map +0 -1
- package/dist/cjs/v6/splits.test.d.ts +0 -2
- package/dist/cjs/v6/splits.test.d.ts.map +0 -1
- package/dist/cjs/v6/splits.test.js +0 -135
- package/dist/cjs/v6/splits.test.js.map +0 -1
- package/dist/cjs/v6/suckers.test.d.ts +0 -2
- package/dist/cjs/v6/suckers.test.d.ts.map +0 -1
- package/dist/cjs/v6/suckers.test.js +0 -362
- package/dist/cjs/v6/suckers.test.js.map +0 -1
- package/dist/cjs/v6/terminals.test.d.ts +0 -2
- package/dist/cjs/v6/terminals.test.d.ts.map +0 -1
- package/dist/cjs/v6/terminals.test.js +0 -59
- package/dist/cjs/v6/terminals.test.js.map +0 -1
- package/dist/cjs/v6/tokens.test.d.ts +0 -2
- package/dist/cjs/v6/tokens.test.d.ts.map +0 -1
- package/dist/cjs/v6/tokens.test.js +0 -141
- package/dist/cjs/v6/tokens.test.js.map +0 -1
- package/dist/cjs/v6/uniswapV4.test.d.ts +0 -2
- package/dist/cjs/v6/uniswapV4.test.d.ts.map +0 -1
- package/dist/cjs/v6/uniswapV4.test.js +0 -128
- package/dist/cjs/v6/uniswapV4.test.js.map +0 -1
- package/dist/esm/utils/data.test.d.ts +0 -2
- package/dist/esm/utils/data.test.d.ts.map +0 -1
- package/dist/esm/utils/data.test.js +0 -25
- package/dist/esm/utils/data.test.js.map +0 -1
- package/dist/esm/utils/deploy.test.d.ts +0 -2
- package/dist/esm/utils/deploy.test.d.ts.map +0 -1
- package/dist/esm/utils/deploy.test.js +0 -63
- package/dist/esm/utils/deploy.test.js.map +0 -1
- package/dist/esm/utils/fee.test.d.ts +0 -2
- package/dist/esm/utils/fee.test.d.ts.map +0 -1
- package/dist/esm/utils/fee.test.js +0 -9
- package/dist/esm/utils/fee.test.js.map +0 -1
- package/dist/esm/utils/format.test.d.ts +0 -2
- package/dist/esm/utils/format.test.d.ts.map +0 -1
- package/dist/esm/utils/format.test.js +0 -25
- package/dist/esm/utils/format.test.js.map +0 -1
- package/dist/esm/utils/ipfs.test.d.ts +0 -2
- package/dist/esm/utils/ipfs.test.d.ts.map +0 -1
- package/dist/esm/utils/ipfs.test.js +0 -62
- package/dist/esm/utils/ipfs.test.js.map +0 -1
- package/dist/esm/utils/revnet.test.d.ts +0 -2
- package/dist/esm/utils/revnet.test.d.ts.map +0 -1
- package/dist/esm/utils/revnet.test.js +0 -10
- package/dist/esm/utils/revnet.test.js.map +0 -1
- package/dist/esm/utils/ruleset.test.d.ts +0 -2
- package/dist/esm/utils/ruleset.test.d.ts.map +0 -1
- package/dist/esm/utils/ruleset.test.js +0 -21
- package/dist/esm/utils/ruleset.test.js.map +0 -1
- package/dist/esm/utils/token.test.d.ts +0 -2
- package/dist/esm/utils/token.test.d.ts.map +0 -1
- package/dist/esm/utils/token.test.js +0 -38
- package/dist/esm/utils/token.test.js.map +0 -1
- package/dist/esm/utils/urn.test.d.ts +0 -2
- package/dist/esm/utils/urn.test.d.ts.map +0 -1
- package/dist/esm/utils/urn.test.js +0 -112
- package/dist/esm/utils/urn.test.js.map +0 -1
- package/dist/esm/v6/cashOut.test.d.ts +0 -2
- package/dist/esm/v6/cashOut.test.d.ts.map +0 -1
- package/dist/esm/v6/cashOut.test.js +0 -120
- package/dist/esm/v6/cashOut.test.js.map +0 -1
- package/dist/esm/v6/currency.test.d.ts +0 -2
- package/dist/esm/v6/currency.test.d.ts.map +0 -1
- package/dist/esm/v6/currency.test.js +0 -24
- package/dist/esm/v6/currency.test.js.map +0 -1
- package/dist/esm/v6/fees.test.d.ts +0 -2
- package/dist/esm/v6/fees.test.d.ts.map +0 -1
- package/dist/esm/v6/fees.test.js +0 -38
- package/dist/esm/v6/fees.test.js.map +0 -1
- package/dist/esm/v6/launch.test.d.ts +0 -2
- package/dist/esm/v6/launch.test.d.ts.map +0 -1
- package/dist/esm/v6/launch.test.js +0 -160
- package/dist/esm/v6/launch.test.js.map +0 -1
- package/dist/esm/v6/loans.test.d.ts +0 -2
- package/dist/esm/v6/loans.test.d.ts.map +0 -1
- package/dist/esm/v6/loans.test.js +0 -127
- package/dist/esm/v6/loans.test.js.map +0 -1
- package/dist/esm/v6/nft.test.d.ts +0 -2
- package/dist/esm/v6/nft.test.d.ts.map +0 -1
- package/dist/esm/v6/nft.test.js +0 -277
- package/dist/esm/v6/nft.test.js.map +0 -1
- package/dist/esm/v6/omnichain.test.d.ts +0 -2
- package/dist/esm/v6/omnichain.test.d.ts.map +0 -1
- package/dist/esm/v6/omnichain.test.js +0 -143
- package/dist/esm/v6/omnichain.test.js.map +0 -1
- package/dist/esm/v6/pay.test.d.ts +0 -2
- package/dist/esm/v6/pay.test.d.ts.map +0 -1
- package/dist/esm/v6/pay.test.js +0 -135
- package/dist/esm/v6/pay.test.js.map +0 -1
- package/dist/esm/v6/permissions.test.d.ts +0 -2
- package/dist/esm/v6/permissions.test.d.ts.map +0 -1
- package/dist/esm/v6/permissions.test.js +0 -140
- package/dist/esm/v6/permissions.test.js.map +0 -1
- package/dist/esm/v6/projectPayers.test.d.ts +0 -2
- package/dist/esm/v6/projectPayers.test.d.ts.map +0 -1
- package/dist/esm/v6/projectPayers.test.js +0 -83
- package/dist/esm/v6/projectPayers.test.js.map +0 -1
- package/dist/esm/v6/revnets.test.d.ts +0 -2
- package/dist/esm/v6/revnets.test.d.ts.map +0 -1
- package/dist/esm/v6/revnets.test.js +0 -231
- package/dist/esm/v6/revnets.test.js.map +0 -1
- package/dist/esm/v6/rulesets.test.d.ts +0 -2
- package/dist/esm/v6/rulesets.test.d.ts.map +0 -1
- package/dist/esm/v6/rulesets.test.js +0 -158
- package/dist/esm/v6/rulesets.test.js.map +0 -1
- package/dist/esm/v6/splits.test.d.ts +0 -2
- package/dist/esm/v6/splits.test.d.ts.map +0 -1
- package/dist/esm/v6/splits.test.js +0 -133
- package/dist/esm/v6/splits.test.js.map +0 -1
- package/dist/esm/v6/suckers.test.d.ts +0 -2
- package/dist/esm/v6/suckers.test.d.ts.map +0 -1
- package/dist/esm/v6/suckers.test.js +0 -360
- package/dist/esm/v6/suckers.test.js.map +0 -1
- package/dist/esm/v6/terminals.test.d.ts +0 -2
- package/dist/esm/v6/terminals.test.d.ts.map +0 -1
- package/dist/esm/v6/terminals.test.js +0 -57
- package/dist/esm/v6/terminals.test.js.map +0 -1
- package/dist/esm/v6/tokens.test.d.ts +0 -2
- package/dist/esm/v6/tokens.test.d.ts.map +0 -1
- package/dist/esm/v6/tokens.test.js +0 -139
- package/dist/esm/v6/tokens.test.js.map +0 -1
- package/dist/esm/v6/uniswapV4.test.d.ts +0 -2
- package/dist/esm/v6/uniswapV4.test.d.ts.map +0 -1
- package/dist/esm/v6/uniswapV4.test.js +0 -126
- package/dist/esm/v6/uniswapV4.test.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { encodeAbiParameters, pad, zeroAddress, zeroHash } from "viem";
|
|
2
|
-
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { UNISWAP_V4_MAX_TICK, UNISWAP_V4_MODIFY_LIQUIDITY_TOPIC, UNISWAP_V4_POOL_MANAGER_ADDRESSES, UNISWAP_V4_POSITION_MANAGER_ADDRESSES, UNISWAP_V4_Q96, UNISWAP_V4_QUOTER_ADDRESSES, isUniswapV4PoolManager, uniswapV4AlignTickDown, uniswapV4AlignTickUp, uniswapV4AmountsForLiquidity, uniswapV4CounterpartAmount, uniswapV4DefaultPriceRange, uniswapV4Deployment, uniswapV4LiquidityForAmounts, uniswapV4PoolId, uniswapV4PoolStateSlot, uniswapV4PositionTicks, uniswapV4PositionTokenIdFromLog, uniswapV4PriceFromSqrtPriceX96, uniswapV4SqrtPriceX96AtTick, uniswapV4SqrtPriceX96FromSlot0, } from "./uniswapV4.js";
|
|
4
|
-
const TOKEN = "0x00000000000000000000000000000000000000aa";
|
|
5
|
-
const HOOK = "0x00000000000000000000000000000000000000cc";
|
|
6
|
-
describe("Uniswap V4 pool primitives", () => {
|
|
7
|
-
test("derives stable pool ids and storage slots", () => {
|
|
8
|
-
const poolId = uniswapV4PoolId({
|
|
9
|
-
currency0: zeroAddress,
|
|
10
|
-
currency1: TOKEN,
|
|
11
|
-
fee: 10_000,
|
|
12
|
-
tickSpacing: 200,
|
|
13
|
-
hooks: HOOK,
|
|
14
|
-
});
|
|
15
|
-
expect(poolId).toMatch(/^0x[0-9a-f]{64}$/);
|
|
16
|
-
expect(uniswapV4PoolStateSlot(poolId)).toMatch(/^0x[0-9a-f]{64}$/);
|
|
17
|
-
expect(uniswapV4PoolId({
|
|
18
|
-
currency0: zeroAddress,
|
|
19
|
-
currency1: TOKEN,
|
|
20
|
-
fee: 10_000,
|
|
21
|
-
tickSpacing: 200,
|
|
22
|
-
hooks: HOOK,
|
|
23
|
-
})).toBe(poolId);
|
|
24
|
-
});
|
|
25
|
-
test("extracts slot0's low 160-bit sqrt price", () => {
|
|
26
|
-
const highBits = 123n << 160n;
|
|
27
|
-
const slot = `0x${(highBits | UNISWAP_V4_Q96).toString(16).padStart(64, "0")}`;
|
|
28
|
-
expect(uniswapV4SqrtPriceX96FromSlot0(slot)).toBe(UNISWAP_V4_Q96);
|
|
29
|
-
expect(uniswapV4PriceFromSqrtPriceX96(UNISWAP_V4_Q96, false, 18)).toBe(1);
|
|
30
|
-
expect(uniswapV4PriceFromSqrtPriceX96(0n, false, 18)).toBeNull();
|
|
31
|
-
});
|
|
32
|
-
test("fails closed on Optimism Sepolia's unsupported V4 stack", () => {
|
|
33
|
-
expect(Object.keys(UNISWAP_V4_POOL_MANAGER_ADDRESSES)).toHaveLength(7);
|
|
34
|
-
expect(UNISWAP_V4_POOL_MANAGER_ADDRESSES[11155420]).toBeUndefined();
|
|
35
|
-
expect(UNISWAP_V4_POSITION_MANAGER_ADDRESSES[11155420]).toBeUndefined();
|
|
36
|
-
expect(UNISWAP_V4_QUOTER_ADDRESSES[11155420]).toBeUndefined();
|
|
37
|
-
expect(uniswapV4Deployment(11155420)).toBeNull();
|
|
38
|
-
expect(uniswapV4Deployment(1)).toMatchObject({
|
|
39
|
-
poolManager: UNISWAP_V4_POOL_MANAGER_ADDRESSES[1],
|
|
40
|
-
positionManager: UNISWAP_V4_POSITION_MANAGER_ADDRESSES[1],
|
|
41
|
-
quoter: UNISWAP_V4_QUOTER_ADDRESSES[1],
|
|
42
|
-
});
|
|
43
|
-
expect(isUniswapV4PoolManager(UNISWAP_V4_POOL_MANAGER_ADDRESSES[1])).toBe(true);
|
|
44
|
-
expect(isUniswapV4PoolManager(TOKEN)).toBe(false);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
describe("Uniswap V4 tick and liquidity math", () => {
|
|
48
|
-
test("matches TickMath boundaries and is monotonic", () => {
|
|
49
|
-
expect(uniswapV4SqrtPriceX96AtTick(0)).toBe(UNISWAP_V4_Q96);
|
|
50
|
-
expect(uniswapV4SqrtPriceX96AtTick(-UNISWAP_V4_MAX_TICK)).toBe(4295128739n);
|
|
51
|
-
expect(uniswapV4SqrtPriceX96AtTick(UNISWAP_V4_MAX_TICK)).toBe(1461446703485210103287273052203988822378723970342n);
|
|
52
|
-
expect(uniswapV4SqrtPriceX96AtTick(-200)).toBeLessThan(uniswapV4SqrtPriceX96AtTick(200));
|
|
53
|
-
expect(() => uniswapV4SqrtPriceX96AtTick(UNISWAP_V4_MAX_TICK + 1)).toThrow(/outside/);
|
|
54
|
-
});
|
|
55
|
-
test("derived liquidity never consumes more than the supplied amounts", () => {
|
|
56
|
-
const current = uniswapV4SqrtPriceX96AtTick(0);
|
|
57
|
-
const lower = uniswapV4SqrtPriceX96AtTick(-6_000);
|
|
58
|
-
const upper = uniswapV4SqrtPriceX96AtTick(6_000);
|
|
59
|
-
const amount0 = 10n ** 18n;
|
|
60
|
-
const amount1 = 10n ** 18n;
|
|
61
|
-
const liquidity = uniswapV4LiquidityForAmounts(current, lower, upper, amount0, amount1);
|
|
62
|
-
const needed = uniswapV4AmountsForLiquidity(current, lower, upper, liquidity);
|
|
63
|
-
expect(liquidity).toBeGreaterThan(0n);
|
|
64
|
-
expect(needed.amount0).toBeLessThanOrEqual(amount0);
|
|
65
|
-
expect(needed.amount1).toBeLessThanOrEqual(amount1);
|
|
66
|
-
expect(uniswapV4AmountsForLiquidity(current, upper, lower, liquidity)).toEqual(needed);
|
|
67
|
-
expect(() => uniswapV4AmountsForLiquidity(current, lower, lower, liquidity)).toThrow(/range/);
|
|
68
|
-
});
|
|
69
|
-
test("aligns positive and negative ticks in the correct direction", () => {
|
|
70
|
-
expect(uniswapV4AlignTickDown(250, 200)).toBe(200);
|
|
71
|
-
expect(uniswapV4AlignTickDown(-250, 200)).toBe(-400);
|
|
72
|
-
expect(uniswapV4AlignTickUp(250, 200)).toBe(400);
|
|
73
|
-
expect(uniswapV4AlignTickUp(-250, 200)).toBe(-200);
|
|
74
|
-
expect(() => uniswapV4AlignTickDown(1.5, 200)).toThrow(/integer/);
|
|
75
|
-
});
|
|
76
|
-
test("unpacks signed lower and upper position ticks", () => {
|
|
77
|
-
const lower = -600n & 0xffffffn;
|
|
78
|
-
const upper = 1200n;
|
|
79
|
-
expect(uniswapV4PositionTicks((upper << 32n) | (lower << 8n))).toEqual({
|
|
80
|
-
lower: -600,
|
|
81
|
-
upper: 1_200,
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
describe("Uniswap V4 form projections and logs", () => {
|
|
86
|
-
test("counterpart amounts round-trip inside a range", () => {
|
|
87
|
-
const counterpart = uniswapV4CounterpartAmount(3, true, 1, 0.5, 2);
|
|
88
|
-
expect(counterpart).not.toBeNull();
|
|
89
|
-
expect(uniswapV4CounterpartAmount(counterpart, false, 1, 0.5, 2)).toBeCloseTo(3);
|
|
90
|
-
expect(uniswapV4CounterpartAmount(3, true, 2, 0.5, 2)).toBe(0);
|
|
91
|
-
expect(uniswapV4CounterpartAmount(3, false, 2, 0.5, 2)).toBeNull();
|
|
92
|
-
});
|
|
93
|
-
test("prefers an economic corridor only when it brackets spot", () => {
|
|
94
|
-
expect(uniswapV4DefaultPriceRange(1, 0.5, 2)).toEqual({
|
|
95
|
-
min: 0.5,
|
|
96
|
-
max: 2,
|
|
97
|
-
economic: true,
|
|
98
|
-
});
|
|
99
|
-
expect(uniswapV4DefaultPriceRange(3, 0.5, 2)).toEqual({
|
|
100
|
-
min: 1.5,
|
|
101
|
-
max: 6,
|
|
102
|
-
economic: false,
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
test("extracts only PositionManager-issued position salts", () => {
|
|
106
|
-
const positionManager = UNISWAP_V4_POSITION_MANAGER_ADDRESSES[1];
|
|
107
|
-
const data = encodeAbiParameters([
|
|
108
|
-
{ type: "int24" },
|
|
109
|
-
{ type: "int24" },
|
|
110
|
-
{ type: "int256" },
|
|
111
|
-
{ type: "bytes32" },
|
|
112
|
-
], [-200, 200, 1n, pad("0x2a", { size: 32 })]);
|
|
113
|
-
const log = {
|
|
114
|
-
topics: [
|
|
115
|
-
UNISWAP_V4_MODIFY_LIQUIDITY_TOPIC,
|
|
116
|
-
zeroHash,
|
|
117
|
-
pad(positionManager, { size: 32 }),
|
|
118
|
-
],
|
|
119
|
-
data,
|
|
120
|
-
};
|
|
121
|
-
expect(uniswapV4PositionTokenIdFromLog(log, positionManager)).toBe(42n);
|
|
122
|
-
expect(uniswapV4PositionTokenIdFromLog(log, TOKEN)).toBeNull();
|
|
123
|
-
expect(uniswapV4PositionTokenIdFromLog({ ...log, topics: [zeroHash, ...log.topics.slice(1)] }, positionManager)).toBeNull();
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
//# sourceMappingURL=uniswapV4.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uniswapV4.test.js","sourceRoot":"","sources":["../../../src/v6/uniswapV4.test.ts"],"names":[],"mappings":"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"}
|