@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.
- package/README.md +105 -18
- package/dist/abis/DepositAllowlistExtension.d.ts +440 -0
- package/dist/abis/DepositAllowlistExtension.d.ts.map +1 -0
- package/dist/abis/DepositAllowlistExtension.js +572 -0
- package/dist/abis/DepositAllowlistExtension.js.map +1 -0
- package/dist/abis/MetricOmmPool.d.ts +136 -30
- package/dist/abis/MetricOmmPool.d.ts.map +1 -1
- package/dist/abis/MetricOmmPool.js +168 -34
- package/dist/abis/MetricOmmPool.js.map +1 -1
- package/dist/abis/MetricOmmPoolDataProvider.d.ts +4 -4
- package/dist/abis/MetricOmmPoolDataProvider.js +4 -4
- package/dist/abis/MetricOmmPoolDataProvider.js.map +1 -1
- package/dist/abis/MetricOmmPoolFactory.d.ts +76 -18
- package/dist/abis/MetricOmmPoolFactory.d.ts.map +1 -1
- package/dist/abis/MetricOmmPoolFactory.js +93 -19
- package/dist/abis/MetricOmmPoolFactory.js.map +1 -1
- package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts +68 -8
- package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts.map +1 -1
- package/dist/abis/MetricOmmPoolLiquidityAdder.js +85 -9
- package/dist/abis/MetricOmmPoolLiquidityAdder.js.map +1 -1
- package/dist/abis/MetricOmmPoolSwapper.d.ts +8 -8
- package/dist/abis/MetricOmmPoolSwapper.js +8 -8
- package/dist/abis/MetricOmmPoolSwapper.js.map +1 -1
- package/dist/abis/OracleValueStopLossExtension.d.ts +936 -0
- package/dist/abis/OracleValueStopLossExtension.d.ts.map +1 -0
- package/dist/abis/OracleValueStopLossExtension.js +1214 -0
- package/dist/abis/OracleValueStopLossExtension.js.map +1 -0
- package/dist/abis/PriceProvider.d.ts +1 -113
- package/dist/abis/PriceProvider.d.ts.map +1 -1
- package/dist/abis/PriceProvider.js +1 -146
- package/dist/abis/PriceProvider.js.map +1 -1
- package/dist/abis/PriceVelocityGuardExtension.d.ts +454 -0
- package/dist/abis/PriceVelocityGuardExtension.d.ts.map +1 -0
- package/dist/abis/PriceVelocityGuardExtension.js +590 -0
- package/dist/abis/PriceVelocityGuardExtension.js.map +1 -0
- package/dist/abis/SwapAllowlistExtension.d.ts +440 -0
- package/dist/abis/SwapAllowlistExtension.d.ts.map +1 -0
- package/dist/abis/SwapAllowlistExtension.js +572 -0
- package/dist/abis/SwapAllowlistExtension.js.map +1 -0
- package/dist/abis/index.d.ts +4 -0
- package/dist/abis/index.d.ts.map +1 -1
- package/dist/abis/index.js +4 -0
- package/dist/abis/index.js.map +1 -1
- package/dist/addresses.d.ts +13 -6
- package/dist/addresses.d.ts.map +1 -1
- package/dist/addresses.js +33 -16
- package/dist/addresses.js.map +1 -1
- package/dist/extensions/admin/depositAllowlist.d.ts +8 -0
- package/dist/extensions/admin/depositAllowlist.d.ts.map +1 -0
- package/dist/extensions/admin/depositAllowlist.js +10 -0
- package/dist/extensions/admin/depositAllowlist.js.map +1 -0
- package/dist/extensions/admin/oracleStopLoss.d.ts +56 -0
- package/dist/extensions/admin/oracleStopLoss.d.ts.map +1 -0
- package/dist/extensions/admin/oracleStopLoss.js +87 -0
- package/dist/extensions/admin/oracleStopLoss.js.map +1 -0
- package/dist/extensions/admin/priceVelocityGuard.d.ts +12 -0
- package/dist/extensions/admin/priceVelocityGuard.d.ts.map +1 -0
- package/dist/extensions/admin/priceVelocityGuard.js +17 -0
- package/dist/extensions/admin/priceVelocityGuard.js.map +1 -0
- package/dist/extensions/admin/swapAllowlist.d.ts +8 -0
- package/dist/extensions/admin/swapAllowlist.d.ts.map +1 -0
- package/dist/extensions/admin/swapAllowlist.js +10 -0
- package/dist/extensions/admin/swapAllowlist.js.map +1 -0
- package/dist/extensions/index.d.ts +8 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/init/index.d.ts +13 -0
- package/dist/extensions/init/index.d.ts.map +1 -0
- package/dist/extensions/init/index.js +12 -0
- package/dist/extensions/init/index.js.map +1 -0
- package/dist/extensions/orders.d.ts +7 -0
- package/dist/extensions/orders.d.ts.map +1 -0
- package/dist/extensions/orders.js +24 -0
- package/dist/extensions/orders.js.map +1 -0
- package/dist/extensions/types.d.ts +23 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +10 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/pool/create.d.ts +11 -6
- package/dist/pool/create.d.ts.map +1 -1
- package/dist/pool/create.js +5 -3
- package/dist/pool/create.js.map +1 -1
- package/dist/pool/index.d.ts +1 -1
- package/dist/pool/index.d.ts.map +1 -1
- package/dist/pool/index.js.map +1 -1
- package/dist/pool/liquidity.d.ts +13 -5
- package/dist/pool/liquidity.d.ts.map +1 -1
- package/dist/pool/liquidity.js +25 -10
- package/dist/pool/liquidity.js.map +1 -1
- package/dist/pool/read.d.ts +0 -6
- package/dist/pool/read.d.ts.map +1 -1
- package/dist/pool/read.js +21 -14
- package/dist/pool/read.js.map +1 -1
- package/dist/router/swap.d.ts +1 -1
- package/dist/router/swap.d.ts.map +1 -1
- package/dist/router/swap.js +14 -14
- package/dist/router/swap.js.map +1 -1
- package/dist/types.d.ts +3 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/abis/DepositAllowlistExtension.ts +571 -0
- package/src/abis/MetricOmmPool.ts +168 -34
- package/src/abis/MetricOmmPoolDataProvider.ts +4 -4
- package/src/abis/MetricOmmPoolFactory.ts +93 -19
- package/src/abis/MetricOmmPoolLiquidityAdder.ts +85 -9
- package/src/abis/MetricOmmPoolSwapper.ts +8 -8
- package/src/abis/OracleValueStopLossExtension.ts +1213 -0
- package/src/abis/PriceProvider.ts +1 -146
- package/src/abis/PriceVelocityGuardExtension.ts +589 -0
- package/src/abis/SwapAllowlistExtension.ts +571 -0
- package/src/abis/index.ts +4 -0
- package/src/addresses.ts +44 -18
- package/src/extensions/admin/depositAllowlist.ts +16 -0
- package/src/extensions/admin/oracleStopLoss.ts +141 -0
- package/src/extensions/admin/priceVelocityGuard.ts +27 -0
- package/src/extensions/admin/swapAllowlist.ts +16 -0
- package/src/extensions/index.ts +31 -0
- package/src/extensions/init/index.ts +21 -0
- package/src/extensions/orders.ts +33 -0
- package/src/extensions/types.ts +33 -0
- package/src/index.ts +33 -0
- package/src/pool/create.ts +12 -8
- package/src/pool/index.ts +1 -0
- package/src/pool/liquidity.ts +41 -15
- package/src/pool/read.ts +34 -16
- package/src/router/swap.ts +16 -16
- package/src/types.ts +3 -4
package/src/router/swap.ts
CHANGED
|
@@ -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
|
|
14
|
-
return args.length >= 8 ? args : [...args,
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
maxDriftE8: bigint;
|
|
55
|
-
maxDriftDecayPerSecondE8: bigint;
|
|
53
|
+
extensions: PoolExtensions;
|
|
54
|
+
extensionOrders: ExtensionOrders;
|
|
56
55
|
lowestBin: number;
|
|
57
56
|
highestBin: number;
|
|
58
57
|
}
|