@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.
Files changed (219) hide show
  1. package/dist/cjs/utils/token.d.ts +2 -2
  2. package/dist/cjs/utils/token.d.ts.map +1 -1
  3. package/dist/cjs/utils/token.js +30 -9
  4. package/dist/cjs/utils/token.js.map +1 -1
  5. package/dist/esm/utils/token.d.ts +2 -2
  6. package/dist/esm/utils/token.d.ts.map +1 -1
  7. package/dist/esm/utils/token.js +30 -9
  8. package/dist/esm/utils/token.js.map +1 -1
  9. package/package.json +17 -10
  10. package/dist/cjs/utils/data.test.d.ts +0 -2
  11. package/dist/cjs/utils/data.test.d.ts.map +0 -1
  12. package/dist/cjs/utils/data.test.js +0 -27
  13. package/dist/cjs/utils/data.test.js.map +0 -1
  14. package/dist/cjs/utils/deploy.test.d.ts +0 -2
  15. package/dist/cjs/utils/deploy.test.d.ts.map +0 -1
  16. package/dist/cjs/utils/deploy.test.js +0 -65
  17. package/dist/cjs/utils/deploy.test.js.map +0 -1
  18. package/dist/cjs/utils/fee.test.d.ts +0 -2
  19. package/dist/cjs/utils/fee.test.d.ts.map +0 -1
  20. package/dist/cjs/utils/fee.test.js +0 -11
  21. package/dist/cjs/utils/fee.test.js.map +0 -1
  22. package/dist/cjs/utils/format.test.d.ts +0 -2
  23. package/dist/cjs/utils/format.test.d.ts.map +0 -1
  24. package/dist/cjs/utils/format.test.js +0 -27
  25. package/dist/cjs/utils/format.test.js.map +0 -1
  26. package/dist/cjs/utils/ipfs.test.d.ts +0 -2
  27. package/dist/cjs/utils/ipfs.test.d.ts.map +0 -1
  28. package/dist/cjs/utils/ipfs.test.js +0 -67
  29. package/dist/cjs/utils/ipfs.test.js.map +0 -1
  30. package/dist/cjs/utils/revnet.test.d.ts +0 -2
  31. package/dist/cjs/utils/revnet.test.d.ts.map +0 -1
  32. package/dist/cjs/utils/revnet.test.js +0 -12
  33. package/dist/cjs/utils/revnet.test.js.map +0 -1
  34. package/dist/cjs/utils/ruleset.test.d.ts +0 -2
  35. package/dist/cjs/utils/ruleset.test.d.ts.map +0 -1
  36. package/dist/cjs/utils/ruleset.test.js +0 -23
  37. package/dist/cjs/utils/ruleset.test.js.map +0 -1
  38. package/dist/cjs/utils/token.test.d.ts +0 -2
  39. package/dist/cjs/utils/token.test.d.ts.map +0 -1
  40. package/dist/cjs/utils/token.test.js +0 -40
  41. package/dist/cjs/utils/token.test.js.map +0 -1
  42. package/dist/cjs/utils/urn.test.d.ts +0 -2
  43. package/dist/cjs/utils/urn.test.d.ts.map +0 -1
  44. package/dist/cjs/utils/urn.test.js +0 -114
  45. package/dist/cjs/utils/urn.test.js.map +0 -1
  46. package/dist/cjs/v6/cashOut.test.d.ts +0 -2
  47. package/dist/cjs/v6/cashOut.test.d.ts.map +0 -1
  48. package/dist/cjs/v6/cashOut.test.js +0 -122
  49. package/dist/cjs/v6/cashOut.test.js.map +0 -1
  50. package/dist/cjs/v6/currency.test.d.ts +0 -2
  51. package/dist/cjs/v6/currency.test.d.ts.map +0 -1
  52. package/dist/cjs/v6/currency.test.js +0 -26
  53. package/dist/cjs/v6/currency.test.js.map +0 -1
  54. package/dist/cjs/v6/fees.test.d.ts +0 -2
  55. package/dist/cjs/v6/fees.test.d.ts.map +0 -1
  56. package/dist/cjs/v6/fees.test.js +0 -40
  57. package/dist/cjs/v6/fees.test.js.map +0 -1
  58. package/dist/cjs/v6/launch.test.d.ts +0 -2
  59. package/dist/cjs/v6/launch.test.d.ts.map +0 -1
  60. package/dist/cjs/v6/launch.test.js +0 -162
  61. package/dist/cjs/v6/launch.test.js.map +0 -1
  62. package/dist/cjs/v6/loans.test.d.ts +0 -2
  63. package/dist/cjs/v6/loans.test.d.ts.map +0 -1
  64. package/dist/cjs/v6/loans.test.js +0 -129
  65. package/dist/cjs/v6/loans.test.js.map +0 -1
  66. package/dist/cjs/v6/nft.test.d.ts +0 -2
  67. package/dist/cjs/v6/nft.test.d.ts.map +0 -1
  68. package/dist/cjs/v6/nft.test.js +0 -279
  69. package/dist/cjs/v6/nft.test.js.map +0 -1
  70. package/dist/cjs/v6/omnichain.test.d.ts +0 -2
  71. package/dist/cjs/v6/omnichain.test.d.ts.map +0 -1
  72. package/dist/cjs/v6/omnichain.test.js +0 -145
  73. package/dist/cjs/v6/omnichain.test.js.map +0 -1
  74. package/dist/cjs/v6/pay.test.d.ts +0 -2
  75. package/dist/cjs/v6/pay.test.d.ts.map +0 -1
  76. package/dist/cjs/v6/pay.test.js +0 -137
  77. package/dist/cjs/v6/pay.test.js.map +0 -1
  78. package/dist/cjs/v6/permissions.test.d.ts +0 -2
  79. package/dist/cjs/v6/permissions.test.d.ts.map +0 -1
  80. package/dist/cjs/v6/permissions.test.js +0 -142
  81. package/dist/cjs/v6/permissions.test.js.map +0 -1
  82. package/dist/cjs/v6/projectPayers.test.d.ts +0 -2
  83. package/dist/cjs/v6/projectPayers.test.d.ts.map +0 -1
  84. package/dist/cjs/v6/projectPayers.test.js +0 -85
  85. package/dist/cjs/v6/projectPayers.test.js.map +0 -1
  86. package/dist/cjs/v6/revnets.test.d.ts +0 -2
  87. package/dist/cjs/v6/revnets.test.d.ts.map +0 -1
  88. package/dist/cjs/v6/revnets.test.js +0 -233
  89. package/dist/cjs/v6/revnets.test.js.map +0 -1
  90. package/dist/cjs/v6/rulesets.test.d.ts +0 -2
  91. package/dist/cjs/v6/rulesets.test.d.ts.map +0 -1
  92. package/dist/cjs/v6/rulesets.test.js +0 -160
  93. package/dist/cjs/v6/rulesets.test.js.map +0 -1
  94. package/dist/cjs/v6/splits.test.d.ts +0 -2
  95. package/dist/cjs/v6/splits.test.d.ts.map +0 -1
  96. package/dist/cjs/v6/splits.test.js +0 -135
  97. package/dist/cjs/v6/splits.test.js.map +0 -1
  98. package/dist/cjs/v6/suckers.test.d.ts +0 -2
  99. package/dist/cjs/v6/suckers.test.d.ts.map +0 -1
  100. package/dist/cjs/v6/suckers.test.js +0 -362
  101. package/dist/cjs/v6/suckers.test.js.map +0 -1
  102. package/dist/cjs/v6/terminals.test.d.ts +0 -2
  103. package/dist/cjs/v6/terminals.test.d.ts.map +0 -1
  104. package/dist/cjs/v6/terminals.test.js +0 -59
  105. package/dist/cjs/v6/terminals.test.js.map +0 -1
  106. package/dist/cjs/v6/tokens.test.d.ts +0 -2
  107. package/dist/cjs/v6/tokens.test.d.ts.map +0 -1
  108. package/dist/cjs/v6/tokens.test.js +0 -141
  109. package/dist/cjs/v6/tokens.test.js.map +0 -1
  110. package/dist/cjs/v6/uniswapV4.test.d.ts +0 -2
  111. package/dist/cjs/v6/uniswapV4.test.d.ts.map +0 -1
  112. package/dist/cjs/v6/uniswapV4.test.js +0 -128
  113. package/dist/cjs/v6/uniswapV4.test.js.map +0 -1
  114. package/dist/esm/utils/data.test.d.ts +0 -2
  115. package/dist/esm/utils/data.test.d.ts.map +0 -1
  116. package/dist/esm/utils/data.test.js +0 -25
  117. package/dist/esm/utils/data.test.js.map +0 -1
  118. package/dist/esm/utils/deploy.test.d.ts +0 -2
  119. package/dist/esm/utils/deploy.test.d.ts.map +0 -1
  120. package/dist/esm/utils/deploy.test.js +0 -63
  121. package/dist/esm/utils/deploy.test.js.map +0 -1
  122. package/dist/esm/utils/fee.test.d.ts +0 -2
  123. package/dist/esm/utils/fee.test.d.ts.map +0 -1
  124. package/dist/esm/utils/fee.test.js +0 -9
  125. package/dist/esm/utils/fee.test.js.map +0 -1
  126. package/dist/esm/utils/format.test.d.ts +0 -2
  127. package/dist/esm/utils/format.test.d.ts.map +0 -1
  128. package/dist/esm/utils/format.test.js +0 -25
  129. package/dist/esm/utils/format.test.js.map +0 -1
  130. package/dist/esm/utils/ipfs.test.d.ts +0 -2
  131. package/dist/esm/utils/ipfs.test.d.ts.map +0 -1
  132. package/dist/esm/utils/ipfs.test.js +0 -62
  133. package/dist/esm/utils/ipfs.test.js.map +0 -1
  134. package/dist/esm/utils/revnet.test.d.ts +0 -2
  135. package/dist/esm/utils/revnet.test.d.ts.map +0 -1
  136. package/dist/esm/utils/revnet.test.js +0 -10
  137. package/dist/esm/utils/revnet.test.js.map +0 -1
  138. package/dist/esm/utils/ruleset.test.d.ts +0 -2
  139. package/dist/esm/utils/ruleset.test.d.ts.map +0 -1
  140. package/dist/esm/utils/ruleset.test.js +0 -21
  141. package/dist/esm/utils/ruleset.test.js.map +0 -1
  142. package/dist/esm/utils/token.test.d.ts +0 -2
  143. package/dist/esm/utils/token.test.d.ts.map +0 -1
  144. package/dist/esm/utils/token.test.js +0 -38
  145. package/dist/esm/utils/token.test.js.map +0 -1
  146. package/dist/esm/utils/urn.test.d.ts +0 -2
  147. package/dist/esm/utils/urn.test.d.ts.map +0 -1
  148. package/dist/esm/utils/urn.test.js +0 -112
  149. package/dist/esm/utils/urn.test.js.map +0 -1
  150. package/dist/esm/v6/cashOut.test.d.ts +0 -2
  151. package/dist/esm/v6/cashOut.test.d.ts.map +0 -1
  152. package/dist/esm/v6/cashOut.test.js +0 -120
  153. package/dist/esm/v6/cashOut.test.js.map +0 -1
  154. package/dist/esm/v6/currency.test.d.ts +0 -2
  155. package/dist/esm/v6/currency.test.d.ts.map +0 -1
  156. package/dist/esm/v6/currency.test.js +0 -24
  157. package/dist/esm/v6/currency.test.js.map +0 -1
  158. package/dist/esm/v6/fees.test.d.ts +0 -2
  159. package/dist/esm/v6/fees.test.d.ts.map +0 -1
  160. package/dist/esm/v6/fees.test.js +0 -38
  161. package/dist/esm/v6/fees.test.js.map +0 -1
  162. package/dist/esm/v6/launch.test.d.ts +0 -2
  163. package/dist/esm/v6/launch.test.d.ts.map +0 -1
  164. package/dist/esm/v6/launch.test.js +0 -160
  165. package/dist/esm/v6/launch.test.js.map +0 -1
  166. package/dist/esm/v6/loans.test.d.ts +0 -2
  167. package/dist/esm/v6/loans.test.d.ts.map +0 -1
  168. package/dist/esm/v6/loans.test.js +0 -127
  169. package/dist/esm/v6/loans.test.js.map +0 -1
  170. package/dist/esm/v6/nft.test.d.ts +0 -2
  171. package/dist/esm/v6/nft.test.d.ts.map +0 -1
  172. package/dist/esm/v6/nft.test.js +0 -277
  173. package/dist/esm/v6/nft.test.js.map +0 -1
  174. package/dist/esm/v6/omnichain.test.d.ts +0 -2
  175. package/dist/esm/v6/omnichain.test.d.ts.map +0 -1
  176. package/dist/esm/v6/omnichain.test.js +0 -143
  177. package/dist/esm/v6/omnichain.test.js.map +0 -1
  178. package/dist/esm/v6/pay.test.d.ts +0 -2
  179. package/dist/esm/v6/pay.test.d.ts.map +0 -1
  180. package/dist/esm/v6/pay.test.js +0 -135
  181. package/dist/esm/v6/pay.test.js.map +0 -1
  182. package/dist/esm/v6/permissions.test.d.ts +0 -2
  183. package/dist/esm/v6/permissions.test.d.ts.map +0 -1
  184. package/dist/esm/v6/permissions.test.js +0 -140
  185. package/dist/esm/v6/permissions.test.js.map +0 -1
  186. package/dist/esm/v6/projectPayers.test.d.ts +0 -2
  187. package/dist/esm/v6/projectPayers.test.d.ts.map +0 -1
  188. package/dist/esm/v6/projectPayers.test.js +0 -83
  189. package/dist/esm/v6/projectPayers.test.js.map +0 -1
  190. package/dist/esm/v6/revnets.test.d.ts +0 -2
  191. package/dist/esm/v6/revnets.test.d.ts.map +0 -1
  192. package/dist/esm/v6/revnets.test.js +0 -231
  193. package/dist/esm/v6/revnets.test.js.map +0 -1
  194. package/dist/esm/v6/rulesets.test.d.ts +0 -2
  195. package/dist/esm/v6/rulesets.test.d.ts.map +0 -1
  196. package/dist/esm/v6/rulesets.test.js +0 -158
  197. package/dist/esm/v6/rulesets.test.js.map +0 -1
  198. package/dist/esm/v6/splits.test.d.ts +0 -2
  199. package/dist/esm/v6/splits.test.d.ts.map +0 -1
  200. package/dist/esm/v6/splits.test.js +0 -133
  201. package/dist/esm/v6/splits.test.js.map +0 -1
  202. package/dist/esm/v6/suckers.test.d.ts +0 -2
  203. package/dist/esm/v6/suckers.test.d.ts.map +0 -1
  204. package/dist/esm/v6/suckers.test.js +0 -360
  205. package/dist/esm/v6/suckers.test.js.map +0 -1
  206. package/dist/esm/v6/terminals.test.d.ts +0 -2
  207. package/dist/esm/v6/terminals.test.d.ts.map +0 -1
  208. package/dist/esm/v6/terminals.test.js +0 -57
  209. package/dist/esm/v6/terminals.test.js.map +0 -1
  210. package/dist/esm/v6/tokens.test.d.ts +0 -2
  211. package/dist/esm/v6/tokens.test.d.ts.map +0 -1
  212. package/dist/esm/v6/tokens.test.js +0 -139
  213. package/dist/esm/v6/tokens.test.js.map +0 -1
  214. package/dist/esm/v6/uniswapV4.test.d.ts +0 -2
  215. package/dist/esm/v6/uniswapV4.test.d.ts.map +0 -1
  216. package/dist/esm/v6/uniswapV4.test.js +0 -126
  217. package/dist/esm/v6/uniswapV4.test.js.map +0 -1
  218. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  219. 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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deploy.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fee.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=format.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ipfs.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=revnet.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ruleset.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=token.test.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=urn.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urn.test.d.ts","sourceRoot":"","sources":["../../../src/utils/urn.test.ts"],"names":[],"mappings":""}