@nradko/metric-omm-sdk-v1 0.2.0 → 0.3.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.
Files changed (132) hide show
  1. package/README.md +105 -18
  2. package/dist/abis/DepositAllowlistExtension.d.ts +440 -0
  3. package/dist/abis/DepositAllowlistExtension.d.ts.map +1 -0
  4. package/dist/abis/DepositAllowlistExtension.js +572 -0
  5. package/dist/abis/DepositAllowlistExtension.js.map +1 -0
  6. package/dist/abis/MetricOmmPool.d.ts +136 -30
  7. package/dist/abis/MetricOmmPool.d.ts.map +1 -1
  8. package/dist/abis/MetricOmmPool.js +168 -34
  9. package/dist/abis/MetricOmmPool.js.map +1 -1
  10. package/dist/abis/MetricOmmPoolDataProvider.d.ts +4 -4
  11. package/dist/abis/MetricOmmPoolDataProvider.js +4 -4
  12. package/dist/abis/MetricOmmPoolDataProvider.js.map +1 -1
  13. package/dist/abis/MetricOmmPoolFactory.d.ts +76 -18
  14. package/dist/abis/MetricOmmPoolFactory.d.ts.map +1 -1
  15. package/dist/abis/MetricOmmPoolFactory.js +93 -19
  16. package/dist/abis/MetricOmmPoolFactory.js.map +1 -1
  17. package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts +68 -8
  18. package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts.map +1 -1
  19. package/dist/abis/MetricOmmPoolLiquidityAdder.js +85 -9
  20. package/dist/abis/MetricOmmPoolLiquidityAdder.js.map +1 -1
  21. package/dist/abis/MetricOmmPoolSwapper.d.ts +8 -8
  22. package/dist/abis/MetricOmmPoolSwapper.js +8 -8
  23. package/dist/abis/MetricOmmPoolSwapper.js.map +1 -1
  24. package/dist/abis/OracleValueStopLossExtension.d.ts +936 -0
  25. package/dist/abis/OracleValueStopLossExtension.d.ts.map +1 -0
  26. package/dist/abis/OracleValueStopLossExtension.js +1214 -0
  27. package/dist/abis/OracleValueStopLossExtension.js.map +1 -0
  28. package/dist/abis/PriceProvider.d.ts +1 -113
  29. package/dist/abis/PriceProvider.d.ts.map +1 -1
  30. package/dist/abis/PriceProvider.js +1 -146
  31. package/dist/abis/PriceProvider.js.map +1 -1
  32. package/dist/abis/PriceVelocityGuardExtension.d.ts +454 -0
  33. package/dist/abis/PriceVelocityGuardExtension.d.ts.map +1 -0
  34. package/dist/abis/PriceVelocityGuardExtension.js +590 -0
  35. package/dist/abis/PriceVelocityGuardExtension.js.map +1 -0
  36. package/dist/abis/SwapAllowlistExtension.d.ts +440 -0
  37. package/dist/abis/SwapAllowlistExtension.d.ts.map +1 -0
  38. package/dist/abis/SwapAllowlistExtension.js +572 -0
  39. package/dist/abis/SwapAllowlistExtension.js.map +1 -0
  40. package/dist/abis/index.d.ts +4 -0
  41. package/dist/abis/index.d.ts.map +1 -1
  42. package/dist/abis/index.js +4 -0
  43. package/dist/abis/index.js.map +1 -1
  44. package/dist/addresses.d.ts +13 -6
  45. package/dist/addresses.d.ts.map +1 -1
  46. package/dist/addresses.js +33 -16
  47. package/dist/addresses.js.map +1 -1
  48. package/dist/extensions/admin/depositAllowlist.d.ts +8 -0
  49. package/dist/extensions/admin/depositAllowlist.d.ts.map +1 -0
  50. package/dist/extensions/admin/depositAllowlist.js +10 -0
  51. package/dist/extensions/admin/depositAllowlist.js.map +1 -0
  52. package/dist/extensions/admin/oracleStopLoss.d.ts +56 -0
  53. package/dist/extensions/admin/oracleStopLoss.d.ts.map +1 -0
  54. package/dist/extensions/admin/oracleStopLoss.js +87 -0
  55. package/dist/extensions/admin/oracleStopLoss.js.map +1 -0
  56. package/dist/extensions/admin/priceVelocityGuard.d.ts +12 -0
  57. package/dist/extensions/admin/priceVelocityGuard.d.ts.map +1 -0
  58. package/dist/extensions/admin/priceVelocityGuard.js +17 -0
  59. package/dist/extensions/admin/priceVelocityGuard.js.map +1 -0
  60. package/dist/extensions/admin/swapAllowlist.d.ts +8 -0
  61. package/dist/extensions/admin/swapAllowlist.d.ts.map +1 -0
  62. package/dist/extensions/admin/swapAllowlist.js +10 -0
  63. package/dist/extensions/admin/swapAllowlist.js.map +1 -0
  64. package/dist/extensions/index.d.ts +8 -0
  65. package/dist/extensions/index.d.ts.map +1 -0
  66. package/dist/extensions/index.js +8 -0
  67. package/dist/extensions/index.js.map +1 -0
  68. package/dist/extensions/init/index.d.ts +13 -0
  69. package/dist/extensions/init/index.d.ts.map +1 -0
  70. package/dist/extensions/init/index.js +12 -0
  71. package/dist/extensions/init/index.js.map +1 -0
  72. package/dist/extensions/orders.d.ts +7 -0
  73. package/dist/extensions/orders.d.ts.map +1 -0
  74. package/dist/extensions/orders.js +24 -0
  75. package/dist/extensions/orders.js.map +1 -0
  76. package/dist/extensions/types.d.ts +23 -0
  77. package/dist/extensions/types.d.ts.map +1 -0
  78. package/dist/extensions/types.js +10 -0
  79. package/dist/extensions/types.js.map +1 -0
  80. package/dist/index.d.ts +3 -2
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +3 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/pool/create.d.ts +11 -6
  85. package/dist/pool/create.d.ts.map +1 -1
  86. package/dist/pool/create.js +5 -3
  87. package/dist/pool/create.js.map +1 -1
  88. package/dist/pool/index.d.ts +1 -1
  89. package/dist/pool/index.d.ts.map +1 -1
  90. package/dist/pool/index.js.map +1 -1
  91. package/dist/pool/liquidity.d.ts +13 -5
  92. package/dist/pool/liquidity.d.ts.map +1 -1
  93. package/dist/pool/liquidity.js +25 -10
  94. package/dist/pool/liquidity.js.map +1 -1
  95. package/dist/pool/read.d.ts +0 -6
  96. package/dist/pool/read.d.ts.map +1 -1
  97. package/dist/pool/read.js +21 -14
  98. package/dist/pool/read.js.map +1 -1
  99. package/dist/router/swap.d.ts +1 -1
  100. package/dist/router/swap.d.ts.map +1 -1
  101. package/dist/router/swap.js +14 -14
  102. package/dist/router/swap.js.map +1 -1
  103. package/dist/types.d.ts +3 -4
  104. package/dist/types.d.ts.map +1 -1
  105. package/package.json +4 -5
  106. package/src/abis/DepositAllowlistExtension.ts +571 -0
  107. package/src/abis/MetricOmmPool.ts +168 -34
  108. package/src/abis/MetricOmmPoolDataProvider.ts +4 -4
  109. package/src/abis/MetricOmmPoolFactory.ts +93 -19
  110. package/src/abis/MetricOmmPoolLiquidityAdder.ts +85 -9
  111. package/src/abis/MetricOmmPoolSwapper.ts +8 -8
  112. package/src/abis/OracleValueStopLossExtension.ts +1213 -0
  113. package/src/abis/PriceProvider.ts +1 -146
  114. package/src/abis/PriceVelocityGuardExtension.ts +589 -0
  115. package/src/abis/SwapAllowlistExtension.ts +571 -0
  116. package/src/abis/index.ts +4 -0
  117. package/src/addresses.ts +44 -18
  118. package/src/extensions/admin/depositAllowlist.ts +16 -0
  119. package/src/extensions/admin/oracleStopLoss.ts +141 -0
  120. package/src/extensions/admin/priceVelocityGuard.ts +27 -0
  121. package/src/extensions/admin/swapAllowlist.ts +16 -0
  122. package/src/extensions/index.ts +31 -0
  123. package/src/extensions/init/index.ts +21 -0
  124. package/src/extensions/orders.ts +33 -0
  125. package/src/extensions/types.ts +33 -0
  126. package/src/index.ts +33 -0
  127. package/src/pool/create.ts +12 -8
  128. package/src/pool/index.ts +1 -0
  129. package/src/pool/liquidity.ts +41 -15
  130. package/src/pool/read.ts +34 -16
  131. package/src/router/swap.ts +16 -16
  132. package/src/types.ts +3 -4
@@ -5,13 +5,13 @@
5
5
  import type { Address, PublicClient, Hex } from "viem";
6
6
  import { encodeFunctionData, zeroAddress } from "viem";
7
7
  import { MAX_UINT128, POOL_ABI, SWAPPER_ABI } from "../constants.js";
8
+ import { EMPTY_EXTENSION_DATA } from "../extensions/types.js";
8
9
  import { PriceProviderUiAbi } from "../abis/PriceProviderUi.js";
9
10
 
10
11
  const BPS_BASE = 10_000n;
11
- const EMPTY_HOOK_DATA = "0x" as Hex;
12
12
 
13
- function withHookData(args: readonly unknown[]): readonly unknown[] {
14
- return args.length >= 8 ? args : [...args, EMPTY_HOOK_DATA];
13
+ function withExtensionData(args: readonly unknown[]): readonly unknown[] {
14
+ return args.length >= 8 ? args : [...args, EMPTY_EXTENSION_DATA];
15
15
  }
16
16
 
17
17
  function quoteSwapArgs(params: {
@@ -22,7 +22,7 @@ function quoteSwapArgs(params: {
22
22
  priceLimitX64: bigint;
23
23
  bidPriceX64: bigint;
24
24
  askPriceX64: bigint;
25
- hookData?: Hex;
25
+ extensionData?: Hex;
26
26
  }): readonly [Address, Address, boolean, bigint, bigint, bigint, bigint, Hex] {
27
27
  return [
28
28
  params.pool,
@@ -32,7 +32,7 @@ function quoteSwapArgs(params: {
32
32
  params.priceLimitX64,
33
33
  params.bidPriceX64,
34
34
  params.askPriceX64,
35
- params.hookData ?? EMPTY_HOOK_DATA,
35
+ params.extensionData ?? EMPTY_EXTENSION_DATA,
36
36
  ];
37
37
  }
38
38
  export interface PreparedSwapTransaction {
@@ -92,7 +92,7 @@ export interface BuildSwapWithFactoryParams {
92
92
  factoryAddress?: Address;
93
93
  pool: Address;
94
94
  prices?: BuildSwapPrices;
95
- hookData?: Hex;
95
+ extensionData?: Hex;
96
96
  }
97
97
 
98
98
  export interface BuildSwapExactInputParams extends BuildSwapWithFactoryParams {
@@ -209,7 +209,7 @@ export async function buildArgsForSwapExactInput(
209
209
  priceLimitX64,
210
210
  bidPriceX64,
211
211
  askPriceX64,
212
- hookData: params.hookData,
212
+ extensionData: params.extensionData,
213
213
  }),
214
214
  account: params.recipient,
215
215
  })) as unknown as { result: [bigint, bigint] };
@@ -257,7 +257,7 @@ export async function buildArgsAndExpectedAmountsForSwapExactInput(
257
257
  priceLimitX64,
258
258
  bidPriceX64,
259
259
  askPriceX64,
260
- hookData: params.hookData,
260
+ extensionData: params.extensionData,
261
261
  }),
262
262
  account: params.recipient,
263
263
  })) as unknown as { result: [bigint, bigint] };
@@ -317,7 +317,7 @@ export async function quoteSwap(params: QuoteSwapParams): Promise<QuoteSwapResul
317
317
  priceLimitX64,
318
318
  bidPriceX64,
319
319
  askPriceX64,
320
- hookData: params.hookData,
320
+ extensionData: params.extensionData,
321
321
  }),
322
322
  })) as [bigint, bigint];
323
323
 
@@ -346,7 +346,7 @@ export async function quoteExpectedAmountsForSwapExactInput(
346
346
  priceLimitX64,
347
347
  bidPriceX64,
348
348
  askPriceX64,
349
- hookData: params.hookData,
349
+ extensionData: params.extensionData,
350
350
  }),
351
351
  })) as [bigint, bigint];
352
352
 
@@ -379,7 +379,7 @@ export async function buildArgsForSwapExactOutput(
379
379
  priceLimitX64,
380
380
  bidPriceX64,
381
381
  askPriceX64,
382
- hookData: params.hookData,
382
+ extensionData: params.extensionData,
383
383
  }),
384
384
  account: params.recipient,
385
385
  })) as unknown as { result: [bigint, bigint] };
@@ -425,7 +425,7 @@ export async function buildArgsAndExpectedAmountsForSwapExactOutput(
425
425
  priceLimitX64,
426
426
  bidPriceX64,
427
427
  askPriceX64,
428
- hookData: params.hookData,
428
+ extensionData: params.extensionData,
429
429
  }),
430
430
  account: params.recipient,
431
431
  })) as unknown as { result: [bigint, bigint] };
@@ -472,7 +472,7 @@ export async function quoteExpectedAmountsForSwapExactOutput(
472
472
  priceLimitX64,
473
473
  bidPriceX64,
474
474
  askPriceX64,
475
- hookData: params.hookData,
475
+ extensionData: params.extensionData,
476
476
  }),
477
477
  })) as [bigint, bigint];
478
478
 
@@ -501,7 +501,7 @@ export function encodeSwapExactInputCalldata(
501
501
  return encodeFunctionData({
502
502
  abi: SWAPPER_ABI,
503
503
  functionName: "swapExactInput",
504
- args: withHookData(args),
504
+ args: withExtensionData(args),
505
505
  });
506
506
  }
507
507
 
@@ -525,7 +525,7 @@ export function encodeSwapExactOutputCalldata(
525
525
  return encodeFunctionData({
526
526
  abi: SWAPPER_ABI,
527
527
  functionName: "swapExactOutput",
528
- args: withHookData(args),
528
+ args: withExtensionData(args),
529
529
  });
530
530
  }
531
531
 
@@ -537,7 +537,7 @@ export function encodeSwapExactInputNativeForTokensCalldata(
537
537
  const data = encodeFunctionData({
538
538
  abi: SWAPPER_ABI,
539
539
  functionName: "swapExactInputNativeForTokens",
540
- args: withHookData([
540
+ args: withExtensionData([
541
541
  params.pool,
542
542
  params.recipient,
543
543
  params.zeroForOne,
package/src/types.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
 
6
6
  import type { Address } from "viem";
7
+ import type { ExtensionOrders, PoolExtensions } from "./extensions/types.js";
7
8
 
8
9
  // ============ Core Types ============
9
10
 
@@ -49,10 +50,8 @@ export interface PoolImmutables {
49
50
  initialScaledToken1PerShareE18: bigint;
50
51
  minimalMintableLiquidity: bigint;
51
52
  immutablePriceProvider?: Address;
52
- hooks?: Address;
53
- hooksPermissions?: number;
54
- maxDriftE8: bigint;
55
- maxDriftDecayPerSecondE8: bigint;
53
+ extensions: PoolExtensions;
54
+ extensionOrders: ExtensionOrders;
56
55
  lowestBin: number;
57
56
  highestBin: number;
58
57
  }