@spicenet-io/spiceflow-core 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -33,11 +33,19 @@ function hashChainBatches(chainCalls) {
33
33
  function getIntentHash(signatureType, nbf, exp, chainBatches) {
34
34
  const hashes = chainBatches.map(({ hash }) => hash);
35
35
  return keccak256(
36
- encodeAbiParameters(IntentHashAbi, [signatureType, nbf, exp, hashes])
36
+ encodeAbiParameters(IntentHashAbi, [
37
+ signatureType,
38
+ nbf,
39
+ exp,
40
+ hashes
41
+ ])
37
42
  );
38
43
  }
39
44
  async function getAccountNonce(address, publicClient) {
40
- return await publicClient.getTransactionCount({ address, blockTag: "pending" });
45
+ return await publicClient.getTransactionCount({
46
+ address,
47
+ blockTag: "pending"
48
+ });
41
49
  }
42
50
  async function getRecentBlock(publicClient) {
43
51
  return await publicClient.getBlockNumber();
@@ -87,7 +95,12 @@ async function fetchWithRetry(url, init = {}, opts = {}) {
87
95
  } catch {
88
96
  body = await res.text();
89
97
  }
90
- throw new HttpError(`HTTP ${res.status}`, res.status, body && body.code || void 0, body);
98
+ throw new HttpError(
99
+ `HTTP ${res.status}`,
100
+ res.status,
101
+ body && body.code || void 0,
102
+ body
103
+ );
91
104
  }
92
105
  return res;
93
106
  } catch (e) {
@@ -104,13 +117,23 @@ async function fetchWithRetry(url, init = {}, opts = {}) {
104
117
 
105
118
  // src/relayer.ts
106
119
  async function submitTransaction(baseUrl, request, retry) {
107
- const res = await fetchWithRetry(`${baseUrl}/transaction/submit`, {
108
- method: "POST",
109
- headers: { "Content-Type": "application/json" },
110
- body: JSON.stringify(request, (k, v) => typeof v === "bigint" ? v.toString() : v)
111
- }, retry);
120
+ const res = await fetchWithRetry(
121
+ `${baseUrl}/transaction/submit`,
122
+ {
123
+ method: "POST",
124
+ headers: { "Content-Type": "application/json" },
125
+ body: JSON.stringify(
126
+ request,
127
+ (k, v) => typeof v === "bigint" ? v.toString() : v
128
+ )
129
+ },
130
+ retry
131
+ );
112
132
  const result = await res.json();
113
- return { hash: result.hash, intentId: result.intentId || request.intentAuthorization.signature };
133
+ return {
134
+ hash: result.hash,
135
+ intentId: result.intentId || request.intentAuthorization.signature
136
+ };
114
137
  }
115
138
 
116
139
  // src/core.ts
@@ -130,7 +153,12 @@ var SpiceFlowCore = class {
130
153
  for (const d of params.delegations) {
131
154
  const client = this.getClient(d.chainId);
132
155
  const nonce = typeof d.nonce === "number" ? d.nonce : await getAccountNonce(params.user, client);
133
- const auth = await this.signers.authorizationSigner({ contractAddress: d.contractAddress, chainId: d.chainId, nonce, address: params.user });
156
+ const auth = await this.signers.authorizationSigner({
157
+ contractAddress: d.contractAddress,
158
+ chainId: d.chainId,
159
+ nonce,
160
+ address: params.user
161
+ });
134
162
  delete auth.v;
135
163
  out.push(auth);
136
164
  }
@@ -140,7 +168,12 @@ var SpiceFlowCore = class {
140
168
  const chainBatches = hashChainBatches(
141
169
  callsByChain.map((c) => ({ chainId: c.chainId, calls: c.calls }))
142
170
  );
143
- const digest = getIntentHash(signatureType, nbf, exp, chainBatches);
171
+ const digest = getIntentHash(
172
+ signatureType,
173
+ nbf,
174
+ exp,
175
+ chainBatches
176
+ );
144
177
  return { chainBatches, digest };
145
178
  }
146
179
  async signIntent(digest) {
@@ -148,7 +181,14 @@ var SpiceFlowCore = class {
148
181
  }
149
182
  async submitIntent(req) {
150
183
  const signatureType = req.signatureType ?? "ecdsa";
151
- const signature = req.signature ?? await this.signIntent(getIntentHash(signatureType, req.nbf, req.exp, req.chainBatches));
184
+ const signature = req.signature ?? await this.signIntent(
185
+ getIntentHash(
186
+ signatureType,
187
+ req.nbf,
188
+ req.exp,
189
+ req.chainBatches
190
+ )
191
+ );
152
192
  const resp = await submitTransaction(this.cfg.txApiUrl, {
153
193
  tokenAddress: req.tokenAddress,
154
194
  tokenAmount: req.tokenAmount,
@@ -162,27 +202,38 @@ var SpiceFlowCore = class {
162
202
 
163
203
  // src/status.ts
164
204
  async function getIntentStepStatus(txApiUrl, intentId, stepId, retry) {
165
- const res = await fetchWithRetry(`${txApiUrl}/intent/${intentId}/step/${stepId}/status`, {}, retry);
205
+ const res = await fetchWithRetry(
206
+ `${txApiUrl}/intent/${intentId}/step/${stepId}/status`,
207
+ {},
208
+ retry
209
+ );
166
210
  return res.json();
167
211
  }
168
212
 
169
213
  // src/rfqt.ts
170
214
  async function prepareRFQT(txApiUrl, request, retry) {
171
- const res = await fetchWithRetry(`${txApiUrl}/rfqt`, {
172
- method: "POST",
173
- headers: { "Content-Type": "application/json" },
174
- body: JSON.stringify(request)
175
- }, retry);
215
+ const res = await fetchWithRetry(
216
+ `${txApiUrl}/rfqt`,
217
+ {
218
+ method: "POST",
219
+ headers: { "Content-Type": "application/json" },
220
+ body: JSON.stringify(request)
221
+ },
222
+ retry
223
+ );
176
224
  return res.json();
177
225
  }
178
226
 
179
227
  // src/logos.ts
180
228
  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";
181
229
  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";
230
+ var logo_bnb = "data:image/png;base64,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";
182
231
  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";
183
232
  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";
184
233
  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==";
234
+ var logo_monad = "data:image/png;base64,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";
185
235
  var logo_pharos = "data:image/jpeg;base64,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";
236
+ var logo_polygon = "data:image/png;base64,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";
186
237
  var logo_robinhood = "data:image/png;base64,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";
187
238
  var logo_usdc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAS1BMVEVMaXEndskmdcondcondcsndssmdMkldMondswndsz///8pd8wcbsj9/v8pe9U1fs7z+P2Ot+Sqyetypd1cl9dJi9PC2PHV5PXm7/keiWBQAAAACnRSTlMAE3H/m1gy/sjjtLtfHAAAAAlwSFlzAAALEwAACxMBAJqcGAAACTtJREFUeNrNW9eWqzoMnYQQJ8gUm/r/X3plmptkSDl3hodTVgBt1Jt/ft64Lvf8ers9nk+R4SWez8ftds3vl5//47rnSDmDCi8AMADwr/l/GeLI7/+U+AWJi5lWJkQ2f/5yCfP/GZVAEJd/Rv1paAvhUPYv8xOieP4LDPeNenZwbRi+K4v8ARUcE7cg8PZH/kXyVZWdpr5pRVV9CYIh/yL1lQ1fgXA35N+hv0H4TBcuN3ib/AoBbh9YRP58WfaELjzztz8fNT/7+EKLeI8J9+dH3Pfk8HxDE65QfYX8DKGC66v0v8N+Vwyvif9RfZH8woTH5SXj5+kvMfjl38QLLsGoH0sik5IHgL8Bj+CsKvL0AaQUXcv5BiG6XkjBseEsApa++fhejWWhaR6AVEU5qJplwzkEHH0kL7qhKYqymGpBq/qEPxaN7qSkuXAGAaP/yHzRjgWSNyQYAHWz/F4OBsKbtsDQl7Ibl7fjRyYAGPLmLoQggEZw5H8Eyf1+WMkfA1jYVOpa0giSHulakZ8vVLORN1dKBOuFd08tzYQq4ZXvQNLvR4c8/msERgnHonQhMEwAVhEvpAHI1vn8WcdaWsNAtosCWCZ0xJ1oCpcXFEAI5ZOfdM+6QjQUA3CHUDStfEEN8pg+CBh2+ubvsa0ZC1u4JTrt80tJ4qOqnBZAJFoQ9VCUrl4B72l3Z6lLB0Kh46xGACmEWAAga6tWyE8FoV7DfIXhoh+OEFBCiC0Av3+njy8c+sishJyvOGK1U5FEQFnCo4o5tfMfmapEJHtRK3N1IQGEUDuqQwWv2CESGii0pY8GRYS4GSBFAIRUpX1axdgjPYxiwBxctzeMfaz6IDtj9iXjmmXX2OcjzxHFhDym39rnB8qlGQAJ14wOdFMEhNjHCPI0A9zHB6Cc+gaAC04egsh7ByyINUAM7sN0jEgD8BHoNAtCE7ACQPq1YFz/AQBzx64HRRQWXBbcYwNbsVPi21yQCwDY8FRwQnB9QeQEpd4ZQIa+OT0GtSuhZBJRa0qxLTruEKNAyDrHiZD6h+nx0OzObhpUz2WBg2VlaGh7RIhUUO5PUbkHeplusJnHCsJkgQRU0e/C1BELcloC1sAJ1ZlDlC4LN0Vb0pBSU9bi+JMmSCR2GYQScBigKfpehuamYANpL4J92yaDvAp90Pb6Jk5+HONe86/SRh1SYJtCEea6yiCSgE4wwIZoTwR83HPfFxjCJoMH0D4g1lvnbeaDBtV2XdeqsUga7cZR5FD4tgfhhXatIRkg+2Y30F6uV9ZN1moSLIh1evZFoRHytzuOxaCTsF7ZnrqRLNitKvqkxRADFdgKrJhhTu1hfnQ0HgxjSt5xZftTvpYuSuBHYkcCimDAKoHwx40zmDqRhqAsU6OYHHgBR8soG+wYDyUWZFx21DMBwXiCO8sukXJroX5gDjinZ4oum7aXDuFL7z85ZLQKKEqdWAD4lfMlRCIoxs0VyLEiF6eYHOgzkegai2Qzk81lhUpwDYzAYj0QJpmn8S26uiE9lTGDW0XpIGmEXqakM5nsWQZN+5EWLAII8uE1dnG9OOnkqlipzjyHEzj279KRHfpWaD2NolMhp1rAVkHbwyr6NAgr2THMikIAK4+ZXHA3qC0EYjamMSTVQtINoQB45KgQgAC60UQDmKN76SZCS9wcVAcJCBZAoNsgfnxdF1u0o6xwfVXppwIbjBGbtDwArowTP0w2FBis967J7UU58pgUO+OxeXbo4AMAoudu9JLSxhOAFQhdRXofFgEQJ2/00vJeTeUuAS8vBa5MZN4rQiXsbS2XmItgMtKpYSq9lDDhPlgRoBI+GSvoZMqyZ/OHHhPCBYY1jE7CC0pI+IHmwA84jl8YFAKwSnPaMSQLeDN8Bq74wBMSNbKJgqK3Hpppl9AZk3HFfjByY8HZSDO3JxXfCEjFuDkaCvLOQfBzucjxQ8ZWH8kYZ8LxlckHJtKg9lLglVRlHydFv5qEJAemN0M5Atnp+Ypt1GovXdAypROmZPeMDAakGayxkpqb2W/UqVwy8vD3MC23ZqCpsqBcrljTDpJZTSelc4H+YLSQmA4mPtPqAMW5/blAtedO2Y2ujEh7YtE59Ux3XkOX0iwoTq0SUDJwK2cgazaiScGiW4rTsEm4mywlA5sVKyl3ryBkPyXcgM3zQnRLq/ABTAWu+PLciLMXm1cA1WzPEKj5endpUET1+V5qE9x0OzSl6ZD0GBH1ZJs0pBsaabXaWjRRk0rz3QYnKS29RtXGFrJLtfdPMrJJFRXoXaJN6Salaza0JUVcQmT7dG1cnNOt4jGhUeBNUo9TQkcDAv2wzeI87NO1CZUyJjcURYBhXisgk+J9okx06XKmWe08o8ngLtuoV4yLE71M9cvjVMUZX94YFjCZmdnmcLvlc2VEt8vdxjvTpqQHFrveTOS8wuRAou62BFbV3PKMw8xInO7wMhjZuLiHjEuNJGwDmU5yxXFi8uFNrcJmpduR1TLR9iiTKbznOEVybheO7VyPx+XHhwCMz3Aa75CaXMYs6Oz0mUFwBMAZmlETozw9uvUmt3Tz7wCAR38QR+s8idHljICoemcAdIK2e8yCsQBiiSIa37vbA4UGKsoNXIrqjc/RBSWnlpwv8IYzZn6exeNNPeI1UEkYaGeBgIiq9xMrHOBN4Btqg0HaP4O5nrv7oeK58e3UEouHgNzhALpSBFUm6dNLLIQeBggaXI0SB11JEyfayV39iU2IWeOh92j6yd3jaeZ1xWTfApcO3X4FSf92fpVr2eRxWjG4rpg4YSHrdizcHZ6mJdZH2FUuapkNcxztrUbNA1Jue1hNhXczGUvh/tI6H3LV32bjw5OJYN4yG7l7Ul1fXWiEZTXK4Su3TzgVLvmGWigURyvWDxKBp9gnFhrnrc6e3OV7vLPUakaTujm5U7qt3ZHh48SCN73Wa8q/FcLxUqvpGgOVJH20WGzWNpYecRKAYYFZOiQ3CT5brTYN2hrzcbMel/E7pegoMm6l99PlclOHYz6uOT+AjfzBbFwK+Gy5PbXeb/JxyXpCCfxuu3jpxE/igENqRgb86PC1Aw6/f8TjDxxy+f1jPr9/0On3j3r9gcNuv3/c75MDj5n46pnLXzzy+QcOvf6BY79/4ODzHzj6/RcOv/+L4///AZPiS/FVq2puAAAAAElFTkSuQmCC";
188
239
  var logo_usdg = "data:image/png;base64,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";
@@ -225,6 +276,27 @@ var TOKENS = [
225
276
  network: "mainnet",
226
277
  swapContracts: []
227
278
  },
279
+ {
280
+ chainId: 56,
281
+ address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
282
+ decimals: 18,
283
+ network: "mainnet",
284
+ swapContracts: []
285
+ },
286
+ {
287
+ chainId: 137,
288
+ address: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
289
+ decimals: 6,
290
+ network: "mainnet",
291
+ swapContracts: []
292
+ },
293
+ {
294
+ chainId: 143,
295
+ address: "0x754704bc059f8c67012fed69bc8a327a5aafb603",
296
+ decimals: 6,
297
+ network: "mainnet",
298
+ swapContracts: []
299
+ },
228
300
  {
229
301
  chainId: 11155111,
230
302
  address: "0x1c7d4b196cb0c7b01d743fbc6116a902379c7238",
@@ -333,6 +405,27 @@ var TOKENS = [
333
405
  decimals: 6,
334
406
  network: "mainnet",
335
407
  swapContracts: []
408
+ },
409
+ {
410
+ chainId: 56,
411
+ address: "0x55d398326f99059fF775485246999027B3197955",
412
+ decimals: 18,
413
+ network: "mainnet",
414
+ swapContracts: []
415
+ },
416
+ {
417
+ chainId: 137,
418
+ address: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
419
+ decimals: 6,
420
+ network: "mainnet",
421
+ swapContracts: []
422
+ },
423
+ {
424
+ chainId: 143,
425
+ address: "0xe7cd86e13AC4309349F30B3435a9d337750fC82D",
426
+ decimals: 6,
427
+ network: "mainnet",
428
+ swapContracts: []
336
429
  }
337
430
  ]
338
431
  },
@@ -378,6 +471,27 @@ var TOKENS = [
378
471
  network: "mainnet",
379
472
  swapContracts: []
380
473
  },
474
+ {
475
+ chainId: 56,
476
+ address: "0x0555e30da8f98308edb960aa94c0db47230d2b9c",
477
+ decimals: 8,
478
+ network: "mainnet",
479
+ swapContracts: []
480
+ },
481
+ {
482
+ chainId: 137,
483
+ address: "0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6",
484
+ decimals: 8,
485
+ network: "mainnet",
486
+ swapContracts: []
487
+ },
488
+ {
489
+ chainId: 143,
490
+ address: "0x0555e30da8f98308edb960aa94c0db47230d2b9c",
491
+ decimals: 8,
492
+ network: "mainnet",
493
+ swapContracts: []
494
+ },
381
495
  {
382
496
  chainId: 11155111,
383
497
  address: "0x4fc381b6cc6df8cf1c1bd46d184475be5b7a3c62",
@@ -548,10 +662,7 @@ var _deploymentIndex = /* @__PURE__ */ new Map();
548
662
  var _chainIndex = /* @__PURE__ */ new Map();
549
663
  var _equivalenceIndex = /* @__PURE__ */ new Map();
550
664
  var NATIVE_SENTINEL = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
551
- var NATIVE_ALIASES = [
552
- "0x0000000000000000000000000000000000000000",
553
- "0x0"
554
- ];
665
+ var NATIVE_ALIASES = ["0x0000000000000000000000000000000000000000", "0x0"];
555
666
  function _buildIndexes() {
556
667
  for (const token of TOKENS) {
557
668
  const groupAddrs = _equivalenceIndex.get(token.equivalenceGroup) ?? [];
@@ -569,7 +680,10 @@ function _buildIndexes() {
569
680
  if (addr === NATIVE_SENTINEL) {
570
681
  for (const alias of NATIVE_ALIASES) {
571
682
  _addressIndex.set(alias, token);
572
- _deploymentIndex.set(`${d.chainId}:${alias}`, { token, deployment: d });
683
+ _deploymentIndex.set(`${d.chainId}:${alias}`, {
684
+ token,
685
+ deployment: d
686
+ });
573
687
  if (!groupAddrs.includes(alias)) {
574
688
  groupAddrs.push(alias);
575
689
  }
@@ -624,7 +738,9 @@ function getDeployment(address, chainId) {
624
738
  function getEquivalentAddresses(tokenAddress) {
625
739
  const token = _addressIndex.get(tokenAddress.toLowerCase());
626
740
  if (!token) return [tokenAddress.toLowerCase()];
627
- return _equivalenceIndex.get(token.equivalenceGroup) ?? [tokenAddress.toLowerCase()];
741
+ return _equivalenceIndex.get(token.equivalenceGroup) ?? [
742
+ tokenAddress.toLowerCase()
743
+ ];
628
744
  }
629
745
  function getEquivalenceGroup(tokenAddress) {
630
746
  return _addressIndex.get(tokenAddress.toLowerCase())?.equivalenceGroup;
@@ -724,6 +840,45 @@ var CHAINS = {
724
840
  logo: logo_robinhood,
725
841
  wrappedNativeTokenAddress: "0x0bd7d308f8e1639fab988df18a8011f41eacad73"
726
842
  },
843
+ 56: {
844
+ id: 56,
845
+ name: "Binance Smart Chain",
846
+ displayName: "BSC",
847
+ network: "mainnet",
848
+ nativeCurrency: { name: "BNB", symbol: "BNB", decimals: 18 },
849
+ delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
850
+ escrowContract: "0x93ee466f920e1b4961f85749001f03aAd868eF0E",
851
+ blockExplorer: "https://bscscan.com",
852
+ rpcUrl: "https://bsc-dataseed.bnbchain.org",
853
+ logo: logo_bnb,
854
+ wrappedNativeTokenAddress: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
855
+ },
856
+ 137: {
857
+ id: 137,
858
+ name: "Polygon",
859
+ displayName: "Polygon",
860
+ network: "mainnet",
861
+ nativeCurrency: { name: "POL", symbol: "POL", decimals: 18 },
862
+ delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
863
+ escrowContract: "0x93ee466f920e1b4961f85749001f03aAd868eF0E",
864
+ blockExplorer: "https://polygonscan.com",
865
+ rpcUrl: "https://polygon-bor-rpc.publicnode.com",
866
+ logo: logo_polygon,
867
+ wrappedNativeTokenAddress: "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
868
+ },
869
+ 143: {
870
+ id: 143,
871
+ name: "Monad",
872
+ displayName: "Monad",
873
+ network: "mainnet",
874
+ nativeCurrency: { name: "MON", symbol: "MON", decimals: 18 },
875
+ delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
876
+ escrowContract: "0x93ee466f920e1b4961f85749001f03aAd868eF0E",
877
+ blockExplorer: "https://monadexplorer.com",
878
+ rpcUrl: "https://rpc.monad.xyz",
879
+ logo: logo_monad,
880
+ wrappedNativeTokenAddress: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
881
+ },
727
882
  11155111: {
728
883
  id: 11155111,
729
884
  name: "Ethereum Sepolia",
@@ -1134,7 +1289,12 @@ var DELEGATE_ABI = [
1134
1289
  type: "event",
1135
1290
  name: "BatchExecuted",
1136
1291
  inputs: [
1137
- { name: "block", type: "uint256", indexed: true, internalType: "uint256" },
1292
+ {
1293
+ name: "block",
1294
+ type: "uint256",
1295
+ indexed: true,
1296
+ internalType: "uint256"
1297
+ },
1138
1298
  {
1139
1299
  name: "calls",
1140
1300
  type: "tuple[]",
@@ -1153,12 +1313,32 @@ var DELEGATE_ABI = [
1153
1313
  type: "event",
1154
1314
  name: "CallExecuted",
1155
1315
  inputs: [
1156
- { name: "executor", type: "address", indexed: true, internalType: "address" },
1157
- { name: "sender", type: "address", indexed: true, internalType: "address" },
1316
+ {
1317
+ name: "executor",
1318
+ type: "address",
1319
+ indexed: true,
1320
+ internalType: "address"
1321
+ },
1322
+ {
1323
+ name: "sender",
1324
+ type: "address",
1325
+ indexed: true,
1326
+ internalType: "address"
1327
+ },
1158
1328
  { name: "to", type: "address", indexed: true, internalType: "address" },
1159
- { name: "value", type: "uint256", indexed: false, internalType: "uint256" },
1329
+ {
1330
+ name: "value",
1331
+ type: "uint256",
1332
+ indexed: false,
1333
+ internalType: "uint256"
1334
+ },
1160
1335
  { name: "data", type: "bytes", indexed: false, internalType: "bytes" },
1161
- { name: "returnData", type: "bytes", indexed: false, internalType: "bytes" }
1336
+ {
1337
+ name: "returnData",
1338
+ type: "bytes",
1339
+ indexed: false,
1340
+ internalType: "bytes"
1341
+ }
1162
1342
  ],
1163
1343
  anonymous: false
1164
1344
  },
@@ -1166,7 +1346,12 @@ var DELEGATE_ABI = [
1166
1346
  type: "event",
1167
1347
  name: "IntentSubmitted",
1168
1348
  inputs: [
1169
- { name: "signature", type: "bytes", indexed: true, internalType: "bytes" }
1349
+ {
1350
+ name: "signature",
1351
+ type: "bytes",
1352
+ indexed: true,
1353
+ internalType: "bytes"
1354
+ }
1170
1355
  ],
1171
1356
  anonymous: false
1172
1357
  },
@@ -1251,26 +1436,141 @@ var DELEGATE_ABI = [
1251
1436
 
1252
1437
  // src/abis/erc20.ts
1253
1438
  var ERC20_ABI = [
1254
- { inputs: [], name: "name", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1255
- { inputs: [], name: "symbol", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1256
- { inputs: [], name: "decimals", outputs: [{ type: "uint8" }], stateMutability: "view", type: "function" },
1257
- { inputs: [{ name: "account", type: "address" }], name: "balanceOf", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1258
- { inputs: [{ name: "to", type: "address" }, { name: "amount", type: "uint256" }], name: "transfer", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1259
- { inputs: [{ name: "from", type: "address" }, { name: "to", type: "address" }, { name: "amount", type: "uint256" }], name: "transferFrom", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1260
- { inputs: [{ name: "spender", type: "address" }, { name: "amount", type: "uint256" }], name: "approve", outputs: [{ type: "bool" }], stateMutability: "nonpayable", type: "function" },
1261
- { inputs: [{ name: "owner", type: "address" }, { name: "spender", type: "address" }], name: "allowance", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1262
- { 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" },
1263
- { 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" }
1439
+ {
1440
+ inputs: [],
1441
+ name: "name",
1442
+ outputs: [{ type: "string" }],
1443
+ stateMutability: "view",
1444
+ type: "function"
1445
+ },
1446
+ {
1447
+ inputs: [],
1448
+ name: "symbol",
1449
+ outputs: [{ type: "string" }],
1450
+ stateMutability: "view",
1451
+ type: "function"
1452
+ },
1453
+ {
1454
+ inputs: [],
1455
+ name: "decimals",
1456
+ outputs: [{ type: "uint8" }],
1457
+ stateMutability: "view",
1458
+ type: "function"
1459
+ },
1460
+ {
1461
+ inputs: [{ name: "account", type: "address" }],
1462
+ name: "balanceOf",
1463
+ outputs: [{ type: "uint256" }],
1464
+ stateMutability: "view",
1465
+ type: "function"
1466
+ },
1467
+ {
1468
+ inputs: [
1469
+ { name: "to", type: "address" },
1470
+ { name: "amount", type: "uint256" }
1471
+ ],
1472
+ name: "transfer",
1473
+ outputs: [{ type: "bool" }],
1474
+ stateMutability: "nonpayable",
1475
+ type: "function"
1476
+ },
1477
+ {
1478
+ inputs: [
1479
+ { name: "from", type: "address" },
1480
+ { name: "to", type: "address" },
1481
+ { name: "amount", type: "uint256" }
1482
+ ],
1483
+ name: "transferFrom",
1484
+ outputs: [{ type: "bool" }],
1485
+ stateMutability: "nonpayable",
1486
+ type: "function"
1487
+ },
1488
+ {
1489
+ inputs: [
1490
+ { name: "spender", type: "address" },
1491
+ { name: "amount", type: "uint256" }
1492
+ ],
1493
+ name: "approve",
1494
+ outputs: [{ type: "bool" }],
1495
+ stateMutability: "nonpayable",
1496
+ type: "function"
1497
+ },
1498
+ {
1499
+ inputs: [
1500
+ { name: "owner", type: "address" },
1501
+ { name: "spender", type: "address" }
1502
+ ],
1503
+ name: "allowance",
1504
+ outputs: [{ type: "uint256" }],
1505
+ stateMutability: "view",
1506
+ type: "function"
1507
+ },
1508
+ {
1509
+ anonymous: false,
1510
+ inputs: [
1511
+ { indexed: true, name: "from", type: "address" },
1512
+ { indexed: true, name: "to", type: "address" },
1513
+ { indexed: false, name: "value", type: "uint256" }
1514
+ ],
1515
+ name: "Transfer",
1516
+ type: "event"
1517
+ },
1518
+ {
1519
+ anonymous: false,
1520
+ inputs: [
1521
+ { indexed: true, name: "owner", type: "address" },
1522
+ { indexed: true, name: "spender", type: "address" },
1523
+ { indexed: false, name: "value", type: "uint256" }
1524
+ ],
1525
+ name: "Approval",
1526
+ type: "event"
1527
+ }
1264
1528
  ];
1265
1529
 
1266
1530
  // src/abis/wcbtc.ts
1267
1531
  var WCBTC_ABI = [
1268
- { inputs: [], name: "name", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1269
- { inputs: [], name: "symbol", outputs: [{ type: "string" }], stateMutability: "view", type: "function" },
1270
- { inputs: [], name: "decimals", outputs: [{ type: "uint8" }], stateMutability: "view", type: "function" },
1271
- { inputs: [{ name: "account", type: "address" }], name: "balanceOf", outputs: [{ type: "uint256" }], stateMutability: "view", type: "function" },
1272
- { inputs: [], name: "deposit", outputs: [], stateMutability: "payable", type: "function" },
1273
- { inputs: [{ name: "amount", type: "uint256" }], name: "withdraw", outputs: [], stateMutability: "nonpayable", type: "function" },
1532
+ {
1533
+ inputs: [],
1534
+ name: "name",
1535
+ outputs: [{ type: "string" }],
1536
+ stateMutability: "view",
1537
+ type: "function"
1538
+ },
1539
+ {
1540
+ inputs: [],
1541
+ name: "symbol",
1542
+ outputs: [{ type: "string" }],
1543
+ stateMutability: "view",
1544
+ type: "function"
1545
+ },
1546
+ {
1547
+ inputs: [],
1548
+ name: "decimals",
1549
+ outputs: [{ type: "uint8" }],
1550
+ stateMutability: "view",
1551
+ type: "function"
1552
+ },
1553
+ {
1554
+ inputs: [{ name: "account", type: "address" }],
1555
+ name: "balanceOf",
1556
+ outputs: [{ type: "uint256" }],
1557
+ stateMutability: "view",
1558
+ type: "function"
1559
+ },
1560
+ {
1561
+ inputs: [],
1562
+ name: "deposit",
1563
+ outputs: [],
1564
+ stateMutability: "payable",
1565
+ type: "function"
1566
+ },
1567
+ {
1568
+ inputs: [{ name: "amount", type: "uint256" }],
1569
+ name: "withdraw",
1570
+ outputs: [],
1571
+ stateMutability: "nonpayable",
1572
+ type: "function"
1573
+ },
1274
1574
  { stateMutability: "payable", type: "receive" },
1275
1575
  { stateMutability: "payable", type: "fallback" }
1276
1576
  ];
@@ -1342,9 +1642,7 @@ var uniV3SwapRouterAbi = [
1342
1642
  }
1343
1643
  ],
1344
1644
  name: "exactInputSingle",
1345
- outputs: [
1346
- { internalType: "uint256", name: "amountOut", type: "uint256" }
1347
- ],
1645
+ outputs: [{ internalType: "uint256", name: "amountOut", type: "uint256" }],
1348
1646
  stateMutability: "payable",
1349
1647
  type: "function"
1350
1648
  }