@heliofi/withdraw-core 1.6.2 → 1.6.3-alpha.1791294216
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 +21 -2
- package/dist/withdraw-core.cjs +1 -1
- package/dist/withdraw-core.js +94 -94
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -112,7 +112,7 @@ Every method is async, accepts an optional trailing `AbortSignal`, and throws
|
|
|
112
112
|
| `createWithdrawalDetail(params, signal?)` | `POST /withdraw/:id/prepare` | `QuoteResponse` — `withdrawalDetailId`, `prepared`, fee `summary`, JWT `token`. |
|
|
113
113
|
| `updateWithdrawalDetail(detailId, params, signal?)` | `PATCH /withdraw-details/:detailId` | `QuoteResponse` — a re-priced quote. |
|
|
114
114
|
| `submitWithdrawal(params, signal?)` | `POST /withdraw/:detailId/submit` | `SubmitResponse` — `txHash`, `state`, `broadcastAck`. |
|
|
115
|
-
| `getWithdrawalDetail(detailId, signal?)` | `GET /withdraw-details/:detailId` | `StatusResponse` — current `state`, `txHash`, `errorReason`. |
|
|
115
|
+
| `getWithdrawalDetail(detailId, signal?)` | `GET /withdraw-details/:detailId` | `StatusResponse` — current `state`, `txHash`, `destinationTxHash`, `errorReason`. For cross-chain withdrawals, `txHash` is the source chain transaction and `destinationTxHash` is the final delivery transaction on the destination chain (both `null` until terminal state). |
|
|
116
116
|
| `isSupported(minSupportedVersions?)` | — (local version check) | `boolean` — whether this SDK version satisfies the config's minimum. |
|
|
117
117
|
|
|
118
118
|
**Params:**
|
|
@@ -225,7 +225,7 @@ interface QuoteResponse {
|
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
interface SubmitResponse { withdrawalDetailId: string; txHash: string | null; state: WithdrawalState; broadcastAck: BroadcastAck | null; }
|
|
228
|
-
interface StatusResponse { withdrawalDetailId: string; state: WithdrawalState; txHash: string | null; broadcastAck: BroadcastAck | null; errorReason: string | null; customerId: string | null; }
|
|
228
|
+
interface StatusResponse { withdrawalDetailId: string; state: WithdrawalState; txHash: string | null; destinationTxHash: string | null; broadcastAck: BroadcastAck | null; errorReason: string | null; customerId: string | null; }
|
|
229
229
|
```
|
|
230
230
|
|
|
231
231
|
`PreparedTransaction` is a discriminated union of `HypercorePreparedTransaction`,
|
package/dist/index.d.ts
CHANGED
|
@@ -97,11 +97,13 @@ export declare enum BetaFeature {
|
|
|
97
97
|
SWAP = "SWAP",
|
|
98
98
|
MOONPAY_HEADLESS_FRAMES = "MOONPAY_HEADLESS_FRAMES",
|
|
99
99
|
GLIDE_DEPOSITS = "GLIDE_DEPOSITS",
|
|
100
|
+
GLIDE_WITHDRAWALS = "GLIDE_WITHDRAWALS",
|
|
100
101
|
CHECKOUT_V2 = "checkout_v2",
|
|
101
102
|
TRON_ENERGY_RENTAL_DISABLED = "TRON_ENERGY_RENTAL_DISABLED",
|
|
102
103
|
THEMES_V2 = "themesV2",
|
|
103
104
|
MOONPAY_IP_MATCHING_DISABLED = "MOONPAY_IP_MATCHING_DISABLED",
|
|
104
105
|
CHECKOUT_BACK_BUTTON = "checkout_back_button",
|
|
106
|
+
ROBINHOOD_CHECKOUT_SOURCE = "ROBINHOOD_CHECKOUT_SOURCE",
|
|
105
107
|
}
|
|
106
108
|
|
|
107
109
|
export declare class BlockchainEngine extends Entity {
|
|
@@ -132,6 +134,7 @@ export declare enum BlockchainSymbol {
|
|
|
132
134
|
TRON = "TRON",
|
|
133
135
|
DOGE = "DOGE",
|
|
134
136
|
TON = "TON",
|
|
137
|
+
ROBINHOOD = "ROBINHOOD",
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
export declare enum BroadcastAck {
|
|
@@ -171,6 +174,7 @@ declare enum CurrencyFeature {
|
|
|
171
174
|
USD_STABLE = "USD_STABLE",
|
|
172
175
|
NATIVE_TOKEN = "NATIVE_TOKEN",
|
|
173
176
|
SPONSORED_SOL_TO_EVM_SWAP = "SPONSORED_SOL_TO_EVM_SWAP",
|
|
177
|
+
DUST_CLEANUP_ELIGIBLE = "DUST_CLEANUP_ELIGIBLE",
|
|
174
178
|
}
|
|
175
179
|
|
|
176
180
|
declare enum CurrencyType {
|
|
@@ -198,7 +202,6 @@ declare enum DepositBlockchainSymbol {
|
|
|
198
202
|
PLASMA = "PLASMA",
|
|
199
203
|
MEGAETH = "MEGAETH",
|
|
200
204
|
SEISMIC = "SEISMIC",
|
|
201
|
-
ROBINHOOD = "ROBINHOOD",
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
declare class Entity {
|
|
@@ -214,6 +217,13 @@ export declare interface GeoblockIpAllowedResponse {
|
|
|
214
217
|
isAllowed: boolean;
|
|
215
218
|
}
|
|
216
219
|
|
|
220
|
+
declare class GiftCardIntentDto {
|
|
221
|
+
amount: string;
|
|
222
|
+
brandId: string;
|
|
223
|
+
emailToken: string;
|
|
224
|
+
consent: true;
|
|
225
|
+
}
|
|
226
|
+
|
|
217
227
|
export declare interface HypercorePreparedTransaction {
|
|
218
228
|
kind: SignedTransactionKind.HYPERCORE;
|
|
219
229
|
chain: BlockchainSymbol | DepositBlockchainSymbol;
|
|
@@ -272,11 +282,12 @@ export declare type PreparedTransaction = PolymarketWalletPreparedTransaction |
|
|
|
272
282
|
declare class PreparedWithdrawalDto {
|
|
273
283
|
ownerAddress: string;
|
|
274
284
|
recipient: string;
|
|
275
|
-
amount
|
|
285
|
+
amount?: string;
|
|
276
286
|
toCurrencyId: string;
|
|
277
287
|
sourceCurrencyId: string;
|
|
278
288
|
customerId?: string;
|
|
279
289
|
slippageBps?: number;
|
|
290
|
+
giftCard?: GiftCardIntentDto;
|
|
280
291
|
}
|
|
281
292
|
|
|
282
293
|
declare class PreparedWithdrawalTypedDataDomainDto {
|
|
@@ -365,6 +376,13 @@ export declare interface StatusResponse {
|
|
|
365
376
|
withdrawalDetailId: string;
|
|
366
377
|
state: WithdrawalState;
|
|
367
378
|
txHash: string | null;
|
|
379
|
+
/**
|
|
380
|
+
* Cross-chain delivery transaction hash; `null` until the withdrawal reaches
|
|
381
|
+
* a terminal state and for same-chain withdrawals (where `txHash` is the
|
|
382
|
+
* delivery). For cross-chain flows (e.g., USDC/Solana → ETH/Arbitrum), this
|
|
383
|
+
* is the final destination-chain transaction hash.
|
|
384
|
+
*/
|
|
385
|
+
destinationTxHash: string | null;
|
|
368
386
|
broadcastAck: BroadcastAck | null;
|
|
369
387
|
errorReason: string | null;
|
|
370
388
|
/**
|
|
@@ -566,6 +584,7 @@ export declare enum WithdrawalErrorCode {
|
|
|
566
584
|
export declare enum WithdrawalFeature {
|
|
567
585
|
IRON = "iron",
|
|
568
586
|
MP_SELL = "mp_sell",
|
|
587
|
+
GIFT_CARD = "gift_card",
|
|
569
588
|
}
|
|
570
589
|
|
|
571
590
|
export declare interface WithdrawalJwtPayload {
|
package/dist/withdraw-core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var h=Object.defineProperty;var C=(t,e,r)=>e in t?h(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var o=(t,e,r)=>C(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let H=(function(t){return t.SOL="SOL",t.ETH="ETH",t.POLYGON="POLYGON",t.BASE="BASE",t.BITCOIN="BITCOIN",t.ARBITRUM="ARBITRUM",t.BSC="BSC",t.TRON="TRON",t.DOGE="DOGE",t.TON="TON",t.ROBINHOOD="ROBINHOOD",t})({}),U=(function(t){return t.EVM="EVM",t.SOL="SOL",t.BTC="BTC",t.TRON="TRON",t.HYPERCORE="HYPERCORE",t.DOGE="DOGE",t.TON="TON",t.SEISMIC="SEISMIC",t})({}),P=(function(t){return t.HELIO="HELIO",t.MAGIC_EDEN="MAGIC_EDEN",t})({}),d=(function(t){return t.IRON="iron",t.MP_SELL="mp_sell",t.GIFT_CARD="gift_card",t})({}),T=(function(t){return t.QUOTED="QUOTED",t.SUBMITTING="SUBMITTING",t.SUBMITTED="SUBMITTED",t.BRIDGING="BRIDGING",t.COMPLETED="COMPLETED",t.FAILED="FAILED",t.FAILED_EXPIRED="FAILED_EXPIRED",t.EXPIRED="EXPIRED",t.REFUNDED_BY_PROVIDER="REFUNDED_BY_PROVIDER",t})({}),m=(function(t){return t.ACKNOWLEDGED="acknowledged",t.UNACKNOWLEDGED="unacknowledged",t.REJECTED="rejected",t})({}),M=(function(t){return t.RAW="raw",t.USER_OP="userop",t.POLYMARKET_WALLET="polymarket_wallet",t.HYPERCORE="hypercore",t})({}),w=(function(t){return t.MOONPAY="MOONPAY",t.USER="USER",t.PRIVATE="PRIVATE",t})({}),G=(function(t){return t.SWAP="SWAP",t.MOONPAY_HEADLESS_FRAMES="MOONPAY_HEADLESS_FRAMES",t.GLIDE_DEPOSITS="GLIDE_DEPOSITS",t.GLIDE_WITHDRAWALS="GLIDE_WITHDRAWALS",t.CHECKOUT_V2="checkout_v2",t.TRON_ENERGY_RENTAL_DISABLED="TRON_ENERGY_RENTAL_DISABLED",t.THEMES_V2="themesV2",t.MOONPAY_IP_MATCHING_DISABLED="MOONPAY_IP_MATCHING_DISABLED",t.CHECKOUT_BACK_BUTTON="checkout_back_button",t.ROBINHOOD_CHECKOUT_SOURCE="ROBINHOOD_CHECKOUT_SOURCE",t})({});const g=new Set([T.COMPLETED,T.FAILED,T.FAILED_EXPIRED,T.EXPIRED,T.REFUNDED_BY_PROVIDER]);var O=(t=>(t.WITHDRAW_TX_INVALID_SIGNATURE="WITHDRAW_TX_INVALID_SIGNATURE",t.WITHDRAW_TX_BLOCKHASH_EXPIRED="WITHDRAW_TX_BLOCKHASH_EXPIRED",t.WITHDRAW_TX_NONCE_TOO_LOW="WITHDRAW_TX_NONCE_TOO_LOW",t.WITHDRAW_TX_USEROP_EXPIRED="WITHDRAW_TX_USEROP_EXPIRED",t.WITHDRAW_TX_UNDERPRICED="WITHDRAW_TX_UNDERPRICED",t.WITHDRAW_BUNDLER_REJECTED="WITHDRAW_BUNDLER_REJECTED",t.WITHDRAW_TX_BROADCAST_TIMEOUT="WITHDRAW_TX_BROADCAST_TIMEOUT",t.WITHDRAW_TX_ALREADY_KNOWN="WITHDRAW_TX_ALREADY_KNOWN",t.WITHDRAW_QUOTE_EXPIRED="WITHDRAW_QUOTE_EXPIRED",t.WITHDRAW_SANCTIONS_BLOCKED="WITHDRAW_SANCTIONS_BLOCKED",t.WITHDRAW_NO_ROUTE="WITHDRAW_NO_ROUTE",t.WITHDRAW_NOT_FOUND="WITHDRAW_NOT_FOUND",t.WITHDRAW_INSUFFICIENT_BALANCE="WITHDRAW_INSUFFICIENT_BALANCE",t.WITHDRAW_DETAILS_NOT_UPDATABLE="WITHDRAW_DETAILS_NOT_UPDATABLE",t.INVALID_WALLET_ADDRESS="INVALID_WALLET_ADDRESS",t.BALANCE_FETCH_FAILED="BALANCE_FETCH_FAILED",t.UNKNOWN="UNKNOWN",t))(O||{});const X=new Set(Object.values(O));class l extends Error{constructor(r,s,n){super(n??s);o(this,"name","WithdrawalApiError");this.status=r,this.code=s,this.detail=n}}const a=t=>t&&X.has(t)?t:O.UNKNOWN,L=t=>{const e=t.split(".");if(e.length!==3)throw new Error("Invalid JWT: expected 3 parts");let r=e[1].replace(/-/g,"+").replace(/_/g,"/");r+="=".repeat((4-r.length%4)%4);const s=Uint8Array.from(atob(r),E=>E.charCodeAt(0)),n=new TextDecoder().decode(s);return JSON.parse(n)},B=(t,e=5e3)=>{try{const{exp:r}=L(t);return r===void 0?!0:Date.now()<r*1e3-e}catch{return!1}},R="1.6.3-alpha.1791294216",S="https://api.hel.io/v1";class K{constructor(e){o(this,"baseUrl");o(this,"headers");o(this,"fetch");o(this,"consumer");var s,n;this.consumer=e.consumer;const r=e.baseUrl??S;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}:{},...e.headers},this.fetch=e.fetch??globalThis.fetch.bind(globalThis)}async get(e,r){return this.request("GET",e,void 0,r)}async post(e,r,s){return this.request("POST",e,r,s)}async patch(e,r,s){return this.request("PATCH",e,r,s)}async request(e,r,s,n){const E=`${this.baseUrl}${r}`,D=await this.fetch(E,{method:e,headers:this.headers,body:s!==void 0?JSON.stringify(s):void 0,signal:n});if(!D.ok)throw await this.buildError(D);return await D.json()}async buildError(e){let r,s;try{const n=await e.json();r=n.message??void 0,s=n.errorCode??n.errorType??void 0}catch{r=e.statusText||void 0}return new l(e.status,a(s),r)}}const u=t=>/^\d+$/.test(t);function N(t){if(typeof t!="string")return null;let e=t.trim();if((e.startsWith("v")||e.startsWith("V"))&&(e=e.slice(1)),e==="")return null;const r=e.indexOf("+");r!==-1&&(e=e.slice(0,r));const s=e.indexOf("-"),n=s===-1?e:e.slice(0,s),E=s===-1?"":e.slice(s+1),D=n.split(".");if(D.length>3)return null;const _=[];for(const I of D){if(!u(I))return null;_.push(Number(I))}const i=E===""?[]:E.split(".").filter(I=>I!=="");return s!==-1&&i.length===0?null:{major:_[0]??0,minor:_[1]??0,patch:_[2]??0,prerelease:i}}function A(t,e){return t<e?-1:t>e?1:0}function V(t,e){if(t.length===0&&e.length===0)return 0;if(t.length===0)return 1;if(e.length===0)return-1;const r=Math.min(t.length,e.length);for(let s=0;s<r;s++){const n=t[s],E=e[s];if(n===E)continue;const D=u(n),_=u(E);if(D&&_){const i=A(Number(n),Number(E));if(i!==0)return i}else return D?-1:_?1:n<E?-1:1}return A(t.length,e.length)}function b(t,e){const r=N(t)??{major:0,minor:0,patch:0,prerelease:[]},s=N(e)??{major:0,minor:0,patch:0,prerelease:[]},n=A(r.major,s.major)||A(r.minor,s.minor)||A(r.patch,s.patch);return n!==0?n:V(r.prerelease,s.prerelease)}function p(t,e){return b(t,e)<0}const W="@heliofi/withdraw-core";function f(t={}){const{minSupportedVersions:e,consumer:r}=t,s=(e==null?void 0:e.packages)??{},n=t.sdkVersion??R,E={[W]:n};r!=null&&r.name&&r.version!=null&&(E[r.name]=r.version);for(const[D,_]of Object.entries(s)){const i=E[D];if(i!=null&&p(i,_))return!1}return!0}class c{constructor(e){this.api=e}static create(e={}){return new c(new K(e))}isSupported(e){return f({minSupportedVersions:e,consumer:this.api.consumer})}async getWithdrawalConfig(e,r){return this.api.get(`/withdrawal-configs/${e}/public`,r)}async getRoutes(e,r){return this.api.get(`/withdraw/${e}/routes`,r)}async getGeoblockIpAllowed(e){return this.api.get("/geoblock/ip-allowed",e)}async getBalance(e,r,s){return this.api.get(`/withdraw/${e}/balances?walletAddress=${encodeURIComponent(r)}`,s)}async createWithdrawalDetail(e,r){const{withdrawalConfigId:s,...n}=e;return this.api.post(`/withdraw/${s}/prepare`,n,r)}async updateWithdrawalDetail(e,r,s){return this.api.patch(`/withdraw-details/${e}`,r,s)}async submitWithdrawal(e,r){const{withdrawalDetailId:s,...n}=e;return this.api.post(`/withdraw/${s}/submit`,n,r)}async getWithdrawalDetail(e,r){return this.api.get(`/withdraw-details/${e}`,r)}}exports.BetaFeature=G;exports.BlockchainEngineType=U;exports.BlockchainSymbol=H;exports.BroadcastAck=m;exports.DEFAULT_BASE_URL=S;exports.Platform=P;exports.SDK_PACKAGE_NAME=W;exports.SDK_VERSION=R;exports.SignedTransactionKind=M;exports.TERMINAL_STATES=g;exports.ThemeType=w;exports.WithdrawalApiError=l;exports.WithdrawalErrorCode=O;exports.WithdrawalFeature=d;exports.WithdrawalSDK=c;exports.WithdrawalState=T;exports.decodeJwt=L;exports.isBelow=p;exports.isQuoteValid=B;exports.isSupported=f;exports.toWithdrawalErrorCode=a;
|
package/dist/withdraw-core.js
CHANGED
|
@@ -1,164 +1,164 @@
|
|
|
1
1
|
var l = Object.defineProperty;
|
|
2
2
|
var L = (t, e, s) => e in t ? l(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
|
|
3
3
|
var T = (t, e, s) => L(t, typeof e != "symbol" ? e + "" : e, s);
|
|
4
|
-
let
|
|
5
|
-
return t.SOL = "SOL", t.ETH = "ETH", t.POLYGON = "POLYGON", t.BASE = "BASE", t.BITCOIN = "BITCOIN", t.ARBITRUM = "ARBITRUM", t.BSC = "BSC", t.TRON = "TRON", t.DOGE = "DOGE", t.TON = "TON", t;
|
|
6
|
-
})({}),
|
|
4
|
+
let G = /* @__PURE__ */ (function(t) {
|
|
5
|
+
return t.SOL = "SOL", t.ETH = "ETH", t.POLYGON = "POLYGON", t.BASE = "BASE", t.BITCOIN = "BITCOIN", t.ARBITRUM = "ARBITRUM", t.BSC = "BSC", t.TRON = "TRON", t.DOGE = "DOGE", t.TON = "TON", t.ROBINHOOD = "ROBINHOOD", t;
|
|
6
|
+
})({}), X = /* @__PURE__ */ (function(t) {
|
|
7
7
|
return t.EVM = "EVM", t.SOL = "SOL", t.BTC = "BTC", t.TRON = "TRON", t.HYPERCORE = "HYPERCORE", t.DOGE = "DOGE", t.TON = "TON", t.SEISMIC = "SEISMIC", t;
|
|
8
|
-
})({}),
|
|
8
|
+
})({}), d = /* @__PURE__ */ (function(t) {
|
|
9
9
|
return t.HELIO = "HELIO", t.MAGIC_EDEN = "MAGIC_EDEN", t;
|
|
10
|
-
})({}),
|
|
11
|
-
return t.IRON = "iron", t.MP_SELL = "mp_sell", t;
|
|
12
|
-
})({}),
|
|
10
|
+
})({}), w = /* @__PURE__ */ (function(t) {
|
|
11
|
+
return t.IRON = "iron", t.MP_SELL = "mp_sell", t.GIFT_CARD = "gift_card", t;
|
|
12
|
+
})({}), A = /* @__PURE__ */ (function(t) {
|
|
13
13
|
return t.QUOTED = "QUOTED", t.SUBMITTING = "SUBMITTING", t.SUBMITTED = "SUBMITTED", t.BRIDGING = "BRIDGING", t.COMPLETED = "COMPLETED", t.FAILED = "FAILED", t.FAILED_EXPIRED = "FAILED_EXPIRED", t.EXPIRED = "EXPIRED", t.REFUNDED_BY_PROVIDER = "REFUNDED_BY_PROVIDER", t;
|
|
14
14
|
})({}), g = /* @__PURE__ */ (function(t) {
|
|
15
15
|
return t.ACKNOWLEDGED = "acknowledged", t.UNACKNOWLEDGED = "unacknowledged", t.REJECTED = "rejected", t;
|
|
16
16
|
})({}), V = /* @__PURE__ */ (function(t) {
|
|
17
17
|
return t.RAW = "raw", t.USER_OP = "userop", t.POLYMARKET_WALLET = "polymarket_wallet", t.HYPERCORE = "hypercore", t;
|
|
18
|
-
})({}),
|
|
18
|
+
})({}), K = /* @__PURE__ */ (function(t) {
|
|
19
19
|
return t.MOONPAY = "MOONPAY", t.USER = "USER", t.PRIVATE = "PRIVATE", t;
|
|
20
|
-
})({}),
|
|
21
|
-
return t.SWAP = "SWAP", t.MOONPAY_HEADLESS_FRAMES = "MOONPAY_HEADLESS_FRAMES", t.GLIDE_DEPOSITS = "GLIDE_DEPOSITS", t.CHECKOUT_V2 = "checkout_v2", t.TRON_ENERGY_RENTAL_DISABLED = "TRON_ENERGY_RENTAL_DISABLED", t.THEMES_V2 = "themesV2", t.MOONPAY_IP_MATCHING_DISABLED = "MOONPAY_IP_MATCHING_DISABLED", t.CHECKOUT_BACK_BUTTON = "checkout_back_button", t;
|
|
20
|
+
})({}), Y = /* @__PURE__ */ (function(t) {
|
|
21
|
+
return t.SWAP = "SWAP", t.MOONPAY_HEADLESS_FRAMES = "MOONPAY_HEADLESS_FRAMES", t.GLIDE_DEPOSITS = "GLIDE_DEPOSITS", t.GLIDE_WITHDRAWALS = "GLIDE_WITHDRAWALS", t.CHECKOUT_V2 = "checkout_v2", t.TRON_ENERGY_RENTAL_DISABLED = "TRON_ENERGY_RENTAL_DISABLED", t.THEMES_V2 = "themesV2", t.MOONPAY_IP_MATCHING_DISABLED = "MOONPAY_IP_MATCHING_DISABLED", t.CHECKOUT_BACK_BUTTON = "checkout_back_button", t.ROBINHOOD_CHECKOUT_SOURCE = "ROBINHOOD_CHECKOUT_SOURCE", t;
|
|
22
22
|
})({});
|
|
23
23
|
const v = /* @__PURE__ */ new Set([
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
A.COMPLETED,
|
|
25
|
+
A.FAILED,
|
|
26
|
+
A.FAILED_EXPIRED,
|
|
27
|
+
A.EXPIRED,
|
|
28
|
+
A.REFUNDED_BY_PROVIDER
|
|
29
29
|
]);
|
|
30
|
-
var
|
|
31
|
-
const
|
|
32
|
-
class
|
|
33
|
-
constructor(s,
|
|
34
|
-
super(
|
|
30
|
+
var R = /* @__PURE__ */ ((t) => (t.WITHDRAW_TX_INVALID_SIGNATURE = "WITHDRAW_TX_INVALID_SIGNATURE", t.WITHDRAW_TX_BLOCKHASH_EXPIRED = "WITHDRAW_TX_BLOCKHASH_EXPIRED", t.WITHDRAW_TX_NONCE_TOO_LOW = "WITHDRAW_TX_NONCE_TOO_LOW", t.WITHDRAW_TX_USEROP_EXPIRED = "WITHDRAW_TX_USEROP_EXPIRED", t.WITHDRAW_TX_UNDERPRICED = "WITHDRAW_TX_UNDERPRICED", t.WITHDRAW_BUNDLER_REJECTED = "WITHDRAW_BUNDLER_REJECTED", t.WITHDRAW_TX_BROADCAST_TIMEOUT = "WITHDRAW_TX_BROADCAST_TIMEOUT", t.WITHDRAW_TX_ALREADY_KNOWN = "WITHDRAW_TX_ALREADY_KNOWN", t.WITHDRAW_QUOTE_EXPIRED = "WITHDRAW_QUOTE_EXPIRED", t.WITHDRAW_SANCTIONS_BLOCKED = "WITHDRAW_SANCTIONS_BLOCKED", t.WITHDRAW_NO_ROUTE = "WITHDRAW_NO_ROUTE", t.WITHDRAW_NOT_FOUND = "WITHDRAW_NOT_FOUND", t.WITHDRAW_INSUFFICIENT_BALANCE = "WITHDRAW_INSUFFICIENT_BALANCE", t.WITHDRAW_DETAILS_NOT_UPDATABLE = "WITHDRAW_DETAILS_NOT_UPDATABLE", t.INVALID_WALLET_ADDRESS = "INVALID_WALLET_ADDRESS", t.BALANCE_FETCH_FAILED = "BALANCE_FETCH_FAILED", t.UNKNOWN = "UNKNOWN", t))(R || {});
|
|
31
|
+
const p = new Set(Object.values(R));
|
|
32
|
+
class W extends Error {
|
|
33
|
+
constructor(s, n, r) {
|
|
34
|
+
super(r ?? n);
|
|
35
35
|
T(this, "name", "WithdrawalApiError");
|
|
36
|
-
this.status = s, this.code =
|
|
36
|
+
this.status = s, this.code = n, this.detail = r;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
const
|
|
39
|
+
const f = (t) => t && p.has(t) ? t : R.UNKNOWN, a = (t) => {
|
|
40
40
|
const e = t.split(".");
|
|
41
41
|
if (e.length !== 3)
|
|
42
42
|
throw new Error("Invalid JWT: expected 3 parts");
|
|
43
43
|
let s = e[1].replace(/-/g, "+").replace(/_/g, "/");
|
|
44
44
|
s += "=".repeat((4 - s.length % 4) % 4);
|
|
45
|
-
const
|
|
46
|
-
return JSON.parse(
|
|
45
|
+
const n = Uint8Array.from(atob(s), (E) => E.charCodeAt(0)), r = new TextDecoder().decode(n);
|
|
46
|
+
return JSON.parse(r);
|
|
47
47
|
}, B = (t, e = 5e3) => {
|
|
48
48
|
try {
|
|
49
|
-
const { exp: s } =
|
|
49
|
+
const { exp: s } = a(t);
|
|
50
50
|
return s === void 0 ? !0 : Date.now() < s * 1e3 - e;
|
|
51
51
|
} catch {
|
|
52
52
|
return !1;
|
|
53
53
|
}
|
|
54
|
-
},
|
|
55
|
-
class
|
|
54
|
+
}, c = "1.6.3-alpha.1791294216", H = "https://api.hel.io/v1";
|
|
55
|
+
class C {
|
|
56
56
|
constructor(e) {
|
|
57
57
|
T(this, "baseUrl");
|
|
58
58
|
T(this, "headers");
|
|
59
59
|
T(this, "fetch");
|
|
60
60
|
T(this, "consumer");
|
|
61
|
-
var
|
|
61
|
+
var n, r;
|
|
62
62
|
this.consumer = e.consumer;
|
|
63
|
-
const s = e.baseUrl ??
|
|
63
|
+
const s = e.baseUrl ?? H;
|
|
64
64
|
this.baseUrl = s.endsWith("/") ? s.slice(0, -1) : s, this.headers = {
|
|
65
65
|
"Content-Type": "application/json",
|
|
66
|
-
"X-MoonPay-Commerce-SDK-Version":
|
|
67
|
-
...(
|
|
68
|
-
...(
|
|
66
|
+
"X-MoonPay-Commerce-SDK-Version": c,
|
|
67
|
+
...(n = this.consumer) != null && n.name ? { "X-MoonPay-Commerce-Consumer": this.consumer.name } : {},
|
|
68
|
+
...(r = this.consumer) != null && r.version ? { "X-MoonPay-Commerce-Consumer-Version": this.consumer.version } : {},
|
|
69
69
|
...e.headers
|
|
70
70
|
}, this.fetch = e.fetch ?? globalThis.fetch.bind(globalThis);
|
|
71
71
|
}
|
|
72
72
|
async get(e, s) {
|
|
73
73
|
return this.request("GET", e, void 0, s);
|
|
74
74
|
}
|
|
75
|
-
async post(e, s,
|
|
76
|
-
return this.request("POST", e, s,
|
|
75
|
+
async post(e, s, n) {
|
|
76
|
+
return this.request("POST", e, s, n);
|
|
77
77
|
}
|
|
78
|
-
async patch(e, s,
|
|
79
|
-
return this.request("PATCH", e, s,
|
|
78
|
+
async patch(e, s, n) {
|
|
79
|
+
return this.request("PATCH", e, s, n);
|
|
80
80
|
}
|
|
81
|
-
async request(e, s,
|
|
81
|
+
async request(e, s, n, r) {
|
|
82
82
|
const E = `${this.baseUrl}${s}`, D = await this.fetch(E, {
|
|
83
83
|
method: e,
|
|
84
84
|
headers: this.headers,
|
|
85
|
-
body:
|
|
86
|
-
signal:
|
|
85
|
+
body: n !== void 0 ? JSON.stringify(n) : void 0,
|
|
86
|
+
signal: r
|
|
87
87
|
});
|
|
88
88
|
if (!D.ok)
|
|
89
89
|
throw await this.buildError(D);
|
|
90
90
|
return await D.json();
|
|
91
91
|
}
|
|
92
92
|
async buildError(e) {
|
|
93
|
-
let s,
|
|
93
|
+
let s, n;
|
|
94
94
|
try {
|
|
95
|
-
const
|
|
96
|
-
s =
|
|
95
|
+
const r = await e.json();
|
|
96
|
+
s = r.message ?? void 0, n = r.errorCode ?? r.errorType ?? void 0;
|
|
97
97
|
} catch {
|
|
98
98
|
s = e.statusText || void 0;
|
|
99
99
|
}
|
|
100
|
-
return new
|
|
100
|
+
return new W(
|
|
101
101
|
e.status,
|
|
102
|
-
|
|
102
|
+
f(n),
|
|
103
103
|
s
|
|
104
104
|
);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
const
|
|
108
|
-
function
|
|
107
|
+
const o = (t) => /^\d+$/.test(t);
|
|
108
|
+
function u(t) {
|
|
109
109
|
if (typeof t != "string") return null;
|
|
110
110
|
let e = t.trim();
|
|
111
111
|
if ((e.startsWith("v") || e.startsWith("V")) && (e = e.slice(1)), e === "") return null;
|
|
112
112
|
const s = e.indexOf("+");
|
|
113
113
|
s !== -1 && (e = e.slice(0, s));
|
|
114
|
-
const
|
|
114
|
+
const n = e.indexOf("-"), r = n === -1 ? e : e.slice(0, n), E = n === -1 ? "" : e.slice(n + 1), D = r.split(".");
|
|
115
115
|
if (D.length > 3) return null;
|
|
116
116
|
const _ = [];
|
|
117
|
-
for (const
|
|
118
|
-
if (!
|
|
119
|
-
_.push(Number(
|
|
117
|
+
for (const i of D) {
|
|
118
|
+
if (!o(i)) return null;
|
|
119
|
+
_.push(Number(i));
|
|
120
120
|
}
|
|
121
|
-
const I = E === "" ? [] : E.split(".").filter((
|
|
122
|
-
return
|
|
121
|
+
const I = E === "" ? [] : E.split(".").filter((i) => i !== "");
|
|
122
|
+
return n !== -1 && I.length === 0 ? null : {
|
|
123
123
|
major: _[0] ?? 0,
|
|
124
124
|
minor: _[1] ?? 0,
|
|
125
125
|
patch: _[2] ?? 0,
|
|
126
126
|
prerelease: I
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
|
-
function
|
|
129
|
+
function O(t, e) {
|
|
130
130
|
return t < e ? -1 : t > e ? 1 : 0;
|
|
131
131
|
}
|
|
132
|
-
function
|
|
132
|
+
function S(t, e) {
|
|
133
133
|
if (t.length === 0 && e.length === 0) return 0;
|
|
134
134
|
if (t.length === 0) return 1;
|
|
135
135
|
if (e.length === 0) return -1;
|
|
136
136
|
const s = Math.min(t.length, e.length);
|
|
137
|
-
for (let
|
|
138
|
-
const
|
|
139
|
-
if (
|
|
140
|
-
const D =
|
|
137
|
+
for (let n = 0; n < s; n++) {
|
|
138
|
+
const r = t[n], E = e[n];
|
|
139
|
+
if (r === E) continue;
|
|
140
|
+
const D = o(r), _ = o(E);
|
|
141
141
|
if (D && _) {
|
|
142
|
-
const I =
|
|
142
|
+
const I = O(Number(r), Number(E));
|
|
143
143
|
if (I !== 0) return I;
|
|
144
|
-
} else return D ? -1 : _ ? 1 :
|
|
144
|
+
} else return D ? -1 : _ ? 1 : r < E ? -1 : 1;
|
|
145
145
|
}
|
|
146
|
-
return
|
|
146
|
+
return O(t.length, e.length);
|
|
147
147
|
}
|
|
148
148
|
function U(t, e) {
|
|
149
|
-
const s =
|
|
150
|
-
return
|
|
149
|
+
const s = u(t) ?? { major: 0, minor: 0, patch: 0, prerelease: [] }, n = u(e) ?? { major: 0, minor: 0, patch: 0, prerelease: [] }, r = O(s.major, n.major) || O(s.minor, n.minor) || O(s.patch, n.patch);
|
|
150
|
+
return r !== 0 ? r : S(s.prerelease, n.prerelease);
|
|
151
151
|
}
|
|
152
|
-
function
|
|
152
|
+
function h(t, e) {
|
|
153
153
|
return U(t, e) < 0;
|
|
154
154
|
}
|
|
155
|
-
const
|
|
155
|
+
const P = "@heliofi/withdraw-core";
|
|
156
156
|
function m(t = {}) {
|
|
157
|
-
const { minSupportedVersions: e, consumer: s } = t,
|
|
157
|
+
const { minSupportedVersions: e, consumer: s } = t, n = (e == null ? void 0 : e.packages) ?? {}, r = t.sdkVersion ?? c, E = { [P]: r };
|
|
158
158
|
s != null && s.name && s.version != null && (E[s.name] = s.version);
|
|
159
|
-
for (const [D, _] of Object.entries(
|
|
159
|
+
for (const [D, _] of Object.entries(n)) {
|
|
160
160
|
const I = E[D];
|
|
161
|
-
if (I != null &&
|
|
161
|
+
if (I != null && h(I, _)) return !1;
|
|
162
162
|
}
|
|
163
163
|
return !0;
|
|
164
164
|
}
|
|
@@ -169,7 +169,7 @@ class N {
|
|
|
169
169
|
this.api = e;
|
|
170
170
|
}
|
|
171
171
|
static create(e = {}) {
|
|
172
|
-
return new N(new
|
|
172
|
+
return new N(new C(e));
|
|
173
173
|
}
|
|
174
174
|
isSupported(e) {
|
|
175
175
|
return m({
|
|
@@ -189,12 +189,12 @@ class N {
|
|
|
189
189
|
async getGeoblockIpAllowed(e) {
|
|
190
190
|
return this.api.get("/geoblock/ip-allowed", e);
|
|
191
191
|
}
|
|
192
|
-
async getBalance(e, s,
|
|
192
|
+
async getBalance(e, s, n) {
|
|
193
193
|
return this.api.get(
|
|
194
194
|
`/withdraw/${e}/balances?walletAddress=${encodeURIComponent(
|
|
195
195
|
s
|
|
196
196
|
)}`,
|
|
197
|
-
|
|
197
|
+
n
|
|
198
198
|
);
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
@@ -205,18 +205,18 @@ class N {
|
|
|
205
205
|
* request body matching the backend `PreparedWithdrawalDto`.
|
|
206
206
|
*/
|
|
207
207
|
async createWithdrawalDetail(e, s) {
|
|
208
|
-
const { withdrawalConfigId:
|
|
208
|
+
const { withdrawalConfigId: n, ...r } = e;
|
|
209
209
|
return this.api.post(
|
|
210
|
-
`/withdraw/${
|
|
211
|
-
|
|
210
|
+
`/withdraw/${n}/prepare`,
|
|
211
|
+
r,
|
|
212
212
|
s
|
|
213
213
|
);
|
|
214
214
|
}
|
|
215
|
-
async updateWithdrawalDetail(e, s,
|
|
215
|
+
async updateWithdrawalDetail(e, s, n) {
|
|
216
216
|
return this.api.patch(
|
|
217
217
|
`/withdraw-details/${e}`,
|
|
218
218
|
s,
|
|
219
|
-
|
|
219
|
+
n
|
|
220
220
|
);
|
|
221
221
|
}
|
|
222
222
|
/**
|
|
@@ -224,10 +224,10 @@ class N {
|
|
|
224
224
|
* `{ token, signedTx }`, where `signedTx` is the bare signed payload string.
|
|
225
225
|
*/
|
|
226
226
|
async submitWithdrawal(e, s) {
|
|
227
|
-
const { withdrawalDetailId:
|
|
227
|
+
const { withdrawalDetailId: n, ...r } = e;
|
|
228
228
|
return this.api.post(
|
|
229
|
-
`/withdraw/${
|
|
230
|
-
|
|
229
|
+
`/withdraw/${n}/submit`,
|
|
230
|
+
r,
|
|
231
231
|
s
|
|
232
232
|
);
|
|
233
233
|
}
|
|
@@ -236,25 +236,25 @@ class N {
|
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
export {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
Y as BetaFeature,
|
|
240
|
+
X as BlockchainEngineType,
|
|
241
|
+
G as BlockchainSymbol,
|
|
242
242
|
g as BroadcastAck,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
243
|
+
H as DEFAULT_BASE_URL,
|
|
244
|
+
d as Platform,
|
|
245
|
+
P as SDK_PACKAGE_NAME,
|
|
246
|
+
c as SDK_VERSION,
|
|
247
247
|
V as SignedTransactionKind,
|
|
248
248
|
v as TERMINAL_STATES,
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
249
|
+
K as ThemeType,
|
|
250
|
+
W as WithdrawalApiError,
|
|
251
|
+
R as WithdrawalErrorCode,
|
|
252
|
+
w as WithdrawalFeature,
|
|
253
253
|
N as WithdrawalSDK,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
254
|
+
A as WithdrawalState,
|
|
255
|
+
a as decodeJwt,
|
|
256
|
+
h as isBelow,
|
|
257
257
|
B as isQuoteValid,
|
|
258
258
|
m as isSupported,
|
|
259
|
-
|
|
259
|
+
f as toWithdrawalErrorCode
|
|
260
260
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heliofi/withdraw-core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.6.
|
|
4
|
+
"version": "1.6.3-alpha.1791294216",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vite",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@biomejs/biome": "^2.4.16",
|
|
38
38
|
"typescript": "5.1.6",
|
|
39
|
-
"vite": "6.4.
|
|
40
|
-
"vite-plugin-dts": "
|
|
41
|
-
"vitest": "3.2.
|
|
39
|
+
"vite": "^6.4.3",
|
|
40
|
+
"vite-plugin-dts": "^4.5.4",
|
|
41
|
+
"vitest": "^3.2.6"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@heliofi/common-fe": "0.2.
|
|
44
|
+
"@heliofi/common-fe": "0.2.339"
|
|
45
45
|
}
|
|
46
46
|
}
|