@heliofi/withdraw-core 1.4.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/jwt.d.ts +10 -1
- package/dist/types/requests.d.ts +11 -9
- package/dist/withdraw-core.cjs +1 -1
- package/dist/withdraw-core.js +26 -22
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -266,9 +266,9 @@ try {
|
|
|
266
266
|
## Helpers
|
|
267
267
|
|
|
268
268
|
```ts
|
|
269
|
-
import { decodeJwt,
|
|
269
|
+
import { decodeJwt, isQuoteValid, isSupported, isBelow, SDK_VERSION } from '@heliofi/withdraw-core';
|
|
270
270
|
|
|
271
|
-
|
|
271
|
+
isQuoteValid(quote.token); // → true while the quote's JWT is decodable and unexpired (with a small buffer); false if undecodable
|
|
272
272
|
decodeJwt(quote.token); // → { exp, iat, withdrawalDetailId, ... }
|
|
273
273
|
SDK_VERSION; // → this package's version string
|
|
274
274
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { toWithdrawalErrorCode, WithdrawalApiError, } from './errors';
|
|
2
2
|
export type { WithdrawalJwtPayload } from './jwt';
|
|
3
|
-
export { decodeJwt,
|
|
3
|
+
export { decodeJwt, isQuoteValid } from './jwt';
|
|
4
4
|
export type { ApiClientConfig } from './sdk';
|
|
5
5
|
export { DEFAULT_BASE_URL, WithdrawalSDK } from './sdk';
|
|
6
6
|
export type { BalanceResponse, BaseBlockchain, BlockchainEngine, CreateWithdrawalDetailParams, HypercorePreparedTransaction, PolymarketWalletPreparedTransaction, PopulatedBlockchain, PreparedTransaction, QuoteResponse, QuoteSummary, RawPreparedTransaction, RoutesResponse, SlimCurrencyWithBlockchain, SlimCurrencyWithPopulatedBlockchain, StatusResponse, SubmitResponse, SubmitWithdrawalParams, UpdateWithdrawalDetailParams, UserOpPreparedTransaction, WalletCurrencyBalance, WithdrawalConfig, WithdrawalCurrenciesExchangeRate, WithdrawalCustomerSwapRoute, WithdrawalQuoteFee, } from './types';
|
package/dist/jwt.d.ts
CHANGED
|
@@ -5,4 +5,13 @@ export interface WithdrawalJwtPayload {
|
|
|
5
5
|
[key: string]: unknown;
|
|
6
6
|
}
|
|
7
7
|
export declare const decodeJwt: (jwt: string) => WithdrawalJwtPayload;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Returns whether a quote token is still usable: it decodes and has not passed
|
|
10
|
+
* its expiry (minus a safety buffer). A token with no `exp` claim is treated as
|
|
11
|
+
* non-expiring and therefore valid. An undecodable/malformed token is treated as
|
|
12
|
+
* invalid (`false`) so callers re-quote instead of crashing.
|
|
13
|
+
*
|
|
14
|
+
* Note: this only checks decodability and expiry — it does NOT verify the JWT
|
|
15
|
+
* signature.
|
|
16
|
+
*/
|
|
17
|
+
export declare const isQuoteValid: (jwt: string, bufferMs?: number) => boolean;
|
package/dist/types/requests.d.ts
CHANGED
|
@@ -22,13 +22,15 @@ export type SubmitWithdrawalParams = SubmitWithdrawalDto & {
|
|
|
22
22
|
withdrawalDetailId: string;
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* Parameters for `PATCH /withdraw-details/:withdrawalDetailId` (re-quote).
|
|
26
|
+
*
|
|
27
|
+
* The request **body** is the backend `PreparedWithdrawalDto` (re-exported from
|
|
28
|
+
* `@heliofi/common-fe`) — the same shape as prepare, so a re-quote stays in
|
|
29
|
+
* lockstep with backend. `withdrawalDetailId` travels in the URL path and is a
|
|
30
|
+
* separate argument on the SDK method, not part of the body.
|
|
31
|
+
*
|
|
32
|
+
* The backend handler is live: `WithdrawalDetailController.requote`
|
|
33
|
+
* (`@Patch(':id')`) maps `ownerAddress`, `recipient`, `amount`, `toCurrencyId`,
|
|
34
|
+
* `sourceCurrencyId` and `slippageBps`.
|
|
27
35
|
*/
|
|
28
|
-
export
|
|
29
|
-
ownerAddress: string;
|
|
30
|
-
recipient: string;
|
|
31
|
-
amount: string;
|
|
32
|
-
toCurrencyId: string;
|
|
33
|
-
sourceCurrencyId: string;
|
|
34
|
-
}
|
|
36
|
+
export type UpdateWithdrawalDetailParams = PreparedWithdrawalDto;
|
package/dist/withdraw-core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var U=Object.defineProperty;var m=(e,t,r)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var D=(e,t,r)=>m(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let S=(function(e){return e.SOL="SOL",e.ETH="ETH",e.POLYGON="POLYGON",e.BASE="BASE",e.BITCOIN="BITCOIN",e.ARBITRUM="ARBITRUM",e.BSC="BSC",e.TRON="TRON",e.DOGE="DOGE",e.TON="TON",e})({}),C=(function(e){return e.EVM="EVM",e.SOL="SOL",e.BTC="BTC",e.TRON="TRON",e.HYPERCORE="HYPERCORE",e.DOGE="DOGE",e.TON="TON",e})({}),H=(function(e){return e.HELIO="HELIO",e.MAGIC_EDEN="MAGIC_EDEN",e})({}),P=(function(e){return e.IRON="iron",e.MP_SELL="mp_sell",e})({}),T=(function(e){return e.QUOTED="QUOTED",e.SUBMITTING="SUBMITTING",e.SUBMITTED="SUBMITTED",e.BRIDGING="BRIDGING",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.FAILED_EXPIRED="FAILED_EXPIRED",e.EXPIRED="EXPIRED",e.REFUNDED_BY_PROVIDER="REFUNDED_BY_PROVIDER",e})({}),d=(function(e){return e.ACKNOWLEDGED="acknowledged",e.UNACKNOWLEDGED="unacknowledged",e.REJECTED="rejected",e})({}),w=(function(e){return e.RAW="raw",e.USER_OP="userop",e.POLYMARKET_WALLET="polymarket_wallet",e.HYPERCORE="hypercore",e})({});const X=new Set([T.COMPLETED,T.FAILED,T.FAILED_EXPIRED,T.EXPIRED,T.REFUNDED_BY_PROVIDER]);var I=(e=>(e.WITHDRAW_TX_INVALID_SIGNATURE="WITHDRAW_TX_INVALID_SIGNATURE",e.WITHDRAW_TX_BLOCKHASH_EXPIRED="WITHDRAW_TX_BLOCKHASH_EXPIRED",e.WITHDRAW_TX_NONCE_TOO_LOW="WITHDRAW_TX_NONCE_TOO_LOW",e.WITHDRAW_TX_USEROP_EXPIRED="WITHDRAW_TX_USEROP_EXPIRED",e.WITHDRAW_TX_UNDERPRICED="WITHDRAW_TX_UNDERPRICED",e.WITHDRAW_BUNDLER_REJECTED="WITHDRAW_BUNDLER_REJECTED",e.WITHDRAW_TX_BROADCAST_TIMEOUT="WITHDRAW_TX_BROADCAST_TIMEOUT",e.WITHDRAW_TX_ALREADY_KNOWN="WITHDRAW_TX_ALREADY_KNOWN",e.WITHDRAW_QUOTE_EXPIRED="WITHDRAW_QUOTE_EXPIRED",e.WITHDRAW_SANCTIONS_BLOCKED="WITHDRAW_SANCTIONS_BLOCKED",e.WITHDRAW_NO_ROUTE="WITHDRAW_NO_ROUTE",e.WITHDRAW_NOT_FOUND="WITHDRAW_NOT_FOUND",e.WITHDRAW_INSUFFICIENT_BALANCE="WITHDRAW_INSUFFICIENT_BALANCE",e.WITHDRAW_DETAILS_NOT_UPDATABLE="WITHDRAW_DETAILS_NOT_UPDATABLE",e.INVALID_WALLET_ADDRESS="INVALID_WALLET_ADDRESS",e.BALANCE_FETCH_FAILED="BALANCE_FETCH_FAILED",e.UNKNOWN="UNKNOWN",e))(I||{});const M=new Set(Object.values(I));class O extends Error{constructor(r,s,n){super(n??s);D(this,"name","WithdrawalApiError");this.status=r,this.code=s,this.detail=n}}const l=e=>e&&M.has(e)?e:I.UNKNOWN,p=e=>{const t=e.split(".");if(t.length!==3)throw new Error("Invalid JWT: expected 3 parts");const r=atob(t[1].replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(r)},g=(e,t=5e3)=>{const{exp:r}=p(e);return r===void 0?!
|
|
1
|
+
"use strict";var U=Object.defineProperty;var m=(e,t,r)=>t in e?U(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var D=(e,t,r)=>m(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let S=(function(e){return e.SOL="SOL",e.ETH="ETH",e.POLYGON="POLYGON",e.BASE="BASE",e.BITCOIN="BITCOIN",e.ARBITRUM="ARBITRUM",e.BSC="BSC",e.TRON="TRON",e.DOGE="DOGE",e.TON="TON",e})({}),C=(function(e){return e.EVM="EVM",e.SOL="SOL",e.BTC="BTC",e.TRON="TRON",e.HYPERCORE="HYPERCORE",e.DOGE="DOGE",e.TON="TON",e})({}),H=(function(e){return e.HELIO="HELIO",e.MAGIC_EDEN="MAGIC_EDEN",e})({}),P=(function(e){return e.IRON="iron",e.MP_SELL="mp_sell",e})({}),T=(function(e){return e.QUOTED="QUOTED",e.SUBMITTING="SUBMITTING",e.SUBMITTED="SUBMITTED",e.BRIDGING="BRIDGING",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.FAILED_EXPIRED="FAILED_EXPIRED",e.EXPIRED="EXPIRED",e.REFUNDED_BY_PROVIDER="REFUNDED_BY_PROVIDER",e})({}),d=(function(e){return e.ACKNOWLEDGED="acknowledged",e.UNACKNOWLEDGED="unacknowledged",e.REJECTED="rejected",e})({}),w=(function(e){return e.RAW="raw",e.USER_OP="userop",e.POLYMARKET_WALLET="polymarket_wallet",e.HYPERCORE="hypercore",e})({});const X=new Set([T.COMPLETED,T.FAILED,T.FAILED_EXPIRED,T.EXPIRED,T.REFUNDED_BY_PROVIDER]);var I=(e=>(e.WITHDRAW_TX_INVALID_SIGNATURE="WITHDRAW_TX_INVALID_SIGNATURE",e.WITHDRAW_TX_BLOCKHASH_EXPIRED="WITHDRAW_TX_BLOCKHASH_EXPIRED",e.WITHDRAW_TX_NONCE_TOO_LOW="WITHDRAW_TX_NONCE_TOO_LOW",e.WITHDRAW_TX_USEROP_EXPIRED="WITHDRAW_TX_USEROP_EXPIRED",e.WITHDRAW_TX_UNDERPRICED="WITHDRAW_TX_UNDERPRICED",e.WITHDRAW_BUNDLER_REJECTED="WITHDRAW_BUNDLER_REJECTED",e.WITHDRAW_TX_BROADCAST_TIMEOUT="WITHDRAW_TX_BROADCAST_TIMEOUT",e.WITHDRAW_TX_ALREADY_KNOWN="WITHDRAW_TX_ALREADY_KNOWN",e.WITHDRAW_QUOTE_EXPIRED="WITHDRAW_QUOTE_EXPIRED",e.WITHDRAW_SANCTIONS_BLOCKED="WITHDRAW_SANCTIONS_BLOCKED",e.WITHDRAW_NO_ROUTE="WITHDRAW_NO_ROUTE",e.WITHDRAW_NOT_FOUND="WITHDRAW_NOT_FOUND",e.WITHDRAW_INSUFFICIENT_BALANCE="WITHDRAW_INSUFFICIENT_BALANCE",e.WITHDRAW_DETAILS_NOT_UPDATABLE="WITHDRAW_DETAILS_NOT_UPDATABLE",e.INVALID_WALLET_ADDRESS="INVALID_WALLET_ADDRESS",e.BALANCE_FETCH_FAILED="BALANCE_FETCH_FAILED",e.UNKNOWN="UNKNOWN",e))(I||{});const M=new Set(Object.values(I));class O extends Error{constructor(r,s,n){super(n??s);D(this,"name","WithdrawalApiError");this.status=r,this.code=s,this.detail=n}}const l=e=>e&&M.has(e)?e:I.UNKNOWN,p=e=>{const t=e.split(".");if(t.length!==3)throw new Error("Invalid JWT: expected 3 parts");const r=atob(t[1].replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(r)},g=(e,t=5e3)=>{try{const{exp:r}=p(e);return r===void 0?!0:Date.now()<r*1e3-t}catch{return!1}},R="1.5.0",W="https://api.hel.io/v1";class B{constructor(t){D(this,"baseUrl");D(this,"headers");D(this,"fetch");D(this,"consumer");var s,n;this.consumer=t.consumer;const r=t.baseUrl??W;this.baseUrl=r.endsWith("/")?r.slice(0,-1):r,this.headers={"Content-Type":"application/json","X-MoonPay-Commerce-SDK-Version":R,...(s=this.consumer)!=null&&s.name?{"X-MoonPay-Commerce-Consumer":this.consumer.name}:{},...(n=this.consumer)!=null&&n.version?{"X-MoonPay-Commerce-Consumer-Version":this.consumer.version}:{},...t.headers},this.fetch=t.fetch??globalThis.fetch.bind(globalThis)}async get(t,r){return this.request("GET",t,void 0,r)}async post(t,r,s){return this.request("POST",t,r,s)}async patch(t,r,s){return this.request("PATCH",t,r,s)}async request(t,r,s,n){const i=`${this.baseUrl}${r}`,E=await this.fetch(i,{method:t,headers:this.headers,body:s!==void 0?JSON.stringify(s):void 0,signal:n});if(!E.ok)throw await this.buildError(E);return await E.json()}async buildError(t){let r,s;try{const n=await t.json();r=n.message??void 0,s=n.errorCode??n.errorType??void 0}catch{r=t.statusText||void 0}return new O(t.status,l(s),r)}}const A=e=>/^\d+$/.test(e);function N(e){if(typeof e!="string")return null;let t=e.trim();if((t.startsWith("v")||t.startsWith("V"))&&(t=t.slice(1)),t==="")return null;const r=t.indexOf("+");r!==-1&&(t=t.slice(0,r));const s=t.indexOf("-"),n=s===-1?t:t.slice(0,s),i=s===-1?"":t.slice(s+1),E=n.split(".");if(E.length>3)return null;const u=[];for(const c of E){if(!A(c))return null;u.push(Number(c))}const o=i===""?[]:i.split(".").filter(c=>c!=="");return s!==-1&&o.length===0?null:{major:u[0]??0,minor:u[1]??0,patch:u[2]??0,prerelease:o}}function _(e,t){return e<t?-1:e>t?1:0}function F(e,t){if(e.length===0&&t.length===0)return 0;if(e.length===0)return 1;if(t.length===0)return-1;const r=Math.min(e.length,t.length);for(let s=0;s<r;s++){const n=e[s],i=t[s];if(n===i)continue;const E=A(n),u=A(i);if(E&&u){const o=_(Number(n),Number(i));if(o!==0)return o}else return E?-1:u?1:n<i?-1:1}return _(e.length,t.length)}function G(e,t){const r=N(e)??{major:0,minor:0,patch:0,prerelease:[]},s=N(t)??{major:0,minor:0,patch:0,prerelease:[]},n=_(r.major,s.major)||_(r.minor,s.minor)||_(r.patch,s.patch);return n!==0?n:F(r.prerelease,s.prerelease)}function h(e,t){return G(e,t)<0}const L="@heliofi/withdraw-core";function f(e={}){const{minSupportedVersions:t,consumer:r}=e,s=(t==null?void 0:t.packages)??{},n=e.sdkVersion??R,i={[L]:n};r!=null&&r.name&&r.version!=null&&(i[r.name]=r.version);for(const[E,u]of Object.entries(s)){const o=i[E];if(o!=null&&h(o,u))return!1}return!0}class a{constructor(t){this.api=t}static create(t={}){return new a(new B(t))}isSupported(t){return f({minSupportedVersions:t,consumer:this.api.consumer})}async getWithdrawalConfig(t,r){return this.api.get(`/withdrawal-configs/${t}/public`,r)}async getRoutes(t,r){return this.api.get(`/withdraw/${t}/routes`,r)}async getBalance(t,r,s){return this.api.get(`/withdraw/${t}/balances?walletAddress=${encodeURIComponent(r)}`,s)}async createWithdrawalDetail(t,r){const{withdrawalConfigId:s,...n}=t;return this.api.post(`/withdraw/${s}/prepare`,n,r)}async updateWithdrawalDetail(t,r,s){return this.api.patch(`/withdraw-details/${t}`,r,s)}async submitWithdrawal(t,r){const{withdrawalDetailId:s,...n}=t;return this.api.post(`/withdraw/${s}/submit`,n,r)}async getWithdrawalDetail(t,r){return this.api.get(`/withdraw-details/${t}`,r)}}exports.BlockchainEngineType=C;exports.BlockchainSymbol=S;exports.BroadcastAck=d;exports.DEFAULT_BASE_URL=W;exports.Platform=H;exports.SDK_PACKAGE_NAME=L;exports.SDK_VERSION=R;exports.SignedTransactionKind=w;exports.TERMINAL_STATES=X;exports.WithdrawalApiError=O;exports.WithdrawalErrorCode=I;exports.WithdrawalFeature=P;exports.WithdrawalSDK=a;exports.WithdrawalState=T;exports.decodeJwt=p;exports.isBelow=h;exports.isQuoteValid=g;exports.isSupported=f;exports.toWithdrawalErrorCode=l;
|
package/dist/withdraw-core.js
CHANGED
|
@@ -39,9 +39,13 @@ const f = (e) => e && p.has(e) ? e : R.UNKNOWN, L = (e) => {
|
|
|
39
39
|
const s = atob(t[1].replace(/-/g, "+").replace(/_/g, "/"));
|
|
40
40
|
return JSON.parse(s);
|
|
41
41
|
}, v = (e, t = 5e3) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
try {
|
|
43
|
+
const { exp: s } = L(e);
|
|
44
|
+
return s === void 0 ? !0 : Date.now() < s * 1e3 - t;
|
|
45
|
+
} catch {
|
|
46
|
+
return !1;
|
|
47
|
+
}
|
|
48
|
+
}, O = "1.5.0", h = "https://api.hel.io/v1";
|
|
45
49
|
class U {
|
|
46
50
|
constructor(t) {
|
|
47
51
|
T(this, "baseUrl");
|
|
@@ -69,15 +73,15 @@ class U {
|
|
|
69
73
|
return this.request("PATCH", t, s, r);
|
|
70
74
|
}
|
|
71
75
|
async request(t, s, r, n) {
|
|
72
|
-
const E = `${this.baseUrl}${s}`,
|
|
76
|
+
const E = `${this.baseUrl}${s}`, u = await this.fetch(E, {
|
|
73
77
|
method: t,
|
|
74
78
|
headers: this.headers,
|
|
75
79
|
body: r !== void 0 ? JSON.stringify(r) : void 0,
|
|
76
80
|
signal: n
|
|
77
81
|
});
|
|
78
|
-
if (!
|
|
79
|
-
throw await this.buildError(
|
|
80
|
-
return await
|
|
82
|
+
if (!u.ok)
|
|
83
|
+
throw await this.buildError(u);
|
|
84
|
+
return await u.json();
|
|
81
85
|
}
|
|
82
86
|
async buildError(t) {
|
|
83
87
|
let s, r;
|
|
@@ -101,18 +105,18 @@ function A(e) {
|
|
|
101
105
|
if ((t.startsWith("v") || t.startsWith("V")) && (t = t.slice(1)), t === "") return null;
|
|
102
106
|
const s = t.indexOf("+");
|
|
103
107
|
s !== -1 && (t = t.slice(0, s));
|
|
104
|
-
const r = t.indexOf("-"), n = r === -1 ? t : t.slice(0, r), E = r === -1 ? "" : t.slice(r + 1),
|
|
105
|
-
if (
|
|
106
|
-
const
|
|
107
|
-
for (const I of
|
|
108
|
+
const r = t.indexOf("-"), n = r === -1 ? t : t.slice(0, r), E = r === -1 ? "" : t.slice(r + 1), u = n.split(".");
|
|
109
|
+
if (u.length > 3) return null;
|
|
110
|
+
const i = [];
|
|
111
|
+
for (const I of u) {
|
|
108
112
|
if (!c(I)) return null;
|
|
109
|
-
|
|
113
|
+
i.push(Number(I));
|
|
110
114
|
}
|
|
111
115
|
const D = E === "" ? [] : E.split(".").filter((I) => I !== "");
|
|
112
116
|
return r !== -1 && D.length === 0 ? null : {
|
|
113
|
-
major:
|
|
114
|
-
minor:
|
|
115
|
-
patch:
|
|
117
|
+
major: i[0] ?? 0,
|
|
118
|
+
minor: i[1] ?? 0,
|
|
119
|
+
patch: i[2] ?? 0,
|
|
116
120
|
prerelease: D
|
|
117
121
|
};
|
|
118
122
|
}
|
|
@@ -127,11 +131,11 @@ function m(e, t) {
|
|
|
127
131
|
for (let r = 0; r < s; r++) {
|
|
128
132
|
const n = e[r], E = t[r];
|
|
129
133
|
if (n === E) continue;
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
134
|
+
const u = c(n), i = c(E);
|
|
135
|
+
if (u && i) {
|
|
132
136
|
const D = _(Number(n), Number(E));
|
|
133
137
|
if (D !== 0) return D;
|
|
134
|
-
} else return
|
|
138
|
+
} else return u ? -1 : i ? 1 : n < E ? -1 : 1;
|
|
135
139
|
}
|
|
136
140
|
return _(e.length, t.length);
|
|
137
141
|
}
|
|
@@ -146,9 +150,9 @@ const P = "@heliofi/withdraw-core";
|
|
|
146
150
|
function S(e = {}) {
|
|
147
151
|
const { minSupportedVersions: t, consumer: s } = e, r = (t == null ? void 0 : t.packages) ?? {}, n = e.sdkVersion ?? O, E = { [P]: n };
|
|
148
152
|
s != null && s.name && s.version != null && (E[s.name] = s.version);
|
|
149
|
-
for (const [
|
|
150
|
-
const D = E[
|
|
151
|
-
if (D != null && C(D,
|
|
153
|
+
for (const [u, i] of Object.entries(r)) {
|
|
154
|
+
const D = E[u];
|
|
155
|
+
if (D != null && C(D, i)) return !1;
|
|
152
156
|
}
|
|
153
157
|
return !0;
|
|
154
158
|
}
|
|
@@ -239,7 +243,7 @@ export {
|
|
|
239
243
|
o as WithdrawalState,
|
|
240
244
|
L as decodeJwt,
|
|
241
245
|
C as isBelow,
|
|
242
|
-
v as
|
|
246
|
+
v as isQuoteValid,
|
|
243
247
|
S as isSupported,
|
|
244
248
|
f as toWithdrawalErrorCode
|
|
245
249
|
};
|