@gardenfi/orderbook 2.5.3-beta.4 → 2.5.3-beta.6

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/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index2.cjs"),n=require("./index3.cjs"),e=require("./index4.cjs"),s=require("./index5.cjs"),o=require("./index6.cjs"),t=require("./index7.cjs"),a=require("./index8.cjs"),i=require("./index9.cjs");exports.Orderbook=r.Orderbook;exports.BlockchainType=n.BlockchainType;exports.Assets=e.Assets;exports.Chains=e.Chains;exports.Config=e.Config;exports.NATIVE_TOKENS=e.NATIVE_TOKENS;exports.OrderLifecycle=e.OrderLifecycle;exports.OrderStatus=e.OrderStatus;exports.getBlockchainType=e.getBlockchainType;exports.is=e.is;exports.isBitcoin=e.isBitcoin;exports.isEVM=e.isEVM;exports.isEvmNativeToken=e.isEvmNativeToken;exports.isMainnet=e.isMainnet;exports.isNativeToken=e.isNativeToken;exports.isSolana=e.isSolana;exports.isSolanaNativeToken=e.isSolanaNativeToken;exports.isStarknet=e.isStarknet;exports.isSui=e.isSui;exports.isSuiNativeToken=e.isSuiNativeToken;exports.ArbitrumLocalnet=s.ArbitrumLocalnet;exports.ETHStarknetLocalnetAsset=s.ETHStarknetLocalnetAsset;exports.EthereumLocalnet=s.EthereumLocalnet;exports.SOLSolanaLocalnetAsset=s.SOLSolanaLocalnetAsset;exports.STRKStarknetLocalnetAsset=s.STRKStarknetLocalnetAsset;exports.StarknetLocalnet=s.StarknetLocalnet;exports.WBTCArbitrumLocalnetAsset=s.WBTCArbitrumLocalnetAsset;exports.WBTCEthereumLocalnetAsset=s.WBTCEthereumLocalnetAsset;exports.bitcoinRegtestAsset=s.bitcoinRegtestAsset;exports.buildAssetsWithChain=o.buildAssetsWithChain;exports.ConstructUrl=t.ConstructUrl;exports.discriminateOrderResponse=t.discriminateOrderResponse;exports.getOrderResponseType=t.getOrderResponseType;exports.isBitcoinOrderResponse=t.isBitcoinOrderResponse;exports.isEvmOrderResponse=t.isEvmOrderResponse;exports.isOrder=t.isOrder;exports.isSolanaOrderResponse=t.isSolanaOrderResponse;exports.isStarknetOrderResponse=t.isStarknetOrderResponse;exports.isSuiOrderResponse=t.isSuiOrderResponse;exports.ChainAsset=a.ChainAsset;exports.OrderAction=i.OrderAction;exports.ParseOrderStatus=i.ParseOrderStatus;exports.isCompleted=i.isCompleted;exports.isDeadlinePassed=i.isDeadlinePassed;exports.parseAction=i.parseAction;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index2.cjs"),a=require("./index3.cjs"),e=require("./index4.cjs"),s=require("./index5.cjs"),o=require("./index6.cjs"),t=require("./index7.cjs"),c=require("./index8.cjs"),i=require("./index9.cjs"),l=require("./index10.cjs"),r=require("./index11.cjs");exports.Orderbook=n.Orderbook;exports.BlockchainType=a.BlockchainType;exports.Assets=e.Assets;exports.Chains=e.Chains;exports.Config=e.Config;exports.NATIVE_TOKENS=e.NATIVE_TOKENS;exports.OrderLifecycle=e.OrderLifecycle;exports.OrderStatus=e.OrderStatus;exports.getBlockchainType=e.getBlockchainType;exports.is=e.is;exports.isBitcoin=e.isBitcoin;exports.isEVM=e.isEVM;exports.isEvmNativeToken=e.isEvmNativeToken;exports.isMainnet=e.isMainnet;exports.isNativeToken=e.isNativeToken;exports.isSolana=e.isSolana;exports.isSolanaNativeToken=e.isSolanaNativeToken;exports.isStarknet=e.isStarknet;exports.isSui=e.isSui;exports.isSuiNativeToken=e.isSuiNativeToken;exports.ArbitrumLocalnet=s.ArbitrumLocalnet;exports.ETHStarknetLocalnetAsset=s.ETHStarknetLocalnetAsset;exports.EthereumLocalnet=s.EthereumLocalnet;exports.SOLSolanaLocalnetAsset=s.SOLSolanaLocalnetAsset;exports.STRKStarknetLocalnetAsset=s.STRKStarknetLocalnetAsset;exports.StarknetLocalnet=s.StarknetLocalnet;exports.WBTCArbitrumLocalnetAsset=s.WBTCArbitrumLocalnetAsset;exports.WBTCEthereumLocalnetAsset=s.WBTCEthereumLocalnetAsset;exports.bitcoinRegtestAsset=s.bitcoinRegtestAsset;exports.buildAssetsWithChain=o.buildAssetsWithChain;exports.ConstructUrl=t.ConstructUrl;exports.discriminateOrderResponse=t.discriminateOrderResponse;exports.getOrderResponseType=t.getOrderResponseType;exports.isBitcoinOrderResponse=t.isBitcoinOrderResponse;exports.isEvmOrderResponse=t.isEvmOrderResponse;exports.isOrder=t.isOrder;exports.isSolanaOrderResponse=t.isSolanaOrderResponse;exports.isStarknetOrderResponse=t.isStarknetOrderResponse;exports.isSuiOrderResponse=t.isSuiOrderResponse;exports.ChainAsset=c.ChainAsset;exports.OrderAction=i.OrderAction;exports.ParseOrderStatus=i.ParseOrderStatus;exports.isCompleted=i.isCompleted;exports.isDeadlinePassed=i.isDeadlinePassed;exports.parseAction=i.parseAction;exports.AssetManager=l.AssetManager;exports.RouteValidator=r.RouteValidator;exports.buildRouteMatrix=r.buildRouteMatrix;
package/dist/index.js CHANGED
@@ -1,55 +1,60 @@
1
- import { Orderbook as t } from "./index2.js";
1
+ import { Orderbook as r } from "./index2.js";
2
2
  import { BlockchainType as o } from "./index3.js";
3
- import { Assets as n, Chains as a, Config as c, NATIVE_TOKENS as p, OrderLifecycle as l, OrderStatus as d, getBlockchainType as S, is as m, isBitcoin as O, isEVM as A, isEvmNativeToken as T, isMainnet as k, isNativeToken as u, isSolana as f, isSolanaNativeToken as L, isStarknet as R, isSui as h, isSuiNativeToken as x } from "./index4.js";
4
- import { ArbitrumLocalnet as E, ETHStarknetLocalnetAsset as v, EthereumLocalnet as B, SOLSolanaLocalnetAsset as N, STRKStarknetLocalnetAsset as b, StarknetLocalnet as g, WBTCArbitrumLocalnetAsset as y, WBTCEthereumLocalnetAsset as W, bitcoinRegtestAsset as K } from "./index5.js";
5
- import { buildAssetsWithChain as P } from "./index6.js";
3
+ import { Assets as n, Chains as a, Config as p, NATIVE_TOKENS as c, OrderLifecycle as l, OrderStatus as d, getBlockchainType as m, is as S, isBitcoin as A, isEVM as O, isEvmNativeToken as u, isMainnet as T, isNativeToken as f, isSolana as k, isSolanaNativeToken as x, isStarknet as R, isSui as L, isSuiNativeToken as h } from "./index4.js";
4
+ import { ArbitrumLocalnet as E, ETHStarknetLocalnetAsset as b, EthereumLocalnet as v, SOLSolanaLocalnetAsset as B, STRKStarknetLocalnetAsset as N, StarknetLocalnet as g, WBTCArbitrumLocalnetAsset as y, WBTCEthereumLocalnetAsset as M, bitcoinRegtestAsset as V } from "./index5.js";
5
+ import { buildAssetsWithChain as K } from "./index6.js";
6
6
  import { ConstructUrl as D, discriminateOrderResponse as H, getOrderResponseType as I, isBitcoinOrderResponse as U, isEvmOrderResponse as _, isOrder as j, isSolanaOrderResponse as q, isStarknetOrderResponse as w, isSuiOrderResponse as z } from "./index7.js";
7
7
  import { ChainAsset as G } from "./index8.js";
8
8
  import { OrderAction as Q, ParseOrderStatus as X, isCompleted as Y, isDeadlinePassed as Z, parseAction as $ } from "./index9.js";
9
+ import { AssetManager as te } from "./index10.js";
10
+ import { RouteValidator as se, buildRouteMatrix as oe } from "./index11.js";
9
11
  export {
10
12
  E as ArbitrumLocalnet,
13
+ te as AssetManager,
11
14
  n as Assets,
12
15
  o as BlockchainType,
13
16
  G as ChainAsset,
14
17
  a as Chains,
15
- c as Config,
18
+ p as Config,
16
19
  D as ConstructUrl,
17
- v as ETHStarknetLocalnetAsset,
18
- B as EthereumLocalnet,
19
- p as NATIVE_TOKENS,
20
+ b as ETHStarknetLocalnetAsset,
21
+ v as EthereumLocalnet,
22
+ c as NATIVE_TOKENS,
20
23
  Q as OrderAction,
21
24
  l as OrderLifecycle,
22
25
  d as OrderStatus,
23
- t as Orderbook,
26
+ r as Orderbook,
24
27
  X as ParseOrderStatus,
25
- N as SOLSolanaLocalnetAsset,
26
- b as STRKStarknetLocalnetAsset,
28
+ se as RouteValidator,
29
+ B as SOLSolanaLocalnetAsset,
30
+ N as STRKStarknetLocalnetAsset,
27
31
  g as StarknetLocalnet,
28
32
  y as WBTCArbitrumLocalnetAsset,
29
- W as WBTCEthereumLocalnetAsset,
30
- K as bitcoinRegtestAsset,
31
- P as buildAssetsWithChain,
33
+ M as WBTCEthereumLocalnetAsset,
34
+ V as bitcoinRegtestAsset,
35
+ K as buildAssetsWithChain,
36
+ oe as buildRouteMatrix,
32
37
  H as discriminateOrderResponse,
33
- S as getBlockchainType,
38
+ m as getBlockchainType,
34
39
  I as getOrderResponseType,
35
- m as is,
36
- O as isBitcoin,
40
+ S as is,
41
+ A as isBitcoin,
37
42
  U as isBitcoinOrderResponse,
38
43
  Y as isCompleted,
39
44
  Z as isDeadlinePassed,
40
- A as isEVM,
41
- T as isEvmNativeToken,
45
+ O as isEVM,
46
+ u as isEvmNativeToken,
42
47
  _ as isEvmOrderResponse,
43
- k as isMainnet,
44
- u as isNativeToken,
48
+ T as isMainnet,
49
+ f as isNativeToken,
45
50
  j as isOrder,
46
- f as isSolana,
47
- L as isSolanaNativeToken,
51
+ k as isSolana,
52
+ x as isSolanaNativeToken,
48
53
  q as isSolanaOrderResponse,
49
54
  R as isStarknet,
50
55
  w as isStarknetOrderResponse,
51
- h as isSui,
52
- x as isSuiNativeToken,
56
+ L as isSui,
57
+ h as isSuiNativeToken,
53
58
  z as isSuiOrderResponse,
54
59
  $ as parseAction
55
60
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("@gardenfi/utils"),p=require("./index11.cjs"),w=require("./index4.cjs"),n=require("./index8.cjs"),y=Object.keys(w.Config);class b{constructor(s,t){this._allChains=null,this._allAssets=null,this._assets=null,this._chains=null,this._routeValidator=null,this._routeMatrix=null,this._isLoading=!1,this._error=null,this.url=new C.Url(s),this.apiKey=t}get allChains(){return this._allChains}get allAssets(){return this._allAssets}get assets(){return this._assets}get chains(){return this._chains}get routeValidator(){return this._routeValidator}get routeMatrix(){return this._routeMatrix}get isLoading(){return this._isLoading}get error(){return this._error}async initialize(){await Promise.all([this.fetchAndSetAssetsAndChains()])}async fetchAndSetAssetsAndChains(){try{this._isLoading=!0,this._error=null,await this.initializeRouteValidator();const s=this.url.endpoint("/v2/assets"),t=await C.Fetcher.get(s);if(t.error)throw new Error(t.error);if(!t.result)throw new Error("Failed to fetch chains data");const{allChains:e,allAssets:a,assets:o,chains:h}=this.processApiData(t.result);this._allChains=e,this._allAssets=a,this._assets=o,this._chains=h,this.buildRouteMatrix(),console.info("AssetManager initialized successfully ✅")}catch(s){throw console.error("Failed to fetch assets data ❌",s),this._error="Failed to fetch assets data",s}finally{this._isLoading=!1}}isRouteValid(s,t){if(!this._routeValidator||!s||!t||!s.id||!t.id)return console.warn("Missing routeValidator, from, or to. Returning true."),!0;try{const e=n.ChainAsset.from(s.id),a=n.ChainAsset.from(t.id);return this._routeValidator.isValidRoute(e,a)}catch(e){return console.error("Error in isRouteValid:",e),!0}}getValidDestinations(s){if(!this._routeMatrix||!this._assets||!s.id)return Object.values(this._assets||{});try{const t=this._routeMatrix[s.id.toString()];return t?t.map(e=>{const a=e.toString();return Object.values(this._assets).find(o=>n.ChainAsset.from(o).toString()===a)}).filter(Boolean):Object.values(this._assets)}catch(t){return console.error("Error in getValidDestinations:",t),Object.values(this._assets||{})}}getAsset(s){if(!this._assets)return;const t=n.ChainAsset.from(s).toString();return this._assets[t]}getAssetsByChain(s){return this._assets?Object.values(this._assets).filter(t=>t.chain===s):[]}searchAssets(s){if(!this._assets)return[];const t=s.toLowerCase();return Object.values(this._assets).filter(e=>e.symbol.toLowerCase().includes(t)||e.name.toLowerCase().includes(t))}getChain(s){if(this._chains)return this._chains[s]}async initializeRouteValidator(){this._routeValidator=new p.RouteValidator(this.url.toString(),this.apiKey),await this._routeValidator.loadPolicy()}buildRouteMatrix(){if(!this._allAssets||!this._routeValidator)return;const s=Object.values(this._allAssets).map(t=>{if(!t.id)return null;try{return n.ChainAsset.from(t.id)}catch{return null}}).filter(t=>t!==null);this._routeMatrix=p.buildRouteMatrix(s,this._routeValidator)}processApiData(s){var h,u,c,d;const t={},e={},a={},o={};for(const r of s){const l=this.parseChainIdentifier(r.chain);if(!l||!y.includes(l))continue;const _={name:this.formatChainName(r.chain),chain:l,id:r.id,explorer_url:r.explorer_url,icon:r.icon,confirmation_target:r.confirmation_target,source_timelock:r.source_timelock,destination_timelock:r.destination_timelock,supported_htlc_schemas:r.supported_htlc_schemas,supported_token_schemas:r.supported_token_schemas};t[l]=_;let f=0;for(const i of r.assets){const m=((h=i.htlc)==null?void 0:h.address)||"",V=((u=i.token)==null?void 0:u.address)||m,A=n.ChainAsset.from(i.id).toString(),g={id:n.ChainAsset.from(i.id),chain:l,htlc:{address:m,schema:((c=i.htlc)==null?void 0:c.schema)||null},token:{address:V,schema:((d=i.token)==null?void 0:d.schema)||null},decimals:i.decimals,name:i.name,symbol:n.ChainAsset.from(i.id).symbol.toUpperCase(),icon:i.icon,price:i.price,min_amount:i.min_amount,max_amount:i.max_amount};e[A]=g,a[A]=g,f++}f>0&&(o[l]=_)}return{allChains:t,allAssets:e,assets:a,chains:o}}parseChainIdentifier(s){return y.includes(s)?s:null}formatChainName(s){return s.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}async refresh(){await this.initialize()}clear(){this._allChains=null,this._allAssets=null,this._assets=null,this._chains=null,this._routeValidator=null,this._routeMatrix=null,this._error=null}}exports.AssetManager=b;
@@ -0,0 +1,238 @@
1
+ import { Url as y, Fetcher as V } from "@gardenfi/utils";
2
+ import { RouteValidator as w, buildRouteMatrix as x } from "./index11.js";
3
+ import { Config as b } from "./index4.js";
4
+ import { ChainAsset as n } from "./index8.js";
5
+ const g = Object.keys(b);
6
+ class j {
7
+ constructor(s, t) {
8
+ this._allChains = null, this._allAssets = null, this._assets = null, this._chains = null, this._routeValidator = null, this._routeMatrix = null, this._isLoading = !1, this._error = null, this.url = new y(s), this.apiKey = t;
9
+ }
10
+ // ============================================
11
+ // Getters
12
+ // ============================================
13
+ get allChains() {
14
+ return this._allChains;
15
+ }
16
+ get allAssets() {
17
+ return this._allAssets;
18
+ }
19
+ get assets() {
20
+ return this._assets;
21
+ }
22
+ get chains() {
23
+ return this._chains;
24
+ }
25
+ get routeValidator() {
26
+ return this._routeValidator;
27
+ }
28
+ get routeMatrix() {
29
+ return this._routeMatrix;
30
+ }
31
+ get isLoading() {
32
+ return this._isLoading;
33
+ }
34
+ get error() {
35
+ return this._error;
36
+ }
37
+ // ============================================
38
+ // Initialization Methods
39
+ // ============================================
40
+ /**
41
+ * Initialize the AssetManager by fetching all required data
42
+ */
43
+ async initialize() {
44
+ await Promise.all([this.fetchAndSetAssetsAndChains()]);
45
+ }
46
+ /**
47
+ * Fetch and cache asset and chain data from API
48
+ */
49
+ async fetchAndSetAssetsAndChains() {
50
+ try {
51
+ this._isLoading = !0, this._error = null, await this.initializeRouteValidator();
52
+ const s = this.url.endpoint("/v2/assets"), t = await V.get(s);
53
+ if (t.error)
54
+ throw new Error(t.error);
55
+ if (!t.result)
56
+ throw new Error("Failed to fetch chains data");
57
+ const { allChains: e, allAssets: a, assets: o, chains: h } = this.processApiData(
58
+ t.result
59
+ );
60
+ this._allChains = e, this._allAssets = a, this._assets = o, this._chains = h, this.buildRouteMatrix(), console.info("AssetManager initialized successfully ✅");
61
+ } catch (s) {
62
+ throw console.error("Failed to fetch assets data ❌", s), this._error = "Failed to fetch assets data", s;
63
+ } finally {
64
+ this._isLoading = !1;
65
+ }
66
+ }
67
+ // ============================================
68
+ // Route Validation Methods
69
+ // ============================================
70
+ /**
71
+ * Check if a swap route from one asset to another is valid
72
+ */
73
+ isRouteValid(s, t) {
74
+ if (!this._routeValidator || !s || !t || !s.id || !t.id)
75
+ return console.warn("Missing routeValidator, from, or to. Returning true."), !0;
76
+ try {
77
+ const e = n.from(s.id), a = n.from(t.id);
78
+ return this._routeValidator.isValidRoute(e, a);
79
+ } catch (e) {
80
+ return console.error("Error in isRouteValid:", e), !0;
81
+ }
82
+ }
83
+ /**
84
+ * Get all valid destination assets for a given source asset
85
+ */
86
+ getValidDestinations(s) {
87
+ if (!this._routeMatrix || !this._assets || !s.id)
88
+ return Object.values(this._assets || {});
89
+ try {
90
+ const t = this._routeMatrix[s.id.toString()];
91
+ return t ? t.map((e) => {
92
+ const a = e.toString();
93
+ return Object.values(this._assets).find((o) => n.from(o).toString() === a);
94
+ }).filter(Boolean) : Object.values(this._assets);
95
+ } catch (t) {
96
+ return console.error("Error in getValidDestinations:", t), Object.values(this._assets || {});
97
+ }
98
+ }
99
+ // ============================================
100
+ // Asset Query Methods
101
+ // ============================================
102
+ /**
103
+ * Get asset by chain and token address
104
+ */
105
+ getAsset(s) {
106
+ if (!this._assets) return;
107
+ const t = n.from(s).toString();
108
+ return this._assets[t];
109
+ }
110
+ /**
111
+ * Get all assets for a specific chain
112
+ */
113
+ getAssetsByChain(s) {
114
+ return this._assets ? Object.values(this._assets).filter((t) => t.chain === s) : [];
115
+ }
116
+ /**
117
+ * Search assets by symbol or name
118
+ */
119
+ searchAssets(s) {
120
+ if (!this._assets) return [];
121
+ const t = s.toLowerCase();
122
+ return Object.values(this._assets).filter(
123
+ (e) => e.symbol.toLowerCase().includes(t) || e.name.toLowerCase().includes(t)
124
+ );
125
+ }
126
+ /**
127
+ * Get chain data by chain identifier
128
+ */
129
+ getChain(s) {
130
+ if (this._chains)
131
+ return this._chains[s];
132
+ }
133
+ // ============================================
134
+ // Private Helper Methods
135
+ // ============================================
136
+ /**
137
+ * Initialize the route validator
138
+ */
139
+ async initializeRouteValidator() {
140
+ this._routeValidator = new w(this.url.toString(), this.apiKey), await this._routeValidator.loadPolicy();
141
+ }
142
+ /**
143
+ * Build route matrix for fast O(1) route lookups
144
+ */
145
+ buildRouteMatrix() {
146
+ if (!this._allAssets || !this._routeValidator)
147
+ return;
148
+ const s = Object.values(this._allAssets).map((t) => {
149
+ if (!t.id) return null;
150
+ try {
151
+ return n.from(t.id);
152
+ } catch {
153
+ return null;
154
+ }
155
+ }).filter((t) => t !== null);
156
+ this._routeMatrix = x(s, this._routeValidator);
157
+ }
158
+ /**
159
+ * Process raw API data into structured format
160
+ */
161
+ processApiData(s) {
162
+ var h, u, c, d;
163
+ const t = {}, e = {}, a = {}, o = {};
164
+ for (const r of s) {
165
+ const l = this.parseChainIdentifier(r.chain);
166
+ if (!l || !g.includes(l))
167
+ continue;
168
+ const _ = {
169
+ name: this.formatChainName(r.chain),
170
+ chain: l,
171
+ id: r.id,
172
+ explorer_url: r.explorer_url,
173
+ icon: r.icon,
174
+ confirmation_target: r.confirmation_target,
175
+ source_timelock: r.source_timelock,
176
+ destination_timelock: r.destination_timelock,
177
+ supported_htlc_schemas: r.supported_htlc_schemas,
178
+ supported_token_schemas: r.supported_token_schemas
179
+ };
180
+ t[l] = _;
181
+ let m = 0;
182
+ for (const i of r.assets) {
183
+ const f = ((h = i.htlc) == null ? void 0 : h.address) || "", C = ((u = i.token) == null ? void 0 : u.address) || f, p = n.from(i.id).toString(), A = {
184
+ id: n.from(i.id),
185
+ chain: l,
186
+ htlc: {
187
+ address: f,
188
+ schema: ((c = i.htlc) == null ? void 0 : c.schema) || null
189
+ },
190
+ token: {
191
+ address: C,
192
+ schema: ((d = i.token) == null ? void 0 : d.schema) || null
193
+ },
194
+ decimals: i.decimals,
195
+ name: i.name,
196
+ symbol: n.from(i.id).symbol.toUpperCase(),
197
+ icon: i.icon,
198
+ price: i.price,
199
+ min_amount: i.min_amount,
200
+ max_amount: i.max_amount
201
+ };
202
+ e[p] = A, a[p] = A, m++;
203
+ }
204
+ m > 0 && (o[l] = _);
205
+ }
206
+ return { allChains: t, allAssets: e, assets: a, chains: o };
207
+ }
208
+ /**
209
+ * Parse chain identifier from string
210
+ */
211
+ parseChainIdentifier(s) {
212
+ return g.includes(s) ? s : null;
213
+ }
214
+ /**
215
+ * Format chain name for display
216
+ */
217
+ formatChainName(s) {
218
+ return s.split("_").map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(" ");
219
+ }
220
+ // ============================================
221
+ // Data Refresh Methods
222
+ // ============================================
223
+ /**
224
+ * Refresh all data
225
+ */
226
+ async refresh() {
227
+ await this.initialize();
228
+ }
229
+ /**
230
+ * Clear all cached data
231
+ */
232
+ clear() {
233
+ this._allChains = null, this._allAssets = null, this._assets = null, this._chains = null, this._routeValidator = null, this._routeMatrix = null, this._error = null;
234
+ }
235
+ }
236
+ export {
237
+ j as AssetManager
238
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class u{constructor(t,r){this.apiBaseUrl=t,this.apiKey=r,this.policy=null}async loadPolicy(){try{const r=await(await fetch(`${this.apiBaseUrl}/v2/policy`,{headers:{"garden-app-id":this.apiKey,accept:"application/json"}})).json();if(r.status!=="Ok")throw new Error(`API Error: ${r.error}`);this.policy=r.result}catch(t){throw new Error(`Failed to load policy: ${t}`)}}isValidRoute(t,r){const e=this.ensurePolicyLoaded();if(t===r)return!1;const i=this.findIsolationGroup(t),o=this.findIsolationGroup(r);return i!==null||o!==null?i===o:this.matchesPatternList(t,r,e.whitelist_overrides)?!0:this.matchesPatternList(t,r,e.blacklist_pairs)?!1:e.default==="open"}isAssetInIsolationGroup(t){return this.ensurePolicyLoaded(),this.findIsolationGroup(t)!==null}getValidDestinations(t,r){this.ensurePolicyLoaded();const e=this.findIsolationGroup(t);return e!==null?r.filter(i=>i!==t&&this.findIsolationGroup(i)===e):r.filter(i=>t===i||this.findIsolationGroup(i)!==null?!1:this.isValidRoute(t,i))}getAllValidRoutes(t){return t.flatMap(r=>t.filter(e=>this.isValidRoute(r,e)).map(e=>({from:r,to:e})))}ensurePolicyLoaded(){if(!this.policy)throw new Error("Policy not loaded. Call loadPolicy() first.");return this.policy}findIsolationGroup(t){if(!this.policy)return null;for(let r=0;r<this.policy.isolation_groups.length;r++)if(this.matchesIsolationGroup(t,this.policy.isolation_groups[r]))return r;return null}matchesIsolationGroup(t,r){return this.parsePattern(r).some(i=>this.matchesAssetPattern(t,i))}matchesPatternList(t,r,e){return e.some(i=>this.matchesRoutePattern(t,r,i))}matchesRoutePattern(t,r,e){const i=e.includes("<->")?"<->":"->",[o,a]=e.split(i).map(s=>s.trim()),l=this.matchesAssetPattern(t,o)&&this.matchesAssetPattern(r,a);if(i==="<->"){const s=this.matchesAssetPattern(t,a)&&this.matchesAssetPattern(r,o);return l||s}return l}parsePattern(t){const r=t.includes("<->")?"<->":"->";return t.split(r).map(e=>e.trim())}matchesAssetPattern(t,r){const e=t.toString().toLowerCase(),i=r.toLowerCase();return i==="*"?!0:i.endsWith(":*")?e.startsWith(i.slice(0,-2)+":"):i.startsWith("*:")?e.endsWith(":"+i.slice(2)):e===i}}function c(n,t){return Object.fromEntries(n.map(r=>[r.toString(),t.getValidDestinations(r,n)]))}exports.RouteValidator=u;exports.buildRouteMatrix=c;
@@ -0,0 +1,90 @@
1
+ class u {
2
+ constructor(t, r) {
3
+ this.apiBaseUrl = t, this.apiKey = r, this.policy = null;
4
+ }
5
+ // Fetch policy from the API
6
+ async loadPolicy() {
7
+ try {
8
+ const r = await (await fetch(`${this.apiBaseUrl}/v2/policy`, {
9
+ headers: {
10
+ "garden-app-id": this.apiKey,
11
+ accept: "application/json"
12
+ }
13
+ })).json();
14
+ if (r.status !== "Ok")
15
+ throw new Error(`API Error: ${r.error}`);
16
+ this.policy = r.result;
17
+ } catch (t) {
18
+ throw new Error(`Failed to load policy: ${t}`);
19
+ }
20
+ }
21
+ isValidRoute(t, r) {
22
+ const e = this.ensurePolicyLoaded();
23
+ if (t === r) return !1;
24
+ const i = this.findIsolationGroup(t), o = this.findIsolationGroup(r);
25
+ return i !== null || o !== null ? i === o : this.matchesPatternList(t, r, e.whitelist_overrides) ? !0 : this.matchesPatternList(t, r, e.blacklist_pairs) ? !1 : e.default === "open";
26
+ }
27
+ isAssetInIsolationGroup(t) {
28
+ return this.ensurePolicyLoaded(), this.findIsolationGroup(t) !== null;
29
+ }
30
+ getValidDestinations(t, r) {
31
+ this.ensurePolicyLoaded();
32
+ const e = this.findIsolationGroup(t);
33
+ return e !== null ? r.filter(
34
+ (i) => i !== t && this.findIsolationGroup(i) === e
35
+ ) : r.filter((i) => t === i || this.findIsolationGroup(i) !== null ? !1 : this.isValidRoute(t, i));
36
+ }
37
+ getAllValidRoutes(t) {
38
+ return t.flatMap(
39
+ (r) => t.filter((e) => this.isValidRoute(r, e)).map((e) => ({ from: r, to: e }))
40
+ );
41
+ }
42
+ ensurePolicyLoaded() {
43
+ if (!this.policy)
44
+ throw new Error("Policy not loaded. Call loadPolicy() first.");
45
+ return this.policy;
46
+ }
47
+ findIsolationGroup(t) {
48
+ if (!this.policy) return null;
49
+ for (let r = 0; r < this.policy.isolation_groups.length; r++)
50
+ if (this.matchesIsolationGroup(t, this.policy.isolation_groups[r]))
51
+ return r;
52
+ return null;
53
+ }
54
+ matchesIsolationGroup(t, r) {
55
+ return this.parsePattern(r).some((i) => this.matchesAssetPattern(t, i));
56
+ }
57
+ matchesPatternList(t, r, e) {
58
+ return e.some(
59
+ (i) => this.matchesRoutePattern(t, r, i)
60
+ );
61
+ }
62
+ matchesRoutePattern(t, r, e) {
63
+ const i = e.includes("<->") ? "<->" : "->", [o, a] = e.split(i).map((s) => s.trim()), l = this.matchesAssetPattern(t, o) && this.matchesAssetPattern(r, a);
64
+ if (i === "<->") {
65
+ const s = this.matchesAssetPattern(t, a) && this.matchesAssetPattern(r, o);
66
+ return l || s;
67
+ }
68
+ return l;
69
+ }
70
+ parsePattern(t) {
71
+ const r = t.includes("<->") ? "<->" : "->";
72
+ return t.split(r).map((e) => e.trim());
73
+ }
74
+ matchesAssetPattern(t, r) {
75
+ const e = t.toString().toLowerCase(), i = r.toLowerCase();
76
+ return i === "*" ? !0 : i.endsWith(":*") ? e.startsWith(i.slice(0, -2) + ":") : i.startsWith("*:") ? e.endsWith(":" + i.slice(2)) : e === i;
77
+ }
78
+ }
79
+ function c(n, t) {
80
+ return Object.fromEntries(
81
+ n.map((r) => [
82
+ r.toString(),
83
+ t.getValidDestinations(r, n)
84
+ ])
85
+ );
86
+ }
87
+ export {
88
+ u as RouteValidator,
89
+ c as buildRouteMatrix
90
+ };
package/dist/index4.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@gardenfi/utils"),e=require("./index3.cjs"),o=require("./index5.cjs"),T=require("./index6.cjs");var m=(a=>(a.Created="Created",a.InitiateDetected="Initiate Detected",a.Initiated="Initiated",a.AwaitingRedeem="Awaiting Redeem",a.RedeemDetected="Redeem Detected",a.Redeemed="Redeemed",a.AwaitingRefund="Awaiting Refund",a.RefundDetected="Refund Detected",a.Refunded="Refunded",a.Expired="Expired",a))(m||{}),r=(a=>(a.refunded="refunded",a.expired="expired",a.completed="completed",a.inProgress="in-progress",a.notInitiated="not-initiated",a.all="all",a.pending="pending",a.fulfilled="fulfilled",a))(r||{});const d={solana_localnet:{type:e.BlockchainType.solana,SOL:o.SOLSolanaLocalnetAsset,network:t.Network.LOCALNET},arbitrum_localnet:{type:e.BlockchainType.evm,WBTC:o.WBTCArbitrumLocalnetAsset,network:t.Network.LOCALNET},ethereum_localnet:{type:e.BlockchainType.evm,WBTC:o.WBTCEthereumLocalnetAsset,network:t.Network.LOCALNET},bitcoin_regtest:{type:e.BlockchainType.bitcoin,BTC:o.bitcoinRegtestAsset,network:t.Network.LOCALNET},starknet_devnet:{type:e.BlockchainType.starknet,STRK:o.STRKStarknetLocalnetAsset,ETH:o.ETHStarknetLocalnetAsset,network:t.Network.LOCALNET},solana_testnet:{type:e.BlockchainType.solana,network:t.Network.TESTNET,SOL:{name:"Solana",decimals:9,symbol:"SOL",logo:"https://garden-finance.imgix.net/chain_images/solana.png",tokenAddress:"primary",atomicSwapAddress:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF_primary"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",tokenAddress:"5JbWjyLdYKTuykpq2itWbdRcZkhK3hs6fiH62pkmLYZi",atomicSwapAddress:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU_5JbWjyLdYKTuykpq2itWbdRcZkhK3hs6fiH62pkmLYZi"},cbBTC:{name:"Coinbase Wrapped Bitcoin",decimals:8,symbol:"cbBTC",logo:"https://garden.imgix.net/token-images/cbBTC.svg",tokenAddress:"CL8C4gsaEQyWPxL4Zn7dcnZ8LKvPYqHmv4ipMax4cDUL",atomicSwapAddress:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU_CL8C4gsaEQyWPxL4Zn7dcnZ8LKvPYqHmv4ipMax4cDUL"}},bitcoin_testnet:{type:e.BlockchainType.bitcoin,network:t.Network.TESTNET,BTC:{name:"Bitcoin",decimals:8,symbol:"BTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",tokenAddress:"primary",atomicSwapAddress:"primary"}},ethereum_sepolia:{type:e.BlockchainType.evm,network:t.Network.TESTNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",tokenAddress:"0xE918A5a47b8e0AFAC2382bC5D1e981613e63fB07",atomicSwapAddress:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",tokenAddress:"0xadDD620EA6D20f4f9c24fff3BC039E497ceBEDc2",atomicSwapAddress:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493"}},arbitrum_sepolia:{type:e.BlockchainType.evm,network:t.Network.TESTNET,iBTC:{name:"iBTC",decimals:8,symbol:"iBTC",logo:"https://garden.imgix.net/token-images/dlcBTCIcon.svg",atomicSwapAddress:"0x7e8c18fa79bd4014cfCf49294Bf315139eD39f45",tokenAddress:"0x685437f025c5f33A94818408C286bc1F023201Fc"},WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xb5AE9785349186069C48794a763DB39EC756B1cF",tokenAddress:"0x1c287717c886794ac9f5DF3987195431Ceb3456E"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x8E12d730756457B99ce6E6AbFd60eBe751dA169B",tokenAddress:"0xC90Ad72eCc10a52a681ceDAE6EbBD3470A0c829"},SEED:{name:"Seed",decimals:18,symbol:"SEED",logo:"https://garden.imgix.net/token-images/seed.svg",atomicSwapAddress:"0xFBD30cB9313fe580031A7E0258693E1cec002803",tokenAddress:"0x432B43764548c3E47eA65aAdeB91D75C84DBcC2c"}},base_sepolia:{type:e.BlockchainType.evm,network:t.Network.TESTNET,iBTC:{name:"iBTC",decimals:8,symbol:"iBTC",logo:"https://garden.imgix.net/token-images/dlcBTCIcon.svg",atomicSwapAddress:"0x46F1Ba9C9d89C34F9dbC4085F6B1f9965c589ca1",tokenAddress:"0x0b0D554D9573bAe1a7556d220847f45182918B28"},WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",tokenAddress:"0xD8a6E3FCA403d79b6AD6216b60527F51cc967D39"},USDT:{name:"Tether USD",decimals:6,symbol:"USDT",logo:"https://garden.imgix.net/token-images/usdt.svg",atomicSwapAddress:"0x917cfef972d667dC0FeC76806cB5623585B81493",tokenAddress:"0xeaE7721d779276eb0f5837e2fE260118724a2Ba4"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",tokenAddress:"0x1ac7A0ebf13a996D5915e212900bE2d074f94988"}},bera_testnet:{type:e.BlockchainType.evm,network:t.Network.TESTNET},citrea_testnet:{type:e.BlockchainType.evm,network:t.Network.TESTNET,WCBTC:{name:"Wrapped Citrea Bitcoin",decimals:18,symbol:"WCBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xD8e99df8cf77E7383c2f2a84bC6384b2DF88CAd3",tokenAddress:"0x8d0c9d1c17aE5e40ffF9bE350f57840E9E66Cd93"},WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",tokenAddress:"0x3edA22460259b29433704dda71cc921F528165Ea"},CBTC:{name:"Citrea Bitcoin",decimals:18,symbol:"CBTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",tokenAddress:"primary"},CBBTC:{name:"Citrea Bridged Bitcoin",decimals:8,symbol:"CBBTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"0x8656d38352CD90ca55881eBd0AF6822839b435A8",tokenAddress:"0xeAa998aF280a62Ae08BaE4f9fa59C9b30e6BD306"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",tokenAddress:"0xCdA8661fDA031deFCc9BdD88C0e12669Cac47Fb0"},USDT:{name:"Tether USD",decimals:6,symbol:"USDT",logo:"https://garden.imgix.net/token-images/usdt.svg",atomicSwapAddress:"0x917cfef972d667dC0FeC76806cB5623585B81493",tokenAddress:"0xF5cFE09b852Ddb164cF6Db419B9c11aAb5F30cb6"}},monad_testnet:{type:e.BlockchainType.evm,network:t.Network.TESTNET,cbBTC:{name:"Coinbase Wrapped Bitcoin",decimals:8,symbol:"cbBTC",logo:"https://garden.imgix.net/token-images/cbBTC.svg",atomicSwapAddress:"0x8656d38352CD90ca55881eBd0AF6822839b435A8",tokenAddress:"0x6b6303fAb8eC7232b4f2a7b9fa58E5216F608fcb"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",tokenAddress:"0xf817257fed379853cde0fa4f97ab987181b1e5ea"}},starknet_sepolia:{type:e.BlockchainType.starknet,network:t.Network.TESTNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0x06579d255314109429a4477d89629bc2b94f529ae01979c2f8014f9246482603",tokenAddress:"0x496bef3ed20371382fbe0ca6a5a64252c5c848f9f1f0cccf8110fc4def912d5"}},sui_testnet:{type:e.BlockchainType.sui,network:t.Network.TESTNET,SUI:{name:"SUI",decimals:9,symbol:"SUI",logo:"https://garden-finance.imgix.net/chain_images/sui.svg",tokenAddress:"0x2::sui::SUI",atomicSwapAddress:"0x5c438715b7dcc02d12ab92449153a1e5ade2301620d5bf60aa748f006726d369"}},hyperliquid_testnet:{type:e.BlockchainType.evm,network:t.Network.TESTNET},bnbchain_testnet:{type:e.BlockchainType.evm,network:t.Network.TESTNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",tokenAddress:"0x39f3294352208905fc6ebf033954E6c6455CdB4C"}},bitcoin:{type:e.BlockchainType.bitcoin,network:t.Network.MAINNET,BTC:{name:"Bitcoin",decimals:8,symbol:"BTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"primary",tokenAddress:"primary"}},base:{type:e.BlockchainType.evm,network:t.Network.MAINNET,USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",tokenAddress:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},cBBTC:{name:"Coinbase Wrapped BTC",decimals:8,symbol:"cBBTC",logo:"https://coin-images.coingecko.com/coins/images/51336/large/cbbtc.png?1730814747",atomicSwapAddress:"0xe35d025d0f0d9492db4700FE8646f7F89150eC04",tokenAddress:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf"}},arbitrum:{type:e.BlockchainType.evm,network:t.Network.MAINNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xb5AE9785349186069C48794a763DB39EC756B1cF",tokenAddress:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x8E12d730756457B99ce6E6AbFd60eBe751dA169B",tokenAddress:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"},iBTC:{name:"iBTC",decimals:8,symbol:"iBTC",logo:"https://garden.imgix.net/token-images/iBTC.png",atomicSwapAddress:"0x7e8c18fa79bd4014cfCf49294Bf315139eD39f45",tokenAddress:"0x050C24dBf1eEc17babE5fc585F06116A259CC77A"},SEED:{name:"Seed Token",decimals:18,symbol:"SEED",logo:"https://garden.imgix.net/token-images/seed.svg",atomicSwapAddress:"0xFBD30cB9313fe580031A7E0258693E1cec002803",tokenAddress:"0x86f65121804D2Cdbef79F9f072D4e0c2eEbABC08"}},ethereum:{type:e.BlockchainType.evm,network:t.Network.MAINNET,ETH:{name:"Ethereum",decimals:18,symbol:"ETH",logo:"https://garden.imgix.net/chain_images/ethereum.svg",atomicSwapAddress:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",tokenAddress:"primary"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",tokenAddress:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",tokenAddress:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"},cBBTC:{name:"Coinbase Wrapped BTC",decimals:8,symbol:"cBBTC",logo:"https://garden.imgix.net/token-images/cbBTC.svg",atomicSwapAddress:"0xe35d025d0f0d9492db4700FE8646f7F89150eC04",tokenAddress:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf"},iBTC:{name:"iBTC",decimals:8,symbol:"iBTC",logo:"https://garden.imgix.net/token-images/iBTC.png",atomicSwapAddress:"0x3aebBC6Dd1d024BE1C579E18e2EB92667B6f3579",tokenAddress:"0x20157DBAbb84e3BBFE68C349d0d44E48AE7B5AD2"},SEED:{name:"Seed Token",decimals:18,symbol:"SEED",logo:"https://garden.imgix.net/token-images/seed.svg",atomicSwapAddress:"0xCE511De667885f92B8c36fcfC79C3B5bEb875463",tokenAddress:"0x5eed99d066a8CaF10f3E4327c1b3D8b673485eED"}},solana:{type:e.BlockchainType.solana,network:t.Network.MAINNET,SOL:{name:"Solana",decimals:9,symbol:"SOL",logo:"https://garden-finance.imgix.net/chain_images/solana.png",atomicSwapAddress:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",tokenAddress:"primary"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",tokenAddress:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"},cBBTC:{name:"Coinbase Wrapped BTC",decimals:8,symbol:"cBBTC",logo:"https://garden.imgix.net/token-images/cbBTC.svg",atomicSwapAddress:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",tokenAddress:"cbbtcf3aa214zXHbiAZQwf4122FBYbraNdFqgw4iMij"}},bera:{type:e.BlockchainType.evm,network:t.Network.MAINNET,LBTC:{name:"Lombard BTC",decimals:8,symbol:"LBTC",logo:"https://garden.imgix.net/token-images/LBTC.svg",atomicSwapAddress:"0x84A396920d8B8CA2e69bD9503Bc1B2f73f1b8b33",tokenAddress:"0xecAc9C5F704e954931349Da37F60E39f515c11c1"}},starknet:{type:e.BlockchainType.starknet,network:t.Network.MAINNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0x7defd8eb3b770005ab1ca5f89ad31f98fb5bc3c52deaeafd130be3b49f967b4",tokenAddress:"0x3fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac"}},sui:{type:e.BlockchainType.sui,network:t.Network.MAINNET,SUI:{name:"Sui",decimals:9,symbol:"SUI",logo:"https://garden-finance.imgix.net/chain_images/sui.svg",atomicSwapAddress:"0xa4f4e653547e98d4b541378e14db2393a09aff4b829f158b133d2eb3c3a942b5",tokenAddress:"0x2::sui::SUI"}},hyperliquid:{type:e.BlockchainType.evm,network:t.Network.MAINNET,uBTC:{name:"uBTC",decimals:8,symbol:"uBTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"0xDC74a45e86DEdf1fF7c6dac77e0c2F082f9E4F72",tokenAddress:"0x9FDBdA0A5e284c32744D2f17Ee5c74B284993463"}},unichain:{type:e.BlockchainType.evm,network:t.Network.MAINNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",tokenAddress:"0x927B51f251480a681271180DA4de28D44EC4AfB8"},USDC:{name:"USD Coin",decimals:6,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",tokenAddress:"0x078D782b760474a361dDA0AF3839290b0EF57AD6"}},corn:{type:e.BlockchainType.evm,network:t.Network.MAINNET,BTCN:{name:"Bitcorn",decimals:18,symbol:"BTCN",logo:"https://garden.imgix.net/token-images/bitcorn.svg",atomicSwapAddress:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",tokenAddress:"primary"}},botanix:{type:e.BlockchainType.evm,network:t.Network.MAINNET,BTC:{name:"Botanix Bitcoin",decimals:18,symbol:"BTC",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",tokenAddress:"primary"}},bnbchain:{type:e.BlockchainType.evm,network:t.Network.MAINNET,BTCB:{name:"BTCB",decimals:18,symbol:"BTCB",logo:"https://garden.imgix.net/token-images/bitcoin.svg",atomicSwapAddress:"0xe74784E5A45528fDEcB257477DD6bd31c8ef0761",tokenAddress:"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c"},USDC:{name:"USD Coin",decimals:18,symbol:"USDC",logo:"https://garden.imgix.net/token-images/usdc.svg",atomicSwapAddress:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",tokenAddress:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d"}},core:{type:e.BlockchainType.evm,network:t.Network.MAINNET,WBTC:{name:"Wrapped Bitcoin",decimals:8,symbol:"WBTC",logo:"https://garden.imgix.net/token-images/wbtc.svg",atomicSwapAddress:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",tokenAddress:"0x5832f53d147b3d6Cd4578B9CBD62425C7ea9d0Bd"}}},f=Object.keys(d).reduce((a,s)=>(a[s]=s,a),{}),E=T.buildAssetsWithChain(d),D=a=>d[a].network===t.Network.MAINNET;function i(a){return s=>d[s].type===a}const g=i(e.BlockchainType.evm),B=i(e.BlockchainType.bitcoin),p=i(e.BlockchainType.solana),l=i(e.BlockchainType.starknet),b=i(e.BlockchainType.sui),S=a=>d[a].type,n={[e.BlockchainType.evm]:"eth",[e.BlockchainType.solana]:"sol",[e.BlockchainType.sui]:"sui"},C=(a,s)=>g(a)&&s.toLowerCase()===n[e.BlockchainType.evm],k=(a,s)=>p(a)&&s.toLowerCase()===n[e.BlockchainType.solana],A=(a,s)=>b(a)&&s.toLowerCase()===n[e.BlockchainType.sui],x=a=>{const s=a.chain,c=a.symbol;return C(s,c)||k(s,c)||B(s)||A(s,c)||!l(s)};exports.Assets=E;exports.Chains=f;exports.Config=d;exports.NATIVE_TOKENS=n;exports.OrderLifecycle=r;exports.OrderStatus=m;exports.getBlockchainType=S;exports.is=i;exports.isBitcoin=B;exports.isEVM=g;exports.isEvmNativeToken=C;exports.isMainnet=D;exports.isNativeToken=x;exports.isSolana=p;exports.isSolanaNativeToken=k;exports.isStarknet=l;exports.isSui=b;exports.isSuiNativeToken=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@gardenfi/utils"),e=require("./index3.cjs"),s=require("./index5.cjs"),v=require("./index6.cjs");var o=(a=>(a.Created="Created",a.InitiateDetected="Initiate Detected",a.Initiated="Initiated",a.AwaitingRedeem="Awaiting Redeem",a.RedeemDetected="Redeem Detected",a.Redeemed="Redeemed",a.AwaitingRefund="Awaiting Refund",a.RefundDetected="Refund Detected",a.Refunded="Refunded",a.Expired="Expired",a))(o||{}),r=(a=>(a.refunded="refunded",a.expired="expired",a.completed="completed",a.inProgress="in-progress",a.notInitiated="not-initiated",a.all="all",a.pending="pending",a.fulfilled="fulfilled",a))(r||{});const n={solana_localnet:{type:e.BlockchainType.solana,SOL:s.SOLSolanaLocalnetAsset,network:c.Network.LOCALNET},arbitrum_localnet:{type:e.BlockchainType.evm,WBTC:s.WBTCArbitrumLocalnetAsset,network:c.Network.LOCALNET},ethereum_localnet:{type:e.BlockchainType.evm,WBTC:s.WBTCEthereumLocalnetAsset,network:c.Network.LOCALNET},bitcoin_regtest:{type:e.BlockchainType.bitcoin,BTC:s.bitcoinRegtestAsset,network:c.Network.LOCALNET},starknet_devnet:{type:e.BlockchainType.starknet,STRK:s.STRKStarknetLocalnetAsset,ETH:s.ETHStarknetLocalnetAsset,network:c.Network.LOCALNET},solana_testnet:{type:e.BlockchainType.solana,network:c.Network.TESTNET,SOL:{id:"solana_testnet:sol",name:"Solana",symbol:"SOL",decimals:9,icon:"https://garden-finance.imgix.net/chain_images/solana.png",chain:"solana:103",htlc:{address:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",schema:"solana:htlc"},token:null},USDC:{id:"solana_testnet:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"solana:103",htlc:{address:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",schema:"solana:htlc_spltoken"},token:{address:"5JbWjyLdYKTuykpq2itWbdRcZkhK3hs6fiH62pkmLYZi",schema:null}},cbBTC:{id:"solana_testnet:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"cbBTC",decimals:8,icon:"https://garden.imgix.net/token-images/cbBTC.svg",chain:"solana:103",htlc:{address:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",schema:"solana:htlc_spltoken"},token:{address:"CL8C4gsaEQyWPxL4Zn7dcnZ8LKvPYqHmv4ipMax4cDUL",schema:null}}},bitcoin_testnet:{type:e.BlockchainType.bitcoin,network:c.Network.TESTNET,BTC:{id:"bitcoin_testnet:btc",name:"Bitcoin",symbol:"BTC",decimals:8,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"bitcoin",htlc:null,token:null}},ethereum_sepolia:{type:e.BlockchainType.evm,network:c.Network.TESTNET,WBTC:{id:"ethereum_sepolia:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:11155111",htlc:{address:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",schema:"evm:htlc_erc20"},token:{address:"0xE918A5a47b8e0AFAC2382bC5D1e981613e63fB07",schema:"evm:erc20"}},USDC:{id:"ethereum_sepolia:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:11155111",htlc:{address:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",schema:"evm:htlc_erc20"},token:{address:"0xadDD620EA6D20f4f9c24fff3BC039E497ceBEDc2",schema:"evm:erc20"}}},arbitrum_sepolia:{type:e.BlockchainType.evm,network:c.Network.TESTNET,iBTC:{id:"arbitrum_sepolia:ibtc",name:"iBTC",symbol:"iBTC",decimals:8,icon:"https://garden.imgix.net/token-images/dlcBTCIcon.svg",chain:"evm:421614",htlc:{address:"0x7e8c18fa79bd4014cfCf49294Bf315139eD39f45",schema:"evm:htlc_erc20"},token:{address:"0x685437f025c5f33A94818408C286bc1F023201Fc",schema:"evm:erc20"}},WBTC:{id:"arbitrum_sepolia:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:421614",htlc:{address:"0xb5AE9785349186069C48794a763DB39EC756B1cF",schema:"evm:htlc_erc20"},token:{address:"0x1c287717c886794ac9f5DF3987195431Ceb3456E",schema:"evm:erc20"}},USDC:{id:"arbitrum_sepolia:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:421614",htlc:{address:"0x8E12d730756457B99ce6E6AbFd60eBe751dA169B",schema:"evm:htlc_erc20"},token:{address:"0xC90Ad772eCc10a52a681ceDAE6EbBD3470A0c829",schema:"evm:erc20"}},SEED:{id:"arbitrum_sepolia:seed",name:"Seed",symbol:"SEED",decimals:18,icon:"https://garden.imgix.net/token-images/SEED.svg",chain:"evm:421614",htlc:{address:"0xFBD30cB9313fe580031A7E0258693E1cec002803",schema:"evm:htlc_erc20"},token:{address:"0x432B43764548c3E47eA65aAdeB91D75C84DBcC2c",schema:"evm:erc20"}}},base_sepolia:{type:e.BlockchainType.evm,network:c.Network.TESTNET,iBTC:{id:"base_sepolia:ibtc",name:"iBTC",symbol:"iBTC",decimals:8,icon:"https://garden.imgix.net/token-images/dlcBTCIcon.svg",chain:"evm:84532",htlc:{address:"0x46F1Ba9C9d89C34F9dbC4085F6B1f9965c589ca1",schema:"evm:htlc_erc20"},token:{address:"0x0b0D554D9573bAe1a7556d220847f45182918B28",schema:"evm:erc20"}},WBTC:{id:"base_sepolia:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:84532",htlc:{address:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",schema:"evm:htlc_erc20"},token:{address:"0xD8a6E3FCA403d79b6AD6216b60527F51cc967D39",schema:"evm:erc20"}},USDT:{id:"base_sepolia:usdt",name:"Tether USD",symbol:"USDT",decimals:6,icon:"https://garden.imgix.net/token-images/usdt.svg",chain:"evm:84532",htlc:{address:"0x917cfef972d667dC0FeC76806cB5623585B81493",schema:"evm:htlc_erc20"},token:{address:"0xeaE7721d779276eb0f5837e2fE260118724a2Ba4",schema:"evm:erc20"}},USDC:{id:"base_sepolia:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:84532",htlc:{address:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",schema:"evm:htlc_erc20"},token:{address:"0x1ac7A0ebf13a996D5915e212900bE2d074f94988",schema:"evm:erc20"}}},bera_testnet:{type:e.BlockchainType.evm,network:c.Network.TESTNET},citrea_testnet:{type:e.BlockchainType.evm,network:c.Network.TESTNET,WCBTC:{id:"citrea_testnet:wcbtc",name:"Wrapped Citrea Bitcoin",symbol:"WCBTC",decimals:18,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:5115",htlc:{address:"0xD8e99df8cf77E7383c2f2a84bC6384b2DF88CAd3",schema:"evm:htlc_erc20"},token:{address:"0x8d0c9d1c17aE5e40ffF9bE350f57840E9E66Cd93",schema:"evm:erc20"}},WBTC:{id:"citrea_testnet:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:5115",htlc:{address:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",schema:"evm:htlc_erc20"},token:{address:"0x3edA22460259b29433704dda71cc921F528165Ea",schema:"evm:erc20"}},CBTC:{id:"citrea_testnet:cbtc",name:"Citrea Bitcoin",symbol:"CBTC",decimals:18,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"evm:5115",htlc:{address:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",schema:"evm:htlc"},token:null},CBBTC:{id:"citrea_testnet:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"CBBTC",decimals:8,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"evm:5115",htlc:{address:"0x8656d38352CD90ca55881eBd0AF6822839b435A8",schema:"evm:htlc_erc20"},token:{address:"0xeAa998aF280a62Ae08BaE4f9fa59C9b30e6BD306",schema:"evm:erc20"}},USDC:{id:"citrea_testnet:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:5115",htlc:{address:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",schema:"evm:htlc_erc20"},token:{address:"0xCdA8661fDA031deFCc9BdD88C0e12669Cac47Fb0",schema:"evm:erc20"}},USDT:{id:"citrea_testnet:usdt",name:"Tether USD",symbol:"USDT",decimals:6,icon:"https://garden.imgix.net/token-images/usdt.svg",chain:"evm:5115",htlc:{address:"0x917cfef972d667dC0FeC76806cB5623585B81493",schema:"evm:htlc_erc20"},token:{address:"0xF5cFE09b852Ddb164cF6Db419B9c11aAb5F30cb6",schema:"evm:erc20"}}},monad_testnet:{type:e.BlockchainType.evm,network:c.Network.TESTNET,cBBTC:{id:"monad_testnet:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"cBBTC",decimals:8,icon:"https://garden.imgix.net/token-images/cbBTC.svg",chain:"evm:10143",htlc:{address:"0x8656d38352CD90ca55881eBd0AF6822839b435A8",schema:"evm:htlc_erc20"},token:{address:"0x6b6303fAb8eC7232b4f2a7b9fa58E5216F608fcb",schema:"evm:erc20"}},USDC:{id:"monad_testnet:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:10143",htlc:{address:"0x730Be401ef981D199a0560C87DfdDaFd3EC1C493",schema:"evm:htlc_erc20"},token:{address:"0xf817257fed379853cde0fa4f97ab987181b1e5ea",schema:"evm:erc20"}}},starknet_sepolia:{type:e.BlockchainType.starknet,network:c.Network.TESTNET,WBTC:{id:"starknet_sepolia:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"starknet:393402133025997798000961",htlc:{address:"0x06579d255314109429a4477d89629bc2b94f529ae01979c2f8014f9246482603",schema:"starknet:htlc_erc20"},token:{address:"0x496bef3ed20371382fbe0ca6a5a64252c5c848f9f1f0cccf8110fc4def912d5",schema:"starknet:erc20"}}},sui_testnet:{type:e.BlockchainType.sui,network:c.Network.TESTNET,SUI:{id:"sui_testnet:sui",name:"SUI",symbol:"SUI",decimals:9,icon:"https://garden-finance.imgix.net/chain_images/sui.svg",chain:"sui",htlc:{address:"0x5c438715b7dcc02d12ab92449153a1e5ade2301620d5bf60aa748f006726d369",schema:null},token:{address:"0x2::sui::SUI",schema:null}}},hyperliquid_testnet:{type:e.BlockchainType.evm,network:c.Network.TESTNET},bnbchain_testnet:{type:e.BlockchainType.evm,network:c.Network.TESTNET,WBTC:{id:"bnbchain_testnet:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:97",htlc:{address:"0xd1E0Ba2b165726b3a6051b765d4564d030FDcf50",schema:"evm:htlc_erc20"},token:{address:"0x39f3294352208905fc6ebf033954E6c6455CdB4C",schema:"evm:erc20"}}},bitcoin:{type:e.BlockchainType.bitcoin,network:c.Network.MAINNET,BTC:{id:"bitcoin:btc",name:"Bitcoin",symbol:"BTC",decimals:8,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"bitcoin",htlc:null,token:null}},base:{type:e.BlockchainType.evm,network:c.Network.MAINNET,USDC:{id:"base:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:8453",htlc:{address:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",schema:"evm:htlc_erc20"},token:{address:"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",schema:"evm:erc20"}},cBBTC:{id:"base:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"cBBTC",decimals:8,icon:"https://coin-images.coingecko.com/coins/images/51336/large/cbbtc.png?1730814747",chain:"evm:8453",htlc:{address:"0xe35d025d0f0d9492db4700FE8646f7F89150eC04",schema:"evm:htlc_erc20"},token:{address:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",schema:"evm:erc20"}}},arbitrum:{type:e.BlockchainType.evm,network:c.Network.MAINNET,WBTC:{id:"arbitrum:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:42161",htlc:{address:"0xb5AE9785349186069C48794a763DB39EC756B1cF",schema:"evm:htlc_erc20"},token:{address:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",schema:"evm:erc20"}},USDC:{id:"arbitrum:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:42161",htlc:{address:"0x8E12d730756457B99ce6E6AbFd60eBe751dA169B",schema:"evm:htlc_erc20"},token:{address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",schema:"evm:erc20"}},SEED:{id:"arbitrum:seed",name:"SEED",symbol:"SEED",decimals:18,icon:"https://garden.imgix.net/token-images/SEED.svg",chain:"evm:42161",htlc:{address:"0xFBD30cB9313fe580031A7E0258693E1cec002803",schema:"evm:htlc_erc20"},token:{address:"0x86f65121804D2Cdbef79F9f072D4e0c2eEbABC08",schema:"evm:erc20"}}},ethereum:{type:e.BlockchainType.evm,network:c.Network.MAINNET,ETH:{id:"ethereum:eth",name:"Ethereum",symbol:"ETH",decimals:18,icon:"https://garden.imgix.net/chain_images/ethereum.svg",chain:"evm:1",htlc:{address:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",schema:"evm:htlc"},token:null},USDC:{id:"ethereum:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:1",htlc:{address:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",schema:"evm:htlc_erc20"},token:{address:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",schema:"evm:erc20"}},WBTC:{id:"ethereum:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:1",htlc:{address:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",schema:"evm:htlc_erc20"},token:{address:"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",schema:"evm:erc20"}},cBBTC:{id:"ethereum:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"cBBTC",decimals:8,icon:"https://garden.imgix.net/token-images/cbBTC.svg",chain:"evm:1",htlc:{address:"0xe35d025d0f0d9492db4700FE8646f7F89150eC04",schema:"evm:htlc_erc20"},token:{address:"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf",schema:"evm:erc20"}},SEED:{id:"ethereum:seed",name:"SEED",symbol:"SEED",decimals:18,icon:"https://garden.imgix.net/token-images/SEED.svg",chain:"evm:1",htlc:{address:"0xCE511De667885f92B8c36fcfC79C3B5bEb875463",schema:"evm:htlc_erc20"},token:{address:"0x5eed99d066a8CaF10f3E4327c1b3D8b673485eED",schema:"evm:erc20"}}},solana:{type:e.BlockchainType.solana,network:c.Network.MAINNET,SOL:{id:"solana:sol",name:"Solana",symbol:"SOL",decimals:9,icon:"https://garden-finance.imgix.net/chain_images/solana.png",chain:"solana:101",htlc:{address:"2bag6xpshpvPe7SJ9nSDLHpxqhEAoHPGpEkjNSv7gxoF",schema:"solana:htlc"},token:null},USDC:{id:"solana:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"solana:101",htlc:{address:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",schema:"solana:htlc_spltoken"},token:{address:"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",schema:"primary"}},cBBTC:{id:"solana:cbbtc",name:"Coinbase Wrapped Bitcoin",symbol:"cBBTC",decimals:8,icon:"https://garden.imgix.net/token-images/cbBTC.svg",chain:"solana:101",htlc:{address:"gdnvdMCHJgnidtU7SL8RkRshHPvDJU1pdfZEpoLvqdU",schema:"solana:htlc_spltoken"},token:{address:"cbbtcf3aa214zXHbiAZQwf4122FBYbraNdFqgw4iMij",schema:"primary"}}},bera:{type:e.BlockchainType.evm,network:c.Network.MAINNET,LBTC:{id:"bera:lbtc",name:"Lombard Bitcoin",symbol:"LBTC",decimals:8,icon:"https://garden.imgix.net/token-images/LBTC.svg",chain:"evm:80094",htlc:{address:"0x84A396920d8B8CA2e69bD9503Bc1B2f73f1b8b33",schema:"evm:htlc_erc20"},token:{address:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",schema:"evm:erc20"}}},starknet:{type:e.BlockchainType.starknet,network:c.Network.MAINNET,WBTC:{id:"starknet:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"starknet:23448594291968334",htlc:{address:"0x7defd8eb3b770005ab1ca5f89ad31f98fb5bc3c52deaeafd130be3b49f967b4",schema:"starknet:htlc_erc20"},token:{address:"0x3fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac",schema:"starknet:erc20"}}},sui:{type:e.BlockchainType.sui,network:c.Network.MAINNET,SUI:{id:"sui:sui",name:"SUI",symbol:"SUI",decimals:9,icon:"https://garden-finance.imgix.net/chain_images/sui.svg",chain:"sui:0",htlc:{address:"0xa4f4e653547e98d4b541378e14db2393a09aff4b829f158b133d2eb3c3a942b5",schema:null},token:{address:"0x2::sui::SUI",schema:null}}},hyperliquid:{type:e.BlockchainType.evm,network:c.Network.MAINNET,uBTC:{id:"hyperliquid:ubtc",name:"Unit Bitcoin",symbol:"uBTC",decimals:8,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"evm:999",htlc:{address:"0xDC74a45e86DEdf1fF7c6dac77e0c2F082f9E4F72",schema:"evm:htlc_erc20"},token:{address:"0x9FDBdA0A5e284c32744D2f17Ee5c74B284993463",schema:"evm:erc20"}}},unichain:{type:e.BlockchainType.evm,network:c.Network.MAINNET,WBTC:{id:"unichain:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:130",htlc:{address:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",schema:"evm:htlc_erc20"},token:{address:"0x927B51f251480a681271180DA4de28D44EC4AfB8",schema:"evm:erc20"}},USDC:{id:"unichain:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:130",htlc:{address:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",schema:"evm:htlc_erc20"},token:{address:"0x078D782b760474a361dDA0AF3839290b0EF57AD6",schema:"evm:erc20"}}},corn:{type:e.BlockchainType.evm,network:c.Network.MAINNET,BTCN:{id:"corn:btcn",name:"Bitcorn",symbol:"BTCN",decimals:18,icon:"https://garden.imgix.net/token-images/bitcorn.svg",chain:"evm:21000000",htlc:{address:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",schema:"evm:htlc"},token:null}},botanix:{type:e.BlockchainType.evm,network:c.Network.MAINNET,BTC:{id:"botanix:btc",name:"Botanix Bitcoin",symbol:"BTC",decimals:18,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"evm:3637",htlc:{address:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",schema:"evm:htlc"},token:null}},bnbchain:{type:e.BlockchainType.evm,network:c.Network.MAINNET,BTCB:{id:"bnbchain:btcb",name:"Binance Bitcoin",symbol:"BTCB",decimals:18,icon:"https://garden.imgix.net/token-images/bitcoin.svg",chain:"evm:56",htlc:{address:"0xe74784E5A45528fDEcB257477DD6bd31c8ef0761",schema:"evm:htlc_erc20"},token:{address:"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c",schema:"evm:erc20"}},USDC:{id:"bnbchain:usdc",name:"USD Coin",symbol:"USDC",decimals:18,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:56",htlc:{address:"0x5fA58e4E89c85B8d678Ade970bD6afD4311aF17E",schema:"evm:htlc_erc20"},token:{address:"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",schema:"evm:erc20"}},BNB:{id:"bnbchain:bnb",name:"BNB",symbol:"BNB",decimals:18,icon:"https://garden-finance.imgix.net/chain_images/bnb.png",chain:"evm:56",htlc:{address:"0xE413743B51f3cC8b3ac24addf50D18fa138cB0Bb",schema:"evm:htlc"},token:null}},core:{type:e.BlockchainType.evm,network:c.Network.MAINNET,WBTC:{id:"core:wbtc",name:"Wrapped Bitcoin",symbol:"WBTC",decimals:8,icon:"https://garden.imgix.net/token-images/wbtc.svg",chain:"evm:1116",htlc:{address:"0xD781a2abB3FCB9fC0D1Dd85697c237d06b75fe95",schema:"evm:htlc_erc20"},token:{address:"0x5832f53d147b3d6Cd4578B9CBD62425C7ea9d0Bd",schema:"evm:erc20"}}}},T=Object.keys(n).reduce((a,t)=>(a[t]=t,a),{}),f=v.buildAssetsWithChain(n),E=a=>n[a].network===c.Network.MAINNET;function i(a){return t=>n[t].type===a}const h=i(e.BlockchainType.evm),l=i(e.BlockchainType.bitcoin),b=i(e.BlockchainType.solana),B=i(e.BlockchainType.starknet),k=i(e.BlockchainType.sui),D=a=>n[a].type,d={[e.BlockchainType.evm]:"eth",[e.BlockchainType.solana]:"sol",[e.BlockchainType.sui]:"sui"},g=(a,t)=>h(a)&&t.toLowerCase()===d[e.BlockchainType.evm],C=(a,t)=>b(a)&&t.toLowerCase()===d[e.BlockchainType.solana],p=(a,t)=>k(a)&&t.toLowerCase()===d[e.BlockchainType.sui],x=a=>{const t=a.chain,m=a.symbol;return g(t,m)||C(t,m)||l(t)||p(t,m)||!B(t)};exports.Assets=f;exports.Chains=T;exports.Config=n;exports.NATIVE_TOKENS=d;exports.OrderLifecycle=r;exports.OrderStatus=o;exports.getBlockchainType=D;exports.is=i;exports.isBitcoin=l;exports.isEVM=h;exports.isEvmNativeToken=g;exports.isMainnet=E;exports.isNativeToken=x;exports.isSolana=b;exports.isSolanaNativeToken=C;exports.isStarknet=B;exports.isSui=k;exports.isSuiNativeToken=p;