@orbs-network/spot-react 2.1.17 → 2.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +197 -27
- package/dist/spot-react/src/context/create-spot-store.d.ts +3 -2
- package/dist/spot-react/src/context/create-spot-store.d.ts.map +1 -1
- package/dist/spot-react/src/context/order-form-context.d.ts.map +1 -1
- package/dist/spot-react/src/context/spot-trading-context.d.ts +2 -0
- package/dist/spot-react/src/context/spot-trading-context.d.ts.map +1 -1
- package/dist/spot-react/src/context/use-spot-provider-state.d.ts.map +1 -1
- package/dist/spot-react/src/execute-order.d.ts +2 -1
- package/dist/spot-react/src/execute-order.d.ts.map +1 -1
- package/dist/spot-react/src/execution-state.d.ts +6 -4
- package/dist/spot-react/src/execution-state.d.ts.map +1 -1
- package/dist/spot-react/src/hooks/order-hooks.d.ts.map +1 -1
- package/dist/spot-react/src/hooks/use-execution.d.ts +10 -1
- package/dist/spot-react/src/hooks/use-execution.d.ts.map +1 -1
- package/dist/spot-react/src/hooks/use-resume-execution.d.ts +3 -0
- package/dist/spot-react/src/hooks/use-resume-execution.d.ts.map +1 -0
- package/dist/spot-react/src/hooks/use-submit-order.d.ts.map +1 -1
- package/dist/spot-react/src/hooks/use-swap-execution.d.ts +3 -0
- package/dist/spot-react/src/hooks/use-swap-execution.d.ts.map +1 -1
- package/dist/spot-react/src/index.d.ts +1 -1
- package/dist/spot-react/src/index.d.ts.map +1 -1
- package/dist/spot-react/src/order-history-data.d.ts +4 -3
- package/dist/spot-react/src/order-history-data.d.ts.map +1 -1
- package/dist/spot-react/src/parse-execution-error.d.ts +6 -0
- package/dist/spot-react/src/parse-execution-error.d.ts.map +1 -0
- package/dist/spot-react/src/resume-execution.d.ts +11 -0
- package/dist/spot-react/src/resume-execution.d.ts.map +1 -0
- package/dist/spot-react/src/types.d.ts +16 -7
- package/dist/spot-react/src/types.d.ts.map +1 -1
- package/dist/spot-react/src/wait-for-swap-order.d.ts +15 -0
- package/dist/spot-react/src/wait-for-swap-order.d.ts.map +1 -0
- package/dist/spot-react.js +982 -844
- package/dist/spot-react.umd.cjs +1 -1
- package/package.json +3 -4
package/dist/spot-react.js
CHANGED
|
@@ -1,32 +1,70 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
var oe = (e, t, n) =>
|
|
5
|
-
import { OrderStatus as
|
|
6
|
-
import { DISCLAIMER_URL as
|
|
7
|
-
import { jsx as
|
|
8
|
-
import { createContext as
|
|
9
|
-
import { useStore as
|
|
10
|
-
import { createStore as
|
|
11
|
-
const
|
|
12
|
-
version:
|
|
13
|
-
},
|
|
2
|
+
var qe = Object.defineProperty;
|
|
3
|
+
var be = (e, t, n) => t in e ? qe(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
4
|
+
var oe = (e, t, n) => be(e, typeof t != "symbol" ? t + "" : t, n);
|
|
5
|
+
import { OrderSettlementError as we, SpotError as ve, OrderStatus as M, Module as Q, createClient as We, analytics as je, calculateOrder as Ve, isNativeAddress as $, eqIgnoreCase as he, toAmountRaw as k, toAmountUI as ne, isTxRejected as Ce, getOrderLimitPriceRate as Qe, getTriggerPriceRate as Je, getOrderExecutionRate as Ae, getOrderFillDelayMillis as ze, getTwapConfig as $e, invertPriceInput as Ee, watchOrder as Ye, executeOrder as Xe, getOrders as Ze, setUIVersion as ke } from "@orbs-network/spot-ui";
|
|
6
|
+
import { DISCLAIMER_URL as wr, InputErrors as vr, Module as Cr, ORBS_LOGO as Ar, ORBS_SLTP_FAQ_URL as Tr, ORBS_TWAP_FAQ_URL as Rr, ORBS_WEBSITE_URL as Nr, OrderFilter as Lr, OrderSettlementError as Fr, OrderStatus as xr, OrderType as Ur, Partners as Dr, QuoteError as Mr, SWAP_CAPABILITIES as Gr, SpotError as Br, TimeUnit as Kr, analytics as _r, calculateOrder as Hr, calculateOrderForm as qr, createClient as br, eqIgnoreCase as Wr, executeOrder as jr, getOrderExecutionRate as Vr, getOrderFillDelayMillis as Qr, getOrderLimitPriceRate as Jr, getOrders as zr, getQuote as $r, getTriggerPriceRate as Yr, getTwapConfig as Xr, invertPriceInput as Zr, isNativeAddress as kr, isQuoteFresh as en, isSwapSupported as tn, isTxRejected as rn, setUIVersion as nn, submitSwap as on, toAmountRaw as sn, toAmountUI as an, waitForOrder as cn, watchOrder as dn } from "@orbs-network/spot-ui";
|
|
7
|
+
import { jsx as D, jsxs as ce, Fragment as et } from "react/jsx-runtime";
|
|
8
|
+
import { createContext as de, useContext as ue, useState as tt, useCallback as C, useMemo as R, useEffect as Y, Component as rt, useRef as le } from "react";
|
|
9
|
+
import { useStore as nt } from "zustand";
|
|
10
|
+
import { createStore as it } from "zustand/vanilla";
|
|
11
|
+
const ot = "2.1.19", st = {
|
|
12
|
+
version: ot
|
|
13
|
+
}, Te = de(null), at = ({
|
|
14
14
|
children: e,
|
|
15
15
|
value: t
|
|
16
|
-
}) => /* @__PURE__ */
|
|
17
|
-
const e =
|
|
16
|
+
}) => /* @__PURE__ */ D(Te.Provider, { value: t, children: e }), L = () => {
|
|
17
|
+
const e = ue(Te);
|
|
18
18
|
if (e === null)
|
|
19
19
|
throw new Error("useSpotTrading must be used within SpotProvider");
|
|
20
20
|
return e;
|
|
21
21
|
};
|
|
22
|
-
var q = /* @__PURE__ */ ((e) => (e[e.LOADING = 1] = "LOADING", e[e.SUCCESS = 2] = "SUCCESS", e[e.FAILED = 3] = "FAILED", e))(q || {}), d = /* @__PURE__ */ ((e) => (e.IDLE = "idle", e.PREPARING = "preparing", e.WRAPPING = "wrapping", e.APPROVING = "approving", e.SIGNING = "signing", e.SUBMITTING = "submitting", e.SUCCESS = "success", e.FAILED = "failed", e.REJECTED = "rejected", e))(d || {}), ee = /* @__PURE__ */ ((e) => (e.TRIGGER_MARKET_PRICE = "triggerMarketPriceDisclaimer", e.MARKET_PRICE = "marketOrderDisclaimer", e.LIMIT_PRICE = "limitOrderDisclaimer", e))(ee || {}), z = /* @__PURE__ */ ((e) => (e.WRAP = "wrap", e.APPROVE = "approve", e.CREATE = "create", e))(z || {});
|
|
23
|
-
const
|
|
22
|
+
var q = /* @__PURE__ */ ((e) => (e[e.LOADING = 1] = "LOADING", e[e.SUCCESS = 2] = "SUCCESS", e[e.FAILED = 3] = "FAILED", e))(q || {}), d = /* @__PURE__ */ ((e) => (e.IDLE = "idle", e.PREPARING = "preparing", e.WRAPPING = "wrapping", e.APPROVING = "approving", e.SIGNING = "signing", e.SUBMITTING = "submitting", e.SETTLING = "settling", e.UNCONFIRMED = "unconfirmed", e.SUCCESS = "success", e.FAILED = "failed", e.REJECTED = "rejected", e))(d || {}), ee = /* @__PURE__ */ ((e) => (e.TRIGGER_MARKET_PRICE = "triggerMarketPriceDisclaimer", e.MARKET_PRICE = "marketOrderDisclaimer", e.LIMIT_PRICE = "limitOrderDisclaimer", e))(ee || {}), z = /* @__PURE__ */ ((e) => (e.WRAP = "wrap", e.APPROVE = "approve", e.CREATE = "create", e))(z || {});
|
|
23
|
+
const me = (e) => {
|
|
24
|
+
if (e instanceof Error) return e.message;
|
|
25
|
+
if (typeof e == "string") return e;
|
|
26
|
+
if (typeof e == "object" && e !== null) {
|
|
27
|
+
const t = Reflect.get(e, "message");
|
|
28
|
+
if (typeof t == "string") return t;
|
|
29
|
+
}
|
|
30
|
+
return "Unknown error";
|
|
31
|
+
}, Re = (e) => {
|
|
32
|
+
if (typeof e != "object" || e === null) return 0;
|
|
33
|
+
const t = Reflect.get(e, "code");
|
|
34
|
+
if (typeof t == "number" && Number.isFinite(t)) return t;
|
|
35
|
+
if (typeof t == "string" && t.trim()) {
|
|
36
|
+
if (/^-?\d+$/.test(t)) {
|
|
37
|
+
const n = Number(t);
|
|
38
|
+
return Number.isFinite(n) ? n : 0;
|
|
39
|
+
}
|
|
40
|
+
return t;
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}, Ne = (e) => {
|
|
44
|
+
if (typeof e != "object" || e === null) return {};
|
|
45
|
+
const t = { code: Re(e) }, n = Reflect.get(e, "reason");
|
|
46
|
+
(n === "cancelled" || n === "expired" || n === "unconfirmed" || n === "aborted") && (t.reason = n);
|
|
47
|
+
const r = Reflect.get(e, "orderId");
|
|
48
|
+
typeof r == "string" && (t.orderId = r);
|
|
49
|
+
const i = Reflect.get(e, "status");
|
|
50
|
+
typeof i == "number" && Number.isFinite(i) && (t.status = i);
|
|
51
|
+
const o = Reflect.get(e, "serviceCode");
|
|
52
|
+
return (typeof o == "string" || typeof o == "number" && Number.isFinite(o)) && (t.serviceCode = o), t;
|
|
53
|
+
}, X = (e) => e instanceof Error ? e : Object.assign(new Error(me(e)), Ne(e), { cause: e }), te = (e) => {
|
|
54
|
+
const t = me(e), n = t.match(/,\s*code\s*:\s*(-?\d+)/i), r = n ? Number(n[1]) : 0, i = t.replace(/^error\s*:/i, "").replace(/,\s*code\s*:\s*-?\d+/i, "").trim();
|
|
55
|
+
return {
|
|
56
|
+
...Ne(e),
|
|
57
|
+
message: i || "Unknown error",
|
|
58
|
+
code: Re(e) || (Number.isFinite(r) ? r : 0)
|
|
59
|
+
};
|
|
60
|
+
}, ct = /* @__PURE__ */ new Set([
|
|
24
61
|
d.PREPARING,
|
|
25
62
|
d.WRAPPING,
|
|
26
63
|
d.APPROVING,
|
|
27
64
|
d.SIGNING,
|
|
28
|
-
d.SUBMITTING
|
|
29
|
-
|
|
65
|
+
d.SUBMITTING,
|
|
66
|
+
d.SETTLING
|
|
67
|
+
]), dt = {
|
|
30
68
|
[d.IDLE]: /* @__PURE__ */ new Set(),
|
|
31
69
|
[d.PREPARING]: /* @__PURE__ */ new Set([
|
|
32
70
|
d.PREPARING,
|
|
@@ -56,45 +94,40 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
56
94
|
d.REJECTED
|
|
57
95
|
]),
|
|
58
96
|
[d.SUBMITTING]: /* @__PURE__ */ new Set([
|
|
97
|
+
d.SETTLING,
|
|
59
98
|
d.SUCCESS,
|
|
60
99
|
d.FAILED,
|
|
61
|
-
d.REJECTED
|
|
100
|
+
d.REJECTED,
|
|
101
|
+
d.UNCONFIRMED
|
|
102
|
+
]),
|
|
103
|
+
[d.SETTLING]: /* @__PURE__ */ new Set([
|
|
104
|
+
d.SETTLING,
|
|
105
|
+
d.SUCCESS,
|
|
106
|
+
d.FAILED,
|
|
107
|
+
d.UNCONFIRMED
|
|
108
|
+
]),
|
|
109
|
+
[d.UNCONFIRMED]: /* @__PURE__ */ new Set([
|
|
110
|
+
d.SETTLING,
|
|
111
|
+
d.SUCCESS,
|
|
112
|
+
d.FAILED
|
|
62
113
|
]),
|
|
63
114
|
[d.SUCCESS]: /* @__PURE__ */ new Set(),
|
|
64
115
|
[d.FAILED]: /* @__PURE__ */ new Set(),
|
|
65
116
|
[d.REJECTED]: /* @__PURE__ */ new Set()
|
|
66
|
-
},
|
|
117
|
+
}, re = (e) => ({
|
|
67
118
|
phase: d.IDLE,
|
|
68
119
|
completedWrap: e
|
|
69
|
-
}),
|
|
70
|
-
if (
|
|
120
|
+
}), ie = (e) => ct.has(e), Z = (e) => ie(e) || e === d.UNCONFIRMED, Le = (e) => e === d.IDLE || e === d.FAILED || e === d.REJECTED, Fe = (e, t) => t === d.SETTLING ? !(e instanceof we && (e.reason === "cancelled" || e.reason === "expired")) : !(t !== d.SUBMITTING || e instanceof ve && e.code === "SUBMISSION_FAILED" && e.status !== void 0 && e.status < 500 && e.status !== 408 && !e.cause), ut = (e, t) => dt[e].has(t), lt = (e) => {
|
|
121
|
+
if (ie(e)) return q.LOADING;
|
|
71
122
|
if (e === d.SUCCESS) return q.SUCCESS;
|
|
72
|
-
if (e === d.FAILED || e === d.REJECTED)
|
|
123
|
+
if (e === d.FAILED || e === d.REJECTED || e === d.UNCONFIRMED)
|
|
73
124
|
return q.FAILED;
|
|
74
|
-
},
|
|
125
|
+
}, mt = (e) => {
|
|
75
126
|
if (e === d.WRAPPING) return z.WRAP;
|
|
76
127
|
if (e === d.APPROVING) return z.APPROVE;
|
|
77
128
|
if (e === d.SIGNING || e === d.SUBMITTING)
|
|
78
129
|
return z.CREATE;
|
|
79
|
-
},
|
|
80
|
-
if (e instanceof Error) return e.message;
|
|
81
|
-
if (typeof e == "string") return e;
|
|
82
|
-
if (typeof e == "object" && e !== null) {
|
|
83
|
-
const t = Reflect.get(e, "message");
|
|
84
|
-
if (typeof t == "string") return t;
|
|
85
|
-
}
|
|
86
|
-
return "Unknown error";
|
|
87
|
-
}, rt = (e) => {
|
|
88
|
-
if (typeof e != "object" || e === null) return 0;
|
|
89
|
-
const t = Reflect.get(e, "code");
|
|
90
|
-
return typeof t == "number" && Number.isFinite(t) ? t : typeof t == "string" && /^-?\d+$/.test(t) ? Number(t) : 0;
|
|
91
|
-
}, re = (e) => e instanceof Error ? e : new Error(ge(e)), se = (e) => {
|
|
92
|
-
const t = ge(e), n = t.match(/,\s*code\s*:\s*(-?\d+)/i);
|
|
93
|
-
return {
|
|
94
|
-
message: t.replace(/^error\s*:/i, "").replace(/,\s*code\s*:\s*-?\d+/i, "").trim() || "Unknown error",
|
|
95
|
-
code: rt(e) || (n ? Number(n[1]) : 0)
|
|
96
|
-
};
|
|
97
|
-
}, I = (e) => {
|
|
130
|
+
}, w = (e) => {
|
|
98
131
|
if (e)
|
|
99
132
|
try {
|
|
100
133
|
const t = e();
|
|
@@ -102,7 +135,7 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
102
135
|
});
|
|
103
136
|
} catch {
|
|
104
137
|
}
|
|
105
|
-
},
|
|
138
|
+
}, ft = ({
|
|
106
139
|
execution: e,
|
|
107
140
|
account: t,
|
|
108
141
|
chainId: n,
|
|
@@ -110,16 +143,16 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
110
143
|
inputAmountRaw: i
|
|
111
144
|
}) => {
|
|
112
145
|
const o = e.completedWrap;
|
|
113
|
-
if ((o == null ? void 0 : o.account.toLowerCase()) === t.toLowerCase() && o.chainId === n && o.inputTokenAddress.toLowerCase() === r.toLowerCase() &&
|
|
146
|
+
if ((o == null ? void 0 : o.account.toLowerCase()) === t.toLowerCase() && o.chainId === n && o.inputTokenAddress.toLowerCase() === r.toLowerCase() && gt(o.inputAmountRaw, i))
|
|
114
147
|
return o;
|
|
115
|
-
},
|
|
148
|
+
}, gt = (e, t) => {
|
|
116
149
|
try {
|
|
117
150
|
return BigInt(e) >= BigInt(t);
|
|
118
151
|
} catch {
|
|
119
152
|
return !1;
|
|
120
153
|
}
|
|
121
|
-
},
|
|
122
|
-
const t =
|
|
154
|
+
}, ht = 2e4, Se = /* @__PURE__ */ new WeakMap(), Ie = (e) => {
|
|
155
|
+
const t = Se.get(e);
|
|
123
156
|
if (t) return t;
|
|
124
157
|
const n = {
|
|
125
158
|
all: [...e].sort((r, i) => i.createdAt - r.createdAt),
|
|
@@ -130,85 +163,93 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
130
163
|
};
|
|
131
164
|
for (const r of n.all)
|
|
132
165
|
switch (r.status) {
|
|
133
|
-
case
|
|
166
|
+
case M.Open:
|
|
134
167
|
n.open.push(r);
|
|
135
168
|
break;
|
|
136
|
-
case
|
|
169
|
+
case M.Completed:
|
|
137
170
|
n.completed.push(r);
|
|
138
171
|
break;
|
|
139
|
-
case
|
|
172
|
+
case M.Cancelled:
|
|
140
173
|
n.cancelled.push(r);
|
|
141
174
|
break;
|
|
142
|
-
case
|
|
175
|
+
case M.Expired:
|
|
143
176
|
n.expired.push(r);
|
|
144
177
|
break;
|
|
145
178
|
}
|
|
146
|
-
return
|
|
147
|
-
},
|
|
179
|
+
return Se.set(e, n), n;
|
|
180
|
+
}, Et = (e, t) => {
|
|
148
181
|
const n = new Set(e.map((i) => i.historyKey)), r = (t == null ? void 0 : t.filter(
|
|
149
182
|
(i) => i.version === 1 && !n.has(i.historyKey)
|
|
150
183
|
)) ?? [];
|
|
151
184
|
return [...e, ...r];
|
|
152
|
-
},
|
|
153
|
-
if (!e) return;
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
185
|
+
}, St = (e, t) => {
|
|
186
|
+
if (!e) return t;
|
|
187
|
+
const n = new Map(e.map((o) => [o.historyKey, o])), r = new Set(t.map((o) => o.historyKey));
|
|
188
|
+
return [...t.map((o) => {
|
|
189
|
+
const s = n.get(o.historyKey);
|
|
190
|
+
return s && (s.status === M.Completed && o.status !== M.Completed || s.status !== M.Open && o.status === M.Open) ? s : o;
|
|
191
|
+
}), ...e.filter((o) => !r.has(o.historyKey))];
|
|
192
|
+
}, It = (e, t, n, r, i) => {
|
|
193
|
+
const o = r ?? /* @__PURE__ */ new Set(), s = (m) => o.has(m.historyKey) ? !1 : (o.add(m.historyKey), w(() => {
|
|
194
|
+
var E;
|
|
195
|
+
return (E = n == null ? void 0 : n.onOrderFilled) == null ? void 0 : E.call(n, m);
|
|
196
|
+
}), !0), c = new Map(
|
|
197
|
+
t.map((m) => [m.historyKey, m])
|
|
198
|
+
), a = [];
|
|
199
|
+
for (const m of e ?? []) {
|
|
200
|
+
if (m.version !== 2) continue;
|
|
201
|
+
const E = c.get(m.historyKey);
|
|
202
|
+
!E || E.progress === m.progress && E.status === m.status || (a.push(E), E.status === M.Completed && m.status !== M.Completed && s(E));
|
|
164
203
|
}
|
|
165
|
-
i
|
|
166
|
-
|
|
167
|
-
|
|
204
|
+
(i == null ? void 0 : i.status) === M.Completed && s(i) && !a.some((m) => m.historyKey === i.historyKey) && a.push(i);
|
|
205
|
+
for (const m of t)
|
|
206
|
+
m.status === M.Completed && o.add(m.historyKey);
|
|
207
|
+
a.length > 0 && w(() => {
|
|
208
|
+
var m;
|
|
209
|
+
return (m = n == null ? void 0 : n.onOrdersProgressUpdate) == null ? void 0 : m.call(n, a);
|
|
168
210
|
});
|
|
169
|
-
},
|
|
211
|
+
}, Oe = (e) => {
|
|
170
212
|
if (e === null || typeof e != "object") return !1;
|
|
171
213
|
const t = Object.getPrototypeOf(e);
|
|
172
214
|
return t === Object.prototype || t === null;
|
|
173
|
-
},
|
|
215
|
+
}, se = (e, t) => {
|
|
174
216
|
if (Object.is(e, t)) return e;
|
|
175
217
|
if (Array.isArray(e) && Array.isArray(t)) {
|
|
176
218
|
const n = t.map(
|
|
177
|
-
(i, o) =>
|
|
219
|
+
(i, o) => se(e[o], i)
|
|
178
220
|
);
|
|
179
221
|
return e.length === n.length && n.every((i, o) => i === e[o]) ? e : n;
|
|
180
222
|
}
|
|
181
|
-
if (
|
|
223
|
+
if (Oe(e) && Oe(t)) {
|
|
182
224
|
const n = Object.keys(e), r = Object.keys(t), i = {};
|
|
183
225
|
let o = n.length === r.length;
|
|
184
226
|
for (const s of r) {
|
|
185
227
|
Object.prototype.hasOwnProperty.call(e, s) || (o = !1);
|
|
186
|
-
const
|
|
187
|
-
i[s] =
|
|
228
|
+
const c = se(e[s], t[s]);
|
|
229
|
+
i[s] = c, c !== e[s] && (o = !1);
|
|
188
230
|
}
|
|
189
231
|
return o ? e : i;
|
|
190
232
|
}
|
|
191
233
|
return t;
|
|
192
|
-
},
|
|
234
|
+
}, Ot = (e, t) => e ? se(e, t) : t, Pt = async ({
|
|
193
235
|
client: e,
|
|
194
236
|
account: t,
|
|
195
237
|
signal: n,
|
|
196
238
|
supportLegacyOrders: r,
|
|
197
239
|
previousOrders: i,
|
|
198
|
-
legacyLoaded: o
|
|
199
|
-
callbacks: s
|
|
240
|
+
legacyLoaded: o
|
|
200
241
|
}) => {
|
|
201
|
-
const
|
|
242
|
+
const s = await e.getAccountOrdersResult({
|
|
202
243
|
signal: n,
|
|
203
244
|
account: t,
|
|
204
245
|
legacyOrders: r && !o
|
|
205
246
|
});
|
|
206
247
|
if (n.aborted) throw n.reason;
|
|
207
|
-
return
|
|
208
|
-
orders: r && !
|
|
209
|
-
legacyLoaded: o ||
|
|
248
|
+
return {
|
|
249
|
+
orders: r && !s.legacyLoaded ? Et(s.orders, i) : s.orders,
|
|
250
|
+
legacyLoaded: o || s.legacyLoaded
|
|
210
251
|
};
|
|
211
|
-
},
|
|
252
|
+
}, ae = (e) => ({
|
|
212
253
|
tradeCount: e.tradeCount,
|
|
213
254
|
tradeInterval: e.tradeInterval,
|
|
214
255
|
orderDuration: e.orderDuration,
|
|
@@ -218,220 +259,218 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
218
259
|
limitPricePercent: e.limitPricePercent,
|
|
219
260
|
isMarketOrder: e.isMarketOrder,
|
|
220
261
|
isPriceInverted: void 0
|
|
221
|
-
}),
|
|
222
|
-
...
|
|
262
|
+
}), pt = (e) => ({
|
|
263
|
+
...ae(e),
|
|
223
264
|
cancelOrders: {},
|
|
224
|
-
currentExecution:
|
|
225
|
-
}),
|
|
226
|
-
let t = 0, n, r, i = 0, o, s,
|
|
227
|
-
|
|
228
|
-
|
|
265
|
+
currentExecution: re()
|
|
266
|
+
}), Pe = { isFetching: !1 }, pe = { isFetching: !1 }, yt = (e) => new Promise((t) => setTimeout(t, e)), wt = (e) => {
|
|
267
|
+
let t = 0, n, r, i = 0, o, s, c, a;
|
|
268
|
+
const m = /* @__PURE__ */ new Set();
|
|
269
|
+
let E = !1, u = 0, S = 0, h, O, p;
|
|
270
|
+
return it((I, T) => {
|
|
271
|
+
const j = (g, l = a, P = T().orders.isFetching, x) => {
|
|
272
|
+
const y = s, v = T().orders.data, f = Ot(v, St(v, g));
|
|
273
|
+
return I((N) => ({ orders: { ...N.orders, data: f, isFetching: P } })), s === y && It(v, f, l, m, x), f;
|
|
274
|
+
}, V = async () => {
|
|
229
275
|
if (!n || !r) return;
|
|
230
276
|
if (o) return o;
|
|
231
|
-
const
|
|
232
|
-
|
|
277
|
+
const g = ++i, l = r;
|
|
278
|
+
I((x) => ({
|
|
233
279
|
client: {
|
|
234
280
|
key: n,
|
|
235
|
-
data:
|
|
281
|
+
data: x.client.data,
|
|
236
282
|
error: void 0,
|
|
237
283
|
isFetching: !0
|
|
238
284
|
}
|
|
239
285
|
}));
|
|
240
|
-
const
|
|
241
|
-
let
|
|
242
|
-
for (let
|
|
243
|
-
if (
|
|
286
|
+
const P = (async () => {
|
|
287
|
+
let x;
|
|
288
|
+
for (let y = 0; y < 3; y++) {
|
|
289
|
+
if (g !== i) return;
|
|
244
290
|
try {
|
|
245
|
-
const
|
|
246
|
-
return
|
|
247
|
-
client: { key: n, data:
|
|
248
|
-
}),
|
|
249
|
-
} catch (
|
|
250
|
-
if (
|
|
251
|
-
|
|
291
|
+
const v = await l();
|
|
292
|
+
return g !== i ? void 0 : (I({
|
|
293
|
+
client: { key: n, data: v, isFetching: !1 }
|
|
294
|
+
}), v);
|
|
295
|
+
} catch (v) {
|
|
296
|
+
if (x = v instanceof Error ? v : new Error(String(v)), g !== i) return;
|
|
297
|
+
y < 2 && await yt(2 ** y * 1e3);
|
|
252
298
|
}
|
|
253
299
|
}
|
|
254
|
-
|
|
255
|
-
client: { key: n, error:
|
|
300
|
+
g === i && I({
|
|
301
|
+
client: { key: n, error: x, isFetching: !1 }
|
|
256
302
|
});
|
|
257
303
|
})();
|
|
258
|
-
return o =
|
|
259
|
-
o ===
|
|
260
|
-
}),
|
|
261
|
-
},
|
|
262
|
-
if (!
|
|
263
|
-
return
|
|
264
|
-
if (
|
|
265
|
-
if (!
|
|
266
|
-
const
|
|
267
|
-
return await
|
|
304
|
+
return o = P, P.finally(() => {
|
|
305
|
+
o === P && (o = void 0);
|
|
306
|
+
}), P;
|
|
307
|
+
}, F = async (g = !1, l = !1) => {
|
|
308
|
+
if (!g && u === 0 || !s || !c)
|
|
309
|
+
return T().orders.data;
|
|
310
|
+
if (h) {
|
|
311
|
+
if (!l) return h;
|
|
312
|
+
const N = s;
|
|
313
|
+
return await h, s !== N ? void 0 : F(g, l);
|
|
268
314
|
}
|
|
269
|
-
const
|
|
270
|
-
|
|
315
|
+
const P = ++S, x = c, y = T().orders.data, v = new AbortController();
|
|
316
|
+
O = v, I((N) => ({
|
|
271
317
|
orders: {
|
|
272
318
|
key: s,
|
|
273
|
-
data:
|
|
319
|
+
data: N.orders.data,
|
|
274
320
|
error: void 0,
|
|
275
321
|
isFetching: !0
|
|
276
322
|
}
|
|
277
323
|
}));
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
).then(({ orders:
|
|
283
|
-
if (
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
C
|
|
288
|
-
);
|
|
289
|
-
return m({
|
|
290
|
-
orders: {
|
|
291
|
-
key: s,
|
|
292
|
-
data: G,
|
|
293
|
-
isFetching: !1
|
|
294
|
-
}
|
|
295
|
-
}), G;
|
|
296
|
-
}).catch((C) => {
|
|
297
|
-
if (O !== p || w.signal.aborted)
|
|
324
|
+
const f = x(
|
|
325
|
+
y,
|
|
326
|
+
l ? !1 : E,
|
|
327
|
+
v.signal
|
|
328
|
+
).then(({ orders: N, legacyLoaded: _ }) => {
|
|
329
|
+
if (P === S)
|
|
330
|
+
return E = _, j(N, a, !1);
|
|
331
|
+
}).catch((N) => {
|
|
332
|
+
if (P !== S || v.signal.aborted)
|
|
298
333
|
return;
|
|
299
|
-
const
|
|
300
|
-
|
|
334
|
+
const _ = N instanceof Error ? N : new Error(String(N));
|
|
335
|
+
I((U) => ({
|
|
301
336
|
orders: {
|
|
302
337
|
key: s,
|
|
303
|
-
data:
|
|
304
|
-
error:
|
|
338
|
+
data: U.orders.data,
|
|
339
|
+
error: _,
|
|
305
340
|
isFetching: !1
|
|
306
341
|
}
|
|
307
342
|
}));
|
|
308
343
|
});
|
|
309
|
-
return
|
|
310
|
-
|
|
311
|
-
}),
|
|
312
|
-
},
|
|
313
|
-
|
|
314
|
-
},
|
|
315
|
-
|
|
316
|
-
orders: { ...
|
|
344
|
+
return h = f, f.finally(() => {
|
|
345
|
+
h === f && (h = void 0), O === v && (O = void 0);
|
|
346
|
+
}), f;
|
|
347
|
+
}, B = () => {
|
|
348
|
+
F();
|
|
349
|
+
}, G = () => {
|
|
350
|
+
p && (clearInterval(p), p = void 0), typeof window < "u" && window.removeEventListener("focus", B), O == null || O.abort(), O = void 0, h = void 0, S++, I((g) => ({
|
|
351
|
+
orders: { ...g.orders, isFetching: !1 }
|
|
317
352
|
}));
|
|
318
|
-
},
|
|
319
|
-
!s || !
|
|
320
|
-
|
|
321
|
-
},
|
|
353
|
+
}, K = () => {
|
|
354
|
+
!s || !c || p || (F(!0), p = setInterval(() => {
|
|
355
|
+
F();
|
|
356
|
+
}, ht), typeof window < "u" && window.addEventListener("focus", B));
|
|
322
357
|
};
|
|
323
358
|
return {
|
|
324
|
-
client:
|
|
325
|
-
orders:
|
|
326
|
-
state:
|
|
327
|
-
configureClient: (
|
|
328
|
-
if (n ===
|
|
329
|
-
r =
|
|
359
|
+
client: Pe,
|
|
360
|
+
orders: pe,
|
|
361
|
+
state: pt(e),
|
|
362
|
+
configureClient: (g, l) => {
|
|
363
|
+
if (n === g) {
|
|
364
|
+
r = l;
|
|
330
365
|
return;
|
|
331
366
|
}
|
|
332
|
-
n =
|
|
333
|
-
client:
|
|
334
|
-
}),
|
|
367
|
+
n = g, r = l, i++, o = void 0, I({
|
|
368
|
+
client: g ? { key: g, isFetching: !1 } : Pe
|
|
369
|
+
}), g && l && V();
|
|
335
370
|
},
|
|
336
|
-
refetchClient:
|
|
337
|
-
configureOrders: (l, P) => {
|
|
338
|
-
if (s ===
|
|
339
|
-
|
|
371
|
+
refetchClient: V,
|
|
372
|
+
configureOrders: (g, l, P) => {
|
|
373
|
+
if (a = P, s === g) {
|
|
374
|
+
c = l;
|
|
340
375
|
return;
|
|
341
376
|
}
|
|
342
|
-
|
|
343
|
-
orders:
|
|
344
|
-
}),
|
|
377
|
+
G(), s = g, c = l, E = !1, m.clear(), I({
|
|
378
|
+
orders: g ? { key: g, isFetching: !1 } : pe
|
|
379
|
+
}), u > 0 && K();
|
|
345
380
|
},
|
|
346
|
-
registerOrdersConsumer: () => (
|
|
347
|
-
|
|
381
|
+
registerOrdersConsumer: () => (u++, u === 1 && K(), () => {
|
|
382
|
+
u = Math.max(0, u - 1), u === 0 && G();
|
|
348
383
|
}),
|
|
349
|
-
refetchOrders:
|
|
350
|
-
addOrder: (
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
return
|
|
354
|
-
(
|
|
355
|
-
) ?
|
|
384
|
+
refetchOrders: F,
|
|
385
|
+
addOrder: (g) => {
|
|
386
|
+
I((l) => {
|
|
387
|
+
const P = l.orders.data;
|
|
388
|
+
return P != null && P.some(
|
|
389
|
+
(x) => x.historyKey === g.historyKey
|
|
390
|
+
) ? l : {
|
|
356
391
|
orders: {
|
|
357
|
-
...
|
|
358
|
-
data: [
|
|
392
|
+
...l.orders,
|
|
393
|
+
data: [g, ...P ?? []]
|
|
359
394
|
}
|
|
360
395
|
};
|
|
361
396
|
});
|
|
362
397
|
},
|
|
363
|
-
|
|
364
|
-
|
|
398
|
+
updateOrder: (g, l) => {
|
|
399
|
+
const P = T().orders.data ?? [], x = P.some((y) => y.historyKey === g.historyKey);
|
|
400
|
+
j(x ? P.map((y) => y.historyKey === g.historyKey ? g : y) : [g, ...P], a ?? l, T().orders.isFetching, g);
|
|
401
|
+
},
|
|
402
|
+
setCancelOrder: (g, l) => {
|
|
403
|
+
I((P) => ({
|
|
365
404
|
state: {
|
|
366
|
-
...
|
|
367
|
-
cancelOrders: { ...
|
|
405
|
+
...P.state,
|
|
406
|
+
cancelOrders: { ...P.state.cancelOrders, [g]: l }
|
|
368
407
|
}
|
|
369
408
|
}));
|
|
370
409
|
},
|
|
371
|
-
clearCancelOrder: (
|
|
372
|
-
|
|
373
|
-
if (!(
|
|
374
|
-
const
|
|
375
|
-
return delete
|
|
410
|
+
clearCancelOrder: (g) => {
|
|
411
|
+
I((l) => {
|
|
412
|
+
if (!(g in l.state.cancelOrders)) return l;
|
|
413
|
+
const P = { ...l.state.cancelOrders };
|
|
414
|
+
return delete P[g], { state: { ...l.state, cancelOrders: P } };
|
|
376
415
|
});
|
|
377
416
|
},
|
|
378
|
-
updateState: (
|
|
379
|
-
beginExecution: (
|
|
380
|
-
let
|
|
381
|
-
return
|
|
382
|
-
...
|
|
417
|
+
updateState: (g) => I((l) => ({ state: { ...l.state, ...g } })),
|
|
418
|
+
beginExecution: (g) => {
|
|
419
|
+
let l;
|
|
420
|
+
return I((P) => Le(P.state.currentExecution.phase) ? (l = {
|
|
421
|
+
...g,
|
|
383
422
|
executionId: ++t,
|
|
384
423
|
phase: d.PREPARING
|
|
385
424
|
}, {
|
|
386
425
|
state: {
|
|
387
|
-
...
|
|
388
|
-
currentExecution:
|
|
426
|
+
...P.state,
|
|
427
|
+
currentExecution: l
|
|
389
428
|
}
|
|
390
|
-
}) :
|
|
429
|
+
}) : P), l;
|
|
391
430
|
},
|
|
392
|
-
replaceExecution: (
|
|
393
|
-
let
|
|
394
|
-
return
|
|
395
|
-
const
|
|
396
|
-
return
|
|
397
|
-
state: { ...
|
|
431
|
+
replaceExecution: (g, l) => {
|
|
432
|
+
let P = !1;
|
|
433
|
+
return I((x) => {
|
|
434
|
+
const y = x.state.currentExecution;
|
|
435
|
+
return y.executionId !== g || l.executionId !== g || !ut(y.phase, l.phase) ? x : (P = !0, {
|
|
436
|
+
state: { ...x.state, currentExecution: l }
|
|
398
437
|
});
|
|
399
|
-
}),
|
|
438
|
+
}), P;
|
|
400
439
|
},
|
|
401
440
|
returnToOrderForm: () => {
|
|
402
|
-
const
|
|
403
|
-
return
|
|
441
|
+
const g = T().state.currentExecution;
|
|
442
|
+
return Z(g.phase) || g.phase === d.SUCCESS ? !1 : (I((l) => ({
|
|
404
443
|
state: {
|
|
405
|
-
...
|
|
406
|
-
currentExecution:
|
|
444
|
+
...l.state,
|
|
445
|
+
currentExecution: re(g.completedWrap)
|
|
407
446
|
}
|
|
408
447
|
})), !0);
|
|
409
448
|
},
|
|
410
|
-
syncFormDefaults: (
|
|
449
|
+
syncFormDefaults: (g) => Z(T().state.currentExecution.phase) ? !1 : (I((l) => ({
|
|
411
450
|
state: {
|
|
412
|
-
...
|
|
413
|
-
...
|
|
414
|
-
currentExecution:
|
|
451
|
+
...l.state,
|
|
452
|
+
...ae(g),
|
|
453
|
+
currentExecution: re()
|
|
415
454
|
}
|
|
416
455
|
})), !0),
|
|
417
|
-
startNewOrder: (
|
|
418
|
-
const { state:
|
|
419
|
-
return
|
|
456
|
+
startNewOrder: (g) => {
|
|
457
|
+
const { state: l } = T();
|
|
458
|
+
return Z(l.currentExecution.phase) ? !1 : (I((P) => ({
|
|
420
459
|
state: {
|
|
421
|
-
...
|
|
422
|
-
...
|
|
423
|
-
isMarketOrder:
|
|
424
|
-
currentExecution:
|
|
460
|
+
...P.state,
|
|
461
|
+
...ae(g),
|
|
462
|
+
isMarketOrder: l.isMarketOrder,
|
|
463
|
+
currentExecution: re()
|
|
425
464
|
}
|
|
426
465
|
})), !0);
|
|
427
466
|
}
|
|
428
467
|
};
|
|
429
468
|
});
|
|
430
|
-
},
|
|
469
|
+
}, xe = (e) => {
|
|
431
470
|
var n;
|
|
432
471
|
const t = (n = e.overrides) == null ? void 0 : n.state;
|
|
433
472
|
return {
|
|
434
|
-
isMarketOrder: e.module ===
|
|
473
|
+
isMarketOrder: e.module === Q.LIMIT || e.module === Q.SWAP ? !1 : t == null ? void 0 : t.isMarketOrder,
|
|
435
474
|
tradeCount: t == null ? void 0 : t.tradeCount,
|
|
436
475
|
tradeInterval: t == null ? void 0 : t.tradeInterval,
|
|
437
476
|
orderDuration: t == null ? void 0 : t.orderDuration,
|
|
@@ -440,91 +479,92 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
440
479
|
triggerPricePercent: t == null ? void 0 : t.triggerPricePercent,
|
|
441
480
|
limitPricePercent: t == null ? void 0 : t.limitPricePercent
|
|
442
481
|
};
|
|
443
|
-
},
|
|
482
|
+
}, Ue = de(null), vt = ({
|
|
444
483
|
children: e,
|
|
445
484
|
initialState: t
|
|
446
485
|
}) => {
|
|
447
|
-
const [n] =
|
|
448
|
-
return /* @__PURE__ */
|
|
449
|
-
},
|
|
450
|
-
const e =
|
|
486
|
+
const [n] = tt(() => wt(t));
|
|
487
|
+
return /* @__PURE__ */ D(Ue.Provider, { value: n, children: e });
|
|
488
|
+
}, b = () => {
|
|
489
|
+
const e = ue(Ue);
|
|
451
490
|
if (e === null)
|
|
452
491
|
throw new Error("useSpotStore must be used within SpotProvider");
|
|
453
492
|
return e;
|
|
454
493
|
}, A = (e) => {
|
|
455
|
-
const t =
|
|
456
|
-
return
|
|
457
|
-
},
|
|
458
|
-
const { partner: e, chainId: t, hasChainId: n } =
|
|
494
|
+
const t = b();
|
|
495
|
+
return nt(t, e);
|
|
496
|
+
}, Ct = { isFetching: !1 }, At = () => {
|
|
497
|
+
const { partner: e, chainId: t, hasChainId: n } = L(), r = b(), i = !!(t && n), o = i ? `${e}:${t}` : void 0, s = C(() => t ? We(e, t) : Promise.reject(
|
|
459
498
|
new Error("Spot is unavailable on the connected chain")
|
|
460
499
|
), [t, e]);
|
|
461
|
-
|
|
500
|
+
Y(() => {
|
|
462
501
|
r.getState().configureClient(o, i ? s : void 0);
|
|
463
502
|
}, [i, o, s, r]);
|
|
464
|
-
},
|
|
465
|
-
const { partner: e, chainId: t, hasChainId: n } =
|
|
503
|
+
}, J = () => {
|
|
504
|
+
const { partner: e, chainId: t, hasChainId: n } = L(), r = b(), i = A((m) => m.client), o = !!(t && n), s = o ? `${e}:${t}` : void 0, c = i.key === s ? i : Ct, a = C(() => {
|
|
466
505
|
if (!o || !s) return Promise.resolve(void 0);
|
|
467
|
-
const
|
|
468
|
-
return
|
|
506
|
+
const m = r.getState();
|
|
507
|
+
return m.client.key !== s ? Promise.resolve(void 0) : m.refetchClient();
|
|
469
508
|
}, [o, s, r]);
|
|
470
509
|
return R(
|
|
471
510
|
() => ({
|
|
472
|
-
data:
|
|
473
|
-
error:
|
|
474
|
-
isLoading: o && !
|
|
475
|
-
isFetching:
|
|
476
|
-
refetch:
|
|
511
|
+
data: c.data,
|
|
512
|
+
error: c.error,
|
|
513
|
+
isLoading: o && !c.data && c.error === void 0,
|
|
514
|
+
isFetching: c.isFetching,
|
|
515
|
+
refetch: a
|
|
477
516
|
}),
|
|
478
|
-
[
|
|
517
|
+
[c, o, a]
|
|
479
518
|
);
|
|
480
|
-
},
|
|
519
|
+
}, Tt = { isFetching: !1 }, fe = (e, t, n) => e && t ? JSON.stringify([
|
|
481
520
|
e,
|
|
482
521
|
t.exchangeAddress,
|
|
483
522
|
t.partner,
|
|
484
523
|
t.chainId,
|
|
485
524
|
n
|
|
486
|
-
]) : void 0,
|
|
487
|
-
const { account: e, supportLegacyOrders: t, callbacks: n } =
|
|
488
|
-
async (
|
|
525
|
+
]) : void 0, Rt = () => {
|
|
526
|
+
const { account: e, supportLegacyOrders: t, callbacks: n } = L(), { data: r } = J(), i = b(), o = fe(e, r, t), s = !!o, c = C(
|
|
527
|
+
async (a, m, E) => !e || !r ? { orders: [], legacyLoaded: !1 } : Pt({
|
|
489
528
|
client: r,
|
|
490
529
|
account: e,
|
|
491
|
-
signal:
|
|
530
|
+
signal: E,
|
|
492
531
|
supportLegacyOrders: t,
|
|
493
|
-
previousOrders:
|
|
494
|
-
legacyLoaded:
|
|
495
|
-
callbacks: n
|
|
532
|
+
previousOrders: a,
|
|
533
|
+
legacyLoaded: m
|
|
496
534
|
}),
|
|
497
|
-
[e,
|
|
535
|
+
[e, r, t]
|
|
498
536
|
);
|
|
499
|
-
|
|
500
|
-
i.getState().configureOrders(o, s ?
|
|
501
|
-
}, [s, o,
|
|
502
|
-
},
|
|
503
|
-
const { account: e, supportLegacyOrders: t } =
|
|
537
|
+
Y(() => {
|
|
538
|
+
i.getState().configureOrders(o, s ? c : void 0, n);
|
|
539
|
+
}, [n, s, o, c, i]);
|
|
540
|
+
}, De = () => {
|
|
541
|
+
const { account: e, supportLegacyOrders: t } = L(), { data: n } = J(), r = b(), i = fe(e, n, t), o = !!i, s = C((c = !1) => !o || !i || r.getState().orders.key !== i ? Promise.resolve(void 0) : r.getState().refetchOrders(!0, c), [o, i, r]);
|
|
504
542
|
return { enabled: o, key: i, refetch: s };
|
|
505
|
-
},
|
|
506
|
-
const e =
|
|
507
|
-
return
|
|
508
|
-
(
|
|
509
|
-
|
|
543
|
+
}, Nt = () => {
|
|
544
|
+
const e = b(), { account: t, supportLegacyOrders: n } = L(), { data: r } = J(), i = fe(t, r, n);
|
|
545
|
+
return C(
|
|
546
|
+
(o) => {
|
|
547
|
+
!i || e.getState().orders.key !== i || e.getState().addOrder(o);
|
|
548
|
+
},
|
|
549
|
+
[i, e]
|
|
510
550
|
);
|
|
511
|
-
},
|
|
512
|
-
const e =
|
|
513
|
-
return
|
|
551
|
+
}, Lt = () => {
|
|
552
|
+
const e = b();
|
|
553
|
+
return C(
|
|
514
554
|
() => e.getState().refetchOrders(),
|
|
515
555
|
[e]
|
|
516
556
|
);
|
|
517
|
-
},
|
|
518
|
-
const e = A((
|
|
519
|
-
(
|
|
520
|
-
), { enabled: n, key: r, refetch: i } =
|
|
521
|
-
|
|
557
|
+
}, or = () => {
|
|
558
|
+
const e = A((a) => a.orders), t = A(
|
|
559
|
+
(a) => a.registerOrdersConsumer
|
|
560
|
+
), { enabled: n, key: r, refetch: i } = De(), o = e.key === r ? e : Tt;
|
|
561
|
+
Y(() => t(), [t]);
|
|
522
562
|
const s = R(
|
|
523
|
-
() => o.data === void 0 ? void 0 :
|
|
563
|
+
() => o.data === void 0 ? void 0 : Ie(o.data),
|
|
524
564
|
[o.data]
|
|
525
|
-
),
|
|
526
|
-
const
|
|
527
|
-
return
|
|
565
|
+
), c = C(async () => {
|
|
566
|
+
const a = await i();
|
|
567
|
+
return a === void 0 ? void 0 : Ie(a);
|
|
528
568
|
}, [i]);
|
|
529
569
|
return R(
|
|
530
570
|
() => ({
|
|
@@ -533,17 +573,17 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
533
573
|
isLoading: n && s === void 0 && o.error === void 0,
|
|
534
574
|
isFetching: o.isFetching,
|
|
535
575
|
isRefetching: o.isFetching && s !== void 0,
|
|
536
|
-
refetch:
|
|
576
|
+
refetch: c
|
|
537
577
|
}),
|
|
538
|
-
[o, s, n,
|
|
578
|
+
[o, s, n, c]
|
|
539
579
|
);
|
|
540
|
-
},
|
|
580
|
+
}, Ft = ({ children: e }) => (At(), Rt(), e), xt = ({
|
|
541
581
|
error: e,
|
|
542
582
|
retry: t,
|
|
543
583
|
isRetrying: n
|
|
544
|
-
}) => /* @__PURE__ */
|
|
545
|
-
/* @__PURE__ */
|
|
546
|
-
/* @__PURE__ */
|
|
584
|
+
}) => /* @__PURE__ */ ce("div", { className: "spot-client-error-fallback", role: "alert", children: [
|
|
585
|
+
/* @__PURE__ */ D("p", { children: e.message || "Unable to load Spot configuration." }),
|
|
586
|
+
/* @__PURE__ */ D(
|
|
547
587
|
"button",
|
|
548
588
|
{
|
|
549
589
|
type: "button",
|
|
@@ -553,40 +593,40 @@ const Xe = /* @__PURE__ */ new Set([
|
|
|
553
593
|
children: n ? "Retrying…" : "Retry"
|
|
554
594
|
}
|
|
555
595
|
)
|
|
556
|
-
] }),
|
|
596
|
+
] }), Ut = ({
|
|
557
597
|
children: e,
|
|
558
|
-
fallback: t =
|
|
598
|
+
fallback: t = xt
|
|
559
599
|
}) => {
|
|
560
|
-
const { hasChainId: n } =
|
|
600
|
+
const { hasChainId: n } = L(), { data: r, error: i, isFetching: o, refetch: s } = J(), c = C(async () => {
|
|
561
601
|
await s();
|
|
562
602
|
}, [s]);
|
|
563
|
-
return /* @__PURE__ */
|
|
603
|
+
return /* @__PURE__ */ ce(et, { children: [
|
|
564
604
|
e,
|
|
565
|
-
!r && i && n ? /* @__PURE__ */
|
|
605
|
+
!r && i && n ? /* @__PURE__ */ D(
|
|
566
606
|
t,
|
|
567
607
|
{
|
|
568
608
|
error: i,
|
|
569
|
-
retry:
|
|
609
|
+
retry: c,
|
|
570
610
|
isRetrying: o
|
|
571
611
|
}
|
|
572
612
|
) : null
|
|
573
613
|
] });
|
|
574
|
-
},
|
|
614
|
+
}, Dt = ({
|
|
575
615
|
resetErrorBoundary: e
|
|
576
|
-
}) => /* @__PURE__ */
|
|
577
|
-
/* @__PURE__ */
|
|
578
|
-
/* @__PURE__ */
|
|
579
|
-
] }),
|
|
616
|
+
}) => /* @__PURE__ */ ce("div", { className: "twap-error-fallback", role: "alert", children: [
|
|
617
|
+
/* @__PURE__ */ D("p", { children: "Something went wrong" }),
|
|
618
|
+
/* @__PURE__ */ D("button", { type: "button", onClick: e, children: "Retry" })
|
|
619
|
+
] }), Mt = ({
|
|
580
620
|
children: e,
|
|
581
|
-
fallback: t =
|
|
621
|
+
fallback: t = Dt
|
|
582
622
|
}) => {
|
|
583
|
-
const n =
|
|
623
|
+
const n = b(), r = C((i) => {
|
|
584
624
|
var s;
|
|
585
|
-
(((s = n.getState().client.data) == null ? void 0 : s.analytics) ??
|
|
625
|
+
(((s = n.getState().client.data) == null ? void 0 : s.analytics) ?? je).onCrash(i);
|
|
586
626
|
}, [n]);
|
|
587
|
-
return /* @__PURE__ */
|
|
627
|
+
return /* @__PURE__ */ D(Gt, { fallback: t, reportCrash: r, children: e });
|
|
588
628
|
};
|
|
589
|
-
class
|
|
629
|
+
class Gt extends rt {
|
|
590
630
|
constructor() {
|
|
591
631
|
super(...arguments);
|
|
592
632
|
oe(this, "state", {});
|
|
@@ -604,7 +644,7 @@ class Ct extends He {
|
|
|
604
644
|
const { error: n } = this.state;
|
|
605
645
|
if (n) {
|
|
606
646
|
const r = this.props.fallback;
|
|
607
|
-
return /* @__PURE__ */
|
|
647
|
+
return /* @__PURE__ */ D(
|
|
608
648
|
r,
|
|
609
649
|
{
|
|
610
650
|
error: n,
|
|
@@ -615,131 +655,135 @@ class Ct extends He {
|
|
|
615
655
|
return this.props.children;
|
|
616
656
|
}
|
|
617
657
|
}
|
|
618
|
-
const
|
|
658
|
+
const Bt = ({
|
|
619
659
|
children: e,
|
|
620
660
|
defaults: t,
|
|
621
661
|
scopeKey: n
|
|
622
662
|
}) => {
|
|
623
|
-
const r =
|
|
663
|
+
const r = b(), i = A(
|
|
624
664
|
(s) => s.state.currentExecution.phase
|
|
625
|
-
), o =
|
|
626
|
-
return
|
|
627
|
-
o.current === n ||
|
|
665
|
+
), o = le(n);
|
|
666
|
+
return Y(() => {
|
|
667
|
+
o.current === n || Z(i) || r.getState().syncFormDefaults(t) && (o.current = n);
|
|
628
668
|
}, [t, i, n, r]), e;
|
|
629
|
-
},
|
|
669
|
+
}, Me = de(null), Kt = ({ children: e }) => {
|
|
630
670
|
const {
|
|
631
671
|
inputToken: t,
|
|
632
672
|
outputToken: n,
|
|
633
673
|
inputAmountUi: r,
|
|
634
674
|
quotedOutputAmountRaw: i,
|
|
635
|
-
|
|
636
|
-
|
|
675
|
+
minimumOutputAmountRaw: o,
|
|
676
|
+
inputTokenUsdPrice: s,
|
|
677
|
+
outputTokenUsdPrice: c,
|
|
637
678
|
minTradeSizeUsd: a,
|
|
638
|
-
inputBalanceRaw:
|
|
639
|
-
displayFeePercent:
|
|
640
|
-
priceProtectionPercent:
|
|
641
|
-
module:
|
|
642
|
-
} =
|
|
643
|
-
(
|
|
644
|
-
), y = A(
|
|
645
|
-
(f) => f.state.triggerPriceUi
|
|
679
|
+
inputBalanceRaw: m,
|
|
680
|
+
displayFeePercent: E,
|
|
681
|
+
priceProtectionPercent: u,
|
|
682
|
+
module: S
|
|
683
|
+
} = L(), h = A((l) => l.state.tradeCount), O = A((l) => l.state.tradeInterval), p = A((l) => l.state.orderDuration), I = A(
|
|
684
|
+
(l) => l.state.limitPriceUi
|
|
646
685
|
), T = A(
|
|
647
|
-
(
|
|
648
|
-
),
|
|
649
|
-
(
|
|
650
|
-
),
|
|
651
|
-
(
|
|
652
|
-
),
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
686
|
+
(l) => l.state.triggerPriceUi
|
|
687
|
+
), j = A(
|
|
688
|
+
(l) => l.state.limitPricePercent
|
|
689
|
+
), V = A(
|
|
690
|
+
(l) => l.state.triggerPricePercent
|
|
691
|
+
), F = A(
|
|
692
|
+
(l) => l.state.isPriceInverted
|
|
693
|
+
), B = A((l) => l.state.isMarketOrder), G = A((l) => {
|
|
694
|
+
const P = l.state.currentExecution;
|
|
695
|
+
return P.phase !== d.IDLE ? P.form : void 0;
|
|
696
|
+
}), K = R(
|
|
656
697
|
() => ({
|
|
657
|
-
module:
|
|
698
|
+
module: S,
|
|
658
699
|
inputTokenDecimals: (t == null ? void 0 : t.decimals) ?? 0,
|
|
659
700
|
outputTokenDecimals: (n == null ? void 0 : n.decimals) ?? 0,
|
|
660
701
|
quotedOutputAmountRaw: i,
|
|
661
|
-
|
|
662
|
-
|
|
702
|
+
minimumOutputAmountRaw: o,
|
|
703
|
+
inputTokenUsdPrice: s,
|
|
704
|
+
outputTokenUsdPrice: c,
|
|
663
705
|
minTradeSizeUsd: a,
|
|
664
|
-
priceProtectionPercent:
|
|
665
|
-
displayFeePercent:
|
|
666
|
-
inputBalanceRaw:
|
|
706
|
+
priceProtectionPercent: u,
|
|
707
|
+
displayFeePercent: E,
|
|
708
|
+
inputBalanceRaw: m,
|
|
667
709
|
userInput: {
|
|
668
710
|
inputAmountUi: r,
|
|
669
|
-
isMarketOrder: !!
|
|
670
|
-
tradeCount:
|
|
671
|
-
tradeInterval:
|
|
672
|
-
orderDuration:
|
|
673
|
-
limitPriceUi:
|
|
674
|
-
limitPricePercent:
|
|
675
|
-
triggerPriceUi:
|
|
676
|
-
triggerPricePercent:
|
|
677
|
-
isPriceInverted:
|
|
711
|
+
isMarketOrder: !!B,
|
|
712
|
+
tradeCount: h,
|
|
713
|
+
tradeInterval: O,
|
|
714
|
+
orderDuration: p,
|
|
715
|
+
limitPriceUi: I,
|
|
716
|
+
limitPricePercent: j,
|
|
717
|
+
triggerPriceUi: T,
|
|
718
|
+
triggerPricePercent: V,
|
|
719
|
+
isPriceInverted: F
|
|
678
720
|
}
|
|
679
721
|
}),
|
|
680
722
|
[
|
|
723
|
+
o,
|
|
681
724
|
n == null ? void 0 : n.decimals,
|
|
682
|
-
|
|
683
|
-
|
|
725
|
+
c,
|
|
726
|
+
E,
|
|
684
727
|
i,
|
|
685
728
|
a,
|
|
729
|
+
S,
|
|
686
730
|
u,
|
|
687
|
-
p,
|
|
688
|
-
c,
|
|
689
|
-
t == null ? void 0 : t.decimals,
|
|
690
|
-
o,
|
|
691
|
-
K,
|
|
692
|
-
M,
|
|
693
|
-
T,
|
|
694
|
-
L,
|
|
695
|
-
g,
|
|
696
731
|
m,
|
|
697
|
-
|
|
698
|
-
|
|
732
|
+
t == null ? void 0 : t.decimals,
|
|
733
|
+
s,
|
|
734
|
+
F,
|
|
735
|
+
B,
|
|
736
|
+
j,
|
|
737
|
+
V,
|
|
738
|
+
h,
|
|
739
|
+
p,
|
|
740
|
+
O,
|
|
741
|
+
I,
|
|
699
742
|
r,
|
|
700
|
-
|
|
743
|
+
T
|
|
701
744
|
]
|
|
702
|
-
),
|
|
703
|
-
if (
|
|
704
|
-
const
|
|
705
|
-
return t && n ?
|
|
706
|
-
...
|
|
745
|
+
), g = R(() => {
|
|
746
|
+
if (G) return G;
|
|
747
|
+
const l = Ve(K);
|
|
748
|
+
return t && n ? l : {
|
|
749
|
+
...l,
|
|
707
750
|
isReady: !1,
|
|
708
751
|
canSubmit: !1
|
|
709
752
|
};
|
|
710
|
-
}, [
|
|
711
|
-
return /* @__PURE__ */
|
|
753
|
+
}, [G, t, n, K]);
|
|
754
|
+
return /* @__PURE__ */ D(Me.Provider, { value: g, children: e });
|
|
712
755
|
}, W = () => {
|
|
713
|
-
const e =
|
|
756
|
+
const e = ue(Me);
|
|
714
757
|
if (!e)
|
|
715
758
|
throw new Error("useOrderForm must be used within OrderFormProvider");
|
|
716
759
|
return e;
|
|
717
|
-
},
|
|
718
|
-
var
|
|
719
|
-
const t = Number.isSafeInteger(e.chainId) && Number(e.chainId) > 0, n = (
|
|
720
|
-
() =>
|
|
760
|
+
}, _t = (e) => {
|
|
761
|
+
var E, u, S, h, O, p, I, T, j, V, F, B;
|
|
762
|
+
const t = Number.isSafeInteger(e.chainId) && Number(e.chainId) > 0, n = (E = e.wrappedNativeToken) == null ? void 0 : E.address, r = !!(n && ($((u = e.inputToken) == null ? void 0 : u.address) && he(((S = e.outputToken) == null ? void 0 : S.address) || "", n) || he(((h = e.inputToken) == null ? void 0 : h.address) || "", n) && $((O = e.outputToken) == null ? void 0 : O.address))), i = r ? k(e.inputAmountUi, (p = e.outputToken) == null ? void 0 : p.decimals) : e.marketQuote.isLoading ? void 0 : e.marketQuote.quotedOutputAmountRaw, o = r ? !1 : e.marketQuote.isLoading, s = r ? !1 : e.marketQuote.noLiquidity, c = R(
|
|
763
|
+
() => xe({
|
|
721
764
|
module: e.module,
|
|
722
765
|
overrides: e.overrides
|
|
723
766
|
}),
|
|
724
767
|
[e.module, e.overrides]
|
|
725
|
-
),
|
|
768
|
+
), a = JSON.stringify([
|
|
726
769
|
e.partner,
|
|
727
770
|
e.chainId,
|
|
728
771
|
e.module,
|
|
729
|
-
(
|
|
772
|
+
(I = e.inputToken) == null ? void 0 : I.address,
|
|
730
773
|
(T = e.inputToken) == null ? void 0 : T.decimals,
|
|
731
|
-
(
|
|
732
|
-
(
|
|
733
|
-
(
|
|
734
|
-
(
|
|
735
|
-
|
|
736
|
-
]),
|
|
774
|
+
(j = e.outputToken) == null ? void 0 : j.address,
|
|
775
|
+
(V = e.outputToken) == null ? void 0 : V.decimals,
|
|
776
|
+
(F = e.wrappedNativeToken) == null ? void 0 : F.address,
|
|
777
|
+
(B = e.wrappedNativeToken) == null ? void 0 : B.decimals,
|
|
778
|
+
c
|
|
779
|
+
]), m = R(
|
|
737
780
|
() => ({
|
|
738
781
|
inputAmountUi: e.inputAmountUi,
|
|
739
782
|
minTradeSizeUsd: e.minTradeSizeUsd,
|
|
740
783
|
account: e.account,
|
|
741
784
|
walletInteractions: e.walletInteractions,
|
|
742
785
|
quotedOutputAmountRaw: i,
|
|
786
|
+
minimumOutputAmountRaw: e.marketQuote.isLoading ? void 0 : e.marketQuote.minimumOutputAmountRaw,
|
|
743
787
|
marketPriceLoading: o,
|
|
744
788
|
noLiquidity: s,
|
|
745
789
|
priceProtectionPercent: e.priceProtectionPercent,
|
|
@@ -759,6 +803,8 @@ const yt = ({
|
|
|
759
803
|
overrides: e.overrides
|
|
760
804
|
}),
|
|
761
805
|
[
|
|
806
|
+
e.marketQuote.isLoading,
|
|
807
|
+
e.marketQuote.minimumOutputAmountRaw,
|
|
762
808
|
e.account,
|
|
763
809
|
e.callbacks,
|
|
764
810
|
e.chainId,
|
|
@@ -783,29 +829,29 @@ const yt = ({
|
|
|
783
829
|
i
|
|
784
830
|
]
|
|
785
831
|
);
|
|
786
|
-
return { initialState:
|
|
787
|
-
},
|
|
788
|
-
const { initialState: t, formScopeKey: n, trading: r } =
|
|
789
|
-
return /* @__PURE__ */
|
|
790
|
-
|
|
832
|
+
return { initialState: c, formScopeKey: a, trading: m };
|
|
833
|
+
}, sr = (e) => {
|
|
834
|
+
const { initialState: t, formScopeKey: n, trading: r } = _t(e);
|
|
835
|
+
return /* @__PURE__ */ D(at, { value: r, children: /* @__PURE__ */ D(vt, { initialState: t, children: /* @__PURE__ */ D(Mt, { fallback: e.errorFallback, children: /* @__PURE__ */ D(Ft, { children: /* @__PURE__ */ D(
|
|
836
|
+
Bt,
|
|
791
837
|
{
|
|
792
838
|
defaults: t,
|
|
793
839
|
scopeKey: n,
|
|
794
|
-
children: /* @__PURE__ */
|
|
840
|
+
children: /* @__PURE__ */ D(Ut, { fallback: e.clientErrorFallback, children: /* @__PURE__ */ D(Kt, { children: e.children }) })
|
|
795
841
|
}
|
|
796
842
|
) }) }) }) });
|
|
797
|
-
},
|
|
798
|
-
const { refetch: e } =
|
|
799
|
-
return
|
|
843
|
+
}, ar = (e, t) => R(() => ne(t, e), [e, t]), Ht = 60, qt = () => {
|
|
844
|
+
const { refetch: e } = De();
|
|
845
|
+
return C(
|
|
800
846
|
async (t, n = !1) => {
|
|
801
|
-
for (let r = 0; r <
|
|
847
|
+
for (let r = 0; r < Ht; r++) {
|
|
802
848
|
const i = await e(n);
|
|
803
849
|
if (!i)
|
|
804
850
|
throw new Error("orders not found");
|
|
805
851
|
const o = i.find(
|
|
806
852
|
(s) => s.historyKey === t
|
|
807
853
|
);
|
|
808
|
-
if ((o == null ? void 0 : o.status) ===
|
|
854
|
+
if ((o == null ? void 0 : o.status) === M.Cancelled)
|
|
809
855
|
return;
|
|
810
856
|
await new Promise((s) => setTimeout(s, 1e3));
|
|
811
857
|
}
|
|
@@ -815,64 +861,64 @@ const yt = ({
|
|
|
815
861
|
},
|
|
816
862
|
[e]
|
|
817
863
|
);
|
|
818
|
-
},
|
|
864
|
+
}, bt = (e) => ({
|
|
819
865
|
...e,
|
|
820
|
-
status:
|
|
821
|
-
}),
|
|
822
|
-
const { account: t, walletInteractions: n, callbacks: r } =
|
|
866
|
+
status: M.Cancelled
|
|
867
|
+
}), cr = (e) => {
|
|
868
|
+
const { account: t, walletInteractions: n, callbacks: r } = L(), { data: i } = J(), o = qt(), s = A((u) => u.state.cancelOrders[(e == null ? void 0 : e.historyKey) ?? ""]), c = A((u) => u.setCancelOrder), a = A((u) => u.clearCancelOrder), m = C(async () => {
|
|
823
869
|
const u = e == null ? void 0 : e.historyKey;
|
|
824
870
|
try {
|
|
825
871
|
if (!t) throw new Error("missing account");
|
|
826
872
|
if (!e) throw new Error("order is required");
|
|
827
873
|
if (!i) throw new Error("Spot client is unavailable");
|
|
828
|
-
const
|
|
829
|
-
|
|
830
|
-
var
|
|
831
|
-
return (
|
|
832
|
-
}),
|
|
874
|
+
const S = e.historyKey;
|
|
875
|
+
c(S, { status: q.LOADING }), w(() => {
|
|
876
|
+
var I;
|
|
877
|
+
return (I = r == null ? void 0 : r.onCancelOrderRequest) == null ? void 0 : I.call(r, e);
|
|
878
|
+
}), w(
|
|
833
879
|
() => i.analytics.onCancelOrderRequest(
|
|
834
880
|
[e.version === 1 ? e.id.toString() : e.hash],
|
|
835
881
|
e.version
|
|
836
882
|
)
|
|
837
883
|
);
|
|
838
|
-
const
|
|
839
|
-
if (!
|
|
840
|
-
|
|
884
|
+
const h = i.getCancelOrderRequest(e), O = await n.cancelOrder(h);
|
|
885
|
+
if (!O) throw new Error("failed to cancel order");
|
|
886
|
+
w(() => i.analytics.onCancelOrderSuccess(O)), c(S, {
|
|
841
887
|
status: q.LOADING,
|
|
842
|
-
txHash:
|
|
843
|
-
}), await o(
|
|
844
|
-
const
|
|
845
|
-
return
|
|
888
|
+
txHash: O
|
|
889
|
+
}), await o(S, e.version === 1);
|
|
890
|
+
const p = bt(e);
|
|
891
|
+
return c(S, {
|
|
846
892
|
status: q.SUCCESS,
|
|
847
|
-
txHash:
|
|
848
|
-
}),
|
|
893
|
+
txHash: O
|
|
894
|
+
}), w(
|
|
849
895
|
() => {
|
|
850
|
-
var
|
|
851
|
-
return (
|
|
852
|
-
order:
|
|
853
|
-
txHash:
|
|
896
|
+
var I;
|
|
897
|
+
return (I = r == null ? void 0 : r.onCancelOrderSuccess) == null ? void 0 : I.call(r, {
|
|
898
|
+
order: p,
|
|
899
|
+
txHash: O
|
|
854
900
|
});
|
|
855
901
|
}
|
|
856
|
-
),
|
|
857
|
-
} catch (
|
|
858
|
-
|
|
902
|
+
), O;
|
|
903
|
+
} catch (S) {
|
|
904
|
+
Ce(S) ? u && a(u) : (u && c(u, {
|
|
859
905
|
status: q.FAILED,
|
|
860
|
-
error:
|
|
861
|
-
}),
|
|
862
|
-
var
|
|
863
|
-
return (
|
|
906
|
+
error: me(S)
|
|
907
|
+
}), w(() => i == null ? void 0 : i.analytics.onCancelOrderError(S))), w(() => {
|
|
908
|
+
var h;
|
|
909
|
+
return (h = r == null ? void 0 : r.onCancelOrderFailed) == null ? void 0 : h.call(r, X(S));
|
|
864
910
|
});
|
|
865
911
|
}
|
|
866
912
|
}, [
|
|
867
913
|
t,
|
|
868
914
|
r,
|
|
869
|
-
|
|
915
|
+
a,
|
|
870
916
|
i,
|
|
871
917
|
e,
|
|
872
918
|
o,
|
|
873
|
-
|
|
919
|
+
c,
|
|
874
920
|
n
|
|
875
|
-
]),
|
|
921
|
+
]), E = R(() => {
|
|
876
922
|
const u = s;
|
|
877
923
|
return {
|
|
878
924
|
isLoading: (u == null ? void 0 : u.status) === q.LOADING,
|
|
@@ -883,31 +929,31 @@ const yt = ({
|
|
|
883
929
|
txHash: u == null ? void 0 : u.txHash
|
|
884
930
|
};
|
|
885
931
|
}, [s, e, i]);
|
|
886
|
-
return R(() => ({ cancelOrder:
|
|
887
|
-
},
|
|
932
|
+
return R(() => ({ cancelOrder: m, ...E }), [m, E]);
|
|
933
|
+
}, dr = () => {
|
|
888
934
|
const { module: e, values: t } = W();
|
|
889
|
-
if (t.isMarketOrder && e ===
|
|
935
|
+
if (t.isMarketOrder && e === Q.STOP_LOSS)
|
|
890
936
|
return ee.TRIGGER_MARKET_PRICE;
|
|
891
|
-
if (e ===
|
|
937
|
+
if (e === Q.LIMIT || e === Q.TWAP)
|
|
892
938
|
return t.isMarketOrder ? ee.MARKET_PRICE : ee.LIMIT_PRICE;
|
|
893
|
-
},
|
|
894
|
-
const { callbacks: e } =
|
|
895
|
-
(
|
|
896
|
-
t({ orderDuration:
|
|
897
|
-
var
|
|
898
|
-
return (
|
|
939
|
+
}, ur = () => {
|
|
940
|
+
const { callbacks: e } = L(), t = A((c) => c.updateState), { schedule: n } = W(), { duration: r } = n, i = C(
|
|
941
|
+
(c) => {
|
|
942
|
+
t({ orderDuration: c }), w(() => {
|
|
943
|
+
var a;
|
|
944
|
+
return (a = e == null ? void 0 : e.onOrderDurationChange) == null ? void 0 : a.call(e, c);
|
|
899
945
|
});
|
|
900
946
|
},
|
|
901
947
|
[e, t]
|
|
902
|
-
), o =
|
|
903
|
-
(
|
|
904
|
-
const
|
|
905
|
-
Number.isFinite(
|
|
948
|
+
), o = C(
|
|
949
|
+
(c) => {
|
|
950
|
+
const a = Number(c);
|
|
951
|
+
Number.isFinite(a) && i({ unit: r.unit, value: a });
|
|
906
952
|
},
|
|
907
953
|
[r.unit, i]
|
|
908
|
-
), s =
|
|
909
|
-
(
|
|
910
|
-
i({ unit:
|
|
954
|
+
), s = C(
|
|
955
|
+
(c) => {
|
|
956
|
+
i({ unit: c, value: r.value });
|
|
911
957
|
},
|
|
912
958
|
[r.value, i]
|
|
913
959
|
);
|
|
@@ -922,23 +968,23 @@ const yt = ({
|
|
|
922
968
|
}),
|
|
923
969
|
[r, i, o, s, n]
|
|
924
970
|
);
|
|
925
|
-
},
|
|
926
|
-
const { callbacks: e } =
|
|
927
|
-
(
|
|
928
|
-
t({ tradeInterval:
|
|
929
|
-
var
|
|
930
|
-
return (
|
|
971
|
+
}, lr = () => {
|
|
972
|
+
const { callbacks: e } = L(), t = A((c) => c.updateState), { schedule: n } = W(), { fillDelay: r } = n, i = C(
|
|
973
|
+
(c) => {
|
|
974
|
+
t({ tradeInterval: c }), w(() => {
|
|
975
|
+
var a;
|
|
976
|
+
return (a = e == null ? void 0 : e.onTradeIntervalChange) == null ? void 0 : a.call(e, c);
|
|
931
977
|
});
|
|
932
978
|
},
|
|
933
979
|
[e, t]
|
|
934
|
-
), o =
|
|
935
|
-
(
|
|
936
|
-
const
|
|
937
|
-
Number.isFinite(
|
|
980
|
+
), o = C(
|
|
981
|
+
(c) => {
|
|
982
|
+
const a = Number(c);
|
|
983
|
+
Number.isFinite(a) && i({ unit: r.unit, value: a });
|
|
938
984
|
},
|
|
939
985
|
[r.unit, i]
|
|
940
|
-
), s =
|
|
941
|
-
(
|
|
986
|
+
), s = C(
|
|
987
|
+
(c) => i({ unit: c, value: r.value }),
|
|
942
988
|
[r.value, i]
|
|
943
989
|
);
|
|
944
990
|
return R(
|
|
@@ -952,184 +998,184 @@ const yt = ({
|
|
|
952
998
|
}),
|
|
953
999
|
[r, i, o, s, n]
|
|
954
1000
|
);
|
|
955
|
-
},
|
|
1001
|
+
}, H = (e, t) => ({
|
|
956
1002
|
raw: e || "",
|
|
957
1003
|
ui: ne(e, t)
|
|
958
|
-
}),
|
|
1004
|
+
}), Wt = (e, t, n) => R(() => !e || !t || !n ? [] : e.map((r) => ({
|
|
959
1005
|
rawFill: r,
|
|
960
1006
|
inputToken: t,
|
|
961
1007
|
outputToken: n,
|
|
962
|
-
inputAmount:
|
|
963
|
-
outputAmount:
|
|
1008
|
+
inputAmount: H(r.inAmount, t.decimals),
|
|
1009
|
+
outputAmount: H(r.outAmount, n.decimals),
|
|
964
1010
|
timestamp: r.timestamp,
|
|
965
1011
|
txHash: r.txHash,
|
|
966
|
-
executionRate:
|
|
1012
|
+
executionRate: Ae(
|
|
967
1013
|
r.inAmount,
|
|
968
1014
|
r.outAmount,
|
|
969
1015
|
t.decimals,
|
|
970
1016
|
n.decimals
|
|
971
1017
|
)
|
|
972
|
-
})), [e, t, n]),
|
|
973
|
-
const { chainId: r, partner: i } =
|
|
1018
|
+
})), [e, t, n]), mr = (e, t, n) => {
|
|
1019
|
+
const { chainId: r, partner: i } = L(), o = R(() => {
|
|
974
1020
|
if (!(!t || !n || !e || e.isMarketPrice))
|
|
975
|
-
return
|
|
1021
|
+
return Qe(
|
|
976
1022
|
e,
|
|
977
1023
|
t.decimals,
|
|
978
1024
|
n.decimals
|
|
979
1025
|
);
|
|
980
1026
|
}, [t, e, n]), s = R(() => {
|
|
981
1027
|
if (!(!t || !n || !e))
|
|
982
|
-
return
|
|
1028
|
+
return Je(
|
|
983
1029
|
e,
|
|
984
1030
|
t.decimals,
|
|
985
1031
|
n.decimals
|
|
986
1032
|
);
|
|
987
|
-
}, [t, e, n]),
|
|
1033
|
+
}, [t, e, n]), c = R(() => {
|
|
988
1034
|
if (!(!t || !n || !e))
|
|
989
|
-
return
|
|
1035
|
+
return Ae(
|
|
990
1036
|
e.srcAmountFilled,
|
|
991
1037
|
e.dstAmountFilled,
|
|
992
1038
|
t.decimals,
|
|
993
1039
|
n.decimals
|
|
994
1040
|
);
|
|
995
|
-
}, [t, e, n]),
|
|
1041
|
+
}, [t, e, n]), a = R(() => e ? ze(
|
|
996
1042
|
e,
|
|
997
|
-
r ?
|
|
998
|
-
) : 0, [e, i, r]),
|
|
1043
|
+
r ? $e(i, r) : void 0
|
|
1044
|
+
) : 0, [e, i, r]), m = Wt(e == null ? void 0 : e.fills, t, n);
|
|
999
1045
|
return R(() => {
|
|
1000
1046
|
if (e != null && e.id)
|
|
1001
1047
|
return {
|
|
1002
1048
|
original: e,
|
|
1003
|
-
fills:
|
|
1049
|
+
fills: m,
|
|
1004
1050
|
inputToken: t,
|
|
1005
1051
|
outputToken: n,
|
|
1006
1052
|
orderType: e.type,
|
|
1007
1053
|
createdAt: e.createdAt,
|
|
1008
1054
|
deadline: e.deadline || 0,
|
|
1009
1055
|
totalTrades: e.totalTradesAmount || 0,
|
|
1010
|
-
tradeInterval:
|
|
1056
|
+
tradeInterval: a,
|
|
1011
1057
|
recipient: e.maker || "",
|
|
1012
|
-
inputAmount:
|
|
1013
|
-
limitPrice:
|
|
1058
|
+
inputAmount: H(e.srcAmount, t == null ? void 0 : t.decimals),
|
|
1059
|
+
limitPrice: H(
|
|
1014
1060
|
k(o, n == null ? void 0 : n.decimals),
|
|
1015
1061
|
n == null ? void 0 : n.decimals
|
|
1016
1062
|
),
|
|
1017
|
-
inputAmountPerTrade:
|
|
1063
|
+
inputAmountPerTrade: H(
|
|
1018
1064
|
e.srcAmountPerTrade,
|
|
1019
1065
|
t == null ? void 0 : t.decimals
|
|
1020
1066
|
),
|
|
1021
|
-
minOutputAmountPerTrade:
|
|
1067
|
+
minOutputAmountPerTrade: H(
|
|
1022
1068
|
e.dstMinAmountPerTrade,
|
|
1023
1069
|
n == null ? void 0 : n.decimals
|
|
1024
1070
|
),
|
|
1025
|
-
minOutputAmount:
|
|
1071
|
+
minOutputAmount: H(
|
|
1026
1072
|
e.dstMinAmountTotal,
|
|
1027
1073
|
n == null ? void 0 : n.decimals
|
|
1028
1074
|
),
|
|
1029
|
-
triggerPrice:
|
|
1075
|
+
triggerPrice: H(
|
|
1030
1076
|
k(s, n == null ? void 0 : n.decimals),
|
|
1031
1077
|
n == null ? void 0 : n.decimals
|
|
1032
1078
|
),
|
|
1033
1079
|
id: e.id,
|
|
1034
|
-
inputAmountFilled:
|
|
1080
|
+
inputAmountFilled: H(
|
|
1035
1081
|
e.srcAmountFilled,
|
|
1036
1082
|
t == null ? void 0 : t.decimals
|
|
1037
1083
|
),
|
|
1038
|
-
outputAmountFilled:
|
|
1084
|
+
outputAmountFilled: H(
|
|
1039
1085
|
e.dstAmountFilled,
|
|
1040
1086
|
n == null ? void 0 : n.decimals
|
|
1041
1087
|
),
|
|
1042
1088
|
progress: e.progress,
|
|
1043
|
-
executionPrice:
|
|
1044
|
-
k(
|
|
1089
|
+
executionPrice: H(
|
|
1090
|
+
k(c, n == null ? void 0 : n.decimals),
|
|
1045
1091
|
n == null ? void 0 : n.decimals
|
|
1046
1092
|
),
|
|
1047
1093
|
version: e.version
|
|
1048
1094
|
};
|
|
1049
1095
|
}, [
|
|
1050
1096
|
e,
|
|
1051
|
-
|
|
1097
|
+
m,
|
|
1052
1098
|
t,
|
|
1053
1099
|
n,
|
|
1054
|
-
|
|
1100
|
+
a,
|
|
1055
1101
|
o,
|
|
1056
1102
|
s,
|
|
1057
|
-
|
|
1103
|
+
c
|
|
1058
1104
|
]);
|
|
1059
|
-
},
|
|
1060
|
-
const { marketPriceLoading: e } =
|
|
1105
|
+
}, fr = () => {
|
|
1106
|
+
const { marketPriceLoading: e } = L(), t = W().errors.primary;
|
|
1061
1107
|
return e ? void 0 : t;
|
|
1062
|
-
},
|
|
1063
|
-
const { marketPriceLoading: e, inputToken: t, outputToken: n, callbacks: r } =
|
|
1064
|
-
(
|
|
1065
|
-
|
|
1066
|
-
var
|
|
1067
|
-
return (
|
|
1068
|
-
}),
|
|
1069
|
-
var
|
|
1070
|
-
return (
|
|
1108
|
+
}, gr = () => {
|
|
1109
|
+
const { marketPriceLoading: e, inputToken: t, outputToken: n, callbacks: r } = L(), { limitPrice: i, values: o, module: s, isInverted: c } = W(), a = A((O) => O.updateState), m = C(
|
|
1110
|
+
(O) => {
|
|
1111
|
+
a({ limitPriceUi: O, limitPricePercent: null }), w(() => {
|
|
1112
|
+
var p;
|
|
1113
|
+
return (p = r == null ? void 0 : r.onLimitPriceChange) == null ? void 0 : p.call(r, O || "");
|
|
1114
|
+
}), w(() => {
|
|
1115
|
+
var p;
|
|
1116
|
+
return (p = r == null ? void 0 : r.onLimitPricePercentChange) == null ? void 0 : p.call(r, "");
|
|
1071
1117
|
});
|
|
1072
1118
|
},
|
|
1073
|
-
[r,
|
|
1074
|
-
),
|
|
1075
|
-
(
|
|
1076
|
-
|
|
1119
|
+
[r, a]
|
|
1120
|
+
), E = C(
|
|
1121
|
+
(O) => {
|
|
1122
|
+
a({
|
|
1077
1123
|
limitPriceUi: void 0,
|
|
1078
|
-
limitPricePercent:
|
|
1079
|
-
}),
|
|
1080
|
-
var
|
|
1081
|
-
return (
|
|
1082
|
-
}),
|
|
1083
|
-
var
|
|
1084
|
-
return (
|
|
1124
|
+
limitPricePercent: O
|
|
1125
|
+
}), w(() => {
|
|
1126
|
+
var p;
|
|
1127
|
+
return (p = r == null ? void 0 : r.onLimitPriceChange) == null ? void 0 : p.call(r, "");
|
|
1128
|
+
}), w(() => {
|
|
1129
|
+
var p;
|
|
1130
|
+
return (p = r == null ? void 0 : r.onLimitPricePercentChange) == null ? void 0 : p.call(r, O || "");
|
|
1085
1131
|
});
|
|
1086
1132
|
},
|
|
1087
|
-
[r,
|
|
1088
|
-
), u =
|
|
1089
|
-
|
|
1133
|
+
[r, a]
|
|
1134
|
+
), u = C(() => {
|
|
1135
|
+
a({
|
|
1090
1136
|
limitPriceUi: void 0,
|
|
1091
1137
|
limitPricePercent: void 0
|
|
1092
1138
|
});
|
|
1093
|
-
}, [
|
|
1094
|
-
|
|
1139
|
+
}, [a]), S = !o.isMarketOrder, h = C(() => {
|
|
1140
|
+
a({
|
|
1095
1141
|
isMarketOrder: !o.isMarketOrder,
|
|
1096
1142
|
...o.isMarketOrder ? {} : { isPriceInverted: !1 },
|
|
1097
|
-
...!o.isMarketOrder && s ===
|
|
1143
|
+
...!o.isMarketOrder && s === Q.STOP_LOSS ? { limitPricePercent: void 0 } : {}
|
|
1098
1144
|
});
|
|
1099
|
-
}, [s,
|
|
1145
|
+
}, [s, a, o.isMarketOrder]);
|
|
1100
1146
|
return R(
|
|
1101
1147
|
() => ({
|
|
1102
1148
|
price: i.display,
|
|
1103
1149
|
canonicalPriceRaw: i.raw,
|
|
1104
1150
|
error: i.error,
|
|
1105
|
-
onInputChange:
|
|
1106
|
-
onPercentageChange:
|
|
1151
|
+
onInputChange: m,
|
|
1152
|
+
onPercentageChange: E,
|
|
1107
1153
|
onReset: u,
|
|
1108
1154
|
inputToken: t,
|
|
1109
1155
|
outputToken: n,
|
|
1110
|
-
displayInputToken:
|
|
1111
|
-
displayOutputToken:
|
|
1156
|
+
displayInputToken: c ? n : t,
|
|
1157
|
+
displayOutputToken: c ? t : n,
|
|
1112
1158
|
percentage: i.percentage,
|
|
1113
1159
|
isLoading: !!e,
|
|
1114
|
-
isEnabled:
|
|
1115
|
-
toggle:
|
|
1160
|
+
isEnabled: S,
|
|
1161
|
+
toggle: h,
|
|
1116
1162
|
isTypedValue: i.isTypedValue
|
|
1117
1163
|
}),
|
|
1118
1164
|
[
|
|
1119
1165
|
t,
|
|
1120
|
-
|
|
1121
|
-
|
|
1166
|
+
c,
|
|
1167
|
+
S,
|
|
1122
1168
|
i,
|
|
1123
1169
|
e,
|
|
1124
|
-
|
|
1125
|
-
|
|
1170
|
+
m,
|
|
1171
|
+
E,
|
|
1126
1172
|
u,
|
|
1127
1173
|
n,
|
|
1128
|
-
|
|
1174
|
+
h
|
|
1129
1175
|
]
|
|
1130
1176
|
);
|
|
1131
|
-
},
|
|
1132
|
-
const { marketPriceLoading: e } =
|
|
1177
|
+
}, hr = () => {
|
|
1178
|
+
const { marketPriceLoading: e } = L(), { outputAmount: t } = W();
|
|
1133
1179
|
return R(
|
|
1134
1180
|
() => ({
|
|
1135
1181
|
amount: t,
|
|
@@ -1137,17 +1183,17 @@ const yt = ({
|
|
|
1137
1183
|
}),
|
|
1138
1184
|
[e, t]
|
|
1139
1185
|
);
|
|
1140
|
-
},
|
|
1141
|
-
const { inputToken: e, outputToken: t } =
|
|
1186
|
+
}, Er = () => {
|
|
1187
|
+
const { inputToken: e, outputToken: t } = L(), n = A((a) => a.updateState), { isInverted: r, values: i } = W(), o = A((a) => a.state.triggerPriceUi), s = A((a) => a.state.limitPriceUi), c = C(() => {
|
|
1142
1188
|
n({
|
|
1143
1189
|
isPriceInverted: !r,
|
|
1144
|
-
...o !== void 0 ? { triggerPriceUi:
|
|
1145
|
-
...s !== void 0 ? { limitPriceUi:
|
|
1190
|
+
...o !== void 0 ? { triggerPriceUi: Ee(o) } : {},
|
|
1191
|
+
...s !== void 0 ? { limitPriceUi: Ee(s) } : {}
|
|
1146
1192
|
});
|
|
1147
1193
|
}, [n, r, o, s]);
|
|
1148
1194
|
return R(
|
|
1149
1195
|
() => ({
|
|
1150
|
-
onInvert:
|
|
1196
|
+
onInvert: c,
|
|
1151
1197
|
isInverted: r,
|
|
1152
1198
|
inputToken: e,
|
|
1153
1199
|
outputToken: t,
|
|
@@ -1155,39 +1201,62 @@ const yt = ({
|
|
|
1155
1201
|
displayOutputToken: r ? e : t,
|
|
1156
1202
|
isMarketOrder: i.isMarketOrder
|
|
1157
1203
|
}),
|
|
1158
|
-
[e, r,
|
|
1204
|
+
[e, r, c, t, i.isMarketOrder]
|
|
1159
1205
|
);
|
|
1160
|
-
},
|
|
1206
|
+
}, Ge = (e, t, n) => {
|
|
1207
|
+
if (!e || typeof t.maker != "string" || !n || !t.rawOrder || !("order" in t.rawOrder)) return !1;
|
|
1208
|
+
const r = t.rawOrder.order.witness.exchange.adapter;
|
|
1209
|
+
let i;
|
|
1210
|
+
try {
|
|
1211
|
+
i = JSON.parse(e);
|
|
1212
|
+
} catch {
|
|
1213
|
+
return !1;
|
|
1214
|
+
}
|
|
1215
|
+
return Array.isArray(i) && typeof i[0] == "string" && typeof i[1] == "string" && i[0].toLowerCase() === t.maker.toLowerCase() && i[1].toLowerCase() === r.toLowerCase() && i[2] === n && i[3] === t.chainId;
|
|
1216
|
+
}, Be = (e, t) => {
|
|
1217
|
+
const n = e.getState(), r = n.orders.key;
|
|
1218
|
+
return Ge(r, t, n.state.currentExecution.partner) ? (n.addOrder(t), e.getState().orders.key === r) : !1;
|
|
1219
|
+
}, Ke = async ({ store: e, callbacks: t, order: n, executionId: r, signal: i }) => {
|
|
1220
|
+
const o = new AbortController(), s = () => {
|
|
1221
|
+
(i.aborted || e.getState().state.currentExecution.executionId !== r) && o.abort();
|
|
1222
|
+
};
|
|
1223
|
+
i.addEventListener("abort", s, { once: !0 });
|
|
1224
|
+
const c = e.subscribe(s);
|
|
1225
|
+
s();
|
|
1226
|
+
try {
|
|
1227
|
+
let a = n;
|
|
1228
|
+
o.signal.aborted || w(() => Be(e, n));
|
|
1229
|
+
for await (const m of Ye({ order: n, signal: o.signal }))
|
|
1230
|
+
o.signal.aborted || (w(() => {
|
|
1231
|
+
const E = e.getState();
|
|
1232
|
+
Ge(E.orders.key, n, E.state.currentExecution.partner) && E.updateOrder(m, t);
|
|
1233
|
+
}), a = m);
|
|
1234
|
+
return a;
|
|
1235
|
+
} finally {
|
|
1236
|
+
c(), i.removeEventListener("abort", s), o.abort();
|
|
1237
|
+
}
|
|
1238
|
+
}, jt = (e) => new Promise((t) => setTimeout(t, e)), _e = (e, t) => {
|
|
1161
1239
|
if (!/^\d+$/.test(e))
|
|
1162
1240
|
throw new Error(
|
|
1163
1241
|
`${t} must be a non-negative integer base-unit amount`
|
|
1164
1242
|
);
|
|
1165
1243
|
return BigInt(e);
|
|
1166
|
-
},
|
|
1167
|
-
client: e,
|
|
1168
|
-
walletInteractions: t,
|
|
1169
|
-
tokenAddress: n,
|
|
1170
|
-
inputAmountRaw: r
|
|
1171
|
-
}) => {
|
|
1172
|
-
const i = await t.getAllowance({
|
|
1173
|
-
tokenAddress: n,
|
|
1174
|
-
spenderAddress: e.spenderAddress
|
|
1175
|
-
});
|
|
1176
|
-
return de(i || "0", "Allowance") >= de(r, "Input amount");
|
|
1177
|
-
}, Gt = (e) => {
|
|
1244
|
+
}, Vt = (e) => {
|
|
1178
1245
|
if (!e.client) throw new Error("Spot client is unavailable");
|
|
1179
|
-
if (!e.
|
|
1246
|
+
if (!e.chainId || !Number.isSafeInteger(e.chainId) || e.chainId <= 0)
|
|
1180
1247
|
throw new Error("Spot is unavailable on the connected chain");
|
|
1181
1248
|
if (!e.account) throw new Error("missing account");
|
|
1182
1249
|
if (!e.inputToken) throw new Error("missing inputToken");
|
|
1183
1250
|
if (!e.outputToken) throw new Error("missing outputToken");
|
|
1184
|
-
const t =
|
|
1185
|
-
if (!t ||
|
|
1251
|
+
const t = $(e.inputToken.address) ? e.wrappedNativeToken : e.inputToken;
|
|
1252
|
+
if (!t || $(t.address))
|
|
1186
1253
|
throw new Error("missing wrappedNativeToken for native input");
|
|
1187
1254
|
if (!e.form.canSubmit)
|
|
1188
1255
|
throw new Error("Order form is not submittable");
|
|
1256
|
+
if (e.form.module === Q.SWAP && !e.waitForOrderFill)
|
|
1257
|
+
throw new Error("Swap settlement tracking is unavailable");
|
|
1189
1258
|
const n = e.form.inputAmount.raw;
|
|
1190
|
-
return
|
|
1259
|
+
return _e(n, "Input amount"), {
|
|
1191
1260
|
account: e.account,
|
|
1192
1261
|
chainId: e.chainId,
|
|
1193
1262
|
inputToken: e.inputToken,
|
|
@@ -1196,7 +1265,7 @@ const yt = ({
|
|
|
1196
1265
|
client: e.client,
|
|
1197
1266
|
inputAmountRaw: n
|
|
1198
1267
|
};
|
|
1199
|
-
},
|
|
1268
|
+
}, Qt = ({
|
|
1200
1269
|
analytics: e,
|
|
1201
1270
|
account: t,
|
|
1202
1271
|
chainId: n,
|
|
@@ -1204,26 +1273,27 @@ const yt = ({
|
|
|
1204
1273
|
outputToken: i,
|
|
1205
1274
|
preparedOrder: o
|
|
1206
1275
|
}) => {
|
|
1207
|
-
const { form: s, values:
|
|
1208
|
-
|
|
1276
|
+
const { form: s, values: c } = o;
|
|
1277
|
+
w(
|
|
1209
1278
|
() => e.onRequestOrder({
|
|
1210
1279
|
account: t,
|
|
1211
1280
|
chainId: n,
|
|
1212
1281
|
module: s.module,
|
|
1213
1282
|
srcToken: r,
|
|
1214
1283
|
dstToken: i,
|
|
1215
|
-
fromTokenAmount:
|
|
1216
|
-
srcChunkAmount:
|
|
1217
|
-
triggerPricePerTrade:
|
|
1218
|
-
deadline:
|
|
1219
|
-
fillDelay:
|
|
1220
|
-
minDstAmountOutPerTrade:
|
|
1284
|
+
fromTokenAmount: c.inputAmount,
|
|
1285
|
+
srcChunkAmount: c.inputAmountPerTrade,
|
|
1286
|
+
triggerPricePerTrade: c.triggerOutputAmountPerTrade,
|
|
1287
|
+
deadline: c.deadlineMillis,
|
|
1288
|
+
fillDelay: c.fillDelayMillis,
|
|
1289
|
+
minDstAmountOutPerTrade: c.minOutputAmountPerTrade,
|
|
1221
1290
|
slippage: s.values.slippageBps / 100,
|
|
1222
|
-
isMarketOrder:
|
|
1223
|
-
chunksAmount:
|
|
1291
|
+
isMarketOrder: c.isMarketOrder,
|
|
1292
|
+
chunksAmount: c.totalTrades
|
|
1224
1293
|
})
|
|
1225
1294
|
);
|
|
1226
|
-
},
|
|
1295
|
+
}, Jt = async (e) => {
|
|
1296
|
+
var P, x;
|
|
1227
1297
|
const {
|
|
1228
1298
|
form: t,
|
|
1229
1299
|
walletInteractions: n,
|
|
@@ -1231,248 +1301,220 @@ const yt = ({
|
|
|
1231
1301
|
addNewOrder: i,
|
|
1232
1302
|
refetchActiveOrders: o,
|
|
1233
1303
|
getCurrentExecution: s,
|
|
1234
|
-
beginExecution:
|
|
1235
|
-
replaceExecution:
|
|
1236
|
-
wait:
|
|
1304
|
+
beginExecution: c,
|
|
1305
|
+
replaceExecution: a,
|
|
1306
|
+
wait: m = jt
|
|
1237
1307
|
} = e;
|
|
1238
|
-
let
|
|
1308
|
+
let E;
|
|
1239
1309
|
try {
|
|
1240
|
-
|
|
1241
|
-
} catch (
|
|
1242
|
-
const
|
|
1310
|
+
E = Vt(e);
|
|
1311
|
+
} catch (y) {
|
|
1312
|
+
const v = X(y), f = te(y), N = c({
|
|
1313
|
+
account: e.account,
|
|
1314
|
+
partner: (P = e.client) == null ? void 0 : P.partner,
|
|
1243
1315
|
form: t,
|
|
1244
1316
|
inputToken: e.inputToken,
|
|
1245
1317
|
outputToken: e.outputToken,
|
|
1246
1318
|
chainId: e.chainId
|
|
1247
1319
|
});
|
|
1248
|
-
throw
|
|
1249
|
-
...
|
|
1320
|
+
throw N && a(N.executionId, {
|
|
1321
|
+
...N,
|
|
1250
1322
|
phase: d.FAILED,
|
|
1251
|
-
error:
|
|
1252
|
-
parsedError:
|
|
1253
|
-
}),
|
|
1323
|
+
error: v,
|
|
1324
|
+
parsedError: f
|
|
1325
|
+
}), w(
|
|
1254
1326
|
() => {
|
|
1255
|
-
var
|
|
1256
|
-
return (
|
|
1327
|
+
var _;
|
|
1328
|
+
return (_ = r == null ? void 0 : r.onSubmitOrderFailed) == null ? void 0 : _.call(r, f);
|
|
1257
1329
|
}
|
|
1258
|
-
),
|
|
1330
|
+
), v;
|
|
1259
1331
|
}
|
|
1260
1332
|
const {
|
|
1261
1333
|
account: u,
|
|
1262
|
-
chainId:
|
|
1263
|
-
inputToken:
|
|
1264
|
-
orderInputToken:
|
|
1265
|
-
outputToken:
|
|
1266
|
-
client:
|
|
1334
|
+
chainId: S,
|
|
1335
|
+
inputToken: h,
|
|
1336
|
+
orderInputToken: O,
|
|
1337
|
+
outputToken: p,
|
|
1338
|
+
client: I,
|
|
1267
1339
|
inputAmountRaw: T
|
|
1268
|
-
} =
|
|
1269
|
-
execution:
|
|
1340
|
+
} = E, { analytics: j } = I, V = s(), F = ft({
|
|
1341
|
+
execution: V,
|
|
1270
1342
|
account: u,
|
|
1271
|
-
chainId:
|
|
1272
|
-
inputTokenAddress:
|
|
1343
|
+
chainId: S,
|
|
1344
|
+
inputTokenAddress: h.address,
|
|
1273
1345
|
inputAmountRaw: T
|
|
1274
|
-
}),
|
|
1346
|
+
}), B = c({
|
|
1347
|
+
account: u,
|
|
1348
|
+
partner: I.partner,
|
|
1275
1349
|
form: t,
|
|
1276
|
-
inputToken:
|
|
1277
|
-
outputToken:
|
|
1278
|
-
chainId:
|
|
1279
|
-
completedWrap:
|
|
1280
|
-
wrapTxHash:
|
|
1350
|
+
inputToken: h,
|
|
1351
|
+
outputToken: p,
|
|
1352
|
+
chainId: S,
|
|
1353
|
+
completedWrap: F,
|
|
1354
|
+
wrapTxHash: F == null ? void 0 : F.txHash
|
|
1281
1355
|
});
|
|
1282
|
-
if (!
|
|
1283
|
-
const
|
|
1284
|
-
let
|
|
1285
|
-
const
|
|
1286
|
-
const
|
|
1287
|
-
...
|
|
1288
|
-
...
|
|
1289
|
-
executionId:
|
|
1290
|
-
phase:
|
|
1356
|
+
if (!B) return;
|
|
1357
|
+
const G = B.executionId;
|
|
1358
|
+
let K = B;
|
|
1359
|
+
const g = (y, v = {}) => {
|
|
1360
|
+
const f = {
|
|
1361
|
+
...K,
|
|
1362
|
+
...v,
|
|
1363
|
+
executionId: G,
|
|
1364
|
+
phase: y
|
|
1291
1365
|
};
|
|
1292
|
-
if (!
|
|
1366
|
+
if (!a(G, f))
|
|
1293
1367
|
throw new Error("Execution is no longer current");
|
|
1294
|
-
|
|
1295
|
-
},
|
|
1296
|
-
const
|
|
1297
|
-
...
|
|
1298
|
-
...
|
|
1299
|
-
executionId:
|
|
1300
|
-
phase:
|
|
1368
|
+
K = f;
|
|
1369
|
+
}, l = (y, v = {}) => {
|
|
1370
|
+
const f = {
|
|
1371
|
+
...K,
|
|
1372
|
+
...v,
|
|
1373
|
+
executionId: G,
|
|
1374
|
+
phase: y
|
|
1301
1375
|
};
|
|
1302
|
-
return
|
|
1376
|
+
return a(G, f) ? (K = f, !0) : !1;
|
|
1303
1377
|
};
|
|
1304
1378
|
try {
|
|
1305
|
-
const
|
|
1306
|
-
client:
|
|
1379
|
+
const { order: y } = await Xe({
|
|
1380
|
+
client: I,
|
|
1381
|
+
account: u,
|
|
1382
|
+
inputTokenAddress: O.address,
|
|
1383
|
+
inputAmountRaw: T,
|
|
1384
|
+
nativeInput: $(h.address),
|
|
1385
|
+
completedWrapTxHash: F == null ? void 0 : F.txHash,
|
|
1307
1386
|
walletInteractions: n,
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
T
|
|
1322
|
-
);
|
|
1323
|
-
if (!N) throw new Error("failed to wrap input token");
|
|
1324
|
-
const j = {
|
|
1325
|
-
account: u,
|
|
1326
|
-
chainId: g,
|
|
1327
|
-
inputTokenAddress: E.address,
|
|
1328
|
-
inputAmountRaw: T,
|
|
1329
|
-
txHash: N
|
|
1330
|
-
};
|
|
1331
|
-
D++, f(d.WRAPPING, {
|
|
1332
|
-
wrapTxHash: N,
|
|
1333
|
-
completedWrap: j,
|
|
1334
|
-
stepIndex: D
|
|
1335
|
-
}), I(() => L.onWrapSuccess(N)), I(
|
|
1336
|
-
() => {
|
|
1337
|
-
var H;
|
|
1338
|
-
return (H = r == null ? void 0 : r.onWrapSuccess) == null ? void 0 : H.call(r, {
|
|
1339
|
-
txHash: N,
|
|
1340
|
-
amount: ne(T, m.decimals)
|
|
1387
|
+
wait: m,
|
|
1388
|
+
signal: e.signal,
|
|
1389
|
+
prepareOrder: async () => {
|
|
1390
|
+
var f;
|
|
1391
|
+
if (t.module === Q.SWAP) {
|
|
1392
|
+
const N = await I.getQuote({
|
|
1393
|
+
inToken: O.address,
|
|
1394
|
+
outToken: p.address,
|
|
1395
|
+
inAmount: T,
|
|
1396
|
+
user: u,
|
|
1397
|
+
slippage: 0,
|
|
1398
|
+
dexMinAmountOut: "-1",
|
|
1399
|
+
signal: e.signal
|
|
1341
1400
|
});
|
|
1401
|
+
if ((f = e.signal) == null || f.throwIfAborted(), BigInt(N.netAmountOut) < _e(t.values.minOutputAmountPerTrade, "Minimum output"))
|
|
1402
|
+
throw new ve("INVALID_QUOTE", "Swap price changed. Review a fresh quote before signing.");
|
|
1342
1403
|
}
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
f
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
chainId: g,
|
|
1391
|
-
inputToken: E,
|
|
1392
|
-
outputToken: S,
|
|
1393
|
-
preparedOrder: G
|
|
1394
|
-
}), I(() => L.onSignOrderRequest(G.order)), I(r == null ? void 0 : r.onSignOrderRequest);
|
|
1395
|
-
let Z;
|
|
1396
|
-
try {
|
|
1397
|
-
Z = await n.signOrder(
|
|
1398
|
-
G.signingRequest
|
|
1399
|
-
), I(() => L.onSignOrderSuccess(Z)), I(() => {
|
|
1400
|
-
var N;
|
|
1401
|
-
return (N = r == null ? void 0 : r.onSignOrderSuccess) == null ? void 0 : N.call(r, Z);
|
|
1402
|
-
});
|
|
1403
|
-
} catch (N) {
|
|
1404
|
-
throw I(() => L.onSignOrderError(N)), I(() => {
|
|
1405
|
-
var j;
|
|
1406
|
-
return (j = r == null ? void 0 : r.onSignOrderError) == null ? void 0 : j.call(r, re(N));
|
|
1407
|
-
}), N;
|
|
1404
|
+
return I.prepareOrder({
|
|
1405
|
+
form: t,
|
|
1406
|
+
inputTokenAddress: O.address,
|
|
1407
|
+
outputTokenAddress: p.address,
|
|
1408
|
+
swapperAddress: u
|
|
1409
|
+
});
|
|
1410
|
+
},
|
|
1411
|
+
validateContext: () => {
|
|
1412
|
+
if (s().executionId !== G) throw new Error("Execution is no longer current");
|
|
1413
|
+
},
|
|
1414
|
+
onUpdate: (f) => {
|
|
1415
|
+
const N = f.steps.map((U) => ({ wrap: z.WRAP, approve: z.APPROVE, create: z.CREATE })[U]), _ = f.phase;
|
|
1416
|
+
g(_, {
|
|
1417
|
+
pendingSteps: N,
|
|
1418
|
+
totalSteps: N.length,
|
|
1419
|
+
stepIndex: f.stepIndex,
|
|
1420
|
+
hasApproval: f.hasApproval,
|
|
1421
|
+
wrapTxHash: f.wrapTxHash,
|
|
1422
|
+
approveTxHash: f.approvalTxHash,
|
|
1423
|
+
...f.preparedOrder ? { preparedOrder: f.preparedOrder } : {},
|
|
1424
|
+
...f.phase === "wrapping" && f.event === "success" && f.wrapTxHash ? {
|
|
1425
|
+
completedWrap: { account: u, chainId: S, inputTokenAddress: h.address, inputAmountRaw: T, txHash: f.wrapTxHash }
|
|
1426
|
+
} : {}
|
|
1427
|
+
}), f.phase === "wrapping" && (f.event === "request" && w(r == null ? void 0 : r.onWrapRequest), f.event === "success" && f.wrapTxHash && w(() => {
|
|
1428
|
+
var U;
|
|
1429
|
+
return (U = r == null ? void 0 : r.onWrapSuccess) == null ? void 0 : U.call(r, { txHash: f.wrapTxHash, amount: ne(f.wrapAmountRaw ?? T, O.decimals) });
|
|
1430
|
+
})), f.phase === "approving" && (f.event === "request" && w(r == null ? void 0 : r.onApproveRequest), f.event === "success" && f.approvalTxHash && w(() => {
|
|
1431
|
+
var U;
|
|
1432
|
+
return (U = r == null ? void 0 : r.onApproveSuccess) == null ? void 0 : U.call(r, { txHash: f.approvalTxHash, token: O, amount: ne(T, O.decimals) });
|
|
1433
|
+
})), f.phase === "signing" && (f.event === "prepared" && f.preparedOrder && (Qt({ analytics: j, account: u, chainId: S, inputToken: h, outputToken: p, preparedOrder: f.preparedOrder }), w(r == null ? void 0 : r.onSignOrderRequest)), f.event === "success" && f.signature && w(() => {
|
|
1434
|
+
var U;
|
|
1435
|
+
return (U = r == null ? void 0 : r.onSignOrderSuccess) == null ? void 0 : U.call(r, f.signature);
|
|
1436
|
+
}), f.event === "error" && w(() => {
|
|
1437
|
+
var U;
|
|
1438
|
+
return (U = r == null ? void 0 : r.onSignOrderError) == null ? void 0 : U.call(r, X(f.error));
|
|
1439
|
+
}));
|
|
1440
|
+
}
|
|
1441
|
+
}), v = t.module === Q.SWAP;
|
|
1442
|
+
if (g(v ? d.SETTLING : d.SUCCESS, {
|
|
1443
|
+
orderId: y.id.toString(),
|
|
1444
|
+
order: y
|
|
1445
|
+
}), w(() => i(y)), v || w(() => o()), w(() => {
|
|
1446
|
+
var f;
|
|
1447
|
+
return (f = r == null ? void 0 : r.onOrderCreated) == null ? void 0 : f.call(r, y);
|
|
1448
|
+
}), v) {
|
|
1449
|
+
const f = await e.waitForOrderFill(y, G);
|
|
1450
|
+
return g(d.SUCCESS, { order: f }), f;
|
|
1408
1451
|
}
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
var N;
|
|
1415
|
-
return (N = r == null ? void 0 : r.onOrderCreated) == null ? void 0 : N.call(r, b);
|
|
1416
|
-
}), b;
|
|
1417
|
-
} catch (w) {
|
|
1418
|
-
const F = O.phase, C = re(w), D = ve(w);
|
|
1419
|
-
throw B(
|
|
1420
|
-
D ? d.REJECTED : d.FAILED,
|
|
1452
|
+
return y;
|
|
1453
|
+
} catch (y) {
|
|
1454
|
+
const v = K.phase, f = X(y), _ = !(v === d.SUBMITTING && ((x = e.signal) == null ? void 0 : x.aborted) && y === e.signal.reason) && Fe(y, v), U = !_ && Ce(y);
|
|
1455
|
+
throw l(
|
|
1456
|
+
_ ? d.UNCONFIRMED : U ? d.REJECTED : d.FAILED,
|
|
1421
1457
|
{
|
|
1422
|
-
error:
|
|
1423
|
-
parsedError:
|
|
1458
|
+
error: f,
|
|
1459
|
+
parsedError: te(y)
|
|
1424
1460
|
}
|
|
1425
|
-
),
|
|
1426
|
-
var
|
|
1427
|
-
return (
|
|
1428
|
-
}),
|
|
1461
|
+
), U ? w(r == null ? void 0 : r.onSubmitOrderRejected) : v !== d.SETTLING && w(() => {
|
|
1462
|
+
var ge;
|
|
1463
|
+
return (ge = r == null ? void 0 : r.onSubmitOrderFailed) == null ? void 0 : ge.call(r, te(y));
|
|
1464
|
+
}), f;
|
|
1429
1465
|
}
|
|
1430
|
-
},
|
|
1431
|
-
const { data: e } =
|
|
1466
|
+
}, zt = () => {
|
|
1467
|
+
const { data: e } = J(), {
|
|
1432
1468
|
inputToken: t,
|
|
1433
1469
|
outputToken: n,
|
|
1434
1470
|
wrappedNativeToken: r,
|
|
1435
1471
|
chainId: i,
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
account: a,
|
|
1472
|
+
callbacks: o,
|
|
1473
|
+
account: s,
|
|
1439
1474
|
walletInteractions: c
|
|
1440
|
-
} =
|
|
1441
|
-
return
|
|
1442
|
-
|
|
1443
|
-
|
|
1475
|
+
} = L(), a = Nt(), m = Lt(), E = W(), u = b(), S = le(void 0);
|
|
1476
|
+
return Y(() => () => {
|
|
1477
|
+
var h;
|
|
1478
|
+
return (h = S.current) == null ? void 0 : h.abort();
|
|
1479
|
+
}, [s, i, e]), C(() => {
|
|
1480
|
+
if (!Le(u.getState().state.currentExecution.phase)) return;
|
|
1481
|
+
const h = new AbortController();
|
|
1482
|
+
S.current = h, Jt({
|
|
1483
|
+
signal: h.signal,
|
|
1484
|
+
account: s,
|
|
1444
1485
|
chainId: i,
|
|
1445
|
-
hasChainId: o,
|
|
1446
1486
|
inputToken: t,
|
|
1447
1487
|
outputToken: n,
|
|
1448
1488
|
wrappedNativeToken: r,
|
|
1449
|
-
form:
|
|
1489
|
+
form: E,
|
|
1450
1490
|
client: e,
|
|
1451
1491
|
walletInteractions: c,
|
|
1452
|
-
callbacks:
|
|
1453
|
-
addNewOrder:
|
|
1454
|
-
refetchActiveOrders:
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1492
|
+
callbacks: o,
|
|
1493
|
+
addNewOrder: a,
|
|
1494
|
+
refetchActiveOrders: m,
|
|
1495
|
+
waitForOrderFill: (O, p) => Ke({ store: u, callbacks: o, order: O, executionId: p, signal: h.signal }),
|
|
1496
|
+
getCurrentExecution: () => u.getState().state.currentExecution,
|
|
1497
|
+
beginExecution: u.getState().beginExecution,
|
|
1498
|
+
replaceExecution: u.getState().replaceExecution
|
|
1458
1499
|
}).catch(() => {
|
|
1500
|
+
}).finally(() => {
|
|
1501
|
+
S.current === h && (S.current = void 0);
|
|
1459
1502
|
});
|
|
1460
1503
|
}, [
|
|
1461
|
-
a,
|
|
1462
|
-
h,
|
|
1463
1504
|
s,
|
|
1505
|
+
a,
|
|
1506
|
+
o,
|
|
1464
1507
|
i,
|
|
1465
1508
|
e,
|
|
1466
|
-
|
|
1509
|
+
E,
|
|
1467
1510
|
t,
|
|
1468
|
-
o,
|
|
1469
1511
|
n,
|
|
1470
1512
|
r,
|
|
1471
|
-
|
|
1472
|
-
|
|
1513
|
+
m,
|
|
1514
|
+
u,
|
|
1473
1515
|
c
|
|
1474
1516
|
]);
|
|
1475
|
-
},
|
|
1517
|
+
}, $t = () => {
|
|
1476
1518
|
const e = A((n) => n.state.currentExecution), t = A(
|
|
1477
1519
|
(n) => n.returnToOrderForm
|
|
1478
1520
|
);
|
|
@@ -1480,23 +1522,98 @@ const yt = ({
|
|
|
1480
1522
|
() => ({ ...e, returnToOrderForm: t }),
|
|
1481
1523
|
[e, t]
|
|
1482
1524
|
);
|
|
1483
|
-
},
|
|
1484
|
-
|
|
1525
|
+
}, ye = (e) => {
|
|
1526
|
+
if (typeof e == "number" && Number.isSafeInteger(e) && e >= 0 || typeof e == "string" && /^\d+$/.test(e)) return BigInt(e);
|
|
1527
|
+
}, He = (e, t) => {
|
|
1528
|
+
if (e !== null && typeof e == "object")
|
|
1529
|
+
return t === null || typeof t != "object" ? !1 : Object.entries(e).every(
|
|
1530
|
+
([i, o]) => He(o, Reflect.get(t, i))
|
|
1531
|
+
);
|
|
1532
|
+
const n = ye(e), r = ye(t);
|
|
1533
|
+
return n !== void 0 || r !== void 0 ? n !== void 0 && n === r : typeof e == "number" || typeof t == "number" ? !1 : typeof e == "string" && typeof t == "string" && /^0x/i.test(e) ? e.toLowerCase() === t.toLowerCase() : e === t;
|
|
1534
|
+
}, Yt = (e, t) => e.find(
|
|
1535
|
+
(n) => n.version === 2 && "order" in n.rawOrder && He(t, n.rawOrder.order)
|
|
1536
|
+
);
|
|
1537
|
+
async function Xt({ store: e, callbacks: t, signal: n }) {
|
|
1538
|
+
var c;
|
|
1539
|
+
const r = e.getState().state.currentExecution;
|
|
1540
|
+
if (r.phase !== d.UNCONFIRMED || r.executionId === void 0) return;
|
|
1541
|
+
const i = r.executionId;
|
|
1542
|
+
let o = {
|
|
1543
|
+
...r,
|
|
1544
|
+
phase: d.SETTLING,
|
|
1545
|
+
error: void 0,
|
|
1546
|
+
parsedError: void 0
|
|
1547
|
+
};
|
|
1548
|
+
if (!e.getState().replaceExecution(i, o)) return;
|
|
1549
|
+
const s = (a, m = {}) => {
|
|
1550
|
+
const E = { ...o, ...m, phase: a };
|
|
1551
|
+
return e.getState().replaceExecution(i, E) ? (o = E, !0) : !1;
|
|
1552
|
+
};
|
|
1553
|
+
try {
|
|
1554
|
+
n.throwIfAborted();
|
|
1555
|
+
let a = o.order;
|
|
1556
|
+
const m = !a;
|
|
1557
|
+
if (!a || a.status === M.Open && a.deadline + 6e4 <= Date.now()) {
|
|
1558
|
+
if (!o.account || !o.chainId || !a && !o.preparedOrder)
|
|
1559
|
+
throw new Error("The original swap status is still unknown. Check its account history before starting another swap.");
|
|
1560
|
+
const u = await Ze({
|
|
1561
|
+
swapper: o.account,
|
|
1562
|
+
chainId: o.chainId,
|
|
1563
|
+
getv1orders: !1,
|
|
1564
|
+
signal: n
|
|
1565
|
+
}), S = a;
|
|
1566
|
+
if (a = S ? u.find((h) => h.id.toLowerCase() === S.id.toLowerCase() && h.chainId === S.chainId && h.historyKey === S.historyKey) : o.preparedOrder && Yt(u, o.preparedOrder.order), !a)
|
|
1567
|
+
throw new we(
|
|
1568
|
+
"The original order has not appeared in history yet. Check its status again before starting another swap.",
|
|
1569
|
+
"unconfirmed",
|
|
1570
|
+
o.orderId ?? ""
|
|
1571
|
+
);
|
|
1572
|
+
}
|
|
1573
|
+
if (n.throwIfAborted(), !s(d.SETTLING, { order: a, orderId: a.id })) return;
|
|
1574
|
+
w(() => Be(e, a)), m && w(() => {
|
|
1575
|
+
var u;
|
|
1576
|
+
return (u = t == null ? void 0 : t.onOrderCreated) == null ? void 0 : u.call(t, a);
|
|
1577
|
+
});
|
|
1578
|
+
const E = ((c = o.form) == null ? void 0 : c.module) === Q.SWAP ? await Ke({ store: e, callbacks: t, order: a, executionId: i, signal: n }) : a;
|
|
1579
|
+
return s(d.SUCCESS, { order: E, orderId: E.id }), E;
|
|
1580
|
+
} catch (a) {
|
|
1581
|
+
throw s(Fe(a, d.SETTLING) ? d.UNCONFIRMED : d.FAILED, {
|
|
1582
|
+
error: X(a),
|
|
1583
|
+
parsedError: te(a)
|
|
1584
|
+
}), a;
|
|
1585
|
+
}
|
|
1586
|
+
}
|
|
1587
|
+
const Zt = () => {
|
|
1588
|
+
const e = b(), { callbacks: t } = L(), n = le(void 0);
|
|
1589
|
+
return Y(() => () => {
|
|
1590
|
+
var r;
|
|
1591
|
+
return (r = n.current) == null ? void 0 : r.abort();
|
|
1592
|
+
}, []), C(() => {
|
|
1593
|
+
if (n.current) return;
|
|
1594
|
+
const r = new AbortController();
|
|
1595
|
+
n.current = r, Xt({ store: e, callbacks: t, signal: r.signal }).catch(() => {
|
|
1596
|
+
}).finally(() => {
|
|
1597
|
+
n.current === r && (n.current = void 0);
|
|
1598
|
+
});
|
|
1599
|
+
}, [t, e]);
|
|
1600
|
+
}, Sr = () => {
|
|
1601
|
+
const e = $t(), {
|
|
1485
1602
|
inputToken: t,
|
|
1486
1603
|
outputToken: n,
|
|
1487
1604
|
chainId: r,
|
|
1488
1605
|
hasChainId: i,
|
|
1489
1606
|
module: o,
|
|
1490
1607
|
overrides: s
|
|
1491
|
-
} =
|
|
1492
|
-
() =>
|
|
1493
|
-
[o, s,
|
|
1494
|
-
),
|
|
1608
|
+
} = L(), { data: c, isLoading: a } = J(), m = zt(), E = Zt(), u = A((T) => T.startNewOrder), S = C(() => m(), [m]), h = C(
|
|
1609
|
+
() => u(xe({ module: o, overrides: s })),
|
|
1610
|
+
[o, s, u]
|
|
1611
|
+
), O = lt(e.phase), p = mt(e.phase), I = ie(e.phase);
|
|
1495
1612
|
return R(() => ({
|
|
1496
1613
|
phase: e.phase,
|
|
1497
|
-
status:
|
|
1614
|
+
status: O,
|
|
1498
1615
|
error: e.parsedError,
|
|
1499
|
-
currentStep:
|
|
1616
|
+
currentStep: p,
|
|
1500
1617
|
currentStepIndex: e.stepIndex,
|
|
1501
1618
|
approvalTxHash: e.approveTxHash,
|
|
1502
1619
|
wrapTxHash: e.wrapTxHash,
|
|
@@ -1505,30 +1622,36 @@ const yt = ({
|
|
|
1505
1622
|
inputToken: e.inputToken ?? t,
|
|
1506
1623
|
outputToken: e.outputToken ?? n,
|
|
1507
1624
|
chainId: e.chainId ?? r,
|
|
1508
|
-
|
|
1509
|
-
|
|
1625
|
+
account: e.account,
|
|
1626
|
+
orderId: e.orderId,
|
|
1627
|
+
order: e.order,
|
|
1628
|
+
submitOrder: S,
|
|
1629
|
+
resumeTracking: E,
|
|
1630
|
+
startNewOrder: h,
|
|
1510
1631
|
returnToOrderForm: e.returnToOrderForm,
|
|
1511
|
-
isExecuting:
|
|
1632
|
+
isExecuting: I,
|
|
1512
1633
|
isSuccess: e.phase === d.SUCCESS,
|
|
1513
1634
|
isFailed: e.phase === d.FAILED,
|
|
1514
1635
|
isRejected: e.phase === d.REJECTED,
|
|
1515
|
-
|
|
1516
|
-
|
|
1636
|
+
isUnconfirmed: e.phase === d.UNCONFIRMED,
|
|
1637
|
+
isPreparingOrder: e.phase === d.PREPARING || i && a && !c,
|
|
1638
|
+
canDismiss: !I
|
|
1517
1639
|
}), [
|
|
1518
|
-
|
|
1519
|
-
|
|
1640
|
+
c,
|
|
1641
|
+
p,
|
|
1520
1642
|
t,
|
|
1521
1643
|
n,
|
|
1522
1644
|
r,
|
|
1523
|
-
|
|
1524
|
-
|
|
1645
|
+
a,
|
|
1646
|
+
I,
|
|
1525
1647
|
i,
|
|
1526
|
-
|
|
1527
|
-
|
|
1648
|
+
h,
|
|
1649
|
+
S,
|
|
1528
1650
|
E,
|
|
1651
|
+
O,
|
|
1529
1652
|
e
|
|
1530
1653
|
]);
|
|
1531
|
-
},
|
|
1654
|
+
}, Ir = () => {
|
|
1532
1655
|
const {
|
|
1533
1656
|
inputToken: e,
|
|
1534
1657
|
outputToken: t,
|
|
@@ -1537,20 +1660,20 @@ const yt = ({
|
|
|
1537
1660
|
noLiquidity: i,
|
|
1538
1661
|
inputAmountUi: o,
|
|
1539
1662
|
marketPriceLoading: s,
|
|
1540
|
-
hasChainId:
|
|
1541
|
-
} =
|
|
1663
|
+
hasChainId: c
|
|
1664
|
+
} = L(), a = W(), { data: m, isLoading: E } = J(), u = A(
|
|
1542
1665
|
(T) => T.state.currentExecution.phase
|
|
1543
|
-
),
|
|
1666
|
+
), S = ie(u), h = !!(e && $(e.address) && (!n || $(n.address))), O = s || !a.isReady && !a.errors.primary || r === void 0, p = S || c && E && !m || !!(e && t && o && O), I = !!(!a.canSubmit || Z(u) || !c || !m || i || p || !e || !t || h);
|
|
1544
1667
|
return R(() => ({
|
|
1545
|
-
disabled:
|
|
1546
|
-
loading:
|
|
1547
|
-
}), [
|
|
1548
|
-
},
|
|
1549
|
-
const { inputToken: e, outputToken: t, callbacks: n } =
|
|
1668
|
+
disabled: I,
|
|
1669
|
+
loading: p
|
|
1670
|
+
}), [I, p]);
|
|
1671
|
+
}, Or = () => {
|
|
1672
|
+
const { inputToken: e, outputToken: t, callbacks: n } = L(), r = A((s) => s.updateState), { trades: i } = W(), o = C(
|
|
1550
1673
|
(s) => {
|
|
1551
|
-
r({ tradeCount: s }),
|
|
1552
|
-
var
|
|
1553
|
-
return (
|
|
1674
|
+
r({ tradeCount: s }), w(() => {
|
|
1675
|
+
var c;
|
|
1676
|
+
return (c = n == null ? void 0 : n.onTradeCountChange) == null ? void 0 : c.call(n, s);
|
|
1554
1677
|
});
|
|
1555
1678
|
},
|
|
1556
1679
|
[n, r]
|
|
@@ -1569,62 +1692,62 @@ const yt = ({
|
|
|
1569
1692
|
}),
|
|
1570
1693
|
[e, o, t, i]
|
|
1571
1694
|
);
|
|
1572
|
-
},
|
|
1573
|
-
const { marketPriceLoading: e, inputToken: t, outputToken: n, callbacks: r } =
|
|
1574
|
-
(
|
|
1575
|
-
|
|
1576
|
-
var
|
|
1577
|
-
return (
|
|
1578
|
-
}),
|
|
1579
|
-
var
|
|
1580
|
-
return (
|
|
1695
|
+
}, Pr = () => {
|
|
1696
|
+
const { marketPriceLoading: e, inputToken: t, outputToken: n, callbacks: r } = L(), { marketPrice: i, trades: o, triggerPrice: s, isInverted: c } = W(), a = A((S) => S.updateState), m = C(
|
|
1697
|
+
(S) => {
|
|
1698
|
+
a({ triggerPriceUi: S, triggerPricePercent: null }), w(() => {
|
|
1699
|
+
var h;
|
|
1700
|
+
return (h = r == null ? void 0 : r.onTriggerPriceChange) == null ? void 0 : h.call(r, S || "");
|
|
1701
|
+
}), w(() => {
|
|
1702
|
+
var h;
|
|
1703
|
+
return (h = r == null ? void 0 : r.onTriggerPricePercentChange) == null ? void 0 : h.call(r, "");
|
|
1581
1704
|
});
|
|
1582
1705
|
},
|
|
1583
|
-
[r,
|
|
1584
|
-
),
|
|
1585
|
-
(
|
|
1586
|
-
|
|
1706
|
+
[r, a]
|
|
1707
|
+
), E = C(
|
|
1708
|
+
(S) => {
|
|
1709
|
+
a({
|
|
1587
1710
|
triggerPriceUi: void 0,
|
|
1588
|
-
triggerPricePercent:
|
|
1589
|
-
}),
|
|
1590
|
-
var
|
|
1591
|
-
return (
|
|
1592
|
-
}),
|
|
1593
|
-
var
|
|
1594
|
-
return (
|
|
1711
|
+
triggerPricePercent: S
|
|
1712
|
+
}), w(() => {
|
|
1713
|
+
var h;
|
|
1714
|
+
return (h = r == null ? void 0 : r.onTriggerPriceChange) == null ? void 0 : h.call(r, "");
|
|
1715
|
+
}), w(() => {
|
|
1716
|
+
var h;
|
|
1717
|
+
return (h = r == null ? void 0 : r.onTriggerPricePercentChange) == null ? void 0 : h.call(r, S || "");
|
|
1595
1718
|
});
|
|
1596
1719
|
},
|
|
1597
|
-
[r,
|
|
1598
|
-
), u =
|
|
1599
|
-
|
|
1720
|
+
[r, a]
|
|
1721
|
+
), u = C(() => {
|
|
1722
|
+
a({
|
|
1600
1723
|
triggerPricePercent: void 0,
|
|
1601
1724
|
triggerPriceUi: void 0
|
|
1602
1725
|
});
|
|
1603
|
-
}, [
|
|
1726
|
+
}, [a]);
|
|
1604
1727
|
return R(
|
|
1605
1728
|
() => ({
|
|
1606
1729
|
price: s.display,
|
|
1607
1730
|
canonicalPriceRaw: s.raw,
|
|
1608
1731
|
outputAmountPerTrade: o.triggerOutputAmountPerTrade,
|
|
1609
1732
|
error: s.error,
|
|
1610
|
-
onInputChange:
|
|
1611
|
-
onPercentageChange:
|
|
1733
|
+
onInputChange: m,
|
|
1734
|
+
onPercentageChange: E,
|
|
1612
1735
|
percentage: s.percentage,
|
|
1613
1736
|
onReset: u,
|
|
1614
1737
|
inputToken: t,
|
|
1615
1738
|
outputToken: n,
|
|
1616
|
-
displayInputToken:
|
|
1617
|
-
displayOutputToken:
|
|
1739
|
+
displayInputToken: c ? n : t,
|
|
1740
|
+
displayOutputToken: c ? t : n,
|
|
1618
1741
|
isLoading: !!(e || !i.raw),
|
|
1619
1742
|
isTypedValue: s.isTypedValue
|
|
1620
1743
|
}),
|
|
1621
1744
|
[
|
|
1622
1745
|
t,
|
|
1623
|
-
|
|
1746
|
+
c,
|
|
1624
1747
|
i.raw,
|
|
1625
1748
|
e,
|
|
1626
|
-
|
|
1627
|
-
|
|
1749
|
+
m,
|
|
1750
|
+
E,
|
|
1628
1751
|
u,
|
|
1629
1752
|
n,
|
|
1630
1753
|
o.triggerOutputAmountPerTrade,
|
|
@@ -1632,53 +1755,68 @@ const yt = ({
|
|
|
1632
1755
|
]
|
|
1633
1756
|
);
|
|
1634
1757
|
};
|
|
1635
|
-
|
|
1758
|
+
ke(st.version);
|
|
1636
1759
|
export {
|
|
1637
|
-
|
|
1760
|
+
wr as DISCLAIMER_URL,
|
|
1638
1761
|
ee as Disclaimer,
|
|
1639
1762
|
d as ExecutionPhase,
|
|
1640
1763
|
q as ExecutionStatus,
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1764
|
+
vr as InputErrors,
|
|
1765
|
+
Cr as Module,
|
|
1766
|
+
Ar as ORBS_LOGO,
|
|
1767
|
+
Tr as ORBS_SLTP_FAQ_URL,
|
|
1768
|
+
Rr as ORBS_TWAP_FAQ_URL,
|
|
1769
|
+
Nr as ORBS_WEBSITE_URL,
|
|
1770
|
+
Lr as OrderFilter,
|
|
1771
|
+
Fr as OrderSettlementError,
|
|
1772
|
+
xr as OrderStatus,
|
|
1773
|
+
Ur as OrderType,
|
|
1774
|
+
Dr as Partners,
|
|
1775
|
+
Mr as QuoteError,
|
|
1776
|
+
Gr as SWAP_CAPABILITIES,
|
|
1777
|
+
Br as SpotError,
|
|
1778
|
+
sr as SpotProvider,
|
|
1652
1779
|
z as Steps,
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1780
|
+
Kr as TimeUnit,
|
|
1781
|
+
_r as analytics,
|
|
1782
|
+
Hr as calculateOrder,
|
|
1783
|
+
qr as calculateOrderForm,
|
|
1784
|
+
br as createClient,
|
|
1785
|
+
Wr as eqIgnoreCase,
|
|
1786
|
+
jr as executeOrder,
|
|
1787
|
+
Vr as getOrderExecutionRate,
|
|
1788
|
+
Qr as getOrderFillDelayMillis,
|
|
1789
|
+
Jr as getOrderLimitPriceRate,
|
|
1790
|
+
zr as getOrders,
|
|
1791
|
+
$r as getQuote,
|
|
1792
|
+
Yr as getTriggerPriceRate,
|
|
1793
|
+
Xr as getTwapConfig,
|
|
1794
|
+
Zr as invertPriceInput,
|
|
1795
|
+
kr as isNativeAddress,
|
|
1796
|
+
en as isQuoteFresh,
|
|
1797
|
+
tn as isSwapSupported,
|
|
1798
|
+
rn as isTxRejected,
|
|
1799
|
+
nn as setUIVersion,
|
|
1800
|
+
on as submitSwap,
|
|
1801
|
+
sn as toAmountRaw,
|
|
1802
|
+
an as toAmountUI,
|
|
1803
|
+
ar as useAmountUi,
|
|
1804
|
+
cr as useCancelOrder,
|
|
1805
|
+
J as useClient,
|
|
1806
|
+
dr as useDisclaimer,
|
|
1807
|
+
ur as useDuration,
|
|
1808
|
+
Sr as useExecution,
|
|
1809
|
+
lr as useFillDelay,
|
|
1810
|
+
mr as useHistoryOrder,
|
|
1811
|
+
fr as useInputErrors,
|
|
1812
|
+
gr as useLimitPrice,
|
|
1677
1813
|
W as useOrderForm,
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1814
|
+
or as useOrders,
|
|
1815
|
+
hr as useOutputAmount,
|
|
1816
|
+
Er as usePriceDisplay,
|
|
1817
|
+
Ir as useSubmitButton,
|
|
1818
|
+
Or as useTrades,
|
|
1819
|
+
Pr as useTriggerPrice,
|
|
1820
|
+
cn as waitForOrder,
|
|
1821
|
+
dn as watchOrder
|
|
1684
1822
|
};
|