@clober/v2-sdk 0.0.2-a → 0.0.2-b
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/abis/core/controller-abi.js +989 -0
- package/dist/cjs/abis/core/controller-abi.js.map +1 -0
- package/dist/cjs/abis/core/params-abi.js +62 -0
- package/dist/cjs/abis/core/params-abi.js.map +1 -0
- package/dist/cjs/apis/currency.js +87 -0
- package/dist/cjs/apis/currency.js.map +1 -0
- package/dist/cjs/apis/market.js +57 -0
- package/dist/cjs/apis/market.js.map +1 -0
- package/dist/cjs/apis/open-order.js +90 -0
- package/dist/cjs/apis/open-order.js.map +1 -0
- package/dist/cjs/apis/subgraph.js +26 -0
- package/dist/cjs/apis/subgraph.js.map +1 -0
- package/dist/cjs/approval.js +74 -0
- package/dist/cjs/approval.js.map +1 -0
- package/dist/cjs/call.js +545 -0
- package/dist/cjs/call.js.map +1 -0
- package/dist/cjs/constants/action.js +14 -0
- package/dist/cjs/constants/action.js.map +1 -0
- package/dist/cjs/constants/addresses.js +13 -0
- package/dist/cjs/constants/addresses.js.map +1 -0
- package/dist/cjs/constants/chain.js +13 -0
- package/dist/cjs/constants/chain.js.map +1 -0
- package/dist/cjs/constants/currency.js +12 -0
- package/dist/cjs/constants/currency.js.map +1 -0
- package/dist/cjs/constants/fee.js +7 -0
- package/dist/cjs/constants/fee.js.map +1 -0
- package/dist/cjs/constants/price.js +6 -0
- package/dist/cjs/constants/price.js.map +1 -0
- package/dist/cjs/constants/subgraph-url.js +8 -0
- package/dist/cjs/constants/subgraph-url.js.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/model/book.js +130 -0
- package/dist/cjs/model/book.js.map +1 -0
- package/dist/cjs/model/currency.js +3 -0
- package/dist/cjs/model/currency.js.map +1 -0
- package/dist/cjs/model/depth.js +3 -0
- package/dist/cjs/model/depth.js.map +1 -0
- package/dist/cjs/model/fee-policy.js +42 -0
- package/dist/cjs/model/fee-policy.js.map +1 -0
- package/dist/cjs/model/market.js +215 -0
- package/dist/cjs/model/market.js.map +1 -0
- package/dist/cjs/model/open-order.js +3 -0
- package/dist/cjs/model/open-order.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/signature.js +178 -0
- package/dist/cjs/signature.js.map +1 -0
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -0
- package/dist/cjs/type.js +6 -0
- package/dist/cjs/type.js.map +1 -0
- package/dist/cjs/utils/approval.js +46 -0
- package/dist/cjs/utils/approval.js.map +1 -0
- package/dist/cjs/utils/book-id.js +25 -0
- package/dist/cjs/utils/book-id.js.map +1 -0
- package/dist/cjs/utils/build-transaction.js +31 -0
- package/dist/cjs/utils/build-transaction.js.map +1 -0
- package/dist/cjs/utils/decimals.js +17 -0
- package/dist/cjs/utils/decimals.js.map +1 -0
- package/dist/cjs/utils/market.js +53 -0
- package/dist/cjs/utils/market.js.map +1 -0
- package/dist/cjs/utils/math.js +83 -0
- package/dist/cjs/utils/math.js.map +1 -0
- package/dist/cjs/utils/prices.js +22 -0
- package/dist/cjs/utils/prices.js.map +1 -0
- package/dist/cjs/utils/tick.js +106 -0
- package/dist/cjs/utils/tick.js.map +1 -0
- package/dist/cjs/utils/time.js +9 -0
- package/dist/cjs/utils/time.js.map +1 -0
- package/dist/cjs/utils/unit.js +38 -0
- package/dist/cjs/utils/unit.js.map +1 -0
- package/dist/cjs/view.js +185 -0
- package/dist/cjs/view.js.map +1 -0
- package/dist/esm/abis/core/controller-abi.js +986 -0
- package/dist/esm/abis/core/controller-abi.js.map +1 -0
- package/dist/esm/abis/core/params-abi.js +59 -0
- package/dist/esm/abis/core/params-abi.js.map +1 -0
- package/dist/esm/apis/currency.js +83 -0
- package/dist/esm/apis/currency.js.map +1 -0
- package/dist/esm/apis/market.js +53 -0
- package/dist/esm/apis/market.js.map +1 -0
- package/dist/esm/apis/open-order.js +85 -0
- package/dist/esm/apis/open-order.js.map +1 -0
- package/dist/esm/apis/subgraph.js +22 -0
- package/dist/esm/apis/subgraph.js.map +1 -0
- package/dist/esm/approval.js +70 -0
- package/dist/esm/approval.js.map +1 -0
- package/dist/esm/call.js +535 -0
- package/dist/esm/call.js.map +1 -0
- package/dist/esm/constants/action.js +11 -0
- package/dist/esm/constants/action.js.map +1 -0
- package/dist/esm/constants/addresses.js +10 -0
- package/dist/esm/constants/addresses.js.map +1 -0
- package/dist/esm/constants/chain.js +10 -0
- package/dist/esm/constants/chain.js.map +1 -0
- package/dist/esm/constants/currency.js +9 -0
- package/dist/esm/constants/currency.js.map +1 -0
- package/dist/esm/constants/fee.js +4 -0
- package/dist/esm/constants/fee.js.map +1 -0
- package/dist/esm/constants/price.js +3 -0
- package/dist/esm/constants/price.js.map +1 -0
- package/dist/esm/constants/subgraph-url.js +5 -0
- package/dist/esm/constants/subgraph-url.js.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/model/book.js +126 -0
- package/dist/esm/model/book.js.map +1 -0
- package/dist/esm/model/currency.js +2 -0
- package/dist/esm/model/currency.js.map +1 -0
- package/dist/esm/model/depth.js +2 -0
- package/dist/esm/model/depth.js.map +1 -0
- package/dist/esm/model/fee-policy.js +38 -0
- package/dist/esm/model/fee-policy.js.map +1 -0
- package/dist/esm/model/market.js +211 -0
- package/dist/esm/model/market.js.map +1 -0
- package/dist/esm/model/open-order.js +2 -0
- package/dist/esm/model/open-order.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/signature.js +174 -0
- package/dist/esm/signature.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
- package/dist/esm/type.js +2 -0
- package/dist/esm/type.js.map +1 -0
- package/dist/esm/utils/approval.js +42 -0
- package/dist/esm/utils/approval.js.map +1 -0
- package/dist/esm/utils/book-id.js +21 -0
- package/dist/esm/utils/book-id.js.map +1 -0
- package/dist/esm/utils/build-transaction.js +27 -0
- package/dist/esm/utils/build-transaction.js.map +1 -0
- package/dist/esm/utils/decimals.js +12 -0
- package/dist/esm/utils/decimals.js.map +1 -0
- package/dist/esm/utils/market.js +49 -0
- package/dist/esm/utils/market.js.map +1 -0
- package/dist/esm/utils/math.js +78 -0
- package/dist/esm/utils/math.js.map +1 -0
- package/dist/esm/utils/prices.js +17 -0
- package/dist/esm/utils/prices.js.map +1 -0
- package/dist/esm/utils/tick.js +100 -0
- package/dist/esm/utils/tick.js.map +1 -0
- package/dist/esm/utils/time.js +5 -0
- package/dist/esm/utils/time.js.map +1 -0
- package/dist/esm/utils/unit.js +34 -0
- package/dist/esm/utils/unit.js.map +1 -0
- package/dist/esm/view.js +177 -0
- package/dist/esm/view.js.map +1 -0
- package/dist/types/abis/core/controller-abi.d.ts +757 -0
- package/dist/types/abis/core/controller-abi.d.ts.map +1 -0
- package/dist/types/abis/core/params-abi.d.ts +21 -0
- package/dist/types/abis/core/params-abi.d.ts.map +1 -0
- package/dist/types/apis/currency.d.ts +4 -0
- package/dist/types/apis/currency.d.ts.map +1 -0
- package/dist/types/apis/market.d.ts +4 -0
- package/dist/types/apis/market.d.ts.map +1 -0
- package/dist/types/apis/open-order.d.ts +5 -0
- package/dist/types/apis/open-order.d.ts.map +1 -0
- package/dist/types/apis/subgraph.d.ts +3 -0
- package/dist/types/apis/subgraph.d.ts.map +1 -0
- package/dist/types/approval.d.ts +32 -0
- package/dist/types/approval.d.ts.map +1 -0
- package/dist/types/call.d.ts +234 -0
- package/dist/types/call.d.ts.map +1 -0
- package/dist/types/constants/action.d.ts +10 -0
- package/dist/types/constants/action.d.ts.map +1 -0
- package/dist/types/constants/addresses.d.ts +9 -0
- package/dist/types/constants/addresses.d.ts.map +1 -0
- package/dist/types/constants/chain.d.ts +9 -0
- package/dist/types/constants/chain.d.ts.map +1 -0
- package/dist/types/constants/currency.d.ts +8 -0
- package/dist/types/constants/currency.d.ts.map +1 -0
- package/dist/types/constants/fee.d.ts +4 -0
- package/dist/types/constants/fee.d.ts.map +1 -0
- package/dist/types/constants/price.d.ts +3 -0
- package/dist/types/constants/price.d.ts.map +1 -0
- package/dist/types/constants/subgraph-url.d.ts +5 -0
- package/dist/types/constants/subgraph-url.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/model/book.d.ts +52 -0
- package/dist/types/model/book.d.ts.map +1 -0
- package/dist/types/model/currency.d.ts +7 -0
- package/dist/types/model/currency.d.ts.map +1 -0
- package/dist/types/model/depth.d.ts +11 -0
- package/dist/types/model/depth.d.ts.map +1 -0
- package/dist/types/model/fee-policy.d.ts +15 -0
- package/dist/types/model/fee-policy.d.ts.map +1 -0
- package/dist/types/model/market.d.ts +44 -0
- package/dist/types/model/market.d.ts.map +1 -0
- package/dist/types/model/open-order.d.ts +54 -0
- package/dist/types/model/open-order.d.ts.map +1 -0
- package/dist/types/signature.d.ts +40 -0
- package/dist/types/signature.d.ts.map +1 -0
- package/dist/types/type.d.ts +34 -0
- package/dist/types/type.d.ts.map +1 -0
- package/dist/types/utils/approval.d.ts +3 -0
- package/dist/types/utils/approval.d.ts.map +1 -0
- package/dist/types/utils/book-id.d.ts +2 -0
- package/dist/types/utils/book-id.d.ts.map +1 -0
- package/dist/types/utils/build-transaction.d.ts +5 -0
- package/dist/types/utils/build-transaction.d.ts.map +1 -0
- package/dist/types/utils/decimals.d.ts +3 -0
- package/dist/types/utils/decimals.d.ts.map +1 -0
- package/dist/types/utils/market.d.ts +7 -0
- package/dist/types/utils/market.d.ts.map +1 -0
- package/dist/types/utils/math.d.ts +3 -0
- package/dist/types/utils/math.d.ts.map +1 -0
- package/dist/types/utils/prices.d.ts +3 -0
- package/dist/types/utils/prices.d.ts.map +1 -0
- package/dist/types/utils/tick.d.ts +4 -0
- package/dist/types/utils/tick.d.ts.map +1 -0
- package/dist/types/utils/time.d.ts +2 -0
- package/dist/types/utils/time.d.ts.map +1 -0
- package/dist/types/utils/unit.d.ts +4 -0
- package/dist/types/utils/unit.d.ts.map +1 -0
- package/dist/types/view.d.ts +129 -0
- package/dist/types/view.d.ts.map +1 -0
- package/package.json +2 -2
package/dist/esm/call.js
ADDED
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
import { encodeAbiParameters, isAddressEqual, parseUnits, zeroAddress, zeroHash, } from 'viem';
|
|
2
|
+
import { CHAIN_MAP } from './constants/chain';
|
|
3
|
+
import { calculateUnit } from './utils/unit';
|
|
4
|
+
import { CONTROLLER_ABI } from './abis/core/controller-abi';
|
|
5
|
+
import { getDeadlineTimestampInSeconds } from './utils/time';
|
|
6
|
+
import { buildTransaction } from './utils/build-transaction';
|
|
7
|
+
import { CONTRACT_ADDRESSES } from './constants/addresses';
|
|
8
|
+
import { MAKER_DEFAULT_POLICY, TAKER_DEFAULT_POLICY } from './constants/fee';
|
|
9
|
+
import { fetchMarket } from './apis/market';
|
|
10
|
+
import { parsePrice } from './utils/prices';
|
|
11
|
+
import { fromPrice, invertPrice } from './utils/tick';
|
|
12
|
+
import { getExpectedOutput, getOpenOrders } from './view';
|
|
13
|
+
import { toBookId } from './utils/book-id';
|
|
14
|
+
import { MAKE_ORDER_PARAMS_ABI, TAKE_ORDER_PARAMS_ABI, } from './abis/core/params-abi';
|
|
15
|
+
import { Action } from './constants/action';
|
|
16
|
+
import { fetchIsApprovedForAll } from './utils/approval';
|
|
17
|
+
/**
|
|
18
|
+
* Build a transaction to open a market.
|
|
19
|
+
*
|
|
20
|
+
* @param chainId The chain ID of the blockchain.
|
|
21
|
+
* @param inputToken The address of the input token.
|
|
22
|
+
* @param outputToken The address of the output token.
|
|
23
|
+
* @param options
|
|
24
|
+
* @param options.rpcUrl The RPC URL of the blockchain.
|
|
25
|
+
* @returns A Promise resolving to a transaction object. If the market is already open, returns undefined.
|
|
26
|
+
* @example
|
|
27
|
+
* import { openMarket } from '@clober/v2-sdk'
|
|
28
|
+
*
|
|
29
|
+
* const transaction = await openMarket(
|
|
30
|
+
* 421614,
|
|
31
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
32
|
+
* '0x0000000000000000000000000000000000000000'
|
|
33
|
+
* )
|
|
34
|
+
*/
|
|
35
|
+
export const openMarket = async (chainId, inputToken, outputToken, options) => {
|
|
36
|
+
const market = await fetchMarket(chainId, [inputToken, outputToken], options?.rpcUrl);
|
|
37
|
+
const isBid = isAddressEqual(market.quote.address, inputToken);
|
|
38
|
+
if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
|
|
39
|
+
const unit = await calculateUnit(chainId, isBid ? market.quote : market.base, options?.rpcUrl);
|
|
40
|
+
return buildTransaction(chainId, {
|
|
41
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
42
|
+
abi: CONTROLLER_ABI,
|
|
43
|
+
functionName: 'open',
|
|
44
|
+
args: [
|
|
45
|
+
[
|
|
46
|
+
{
|
|
47
|
+
key: {
|
|
48
|
+
base: inputToken,
|
|
49
|
+
unit,
|
|
50
|
+
quote: outputToken,
|
|
51
|
+
makerPolicy: MAKER_DEFAULT_POLICY.value,
|
|
52
|
+
hooks: zeroAddress,
|
|
53
|
+
takerPolicy: TAKER_DEFAULT_POLICY.value,
|
|
54
|
+
},
|
|
55
|
+
hookData: zeroHash,
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
getDeadlineTimestampInSeconds(),
|
|
59
|
+
],
|
|
60
|
+
}, options?.rpcUrl);
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Places a limit order on the specified chain for trading tokens.
|
|
66
|
+
*
|
|
67
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
68
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
|
|
69
|
+
* @param {`0x${string}`} inputToken The address of the token to be used as input.
|
|
70
|
+
* @param {`0x${string}`} outputToken The address of the token to be received as output.
|
|
71
|
+
* @param {string} amount The amount of input tokens for the order.
|
|
72
|
+
* @param {string} price The price at which the order should be executed.
|
|
73
|
+
* @param {Object} [options] Optional parameters for the limit order.
|
|
74
|
+
* @param {PermitSignature} [options.signature] The permit signature for token approval.
|
|
75
|
+
* @param {boolean} [options.postOnly] A boolean indicating whether the order is only to be made not taken.
|
|
76
|
+
* @param {string} [options.rpcUrl] The RPC URL of the blockchain.
|
|
77
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
|
|
78
|
+
* @example
|
|
79
|
+
* import { signERC20Permit, limitOrder } from '@clober/v2-sdk'
|
|
80
|
+
* import { privateKeyToAccount } from 'viem/accounts'
|
|
81
|
+
*
|
|
82
|
+
* const signature = await signERC20Permit(
|
|
83
|
+
* 421614,
|
|
84
|
+
* privateKeyToAccount('0x...'),
|
|
85
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
86
|
+
* '100.123'
|
|
87
|
+
* )
|
|
88
|
+
*
|
|
89
|
+
* const transaction = await limitOrder(
|
|
90
|
+
* 421614,
|
|
91
|
+
* '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
|
|
92
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
93
|
+
* '0x0000000000000000000000000000000000000000',
|
|
94
|
+
* '100.123', // 100.123 USDC
|
|
95
|
+
* '4000.01', // price at 4000.01 (ETH/USDC)
|
|
96
|
+
* { signature }
|
|
97
|
+
* )
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* import { limitOrder } from '@clober/v2-sdk'
|
|
101
|
+
*
|
|
102
|
+
* const transaction = await limitOrder(
|
|
103
|
+
* 421614,
|
|
104
|
+
* '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
|
|
105
|
+
* '0x0000000000000000000000000000000000000000',
|
|
106
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
107
|
+
* '0.13', // 0.13 ETH
|
|
108
|
+
* '4000.01', // price at 4000.01 (ETH/USDC)
|
|
109
|
+
* )
|
|
110
|
+
*/
|
|
111
|
+
export const limitOrder = async (chainId, userAddress, inputToken, outputToken, amount, price, options) => {
|
|
112
|
+
const { signature, postOnly, rpcUrl } = options || {
|
|
113
|
+
signature: undefined,
|
|
114
|
+
postOnly: false,
|
|
115
|
+
rpcUrl: undefined,
|
|
116
|
+
};
|
|
117
|
+
const market = await fetchMarket(chainId, [inputToken, outputToken], rpcUrl);
|
|
118
|
+
const isBid = isAddressEqual(market.quote.address, inputToken);
|
|
119
|
+
if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
|
|
120
|
+
throw new Error(`
|
|
121
|
+
import { openMarket } from '@clober/v2-sdk'
|
|
122
|
+
|
|
123
|
+
const transaction = await openMarket(
|
|
124
|
+
${chainId},
|
|
125
|
+
'${inputToken}',
|
|
126
|
+
'${outputToken}',
|
|
127
|
+
)
|
|
128
|
+
`);
|
|
129
|
+
}
|
|
130
|
+
const rawPrice = parsePrice(Number(price), market.quote.decimals, market.base.decimals);
|
|
131
|
+
const tick = isBid ? fromPrice(rawPrice) : fromPrice(invertPrice(rawPrice));
|
|
132
|
+
const tokensToSettle = [inputToken, outputToken].filter((address) => !isAddressEqual(address, zeroAddress));
|
|
133
|
+
const quoteAmount = parseUnits(amount, isBid ? market.quote.decimals : market.base.decimals);
|
|
134
|
+
const [unit, { result }] = await Promise.all([
|
|
135
|
+
calculateUnit(chainId, isBid ? market.quote : market.base, rpcUrl),
|
|
136
|
+
getExpectedOutput(chainId, inputToken, outputToken, amount, rpcUrl
|
|
137
|
+
? {
|
|
138
|
+
limitPrice: price,
|
|
139
|
+
rpcUrl,
|
|
140
|
+
}
|
|
141
|
+
: {
|
|
142
|
+
limitPrice: price,
|
|
143
|
+
}),
|
|
144
|
+
]);
|
|
145
|
+
const isETH = isAddressEqual(inputToken, zeroAddress);
|
|
146
|
+
const permitParamsList = signature && !isETH
|
|
147
|
+
? [
|
|
148
|
+
{
|
|
149
|
+
token: inputToken,
|
|
150
|
+
permitAmount: quoteAmount,
|
|
151
|
+
signature,
|
|
152
|
+
},
|
|
153
|
+
]
|
|
154
|
+
: [];
|
|
155
|
+
const makeParam = {
|
|
156
|
+
id: toBookId(inputToken, outputToken, unit),
|
|
157
|
+
tick: Number(tick),
|
|
158
|
+
quoteAmount,
|
|
159
|
+
hookData: zeroHash,
|
|
160
|
+
};
|
|
161
|
+
if (postOnly === true || result.length === 0) {
|
|
162
|
+
return buildTransaction(chainId, {
|
|
163
|
+
chain: CHAIN_MAP[chainId],
|
|
164
|
+
account: userAddress,
|
|
165
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
166
|
+
abi: CONTROLLER_ABI,
|
|
167
|
+
functionName: 'make',
|
|
168
|
+
args: [
|
|
169
|
+
[makeParam],
|
|
170
|
+
tokensToSettle,
|
|
171
|
+
permitParamsList,
|
|
172
|
+
getDeadlineTimestampInSeconds(),
|
|
173
|
+
],
|
|
174
|
+
value: isETH ? quoteAmount : 0n,
|
|
175
|
+
}, options?.rpcUrl);
|
|
176
|
+
}
|
|
177
|
+
else if (result.length === 1) {
|
|
178
|
+
// take and make
|
|
179
|
+
return buildTransaction(chainId, {
|
|
180
|
+
chain: CHAIN_MAP[chainId],
|
|
181
|
+
account: userAddress,
|
|
182
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
183
|
+
abi: CONTROLLER_ABI,
|
|
184
|
+
functionName: 'limit',
|
|
185
|
+
args: [
|
|
186
|
+
[
|
|
187
|
+
{
|
|
188
|
+
takeBookId: result[0].bookId,
|
|
189
|
+
makeBookId: makeParam.id,
|
|
190
|
+
limitPrice: rawPrice,
|
|
191
|
+
tick: makeParam.tick,
|
|
192
|
+
quoteAmount,
|
|
193
|
+
takeHookData: zeroHash,
|
|
194
|
+
makeHookData: makeParam.hookData,
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
tokensToSettle,
|
|
198
|
+
permitParamsList,
|
|
199
|
+
getDeadlineTimestampInSeconds(),
|
|
200
|
+
],
|
|
201
|
+
value: isETH ? quoteAmount : 0n,
|
|
202
|
+
}, options?.rpcUrl);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// take x n and make
|
|
206
|
+
const makeAmount = quoteAmount -
|
|
207
|
+
result.reduce((acc, { spendAmount }) => acc + spendAmount, 0n);
|
|
208
|
+
return buildTransaction(chainId, {
|
|
209
|
+
chain: CHAIN_MAP[chainId],
|
|
210
|
+
account: userAddress,
|
|
211
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
212
|
+
abi: CONTROLLER_ABI,
|
|
213
|
+
functionName: 'execute',
|
|
214
|
+
args: [
|
|
215
|
+
[
|
|
216
|
+
...result.map(() => Action.TAKE),
|
|
217
|
+
...(makeAmount > 0n ? [Action.MAKE] : []),
|
|
218
|
+
],
|
|
219
|
+
[
|
|
220
|
+
...result.map(({ bookId, takenAmount }) => encodeAbiParameters(TAKE_ORDER_PARAMS_ABI, [
|
|
221
|
+
{
|
|
222
|
+
id: bookId,
|
|
223
|
+
limitPrice: rawPrice,
|
|
224
|
+
quoteAmount: takenAmount,
|
|
225
|
+
hookData: zeroHash,
|
|
226
|
+
},
|
|
227
|
+
])),
|
|
228
|
+
...(makeAmount > 0n
|
|
229
|
+
? [
|
|
230
|
+
encodeAbiParameters(MAKE_ORDER_PARAMS_ABI, [
|
|
231
|
+
{
|
|
232
|
+
...makeParam,
|
|
233
|
+
quoteAmount: makeAmount,
|
|
234
|
+
},
|
|
235
|
+
]),
|
|
236
|
+
]
|
|
237
|
+
: []),
|
|
238
|
+
],
|
|
239
|
+
tokensToSettle,
|
|
240
|
+
permitParamsList,
|
|
241
|
+
[],
|
|
242
|
+
getDeadlineTimestampInSeconds(),
|
|
243
|
+
],
|
|
244
|
+
value: isETH ? quoteAmount : 0n,
|
|
245
|
+
}, options?.rpcUrl);
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* Executes a market order on the specified chain for trading tokens.
|
|
250
|
+
*
|
|
251
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
252
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user placing the order.
|
|
253
|
+
* @param {`0x${string}`} inputToken The address of the token to be used as input.
|
|
254
|
+
* @param {`0x${string}`} outputToken The address of the token to be received as output.
|
|
255
|
+
* @param {string} amount The amount of input tokens for the order.
|
|
256
|
+
* @param {Object} [options] Optional parameters for the limit order.
|
|
257
|
+
* @param {PermitSignature} [options.signature] The permit signature for token approval.
|
|
258
|
+
* @param {string} [options.rpcUrl] The RPC URL of the blockchain.
|
|
259
|
+
* @param {string} [options.limitPrice] The upper bound price to tolerate for the market bid, or the lower bound price to tolerate for the market ask.
|
|
260
|
+
* if the limit price is not provided, unlimited slippage is allowed.
|
|
261
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the limit order.
|
|
262
|
+
* @example
|
|
263
|
+
* import { signERC20Permit, marketOrder } from '@clober/v2-sdk'
|
|
264
|
+
* import { privateKeyToAccount } from 'viem/accounts'
|
|
265
|
+
*
|
|
266
|
+
* const signature = await signERC20Permit(
|
|
267
|
+
* 421614,
|
|
268
|
+
* privateKeyToAccount('0x...'),
|
|
269
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
270
|
+
* '100.123'
|
|
271
|
+
* )
|
|
272
|
+
*
|
|
273
|
+
* const transaction = await marketOrder(
|
|
274
|
+
* 421614,
|
|
275
|
+
* '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
|
|
276
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
277
|
+
* '0x0000000000000000000000000000000000000000',
|
|
278
|
+
* '100.123', // 100.123 USDC
|
|
279
|
+
* { signature }
|
|
280
|
+
* )
|
|
281
|
+
*
|
|
282
|
+
* @example
|
|
283
|
+
* import { marketOrder } from '@clober/v2-sdk'
|
|
284
|
+
*
|
|
285
|
+
* const transaction = await limitOrder(
|
|
286
|
+
* 421614,
|
|
287
|
+
* '0xF8c1869Ecd4df136693C45EcE1b67f85B6bDaE69
|
|
288
|
+
* '0x0000000000000000000000000000000000000000',
|
|
289
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
290
|
+
* '0.13', // 0.13 ETH
|
|
291
|
+
* )
|
|
292
|
+
*/
|
|
293
|
+
export const marketOrder = async (chainId, userAddress, inputToken, outputToken, amount, options) => {
|
|
294
|
+
const { signature, rpcUrl, limitPrice } = options || {
|
|
295
|
+
signature: undefined,
|
|
296
|
+
rpcUrl: undefined,
|
|
297
|
+
limitPrice: undefined,
|
|
298
|
+
};
|
|
299
|
+
const market = await fetchMarket(chainId, [inputToken, outputToken], rpcUrl);
|
|
300
|
+
const isBid = isAddressEqual(market.quote.address, inputToken);
|
|
301
|
+
if ((isBid && !market.bidBookOpen) || (!isBid && !market.askBookOpen)) {
|
|
302
|
+
throw new Error(`
|
|
303
|
+
import { openMarket } from '@clober/v2-sdk'
|
|
304
|
+
|
|
305
|
+
const transaction = await openMarket(
|
|
306
|
+
${chainId},
|
|
307
|
+
'${inputToken}',
|
|
308
|
+
'${outputToken}',
|
|
309
|
+
)
|
|
310
|
+
`);
|
|
311
|
+
}
|
|
312
|
+
const rawLimitPrice = parsePrice(Number(limitPrice ?? '0'), market.quote.decimals, market.base.decimals);
|
|
313
|
+
const tokensToSettle = [inputToken, outputToken].filter((address) => !isAddressEqual(address, zeroAddress));
|
|
314
|
+
const quoteAmount = parseUnits(amount, isBid ? market.quote.decimals : market.base.decimals);
|
|
315
|
+
const { result } = await getExpectedOutput(chainId, inputToken, outputToken, amount, rpcUrl
|
|
316
|
+
? {
|
|
317
|
+
rpcUrl,
|
|
318
|
+
}
|
|
319
|
+
: {});
|
|
320
|
+
const isETH = isAddressEqual(inputToken, zeroAddress);
|
|
321
|
+
const permitParamsList = signature && !isETH
|
|
322
|
+
? [
|
|
323
|
+
{
|
|
324
|
+
token: inputToken,
|
|
325
|
+
permitAmount: quoteAmount,
|
|
326
|
+
signature,
|
|
327
|
+
},
|
|
328
|
+
]
|
|
329
|
+
: [];
|
|
330
|
+
return buildTransaction(chainId, {
|
|
331
|
+
chain: CHAIN_MAP[chainId],
|
|
332
|
+
account: userAddress,
|
|
333
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
334
|
+
abi: CONTROLLER_ABI,
|
|
335
|
+
functionName: 'take',
|
|
336
|
+
args: [
|
|
337
|
+
result.map(({ bookId, takenAmount }) => ({
|
|
338
|
+
id: bookId,
|
|
339
|
+
limitPrice: isBid ? invertPrice(rawLimitPrice) : rawLimitPrice,
|
|
340
|
+
quoteAmount: takenAmount,
|
|
341
|
+
hookData: zeroHash,
|
|
342
|
+
})),
|
|
343
|
+
tokensToSettle,
|
|
344
|
+
permitParamsList,
|
|
345
|
+
getDeadlineTimestampInSeconds(),
|
|
346
|
+
],
|
|
347
|
+
value: isETH ? quoteAmount : 0n,
|
|
348
|
+
}, options?.rpcUrl);
|
|
349
|
+
};
|
|
350
|
+
/**
|
|
351
|
+
* Claims specified open order for settlement.
|
|
352
|
+
* [IMPORTANT] Set ApprovalForAll before calling this function.
|
|
353
|
+
*
|
|
354
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
355
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user.
|
|
356
|
+
* @param {string} id An ID representing the open order to be claimed.
|
|
357
|
+
* @param {Object} [options] Optional parameters for claiming orders.
|
|
358
|
+
* @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
|
|
359
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
|
|
360
|
+
* @throws {Error} Throws an error if no open orders are found for the specified user.
|
|
361
|
+
* @example
|
|
362
|
+
* import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
|
|
363
|
+
*
|
|
364
|
+
* const openOrders = await getOpenOrders(
|
|
365
|
+
* 421614,
|
|
366
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
|
|
367
|
+
* )
|
|
368
|
+
* const transaction = await claimOrders(
|
|
369
|
+
* 421614,
|
|
370
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
371
|
+
* openOrders.map((order) => order.id)
|
|
372
|
+
* )
|
|
373
|
+
*/
|
|
374
|
+
export const claimOrder = async (chainId, userAddress, id, options) => {
|
|
375
|
+
return claimOrders(chainId, userAddress, [id], options);
|
|
376
|
+
};
|
|
377
|
+
/**
|
|
378
|
+
* Claims specified open orders for settlement.
|
|
379
|
+
* [IMPORTANT] Set ApprovalForAll before calling this function.
|
|
380
|
+
*
|
|
381
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
382
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user.
|
|
383
|
+
* @param {string[]} ids An array of IDs representing the open orders to be claimed.
|
|
384
|
+
* @param {Object} [options] Optional parameters for claiming orders.
|
|
385
|
+
* @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
|
|
386
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the claim action.
|
|
387
|
+
* @throws {Error} Throws an error if no open orders are found for the specified user.
|
|
388
|
+
* @example
|
|
389
|
+
* import { getOpenOrders, claimOrders } from '@clober/v2-sdk'
|
|
390
|
+
*
|
|
391
|
+
* const openOrders = await getOpenOrders(
|
|
392
|
+
* 421614,
|
|
393
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
|
|
394
|
+
* )
|
|
395
|
+
* const transaction = await claimOrders(
|
|
396
|
+
* 421614,
|
|
397
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
398
|
+
* openOrders.map((order) => order.id)
|
|
399
|
+
* )
|
|
400
|
+
*/
|
|
401
|
+
export const claimOrders = async (chainId, userAddress, ids, options) => {
|
|
402
|
+
const { rpcUrl } = options || {
|
|
403
|
+
rpcUrl: undefined,
|
|
404
|
+
};
|
|
405
|
+
const isApprovedForAll = await fetchIsApprovedForAll(chainId, userAddress, options?.rpcUrl);
|
|
406
|
+
if (!isApprovedForAll) {
|
|
407
|
+
throw new Error(`
|
|
408
|
+
import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
|
|
409
|
+
|
|
410
|
+
const hash = await setApprovalOfOpenOrdersForAll(
|
|
411
|
+
${chainId},
|
|
412
|
+
privateKeyToAccount('0x...')
|
|
413
|
+
)
|
|
414
|
+
`);
|
|
415
|
+
}
|
|
416
|
+
const openOrders = (await getOpenOrders(chainId, userAddress, rpcUrl ? { rpcUrl } : {})).filter((order) => ids.includes(order.id));
|
|
417
|
+
if (openOrders.length === 0) {
|
|
418
|
+
throw new Error(`No claimable open orders found for ${userAddress}`);
|
|
419
|
+
}
|
|
420
|
+
const tokensToSettle = openOrders
|
|
421
|
+
.map((order) => [order.outputCurrency.address, order.inputCurrency.address])
|
|
422
|
+
.flat()
|
|
423
|
+
.filter((address, index, self) => self.findIndex((c) => isAddressEqual(c, address)) === index)
|
|
424
|
+
.filter((address) => !isAddressEqual(address, zeroAddress));
|
|
425
|
+
return buildTransaction(chainId, {
|
|
426
|
+
chain: CHAIN_MAP[chainId],
|
|
427
|
+
account: userAddress,
|
|
428
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
429
|
+
abi: CONTROLLER_ABI,
|
|
430
|
+
functionName: 'claim',
|
|
431
|
+
args: [
|
|
432
|
+
openOrders.map((order) => ({
|
|
433
|
+
id: BigInt(order.id),
|
|
434
|
+
hookData: zeroHash,
|
|
435
|
+
})),
|
|
436
|
+
tokensToSettle,
|
|
437
|
+
[],
|
|
438
|
+
getDeadlineTimestampInSeconds(),
|
|
439
|
+
],
|
|
440
|
+
}, options?.rpcUrl);
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Cancels specified open order if the order is not fully filled.
|
|
444
|
+
* [IMPORTANT] Set ApprovalForAll before calling this function.
|
|
445
|
+
*
|
|
446
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
447
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user.
|
|
448
|
+
* @param {string} id An ID representing the open order to be canceled
|
|
449
|
+
* @param {Object} [options] Optional parameters for canceling orders.
|
|
450
|
+
* @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
|
|
451
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
|
|
452
|
+
* @throws {Error} Throws an error if no open orders are found for the specified user.
|
|
453
|
+
* @example
|
|
454
|
+
* import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
|
|
455
|
+
*
|
|
456
|
+
* const openOrders = await getOpenOrders(
|
|
457
|
+
* 421614,
|
|
458
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
|
|
459
|
+
* )
|
|
460
|
+
* const transaction = await cancelOrders(
|
|
461
|
+
* 421614,
|
|
462
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
463
|
+
* openOrders.map((order) => order.id)
|
|
464
|
+
* )
|
|
465
|
+
*/
|
|
466
|
+
export const cancelOrder = async (chainId, userAddress, id, options) => {
|
|
467
|
+
return cancelOrders(chainId, userAddress, [id], options);
|
|
468
|
+
};
|
|
469
|
+
/**
|
|
470
|
+
* Cancels specified open orders if orders are not fully filled.
|
|
471
|
+
* [IMPORTANT] Set ApprovalForAll before calling this function.
|
|
472
|
+
*
|
|
473
|
+
* @param {CHAIN_IDS} chainId The chain ID.
|
|
474
|
+
* @param {`0x${string}`} userAddress The Ethereum address of the user.
|
|
475
|
+
* @param {string[]} ids An array of IDs representing the open orders to be canceled.
|
|
476
|
+
* @param {Object} [options] Optional parameters for canceling orders.
|
|
477
|
+
* @param {string} [options.rpcUrl] The RPC URL to use for executing the transaction.
|
|
478
|
+
* @returns {Promise<Transaction>} Promise resolving to the transaction object representing the cancel action.
|
|
479
|
+
* @throws {Error} Throws an error if no open orders are found for the specified user.
|
|
480
|
+
* @example
|
|
481
|
+
* import { getOpenOrders, cancelOrders } from '@clober/v2-sdk'
|
|
482
|
+
*
|
|
483
|
+
* const openOrders = await getOpenOrders(
|
|
484
|
+
* 421614,
|
|
485
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0'
|
|
486
|
+
* )
|
|
487
|
+
* const transaction = await cancelOrders(
|
|
488
|
+
* 421614,
|
|
489
|
+
* '0x00bfd44e79fb7f6dd5887a9426c8ef85a0cd23e0',
|
|
490
|
+
* openOrders.map((order) => order.id)
|
|
491
|
+
* )
|
|
492
|
+
*/
|
|
493
|
+
export const cancelOrders = async (chainId, userAddress, ids, options) => {
|
|
494
|
+
const { rpcUrl } = options || {
|
|
495
|
+
rpcUrl: undefined,
|
|
496
|
+
};
|
|
497
|
+
const isApprovedForAll = await fetchIsApprovedForAll(chainId, userAddress, options?.rpcUrl);
|
|
498
|
+
if (!isApprovedForAll) {
|
|
499
|
+
throw new Error(`
|
|
500
|
+
import { setApprovalOfOpenOrdersForAll } from '@clober/v2-sdk'
|
|
501
|
+
|
|
502
|
+
const hash = await setApprovalOfOpenOrdersForAll(
|
|
503
|
+
${chainId},
|
|
504
|
+
privateKeyToAccount('0x...')
|
|
505
|
+
)
|
|
506
|
+
`);
|
|
507
|
+
}
|
|
508
|
+
const openOrders = (await getOpenOrders(chainId, userAddress, rpcUrl ? { rpcUrl } : {})).filter((order) => ids.includes(order.id) && order.cancelable);
|
|
509
|
+
if (openOrders.length === 0) {
|
|
510
|
+
throw new Error(`No cancelable open orders found for ${userAddress}`);
|
|
511
|
+
}
|
|
512
|
+
const tokensToSettle = openOrders
|
|
513
|
+
.map((order) => [order.outputCurrency.address, order.inputCurrency.address])
|
|
514
|
+
.flat()
|
|
515
|
+
.filter((address, index, self) => self.findIndex((c) => isAddressEqual(c, address)) === index)
|
|
516
|
+
.filter((address) => !isAddressEqual(address, zeroAddress));
|
|
517
|
+
return buildTransaction(chainId, {
|
|
518
|
+
chain: CHAIN_MAP[chainId],
|
|
519
|
+
account: userAddress,
|
|
520
|
+
address: CONTRACT_ADDRESSES[chainId].Controller,
|
|
521
|
+
abi: CONTROLLER_ABI,
|
|
522
|
+
functionName: 'cancel',
|
|
523
|
+
args: [
|
|
524
|
+
openOrders.map((order) => ({
|
|
525
|
+
id: BigInt(order.id),
|
|
526
|
+
leftQuoteAmount: 0n,
|
|
527
|
+
hookData: zeroHash,
|
|
528
|
+
})),
|
|
529
|
+
tokensToSettle,
|
|
530
|
+
[],
|
|
531
|
+
getDeadlineTimestampInSeconds(),
|
|
532
|
+
],
|
|
533
|
+
}, options?.rpcUrl);
|
|
534
|
+
};
|
|
535
|
+
//# sourceMappingURL=call.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call.js","sourceRoot":"","sources":["../../src/call.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,MAAM,CAAA;AAEb,OAAO,EAAa,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,OAAkB,EAClB,UAAyB,EACzB,WAA0B,EAC1B,OAEC,EACiC,EAAE;IACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,OAAO,EACP,CAAC,UAAU,EAAE,WAAW,CAAC,EACzB,OAAO,EAAE,MAAM,CAChB,CAAA;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,OAAO,EACP,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAClC,OAAO,EAAE,MAAM,CAChB,CAAA;QACD,OAAO,gBAAgB,CACrB,OAAO,EACP;YACE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE;gBACJ;oBACE;wBACE,GAAG,EAAE;4BACH,IAAI,EAAE,UAAU;4BAChB,IAAI;4BACJ,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,oBAAoB,CAAC,KAAK;4BACvC,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,oBAAoB,CAAC,KAAK;yBACxC;wBACD,QAAQ,EAAE,QAAQ;qBACnB;iBACF;gBACD,6BAA6B,EAAE;aAChC;SACF,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,OAAkB,EAClB,WAA0B,EAC1B,UAAyB,EACzB,WAA0B,EAC1B,MAAc,EACd,KAAa,EACb,OAIC,EACqB,EAAE;IACxB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI;QACjD,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC;;;;cAIN,OAAO;cACP,UAAU;cACV,WAAW;;KAEpB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CACzB,MAAM,CAAC,KAAK,CAAC,EACb,MAAM,CAAC,KAAK,CAAC,QAAQ,EACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACrB,CAAA;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC3E,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CACrD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CACnD,CAAA;IACD,MAAM,WAAW,GAAG,UAAU,CAC5B,MAAM,EACN,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CACrD,CAAA;IACD,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;QAClE,iBAAiB,CACf,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,MAAM;YACJ,CAAC,CAAC;gBACE,UAAU,EAAE,KAAK;gBACjB,MAAM;aACP;YACH,CAAC,CAAC;gBACE,UAAU,EAAE,KAAK;aAClB,CACN;KACF,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IACrD,MAAM,gBAAgB,GACpB,SAAS,IAAI,CAAC,KAAK;QACjB,CAAC,CAAC;YACE;gBACE,KAAK,EAAE,UAAU;gBACjB,YAAY,EAAE,WAAW;gBACzB,SAAS;aACV;SACF;QACH,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;QAClB,WAAW;QACX,QAAQ,EAAE,QAAQ;KACnB,CAAA;IACD,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,gBAAgB,CACrB,OAAO,EACP;YACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE;gBACJ,CAAC,SAAS,CAAC;gBACX,cAAc;gBACd,gBAAgB;gBAChB,6BAA6B,EAAE;aAChC;YACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SAChC,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,gBAAgB;QAChB,OAAO,gBAAgB,CACrB,OAAO,EACP;YACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,OAAO;YACrB,IAAI,EAAE;gBACJ;oBACE;wBACE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM;wBAC7B,UAAU,EAAE,SAAS,CAAC,EAAE;wBACxB,UAAU,EAAE,QAAQ;wBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,WAAW;wBACX,YAAY,EAAE,QAAQ;wBACtB,YAAY,EAAE,SAAS,CAAC,QAAQ;qBACjC;iBACF;gBACD,cAAc;gBACd,gBAAgB;gBAChB,6BAA6B,EAAE;aAChC;YACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SAChC,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;IACH,CAAC;SAAM,CAAC;QACN,oBAAoB;QACpB,MAAM,UAAU,GACd,WAAW;YACX,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,CAAC,CAAA;QAChE,OAAO,gBAAgB,CACrB,OAAO,EACP;YACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;YAChD,GAAG,EAAE,cAAc;YACnB,YAAY,EAAE,SAAS;YACvB,IAAI,EAAE;gBACJ;oBACE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;oBAChC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C;gBACD;oBACE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CACxC,mBAAmB,CAAC,qBAAqB,EAAE;wBACzC;4BACE,EAAE,EAAE,MAAM;4BACV,UAAU,EAAE,QAAQ;4BACpB,WAAW,EAAE,WAAW;4BACxB,QAAQ,EAAE,QAAQ;yBACnB;qBACF,CAAC,CACH;oBACD,GAAG,CAAC,UAAU,GAAG,EAAE;wBACjB,CAAC,CAAC;4BACE,mBAAmB,CAAC,qBAAqB,EAAE;gCACzC;oCACE,GAAG,SAAS;oCACZ,WAAW,EAAE,UAAU;iCACxB;6BACF,CAAC;yBACH;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,cAAc;gBACd,gBAAgB;gBAChB,EAAE;gBACF,6BAA6B,EAAE;aAChC;YACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;SAChC,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkB,EAClB,WAA0B,EAC1B,UAAyB,EACzB,WAA0B,EAC1B,MAAc,EACd,OAIC,EACqB,EAAE;IACxB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI;QACnD,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,SAAS;KACtB,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9D,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC;;;;cAIN,OAAO;cACP,UAAU;cACV,WAAW;;KAEpB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAC9B,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,EACzB,MAAM,CAAC,KAAK,CAAC,QAAQ,EACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CACrB,CAAA;IACD,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CACrD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CACnD,CAAA;IACD,MAAM,WAAW,GAAG,UAAU,CAC5B,MAAM,EACN,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CACrD,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CACxC,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,MAAM;QACJ,CAAC,CAAC;YACE,MAAM;SACP;QACH,CAAC,CAAC,EAAE,CACP,CAAA;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IACrD,MAAM,gBAAgB,GACpB,SAAS,IAAI,CAAC,KAAK;QACjB,CAAC,CAAC;YACE;gBACE,KAAK,EAAE,UAAU;gBACjB,YAAY,EAAE,WAAW;gBACzB,SAAS;aACV;SACF;QACH,CAAC,CAAC,EAAE,CAAA;IAER,OAAO,gBAAgB,CACrB,OAAO,EACP;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;QAChD,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE;YACJ,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvC,EAAE,EAAE,MAAM;gBACV,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa;gBAC9D,WAAW,EAAE,WAAW;gBACxB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,cAAc;YACd,gBAAgB;YAChB,6BAA6B,EAAE;SAChC;QACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KAChC,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,OAAkB,EAClB,WAA0B,EAC1B,EAAU,EACV,OAEC,EACqB,EAAE;IACxB,OAAO,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;AACzD,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkB,EAClB,WAA0B,EAC1B,GAAa,EACb,OAEC,EACqB,EAAE;IACxB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI;QAC5B,MAAM,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAClD,OAAO,EACP,WAAW,EACX,OAAO,EAAE,MAAM,CAChB,CAAA;IACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC;;;;cAIN,OAAO;;;KAGhB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CACjB,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,cAAc,GAAG,UAAU;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC3E,IAAI,EAAE;SACN,MAAM,CACL,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAC9D;SACA,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAE7D,OAAO,gBAAgB,CACrB,OAAO,EACP;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;QAChD,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE;YACJ,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,cAAc;YACd,EAAE;YACF,6BAA6B,EAAE;SAChC;KACF,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkB,EAClB,WAA0B,EAC1B,EAAU,EACV,OAEC,EACqB,EAAE;IACxB,OAAO,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,OAAkB,EAClB,WAA0B,EAC1B,GAAa,EACb,OAEC,EACqB,EAAE;IACxB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI;QAC5B,MAAM,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAClD,OAAO,EACP,WAAW,EACX,OAAO,EAAE,MAAM,CAChB,CAAA;IACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC;;;;cAIN,OAAO;;;KAGhB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,CACjB,MAAM,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,MAAM,cAAc,GAAG,UAAU;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC3E,IAAI,EAAE;SACN,MAAM,CACL,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,CAC9D;SACA,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAE7D,OAAO,gBAAgB,CACrB,OAAO,EACP;QACE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAE,CAAC,UAAU;QAChD,GAAG,EAAE,cAAc;QACnB,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE;YACJ,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,eAAe,EAAE,EAAE;gBACnB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,cAAc;YACd,EAAE;YACF,6BAA6B,EAAE;SAChC;KACF,EACD,OAAO,EAAE,MAAM,CAChB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var Action;
|
|
2
|
+
(function (Action) {
|
|
3
|
+
Action[Action["OPEN"] = 0] = "OPEN";
|
|
4
|
+
Action[Action["MAKE"] = 1] = "MAKE";
|
|
5
|
+
Action[Action["LIMIT"] = 2] = "LIMIT";
|
|
6
|
+
Action[Action["TAKE"] = 3] = "TAKE";
|
|
7
|
+
Action[Action["SPEND"] = 4] = "SPEND";
|
|
8
|
+
Action[Action["CLAIM"] = 5] = "CLAIM";
|
|
9
|
+
Action[Action["CANCEL"] = 6] = "CANCEL";
|
|
10
|
+
})(Action || (Action = {}));
|
|
11
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/constants/action.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,MAQX;AARD,WAAY,MAAM;IAChB,mCAAI,CAAA;IACJ,mCAAI,CAAA;IACJ,qCAAK,CAAA;IACL,mCAAI,CAAA;IACJ,qCAAK,CAAA;IACL,qCAAK,CAAA;IACL,uCAAM,CAAA;AACR,CAAC,EARW,MAAM,KAAN,MAAM,QAQjB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getAddress } from 'viem';
|
|
2
|
+
import { CHAIN_IDS } from './chain';
|
|
3
|
+
export const CONTRACT_ADDRESSES = {
|
|
4
|
+
[CHAIN_IDS.ARBITRUM_SEPOLIA]: {
|
|
5
|
+
Controller: getAddress('0xfAe4A04fa491DC21F77796394532a1B62d8331BF'),
|
|
6
|
+
BookManager: getAddress('0x4a4eaF7382821da4Fb85e8A8d515f5555383d58A'),
|
|
7
|
+
BookViewer: getAddress('0xA7603C4c895a533E66c30EA76cC6F6A6A0c5cbFe'),
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=addresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../../src/constants/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAM3B;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;QAC5B,UAAU,EAAE,UAAU,CAAC,4CAA4C,CAAC;QACpE,WAAW,EAAE,UAAU,CAAC,4CAA4C,CAAC;QACrE,UAAU,EAAE,UAAU,CAAC,4CAA4C,CAAC;KACrE;CACF,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { arbitrumSepolia, mainnet } from 'viem/chains';
|
|
2
|
+
export var CHAIN_IDS;
|
|
3
|
+
(function (CHAIN_IDS) {
|
|
4
|
+
CHAIN_IDS[CHAIN_IDS["MAINNET"] = mainnet.id] = "MAINNET";
|
|
5
|
+
CHAIN_IDS[CHAIN_IDS["ARBITRUM_SEPOLIA"] = arbitrumSepolia.id] = "ARBITRUM_SEPOLIA";
|
|
6
|
+
})(CHAIN_IDS || (CHAIN_IDS = {}));
|
|
7
|
+
export const CHAIN_MAP = {
|
|
8
|
+
[CHAIN_IDS.ARBITRUM_SEPOLIA]: arbitrumSepolia,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/constants/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,OAAO,EAAE,MAAM,aAAa,CAAA;AAElE,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,iCAAU,OAAO,CAAC,EAAE,aAAA,CAAA;IACpB,0CAAmB,eAAe,CAAC,EAAE,sBAAA,CAAA;AACvC,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAC,MAAM,SAAS,GAElB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,eAAe;CAC9C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { zeroAddress } from 'viem';
|
|
2
|
+
import { CHAIN_IDS } from './chain';
|
|
3
|
+
export const WETH_ADDRESSES = {
|
|
4
|
+
[CHAIN_IDS.ARBITRUM_SEPOLIA]: [zeroAddress],
|
|
5
|
+
};
|
|
6
|
+
export const STABLE_COIN_ADDRESSES = {
|
|
7
|
+
[CHAIN_IDS.ARBITRUM_SEPOLIA]: ['0x00BFD44e79FB7f6dd5887A9426c8EF85A0CD23e0'],
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=currency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.js","sourceRoot":"","sources":["../../../src/constants/currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,cAAc,GAEvB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,CAAC;CAC5C,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAE9B;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,4CAA4C,CAAC;CAC7E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../src/constants/fee.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA,CAAC,SAAS;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,CAAC,OAAO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/constants/price.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,qDAAqD,CAAA;AAE9E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgraph-url.js","sourceRoot":"","sources":["../../../src/constants/subgraph-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,MAAM,CAAC,MAAM,YAAY,GAErB;IACF,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAC1B,4EAA4E;CAC/E,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA"}
|