@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 CHANGED
@@ -266,9 +266,9 @@ try {
266
266
  ## Helpers
267
267
 
268
268
  ```ts
269
- import { decodeJwt, isQuoteExpired, isSupported, isBelow, SDK_VERSION } from '@heliofi/withdraw-core';
269
+ import { decodeJwt, isQuoteValid, isSupported, isBelow, SDK_VERSION } from '@heliofi/withdraw-core';
270
270
 
271
- isQuoteExpired(quote.token); // → true once the quote's JWT has expired (with a small buffer)
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, isQuoteExpired } from './jwt';
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
- export declare const isQuoteExpired: (jwt: string, bufferMs?: number) => boolean;
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;
@@ -22,13 +22,15 @@ export type SubmitWithdrawalParams = SubmitWithdrawalDto & {
22
22
  withdrawalDetailId: string;
23
23
  };
24
24
  /**
25
- * Forward-compat stub for a PATCH prepare endpoint the backend has no handler
26
- * for yet. SDK-local — no backend DTO to re-export.
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 interface UpdateWithdrawalDetailParams {
29
- ownerAddress: string;
30
- recipient: string;
31
- amount: string;
32
- toCurrencyId: string;
33
- sourceCurrencyId: string;
34
- }
36
+ export type UpdateWithdrawalDetailParams = PreparedWithdrawalDto;
@@ -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:Date.now()>=r*1e3-t},R="1.4.1",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 o=[];for(const c of E){if(!A(c))return null;o.push(Number(c))}const u=i===""?[]:i.split(".").filter(c=>c!=="");return s!==-1&&u.length===0?null:{major:o[0]??0,minor:o[1]??0,patch:o[2]??0,prerelease:u}}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),o=A(i);if(E&&o){const u=_(Number(n),Number(i));if(u!==0)return u}else return E?-1:o?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 L(e,t){return G(e,t)<0}const f="@heliofi/withdraw-core";function h(e={}){const{minSupportedVersions:t,consumer:r}=e,s=(t==null?void 0:t.packages)??{},n=e.sdkVersion??R,i={[f]:n};r!=null&&r.name&&r.version!=null&&(i[r.name]=r.version);for(const[E,o]of Object.entries(s)){const u=i[E];if(u!=null&&L(u,o))return!1}return!0}class a{constructor(t){this.api=t}static create(t={}){return new a(new B(t))}isSupported(t){return h({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=f;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=L;exports.isQuoteExpired=g;exports.isSupported=h;exports.toWithdrawalErrorCode=l;
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;
@@ -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
- const { exp: s } = L(e);
43
- return s === void 0 ? !1 : Date.now() >= s * 1e3 - t;
44
- }, O = "1.4.1", h = "https://api.hel.io/v1";
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}`, i = await this.fetch(E, {
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 (!i.ok)
79
- throw await this.buildError(i);
80
- return await i.json();
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), i = n.split(".");
105
- if (i.length > 3) return null;
106
- const u = [];
107
- for (const I of i) {
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
- u.push(Number(I));
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: u[0] ?? 0,
114
- minor: u[1] ?? 0,
115
- patch: u[2] ?? 0,
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 i = c(n), u = c(E);
131
- if (i && u) {
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 i ? -1 : u ? 1 : n < E ? -1 : 1;
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 [i, u] of Object.entries(r)) {
150
- const D = E[i];
151
- if (D != null && C(D, u)) return !1;
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 isQuoteExpired,
246
+ v as isQuoteValid,
243
247
  S as isSupported,
244
248
  f as toWithdrawalErrorCode
245
249
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@heliofi/withdraw-core",
3
3
  "private": false,
4
- "version": "1.4.1",
4
+ "version": "1.5.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",