@clober/v2-sdk 1.0.0-rc.6 → 1.0.0-rc.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/calls/index.js +6 -3
- package/dist/cjs/calls/index.js.map +1 -1
- package/dist/cjs/calls/market/limit.js +5 -0
- package/dist/cjs/calls/market/limit.js.map +1 -1
- package/dist/cjs/calls/market/make.js +160 -0
- package/dist/cjs/calls/market/make.js.map +1 -0
- package/dist/cjs/calls/pool/burn.js +5 -5
- package/dist/cjs/calls/pool/market-making/adjust.js +2 -2
- package/dist/cjs/calls/pool/market-making/pause.js +2 -2
- package/dist/cjs/calls/pool/market-making/refill.js +2 -2
- package/dist/cjs/calls/pool/market-making/resume.js +2 -2
- package/dist/cjs/calls/pool/mint.js +111 -21
- package/dist/cjs/calls/pool/mint.js.map +1 -1
- package/dist/cjs/calls/pool/open.js +2 -2
- package/dist/cjs/calls/pool/open.js.map +1 -1
- package/dist/cjs/calls/pool/wrap.js +97 -0
- package/dist/cjs/calls/pool/wrap.js.map +1 -0
- package/dist/cjs/constants/abis/core/book-manager-abi.js +28 -0
- package/dist/cjs/constants/abis/core/book-manager-abi.js.map +1 -1
- package/dist/cjs/constants/abis/core/controller-abi.js +24 -1
- package/dist/cjs/constants/abis/core/controller-abi.js.map +1 -1
- package/dist/cjs/constants/abis/core/params-abi.js +77 -0
- package/dist/cjs/constants/abis/core/params-abi.js.map +1 -0
- package/dist/cjs/constants/abis/rebalancer/wrapped-6909-factory-abi.js +107 -0
- package/dist/cjs/constants/abis/rebalancer/wrapped-6909-factory-abi.js.map +1 -0
- package/dist/cjs/constants/chain-configs/addresses.js +37 -22
- package/dist/cjs/constants/chain-configs/addresses.js.map +1 -1
- package/dist/cjs/constants/chain-configs/chain.js +5 -2
- package/dist/cjs/constants/chain-configs/chain.js.map +1 -1
- package/dist/cjs/constants/chain-configs/currency.js +109 -23
- package/dist/cjs/constants/chain-configs/currency.js.map +1 -1
- package/dist/cjs/constants/chain-configs/fee.js +4 -2
- package/dist/cjs/constants/chain-configs/fee.js.map +1 -1
- package/dist/cjs/constants/chain-configs/subgraph.js +3 -2
- package/dist/cjs/constants/chain-configs/subgraph.js.map +1 -1
- package/dist/cjs/constants/networks/giwa-sepolia.js +41 -0
- package/dist/cjs/constants/networks/giwa-sepolia.js.map +1 -0
- package/dist/cjs/constants/networks/test-chain.js +1 -24
- package/dist/cjs/constants/networks/test-chain.js.map +1 -1
- package/dist/cjs/entities/analytics/apis/index.js +102 -24
- package/dist/cjs/entities/analytics/apis/index.js.map +1 -1
- package/dist/cjs/entities/book/apis/index.js +10 -5
- package/dist/cjs/entities/book/apis/index.js.map +1 -1
- package/dist/cjs/entities/currency/apis/total-supply.js +3 -6
- package/dist/cjs/entities/currency/apis/total-supply.js.map +1 -1
- package/dist/cjs/entities/market/apis/index.js +3 -3
- package/dist/cjs/entities/market/apis/index.js.map +1 -1
- package/dist/cjs/entities/market/apis/snapshot.js +234 -80
- package/dist/cjs/entities/market/apis/snapshot.js.map +1 -1
- package/dist/cjs/entities/market/utils/market-id.js +1 -1
- package/dist/cjs/entities/market/utils/market-id.js.map +1 -1
- package/dist/cjs/entities/open-order/utils/order-id.js +6 -1
- package/dist/cjs/entities/open-order/utils/order-id.js.map +1 -1
- package/dist/cjs/entities/pool/apis/index.js +11 -1
- package/dist/cjs/entities/pool/apis/index.js.map +1 -1
- package/dist/cjs/entities/pool/apis/snapshot.js +28 -23
- package/dist/cjs/entities/pool/apis/snapshot.js.map +1 -1
- package/dist/cjs/entities/pool/model.js +28 -7
- package/dist/cjs/entities/pool/model.js.map +1 -1
- package/dist/cjs/entities/swap/apis/index.js +48 -0
- package/dist/cjs/entities/swap/apis/index.js.map +1 -0
- package/dist/cjs/entities/swap/types.js +3 -0
- package/dist/cjs/entities/swap/types.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/bigint.js +4 -1
- package/dist/cjs/utils/bigint.js.map +1 -1
- package/dist/cjs/views/analytics.js +9 -1
- package/dist/cjs/views/analytics.js.map +1 -1
- package/dist/cjs/views/currency.js +5 -1
- package/dist/cjs/views/currency.js.map +1 -1
- package/dist/cjs/views/index.js +9 -1
- package/dist/cjs/views/index.js.map +1 -1
- package/dist/cjs/views/market/chart-log.js +2 -2
- package/dist/cjs/views/market/index.js +4 -2
- package/dist/cjs/views/market/index.js.map +1 -1
- package/dist/cjs/views/market/parse.js +22 -0
- package/dist/cjs/views/market/parse.js.map +1 -0
- package/dist/cjs/views/market/snapshot.js.map +1 -1
- package/dist/cjs/views/pool/index.js +16 -1
- package/dist/cjs/views/pool/index.js.map +1 -1
- package/dist/cjs/views/subgraph.js +12 -2
- package/dist/cjs/views/subgraph.js.map +1 -1
- package/dist/cjs/views/trade.js +15 -0
- package/dist/cjs/views/trade.js.map +1 -0
- package/dist/esm/calls/index.js +2 -1
- package/dist/esm/calls/index.js.map +1 -1
- package/dist/esm/calls/market/limit.js +6 -1
- package/dist/esm/calls/market/limit.js.map +1 -1
- package/dist/esm/calls/market/make.js +156 -0
- package/dist/esm/calls/market/make.js.map +1 -0
- package/dist/esm/calls/pool/burn.js +5 -5
- package/dist/esm/calls/pool/market-making/adjust.js +2 -2
- package/dist/esm/calls/pool/market-making/pause.js +2 -2
- package/dist/esm/calls/pool/market-making/refill.js +2 -2
- package/dist/esm/calls/pool/market-making/resume.js +2 -2
- package/dist/esm/calls/pool/mint.js +112 -74
- package/dist/esm/calls/pool/mint.js.map +1 -1
- package/dist/esm/calls/pool/open.js +7 -6
- package/dist/esm/calls/pool/open.js.map +1 -1
- package/dist/esm/calls/pool/wrap.js +138 -0
- package/dist/esm/calls/pool/wrap.js.map +1 -0
- package/dist/esm/constants/abis/core/book-manager-abi.js +28 -0
- package/dist/esm/constants/abis/core/book-manager-abi.js.map +1 -1
- package/dist/esm/constants/abis/core/controller-abi.js +24 -1
- package/dist/esm/constants/abis/core/controller-abi.js.map +1 -1
- package/dist/esm/constants/abis/core/params-abi.js +74 -0
- package/dist/esm/constants/abis/core/params-abi.js.map +1 -0
- package/dist/esm/constants/abis/rebalancer/wrapped-6909-factory-abi.js +104 -0
- package/dist/esm/constants/abis/rebalancer/wrapped-6909-factory-abi.js.map +1 -0
- package/dist/esm/constants/chain-configs/addresses.js +40 -34
- package/dist/esm/constants/chain-configs/addresses.js.map +1 -1
- package/dist/esm/constants/chain-configs/chain.js +7 -6
- package/dist/esm/constants/chain-configs/chain.js.map +1 -1
- package/dist/esm/constants/chain-configs/currency.js +111 -37
- package/dist/esm/constants/chain-configs/currency.js.map +1 -1
- package/dist/esm/constants/chain-configs/fee.js +4 -4
- package/dist/esm/constants/chain-configs/fee.js.map +1 -1
- package/dist/esm/constants/chain-configs/subgraph.js +3 -4
- package/dist/esm/constants/chain-configs/subgraph.js.map +1 -1
- package/dist/esm/constants/networks/giwa-sepolia.js +38 -0
- package/dist/esm/constants/networks/giwa-sepolia.js.map +1 -0
- package/dist/esm/constants/networks/test-chain.js +0 -23
- package/dist/esm/constants/networks/test-chain.js.map +1 -1
- package/dist/esm/entities/analytics/apis/index.js +99 -23
- package/dist/esm/entities/analytics/apis/index.js.map +1 -1
- package/dist/esm/entities/book/apis/index.js +10 -5
- package/dist/esm/entities/book/apis/index.js.map +1 -1
- package/dist/esm/entities/currency/apis/total-supply.js +4 -7
- package/dist/esm/entities/currency/apis/total-supply.js.map +1 -1
- package/dist/esm/entities/market/apis/index.js +3 -3
- package/dist/esm/entities/market/apis/index.js.map +1 -1
- package/dist/esm/entities/market/apis/snapshot.js +236 -81
- package/dist/esm/entities/market/apis/snapshot.js.map +1 -1
- package/dist/esm/entities/market/utils/market-id.js +2 -2
- package/dist/esm/entities/market/utils/market-id.js.map +1 -1
- package/dist/esm/entities/open-order/utils/order-id.js +4 -0
- package/dist/esm/entities/open-order/utils/order-id.js.map +1 -1
- package/dist/esm/entities/pool/apis/index.js +11 -1
- package/dist/esm/entities/pool/apis/index.js.map +1 -1
- package/dist/esm/entities/pool/apis/snapshot.js +29 -24
- package/dist/esm/entities/pool/apis/snapshot.js.map +1 -1
- package/dist/esm/entities/pool/model.js +28 -7
- package/dist/esm/entities/pool/model.js.map +1 -1
- package/dist/esm/entities/swap/apis/index.js +44 -0
- package/dist/esm/entities/swap/apis/index.js.map +1 -0
- package/dist/esm/entities/swap/types.js +2 -0
- package/dist/esm/entities/swap/types.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/bigint.js +2 -0
- package/dist/esm/utils/bigint.js.map +1 -1
- package/dist/esm/views/analytics.js +7 -1
- package/dist/esm/views/analytics.js.map +1 -1
- package/dist/esm/views/currency.js +4 -1
- package/dist/esm/views/currency.js.map +1 -1
- package/dist/esm/views/index.js +6 -5
- package/dist/esm/views/index.js.map +1 -1
- package/dist/esm/views/market/chart-log.js +2 -2
- package/dist/esm/views/market/index.js +2 -2
- package/dist/esm/views/market/index.js.map +1 -1
- package/dist/esm/views/market/parse.js +18 -0
- package/dist/esm/views/market/parse.js.map +1 -0
- package/dist/esm/views/market/snapshot.js.map +1 -1
- package/dist/esm/views/pool/index.js +14 -0
- package/dist/esm/views/pool/index.js.map +1 -1
- package/dist/esm/views/subgraph.js +22 -1
- package/dist/esm/views/subgraph.js.map +1 -1
- package/dist/esm/views/trade.js +11 -0
- package/dist/esm/views/trade.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/calls/index.d.ts +2 -1
- package/dist/types/calls/index.d.ts.map +1 -1
- package/dist/types/calls/market/limit.d.ts +1 -0
- package/dist/types/calls/market/limit.d.ts.map +1 -1
- package/dist/types/calls/market/make.d.ts +36 -0
- package/dist/types/calls/market/make.d.ts.map +1 -0
- package/dist/types/calls/pool/mint.d.ts +21 -5
- package/dist/types/calls/pool/mint.d.ts.map +1 -1
- package/dist/types/calls/pool/open.d.ts +8 -7
- package/dist/types/calls/pool/open.d.ts.map +1 -1
- package/dist/types/calls/pool/wrap.d.ts +79 -0
- package/dist/types/calls/pool/wrap.d.ts.map +1 -0
- package/dist/types/constants/abis/core/book-manager-abi.d.ts +35 -0
- package/dist/types/constants/abis/core/book-manager-abi.d.ts.map +1 -1
- package/dist/types/constants/abis/core/controller-abi.d.ts +19 -1
- package/dist/types/constants/abis/core/controller-abi.d.ts.map +1 -1
- package/dist/types/constants/abis/core/params-abi.d.ts +31 -0
- package/dist/types/constants/abis/core/params-abi.d.ts.map +1 -0
- package/dist/types/constants/abis/rebalancer/wrapped-6909-factory-abi.d.ts +80 -0
- package/dist/types/constants/abis/rebalancer/wrapped-6909-factory-abi.d.ts.map +1 -0
- package/dist/types/constants/chain-configs/addresses.d.ts +1 -0
- package/dist/types/constants/chain-configs/addresses.d.ts.map +1 -1
- package/dist/types/constants/chain-configs/chain.d.ts +3 -2
- package/dist/types/constants/chain-configs/chain.d.ts.map +1 -1
- package/dist/types/constants/chain-configs/currency.d.ts +8 -11
- package/dist/types/constants/chain-configs/currency.d.ts.map +1 -1
- package/dist/types/constants/networks/giwa-sepolia.d.ts +57 -0
- package/dist/types/constants/networks/giwa-sepolia.d.ts.map +1 -0
- package/dist/types/constants/networks/test-chain.d.ts +0 -1
- package/dist/types/constants/networks/test-chain.d.ts.map +1 -1
- package/dist/types/entities/analytics/apis/index.d.ts +3 -1
- package/dist/types/entities/analytics/apis/index.d.ts.map +1 -1
- package/dist/types/entities/analytics/types.d.ts +14 -1
- package/dist/types/entities/analytics/types.d.ts.map +1 -1
- package/dist/types/entities/book/apis/index.d.ts +1 -1
- package/dist/types/entities/book/apis/index.d.ts.map +1 -1
- package/dist/types/entities/currency/apis/total-supply.d.ts.map +1 -1
- package/dist/types/entities/market/apis/index.d.ts +1 -1
- package/dist/types/entities/market/apis/index.d.ts.map +1 -1
- package/dist/types/entities/market/apis/snapshot.d.ts +1 -1
- package/dist/types/entities/market/apis/snapshot.d.ts.map +1 -1
- package/dist/types/entities/market/types.d.ts +2 -0
- package/dist/types/entities/market/types.d.ts.map +1 -1
- package/dist/types/entities/open-order/utils/order-id.d.ts +1 -0
- package/dist/types/entities/open-order/utils/order-id.d.ts.map +1 -1
- package/dist/types/entities/pool/apis/index.d.ts.map +1 -1
- package/dist/types/entities/pool/apis/snapshot.d.ts.map +1 -1
- package/dist/types/entities/pool/model.d.ts +6 -2
- package/dist/types/entities/pool/model.d.ts.map +1 -1
- package/dist/types/entities/pool/types.d.ts +9 -4
- package/dist/types/entities/pool/types.d.ts.map +1 -1
- package/dist/types/entities/swap/apis/index.d.ts +5 -0
- package/dist/types/entities/swap/apis/index.d.ts.map +1 -0
- package/dist/types/entities/swap/types.d.ts +12 -0
- package/dist/types/entities/swap/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/bigint.d.ts +1 -0
- package/dist/types/utils/bigint.d.ts.map +1 -1
- package/dist/types/views/address.d.ts +1 -0
- package/dist/types/views/address.d.ts.map +1 -1
- package/dist/types/views/analytics.d.ts +8 -1
- package/dist/types/views/analytics.d.ts.map +1 -1
- package/dist/types/views/currency.d.ts +5 -6
- package/dist/types/views/currency.d.ts.map +1 -1
- package/dist/types/views/index.d.ts +6 -5
- package/dist/types/views/index.d.ts.map +1 -1
- package/dist/types/views/market/index.d.ts +1 -2
- package/dist/types/views/market/index.d.ts.map +1 -1
- package/dist/types/views/market/parse.d.ts +10 -0
- package/dist/types/views/market/parse.d.ts.map +1 -0
- package/dist/types/views/market/snapshot.d.ts +1 -1
- package/dist/types/views/market/snapshot.d.ts.map +1 -1
- package/dist/types/views/pool/index.d.ts +8 -1
- package/dist/types/views/pool/index.d.ts.map +1 -1
- package/dist/types/views/subgraph.d.ts +20 -0
- package/dist/types/views/subgraph.d.ts.map +1 -1
- package/dist/types/views/trade.d.ts +10 -0
- package/dist/types/views/trade.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/cjs/calls/pool/market-making/strategy.js +0 -78
- package/dist/cjs/calls/pool/market-making/strategy.js.map +0 -1
- package/dist/esm/calls/pool/market-making/strategy.js +0 -75
- package/dist/esm/calls/pool/market-making/strategy.js.map +0 -1
- package/dist/types/calls/pool/market-making/strategy.d.ts +0 -23
- package/dist/types/calls/pool/market-making/strategy.d.ts.map +0 -1
|
@@ -8,7 +8,30 @@ import { buildTransaction } from '../../utils/build-transaction';
|
|
|
8
8
|
import { CONTRACT_ADDRESSES } from '../../constants/chain-configs/addresses';
|
|
9
9
|
import { MINTER_ABI } from '../../constants/abis/rebalancer/minter-abi';
|
|
10
10
|
import { abs } from '../../utils/math';
|
|
11
|
-
|
|
11
|
+
import { fromOrderId } from '../../entities/open-order/utils/order-id';
|
|
12
|
+
import { formatPrice, invertTick, toPrice } from '../../utils';
|
|
13
|
+
const getBestQuote = async ({ quotes, tokenIn, tokenOut, amountIn, slippageLimitPercent, gasPrice, userAddress, timeout = 4000, // Default timeout of 4 seconds
|
|
14
|
+
}) => {
|
|
15
|
+
const results = (await Promise.allSettled((quotes ?? []).map(async (quote) => quote(tokenIn, amountIn, tokenOut, slippageLimitPercent, gasPrice, userAddress, timeout, false))))
|
|
16
|
+
.map((result) => (result.status === 'fulfilled' ? result.value : undefined))
|
|
17
|
+
.filter((quote) => quote !== undefined && quote.amountOut > 0n)
|
|
18
|
+
.sort((a, b) => Number(b.amountOut - a.amountOut));
|
|
19
|
+
if (results.length === 0) {
|
|
20
|
+
throw new Error('No quotes available');
|
|
21
|
+
}
|
|
22
|
+
if (results[0].amountOut <= 0n) {
|
|
23
|
+
throw new Error('No valid quotes found');
|
|
24
|
+
}
|
|
25
|
+
if (results[0].transaction === undefined) {
|
|
26
|
+
throw new Error('No transaction found for the best quote');
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
amountOut: results[0].amountOut,
|
|
30
|
+
transaction: results[0].transaction,
|
|
31
|
+
aggregator: results[0].aggregator.name,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt, amount0, amount1, quotes, options, }) => {
|
|
12
35
|
const publicClient = createPublicClient({
|
|
13
36
|
chain: CHAIN_MAP[chainId],
|
|
14
37
|
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
@@ -21,8 +44,8 @@ export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt,
|
|
|
21
44
|
|
|
22
45
|
const transaction = await openPool({
|
|
23
46
|
chainId: ${chainId},
|
|
24
|
-
|
|
25
|
-
|
|
47
|
+
token0: '${token0}',
|
|
48
|
+
token1: '${token1}',
|
|
26
49
|
salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
27
50
|
})
|
|
28
51
|
`);
|
|
@@ -36,7 +59,7 @@ export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt,
|
|
|
36
59
|
parseUnits(amount1 ?? '0', pool.currencyA.decimals),
|
|
37
60
|
parseUnits(amount0 ?? '0', pool.currencyB.decimals),
|
|
38
61
|
];
|
|
39
|
-
|
|
62
|
+
let [amountA, amountB] = [amountAOrigin, amountBOrigin];
|
|
40
63
|
const tokenAPermitParams = isAddressEqual(pool.currencyA.address, getAddress(token0))
|
|
41
64
|
? options?.token0PermitParams ?? EMPTY_ERC20_PERMIT_PARAMS
|
|
42
65
|
: options?.token1PermitParams ?? EMPTY_ERC20_PERMIT_PARAMS;
|
|
@@ -49,88 +72,99 @@ export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt,
|
|
|
49
72
|
disableSwap = true;
|
|
50
73
|
}
|
|
51
74
|
const slippageLimitPercent = options?.slippage ?? 1.0;
|
|
75
|
+
const timeoutForQuotes = options?.timeoutForQuotes ?? 4000; // Default timeout of 4 seconds
|
|
52
76
|
const swapParams = {
|
|
53
77
|
inCurrency: zeroAddress,
|
|
54
78
|
amount: 0n,
|
|
55
79
|
data: '0x',
|
|
56
80
|
};
|
|
81
|
+
let quoteRequest = undefined;
|
|
82
|
+
let quoteResponse = undefined;
|
|
57
83
|
if (!disableSwap) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const swapAmountA = parseUnits('1', pool.currencyA.decimals);
|
|
71
|
-
let swapAmountB = -1n;
|
|
72
|
-
if (options && options.token0Price && options.token1Price) {
|
|
73
|
-
const tokenAPrice = isAddressEqual(pool.currencyA.address, getAddress(token0))
|
|
74
|
-
? options.token0Price
|
|
75
|
-
: options.token1Price;
|
|
76
|
-
const tokenBPrice = isAddressEqual(pool.currencyA.address, getAddress(token0))
|
|
77
|
-
? options.token1Price
|
|
78
|
-
: options.token0Price;
|
|
79
|
-
swapAmountB = getQuoteAmountFromPrices(swapAmountA, tokenAPrice, tokenBPrice, pool.currencyA.decimals, pool.currencyB.decimals);
|
|
84
|
+
if (!(isAddressEqual(pool.currencyA.address, pool.market.quote.address) &&
|
|
85
|
+
isAddressEqual(pool.currencyB.address, pool.market.base.address))) {
|
|
86
|
+
throw new Error('Cannot add liquidity to a pool with the same quote and base currencies');
|
|
87
|
+
}
|
|
88
|
+
let tokenAPrice = pool.orderListA.length > 0
|
|
89
|
+
? Number(formatPrice(toPrice(fromOrderId(BigInt(pool.orderListA[0])).tick), pool.market.quote.decimals, pool.market.base.decimals))
|
|
90
|
+
: 0;
|
|
91
|
+
let tokenBPrice = pool.orderListB.length > 0
|
|
92
|
+
? Number(formatPrice(toPrice(invertTick(fromOrderId(BigInt(pool.orderListB[0])).tick)), pool.market.quote.decimals, pool.market.base.decimals))
|
|
93
|
+
: 0;
|
|
94
|
+
if (tokenAPrice === 0 && tokenBPrice === 0) {
|
|
95
|
+
throw new Error('No orders in the pool, cannot add liquidity');
|
|
80
96
|
}
|
|
81
|
-
else {
|
|
82
|
-
|
|
83
|
-
// chainId,
|
|
84
|
-
// amountIn: swapAmountA,
|
|
85
|
-
// tokenIn: pool.currencyA,
|
|
86
|
-
// tokenOut: pool.currencyB,
|
|
87
|
-
// slippageLimitPercent: 1,
|
|
88
|
-
// userAddress: CONTRACT_ADDRESSES[chainId]!.Minter,
|
|
89
|
-
// testnetPrice: currencyBPerCurrencyA,
|
|
90
|
-
// }))
|
|
91
|
-
throw new Error('external aggregator is not supported yet');
|
|
97
|
+
else if (tokenAPrice === 0 && tokenBPrice > 0) {
|
|
98
|
+
tokenAPrice = tokenBPrice;
|
|
92
99
|
}
|
|
100
|
+
else if (tokenAPrice > 0 && tokenBPrice === 0) {
|
|
101
|
+
tokenBPrice = tokenAPrice;
|
|
102
|
+
}
|
|
103
|
+
const price = (tokenAPrice + tokenBPrice) / 2;
|
|
104
|
+
const swapAmountA = parseUnits('1', pool.currencyA.decimals);
|
|
105
|
+
const swapAmountB = getQuoteAmountFromPrices(swapAmountA, 1, price, pool.currencyA.decimals, pool.currencyB.decimals);
|
|
93
106
|
if (swapAmountB === -1n) {
|
|
94
107
|
throw new Error('Failed to fetch quote');
|
|
95
108
|
}
|
|
96
109
|
const { deltaA, deltaB } = getIdealDelta(amountA, amountB, pool.liquidityA, pool.liquidityB, swapAmountA, swapAmountB);
|
|
110
|
+
const gasPrice = await publicClient.getGasPrice();
|
|
97
111
|
if (deltaA < 0n) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
swapParams.inCurrency = pool.currencyA.address;
|
|
113
|
+
swapParams.amount = -deltaA;
|
|
114
|
+
quoteRequest = {
|
|
115
|
+
tokenIn: pool.currencyA,
|
|
116
|
+
tokenOut: pool.currencyB,
|
|
117
|
+
amountIn: swapParams.amount,
|
|
118
|
+
slippageLimitPercent,
|
|
119
|
+
gasPrice,
|
|
120
|
+
userAddress,
|
|
121
|
+
timeout: timeoutForQuotes,
|
|
122
|
+
};
|
|
123
|
+
const { amountOut: actualDeltaB, transaction, aggregator, } = await getBestQuote({
|
|
124
|
+
quotes: quotes ?? [],
|
|
125
|
+
...quoteRequest,
|
|
126
|
+
});
|
|
127
|
+
const exchangeRate = Number(formatUnits(actualDeltaB, quoteRequest.tokenOut.decimals)) /
|
|
128
|
+
Number(formatUnits(quoteRequest.amountIn, quoteRequest.tokenIn.decimals));
|
|
129
|
+
quoteResponse = {
|
|
130
|
+
amountOut: actualDeltaB,
|
|
131
|
+
aggregator: aggregator,
|
|
132
|
+
exchangeRate: isAddressEqual(quoteRequest.tokenIn.address, pool.market.quote.address)
|
|
133
|
+
? 1 / exchangeRate
|
|
134
|
+
: exchangeRate,
|
|
135
|
+
};
|
|
136
|
+
swapParams.data = transaction.data;
|
|
137
|
+
amountA += deltaA;
|
|
138
|
+
amountB += actualDeltaB;
|
|
114
139
|
}
|
|
115
140
|
else if (deltaB < 0n) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
141
|
+
swapParams.inCurrency = pool.currencyB.address;
|
|
142
|
+
swapParams.amount = -deltaB;
|
|
143
|
+
quoteRequest = {
|
|
144
|
+
tokenIn: pool.currencyB,
|
|
145
|
+
tokenOut: pool.currencyA,
|
|
146
|
+
amountIn: swapParams.amount,
|
|
147
|
+
slippageLimitPercent,
|
|
148
|
+
gasPrice,
|
|
149
|
+
userAddress,
|
|
150
|
+
timeout: timeoutForQuotes,
|
|
151
|
+
};
|
|
152
|
+
const { amountOut: actualDeltaA, transaction, aggregator, } = await getBestQuote({
|
|
153
|
+
quotes: quotes ?? [],
|
|
154
|
+
...quoteRequest,
|
|
155
|
+
});
|
|
156
|
+
const exchangeRate = Number(formatUnits(actualDeltaA, quoteRequest.tokenOut.decimals)) /
|
|
157
|
+
Number(formatUnits(quoteRequest.amountIn, quoteRequest.tokenIn.decimals));
|
|
158
|
+
quoteResponse = {
|
|
159
|
+
amountOut: actualDeltaA,
|
|
160
|
+
aggregator: aggregator,
|
|
161
|
+
exchangeRate: isAddressEqual(quoteRequest.tokenIn.address, pool.market.quote.address)
|
|
162
|
+
? 1 / exchangeRate
|
|
163
|
+
: exchangeRate,
|
|
164
|
+
};
|
|
165
|
+
swapParams.data = transaction.data;
|
|
166
|
+
amountA += actualDeltaA;
|
|
167
|
+
amountB += deltaB;
|
|
134
168
|
}
|
|
135
169
|
}
|
|
136
170
|
const { mintAmount, inAmountA, inAmountB } = getExpectedMintResult(pool.totalSupply, pool.liquidityA, pool.liquidityB, amountA, amountB, pool.currencyA, pool.currencyB);
|
|
@@ -149,10 +183,12 @@ export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt,
|
|
|
149
183
|
direction: 'in',
|
|
150
184
|
},
|
|
151
185
|
lpCurrency: {
|
|
152
|
-
currency: pool.
|
|
186
|
+
currency: pool.lpCurrency,
|
|
153
187
|
amount: '0',
|
|
154
188
|
direction: 'out',
|
|
155
189
|
},
|
|
190
|
+
quoteRequest,
|
|
191
|
+
quoteResponse,
|
|
156
192
|
},
|
|
157
193
|
};
|
|
158
194
|
}
|
|
@@ -202,10 +238,12 @@ export const addLiquidity = async ({ chainId, userAddress, token0, token1, salt,
|
|
|
202
238
|
direction: currencyBResultAmount >= 0 ? 'in' : 'out',
|
|
203
239
|
},
|
|
204
240
|
lpCurrency: {
|
|
205
|
-
currency: pool.
|
|
206
|
-
amount: formatUnits(mintAmount, pool.
|
|
241
|
+
currency: pool.lpCurrency,
|
|
242
|
+
amount: formatUnits(mintAmount, pool.lpCurrency.decimals),
|
|
207
243
|
direction: 'out',
|
|
208
244
|
},
|
|
245
|
+
quoteRequest,
|
|
246
|
+
quoteResponse,
|
|
209
247
|
},
|
|
210
248
|
};
|
|
211
249
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mint.js","sourceRoot":"","sources":["../../../../src/calls/pool/mint.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,MAAM,CAAA;AAEb,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"mint.js","sourceRoot":"","sources":["../../../../src/calls/pool/mint.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,9 @@ import { toBytes32 } from '../../entities/pool/utils/mint';
|
|
|
11
11
|
*
|
|
12
12
|
* @param chainId The chain ID of the blockchain.
|
|
13
13
|
* @param userAddress The address of the user.
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
14
|
+
* @param token0 The address of the input token.
|
|
15
|
+
* @param token1 The address of the output token.
|
|
16
|
+
* @param salt A unique identifier for the pool, used to prevent collisions.
|
|
16
17
|
* @param options {@link DefaultWriteContractOptions} options.
|
|
17
18
|
* @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
|
|
18
19
|
* @example
|
|
@@ -21,17 +22,17 @@ import { toBytes32 } from '../../entities/pool/utils/mint';
|
|
|
21
22
|
* const transaction = await openPool({
|
|
22
23
|
* chainId: 421614,
|
|
23
24
|
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
24
|
-
*
|
|
25
|
-
*
|
|
25
|
+
* token0: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
26
|
+
* token1: '0x0000000000000000000000000000000000000000',
|
|
26
27
|
* salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
27
28
|
* })
|
|
28
29
|
*/
|
|
29
|
-
export const openPool = async ({ chainId, userAddress,
|
|
30
|
+
export const openPool = async ({ chainId, userAddress, token0, token1, salt, options, }) => {
|
|
30
31
|
const publicClient = createPublicClient({
|
|
31
32
|
chain: CHAIN_MAP[chainId],
|
|
32
33
|
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
33
34
|
});
|
|
34
|
-
const pool = await fetchPool(publicClient, chainId, [
|
|
35
|
+
const pool = await fetchPool(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph));
|
|
35
36
|
if (!pool.isOpened) {
|
|
36
37
|
return buildTransaction(publicClient, {
|
|
37
38
|
chain: CHAIN_MAP[chainId],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../../../src/calls/pool/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAE5D,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAA;AAC/E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE1D
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../../../src/calls/pool/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAE5D,OAAO,EAAa,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAA;AAC/E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,EACN,IAAI,EACJ,OAAO,GAUR,EAAoC,EAAE;IACrC,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;KAC3D,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAC1B,YAAY,EACZ,OAAO,EACP,CAAC,MAAM,EAAE,MAAM,CAAC,EAChB,IAAI,EACJ,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CACnC,CAAA;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,gBAAgB,CACrB,YAAY,EACZ;YACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;oBACtC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;oBACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBACxC,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK;oBAChD,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK;iBACjD;gBACD;oBACE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;oBACtC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ;oBACtC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;oBACxC,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK;oBAChD,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK;iBACjD;gBACD,SAAS,CAAC,IAAI,CAAC;gBACf,kBAAkB,CAAC,OAAO,CAAE,CAAC,QAAQ;aACtC;SACF,EACD,OAAO,EAAE,QAAQ,CAClB,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { createPublicClient, http, parseUnits } from 'viem';
|
|
2
|
+
import { CHAIN_MAP } from '../../constants/chain-configs/chain';
|
|
3
|
+
import { fetchPool } from '../../entities/pool/apis';
|
|
4
|
+
import { buildTransaction } from '../../utils/build-transaction';
|
|
5
|
+
import { CONTRACT_ADDRESSES } from '../../constants/chain-configs/addresses';
|
|
6
|
+
import { WRAPPED_6909_FACTORY_ABI } from '../../constants/abis/rebalancer/wrapped-6909-factory-abi';
|
|
7
|
+
/**
|
|
8
|
+
* Build a transaction to wrap a pool to ERC20,
|
|
9
|
+
*
|
|
10
|
+
* @param chainId The chain ID of the blockchain.
|
|
11
|
+
* @param userAddress The address of the user.
|
|
12
|
+
* @param token0 The address of the input token.
|
|
13
|
+
* @param token1 The address of the output token.
|
|
14
|
+
* @param salt A unique identifier for the pool, used to prevent collisions.
|
|
15
|
+
* @param amount The amount of the input token to wrap.
|
|
16
|
+
* @param options {@link DefaultWriteContractOptions} options.
|
|
17
|
+
* @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
|
|
18
|
+
* @example
|
|
19
|
+
* import { wrapToERC20 } from '@clober/v2-sdk'
|
|
20
|
+
*
|
|
21
|
+
* const transaction = await wrapToERC20({
|
|
22
|
+
* chainId: 421614,
|
|
23
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
24
|
+
* token0: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
25
|
+
* token1: '0x0000000000000000000000000000000000000000',
|
|
26
|
+
* salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
27
|
+
* amount: '1.1',
|
|
28
|
+
* })
|
|
29
|
+
*/
|
|
30
|
+
export const wrapToERC20 = async ({ chainId, userAddress, token0, token1, salt, amount, options, }) => {
|
|
31
|
+
const publicClient = createPublicClient({
|
|
32
|
+
chain: CHAIN_MAP[chainId],
|
|
33
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
34
|
+
});
|
|
35
|
+
const pool = options?.pool
|
|
36
|
+
? options.pool
|
|
37
|
+
: (await fetchPool(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
|
|
38
|
+
if (pool.isOpened) {
|
|
39
|
+
return {
|
|
40
|
+
result: {
|
|
41
|
+
currency: {
|
|
42
|
+
name: `Wrapped Clober Liquidity Vault ${pool.currencyB.symbol}-${pool.currencyA.symbol}`,
|
|
43
|
+
symbol: `wCLV-${pool.currencyB.symbol}-${pool.currencyA.symbol}`,
|
|
44
|
+
decimals: pool.lpCurrency.decimals,
|
|
45
|
+
address: pool.wrappedLpCurrency.address,
|
|
46
|
+
},
|
|
47
|
+
amount,
|
|
48
|
+
direction: 'out',
|
|
49
|
+
},
|
|
50
|
+
transaction: await buildTransaction(publicClient, {
|
|
51
|
+
chain: CHAIN_MAP[chainId],
|
|
52
|
+
address: CONTRACT_ADDRESSES[chainId].Wrapped6909Factory,
|
|
53
|
+
account: userAddress,
|
|
54
|
+
abi: WRAPPED_6909_FACTORY_ABI,
|
|
55
|
+
functionName: 'wrap6909',
|
|
56
|
+
args: [
|
|
57
|
+
CONTRACT_ADDRESSES[chainId].Rebalancer,
|
|
58
|
+
BigInt(pool.key),
|
|
59
|
+
parseUnits(amount, pool.lpCurrency.decimals),
|
|
60
|
+
],
|
|
61
|
+
}, options?.gasLimit),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
result: undefined,
|
|
66
|
+
transaction: undefined,
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Build a transaction to unwrap a pool from ERC20,
|
|
71
|
+
*
|
|
72
|
+
* @param chainId The chain ID of the blockchain.
|
|
73
|
+
* @param userAddress The address of the user.
|
|
74
|
+
* @param token0 The address of the input token.
|
|
75
|
+
* @param token1 The address of the output token.
|
|
76
|
+
* @param salt A unique identifier for the pool, used to prevent collisions.
|
|
77
|
+
* @param amount The amount of the input token to wrap.
|
|
78
|
+
* @param options {@link DefaultWriteContractOptions} options.
|
|
79
|
+
* @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
|
|
80
|
+
* @example
|
|
81
|
+
* import { wrapToERC20 } from '@clober/v2-sdk'
|
|
82
|
+
*
|
|
83
|
+
* const transaction = await unwrapFromERC20({
|
|
84
|
+
* chainId: 421614,
|
|
85
|
+
* userAddress: '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69',
|
|
86
|
+
* token0: '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
87
|
+
* token1: '0x0000000000000000000000000000000000000000',
|
|
88
|
+
* salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
89
|
+
* amount: '1.1',
|
|
90
|
+
* })
|
|
91
|
+
*/
|
|
92
|
+
export const unwrapFromERC20 = async ({ chainId, userAddress, token0, token1, salt, amount, options, }) => {
|
|
93
|
+
const publicClient = createPublicClient({
|
|
94
|
+
chain: CHAIN_MAP[chainId],
|
|
95
|
+
transport: options?.rpcUrl ? http(options.rpcUrl) : http(),
|
|
96
|
+
});
|
|
97
|
+
const pool = options?.pool
|
|
98
|
+
? options.pool
|
|
99
|
+
: (await fetchPool(publicClient, chainId, [token0, token1], salt, !!(options && options.useSubgraph))).toJson();
|
|
100
|
+
if (pool.isOpened) {
|
|
101
|
+
return {
|
|
102
|
+
result: {
|
|
103
|
+
currency: {
|
|
104
|
+
name: `Wrapped Clober Liquidity Vault ${pool.currencyB.symbol}-${pool.currencyA.symbol}`,
|
|
105
|
+
symbol: `wCLV-${pool.currencyB.symbol}-${pool.currencyA.symbol}`,
|
|
106
|
+
decimals: pool.lpCurrency.decimals,
|
|
107
|
+
address: pool.wrappedLpCurrency.address,
|
|
108
|
+
},
|
|
109
|
+
amount,
|
|
110
|
+
direction: 'in',
|
|
111
|
+
},
|
|
112
|
+
transaction: await buildTransaction(publicClient, {
|
|
113
|
+
chain: CHAIN_MAP[chainId],
|
|
114
|
+
address: pool.wrappedLpCurrency.address,
|
|
115
|
+
account: userAddress,
|
|
116
|
+
abi: [
|
|
117
|
+
{
|
|
118
|
+
type: 'function',
|
|
119
|
+
name: 'withdrawTo',
|
|
120
|
+
inputs: [
|
|
121
|
+
{ name: 'account', type: 'address', internalType: 'address' },
|
|
122
|
+
{ name: 'amount', type: 'uint256', internalType: 'uint256' },
|
|
123
|
+
],
|
|
124
|
+
outputs: [],
|
|
125
|
+
stateMutability: 'nonpayable',
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
functionName: 'withdrawTo',
|
|
129
|
+
args: [userAddress, parseUnits(amount, pool.lpCurrency.decimals)],
|
|
130
|
+
}, options?.gasLimit),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return {
|
|
134
|
+
result: undefined,
|
|
135
|
+
transaction: undefined,
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=wrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../../../../src/calls/pool/wrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,5 +105,33 @@ export const BOOK_MANAGER_ABI = [
|
|
|
105
105
|
stateMutability: 'view',
|
|
106
106
|
type: 'function',
|
|
107
107
|
},
|
|
108
|
+
{
|
|
109
|
+
type: 'event',
|
|
110
|
+
name: 'Make',
|
|
111
|
+
inputs: [
|
|
112
|
+
{
|
|
113
|
+
name: 'bookId',
|
|
114
|
+
type: 'uint192',
|
|
115
|
+
indexed: true,
|
|
116
|
+
internalType: 'BookId',
|
|
117
|
+
},
|
|
118
|
+
{ name: 'user', type: 'address', indexed: true, internalType: 'address' },
|
|
119
|
+
{ name: 'tick', type: 'int24', indexed: false, internalType: 'Tick' },
|
|
120
|
+
{
|
|
121
|
+
name: 'orderIndex',
|
|
122
|
+
type: 'uint256',
|
|
123
|
+
indexed: false,
|
|
124
|
+
internalType: 'uint256',
|
|
125
|
+
},
|
|
126
|
+
{ name: 'unit', type: 'uint64', indexed: false, internalType: 'uint64' },
|
|
127
|
+
{
|
|
128
|
+
name: 'provider',
|
|
129
|
+
type: 'address',
|
|
130
|
+
indexed: false,
|
|
131
|
+
internalType: 'address',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
anonymous: false,
|
|
135
|
+
},
|
|
108
136
|
];
|
|
109
137
|
//# sourceMappingURL=book-manager-abi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"book-manager-abi.js","sourceRoot":"","sources":["../../../../../src/constants/abis/core/book-manager-abi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,QAAQ;wBACtB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,YAAY,EAAE,QAAQ;wBACtB,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,YAAY,EAAE,+BAA+B;gBAC7C,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP;gBACE,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,SAAS;aAChB;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;IACD;QACE,MAAM,EAAE;YACN;gBACE,YAAY,EAAE,QAAQ;gBACtB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,SAAS;aAChB;SACF;QACD,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE;oBACV;wBACE,YAAY,EAAE,UAAU;wBACxB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,QAAQ;wBACtB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,YAAY,EAAE,UAAU;wBACxB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,WAAW;wBACzB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,YAAY,EAAE,iBAAiB;wBAC/B,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAChB;oBACD;wBACE,YAAY,EAAE,WAAW;wBACzB,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,YAAY,EAAE,6BAA6B;gBAC3C,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KACjB;CACO,CAAA"}
|
|
1
|
+
{"version":3,"file":"book-manager-abi.js","sourceRoot":"","sources":["../../../../../src/constants/abis/core/book-manager-abi.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export const CONTROLLER_ABI = [
|
|
|
3
3
|
inputs: [
|
|
4
4
|
{
|
|
5
5
|
internalType: 'address',
|
|
6
|
-
name: '
|
|
6
|
+
name: 'bookManager_',
|
|
7
7
|
type: 'address',
|
|
8
8
|
},
|
|
9
9
|
],
|
|
@@ -119,6 +119,19 @@ export const CONTROLLER_ABI = [
|
|
|
119
119
|
name: 'SafeERC20FailedOperation',
|
|
120
120
|
type: 'error',
|
|
121
121
|
},
|
|
122
|
+
{
|
|
123
|
+
inputs: [],
|
|
124
|
+
name: 'bookManager',
|
|
125
|
+
outputs: [
|
|
126
|
+
{
|
|
127
|
+
internalType: 'contract IBookManager',
|
|
128
|
+
name: '',
|
|
129
|
+
type: 'address',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
stateMutability: 'view',
|
|
133
|
+
type: 'function',
|
|
134
|
+
},
|
|
122
135
|
{
|
|
123
136
|
inputs: [
|
|
124
137
|
{
|
|
@@ -514,6 +527,11 @@ export const CONTROLLER_ABI = [
|
|
|
514
527
|
name: 'quoteAmount',
|
|
515
528
|
type: 'uint256',
|
|
516
529
|
},
|
|
530
|
+
{
|
|
531
|
+
internalType: 'address',
|
|
532
|
+
name: 'provider',
|
|
533
|
+
type: 'address',
|
|
534
|
+
},
|
|
517
535
|
{
|
|
518
536
|
internalType: 'bytes',
|
|
519
537
|
name: 'takeHookData',
|
|
@@ -638,6 +656,11 @@ export const CONTROLLER_ABI = [
|
|
|
638
656
|
name: 'quoteAmount',
|
|
639
657
|
type: 'uint256',
|
|
640
658
|
},
|
|
659
|
+
{
|
|
660
|
+
internalType: 'address',
|
|
661
|
+
name: 'provider',
|
|
662
|
+
type: 'address',
|
|
663
|
+
},
|
|
641
664
|
{
|
|
642
665
|
internalType: 'bytes',
|
|
643
666
|
name: 'hookData',
|