@nradko/metric-omm-sdk-v1 0.0.16
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 +111 -0
- package/dist/abis/MetricOmmPool.d.ts +784 -0
- package/dist/abis/MetricOmmPool.d.ts.map +1 -0
- package/dist/abis/MetricOmmPool.js +1008 -0
- package/dist/abis/MetricOmmPool.js.map +1 -0
- package/dist/abis/MetricOmmPoolFactory.d.ts +1365 -0
- package/dist/abis/MetricOmmPoolFactory.d.ts.map +1 -0
- package/dist/abis/MetricOmmPoolFactory.js +1754 -0
- package/dist/abis/MetricOmmPoolFactory.js.map +1 -0
- package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts +308 -0
- package/dist/abis/MetricOmmPoolLiquidityAdder.d.ts.map +1 -0
- package/dist/abis/MetricOmmPoolLiquidityAdder.js +401 -0
- package/dist/abis/MetricOmmPoolLiquidityAdder.js.map +1 -0
- package/dist/abis/MetricOmmPoolStateView.d.ts +538 -0
- package/dist/abis/MetricOmmPoolStateView.d.ts.map +1 -0
- package/dist/abis/MetricOmmPoolStateView.js +717 -0
- package/dist/abis/MetricOmmPoolStateView.js.map +1 -0
- package/dist/abis/MetricOmmPoolSwapper.d.ts +557 -0
- package/dist/abis/MetricOmmPoolSwapper.d.ts.map +1 -0
- package/dist/abis/MetricOmmPoolSwapper.js +723 -0
- package/dist/abis/MetricOmmPoolSwapper.js.map +1 -0
- package/dist/abis/Multicall3.d.ts +333 -0
- package/dist/abis/Multicall3.d.ts.map +1 -0
- package/dist/abis/Multicall3.js +441 -0
- package/dist/abis/Multicall3.js.map +1 -0
- package/dist/abis/PriceProvider.d.ts +142 -0
- package/dist/abis/PriceProvider.d.ts.map +1 -0
- package/dist/abis/PriceProvider.js +184 -0
- package/dist/abis/PriceProvider.js.map +1 -0
- package/dist/abis/PriceProviderUi.d.ts +433 -0
- package/dist/abis/PriceProviderUi.d.ts.map +1 -0
- package/dist/abis/PriceProviderUi.js +318 -0
- package/dist/abis/PriceProviderUi.js.map +1 -0
- package/dist/abis/index.d.ts +11 -0
- package/dist/abis/index.d.ts.map +1 -0
- package/dist/abis/index.js +11 -0
- package/dist/abis/index.js.map +1 -0
- package/dist/addresses.d.ts +52 -0
- package/dist/addresses.d.ts.map +1 -0
- package/dist/addresses.js +58 -0
- package/dist/addresses.js.map +1 -0
- package/dist/constants.d.ts +20 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +26 -0
- package/dist/constants.js.map +1 -0
- package/dist/factory/collectFees.d.ts +41 -0
- package/dist/factory/collectFees.d.ts.map +1 -0
- package/dist/factory/collectFees.js +120 -0
- package/dist/factory/collectFees.js.map +1 -0
- package/dist/factory/index.d.ts +5 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +5 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/pool/create.d.ts +80 -0
- package/dist/pool/create.d.ts.map +1 -0
- package/dist/pool/create.js +80 -0
- package/dist/pool/create.js.map +1 -0
- package/dist/pool/index.d.ts +7 -0
- package/dist/pool/index.d.ts.map +1 -0
- package/dist/pool/index.js +10 -0
- package/dist/pool/index.js.map +1 -0
- package/dist/pool/liquidity.d.ts +165 -0
- package/dist/pool/liquidity.d.ts.map +1 -0
- package/dist/pool/liquidity.js +508 -0
- package/dist/pool/liquidity.js.map +1 -0
- package/dist/pool/read.d.ts +22 -0
- package/dist/pool/read.d.ts.map +1 -0
- package/dist/pool/read.js +88 -0
- package/dist/pool/read.js.map +1 -0
- package/dist/router/index.d.ts +5 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +5 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/swap.d.ts +117 -0
- package/dist/router/swap.d.ts.map +1 -0
- package/dist/router/swap.js +298 -0
- package/dist/router/swap.js.map +1 -0
- package/dist/stateView/index.d.ts +5 -0
- package/dist/stateView/index.d.ts.map +1 -0
- package/dist/stateView/index.js +5 -0
- package/dist/stateView/index.js.map +1 -0
- package/dist/stateView/read.d.ts +80 -0
- package/dist/stateView/read.d.ts.map +1 -0
- package/dist/stateView/read.js +249 -0
- package/dist/stateView/read.js.map +1 -0
- package/dist/types.d.ts +134 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/binData.d.ts +65 -0
- package/dist/utils/binData.d.ts.map +1 -0
- package/dist/utils/binData.js +109 -0
- package/dist/utils/binData.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/liquidityMath.d.ts +10 -0
- package/dist/utils/liquidityMath.d.ts.map +1 -0
- package/dist/utils/liquidityMath.js +31 -0
- package/dist/utils/liquidityMath.js.map +1 -0
- package/dist/utils/price.d.ts +13 -0
- package/dist/utils/price.d.ts.map +1 -0
- package/dist/utils/price.js +21 -0
- package/dist/utils/price.js.map +1 -0
- package/package.json +74 -0
- package/src/abis/MetricOmmPool.ts +1007 -0
- package/src/abis/MetricOmmPoolFactory.ts +1753 -0
- package/src/abis/MetricOmmPoolLiquidityAdder.ts +400 -0
- package/src/abis/MetricOmmPoolStateView.ts +716 -0
- package/src/abis/MetricOmmPoolSwapper.ts +722 -0
- package/src/abis/Multicall3.ts +440 -0
- package/src/abis/PriceProvider.ts +183 -0
- package/src/abis/PriceProviderUi.ts +317 -0
- package/src/abis/index.ts +11 -0
- package/src/addresses.ts +100 -0
- package/src/constants.ts +35 -0
- package/src/factory/collectFees.ts +197 -0
- package/src/factory/index.ts +12 -0
- package/src/index.ts +157 -0
- package/src/pool/create.ts +158 -0
- package/src/pool/index.ts +47 -0
- package/src/pool/liquidity.ts +839 -0
- package/src/pool/read.ts +131 -0
- package/src/router/index.ts +27 -0
- package/src/router/swap.ts +507 -0
- package/src/stateView/index.ts +18 -0
- package/src/stateView/read.ts +355 -0
- package/src/types.ts +162 -0
- package/src/utils/binData.ts +127 -0
- package/src/utils/index.ts +26 -0
- package/src/utils/liquidityMath.ts +47 -0
- package/src/utils/price.ts +23 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - Router Functions
|
|
3
|
+
*/
|
|
4
|
+
export { quoteSwap, buildArgsForSwapExactInput, buildArgsAndExpectedAmountsForSwapExactInput, quoteExpectedAmountsForSwapExactInput, buildArgsForSwapExactOutput, buildArgsAndExpectedAmountsForSwapExactOutput, quoteExpectedAmountsForSwapExactOutput, prepareSwapExactInputCalldata, prepareSwapExactOutputCalldata, prepareSwapExactInputNativeForTokensCalldata, type PreparedSwapTransaction, type BuildSwapExactInputParams, type QuoteExpectedAmountsForSwapExactInputParams, type SwapExactInputParams, type BuildSwapExactOutputParams, type QuoteExpectedAmountsForSwapExactOutputParams, type SwapExactOutputParams, type SwapExactInputArgs, type SwapExactOutputArgs, type QuoteSwapParams, type QuoteSwapResult, } from "./swap.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,4CAA4C,EAC5C,qCAAqC,EACrC,2BAA2B,EAC3B,6CAA6C,EAC7C,sCAAsC,EACtC,6BAA6B,EAC7B,8BAA8B,EAC9B,4CAA4C,EAC5C,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,2CAA2C,EAChD,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,4CAA4C,EACjD,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - Router Functions
|
|
3
|
+
*/
|
|
4
|
+
export { quoteSwap, buildArgsForSwapExactInput, buildArgsAndExpectedAmountsForSwapExactInput, quoteExpectedAmountsForSwapExactInput, buildArgsForSwapExactOutput, buildArgsAndExpectedAmountsForSwapExactOutput, quoteExpectedAmountsForSwapExactOutput, prepareSwapExactInputCalldata, prepareSwapExactOutputCalldata, prepareSwapExactInputNativeForTokensCalldata, } from "./swap.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,4CAA4C,EAC5C,qCAAqC,EACrC,2BAA2B,EAC3B,6CAA6C,EAC7C,sCAAsC,EACtC,6BAA6B,EAC7B,8BAA8B,EAC9B,4CAA4C,GAY7C,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - Swapper (v1 periphery) helpers for building and encoding swaps.
|
|
3
|
+
*/
|
|
4
|
+
import type { Address, PublicClient, Hex } from "viem";
|
|
5
|
+
export interface PreparedSwapTransaction {
|
|
6
|
+
data: Hex;
|
|
7
|
+
value?: bigint;
|
|
8
|
+
}
|
|
9
|
+
export type SwapExactInputArgs = readonly [
|
|
10
|
+
Address,
|
|
11
|
+
Address,
|
|
12
|
+
boolean,
|
|
13
|
+
bigint,
|
|
14
|
+
bigint,
|
|
15
|
+
bigint,
|
|
16
|
+
bigint
|
|
17
|
+
];
|
|
18
|
+
export type SwapExactInputParams = {
|
|
19
|
+
pool: Address;
|
|
20
|
+
recipient: Address;
|
|
21
|
+
zeroForOne: boolean;
|
|
22
|
+
amountIn: bigint;
|
|
23
|
+
priceLimitX64: bigint;
|
|
24
|
+
minAmountOut: bigint;
|
|
25
|
+
deadline: bigint;
|
|
26
|
+
};
|
|
27
|
+
export type SwapExactOutputArgs = readonly [
|
|
28
|
+
Address,
|
|
29
|
+
Address,
|
|
30
|
+
boolean,
|
|
31
|
+
bigint,
|
|
32
|
+
bigint,
|
|
33
|
+
bigint,
|
|
34
|
+
bigint
|
|
35
|
+
];
|
|
36
|
+
export type SwapExactOutputParams = {
|
|
37
|
+
pool: Address;
|
|
38
|
+
recipient: Address;
|
|
39
|
+
zeroForOne: boolean;
|
|
40
|
+
amountOut: bigint;
|
|
41
|
+
priceLimitX64: bigint;
|
|
42
|
+
maxAmountIn: bigint;
|
|
43
|
+
deadline: bigint;
|
|
44
|
+
};
|
|
45
|
+
export interface BuildSwapPrices {
|
|
46
|
+
bidPriceX64: bigint;
|
|
47
|
+
askPriceX64: bigint;
|
|
48
|
+
}
|
|
49
|
+
export interface BuildSwapExactInputParams {
|
|
50
|
+
publicClient: PublicClient;
|
|
51
|
+
swapperAddress: Address;
|
|
52
|
+
pool: Address;
|
|
53
|
+
recipient: Address;
|
|
54
|
+
zeroForOne: boolean;
|
|
55
|
+
amountIn: bigint;
|
|
56
|
+
slippagePercent: number;
|
|
57
|
+
prices?: BuildSwapPrices;
|
|
58
|
+
priceLimitX64?: bigint;
|
|
59
|
+
deadline: bigint;
|
|
60
|
+
}
|
|
61
|
+
export interface BuildSwapExactOutputParams {
|
|
62
|
+
publicClient: PublicClient;
|
|
63
|
+
swapperAddress: Address;
|
|
64
|
+
pool: Address;
|
|
65
|
+
recipient: Address;
|
|
66
|
+
zeroForOne: boolean;
|
|
67
|
+
amountOut: bigint;
|
|
68
|
+
slippagePercent: number;
|
|
69
|
+
prices?: BuildSwapPrices;
|
|
70
|
+
priceLimitX64?: bigint;
|
|
71
|
+
deadline: bigint;
|
|
72
|
+
}
|
|
73
|
+
export type QuoteExpectedAmountsForSwapExactInputParams = Omit<BuildSwapExactInputParams, "recipient" | "deadline">;
|
|
74
|
+
export type QuoteExpectedAmountsForSwapExactOutputParams = Omit<BuildSwapExactOutputParams, "recipient" | "deadline">;
|
|
75
|
+
export declare function buildArgsForSwapExactInput(params: BuildSwapExactInputParams): Promise<SwapExactInputArgs>;
|
|
76
|
+
export declare function buildArgsAndExpectedAmountsForSwapExactInput(params: BuildSwapExactInputParams): Promise<{
|
|
77
|
+
args: SwapExactInputArgs;
|
|
78
|
+
expectedInput: bigint;
|
|
79
|
+
expectedOutput: bigint;
|
|
80
|
+
}>;
|
|
81
|
+
export type QuoteSwapParams = {
|
|
82
|
+
publicClient: PublicClient;
|
|
83
|
+
swapperAddress: Address;
|
|
84
|
+
pool: Address;
|
|
85
|
+
zeroForOne: boolean;
|
|
86
|
+
amountSpecified: bigint;
|
|
87
|
+
priceLimitX64?: bigint;
|
|
88
|
+
prices?: BuildSwapPrices;
|
|
89
|
+
};
|
|
90
|
+
export type QuoteSwapResult = {
|
|
91
|
+
amount0Delta: bigint;
|
|
92
|
+
amount1Delta: bigint;
|
|
93
|
+
amountIn: bigint;
|
|
94
|
+
amountOut: bigint;
|
|
95
|
+
};
|
|
96
|
+
export declare function quoteSwap(params: QuoteSwapParams): Promise<QuoteSwapResult>;
|
|
97
|
+
export declare function quoteExpectedAmountsForSwapExactInput(params: QuoteExpectedAmountsForSwapExactInputParams): Promise<{
|
|
98
|
+
expectedInput: bigint;
|
|
99
|
+
expectedOutput: bigint;
|
|
100
|
+
}>;
|
|
101
|
+
export declare function buildArgsForSwapExactOutput(params: BuildSwapExactOutputParams): Promise<SwapExactOutputArgs>;
|
|
102
|
+
export declare function buildArgsAndExpectedAmountsForSwapExactOutput(params: BuildSwapExactOutputParams): Promise<{
|
|
103
|
+
args: SwapExactOutputArgs;
|
|
104
|
+
expectedInput: bigint;
|
|
105
|
+
expectedOutput: bigint;
|
|
106
|
+
}>;
|
|
107
|
+
export declare function quoteExpectedAmountsForSwapExactOutput(params: QuoteExpectedAmountsForSwapExactOutputParams): Promise<{
|
|
108
|
+
expectedInput: bigint;
|
|
109
|
+
expectedOutput: bigint;
|
|
110
|
+
}>;
|
|
111
|
+
export declare function encodeSwapExactInputCalldata(argsOrParams: SwapExactInputArgs | SwapExactInputParams): `0x${string}`;
|
|
112
|
+
export declare const prepareSwapExactInputCalldata: typeof encodeSwapExactInputCalldata;
|
|
113
|
+
export declare function encodeSwapExactOutputCalldata(argsOrParams: SwapExactOutputArgs | SwapExactOutputParams): `0x${string}`;
|
|
114
|
+
export declare const prepareSwapExactOutputCalldata: typeof encodeSwapExactOutputCalldata;
|
|
115
|
+
export declare function encodeSwapExactInputNativeForTokensCalldata(params: SwapExactInputParams): PreparedSwapTransaction;
|
|
116
|
+
export declare const prepareSwapExactInputNativeForTokensCalldata: typeof encodeSwapExactInputNativeForTokensCalldata;
|
|
117
|
+
//# sourceMappingURL=swap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/router/swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - Swapper (v1 periphery) helpers for building and encoding swaps.
|
|
3
|
+
*/
|
|
4
|
+
import { encodeFunctionData } from "viem";
|
|
5
|
+
import { MAX_UINT128, POOL_ABI, SWAPPER_ABI } from "../constants.js";
|
|
6
|
+
import { PriceProviderUiAbi } from "../abis/PriceProviderUi.js";
|
|
7
|
+
const BPS_BASE = 10000n;
|
|
8
|
+
function toSlippageBps(slippagePercent) {
|
|
9
|
+
if (!Number.isFinite(slippagePercent) || slippagePercent < 0) {
|
|
10
|
+
throw new Error("slippagePercent must be a non-negative finite number");
|
|
11
|
+
}
|
|
12
|
+
return BigInt(Math.round(slippagePercent * 100));
|
|
13
|
+
}
|
|
14
|
+
function absBigInt(value) {
|
|
15
|
+
return value < 0n ? -value : value;
|
|
16
|
+
}
|
|
17
|
+
function ceilDiv(numerator, denominator) {
|
|
18
|
+
if (denominator <= 0n) {
|
|
19
|
+
throw new Error("denominator must be > 0");
|
|
20
|
+
}
|
|
21
|
+
return numerator === 0n ? 0n : (numerator + denominator - 1n) / denominator;
|
|
22
|
+
}
|
|
23
|
+
function defaultPriceLimitX64(zeroForOne) {
|
|
24
|
+
return zeroForOne ? 0n : MAX_UINT128;
|
|
25
|
+
}
|
|
26
|
+
async function readBidAskFromPoolPriceProvider(publicClient, poolAddress) {
|
|
27
|
+
const immutables = (await publicClient.readContract({
|
|
28
|
+
address: poolAddress,
|
|
29
|
+
abi: POOL_ABI,
|
|
30
|
+
functionName: "getImmutables",
|
|
31
|
+
}));
|
|
32
|
+
const priceProviderAddress = immutables[1];
|
|
33
|
+
const [bidPriceX64, askPriceX64] = (await publicClient.readContract({
|
|
34
|
+
address: priceProviderAddress,
|
|
35
|
+
abi: PriceProviderUiAbi,
|
|
36
|
+
functionName: "getBidAndAskPriceUi",
|
|
37
|
+
}));
|
|
38
|
+
return { bidPriceX64, askPriceX64 };
|
|
39
|
+
}
|
|
40
|
+
async function resolveBidAskPrices(params) {
|
|
41
|
+
if (params.prices) {
|
|
42
|
+
return params.prices;
|
|
43
|
+
}
|
|
44
|
+
return readBidAskFromPoolPriceProvider(params.publicClient, params.pool);
|
|
45
|
+
}
|
|
46
|
+
export async function buildArgsForSwapExactInput(params) {
|
|
47
|
+
const slippageBps = toSlippageBps(params.slippagePercent);
|
|
48
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
49
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
50
|
+
const { result: [amount0Delta, amount1Delta], } = (await params.publicClient.simulateContract({
|
|
51
|
+
address: params.swapperAddress,
|
|
52
|
+
abi: SWAPPER_ABI,
|
|
53
|
+
functionName: "quoteSwap",
|
|
54
|
+
args: [
|
|
55
|
+
params.pool,
|
|
56
|
+
params.zeroForOne,
|
|
57
|
+
params.amountIn,
|
|
58
|
+
priceLimitX64,
|
|
59
|
+
bidPriceX64,
|
|
60
|
+
askPriceX64,
|
|
61
|
+
],
|
|
62
|
+
account: params.recipient,
|
|
63
|
+
}));
|
|
64
|
+
const amountSwapWillResultIn = params.zeroForOne
|
|
65
|
+
? absBigInt(amount1Delta)
|
|
66
|
+
: absBigInt(amount0Delta);
|
|
67
|
+
const minAmountOut = (amountSwapWillResultIn * (BPS_BASE - slippageBps)) / BPS_BASE;
|
|
68
|
+
return [
|
|
69
|
+
params.pool,
|
|
70
|
+
params.recipient,
|
|
71
|
+
params.zeroForOne,
|
|
72
|
+
params.amountIn,
|
|
73
|
+
priceLimitX64,
|
|
74
|
+
minAmountOut,
|
|
75
|
+
params.deadline,
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
export async function buildArgsAndExpectedAmountsForSwapExactInput(params) {
|
|
79
|
+
const slippageBps = toSlippageBps(params.slippagePercent);
|
|
80
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
81
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
82
|
+
const { result: [amount0Delta, amount1Delta], } = (await params.publicClient.simulateContract({
|
|
83
|
+
address: params.swapperAddress,
|
|
84
|
+
abi: SWAPPER_ABI,
|
|
85
|
+
functionName: "quoteSwap",
|
|
86
|
+
args: [
|
|
87
|
+
params.pool,
|
|
88
|
+
params.zeroForOne,
|
|
89
|
+
params.amountIn,
|
|
90
|
+
priceLimitX64,
|
|
91
|
+
bidPriceX64,
|
|
92
|
+
askPriceX64,
|
|
93
|
+
],
|
|
94
|
+
account: params.recipient,
|
|
95
|
+
}));
|
|
96
|
+
const expectedOutput = params.zeroForOne ? absBigInt(amount1Delta) : absBigInt(amount0Delta);
|
|
97
|
+
const expectedInput = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
98
|
+
const minAmountOut = (expectedOutput * (BPS_BASE - slippageBps)) / BPS_BASE;
|
|
99
|
+
const args = [
|
|
100
|
+
params.pool,
|
|
101
|
+
params.recipient,
|
|
102
|
+
params.zeroForOne,
|
|
103
|
+
params.amountIn,
|
|
104
|
+
priceLimitX64,
|
|
105
|
+
minAmountOut,
|
|
106
|
+
params.deadline,
|
|
107
|
+
];
|
|
108
|
+
return {
|
|
109
|
+
args,
|
|
110
|
+
expectedInput,
|
|
111
|
+
expectedOutput,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export async function quoteSwap(params) {
|
|
115
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
116
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
117
|
+
const [amount0Delta, amount1Delta] = (await params.publicClient.readContract({
|
|
118
|
+
address: params.swapperAddress,
|
|
119
|
+
abi: SWAPPER_ABI,
|
|
120
|
+
functionName: "quoteSwap",
|
|
121
|
+
args: [
|
|
122
|
+
params.pool,
|
|
123
|
+
params.zeroForOne,
|
|
124
|
+
params.amountSpecified,
|
|
125
|
+
priceLimitX64,
|
|
126
|
+
bidPriceX64,
|
|
127
|
+
askPriceX64,
|
|
128
|
+
],
|
|
129
|
+
}));
|
|
130
|
+
const amountIn = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
131
|
+
const amountOut = params.zeroForOne ? absBigInt(amount1Delta) : absBigInt(amount0Delta);
|
|
132
|
+
return { amount0Delta, amount1Delta, amountIn, amountOut };
|
|
133
|
+
}
|
|
134
|
+
export async function quoteExpectedAmountsForSwapExactInput(params) {
|
|
135
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
136
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
137
|
+
const [amount0Delta, amount1Delta] = (await params.publicClient.readContract({
|
|
138
|
+
address: params.swapperAddress,
|
|
139
|
+
abi: SWAPPER_ABI,
|
|
140
|
+
functionName: "quoteSwap",
|
|
141
|
+
args: [
|
|
142
|
+
params.pool,
|
|
143
|
+
params.zeroForOne,
|
|
144
|
+
params.amountIn,
|
|
145
|
+
priceLimitX64,
|
|
146
|
+
bidPriceX64,
|
|
147
|
+
askPriceX64,
|
|
148
|
+
],
|
|
149
|
+
}));
|
|
150
|
+
const expectedOutput = params.zeroForOne ? absBigInt(amount1Delta) : absBigInt(amount0Delta);
|
|
151
|
+
const expectedInput = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
152
|
+
return { expectedInput, expectedOutput };
|
|
153
|
+
}
|
|
154
|
+
export async function buildArgsForSwapExactOutput(params) {
|
|
155
|
+
const slippageBps = toSlippageBps(params.slippagePercent);
|
|
156
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
157
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
158
|
+
const { result: [amount0Delta, amount1Delta], } = (await params.publicClient.simulateContract({
|
|
159
|
+
address: params.swapperAddress,
|
|
160
|
+
abi: SWAPPER_ABI,
|
|
161
|
+
functionName: "quoteSwap",
|
|
162
|
+
args: [
|
|
163
|
+
params.pool,
|
|
164
|
+
params.zeroForOne,
|
|
165
|
+
-params.amountOut,
|
|
166
|
+
priceLimitX64,
|
|
167
|
+
bidPriceX64,
|
|
168
|
+
askPriceX64,
|
|
169
|
+
],
|
|
170
|
+
account: params.recipient,
|
|
171
|
+
}));
|
|
172
|
+
const quotedAmountIn = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
173
|
+
const maxAmountIn = ceilDiv(quotedAmountIn * (BPS_BASE + slippageBps), BPS_BASE);
|
|
174
|
+
return [
|
|
175
|
+
params.pool,
|
|
176
|
+
params.recipient,
|
|
177
|
+
params.zeroForOne,
|
|
178
|
+
params.amountOut,
|
|
179
|
+
priceLimitX64,
|
|
180
|
+
maxAmountIn,
|
|
181
|
+
params.deadline,
|
|
182
|
+
];
|
|
183
|
+
}
|
|
184
|
+
export async function buildArgsAndExpectedAmountsForSwapExactOutput(params) {
|
|
185
|
+
const slippageBps = toSlippageBps(params.slippagePercent);
|
|
186
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
187
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
188
|
+
const { result: [amount0Delta, amount1Delta], } = (await params.publicClient.simulateContract({
|
|
189
|
+
address: params.swapperAddress,
|
|
190
|
+
abi: SWAPPER_ABI,
|
|
191
|
+
functionName: "quoteSwap",
|
|
192
|
+
args: [
|
|
193
|
+
params.pool,
|
|
194
|
+
params.zeroForOne,
|
|
195
|
+
-params.amountOut,
|
|
196
|
+
priceLimitX64,
|
|
197
|
+
bidPriceX64,
|
|
198
|
+
askPriceX64,
|
|
199
|
+
],
|
|
200
|
+
account: params.recipient,
|
|
201
|
+
}));
|
|
202
|
+
const expectedInput = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
203
|
+
const expectedOutput = params.zeroForOne ? absBigInt(amount1Delta) : absBigInt(amount0Delta);
|
|
204
|
+
const maxAmountIn = ceilDiv(expectedInput * (BPS_BASE + slippageBps), BPS_BASE);
|
|
205
|
+
const args = [
|
|
206
|
+
params.pool,
|
|
207
|
+
params.recipient,
|
|
208
|
+
params.zeroForOne,
|
|
209
|
+
params.amountOut,
|
|
210
|
+
priceLimitX64,
|
|
211
|
+
maxAmountIn,
|
|
212
|
+
params.deadline,
|
|
213
|
+
];
|
|
214
|
+
return {
|
|
215
|
+
args,
|
|
216
|
+
expectedInput,
|
|
217
|
+
expectedOutput,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
export async function quoteExpectedAmountsForSwapExactOutput(params) {
|
|
221
|
+
const priceLimitX64 = params.priceLimitX64 ?? defaultPriceLimitX64(params.zeroForOne);
|
|
222
|
+
const { bidPriceX64, askPriceX64 } = await resolveBidAskPrices(params);
|
|
223
|
+
const [amount0Delta, amount1Delta] = (await params.publicClient.readContract({
|
|
224
|
+
address: params.swapperAddress,
|
|
225
|
+
abi: SWAPPER_ABI,
|
|
226
|
+
functionName: "quoteSwap",
|
|
227
|
+
args: [
|
|
228
|
+
params.pool,
|
|
229
|
+
params.zeroForOne,
|
|
230
|
+
-params.amountOut,
|
|
231
|
+
priceLimitX64,
|
|
232
|
+
bidPriceX64,
|
|
233
|
+
askPriceX64,
|
|
234
|
+
],
|
|
235
|
+
}));
|
|
236
|
+
const expectedInput = params.zeroForOne ? absBigInt(amount0Delta) : absBigInt(amount1Delta);
|
|
237
|
+
const expectedOutput = params.zeroForOne ? absBigInt(amount1Delta) : absBigInt(amount0Delta);
|
|
238
|
+
return { expectedInput, expectedOutput };
|
|
239
|
+
}
|
|
240
|
+
export function encodeSwapExactInputCalldata(argsOrParams) {
|
|
241
|
+
const args = Array.isArray(argsOrParams)
|
|
242
|
+
? argsOrParams
|
|
243
|
+
: [
|
|
244
|
+
argsOrParams.pool,
|
|
245
|
+
argsOrParams.recipient,
|
|
246
|
+
argsOrParams.zeroForOne,
|
|
247
|
+
argsOrParams.amountIn,
|
|
248
|
+
argsOrParams.priceLimitX64,
|
|
249
|
+
argsOrParams.minAmountOut,
|
|
250
|
+
argsOrParams.deadline,
|
|
251
|
+
];
|
|
252
|
+
return encodeFunctionData({
|
|
253
|
+
abi: SWAPPER_ABI,
|
|
254
|
+
functionName: "swapExactInput",
|
|
255
|
+
args,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
export const prepareSwapExactInputCalldata = encodeSwapExactInputCalldata;
|
|
259
|
+
export function encodeSwapExactOutputCalldata(argsOrParams) {
|
|
260
|
+
const args = Array.isArray(argsOrParams)
|
|
261
|
+
? argsOrParams
|
|
262
|
+
: [
|
|
263
|
+
argsOrParams.pool,
|
|
264
|
+
argsOrParams.recipient,
|
|
265
|
+
argsOrParams.zeroForOne,
|
|
266
|
+
argsOrParams.amountOut,
|
|
267
|
+
argsOrParams.priceLimitX64,
|
|
268
|
+
argsOrParams.maxAmountIn,
|
|
269
|
+
argsOrParams.deadline,
|
|
270
|
+
];
|
|
271
|
+
return encodeFunctionData({
|
|
272
|
+
abi: SWAPPER_ABI,
|
|
273
|
+
functionName: "swapExactOutput",
|
|
274
|
+
args,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
export const prepareSwapExactOutputCalldata = encodeSwapExactOutputCalldata;
|
|
278
|
+
export function encodeSwapExactInputNativeForTokensCalldata(params) {
|
|
279
|
+
const data = encodeFunctionData({
|
|
280
|
+
abi: SWAPPER_ABI,
|
|
281
|
+
functionName: "swapExactInputNativeForTokens",
|
|
282
|
+
args: [
|
|
283
|
+
params.pool,
|
|
284
|
+
params.recipient,
|
|
285
|
+
params.zeroForOne,
|
|
286
|
+
params.amountIn,
|
|
287
|
+
params.priceLimitX64,
|
|
288
|
+
params.minAmountOut,
|
|
289
|
+
params.deadline,
|
|
290
|
+
],
|
|
291
|
+
});
|
|
292
|
+
return {
|
|
293
|
+
data,
|
|
294
|
+
value: params.amountIn,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
export const prepareSwapExactInputNativeForTokensCalldata = encodeSwapExactInputNativeForTokensCalldata;
|
|
298
|
+
//# sourceMappingURL=swap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/router/swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - StateView Functions
|
|
3
|
+
*/
|
|
4
|
+
export { getSlot0, getSlot1, getBinStateExternal, getBinStatesExternal, getBinStatesScaled, getBinTotalShares, getPositionBinSharesFromStateView, toPositionBinKey, getPositionBinSharesRange, getFeeConfig, getPriceProvider, getLastTradeTimestamp, } from "./read.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/stateView/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - StateView Functions
|
|
3
|
+
*/
|
|
4
|
+
export { getSlot0, getSlot1, getBinStateExternal, getBinStatesExternal, getBinStatesScaled, getBinTotalShares, getPositionBinSharesFromStateView, toPositionBinKey, getPositionBinSharesRange, getFeeConfig, getPriceProvider, getLastTradeTimestamp, } from "./read.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stateView/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iCAAiC,EACjC,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricAMM SDK - StateView Read Functions
|
|
3
|
+
* Efficient batch read functions using the StateView contract
|
|
4
|
+
*/
|
|
5
|
+
import type { Address, PublicClient } from "viem";
|
|
6
|
+
import type { Slot0, Slot1, BinStateExternal, BinStatesExternal, BinStatesScaled, FeeConfig, PositionBinSharesResult } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Get slot0 data efficiently (all in one call)
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSlot0(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address): Promise<Slot0>;
|
|
11
|
+
/**
|
|
12
|
+
* Get slot1 data (total scaled token amounts in bins)
|
|
13
|
+
*/
|
|
14
|
+
export declare function getSlot1(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address): Promise<Slot1>;
|
|
15
|
+
/**
|
|
16
|
+
* Get bin state with balances in external (native token decimal) units
|
|
17
|
+
*/
|
|
18
|
+
export declare function getBinStateExternal(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, binIdx: number): Promise<BinStateExternal>;
|
|
19
|
+
/**
|
|
20
|
+
* Get multiple bin states efficiently (batch read)
|
|
21
|
+
*/
|
|
22
|
+
export declare function getBinStatesExternal(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, binIndices: number[]): Promise<BinStatesExternal>;
|
|
23
|
+
/**
|
|
24
|
+
* Get multiple bin states in scaled (internal) units (parallel reads).
|
|
25
|
+
*/
|
|
26
|
+
export declare function getBinStatesScaled(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, binIndices: number[]): Promise<BinStatesScaled>;
|
|
27
|
+
/**
|
|
28
|
+
* Get bin total shares
|
|
29
|
+
*/
|
|
30
|
+
export declare function getBinTotalShares(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, binIdx: number): Promise<bigint>;
|
|
31
|
+
/**
|
|
32
|
+
* Get user position shares via StateView
|
|
33
|
+
*/
|
|
34
|
+
export declare function getPositionBinSharesFromStateView(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, owner: Address, salt: bigint, binIdx: number): Promise<bigint>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a position bin key (matches Solidity's toPositionBinKey)
|
|
37
|
+
* Layout: [address(160)] | [salt(80)] | [bin(16)] = 256 bits
|
|
38
|
+
*/
|
|
39
|
+
export declare function toPositionBinKey(owner: Address, salt: bigint, bin: number): `0x${string}`;
|
|
40
|
+
/**
|
|
41
|
+
* Get user position shares for a range of bins via StateView batch call
|
|
42
|
+
*
|
|
43
|
+
* @param publicClient - Viem public client
|
|
44
|
+
* @param stateViewAddress - StateView contract address
|
|
45
|
+
* @param poolAddress - Pool address
|
|
46
|
+
* @param owner - Position owner (e.g., NFTPositionManager address)
|
|
47
|
+
* @param salt - Position salt (e.g., NFT token ID)
|
|
48
|
+
* @param lowerBin - Lower bin index (inclusive)
|
|
49
|
+
* @param upperBin - Upper bin index (inclusive)
|
|
50
|
+
* @returns Array of { binIdx, shares } for bins with non-zero shares
|
|
51
|
+
*/
|
|
52
|
+
export declare function getPositionBinSharesRange(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, owner: Address, salt: bigint, lowerBin: number, upperBin: number): Promise<PositionBinSharesResult[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Get user position shares for specific (possibly non-contiguous) bins via StateView batch call.
|
|
55
|
+
*
|
|
56
|
+
* Unlike getPositionBinSharesRange which scans a contiguous range,
|
|
57
|
+
* this function queries exact bin indices you specify.
|
|
58
|
+
*
|
|
59
|
+
* @param publicClient - Viem public client
|
|
60
|
+
* @param stateViewAddress - StateView contract address
|
|
61
|
+
* @param poolAddress - Pool address
|
|
62
|
+
* @param owner - Position owner address
|
|
63
|
+
* @param salt - Position salt
|
|
64
|
+
* @param bins - Array of specific bin indices to query (e.g., [-3, 1, 2])
|
|
65
|
+
* @returns Array of { binIdx, shares } for bins with non-zero shares
|
|
66
|
+
*/
|
|
67
|
+
export declare function getPositionBinSharesForBins(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address, owner: Address, salt: bigint, bins: number[]): Promise<PositionBinSharesResult[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Get fee configuration
|
|
70
|
+
*/
|
|
71
|
+
export declare function getFeeConfig(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address): Promise<FeeConfig>;
|
|
72
|
+
/**
|
|
73
|
+
* Get price provider address
|
|
74
|
+
*/
|
|
75
|
+
export declare function getPriceProvider(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address): Promise<Address>;
|
|
76
|
+
/**
|
|
77
|
+
* Get last trade timestamp
|
|
78
|
+
*/
|
|
79
|
+
export declare function getLastTradeTimestamp(publicClient: PublicClient, stateViewAddress: Address, poolAddress: Address): Promise<number>;
|
|
80
|
+
//# sourceMappingURL=read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/stateView/read.ts"],"names":[],"mappings":"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"}
|