@heliofi/withdraw-core 1.6.2 → 1.7.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 +7 -0
- package/dist/withdraw-core.cjs +1 -1
- package/dist/withdraw-core.js +1 -1
- package/package.json +4 -4
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
|
@@ -365,6 +365,13 @@ export declare interface StatusResponse {
|
|
|
365
365
|
withdrawalDetailId: string;
|
|
366
366
|
state: WithdrawalState;
|
|
367
367
|
txHash: string | null;
|
|
368
|
+
/**
|
|
369
|
+
* Cross-chain delivery transaction hash; `null` until the withdrawal reaches
|
|
370
|
+
* a terminal state and for same-chain withdrawals (where `txHash` is the
|
|
371
|
+
* delivery). For cross-chain flows (e.g., USDC/Solana → ETH/Arbitrum), this
|
|
372
|
+
* is the final destination-chain transaction hash.
|
|
373
|
+
*/
|
|
374
|
+
destinationTxHash: string | null;
|
|
368
375
|
broadcastAck: BroadcastAck | null;
|
|
369
376
|
errorReason: string | null;
|
|
370
377
|
/**
|
package/dist/withdraw-core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var f=Object.defineProperty;var P=(e,t,r)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var _=(e,t,r)=>P(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let C=(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})({}),U=(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.SEISMIC="SEISMIC",e})({}),H=(function(e){return e.HELIO="HELIO",e.MAGIC_EDEN="MAGIC_EDEN",e})({}),m=(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})({}),M=(function(e){return e.RAW="raw",e.USER_OP="userop",e.POLYMARKET_WALLET="polymarket_wallet",e.HYPERCORE="hypercore",e})({}),w=(function(e){return e.MOONPAY="MOONPAY",e.USER="USER",e.PRIVATE="PRIVATE",e})({}),X=(function(e){return e.SWAP="SWAP",e.MOONPAY_HEADLESS_FRAMES="MOONPAY_HEADLESS_FRAMES",e.GLIDE_DEPOSITS="GLIDE_DEPOSITS",e.CHECKOUT_V2="checkout_v2",e.TRON_ENERGY_RENTAL_DISABLED="TRON_ENERGY_RENTAL_DISABLED",e.THEMES_V2="themesV2",e.MOONPAY_IP_MATCHING_DISABLED="MOONPAY_IP_MATCHING_DISABLED",e.CHECKOUT_BACK_BUTTON="checkout_back_button",e})({});const g=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 G=new Set(Object.values(I));class l extends Error{constructor(r,s,n){super(n??s);_(this,"name","WithdrawalApiError");this.status=r,this.code=s,this.detail=n}}const a=e=>e&&G.has(e)?e:I.UNKNOWN,L=e=>{const t=e.split(".");if(t.length!==3)throw new Error("Invalid JWT: expected 3 parts");let r=t[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=(e,t=5e3)=>{try{const{exp:r}=L(e);return r===void 0?!0:Date.now()<r*1e3-t}catch{return!1}},R="1.
|
|
1
|
+
"use strict";var f=Object.defineProperty;var P=(e,t,r)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var _=(e,t,r)=>P(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let C=(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})({}),U=(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.SEISMIC="SEISMIC",e})({}),H=(function(e){return e.HELIO="HELIO",e.MAGIC_EDEN="MAGIC_EDEN",e})({}),m=(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})({}),M=(function(e){return e.RAW="raw",e.USER_OP="userop",e.POLYMARKET_WALLET="polymarket_wallet",e.HYPERCORE="hypercore",e})({}),w=(function(e){return e.MOONPAY="MOONPAY",e.USER="USER",e.PRIVATE="PRIVATE",e})({}),X=(function(e){return e.SWAP="SWAP",e.MOONPAY_HEADLESS_FRAMES="MOONPAY_HEADLESS_FRAMES",e.GLIDE_DEPOSITS="GLIDE_DEPOSITS",e.CHECKOUT_V2="checkout_v2",e.TRON_ENERGY_RENTAL_DISABLED="TRON_ENERGY_RENTAL_DISABLED",e.THEMES_V2="themesV2",e.MOONPAY_IP_MATCHING_DISABLED="MOONPAY_IP_MATCHING_DISABLED",e.CHECKOUT_BACK_BUTTON="checkout_back_button",e})({});const g=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 G=new Set(Object.values(I));class l extends Error{constructor(r,s,n){super(n??s);_(this,"name","WithdrawalApiError");this.status=r,this.code=s,this.detail=n}}const a=e=>e&&G.has(e)?e:I.UNKNOWN,L=e=>{const t=e.split(".");if(t.length!==3)throw new Error("Invalid JWT: expected 3 parts");let r=t[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=(e,t=5e3)=>{try{const{exp:r}=L(e);return r===void 0?!0:Date.now()<r*1e3-t}catch{return!1}},R="1.7.0",p="https://api.hel.io/v1";class K{constructor(t){_(this,"baseUrl");_(this,"headers");_(this,"fetch");_(this,"consumer");var s,n;this.consumer=t.consumer;const r=t.baseUrl??p;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 E=`${this.baseUrl}${r}`,i=await this.fetch(E,{method:t,headers:this.headers,body:s!==void 0?JSON.stringify(s):void 0,signal:n});if(!i.ok)throw await this.buildError(i);return await i.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 l(t.status,a(s),r)}}const c=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),E=s===-1?"":t.slice(s+1),i=n.split(".");if(i.length>3)return null;const o=[];for(const u of i){if(!c(u))return null;o.push(Number(u))}const D=E===""?[]:E.split(".").filter(u=>u!=="");return s!==-1&&D.length===0?null:{major:o[0]??0,minor:o[1]??0,patch:o[2]??0,prerelease:D}}function A(e,t){return e<t?-1:e>t?1:0}function V(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],E=t[s];if(n===E)continue;const i=c(n),o=c(E);if(i&&o){const D=A(Number(n),Number(E));if(D!==0)return D}else return i?-1:o?1:n<E?-1:1}return A(e.length,t.length)}function b(e,t){const r=N(e)??{major:0,minor:0,patch:0,prerelease:[]},s=N(t)??{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 S(e,t){return b(e,t)<0}const W="@heliofi/withdraw-core";function h(e={}){const{minSupportedVersions:t,consumer:r}=e,s=(t==null?void 0:t.packages)??{},n=e.sdkVersion??R,E={[W]:n};r!=null&&r.name&&r.version!=null&&(E[r.name]=r.version);for(const[i,o]of Object.entries(s)){const D=E[i];if(D!=null&&S(D,o))return!1}return!0}class O{constructor(t){this.api=t}static create(t={}){return new O(new K(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 getGeoblockIpAllowed(t){return this.api.get("/geoblock/ip-allowed",t)}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.BetaFeature=X;exports.BlockchainEngineType=U;exports.BlockchainSymbol=C;exports.BroadcastAck=d;exports.DEFAULT_BASE_URL=p;exports.Platform=H;exports.SDK_PACKAGE_NAME=W;exports.SDK_VERSION=R;exports.SignedTransactionKind=M;exports.TERMINAL_STATES=g;exports.ThemeType=w;exports.WithdrawalApiError=l;exports.WithdrawalErrorCode=I;exports.WithdrawalFeature=m;exports.WithdrawalSDK=O;exports.WithdrawalState=T;exports.decodeJwt=L;exports.isBelow=S;exports.isQuoteValid=B;exports.isSupported=h;exports.toWithdrawalErrorCode=a;
|
package/dist/withdraw-core.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heliofi/withdraw-core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "vite",
|
|
@@ -36,9 +36,9 @@
|
|
|
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
44
|
"@heliofi/common-fe": "0.2.323"
|