@bananapus/nana-sdk-core 1.4.0 → 1.4.1
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/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/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,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const viem_1 = require("viem");
|
|
4
|
-
const vitest_1 = require("vitest");
|
|
5
|
-
const uniswapV4_js_1 = require("./uniswapV4.js");
|
|
6
|
-
const TOKEN = "0x00000000000000000000000000000000000000aa";
|
|
7
|
-
const HOOK = "0x00000000000000000000000000000000000000cc";
|
|
8
|
-
(0, vitest_1.describe)("Uniswap V4 pool primitives", () => {
|
|
9
|
-
(0, vitest_1.test)("derives stable pool ids and storage slots", () => {
|
|
10
|
-
const poolId = (0, uniswapV4_js_1.uniswapV4PoolId)({
|
|
11
|
-
currency0: viem_1.zeroAddress,
|
|
12
|
-
currency1: TOKEN,
|
|
13
|
-
fee: 10_000,
|
|
14
|
-
tickSpacing: 200,
|
|
15
|
-
hooks: HOOK,
|
|
16
|
-
});
|
|
17
|
-
(0, vitest_1.expect)(poolId).toMatch(/^0x[0-9a-f]{64}$/);
|
|
18
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PoolStateSlot)(poolId)).toMatch(/^0x[0-9a-f]{64}$/);
|
|
19
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PoolId)({
|
|
20
|
-
currency0: viem_1.zeroAddress,
|
|
21
|
-
currency1: TOKEN,
|
|
22
|
-
fee: 10_000,
|
|
23
|
-
tickSpacing: 200,
|
|
24
|
-
hooks: HOOK,
|
|
25
|
-
})).toBe(poolId);
|
|
26
|
-
});
|
|
27
|
-
(0, vitest_1.test)("extracts slot0's low 160-bit sqrt price", () => {
|
|
28
|
-
const highBits = 123n << 160n;
|
|
29
|
-
const slot = `0x${(highBits | uniswapV4_js_1.UNISWAP_V4_Q96).toString(16).padStart(64, "0")}`;
|
|
30
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4SqrtPriceX96FromSlot0)(slot)).toBe(uniswapV4_js_1.UNISWAP_V4_Q96);
|
|
31
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PriceFromSqrtPriceX96)(uniswapV4_js_1.UNISWAP_V4_Q96, false, 18)).toBe(1);
|
|
32
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PriceFromSqrtPriceX96)(0n, false, 18)).toBeNull();
|
|
33
|
-
});
|
|
34
|
-
(0, vitest_1.test)("fails closed on Optimism Sepolia's unsupported V4 stack", () => {
|
|
35
|
-
(0, vitest_1.expect)(Object.keys(uniswapV4_js_1.UNISWAP_V4_POOL_MANAGER_ADDRESSES)).toHaveLength(7);
|
|
36
|
-
(0, vitest_1.expect)(uniswapV4_js_1.UNISWAP_V4_POOL_MANAGER_ADDRESSES[11155420]).toBeUndefined();
|
|
37
|
-
(0, vitest_1.expect)(uniswapV4_js_1.UNISWAP_V4_POSITION_MANAGER_ADDRESSES[11155420]).toBeUndefined();
|
|
38
|
-
(0, vitest_1.expect)(uniswapV4_js_1.UNISWAP_V4_QUOTER_ADDRESSES[11155420]).toBeUndefined();
|
|
39
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4Deployment)(11155420)).toBeNull();
|
|
40
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4Deployment)(1)).toMatchObject({
|
|
41
|
-
poolManager: uniswapV4_js_1.UNISWAP_V4_POOL_MANAGER_ADDRESSES[1],
|
|
42
|
-
positionManager: uniswapV4_js_1.UNISWAP_V4_POSITION_MANAGER_ADDRESSES[1],
|
|
43
|
-
quoter: uniswapV4_js_1.UNISWAP_V4_QUOTER_ADDRESSES[1],
|
|
44
|
-
});
|
|
45
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.isUniswapV4PoolManager)(uniswapV4_js_1.UNISWAP_V4_POOL_MANAGER_ADDRESSES[1])).toBe(true);
|
|
46
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.isUniswapV4PoolManager)(TOKEN)).toBe(false);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
(0, vitest_1.describe)("Uniswap V4 tick and liquidity math", () => {
|
|
50
|
-
(0, vitest_1.test)("matches TickMath boundaries and is monotonic", () => {
|
|
51
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(0)).toBe(uniswapV4_js_1.UNISWAP_V4_Q96);
|
|
52
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(-uniswapV4_js_1.UNISWAP_V4_MAX_TICK)).toBe(4295128739n);
|
|
53
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(uniswapV4_js_1.UNISWAP_V4_MAX_TICK)).toBe(1461446703485210103287273052203988822378723970342n);
|
|
54
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(-200)).toBeLessThan((0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(200));
|
|
55
|
-
(0, vitest_1.expect)(() => (0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(uniswapV4_js_1.UNISWAP_V4_MAX_TICK + 1)).toThrow(/outside/);
|
|
56
|
-
});
|
|
57
|
-
(0, vitest_1.test)("derived liquidity never consumes more than the supplied amounts", () => {
|
|
58
|
-
const current = (0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(0);
|
|
59
|
-
const lower = (0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(-6_000);
|
|
60
|
-
const upper = (0, uniswapV4_js_1.uniswapV4SqrtPriceX96AtTick)(6_000);
|
|
61
|
-
const amount0 = 10n ** 18n;
|
|
62
|
-
const amount1 = 10n ** 18n;
|
|
63
|
-
const liquidity = (0, uniswapV4_js_1.uniswapV4LiquidityForAmounts)(current, lower, upper, amount0, amount1);
|
|
64
|
-
const needed = (0, uniswapV4_js_1.uniswapV4AmountsForLiquidity)(current, lower, upper, liquidity);
|
|
65
|
-
(0, vitest_1.expect)(liquidity).toBeGreaterThan(0n);
|
|
66
|
-
(0, vitest_1.expect)(needed.amount0).toBeLessThanOrEqual(amount0);
|
|
67
|
-
(0, vitest_1.expect)(needed.amount1).toBeLessThanOrEqual(amount1);
|
|
68
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4AmountsForLiquidity)(current, upper, lower, liquidity)).toEqual(needed);
|
|
69
|
-
(0, vitest_1.expect)(() => (0, uniswapV4_js_1.uniswapV4AmountsForLiquidity)(current, lower, lower, liquidity)).toThrow(/range/);
|
|
70
|
-
});
|
|
71
|
-
(0, vitest_1.test)("aligns positive and negative ticks in the correct direction", () => {
|
|
72
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4AlignTickDown)(250, 200)).toBe(200);
|
|
73
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4AlignTickDown)(-250, 200)).toBe(-400);
|
|
74
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4AlignTickUp)(250, 200)).toBe(400);
|
|
75
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4AlignTickUp)(-250, 200)).toBe(-200);
|
|
76
|
-
(0, vitest_1.expect)(() => (0, uniswapV4_js_1.uniswapV4AlignTickDown)(1.5, 200)).toThrow(/integer/);
|
|
77
|
-
});
|
|
78
|
-
(0, vitest_1.test)("unpacks signed lower and upper position ticks", () => {
|
|
79
|
-
const lower = -600n & 0xffffffn;
|
|
80
|
-
const upper = 1200n;
|
|
81
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PositionTicks)((upper << 32n) | (lower << 8n))).toEqual({
|
|
82
|
-
lower: -600,
|
|
83
|
-
upper: 1_200,
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
(0, vitest_1.describe)("Uniswap V4 form projections and logs", () => {
|
|
88
|
-
(0, vitest_1.test)("counterpart amounts round-trip inside a range", () => {
|
|
89
|
-
const counterpart = (0, uniswapV4_js_1.uniswapV4CounterpartAmount)(3, true, 1, 0.5, 2);
|
|
90
|
-
(0, vitest_1.expect)(counterpart).not.toBeNull();
|
|
91
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4CounterpartAmount)(counterpart, false, 1, 0.5, 2)).toBeCloseTo(3);
|
|
92
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4CounterpartAmount)(3, true, 2, 0.5, 2)).toBe(0);
|
|
93
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4CounterpartAmount)(3, false, 2, 0.5, 2)).toBeNull();
|
|
94
|
-
});
|
|
95
|
-
(0, vitest_1.test)("prefers an economic corridor only when it brackets spot", () => {
|
|
96
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4DefaultPriceRange)(1, 0.5, 2)).toEqual({
|
|
97
|
-
min: 0.5,
|
|
98
|
-
max: 2,
|
|
99
|
-
economic: true,
|
|
100
|
-
});
|
|
101
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4DefaultPriceRange)(3, 0.5, 2)).toEqual({
|
|
102
|
-
min: 1.5,
|
|
103
|
-
max: 6,
|
|
104
|
-
economic: false,
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
(0, vitest_1.test)("extracts only PositionManager-issued position salts", () => {
|
|
108
|
-
const positionManager = uniswapV4_js_1.UNISWAP_V4_POSITION_MANAGER_ADDRESSES[1];
|
|
109
|
-
const data = (0, viem_1.encodeAbiParameters)([
|
|
110
|
-
{ type: "int24" },
|
|
111
|
-
{ type: "int24" },
|
|
112
|
-
{ type: "int256" },
|
|
113
|
-
{ type: "bytes32" },
|
|
114
|
-
], [-200, 200, 1n, (0, viem_1.pad)("0x2a", { size: 32 })]);
|
|
115
|
-
const log = {
|
|
116
|
-
topics: [
|
|
117
|
-
uniswapV4_js_1.UNISWAP_V4_MODIFY_LIQUIDITY_TOPIC,
|
|
118
|
-
viem_1.zeroHash,
|
|
119
|
-
(0, viem_1.pad)(positionManager, { size: 32 }),
|
|
120
|
-
],
|
|
121
|
-
data,
|
|
122
|
-
};
|
|
123
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PositionTokenIdFromLog)(log, positionManager)).toBe(42n);
|
|
124
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PositionTokenIdFromLog)(log, TOKEN)).toBeNull();
|
|
125
|
-
(0, vitest_1.expect)((0, uniswapV4_js_1.uniswapV4PositionTokenIdFromLog)({ ...log, topics: [viem_1.zeroHash, ...log.topics.slice(1)] }, positionManager)).toBeNull();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
//# 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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.test.d.ts","sourceRoot":"","sources":["../../../src/utils/data.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from 'vitest';
|
|
2
|
-
import { WeightCutPercent, ReservedPercent } from "./data.js";
|
|
3
|
-
describe("jb", () => {
|
|
4
|
-
test("reserved rate", () => {
|
|
5
|
-
const reservedPercentRaw = 2_345; // 23.45%
|
|
6
|
-
const reservedPercent = new ReservedPercent(reservedPercentRaw);
|
|
7
|
-
expect(reservedPercent.format()).toEqual("0.2345");
|
|
8
|
-
expect(reservedPercent.toFloat()).toEqual(0.2345);
|
|
9
|
-
reservedPercent.setPercentage(0.5);
|
|
10
|
-
expect(reservedPercent.format()).toEqual("0.5");
|
|
11
|
-
expect(reservedPercent.formatPercentage()).toEqual(50);
|
|
12
|
-
expect(reservedPercent.value).toEqual(5000n);
|
|
13
|
-
});
|
|
14
|
-
test("decay rate", () => {
|
|
15
|
-
const weightCutPercentRaw = 200_000_000; // 20%
|
|
16
|
-
const weightCutPercent = new WeightCutPercent(weightCutPercentRaw);
|
|
17
|
-
expect(weightCutPercent.format()).toEqual("0.2");
|
|
18
|
-
expect(weightCutPercent.toFloat()).toEqual(0.2);
|
|
19
|
-
weightCutPercent.setPercentage(0.5123);
|
|
20
|
-
expect(weightCutPercent.format()).toEqual("0.5123");
|
|
21
|
-
expect(weightCutPercent.formatPercentage()).toEqual(51.23);
|
|
22
|
-
expect(weightCutPercent.value).toEqual(512300000n);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=data.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.test.js","sourceRoot":"","sources":["../../../src/utils/data.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE9D,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;IAClB,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACzB,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAC,SAAS;QAC3C,MAAM,eAAe,GAAoB,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACjF,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAElD,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QACtB,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,MAAM;QAC/C,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEhD,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.test.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { parseSuckerDeployerConfig, MappableAsset } from "./deploy.js";
|
|
3
|
-
import { arbitrum, base, mainnet, optimism } from "viem/chains";
|
|
4
|
-
import { createSalt } from "./tx.js";
|
|
5
|
-
describe("sucker parsing", () => {
|
|
6
|
-
test("ouputs correct amount of sucker configurations and mappings", () => {
|
|
7
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id, arbitrum.id, base.id], [MappableAsset.USDC, MappableAsset.NATIVE]);
|
|
8
|
-
// Should be 3 deployer configurations, one for each chain that is being connected to mainnet.
|
|
9
|
-
expect(result.deployerConfigurations.length).toBe(3);
|
|
10
|
-
// Each configuration should have 2 mappings, one for USDC and one for NATIVE.
|
|
11
|
-
result.deployerConfigurations.map((conf) => {
|
|
12
|
-
expect(conf.mappings.length).toBe(2);
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
test("keeps salt if passed in explicitly", () => {
|
|
16
|
-
const salt = createSalt();
|
|
17
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id, arbitrum.id, base.id], [MappableAsset.NATIVE], { salt: salt });
|
|
18
|
-
// Salt should be the same as the one we passed in.
|
|
19
|
-
expect(result.salt).toBe(salt);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
describe("v6 bridge selection", () => {
|
|
23
|
-
test("native bridges from mainnet to each L2", () => {
|
|
24
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id, arbitrum.id, base.id], [MappableAsset.NATIVE], { version: 6, bridge: "native" });
|
|
25
|
-
expect(result.deployerConfigurations.length).toBe(3);
|
|
26
|
-
expect(result.deployerConfigurations[0].deployer).toBe("0x298a775c030adcedb641a89d9047ec9972674e1a");
|
|
27
|
-
});
|
|
28
|
-
test("both deploys a native and a CCIP sucker per L1<->L2 pair", () => {
|
|
29
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id], [MappableAsset.NATIVE], { version: 6, bridge: "both" });
|
|
30
|
-
expect(result.deployerConfigurations.length).toBe(2);
|
|
31
|
-
const [native, ccip] = result.deployerConfigurations;
|
|
32
|
-
expect(native.deployer).not.toBe(ccip.deployer);
|
|
33
|
-
});
|
|
34
|
-
test("both falls back to CCIP alone for L2<->L2 pairs", () => {
|
|
35
|
-
const result = parseSuckerDeployerConfig(optimism.id, [base.id], [MappableAsset.NATIVE], { version: 6, bridge: "both" });
|
|
36
|
-
expect(result.deployerConfigurations.length).toBe(1);
|
|
37
|
-
});
|
|
38
|
-
test("native throws for L2<->L2 pairs", () => {
|
|
39
|
-
expect(() => parseSuckerDeployerConfig(optimism.id, [base.id], [MappableAsset.NATIVE], {
|
|
40
|
-
version: 6,
|
|
41
|
-
bridge: "native",
|
|
42
|
-
})).toThrow(/native bridges only connect Ethereum with an L2/);
|
|
43
|
-
});
|
|
44
|
-
test("native throws for USDC (bridge-wrapped USDC.e trap)", () => {
|
|
45
|
-
expect(() => parseSuckerDeployerConfig(mainnet.id, [optimism.id], [MappableAsset.USDC], {
|
|
46
|
-
version: 6,
|
|
47
|
-
bridge: "native",
|
|
48
|
-
})).toThrow(/USDC\.e/);
|
|
49
|
-
});
|
|
50
|
-
test("both keeps USDC on the CCIP sucker only", () => {
|
|
51
|
-
const result = parseSuckerDeployerConfig(mainnet.id, [optimism.id], [MappableAsset.NATIVE, MappableAsset.USDC], { version: 6, bridge: "both" });
|
|
52
|
-
expect(result.deployerConfigurations.length).toBe(2);
|
|
53
|
-
const [native, ccip] = result.deployerConfigurations;
|
|
54
|
-
expect(native.mappings.length).toBe(1); // native token only
|
|
55
|
-
expect(ccip.mappings.length).toBe(2); // native + USDC
|
|
56
|
-
});
|
|
57
|
-
test("native is rejected for pre-v6 deployments", () => {
|
|
58
|
-
expect(() => parseSuckerDeployerConfig(mainnet.id, [optimism.id], [MappableAsset.NATIVE], {
|
|
59
|
-
bridge: "native",
|
|
60
|
-
})).toThrow(/only supported for v6/);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
//# sourceMappingURL=deploy.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../../src/utils/deploy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fee.test.d.ts","sourceRoot":"","sources":["../../../src/utils/fee.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ONE_ETHER } from "../constants.js";
|
|
2
|
-
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { applyJbDaoCashOutFee } from "./fee.js";
|
|
4
|
-
describe("fee", () => {
|
|
5
|
-
test("applyJbDaoCashOutFee", () => {
|
|
6
|
-
expect(applyJbDaoCashOutFee(ONE_ETHER)).toEqual(975000000000000000n);
|
|
7
|
-
});
|
|
8
|
-
});
|
|
9
|
-
//# sourceMappingURL=fee.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fee.test.js","sourceRoot":"","sources":["../../../src/utils/fee.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACnB,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.test.d.ts","sourceRoot":"","sources":["../../../src/utils/format.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { formatEthAddress, formatEther, formatUnits } from "./format.js";
|
|
3
|
-
describe("formatting utilities", () => {
|
|
4
|
-
test("formats Ethereum address correctly", () => {
|
|
5
|
-
const address = "0x123456789abcdef0123456789abcdef012345678";
|
|
6
|
-
expect(formatEthAddress(address, { truncateTo: 4 })).toEqual("0x1234...5678");
|
|
7
|
-
});
|
|
8
|
-
test.each `
|
|
9
|
-
wei | fractionDigits | expected
|
|
10
|
-
${1000000000000000000n} | ${2} | ${"1"}
|
|
11
|
-
${1234567890123456789n} | ${3} | ${"1.235"}
|
|
12
|
-
${1234567890123456789n} | ${0} | ${"1"}
|
|
13
|
-
`("formats Ether correctly", ({ wei, fractionDigits, expected }) => {
|
|
14
|
-
expect(formatEther(wei, { fractionDigits })).toEqual(expected);
|
|
15
|
-
});
|
|
16
|
-
test.each `
|
|
17
|
-
value | units | fractionDigits | expected
|
|
18
|
-
${1000000000n} | ${9} | ${2} | ${"1"}
|
|
19
|
-
${1234567890n} | ${9} | ${3} | ${"1.235"}
|
|
20
|
-
${1234567890n} | ${9} | ${0} | ${"1"}
|
|
21
|
-
`("formats Units correctly", ({ value, units, fractionDigits, expected }) => {
|
|
22
|
-
expect(formatUnits(value, units, { fractionDigits })).toEqual(expected);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=format.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"format.test.js","sourceRoot":"","sources":["../../../src/utils/format.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,OAAO,GAAG,4CAA4C,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAC1D,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAA;;MAEL,oBAAoB,MAAM,CAAC,gBAAgB,GAAG;MAC9C,oBAAoB,MAAM,CAAC,gBAAgB,OAAO;MAClD,oBAAoB,MAAM,CAAC,gBAAgB,GAAG;GACjD,CAAC,yBAAyB,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAA;;MAEL,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG;MAC7C,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,OAAO;MACjD,WAAW,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG;GAChD,CAAC,yBAAyB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1E,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs.test.d.ts","sourceRoot":"","sources":["../../../src/utils/ipfs.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import bs58 from "bs58";
|
|
2
|
-
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { bytes32ToCidV0, cidFromIpfsUri, decodeEncodedIpfsUri, decodeEncodedIpfsUriCandidates, encodeIpfsUri, ipfsAssetPath, ipfsGatewayUrl, ipfsUri, isIpfsCid, } from "./ipfs.js";
|
|
4
|
-
const cid = "QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR";
|
|
5
|
-
const cidCorrespondingHex = "c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a";
|
|
6
|
-
const digest = "0xbdb815453bdd29f5af61a541e6382e7aace86076a9ba3ca3f6b3bdf7c58aa27f";
|
|
7
|
-
const cidV0 = "Qmb7EZvTHUeVTDi6YmwDFQvKEfCR4UGciUka24coJcNJzS";
|
|
8
|
-
const dagPbCidV1 = "bafybeif5xakuko65fh226ynfihtdqlt2vtuga5vjxi6kh5vtxx34lcvcp4";
|
|
9
|
-
const rawCidV1 = "bafkreif5xakuko65fh226ynfihtdqlt2vtuga5vjxi6kh5vtxx34lcvcp4";
|
|
10
|
-
describe("IPFS utilities", () => {
|
|
11
|
-
test("generates IPFS gateway URL correctly", () => {
|
|
12
|
-
expect(ipfsGatewayUrl(cid)).toEqual(`https://ipfs.io/ipfs/${cid}`);
|
|
13
|
-
expect(ipfsGatewayUrl(cid, "another-gateway.com")).toEqual(`https://another-gateway.com/ipfs/${cid}`);
|
|
14
|
-
expect(ipfsGatewayUrl(undefined)).toEqual("https://ipfs.io/ipfs/undefined");
|
|
15
|
-
});
|
|
16
|
-
test("encodes IPFS CID correctly", () => {
|
|
17
|
-
const hexEncoded = encodeIpfsUri(cid);
|
|
18
|
-
expect(hexEncoded).toEqual("0x" + cidCorrespondingHex);
|
|
19
|
-
});
|
|
20
|
-
test("decodes hex-encoded IPFS CID correctly", () => {
|
|
21
|
-
const hexEncoded = "0x" + cidCorrespondingHex;
|
|
22
|
-
const decodedCid = decodeEncodedIpfsUri(hexEncoded);
|
|
23
|
-
expect(decodedCid).toEqual(cid);
|
|
24
|
-
});
|
|
25
|
-
test("encodes and then decodes IPFS CID correctly", () => {
|
|
26
|
-
const expectedHex = Buffer.from(bs58.decode(cid).slice(2)).toString("hex");
|
|
27
|
-
const hexEncoded = "0x" + expectedHex;
|
|
28
|
-
const decodedCid = decodeEncodedIpfsUri(hexEncoded);
|
|
29
|
-
expect(decodedCid).toEqual(cid);
|
|
30
|
-
});
|
|
31
|
-
test("normalizes native, path-gateway, and subdomain-gateway locations", () => {
|
|
32
|
-
expect(ipfsUri(cid, "/metadata.json")).toBe(`ipfs://${cid}/metadata.json`);
|
|
33
|
-
expect(ipfsAssetPath(`ipfs://${cid}/metadata.json`)).toBe(`${cid}/metadata.json`);
|
|
34
|
-
expect(ipfsAssetPath(`https://gateway.example/ipfs/${cid}/metadata.json`)).toBe(`${cid}/metadata.json`);
|
|
35
|
-
expect(ipfsAssetPath(`https://${dagPbCidV1}.ipfs.example/metadata.json`)).toBe(`${dagPbCidV1}/metadata.json`);
|
|
36
|
-
expect(cidFromIpfsUri(`ipfs://${cid}/metadata.json`)).toBe(cid);
|
|
37
|
-
expect(ipfsAssetPath("https://example.com/metadata.json")).toBeNull();
|
|
38
|
-
expect(ipfsAssetPath("ipfs://not-a-cid/metadata.json")).toBeNull();
|
|
39
|
-
expect(ipfsAssetPath("https://gateway.example/ipfs/not-a-cid/metadata.json")).toBeNull();
|
|
40
|
-
});
|
|
41
|
-
test("encodes equivalent CIDv0 and DAG-PB CIDv1 values identically", () => {
|
|
42
|
-
expect(encodeIpfsUri(`ipfs://${cidV0}`)).toBe(digest);
|
|
43
|
-
expect(encodeIpfsUri(`ipfs://${dagPbCidV1}`)).toBe(digest);
|
|
44
|
-
expect(() => encodeIpfsUri(`ipfs://${rawCidV1}`)).toThrow(/DAG-PB/);
|
|
45
|
-
expect(() => encodeIpfsUri(`ipfs://${cidV0}/metadata.json`)).toThrow(/cannot include a path/);
|
|
46
|
-
});
|
|
47
|
-
test("reconstructs CIDv0 and raw CIDv1 candidates from a stored digest", () => {
|
|
48
|
-
expect(decodeEncodedIpfsUriCandidates(digest)).toEqual([
|
|
49
|
-
`ipfs://${cidV0}`,
|
|
50
|
-
`ipfs://${rawCidV1}`,
|
|
51
|
-
]);
|
|
52
|
-
expect(bytes32ToCidV0(digest)).toBe(cidV0);
|
|
53
|
-
expect(bytes32ToCidV0(`0x${"0".repeat(64)}`)).toBeNull();
|
|
54
|
-
expect(decodeEncodedIpfsUriCandidates("0x1234")).toBeNull();
|
|
55
|
-
});
|
|
56
|
-
test("recognizes supported CID shapes", () => {
|
|
57
|
-
expect(isIpfsCid(cidV0)).toBe(true);
|
|
58
|
-
expect(isIpfsCid(dagPbCidV1)).toBe(true);
|
|
59
|
-
expect(isIpfsCid("not-a-cid")).toBe(false);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=ipfs.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipfs.test.js","sourceRoot":"","sources":["../../../src/utils/ipfs.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"revnet.test.d.ts","sourceRoot":"","sources":["../../../src/utils/revnet.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { calcPrepaidFee } from "./revnet.js";
|
|
3
|
-
describe("calcPrepaidFee", () => {
|
|
4
|
-
test("calcPrepaidFee", () => {
|
|
5
|
-
expect(calcPrepaidFee(1)).toEqual(29n);
|
|
6
|
-
expect(calcPrepaidFee(0)).toEqual(25n);
|
|
7
|
-
expect(calcPrepaidFee(121)).toEqual(500n);
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
//# sourceMappingURL=revnet.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"revnet.test.js","sourceRoot":"","sources":["../../../src/utils/revnet.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleset.test.d.ts","sourceRoot":"","sources":["../../../src/utils/ruleset.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { getNextRulesetWeight, getPrevRulesetWeight } from "./ruleset.js";
|
|
3
|
-
describe("Ruleset Weight utilities", () => {
|
|
4
|
-
test.each `
|
|
5
|
-
weight | weightCutPercent | expected
|
|
6
|
-
${100n} | ${200000000} | ${80n}
|
|
7
|
-
${200n} | ${300000000} | ${140n}
|
|
8
|
-
${300n} | ${0} | ${300n}
|
|
9
|
-
`("computes next ruleset weight correctly", ({ weight, weightCutPercent, expected }) => {
|
|
10
|
-
expect(getNextRulesetWeight({ weight, weightCutPercent })).toEqual(expected);
|
|
11
|
-
});
|
|
12
|
-
test.each `
|
|
13
|
-
weight | weightCutPercent | expected
|
|
14
|
-
${80n} | ${200000000} | ${100n}
|
|
15
|
-
${160n} | ${300000000} | ${228n}
|
|
16
|
-
${300n} | ${0} | ${300n}
|
|
17
|
-
`("computes previous cycle weight correctly", ({ weight, weightCutPercent, expected }) => {
|
|
18
|
-
expect(getPrevRulesetWeight({ weight, weightCutPercent })).toEqual(expected);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=ruleset.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ruleset.test.js","sourceRoot":"","sources":["../../../src/utils/ruleset.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE1E,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,CAAC,IAAI,CAAA;;MAEL,IAAI,MAAM,SAAS,UAAU,GAAG;MAChC,IAAI,MAAM,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,CAAC,iBAAiB,IAAI;GACnC,CACC,wCAAwC,EACxC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAChE,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,IAAI,CAAA;;MAEL,GAAG,OAAO,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,SAAS,UAAU,IAAI;MACjC,IAAI,MAAM,CAAC,iBAAiB,IAAI;GACnC,CACC,0CAA0C,EAC1C,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,OAAO,CAChE,QAAQ,CACT,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.test.d.ts","sourceRoot":"","sources":["../../../src/utils/token.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { FixedInt } from "fpnum";
|
|
2
|
-
import { parseEther, parseUnits } from "viem";
|
|
3
|
-
import { describe, expect, test } from "vitest";
|
|
4
|
-
import { ReservedPercent } from "./data.js";
|
|
5
|
-
import { getTokenAToBQuote, getTokenBPrice } from "./token.js";
|
|
6
|
-
describe("token", () => {
|
|
7
|
-
describe("getTokenAToBQuote", () => {
|
|
8
|
-
test.each `
|
|
9
|
-
tokenAAmount | tokenADecimals | expectedPayerTokens
|
|
10
|
-
${1000000n} | ${6} | ${parseUnits("1", 18)}
|
|
11
|
-
${parseEther("1")} | ${18} | ${parseUnits("1", 18)}
|
|
12
|
-
`("should return the correct token B quote when amount is $tokenAAmount and decimals is $tokenADecimals", ({ tokenAAmount, tokenADecimals, expectedPayerTokens }) => {
|
|
13
|
-
const weight = FixedInt.parse("1", 18); // 1 token per USDC
|
|
14
|
-
const reservedPercent = new ReservedPercent(0);
|
|
15
|
-
const { payerTokens } = getTokenAToBQuote(new FixedInt(tokenAAmount, tokenADecimals), {
|
|
16
|
-
weight,
|
|
17
|
-
reservedPercent,
|
|
18
|
-
});
|
|
19
|
-
expect(payerTokens).toEqual(expectedPayerTokens);
|
|
20
|
-
});
|
|
21
|
-
test.each `
|
|
22
|
-
tokenADecimals | weight | expectedTokenBPrice
|
|
23
|
-
${18} | ${FixedInt.parse("1", 18)} | ${parseUnits("1", 18)}
|
|
24
|
-
${6} | ${FixedInt.parse("1", 18)} | ${parseUnits("1", 6)}
|
|
25
|
-
${18} | ${FixedInt.parse("0.5", 18)} | ${parseUnits("2", 18)}
|
|
26
|
-
${6} | ${FixedInt.parse("0.5", 18)} | ${parseUnits("2", 6)}
|
|
27
|
-
${6} | ${FixedInt.parse("0.8", 18)} | ${parseUnits("1.25", 6)}
|
|
28
|
-
`("should return the correct token A quote when amount is $tokenBAmount and decimals is $tokenADecimals", ({ tokenADecimals, expectedTokenBPrice, weight }) => {
|
|
29
|
-
const reservedPercent = new ReservedPercent(0);
|
|
30
|
-
const tokenBPrice = getTokenBPrice(tokenADecimals, {
|
|
31
|
-
weight,
|
|
32
|
-
reservedPercent,
|
|
33
|
-
});
|
|
34
|
-
expect(tokenBPrice.value).toBe(expectedTokenBPrice);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=token.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.test.js","sourceRoot":"","sources":["../../../src/utils/token.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/D,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,IAAI,CAAA;;QAEL,QAAQ,aAAa,CAAC,gBAAgB,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;QACzD,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;KAC5D,CACC,sGAAsG,EACtG,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;YAC/D,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,CACvC,IAAI,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,EAC1C;gBACE,MAAM;gBACN,eAAe;aAChB,CACF,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAA;;QAEL,EAAE,eAAe,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;QACnE,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,EAAE,eAAe,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;QACnE,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;KACxE,CACC,sGAAsG,EACtG,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,EAAE;YAClD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE;gBACjD,MAAM;gBACN,eAAe;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urn.test.d.ts","sourceRoot":"","sources":["../../../src/utils/urn.test.ts"],"names":[],"mappings":""}
|