@spicenet-io/spiceflow-core 0.3.15 → 0.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/package.json +1 -1
  2. package/dist/abis/delegate.d.ts +0 -419
  3. package/dist/abis/delegate.d.ts.map +0 -1
  4. package/dist/abis/erc20.d.ts +0 -130
  5. package/dist/abis/erc20.d.ts.map +0 -1
  6. package/dist/abis/index.d.ts +0 -5
  7. package/dist/abis/index.d.ts.map +0 -1
  8. package/dist/abis/uniV3.d.ts +0 -93
  9. package/dist/abis/uniV3.d.ts.map +0 -1
  10. package/dist/abis/wcbtc.d.ts +0 -58
  11. package/dist/abis/wcbtc.d.ts.map +0 -1
  12. package/dist/authorization.d.ts +0 -44
  13. package/dist/authorization.d.ts.map +0 -1
  14. package/dist/chains/index.d.ts +0 -25
  15. package/dist/chains/index.d.ts.map +0 -1
  16. package/dist/chains/list.d.ts +0 -3
  17. package/dist/chains/list.d.ts.map +0 -1
  18. package/dist/chains/types.d.ts +0 -30
  19. package/dist/chains/types.d.ts.map +0 -1
  20. package/dist/config.d.ts +0 -9
  21. package/dist/config.d.ts.map +0 -1
  22. package/dist/core.d.ts +0 -49
  23. package/dist/core.d.ts.map +0 -1
  24. package/dist/http.d.ts +0 -17
  25. package/dist/http.d.ts.map +0 -1
  26. package/dist/index.cjs +0 -1518
  27. package/dist/index.d.ts +0 -14
  28. package/dist/index.d.ts.map +0 -1
  29. package/dist/index.js +0 -1437
  30. package/dist/logos.d.ts +0 -12
  31. package/dist/logos.d.ts.map +0 -1
  32. package/dist/relayer.d.ts +0 -22
  33. package/dist/relayer.d.ts.map +0 -1
  34. package/dist/rfqt.d.ts +0 -17
  35. package/dist/rfqt.d.ts.map +0 -1
  36. package/dist/status.d.ts +0 -10
  37. package/dist/status.d.ts.map +0 -1
  38. package/dist/swap.d.ts +0 -31
  39. package/dist/swap.d.ts.map +0 -1
  40. package/dist/tokens/index.d.ts +0 -17
  41. package/dist/tokens/index.d.ts.map +0 -1
  42. package/dist/tokens/list.d.ts +0 -3
  43. package/dist/tokens/list.d.ts.map +0 -1
  44. package/dist/tokens/types.d.ts +0 -33
  45. package/dist/tokens/types.d.ts.map +0 -1
  46. package/dist/types.d.ts +0 -66
  47. package/dist/types.d.ts.map +0 -1
  48. package/dist/utils.d.ts +0 -11
  49. package/dist/utils.d.ts.map +0 -1
package/dist/index.cjs DELETED
@@ -1,1518 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/index.ts
20
- var index_exports = {};
21
- __export(index_exports, {
22
- CHAINS: () => CHAINS,
23
- ChainBatchHashAbi: () => ChainBatchHashAbi,
24
- DELEGATE_ABI: () => DELEGATE_ABI,
25
- ERC20_ABI: () => ERC20_ABI,
26
- ESCROW_ADDRESS: () => ESCROW_ADDRESS,
27
- HttpError: () => HttpError,
28
- IntentHashAbi: () => IntentHashAbi,
29
- NATIVE_TOKEN_ADDRESS: () => NATIVE_TOKEN_ADDRESS,
30
- SPICENET_NATIVE_CHAIN_ID: () => SPICENET_NATIVE_CHAIN_ID,
31
- STARKNET_MAINNET_CHAIN_ID: () => STARKNET_MAINNET_CHAIN_ID,
32
- SpiceFlowCore: () => SpiceFlowCore,
33
- TOKENS: () => TOKENS,
34
- VIEM_CHAINS: () => VIEM_CHAINS,
35
- WCBTC_ABI: () => WCBTC_ABI,
36
- ZERO_ADDRESS: () => ZERO_ADDRESS,
37
- applySlippage: () => applySlippage,
38
- areEquivalent: () => areEquivalent,
39
- buildUniV3SwapCalls: () => buildUniV3SwapCalls,
40
- convertAmountBetweenDecimals: () => convertAmountBetweenDecimals,
41
- fetchWithRetry: () => fetchWithRetry,
42
- formatTokenAmount: () => formatTokenAmount,
43
- getAccountNonce: () => getAccountNonce,
44
- getAllChainsByNetwork: () => getAllChainsByNetwork,
45
- getChainIdsByNetwork: () => getChainIdsByNetwork,
46
- getChainMeta: () => getChainMeta,
47
- getChainsByNetwork: () => getChainsByNetwork,
48
- getDelegateContract: () => getDelegateContract,
49
- getDeployment: () => getDeployment,
50
- getEquivalenceGroup: () => getEquivalenceGroup,
51
- getEquivalentAddresses: () => getEquivalentAddresses,
52
- getIntentHash: () => getIntentHash,
53
- getIntentStepStatus: () => getIntentStepStatus,
54
- getMainnetChains: () => getMainnetChains,
55
- getRecentBlock: () => getRecentBlock,
56
- getTestnetChains: () => getTestnetChains,
57
- getTokenByAddress: () => getTokenByAddress,
58
- getTokenBySymbol: () => getTokenBySymbol,
59
- getTokenDefinition: () => getTokenDefinition,
60
- getTokensForChain: () => getTokensForChain,
61
- getViemChain: () => getViemChain,
62
- hashChainBatches: () => hashChainBatches,
63
- isBtcDenominated: () => isBtcDenominated,
64
- isNativeToken: () => isNativeToken,
65
- isSpicenetChainId: () => isSpicenetChainId,
66
- isStarknetChain: () => isStarknetChain,
67
- isUsdDenominated: () => isUsdDenominated,
68
- normalizeNativeTokenAddress: () => normalizeNativeTokenAddress,
69
- prepareRFQT: () => prepareRFQT,
70
- requireTokenBySymbol: () => requireTokenBySymbol,
71
- requireViemChain: () => requireViemChain,
72
- resolveTokenRef: () => resolveTokenRef,
73
- submitTransaction: () => submitTransaction,
74
- truncateAddress: () => truncateAddress,
75
- uniV3QuoterV2Abi: () => uniV3QuoterV2Abi,
76
- uniV3SwapRouterAbi: () => uniV3SwapRouterAbi,
77
- withRetry: () => withRetry
78
- });
79
- module.exports = __toCommonJS(index_exports);
80
-
81
- // src/config.ts
82
- var SPICENET_NATIVE_CHAIN_ID = 4321;
83
- function isSpicenetChainId(chainId) {
84
- return BigInt(chainId) === BigInt(SPICENET_NATIVE_CHAIN_ID);
85
- }
86
-
87
- // src/authorization.ts
88
- var import_viem = require("viem");
89
- var CallComponents = [
90
- { name: "to", type: "address" },
91
- { name: "value", type: "uint256" },
92
- { name: "data", type: "bytes" }
93
- ];
94
- var ChainBatchHashAbi = [
95
- { name: "chainId", type: "uint256" },
96
- { name: "calls", type: "tuple[]", components: CallComponents }
97
- ];
98
- var IntentHashAbi = [
99
- { type: "string" },
100
- { type: "uint256" },
101
- { type: "uint256" },
102
- { type: "bytes32[]" }
103
- ];
104
- function hashChainBatches(chainCalls) {
105
- return chainCalls.map(({ chainId, calls }) => {
106
- const cid = BigInt(chainId);
107
- const hash = (0, import_viem.keccak256)(
108
- (0, import_viem.encodeAbiParameters)(ChainBatchHashAbi, [cid, calls])
109
- );
110
- return { hash, chainId: cid, calls };
111
- });
112
- }
113
- function getIntentHash(signatureType, nbf, exp, chainBatches) {
114
- const hashes = chainBatches.map(({ hash }) => hash);
115
- return (0, import_viem.keccak256)(
116
- (0, import_viem.encodeAbiParameters)(IntentHashAbi, [signatureType, nbf, exp, hashes])
117
- );
118
- }
119
- async function getAccountNonce(address, publicClient) {
120
- return await publicClient.getTransactionCount({ address, blockTag: "pending" });
121
- }
122
- async function getRecentBlock(publicClient) {
123
- return await publicClient.getBlockNumber();
124
- }
125
-
126
- // src/http.ts
127
- var HttpError = class extends Error {
128
- constructor(message, status, code, body) {
129
- super(message);
130
- this.status = status;
131
- this.code = code;
132
- this.body = body;
133
- }
134
- };
135
- function sleep(ms) {
136
- return new Promise((r) => setTimeout(r, ms));
137
- }
138
- async function fetchWithRetry(url, init = {}, opts = {}) {
139
- const {
140
- retries = 3,
141
- backoffMs = 300,
142
- maxBackoffMs = 5e3,
143
- jitter = true,
144
- idempotencyKey,
145
- retryOn = (e) => e instanceof Error || e instanceof Response && (e.status >= 500 || e.status === 429),
146
- signal
147
- } = opts;
148
- const headers = new Headers(init.headers || {});
149
- if (idempotencyKey) headers.set("Idempotency-Key", idempotencyKey);
150
- const reqInit = { ...init, headers, signal };
151
- let attempt = 0;
152
- let lastErr;
153
- while (attempt <= retries) {
154
- try {
155
- const res = await fetch(url, reqInit);
156
- if (!res.ok && retryOn(res) && attempt < retries) {
157
- attempt++;
158
- const base = Math.min(maxBackoffMs, backoffMs * 2 ** (attempt - 1));
159
- const delay = jitter ? Math.floor(base * (0.7 + Math.random() * 0.6)) : base;
160
- await sleep(delay);
161
- continue;
162
- }
163
- if (!res.ok) {
164
- let body;
165
- try {
166
- body = await res.json();
167
- } catch {
168
- body = await res.text();
169
- }
170
- throw new HttpError(`HTTP ${res.status}`, res.status, body && body.code || void 0, body);
171
- }
172
- return res;
173
- } catch (e) {
174
- if (attempt >= retries || !retryOn(e)) throw e;
175
- attempt++;
176
- const base = Math.min(maxBackoffMs, backoffMs * 2 ** (attempt - 1));
177
- const delay = jitter ? Math.floor(base * (0.7 + Math.random() * 0.6)) : base;
178
- await sleep(delay);
179
- lastErr = e;
180
- }
181
- }
182
- throw lastErr;
183
- }
184
-
185
- // src/relayer.ts
186
- async function submitTransaction(baseUrl, request, retry) {
187
- const res = await fetchWithRetry(`${baseUrl}/transaction/submit`, {
188
- method: "POST",
189
- headers: { "Content-Type": "application/json" },
190
- body: JSON.stringify(request, (k, v) => typeof v === "bigint" ? v.toString() : v)
191
- }, retry);
192
- const result = await res.json();
193
- return { hash: result.hash, intentId: result.intentId || request.intentAuthorization.signature };
194
- }
195
-
196
- // src/core.ts
197
- var SpiceFlowCore = class {
198
- constructor(cfg, signers) {
199
- this.cfg = cfg;
200
- this.signers = signers;
201
- }
202
- getConfig() {
203
- return this.cfg;
204
- }
205
- getClient(chainId) {
206
- return this.cfg.publicClientForChain(chainId);
207
- }
208
- async signDelegations(params) {
209
- const out = [];
210
- for (const d of params.delegations) {
211
- const client = this.getClient(d.chainId);
212
- const nonce = typeof d.nonce === "number" ? d.nonce : await getAccountNonce(params.user, client);
213
- const auth = await this.signers.authorizationSigner({ contractAddress: d.contractAddress, chainId: d.chainId, nonce, address: params.user });
214
- delete auth.v;
215
- out.push(auth);
216
- }
217
- return out;
218
- }
219
- async buildChainBatches(nbf, exp, callsByChain, signatureType = "ecdsa") {
220
- const chainBatches = hashChainBatches(
221
- callsByChain.map((c) => ({ chainId: c.chainId, calls: c.calls }))
222
- );
223
- const digest = getIntentHash(signatureType, nbf, exp, chainBatches);
224
- return { chainBatches, digest };
225
- }
226
- async signIntent(digest) {
227
- return this.signers.messageSigner(digest);
228
- }
229
- async submitIntent(req) {
230
- const signatureType = req.signatureType ?? "ecdsa";
231
- const signature = req.signature ?? await this.signIntent(getIntentHash(signatureType, req.nbf, req.exp, req.chainBatches));
232
- const resp = await submitTransaction(this.cfg.txApiUrl, {
233
- tokenAddress: req.tokenAddress,
234
- tokenAmount: req.tokenAmount,
235
- address: req.user,
236
- authorization: req.authorization,
237
- intentAuthorization: { signature, chainBatches: req.chainBatches }
238
- });
239
- return resp;
240
- }
241
- };
242
-
243
- // src/status.ts
244
- async function getIntentStepStatus(txApiUrl, intentId, stepId, retry) {
245
- const res = await fetchWithRetry(`${txApiUrl}/intent/${intentId}/step/${stepId}/status`, {}, retry);
246
- return res.json();
247
- }
248
-
249
- // src/rfqt.ts
250
- async function prepareRFQT(txApiUrl, request, retry) {
251
- const res = await fetchWithRetry(`${txApiUrl}/rfqt`, {
252
- method: "POST",
253
- headers: { "Content-Type": "application/json" },
254
- body: JSON.stringify(request)
255
- }, retry);
256
- return res.json();
257
- }
258
-
259
- // src/logos.ts
260
- var logo_arb = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAjVBMVEVMaXEgMkwgMk0fMUogMkwgMkwgMkwgMUsNOE0gMUwhMk0fMk0fMUsgM00gMkz///8hM04iNVESqf78/P0RIz8hKkEYKkURsv8Rrv8yQ1vq7O7W2d4fQGBXZHhrdohFVGoVjtMbWIOeprETm+XEyM8YdK0SpfQaZZYdS3AWgb+mrbh5hJSKlKG0usOUnakhSCyqAAAADnRSTlMAj2cY0Oqw/QP6KkyHd87n3EEAAAAJcEhZcwAACxMAAAsTAQCanBgAAAPZSURBVHjarZfbeqowEIVBQUBsmEBArHiuVu3h/R9vz4QQIMHD/mwuWmrJuNbkz2TiONYIQ/oxjWcTz48Yi3xvMounYfOfR4NeCmPXizjnAAwHAD5GnhuHz4TAF8ZvHk6BIIoCJkcQRAF94r2N5Qv3v37s+gBBoOa2Az8B8GfjuyJCJxz5+N3W7CYGcH8U3hYROlMPp7M7A0N40xsRUNoo4sHd+aSCR6NBG2EYujx6MF2JcEM7Ajqb8Ig9NSI+GUjE8/NVBFOAOZ/owbXvPPQj9CWEjmvOLwSNApoHU4PbjYD554Exf33d7/fXdVGs5MOXmUo+aiPg+vv95Ydi8Z4kSZb8Cr7EX1lyLcBYC7/DAyawL4CLrySjsREr+ZCsjAAoQSeSDBgLAMWH/N6PorjKhyUwsJZCmxgbBnD+JpMOvoS2EuSmBPDHSsDMFMDFd0IR3hdiLR+SjTjvzAgRn9USUIBJCtSZ+ykaKyy/HCzMawmh8wZWBlaJFL4W2go/lGfbxBtJCD1zB4OoM4cOGiv5riyPdgCPLMSmAWAqc3uhreSXsjxwa1NAjAFcbglQmVsJbaU6pWlppTFAoIccFD/12nPx2zj4nKfp/DLoYWpuYo3xd4PxXgTbEhWcKpumqRObDiTGFGFTOyAr5AAlfNoeYpuiIYwZKUjL7RBLE/4IY7Qic5CmpyqwC4uZQwvjbIMb8YYHzKJjcWxhXDAO+WUuPdg0O09gXG2rfCc92DhHDnsCY5SOe4E8WDgzZwDjrI9xcJlvmfJg42xYuIXxGXeT9GDiHBlJ1BiD2HcwRunKg4EzJrG3jIhxptZeWyGMUXp+lB76ONMy9kDqYKytnJV0+dtAgUDqodzBuLFSfzNKH8KZUO5upiGMlfRDpXBOq04E2kzd7dwWAG2laKTv8upU2h6m/YICzTmmrWDDtVXpt3Gui2Jb0jTGq041Br0TGxRanGVJ6xRVaApAuyNJgd6JNs6yqHY8kINMnmMNxtRg5FslXS3Itu8AD5Z2HRb7TDrQGMsA9U5EnM9lOj8duXGwdI427EY2P8kykBjTjiTqqJo00g/zS5UbR1vvcAVeiPVatAeL/FDvxPxzl+cA5uHaO96xJyoIY8qhaipApR9RCNrp7fFuNhj4yuLaVGMFGKZ/nh4rBjDYYOBC9EozpeIjoWqs/sb0l9tz3jtWsMVxbjZZmIpivdw0bRHk5wOZv9Nk2W0eiK5cYDnA7TZvqNFk3CyW9xrNoVb3UbNsddsvNtt/0e5THuDJC8eNK8trV57XL11/cO2rL56zFy6eKsQLV98/uHz/9/X/H1O71f+Xu2swAAAAAElFTkSuQmCC";
261
- var logo_base = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAATlBMVEVMaXEAUPQAT+wAT+0AT+8AUPUASdgAUf4ASN8AUPcAUPUASf8AUv////8BVf8ASv/9/v8sbf/0+P9fkf9Efv/U4f+80f8aYf92of+Xt//AWxqQAAAADHRSTlMAklRFcb8d/ATgpvy0jdC4AAAACXBIWXMAAAsTAAALEwEAmpwYAAACQElEQVR42q1X27KDIAy0CgKOKN7b///REzwKQVHppPvQaa275AYkWXaGtB9lwV6cKwDnL1aU7o9H2LdKxlUTQHFWJknAGzLnAigigH3Ac/koITPJYO1aiPoAeAJ2MHmrAP/lyq5dR2HtUHkm5TW/rK7pu0RVXhkhs0Ld0jcJVcQVZMZg+eDtPQWhRCNYXOEVLA+01qHGImDE64KP6MCul3GwGLvF/sISZwUZ8IFej5+p1xv6+d0FElZBHv1H67fNMK1Ms2L9Ng/wGCkEcYD4e37TtkA3emPuOlpPIzJCNEEuSuUEmnaZtUFsp6H1p3FGQDZL5EKF+GOvj+xdQ08dUqi8AzniD2C8voDR/YgU8t0J6RwA/sXyZwVwQh4zAPbfrL8pdF5hy4Q3oF36e75VmFAc5SEC9fzEtw5+vAn/UeCbwBoA/Qij9zCIhq814EtoShOYW1dOthaYM+Cdwg9NYMiDRAOwCasPexVDCm9L4JBKX8+F8+CTZoBVeDsfClRFU7qA94G5g6Tt+m37XwL5sPiDhaMQ6FQLjAsC9wKD7h9wTqQVcBth6e6x+I1m9LALKC+ATvEYIEg0gfZR4MmFbogLoCCaxDSGQSSnMSikVAFcSORSJm8m8nYmHyj0I418qFKP9S8vFh25WIhX2w8uV+r1/oMGg9rixJss/U2TBW2euGnzTKTNq0URNorRRtOkNpr0Vvey2X4DhjHWbMvztHPd7tdJ7T7EQdAGDurIQx+66GMfffD8wehLH76/Hv//AJLWpkq0aQz+AAAAAElFTkSuQmCC";
262
- var logo_cbtc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAATlBMVEX////jcS/eXCrpkDfhaC3kezLnhTTfYSvwqj7upD3tnjvxsT/dVynbVCjsmDj9/PfytUHxrj7tt4rwxZ7lkGDtr2Dz1brpo2v58OT35NHn8bXSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC2UlEQVR42rWWi5ajIAyGQxFs7VQ6oALv/6LLRS4Bes7sOvuDlEvyGSE6A++Lgufz+X5ivZup99vXMocW4XlR1wHfFwX3i3KA70v1FyJ43P+xxh94/Fj34SyUpftns/vn4V9E8PgUweLK2S6x7zu9kkuyjz3wK3E9XKfrPlAGVcxlgeG9dgWiEah9GNcIsEqzG2jkptQ6BKxV8XVZHwakBFG7Cz9jHsGiNL7C6gaZ4Ou6KuewWxyA9TGpsF5drsLaaKG7v/exY4DbFY9dO3WAlR4h+v2o/Y9AhYMOABSVle4p5moTRMJJ2thToK7xNV1renipCkClPbXJL1cog/gj87lpU3fPeBQNKk5AsRbT3VbUwZilcWgAXJXzF9rGgdVlDg4+BsRpruv0ObQHCND1gYgdE4DTUihHpqBD6ErjlAq3ywUBuMbpe3BlreIHTmvpDIP1CfC9cLm2zV/uo+IWAwytfNwjZFGG3yAfQdDRTCtWnHgF4Jto3uDtnG/ebbGNAUwrJElzbBKv6A8RaImkf7LCgfFcdPMIloaHZe3eCu3mk1cNIKreLRF2y5uqdhMJZ9kJXD+LGpwHNk53x+jdk8A3CUhkk0hMHockbSKR6HNGwJAsTuUAlBoBLPbAAKJRAC4x3E6IDX3dNOkAJFXXVOF6R5FAhRr9sw+ULvGlysbyFmpVZaG3rHyAIPmjzImcN8Ru5ZM2MewBwatqmCl/inI0Mh2PYSQbR/MmAkImXe4KXTR6au07ACFxz7f66whqi9TeugdMYR/DERYAhKMU2zQATE0hk4L27CMQDr/aFJhOkVCDuPHZ18hlpeHINJpnQKVZGmZbgGVGzp0pGQPYJvt/ceTGBrZDgNM20NjyA2C+zb3GgHkoz+jLSB8AP9d/BNyqdrglJ+B2u82pRs31z9xNzdXlBLeLug74uqjfALxeofcK18vXVxm90tJXGMS12IT5F7wu6jLgDxzHd9wqQIUtAAAAAElFTkSuQmCC";
263
- var logo_citrea = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAATlBMVEX////jcS/eXCrpkDfhaC3kezLnhTTfYSvwqj7upD3tnjvxsT/dVynbVCjsmDj9/PfytUHxrj7tt4rwxZ7lkGDtr2Dz1brpo2v58OT35NHn8bXSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAC2UlEQVR42rWWi5ajIAyGQxFs7VQ6oALv/6LLRS4Bes7sOvuDlEvyGSE6A++Lgufz+X5ivZup99vXMocW4XlR1wHfFwX3i3KA70v1FyJ43P+xxh94/Fj34SyUpftns/vn4V9E8PgUweLK2S6x7zu9kkuyjz3wK3E9XKfrPlAGVcxlgeG9dgWiEah9GNcIsEqzG2jkptQ6BKxV8XVZHwakBFG7Cz9jHsGiNL7C6gaZ4Ou6KuewWxyA9TGpsF5drsLaaKG7v/exY4DbFY9dO3WAlR4h+v2o/Y9AhYMOABSVle4p5moTRMJJ2thToK7xNV1renipCkClPbXJL1cog/gj87lpU3fPeBQNKk5AsRbT3VbUwZilcWgAXJXzF9rGgdVlDg4+BsRpruv0ObQHCND1gYgdE4DTUihHpqBD6ErjlAq3ywUBuMbpe3BlreIHTmvpDIP1CfC9cLm2zV/uo+IWAwytfNwjZFGG3yAfQdDRTCtWnHgF4Jto3uDtnG/ebbGNAUwrJElzbBKv6A8RaImkf7LCgfFcdPMIloaHZe3eCu3mk1cNIKreLRF2y5uqdhMJZ9kJXD+LGpwHNk53x+jdk8A3CUhkk0hMHockbSKR6HNGwJAsTuUAlBoBLPbAAKJRAC4x3E6IDX3dNOkAJFXXVOF6R5FAhRr9sw+ULvGlysbyFmpVZaG3rHyAIPmjzImcN8Ru5ZM2MewBwatqmCl/inI0Mh2PYSQbR/MmAkImXe4KXTR6au07ACFxz7f66whqi9TeugdMYR/DERYAhKMU2zQATE0hk4L27CMQDr/aFJhOkVCDuPHZ18hlpeHINJpnQKVZGmZbgGVGzp0pGQPYJvt/ceTGBrZDgNM20NjyA2C+zb3GgHkoz+jLSB8AP9d/BNyqdrglJ+B2u82pRs31z9xNzdXlBLeLug74uqjfALxeofcK18vXVxm90tJXGMS12IT5F7wu6jLgDxzHd9wqQIUtAAAAAElFTkSuQmCC";
264
- var logo_eth = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAATlBMVEVMaXFIo/VMrO1MqvNKpvNJpfNIpPRGoPRRoe5Io/RHoPT////8/v+k0fpLqv9KovVKpfw8m/R4uvdirva02fvq9P6Oxfna7P32+v/F4fwkLp0eAAAACnRSTlMA6BMrVn2o/APPAqKYHQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAuJJREFUeNqtl+vWqiAQhj3kAVAhwMz7v9E9QIbJi/attj+slc3rwzDMoSiSq+/dvb41LWNl15WMtc2tjk+uLvpTXzesm6ZJKcm5VIq+dqype//wyrwvqoapScnOX5yHT0k/saa6gvDm5aSC6f5yv6ipvJCgR7dykkfjKCKn8nayjr6oW/d2nr0cRVvnFHr3+jPzIOEgemzfkOeOBlImElI1SKEvWvB6qbUEEG2qAO3l/TGOj7v8QoH4J7D6+zLa5Y4YDqvw9in/XYtxFPpagfyvOAJYncCaCtCf1cdeVKVK7R2AExgMUlBl9elADgRWLwAR+M6RtABsr8XgCSACKbwX0TOVAQgCwkIBxfpzADNsAoTATxByAJbgwxJOEc4ANgLxPEHIboEVcQkZhLARdcdRDJiniASEgAh453Jtkwd4C9BnbicLvALuASJBBoHWkIviYPcWwAg+nmuJjmEA2BGIWSEnyBpu4gawE8ggkBOgD9UsjgRihl5skA/fAHuBQTxAYiEvMrSEF8AHAULoJlakB4FS6Wa0F0AIdByAQAQ4CKQIUGAH8LkEgIAJ5IIFhFggwcGJe4CDQIrgnJhu4+JSCFrCkCC4bUwCSepV4F0Q67FQukBKQ1lrvYhAEQ8T3RZ6AEK5lsd8YubVeIl9PiBzs84GHKb0OFM2HKx5zCImVTE/tE3rQyhPiRfdPojBapJ4EXhzAcLAJRRwHEM+e1o9zk5gHp05SqwhpaGkGmKJJOw40u3pvLBInFRRWg8ZyUsYY19fDQBofV24oYzgwzE6MZMNQm1DpS1J66CybNU1U9tcRMfKtJwV1wxCcEMgmE0eIIfg+4vNBxoWhdhgwOoUUqsnwBl93yvC8uTc8OqR+HmTlWnzJB0rH4mKy6s279dGM9fqUjSMdvzGPtesw279L+16buZo8cCABg5gnxk4fh95nEL1zdBVnY1tv419cfDkaPDk14Pn76Pvfxi+/zz+/wNRN43Lkt3u4wAAAABJRU5ErkJggg==";
265
- var logo_pharos = "data:image/jpeg;base64,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";
266
- var logo_starknet = "data:image/png;base64,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";
267
- var logo_usdc = "data:image/png;base64,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";
268
- var logo_usdt = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTExIiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTExIDkwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTI0LjQ4MjUgMC44NjIzMDVIODguMDQ5NkM4OS41NjYzIDAuODYyMzA1IDkwLjk2NzUgMS42NDgyNyA5MS43MjM5IDIuOTIzMzhMMTEwLjI0NCAzNC4xNDE5QzExMS4yMDQgMzUuNzYwOSAxMTAuOTE5IDM3LjgwNDMgMTA5LjU0OSAzOS4xMTcxTDU4LjU3MjkgODcuOTcwM0M1Ni45MjE2IDg5LjU1MjggNTQuMjY1MiA4OS41NTI4IDUyLjYxMzkgODcuOTcwM0wxLjcwNjk5IDM5LjE4MzFDMC4zMDUyNjIgMzcuODM5OCAwLjA0Mjc4MTIgMzUuNzM2NyAxLjA3MzU0IDM0LjEwNzdMMjAuODY5NiAyLjgyMzIyQzIxLjY0MDYgMS42MDQ4MyAyMy4wMDg3IDAuODYyMzA1IDI0LjQ4MjUgMC44NjIzMDVaTTc5Ljg0MTkgMTQuODAwM1YyMy41NTk3SDYxLjczNDNWMjkuNjMyOUM3NC40NTE4IDMwLjI4MTkgODMuOTkzNCAzMi45NDc1IDg0LjA2NDIgMzYuMTQyNUw4NC4wNjM4IDQyLjgwM0M4My45OTMgNDUuOTk4IDc0LjQ1MTggNDguNjYzNSA2MS43MzQzIDQ5LjMxMjVWNjQuMjE2OEg0OS43MTA1VjQ5LjMxMjVDMzYuOTkyOSA0OC42NjM1IDI3LjQ1MTMgNDUuOTk4IDI3LjM4MDUgNDIuODAzTDI3LjM4MSAzNi4xNDI1QzI3LjQ1MTcgMzIuOTQ3NSAzNi45OTI5IDMwLjI4MTkgNDkuNzEwNSAyOS42MzI5VjIzLjU1OTdIMzEuNjAyOFYxNC44MDAzSDc5Ljg0MTlaTTU1LjcyMjQgNDQuNzM2N0M2OS4yOTQzIDQ0LjczNjcgODAuNjM4MiA0Mi40ODI3IDgzLjQxNDMgMzkuNDcyN0M4MS4wNjAxIDM2LjkyMDIgNzIuNTQ0OCAzNC45MTE0IDYxLjczNDMgMzQuMzU5N1Y0MC43MTgzQzU5Ljc5NjYgNDAuODE3MiA1Ny43ODUyIDQwLjg2OTMgNTUuNzIyNCA0MC44NjkzQzUzLjY1OTUgNDAuODY5MyA1MS42NDgxIDQwLjgxNzIgNDkuNzEwNSA0MC43MTgzVjM0LjM1OTdDMzguODk5OSAzNC45MTE0IDMwLjM4NDYgMzYuOTIwMiAyOC4wMzA0IDM5LjQ3MjdDMzAuODA2NiA0Mi40ODI3IDQyLjE1MDQgNDQuNzM2NyA1NS43MjI0IDQ0LjczNjdaIiBmaWxsPSIjMDA5MzkzIi8+Cjwvc3ZnPgo=";
269
- var logo_wbtc = "data:image/png;base64,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";
270
-
271
- // src/tokens/list.ts
272
- var TOKENS = [
273
- {
274
- symbol: "USDC",
275
- name: "USD Coin",
276
- equivalenceGroup: "USDC",
277
- logo: logo_usdc,
278
- deployments: [
279
- {
280
- chainId: 1,
281
- address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
282
- decimals: 6,
283
- network: "mainnet",
284
- swapContracts: []
285
- },
286
- {
287
- chainId: 8453,
288
- address: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
289
- decimals: 6,
290
- network: "mainnet",
291
- swapContracts: []
292
- },
293
- {
294
- chainId: 42161,
295
- address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
296
- decimals: 6,
297
- network: "mainnet",
298
- swapContracts: []
299
- },
300
- {
301
- chainId: 4114,
302
- address: "0xe045e6c36cf77faa2cfb54466d71a3aef7bbe839",
303
- decimals: 6,
304
- network: "mainnet",
305
- swapContracts: []
306
- },
307
- {
308
- chainId: 23448594291968336,
309
- address: "0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8",
310
- decimals: 6,
311
- network: "mainnet",
312
- swapContracts: []
313
- },
314
- {
315
- chainId: 11155111,
316
- address: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
317
- decimals: 6,
318
- network: "testnet",
319
- swapContracts: []
320
- },
321
- {
322
- chainId: 421614,
323
- address: "0xbeb51deb2018b67b35d5695fd15bb30d452c7868",
324
- decimals: 18,
325
- network: "testnet",
326
- swapContracts: []
327
- },
328
- {
329
- chainId: 84532,
330
- address: "0xf370dc3765f81ac9dd2febd59fb4e710330b0bc8",
331
- decimals: 18,
332
- network: "testnet",
333
- swapContracts: []
334
- }
335
- ]
336
- },
337
- {
338
- symbol: "ctUSD",
339
- name: "Citrea USD",
340
- equivalenceGroup: "USDC",
341
- logo: logo_usdc,
342
- deployments: [
343
- {
344
- chainId: 4114,
345
- address: "0x8d82c4e3c936c7b5724a382a9c5a4e6eb7ab6d5d",
346
- decimals: 6,
347
- network: "mainnet",
348
- swapContracts: []
349
- }
350
- ]
351
- },
352
- {
353
- symbol: "sUSD",
354
- name: "Spice USD",
355
- equivalenceGroup: "SUSD",
356
- logo: logo_usdc,
357
- deployments: [
358
- {
359
- chainId: 11155111,
360
- address: "0x9bf2d44887be65c4f6337b20814ec79197a092aa",
361
- decimals: 18,
362
- network: "testnet",
363
- swapContracts: []
364
- },
365
- {
366
- chainId: 421614,
367
- address: "0xf370dc3765f81ac9dd2febd59fb4e710330b0bc8",
368
- decimals: 18,
369
- network: "testnet",
370
- swapContracts: []
371
- },
372
- {
373
- chainId: 84532,
374
- address: "0xbeb51deb2018b67b35d5695fd15bb30d452c7868",
375
- decimals: 18,
376
- network: "testnet",
377
- swapContracts: []
378
- }
379
- ]
380
- },
381
- {
382
- symbol: "USDT",
383
- name: "Tether USD",
384
- equivalenceGroup: "USDC",
385
- logo: logo_usdt,
386
- deployments: [
387
- {
388
- chainId: 1,
389
- address: "0xdAC17F958D2ee523a2206206994597C13D831ec7",
390
- decimals: 6,
391
- network: "mainnet",
392
- swapContracts: []
393
- },
394
- {
395
- chainId: 8453,
396
- address: "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2",
397
- decimals: 6,
398
- network: "mainnet",
399
- swapContracts: []
400
- },
401
- {
402
- chainId: 42161,
403
- address: "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
404
- decimals: 6,
405
- network: "mainnet",
406
- swapContracts: []
407
- }
408
- ]
409
- },
410
- {
411
- symbol: "USD",
412
- name: "USD Stable Coin",
413
- equivalenceGroup: "SUSD",
414
- logo: logo_usdc,
415
- deployments: [
416
- {
417
- chainId: 5115,
418
- address: "0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1",
419
- decimals: 18,
420
- network: "testnet",
421
- swapContracts: []
422
- },
423
- {
424
- chainId: 688689,
425
- address: "0x16b90aeb3de140dde993da1d5734bca28574702b",
426
- decimals: 6,
427
- network: "testnet",
428
- swapContracts: []
429
- }
430
- ]
431
- },
432
- {
433
- symbol: "WBTC",
434
- name: "Wrapped Bitcoin",
435
- equivalenceGroup: "WBTC",
436
- logo: logo_wbtc,
437
- deployments: [
438
- {
439
- chainId: 1,
440
- address: "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
441
- decimals: 8,
442
- network: "mainnet",
443
- swapContracts: []
444
- },
445
- {
446
- chainId: 42161,
447
- address: "0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f",
448
- decimals: 8,
449
- network: "mainnet",
450
- swapContracts: []
451
- },
452
- {
453
- chainId: 11155111,
454
- address: "0x4fc381b6cc6df8cf1c1bd46d184475be5b7a3c62",
455
- decimals: 8,
456
- network: "testnet",
457
- swapContracts: []
458
- },
459
- {
460
- chainId: 421614,
461
- address: "0xba4c54d4cf10c766c22a08f783998cfab237f7c9",
462
- decimals: 8,
463
- network: "testnet",
464
- swapContracts: []
465
- },
466
- {
467
- chainId: 84532,
468
- address: "0x16dd3a855433059be478facb416d9afed6ca96ec",
469
- decimals: 8,
470
- network: "testnet",
471
- swapContracts: []
472
- }
473
- ]
474
- },
475
- {
476
- symbol: "ETH",
477
- name: "Ether",
478
- equivalenceGroup: "ETH",
479
- logo: logo_eth,
480
- deployments: [
481
- {
482
- chainId: 1,
483
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
484
- decimals: 18,
485
- network: "mainnet",
486
- swapContracts: []
487
- },
488
- {
489
- chainId: 8453,
490
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
491
- decimals: 18,
492
- network: "mainnet",
493
- swapContracts: []
494
- },
495
- {
496
- chainId: 42161,
497
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
498
- decimals: 18,
499
- network: "mainnet",
500
- swapContracts: []
501
- },
502
- {
503
- chainId: 23448594291968336,
504
- address: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",
505
- decimals: 18,
506
- network: "mainnet",
507
- swapContracts: []
508
- },
509
- {
510
- chainId: 11155111,
511
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
512
- decimals: 18,
513
- network: "testnet",
514
- swapContracts: []
515
- },
516
- {
517
- chainId: 421614,
518
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
519
- decimals: 18,
520
- network: "testnet",
521
- swapContracts: []
522
- },
523
- {
524
- chainId: 84532,
525
- address: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
526
- decimals: 18,
527
- network: "testnet",
528
- swapContracts: []
529
- }
530
- ]
531
- },
532
- {
533
- symbol: "cbETH",
534
- name: "Coinbase Wrapped Staked ETH",
535
- equivalenceGroup: "ETH",
536
- logo: logo_eth,
537
- deployments: [
538
- {
539
- chainId: 8453,
540
- address: "0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22",
541
- decimals: 18,
542
- network: "mainnet",
543
- swapContracts: []
544
- }
545
- ]
546
- },
547
- {
548
- symbol: "cBTC",
549
- name: "Citrea Bitcoin",
550
- equivalenceGroup: "CBTC",
551
- logo: logo_cbtc,
552
- deployments: [
553
- {
554
- chainId: 4114,
555
- address: "0x3100000000000000000000000000000000000002",
556
- decimals: 18,
557
- network: "mainnet",
558
- swapContracts: []
559
- }
560
- ]
561
- },
562
- {
563
- symbol: "WCBTC",
564
- name: "Wrapped Citrea BTC",
565
- equivalenceGroup: "CBTC",
566
- logo: logo_cbtc,
567
- deployments: [
568
- {
569
- chainId: 4114,
570
- address: "0x3100000000000000000000000000000000000006",
571
- decimals: 18,
572
- network: "mainnet",
573
- swapContracts: []
574
- },
575
- {
576
- chainId: 5115,
577
- address: "0x8d0c9d1c17ae5e40fff9be350f57840e9e66cd93",
578
- decimals: 18,
579
- network: "testnet",
580
- swapContracts: []
581
- }
582
- ]
583
- },
584
- {
585
- symbol: "eCBTC",
586
- name: "CBTC Vault",
587
- equivalenceGroup: "CBTC",
588
- logo: logo_cbtc,
589
- deployments: [
590
- {
591
- chainId: 5115,
592
- address: "0x2876a1fb400c238b0a9e4edd2e7e03d3cf9b53c2",
593
- decimals: 18,
594
- network: "testnet",
595
- swapContracts: []
596
- }
597
- ]
598
- },
599
- {
600
- symbol: "ARB",
601
- name: "Arbitrum",
602
- equivalenceGroup: "ARB",
603
- logo: logo_arb,
604
- deployments: [
605
- {
606
- chainId: 42161,
607
- address: "0x912ce59144191c1204e64559fe8253a0e49e6548",
608
- decimals: 18,
609
- network: "mainnet",
610
- swapContracts: []
611
- }
612
- ]
613
- }
614
- ];
615
-
616
- // src/tokens/index.ts
617
- var _addressIndex = /* @__PURE__ */ new Map();
618
- var _deploymentIndex = /* @__PURE__ */ new Map();
619
- var _chainIndex = /* @__PURE__ */ new Map();
620
- var _equivalenceIndex = /* @__PURE__ */ new Map();
621
- var NATIVE_SENTINEL = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
622
- var NATIVE_ALIASES = [
623
- "0x0000000000000000000000000000000000000000",
624
- "0x0"
625
- ];
626
- function _buildIndexes() {
627
- for (const token of TOKENS) {
628
- const groupAddrs = _equivalenceIndex.get(token.equivalenceGroup) ?? [];
629
- for (const d of token.deployments) {
630
- const addr = d.address.toLowerCase();
631
- const key = `${d.chainId}:${addr}`;
632
- _addressIndex.set(addr, token);
633
- _deploymentIndex.set(key, { token, deployment: d });
634
- const chainEntries = _chainIndex.get(d.chainId) ?? [];
635
- chainEntries.push({ token, deployment: d });
636
- _chainIndex.set(d.chainId, chainEntries);
637
- if (!groupAddrs.includes(addr)) {
638
- groupAddrs.push(addr);
639
- }
640
- if (addr === NATIVE_SENTINEL) {
641
- for (const alias of NATIVE_ALIASES) {
642
- _addressIndex.set(alias, token);
643
- _deploymentIndex.set(`${d.chainId}:${alias}`, { token, deployment: d });
644
- if (!groupAddrs.includes(alias)) {
645
- groupAddrs.push(alias);
646
- }
647
- }
648
- }
649
- }
650
- _equivalenceIndex.set(token.equivalenceGroup, groupAddrs);
651
- }
652
- }
653
- _buildIndexes();
654
- function _resolve(token, deployment) {
655
- return {
656
- symbol: token.symbol,
657
- name: token.name,
658
- equivalenceGroup: token.equivalenceGroup,
659
- logo: token.logo,
660
- address: deployment.address,
661
- chainId: deployment.chainId,
662
- decimals: deployment.decimals,
663
- network: deployment.network,
664
- swapContracts: deployment.swapContracts
665
- };
666
- }
667
- function getTokensForChain(chainId) {
668
- const entries = _chainIndex.get(chainId);
669
- if (!entries) return [];
670
- return entries.map(({ token, deployment }) => _resolve(token, deployment));
671
- }
672
- function getTokenByAddress(address, chainId) {
673
- const entry = _deploymentIndex.get(`${chainId}:${address.toLowerCase()}`);
674
- if (!entry) return void 0;
675
- return _resolve(entry.token, entry.deployment);
676
- }
677
- function getTokenBySymbol(symbol, chainId) {
678
- return getTokensForChain(chainId).find(
679
- (token) => token.symbol.toUpperCase() === symbol.toUpperCase()
680
- );
681
- }
682
- function requireTokenBySymbol(symbol, chainId) {
683
- const token = getTokenBySymbol(symbol, chainId);
684
- if (token) return token;
685
- throw new Error(
686
- `Token "${symbol}" not found on chain ${chainId} in the token registry.`
687
- );
688
- }
689
- function getTokenDefinition(address) {
690
- return _addressIndex.get(address.toLowerCase());
691
- }
692
- function getDeployment(address, chainId) {
693
- return _deploymentIndex.get(`${chainId}:${address.toLowerCase()}`)?.deployment;
694
- }
695
- function getEquivalentAddresses(tokenAddress) {
696
- const token = _addressIndex.get(tokenAddress.toLowerCase());
697
- if (!token) return [tokenAddress.toLowerCase()];
698
- return _equivalenceIndex.get(token.equivalenceGroup) ?? [tokenAddress.toLowerCase()];
699
- }
700
- function getEquivalenceGroup(tokenAddress) {
701
- return _addressIndex.get(tokenAddress.toLowerCase())?.equivalenceGroup;
702
- }
703
- function areEquivalent(a, b) {
704
- const tokenA = _addressIndex.get(a.toLowerCase());
705
- const tokenB = _addressIndex.get(b.toLowerCase());
706
- if (!tokenA || !tokenB) return false;
707
- return tokenA.equivalenceGroup === tokenB.equivalenceGroup;
708
- }
709
- var USD_GROUPS = /* @__PURE__ */ new Set(["USDC", "SUSD"]);
710
- var BTC_GROUPS = /* @__PURE__ */ new Set(["WBTC", "CBTC"]);
711
- function isUsdDenominated(address) {
712
- const group = getEquivalenceGroup(address);
713
- return group !== void 0 && USD_GROUPS.has(group);
714
- }
715
- function isBtcDenominated(address) {
716
- const group = getEquivalenceGroup(address);
717
- return group !== void 0 && BTC_GROUPS.has(group);
718
- }
719
- function resolveTokenRef(ref) {
720
- const [symbol, chainId] = ref;
721
- const match = getTokenBySymbol(symbol, chainId);
722
- if (!match) {
723
- throw new Error(
724
- `Token "${symbol}" not found on chain ${chainId} in the token registry.`
725
- );
726
- }
727
- return {
728
- address: match.address,
729
- symbol: match.symbol,
730
- decimals: match.decimals,
731
- chainId
732
- };
733
- }
734
-
735
- // src/chains/list.ts
736
- var CHAINS = {
737
- 1: {
738
- id: 1,
739
- name: "Ethereum",
740
- displayName: "Ethereum",
741
- network: "mainnet",
742
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
743
- delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
744
- blockExplorer: "https://etherscan.io",
745
- rpcUrl: "https://eth.llamarpc.com",
746
- logo: logo_eth,
747
- moralisId: "0x1"
748
- },
749
- 8453: {
750
- id: 8453,
751
- name: "Base Mainnet",
752
- displayName: "Base",
753
- network: "mainnet",
754
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
755
- delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
756
- blockExplorer: "https://basescan.org",
757
- rpcUrl: "https://mainnet.base.org",
758
- logo: logo_base,
759
- moralisId: "0x2105"
760
- },
761
- 42161: {
762
- id: 42161,
763
- name: "Arbitrum One",
764
- displayName: "Arbitrum",
765
- network: "mainnet",
766
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
767
- delegateContract: "0x262E1A689555dA5209113A056d0d164EF8355395",
768
- blockExplorer: "https://arbiscan.io",
769
- rpcUrl: "https://arb1.arbitrum.io/rpc",
770
- logo: logo_arb,
771
- moralisId: "0xa4b1"
772
- },
773
- 4114: {
774
- id: 4114,
775
- name: "Citrea Mainnet",
776
- displayName: "Citrea",
777
- network: "mainnet",
778
- nativeCurrency: { name: "Citrea Bitcoin", symbol: "cBTC", decimals: 18 },
779
- delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
780
- blockExplorer: "https://explorer.mainnet.citrea.xyz",
781
- rpcUrl: "https://rpc.mainnet.citrea.xyz",
782
- logo: logo_citrea,
783
- wrappedNativeTokenAddress: "0x3100000000000000000000000000000000000006"
784
- },
785
- 11155111: {
786
- id: 11155111,
787
- name: "Ethereum Sepolia",
788
- displayName: "Sepolia",
789
- network: "testnet",
790
- nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
791
- delegateContract: "0xDF7d39BB544778F467D10b08B1F5C170fd7fB480",
792
- blockExplorer: "https://sepolia.etherscan.io",
793
- rpcUrl: "https://rpc.sepolia.org",
794
- logo: logo_eth,
795
- moralisId: "sepolia"
796
- },
797
- 421614: {
798
- id: 421614,
799
- name: "Arbitrum Sepolia",
800
- displayName: "Arbitrum Sepolia",
801
- network: "testnet",
802
- nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
803
- delegateContract: "0x151755d1bdFeB6082D141EF86e4291b2e902b43F",
804
- blockExplorer: "https://sepolia.arbiscan.io",
805
- rpcUrl: "https://sepolia-rollup.arbitrum.io/rpc",
806
- logo: logo_arb
807
- },
808
- 84532: {
809
- id: 84532,
810
- name: "Base Sepolia",
811
- displayName: "Base Sepolia",
812
- network: "testnet",
813
- nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
814
- delegateContract: "0xD4C4A222cdd42f5c3219249a083a5aBf1420E9D8",
815
- blockExplorer: "https://sepolia.basescan.org",
816
- rpcUrl: "https://sepolia.base.org",
817
- logo: logo_base,
818
- moralisId: "0x14a34"
819
- },
820
- 5115: {
821
- id: 5115,
822
- name: "Citrea Testnet",
823
- displayName: "Citrea Testnet",
824
- network: "testnet",
825
- nativeCurrency: { name: "cBTC", symbol: "cBTC", decimals: 18 },
826
- delegateContract: "0x347056dd1CB95ae850192e3fC6FA995537A3A091",
827
- blockExplorer: "https://explorer.testnet.citrea.xyz",
828
- rpcUrl: "https://rpc.testnet.citrea.xyz",
829
- logo: logo_citrea,
830
- wrappedNativeTokenAddress: "0x8d0c9d1c17ae5e40fff9be350f57840e9e66cd93"
831
- },
832
- 123420001114: {
833
- id: 123420001114,
834
- name: "Base Camp Testnet",
835
- displayName: "Base Camp",
836
- network: "testnet",
837
- nativeCurrency: { name: "Ethereum", symbol: "ETH", decimals: 18 },
838
- delegateContract: "0xA15BFeD4eC0BEdd36b00b9856aFa1C6BCFE61574",
839
- blockExplorer: "https://basecamp.gelato.network",
840
- rpcUrl: "https://rpc-campnetwork.xyz",
841
- logo: logo_base
842
- },
843
- 688688: {
844
- id: 688688,
845
- name: "Pharos Testnet",
846
- displayName: "Pharos",
847
- network: "testnet",
848
- nativeCurrency: { name: "PHRS", symbol: "PHRS", decimals: 18 },
849
- delegateContract: "0xAd45b774C4c632540d36f2105889C0E6aC28b504",
850
- blockExplorer: "https://testnet.pharosscan.xyz",
851
- rpcUrl: "https://testnet.dplabs-internal.com",
852
- logo: logo_pharos
853
- },
854
- 688689: {
855
- id: 688689,
856
- name: "Pharos Atlantic",
857
- displayName: "Pharos Atlantic",
858
- network: "testnet",
859
- nativeCurrency: { name: "PHRS", symbol: "PHRS", decimals: 18 },
860
- delegateContract: "0xAd45b774C4c632540d36f2105889C0E6aC28b504",
861
- blockExplorer: "https://atlantic.pharosscan.xyz",
862
- rpcUrl: "https://atlantic.dplabs-internal.com",
863
- logo: logo_pharos
864
- },
865
- 10143: {
866
- id: 10143,
867
- name: "Monad Testnet",
868
- displayName: "Monad",
869
- network: "testnet",
870
- nativeCurrency: { name: "MON", symbol: "MON", decimals: 18 },
871
- delegateContract: "0xEc4087643A1c5f532Fde98bCa029cebA4E47b053",
872
- blockExplorer: "https://testnet.monadexplorer.com",
873
- rpcUrl: "https://testnet-rpc.monad.xyz",
874
- logo: logo_eth
875
- },
876
- 97: {
877
- id: 97,
878
- name: "BSC Testnet",
879
- displayName: "BSC Testnet",
880
- network: "testnet",
881
- nativeCurrency: { name: "tBNB", symbol: "tBNB", decimals: 18 },
882
- delegateContract: "0xD4C4A222cdd42f5c3219249a083a5aBf1420E9D8",
883
- blockExplorer: "https://testnet.bscscan.com",
884
- rpcUrl: "https://bsc-testnet.public.blastapi.io",
885
- logo: logo_eth
886
- },
887
- 43113: {
888
- id: 43113,
889
- name: "Avalanche Fuji",
890
- displayName: "Avalanche Fuji",
891
- network: "testnet",
892
- nativeCurrency: { name: "AVAX", symbol: "AVAX", decimals: 18 },
893
- delegateContract: "0xD4C4A222cdd42f5c3219249a083a5aBf1420E9D8",
894
- blockExplorer: "https://testnet.snowtrace.io",
895
- rpcUrl: "https://avalanche-fuji.drpc.org",
896
- logo: logo_eth
897
- },
898
- 80002: {
899
- id: 80002,
900
- name: "Polygon Amoy",
901
- displayName: "Polygon Amoy",
902
- network: "testnet",
903
- nativeCurrency: { name: "POL", symbol: "POL", decimals: 18 },
904
- delegateContract: "0xD4C4A222cdd42f5c3219249a083a5aBf1420E9D8",
905
- blockExplorer: "https://amoy.polygonscan.com",
906
- rpcUrl: "https://polygon-amoy-public.nodies.app",
907
- logo: logo_eth
908
- },
909
- 11155420: {
910
- id: 11155420,
911
- name: "Optimism Sepolia",
912
- displayName: "Optimism Sepolia",
913
- network: "testnet",
914
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
915
- delegateContract: "0xD4C4A222cdd42f5c3219249a083a5aBf1420E9D8",
916
- blockExplorer: "https://sepolia-optimism.etherscan.io",
917
- rpcUrl: "https://sepolia.optimism.io",
918
- logo: logo_eth
919
- },
920
- 23448594291968336: {
921
- id: 23448594291968336,
922
- chainIdHex: "0x534e5f4d41494e",
923
- name: "StarkNet Mainnet",
924
- displayName: "StarkNet",
925
- network: "mainnet",
926
- chainType: "starknet",
927
- nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
928
- blockExplorer: "https://voyager.online",
929
- rpcUrl: "https://starknet-mainnet.public.blastapi.io",
930
- logo: logo_starknet
931
- }
932
- };
933
-
934
- // src/chains/index.ts
935
- var import_viem2 = require("viem");
936
- function getChainMeta(chainId) {
937
- return CHAINS[chainId];
938
- }
939
- function getChainsByNetwork(network) {
940
- return Object.values(CHAINS).filter(
941
- (c) => c.network === network && c.chainType !== "starknet"
942
- );
943
- }
944
- function getChainIdsByNetwork(network) {
945
- return getChainsByNetwork(network).map((c) => c.id);
946
- }
947
- function getMainnetChains() {
948
- return getChainsByNetwork("mainnet");
949
- }
950
- function getTestnetChains() {
951
- return getChainsByNetwork("testnet");
952
- }
953
- function getAllChainsByNetwork(network) {
954
- return Object.values(CHAINS).filter((c) => c.network === network);
955
- }
956
- function getDelegateContract(chainId) {
957
- return CHAINS[chainId]?.delegateContract;
958
- }
959
- function toViemChain(meta) {
960
- if (meta.chainType === "starknet") return void 0;
961
- return (0, import_viem2.defineChain)({
962
- id: meta.id,
963
- name: meta.name,
964
- nativeCurrency: meta.nativeCurrency,
965
- rpcUrls: {
966
- default: {
967
- http: [meta.rpcUrl]
968
- },
969
- public: {
970
- http: [meta.rpcUrl]
971
- }
972
- },
973
- ...meta.blockExplorer ? {
974
- blockExplorers: {
975
- default: {
976
- name: meta.displayName || meta.name,
977
- url: meta.blockExplorer
978
- }
979
- }
980
- } : {}
981
- });
982
- }
983
- var VIEM_CHAINS = Object.fromEntries(
984
- Object.values(CHAINS).map((meta) => [meta.id, toViemChain(meta)]).filter((entry) => entry[1] !== void 0)
985
- );
986
- function getViemChain(chainId) {
987
- return VIEM_CHAINS[chainId];
988
- }
989
- function requireViemChain(chainId) {
990
- const chain = getViemChain(chainId);
991
- if (chain) return chain;
992
- throw new Error(`Viem chain not found for chain ${chainId}.`);
993
- }
994
- function isStarknetChain(chainId) {
995
- return getChainMeta(chainId)?.chainType === "starknet";
996
- }
997
- var STARKNET_MAINNET_CHAIN_ID = 23448594291968336;
998
-
999
- // src/utils.ts
1000
- var NATIVE_TOKEN_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
1001
- var ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
1002
- var ESCROW_ADDRESS = "0xeee2b52e7CFe6e2168341a34cEB783b68FEdf1A2";
1003
- function isNativeToken(address) {
1004
- const lower = address.toLowerCase();
1005
- return lower === "0x0" || lower === "0x0000000000000000000000000000000000000000" || lower === "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
1006
- }
1007
- function normalizeNativeTokenAddress(address) {
1008
- if (isNativeToken(address)) {
1009
- return ZERO_ADDRESS;
1010
- }
1011
- return address;
1012
- }
1013
- function convertAmountBetweenDecimals(amount, fromDecimals, toDecimals) {
1014
- if (fromDecimals === toDecimals) return amount;
1015
- if (fromDecimals < toDecimals) {
1016
- return amount * BigInt(10) ** BigInt(toDecimals - fromDecimals);
1017
- }
1018
- return amount / BigInt(10) ** BigInt(fromDecimals - toDecimals);
1019
- }
1020
- function formatTokenAmount(amount, decimals, maxFractional = 6) {
1021
- const divisor = BigInt(10) ** BigInt(decimals);
1022
- const whole = amount / divisor;
1023
- const remainder = amount % divisor;
1024
- if (remainder === 0n) return whole.toString();
1025
- const fracStr = remainder.toString().padStart(decimals, "0").slice(0, maxFractional).replace(/0+$/, "");
1026
- if (!fracStr) return whole.toString();
1027
- return `${whole}.${fracStr}`;
1028
- }
1029
- function truncateAddress(address, startChars = 6, endChars = 4) {
1030
- if (address.length <= startChars + endChars) return address;
1031
- return `${address.slice(0, startChars)}...${address.slice(-endChars)}`;
1032
- }
1033
- async function withRetry(fn, maxRetries = 3, delayMs = 300) {
1034
- let lastErr;
1035
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
1036
- try {
1037
- return await fn();
1038
- } catch (err) {
1039
- lastErr = err;
1040
- if (attempt < maxRetries) {
1041
- await new Promise((r) => setTimeout(r, delayMs * 2 ** attempt));
1042
- }
1043
- }
1044
- }
1045
- throw lastErr;
1046
- }
1047
-
1048
- // src/abis/delegate.ts
1049
- var DELEGATE_ABI = [
1050
- {
1051
- type: "fallback",
1052
- stateMutability: "payable"
1053
- },
1054
- {
1055
- type: "receive",
1056
- stateMutability: "payable"
1057
- },
1058
- {
1059
- type: "function",
1060
- name: "execute",
1061
- inputs: [
1062
- {
1063
- name: "intent",
1064
- type: "tuple",
1065
- internalType: "struct Delegate.Intent",
1066
- components: [
1067
- { name: "signatureType", type: "string", internalType: "string" },
1068
- { name: "signature", type: "bytes", internalType: "bytes" },
1069
- { name: "nbf", type: "uint256", internalType: "uint256" },
1070
- { name: "exp", type: "uint256", internalType: "uint256" },
1071
- {
1072
- name: "chainBatches",
1073
- type: "tuple[]",
1074
- internalType: "struct Delegate.ChainBatch[]",
1075
- components: [
1076
- { name: "hash", type: "bytes32", internalType: "bytes32" },
1077
- { name: "chainId", type: "uint256", internalType: "uint256" },
1078
- {
1079
- name: "calls",
1080
- type: "tuple[]",
1081
- internalType: "struct Delegate.Call[]",
1082
- components: [
1083
- { name: "to", type: "address", internalType: "address" },
1084
- { name: "value", type: "uint256", internalType: "uint256" },
1085
- { name: "data", type: "bytes", internalType: "bytes" }
1086
- ]
1087
- }
1088
- ]
1089
- }
1090
- ]
1091
- }
1092
- ],
1093
- outputs: [],
1094
- stateMutability: "payable"
1095
- },
1096
- {
1097
- type: "function",
1098
- name: "selfExecute",
1099
- inputs: [
1100
- {
1101
- name: "calls",
1102
- type: "tuple[]",
1103
- internalType: "struct Delegate.Call[]",
1104
- components: [
1105
- { name: "to", type: "address", internalType: "address" },
1106
- { name: "value", type: "uint256", internalType: "uint256" },
1107
- { name: "data", type: "bytes", internalType: "bytes" }
1108
- ]
1109
- }
1110
- ],
1111
- outputs: [],
1112
- stateMutability: "payable"
1113
- },
1114
- {
1115
- type: "function",
1116
- name: "isChainBatchProcessed",
1117
- inputs: [
1118
- { name: "chainBatchHash", type: "bytes32", internalType: "bytes32" }
1119
- ],
1120
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
1121
- stateMutability: "view"
1122
- },
1123
- {
1124
- type: "function",
1125
- name: "normalizeIntentAndComputeHash",
1126
- inputs: [
1127
- {
1128
- name: "userIntent",
1129
- type: "tuple",
1130
- internalType: "struct Delegate.Intent",
1131
- components: [
1132
- { name: "signatureType", type: "string", internalType: "string" },
1133
- { name: "signature", type: "bytes", internalType: "bytes" },
1134
- { name: "nbf", type: "uint256", internalType: "uint256" },
1135
- { name: "exp", type: "uint256", internalType: "uint256" },
1136
- {
1137
- name: "chainBatches",
1138
- type: "tuple[]",
1139
- internalType: "struct Delegate.ChainBatch[]",
1140
- components: [
1141
- { name: "hash", type: "bytes32", internalType: "bytes32" },
1142
- { name: "chainId", type: "uint256", internalType: "uint256" },
1143
- {
1144
- name: "calls",
1145
- type: "tuple[]",
1146
- internalType: "struct Delegate.Call[]",
1147
- components: [
1148
- { name: "to", type: "address", internalType: "address" },
1149
- { name: "value", type: "uint256", internalType: "uint256" },
1150
- { name: "data", type: "bytes", internalType: "bytes" }
1151
- ]
1152
- }
1153
- ]
1154
- }
1155
- ]
1156
- }
1157
- ],
1158
- outputs: [
1159
- {
1160
- name: "intent",
1161
- type: "tuple",
1162
- internalType: "struct Delegate.Intent",
1163
- components: [
1164
- { name: "signatureType", type: "string", internalType: "string" },
1165
- { name: "signature", type: "bytes", internalType: "bytes" },
1166
- { name: "nbf", type: "uint256", internalType: "uint256" },
1167
- { name: "exp", type: "uint256", internalType: "uint256" },
1168
- {
1169
- name: "chainBatches",
1170
- type: "tuple[]",
1171
- internalType: "struct Delegate.ChainBatch[]",
1172
- components: [
1173
- { name: "hash", type: "bytes32", internalType: "bytes32" },
1174
- { name: "chainId", type: "uint256", internalType: "uint256" },
1175
- {
1176
- name: "calls",
1177
- type: "tuple[]",
1178
- internalType: "struct Delegate.Call[]",
1179
- components: [
1180
- { name: "to", type: "address", internalType: "address" },
1181
- { name: "value", type: "uint256", internalType: "uint256" },
1182
- { name: "data", type: "bytes", internalType: "bytes" }
1183
- ]
1184
- }
1185
- ]
1186
- }
1187
- ]
1188
- },
1189
- { name: "hash", type: "bytes32", internalType: "bytes32" }
1190
- ],
1191
- stateMutability: "pure"
1192
- },
1193
- {
1194
- type: "event",
1195
- name: "BatchExecuted",
1196
- inputs: [
1197
- { name: "block", type: "uint256", indexed: true, internalType: "uint256" },
1198
- {
1199
- name: "calls",
1200
- type: "tuple[]",
1201
- indexed: false,
1202
- internalType: "struct Delegate.Call[]",
1203
- components: [
1204
- { name: "to", type: "address", internalType: "address" },
1205
- { name: "value", type: "uint256", internalType: "uint256" },
1206
- { name: "data", type: "bytes", internalType: "bytes" }
1207
- ]
1208
- }
1209
- ],
1210
- anonymous: false
1211
- },
1212
- {
1213
- type: "event",
1214
- name: "CallExecuted",
1215
- inputs: [
1216
- { name: "executor", type: "address", indexed: true, internalType: "address" },
1217
- { name: "sender", type: "address", indexed: true, internalType: "address" },
1218
- { name: "to", type: "address", indexed: true, internalType: "address" },
1219
- { name: "value", type: "uint256", indexed: false, internalType: "uint256" },
1220
- { name: "data", type: "bytes", indexed: false, internalType: "bytes" },
1221
- { name: "returnData", type: "bytes", indexed: false, internalType: "bytes" }
1222
- ],
1223
- anonymous: false
1224
- },
1225
- {
1226
- type: "event",
1227
- name: "IntentSubmitted",
1228
- inputs: [
1229
- { name: "signature", type: "bytes", indexed: true, internalType: "bytes" }
1230
- ],
1231
- anonymous: false
1232
- },
1233
- {
1234
- type: "error",
1235
- name: "CallReverted",
1236
- inputs: [
1237
- { name: "account", type: "address", internalType: "address" },
1238
- { name: "to", type: "address", internalType: "address" },
1239
- { name: "value", type: "uint256", internalType: "uint256" },
1240
- { name: "data", type: "bytes", internalType: "bytes" },
1241
- { name: "errorMessage", type: "bytes", internalType: "bytes" }
1242
- ]
1243
- },
1244
- {
1245
- type: "error",
1246
- name: "DuplicateChainBatch",
1247
- inputs: [
1248
- { name: "intentSignature", type: "bytes", internalType: "bytes" },
1249
- { name: "chainBatchHash", type: "bytes32", internalType: "bytes32" },
1250
- { name: "chainBatchId", type: "bytes32", internalType: "bytes32" }
1251
- ]
1252
- },
1253
- { type: "error", name: "ECDSAInvalidSignature", inputs: [] },
1254
- {
1255
- type: "error",
1256
- name: "ECDSAInvalidSignatureLength",
1257
- inputs: [{ name: "length", type: "uint256", internalType: "uint256" }]
1258
- },
1259
- {
1260
- type: "error",
1261
- name: "ECDSAInvalidSignatureS",
1262
- inputs: [{ name: "s", type: "bytes32", internalType: "bytes32" }]
1263
- },
1264
- {
1265
- type: "error",
1266
- name: "IntentExpired",
1267
- inputs: [
1268
- { name: "currentTime", type: "uint256", internalType: "uint256" },
1269
- { name: "exp", type: "uint256", internalType: "uint256" }
1270
- ]
1271
- },
1272
- {
1273
- type: "error",
1274
- name: "IntentTooEarly",
1275
- inputs: [
1276
- { name: "currentTime", type: "uint256", internalType: "uint256" },
1277
- { name: "nbf", type: "uint256", internalType: "uint256" }
1278
- ]
1279
- },
1280
- {
1281
- type: "error",
1282
- name: "InvalidAuthority",
1283
- inputs: [
1284
- { name: "actual", type: "address", internalType: "address" },
1285
- { name: "expected", type: "address", internalType: "address" }
1286
- ]
1287
- },
1288
- {
1289
- type: "error",
1290
- name: "InvalidChainId",
1291
- inputs: [
1292
- { name: "actual", type: "uint256", internalType: "uint256" },
1293
- { name: "expected", type: "uint256", internalType: "uint256" }
1294
- ]
1295
- },
1296
- {
1297
- type: "error",
1298
- name: "InvalidSignature",
1299
- inputs: [
1300
- { name: "signatureType", type: "string", internalType: "string" },
1301
- { name: "recovered", type: "address", internalType: "address" },
1302
- { name: "expected", type: "address", internalType: "address" }
1303
- ]
1304
- },
1305
- {
1306
- type: "error",
1307
- name: "InvalidSignatureType",
1308
- inputs: [{ name: "signatureType", type: "string", internalType: "string" }]
1309
- }
1310
- ];
1311
-
1312
- // src/abis/erc20.ts
1313
- var ERC20_ABI = [
1314
- { inputs: [], name: "name", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1315
- { inputs: [], name: "symbol", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1316
- { inputs: [], name: "decimals", outputs: [{ type: "uint8" }], stateMutability: "view", type: "function" },
1317
- { inputs: [{ name: "account", type: "address" }], name: "balanceOf", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1318
- { inputs: [{ name: "to", type: "address" }, { name: "amount", type: "uint256" }], name: "transfer", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1319
- { inputs: [{ name: "from", type: "address" }, { name: "to", type: "address" }, { name: "amount", type: "uint256" }], name: "transferFrom", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1320
- { inputs: [{ name: "spender", type: "address" }, { name: "amount", type: "uint256" }], name: "approve", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1321
- { inputs: [{ name: "owner", type: "address" }, { name: "spender", type: "address" }], name: "allowance", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1322
- { anonymous: false, inputs: [{ indexed: true, name: "from", type: "address" }, { indexed: true, name: "to", type: "address" }, { indexed: false, name: "value", type: "uint256" }], name: "Transfer", type: "event" },
1323
- { anonymous: false, inputs: [{ indexed: true, name: "owner", type: "address" }, { indexed: true, name: "spender", type: "address" }, { indexed: false, name: "value", type: "uint256" }], name: "Approval", type: "event" }
1324
- ];
1325
-
1326
- // src/abis/wcbtc.ts
1327
- var WCBTC_ABI = [
1328
- { inputs: [], name: "name", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1329
- { inputs: [], name: "symbol", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1330
- { inputs: [], name: "decimals", outputs: [{ type: "uint8" }], stateMutability: "view", type: "function" },
1331
- { inputs: [{ name: "account", type: "address" }], name: "balanceOf", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1332
- { inputs: [], name: "deposit", outputs: [], stateMutability: "payable", type: "function" },
1333
- { inputs: [{ name: "amount", type: "uint256" }], name: "withdraw", outputs: [], stateMutability: "nonpayable", type: "function" },
1334
- { stateMutability: "payable", type: "receive" },
1335
- { stateMutability: "payable", type: "fallback" }
1336
- ];
1337
-
1338
- // src/abis/uniV3.ts
1339
- var uniV3QuoterV2Abi = [
1340
- {
1341
- inputs: [
1342
- {
1343
- components: [
1344
- { internalType: "address", name: "tokenIn", type: "address" },
1345
- { internalType: "address", name: "tokenOut", type: "address" },
1346
- { internalType: "uint256", name: "amountIn", type: "uint256" },
1347
- { internalType: "uint24", name: "fee", type: "uint24" },
1348
- {
1349
- internalType: "uint160",
1350
- name: "sqrtPriceLimitX96",
1351
- type: "uint160"
1352
- }
1353
- ],
1354
- internalType: "struct IQuoterV2.QuoteExactInputSingleParams",
1355
- name: "params",
1356
- type: "tuple"
1357
- }
1358
- ],
1359
- name: "quoteExactInputSingle",
1360
- outputs: [
1361
- { internalType: "uint256", name: "amountOut", type: "uint256" },
1362
- {
1363
- internalType: "uint160",
1364
- name: "sqrtPriceX96After",
1365
- type: "uint160"
1366
- },
1367
- {
1368
- internalType: "uint32",
1369
- name: "initializedTicksCrossed",
1370
- type: "uint32"
1371
- },
1372
- { internalType: "uint256", name: "gasEstimate", type: "uint256" }
1373
- ],
1374
- stateMutability: "nonpayable",
1375
- type: "function"
1376
- }
1377
- ];
1378
- var uniV3SwapRouterAbi = [
1379
- {
1380
- inputs: [
1381
- {
1382
- components: [
1383
- { internalType: "address", name: "tokenIn", type: "address" },
1384
- { internalType: "address", name: "tokenOut", type: "address" },
1385
- { internalType: "uint24", name: "fee", type: "uint24" },
1386
- { internalType: "address", name: "recipient", type: "address" },
1387
- { internalType: "uint256", name: "amountIn", type: "uint256" },
1388
- {
1389
- internalType: "uint256",
1390
- name: "amountOutMinimum",
1391
- type: "uint256"
1392
- },
1393
- {
1394
- internalType: "uint160",
1395
- name: "sqrtPriceLimitX96",
1396
- type: "uint160"
1397
- }
1398
- ],
1399
- internalType: "struct IV3SwapRouter.ExactInputSingleParams",
1400
- name: "params",
1401
- type: "tuple"
1402
- }
1403
- ],
1404
- name: "exactInputSingle",
1405
- outputs: [
1406
- { internalType: "uint256", name: "amountOut", type: "uint256" }
1407
- ],
1408
- stateMutability: "payable",
1409
- type: "function"
1410
- }
1411
- ];
1412
-
1413
- // src/swap.ts
1414
- var import_viem3 = require("viem");
1415
- function applySlippage(amount, slippage = 0.03) {
1416
- const slippageBps = BigInt(Math.floor((1 - slippage) * 1e4));
1417
- return amount * slippageBps / 10000n;
1418
- }
1419
- function buildUniV3SwapCalls(params) {
1420
- const {
1421
- tokenIn,
1422
- tokenOut,
1423
- amountIn,
1424
- amountOutMinimum,
1425
- fee,
1426
- recipient,
1427
- config
1428
- } = params;
1429
- return [
1430
- {
1431
- to: tokenIn,
1432
- value: 0n,
1433
- data: (0, import_viem3.encodeFunctionData)({
1434
- abi: import_viem3.erc20Abi,
1435
- functionName: "approve",
1436
- args: [config.swapRouter, amountIn]
1437
- })
1438
- },
1439
- {
1440
- to: config.swapRouter,
1441
- value: 0n,
1442
- data: (0, import_viem3.encodeFunctionData)({
1443
- abi: uniV3SwapRouterAbi,
1444
- functionName: "exactInputSingle",
1445
- args: [
1446
- {
1447
- tokenIn,
1448
- tokenOut,
1449
- fee,
1450
- recipient,
1451
- amountIn,
1452
- amountOutMinimum,
1453
- sqrtPriceLimitX96: 0n
1454
- }
1455
- ]
1456
- })
1457
- }
1458
- ];
1459
- }
1460
- // Annotate the CommonJS export names for ESM import in node:
1461
- 0 && (module.exports = {
1462
- CHAINS,
1463
- ChainBatchHashAbi,
1464
- DELEGATE_ABI,
1465
- ERC20_ABI,
1466
- ESCROW_ADDRESS,
1467
- HttpError,
1468
- IntentHashAbi,
1469
- NATIVE_TOKEN_ADDRESS,
1470
- SPICENET_NATIVE_CHAIN_ID,
1471
- STARKNET_MAINNET_CHAIN_ID,
1472
- SpiceFlowCore,
1473
- TOKENS,
1474
- VIEM_CHAINS,
1475
- WCBTC_ABI,
1476
- ZERO_ADDRESS,
1477
- applySlippage,
1478
- areEquivalent,
1479
- buildUniV3SwapCalls,
1480
- convertAmountBetweenDecimals,
1481
- fetchWithRetry,
1482
- formatTokenAmount,
1483
- getAccountNonce,
1484
- getAllChainsByNetwork,
1485
- getChainIdsByNetwork,
1486
- getChainMeta,
1487
- getChainsByNetwork,
1488
- getDelegateContract,
1489
- getDeployment,
1490
- getEquivalenceGroup,
1491
- getEquivalentAddresses,
1492
- getIntentHash,
1493
- getIntentStepStatus,
1494
- getMainnetChains,
1495
- getRecentBlock,
1496
- getTestnetChains,
1497
- getTokenByAddress,
1498
- getTokenBySymbol,
1499
- getTokenDefinition,
1500
- getTokensForChain,
1501
- getViemChain,
1502
- hashChainBatches,
1503
- isBtcDenominated,
1504
- isNativeToken,
1505
- isSpicenetChainId,
1506
- isStarknetChain,
1507
- isUsdDenominated,
1508
- normalizeNativeTokenAddress,
1509
- prepareRFQT,
1510
- requireTokenBySymbol,
1511
- requireViemChain,
1512
- resolveTokenRef,
1513
- submitTransaction,
1514
- truncateAddress,
1515
- uniV3QuoterV2Abi,
1516
- uniV3SwapRouterAbi,
1517
- withRetry
1518
- });