@gardenfi/orderbook 2.5.3-beta.9 → 3.0.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/dist/index10.cjs +1 -1
- package/dist/index10.js +42 -30
- package/dist/index11.cjs +1 -1
- package/dist/index11.js +81 -86
- package/dist/index12.cjs +1 -1
- package/dist/index12.js +24 -14
- package/dist/index4.cjs +1 -1
- package/dist/index4.js +38 -5
- package/dist/src/lib/assetManager/AssetManager.d.ts +9 -3
- package/dist/src/lib/assetManager/routeValidator/routeValidator.d.ts +0 -4
- package/dist/src/lib/assetManager/utils.d.ts +3 -0
- package/dist/src/lib/constants/asset.d.ts +67 -1
- package/dist/src/lib/orderbook/orderbook.types.d.ts +7 -1
- package/package.json +2 -2
package/dist/index10.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@gardenfi/utils"),y=require("./index11.cjs"),p=require("./index4.cjs"),r=require("./index8.cjs"),o=require("./index12.cjs"),h=Object.keys(p.Config);class g{constructor(t,s){this.assets=null,this.chains=null,this.routeMatrix=null,this.isLoading=!1,this.error=null,typeof s=="string"?this.auth=new n.ApiKey(s):this.auth=s;const e=o.ensureUrl(t.baseUrl),i=o.buildDefaultEndpoint(e,"/v2/chains"),a=o.buildDefaultEndpoint(e,"/v2/policy");this.urls={base:e,assets:o.ensureUrl(t.assetsUrl??i),policy:o.ensureUrl(t.policyUrl??a)},this.routeValidator=new y.RouteValidator(this.urls.policy.toString(),this.auth)}async initialize(){await this.fetchAndSetAssetsAndChains(),await this.routeValidator.loadPolicy()}async fetchAndSetAssetsAndChains(){try{this.isLoading=!0,this.error=null;const t=await this.auth.getAuthHeaders();if(!t.ok)return n.Err("Failed to get auth headers");const s=await n.Fetcher.get(this.urls.assets,{headers:{...t.val}});if(!s.result)return n.Err(`Failed to fetch chains data: ${s.error}`);const{assets:e,chains:i}=this.processApiData(s.result);return this.assets=e,this.chains=i,await this.buildRouteMatrix(),n.Ok("AssetManager initialized successfully")}catch(t){return n.Err(`Failed to fetch assets data: ${t}`)}finally{this.isLoading=!1}}async isRouteValid(t,s){return await this.routeValidator.isValidRoute(r.ChainAsset.from(t.id),r.ChainAsset.from(s.id))}getValidDestinations(t){if(!this.routeMatrix||!this.assets||!t.id)return console.warn("Missing routeMatrix, assets, or asset. Returning all assets."),[];const s=this.routeMatrix[t.id.toString().toLowerCase()];return s?s.map(e=>{const i=e.toString();return Object.values(this.assets).find(a=>r.ChainAsset.from(a).toString()===i)}).filter(Boolean):[]}getAsset(t){if(!this.assets)return;const s=r.ChainAsset.from(t).toString();return this.assets[s]}getAssetsByChain(t){return this.assets?Object.values(this.assets).filter(s=>s.chain===t):[]}searchAssets(t){if(!this.assets)return[];const s=t.toLowerCase();return Object.values(this.assets).filter(e=>e.symbol.toLowerCase().includes(s)||e.name.toLowerCase().includes(s))}getChain(t){if(this.chains)return this.chains[t]}async buildRouteMatrix(){if(!this.assets||!this.routeValidator)return;const t=Object.values(this.assets).map(s=>{if(!s.id)return null;try{return r.ChainAsset.from(s.id)}catch{return null}}).filter(s=>s!==null);this.routeMatrix=await this.routeValidator.buildRouteMatrix(t)}processApiData(t){const s={},e={};for(const i of t){const a=this.parseChainIdentifier(i.chain);if(!a||!h.includes(a))continue;const u={...i,name:this.formatChainName(i.chain),chain:a};for(const l of i.assets){const c=r.ChainAsset.from(l.id).toString(),{name:d,symbol:f}=o.parseAssetNameSymbol(l.name,l.id),A={...l,id:r.ChainAsset.from(l.id),chain:a,name:d,symbol:f};s[c]=A,e[a]||(e[a]=u)}}return{assets:s,chains:e}}parseChainIdentifier(t){return h.includes(t)?t:null}formatChainName(t){return t.split("_").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" ")}async refresh(){await this.initialize()}}exports.AssetManager=g;
|
package/dist/index10.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiKey as A, Err as o, Fetcher as y, Ok as g } from "@gardenfi/utils";
|
|
2
2
|
import { RouteValidator as C } from "./index11.js";
|
|
3
|
-
import { Config as
|
|
3
|
+
import { Config as b } from "./index4.js";
|
|
4
4
|
import { ChainAsset as r } from "./index8.js";
|
|
5
|
-
import { parseAssetNameSymbol as w } from "./index12.js";
|
|
6
|
-
const
|
|
7
|
-
class
|
|
5
|
+
import { ensureUrl as l, buildDefaultEndpoint as u, parseAssetNameSymbol as w } from "./index12.js";
|
|
6
|
+
const c = Object.keys(b);
|
|
7
|
+
class I {
|
|
8
8
|
constructor(t, s) {
|
|
9
|
-
this.assets = null, this.chains = null, this.routeMatrix = null, this.isLoading = !1, this.error = null,
|
|
9
|
+
this.assets = null, this.chains = null, this.routeMatrix = null, this.isLoading = !1, this.error = null, typeof s == "string" ? this.auth = new A(s) : this.auth = s;
|
|
10
|
+
const i = l(t.baseUrl), e = u(i, "/v2/chains"), a = u(i, "/v2/policy");
|
|
11
|
+
this.urls = {
|
|
12
|
+
base: i,
|
|
13
|
+
assets: l(t.assetsUrl ?? e),
|
|
14
|
+
policy: l(t.policyUrl ?? a)
|
|
15
|
+
}, this.routeValidator = new C(
|
|
16
|
+
this.urls.policy.toString(),
|
|
17
|
+
this.auth
|
|
18
|
+
);
|
|
10
19
|
}
|
|
11
20
|
// ============================================
|
|
12
21
|
// Initialization Methods
|
|
@@ -25,14 +34,17 @@ class R {
|
|
|
25
34
|
this.isLoading = !0, this.error = null;
|
|
26
35
|
const t = await this.auth.getAuthHeaders();
|
|
27
36
|
if (!t.ok) return o("Failed to get auth headers");
|
|
28
|
-
const s =
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
const s = await y.get(
|
|
38
|
+
this.urls.assets,
|
|
39
|
+
{
|
|
40
|
+
headers: {
|
|
41
|
+
...t.val
|
|
42
|
+
}
|
|
31
43
|
}
|
|
32
|
-
|
|
33
|
-
if (!
|
|
34
|
-
const { assets:
|
|
35
|
-
return this.assets =
|
|
44
|
+
);
|
|
45
|
+
if (!s.result) return o(`Failed to fetch chains data: ${s.error}`);
|
|
46
|
+
const { assets: i, chains: e } = this.processApiData(s.result);
|
|
47
|
+
return this.assets = i, this.chains = e, await this.buildRouteMatrix(), g("AssetManager initialized successfully");
|
|
36
48
|
} catch (t) {
|
|
37
49
|
return o(`Failed to fetch assets data: ${t}`);
|
|
38
50
|
} finally {
|
|
@@ -61,8 +73,8 @@ class R {
|
|
|
61
73
|
), [];
|
|
62
74
|
const s = this.routeMatrix[t.id.toString().toLowerCase()];
|
|
63
75
|
return s ? s.map((i) => {
|
|
64
|
-
const
|
|
65
|
-
return Object.values(this.assets).find((
|
|
76
|
+
const e = i.toString();
|
|
77
|
+
return Object.values(this.assets).find((a) => r.from(a).toString() === e);
|
|
66
78
|
}).filter(Boolean) : [];
|
|
67
79
|
}
|
|
68
80
|
// ============================================
|
|
@@ -124,27 +136,27 @@ class R {
|
|
|
124
136
|
*/
|
|
125
137
|
processApiData(t) {
|
|
126
138
|
const s = {}, i = {};
|
|
127
|
-
for (const
|
|
128
|
-
const
|
|
129
|
-
if (!
|
|
139
|
+
for (const e of t) {
|
|
140
|
+
const a = this.parseChainIdentifier(e.chain);
|
|
141
|
+
if (!a || !c.includes(a))
|
|
130
142
|
continue;
|
|
131
143
|
const h = {
|
|
132
|
-
...
|
|
133
|
-
name: this.formatChainName(
|
|
134
|
-
chain:
|
|
144
|
+
...e,
|
|
145
|
+
name: this.formatChainName(e.chain),
|
|
146
|
+
chain: a
|
|
135
147
|
};
|
|
136
|
-
for (const n of
|
|
137
|
-
const
|
|
148
|
+
for (const n of e.assets) {
|
|
149
|
+
const d = r.from(n.id).toString(), { name: f, symbol: m } = w(
|
|
138
150
|
n.name,
|
|
139
151
|
n.id
|
|
140
|
-
),
|
|
152
|
+
), p = {
|
|
141
153
|
...n,
|
|
142
154
|
id: r.from(n.id),
|
|
143
|
-
chain:
|
|
144
|
-
name:
|
|
145
|
-
symbol:
|
|
155
|
+
chain: a,
|
|
156
|
+
name: f,
|
|
157
|
+
symbol: m
|
|
146
158
|
};
|
|
147
|
-
s[
|
|
159
|
+
s[d] = p, i[a] || (i[a] = h);
|
|
148
160
|
}
|
|
149
161
|
}
|
|
150
162
|
return { assets: s, chains: i };
|
|
@@ -153,7 +165,7 @@ class R {
|
|
|
153
165
|
* Parse chain identifier from string
|
|
154
166
|
*/
|
|
155
167
|
parseChainIdentifier(t) {
|
|
156
|
-
return
|
|
168
|
+
return c.includes(t) ? t : null;
|
|
157
169
|
}
|
|
158
170
|
/**
|
|
159
171
|
* Format chain name for display
|
|
@@ -172,5 +184,5 @@ class R {
|
|
|
172
184
|
}
|
|
173
185
|
}
|
|
174
186
|
export {
|
|
175
|
-
|
|
187
|
+
I as AssetManager
|
|
176
188
|
};
|
package/dist/index11.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@gardenfi/utils"),h=require("node-cache"),o=class o{constructor(e,t){this.policy=new h({stdTTL:36e3,checkperiod:3600}),typeof t=="string"?this.auth=new a.ApiKey(t):this.auth=t,typeof e=="string"?this.apiBaseUrl=new a.Url(e):this.apiBaseUrl=e}getPolicy(){return this.policy.get(o.POLICY_CACHE_KEY)}setPolicy(e){const t=this.getPolicy(),i={default:e.default||(t==null?void 0:t.default)||"open",isolation_groups:[...new Set([...(t==null?void 0:t.isolation_groups)||[],...e.isolation_groups])],blacklist_pairs:[...new Set([...(t==null?void 0:t.blacklist_pairs)||[],...e.blacklist_pairs])],whitelist_overrides:[...new Set([...(t==null?void 0:t.whitelist_overrides)||[],...e.whitelist_overrides])]};return this.policy.set(o.POLICY_CACHE_KEY,i),i}async loadPolicy(){const e=this.getPolicy();if(e)return a.Ok(e);try{const t=await this.auth.getAuthHeaders();if(!t.ok)return a.Err(`Failed to get auth headers: ${t.error}`);const i=await a.Fetcher.get(this.apiBaseUrl,{headers:{"Content-Type":"application/json",...t.val}});return i.result?(i.result.blacklist_pairs.push("*:* -> bnbchain:btcb","bnbchain:btcb -> *:*","*:* -> botanix:btc","botanix:btc -> *:*"),i.result.whitelist_overrides.push("bitcoin:btc -> bnbchain:btcb","botanix:btc -> bnbchain:btcb","bnbchain:btcb -> bitcoin:btc","bnbchain:btcb -> botanix:btc","bitcoin:btc -> botanix:btc","botanix:btc -> bitcoin:btc"),a.Ok(this.setPolicy(i.result))):a.Err(`API Error: ${i.error}`)}catch(t){return a.Err(`Failed to load policy: ${t}`)}}async isValidRoute(e,t){const i=await this.loadPolicy();if(!i.ok||e.toString()===t.toString())return!1;const{sortedIsolationRules:s,sortedBlacklistRules:r,sortedWhitelistRules:n}=this.preprocessRules(i.val),c=this.findMatchingRule(e,s);if(c&&!this.matchesRuleDestination(t,c))return!1;const l=this.findMatchingRule(t,s);return l&&l.rule.direction==="<->"&&!this.matchesRuleSource(e,l)?!1:this.matchesRuleList(e,t,r)?!!this.matchesRuleList(e,t,n):i.val.default==="open"}async getValidDestinations(e,t){const i=[];for(const s of t)await this.isValidRoute(e,s)&&i.push(s);return i}async getAllValidRoutes(e){const t=[];for(const i of e)for(const s of e)await this.isValidRoute(i,s)&&t.push({from:i,to:s});return t}preprocessRules(e){const t=e.isolation_groups.map(r=>this.parseRule(r)).sort((r,n)=>n.specificity-r.specificity),i=e.blacklist_pairs.map(r=>this.parseRule(r)).sort((r,n)=>n.specificity-r.specificity),s=e.whitelist_overrides.map(r=>this.parseRule(r)).sort((r,n)=>n.specificity-r.specificity);return{sortedIsolationRules:t,sortedBlacklistRules:i,sortedWhitelistRules:s}}parseRule(e){const i=e.includes("<->")?"<->":"->",[s,r]=e.split(i).map(n=>n.trim());return{pattern:e,fromPattern:s,toPattern:r,direction:i,specificity:this.calculateSpecificity(s,r)}}calculateSpecificity(e,t){const i=s=>{const r=s.toLowerCase();return r==="*"?0:r.includes("*")?1:2};return i(e)*10+i(t)}findMatchingRule(e,t){for(const i of t){if(this.matchesAssetPattern(e,i.fromPattern))return{rule:i,matchedAs:"from"};if(i.direction==="<->"&&this.matchesAssetPattern(e,i.toPattern))return{rule:i,matchedAs:"to"}}return null}matchesRuleDestination(e,t){return t.matchedAs==="from"?this.matchesAssetPattern(e,t.rule.toPattern):t.rule.direction!=="<->"?!1:this.matchesAssetPattern(e,t.rule.fromPattern)}matchesRuleSource(e,t){return t.matchedAs==="to"?this.matchesAssetPattern(e,t.rule.fromPattern):t.rule.direction!=="<->"?!1:this.matchesAssetPattern(e,t.rule.toPattern)}matchesRuleList(e,t,i){return i.some(s=>this.matchesRule(e,t,s))}matchesRule(e,t,i){const s=this.matchesAssetPattern(e,i.fromPattern)&&this.matchesAssetPattern(t,i.toPattern);if(i.direction==="<->"){const r=this.matchesAssetPattern(e,i.toPattern)&&this.matchesAssetPattern(t,i.fromPattern);return s||r}return s}matchesAssetPattern(e,t){const[i="",s=""]=t.split(":").map(c=>c.trim().toLowerCase()),r=i===""||i==="*"||i===e.chain.toLowerCase(),n=s===""||s==="*"||s===e.symbol.toLowerCase();return r&&n}async buildRouteMatrix(e){const t={};for(const i of e){const s=[];for(const r of e)await this.isValidRoute(i,r)&&s.push(r);t[i.toString()]=s}return t}};o.POLICY_CACHE_KEY="route_policy";let u=o;exports.RouteValidator=u;
|
package/dist/index11.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { ApiKey as f, Url as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
1
|
+
import { ApiKey as f, Url as b, Ok as u, Err as l, Fetcher as p } from "@gardenfi/utils";
|
|
2
|
+
import d from "node-cache";
|
|
3
|
+
const a = class a {
|
|
4
4
|
constructor(e, t) {
|
|
5
|
-
this.policy = new
|
|
5
|
+
this.policy = new d({
|
|
6
6
|
stdTTL: 36e3,
|
|
7
7
|
// 10 hours in seconds
|
|
8
8
|
checkperiod: 3600
|
|
9
9
|
// Check for expired keys every hour
|
|
10
|
-
}), typeof t == "string" ? this.auth = new f(t) : this.auth = t, typeof e == "string" ? this.apiBaseUrl = new
|
|
10
|
+
}), typeof t == "string" ? this.auth = new f(t) : this.auth = t, typeof e == "string" ? this.apiBaseUrl = new b(e) : this.apiBaseUrl = e;
|
|
11
11
|
}
|
|
12
12
|
getPolicy() {
|
|
13
|
-
return this.policy.get(
|
|
13
|
+
return this.policy.get(a.POLICY_CACHE_KEY);
|
|
14
14
|
}
|
|
15
15
|
setPolicy(e) {
|
|
16
|
-
const t = this.getPolicy(),
|
|
16
|
+
const t = this.getPolicy(), i = {
|
|
17
17
|
default: e.default || (t == null ? void 0 : t.default) || "open",
|
|
18
18
|
isolation_groups: [
|
|
19
19
|
.../* @__PURE__ */ new Set([
|
|
@@ -34,7 +34,7 @@ const o = class o {
|
|
|
34
34
|
])
|
|
35
35
|
]
|
|
36
36
|
};
|
|
37
|
-
return this.policy.set(
|
|
37
|
+
return this.policy.set(a.POLICY_CACHE_KEY, i), i;
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
40
40
|
* Loads the current route policy, cached or via API.
|
|
@@ -45,9 +45,9 @@ const o = class o {
|
|
|
45
45
|
try {
|
|
46
46
|
const t = await this.auth.getAuthHeaders();
|
|
47
47
|
if (!t.ok)
|
|
48
|
-
return
|
|
49
|
-
const
|
|
50
|
-
this.apiBaseUrl
|
|
48
|
+
return l(`Failed to get auth headers: ${t.error}`);
|
|
49
|
+
const i = await p.get(
|
|
50
|
+
this.apiBaseUrl,
|
|
51
51
|
{
|
|
52
52
|
headers: {
|
|
53
53
|
"Content-Type": "application/json",
|
|
@@ -55,53 +55,48 @@ const o = class o {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
);
|
|
58
|
-
return
|
|
58
|
+
return i.result ? (i.result.blacklist_pairs.push(
|
|
59
|
+
"*:* -> bnbchain:btcb",
|
|
60
|
+
"bnbchain:btcb -> *:*",
|
|
61
|
+
"*:* -> botanix:btc",
|
|
62
|
+
"botanix:btc -> *:*"
|
|
63
|
+
), i.result.whitelist_overrides.push(
|
|
64
|
+
"bitcoin:btc -> bnbchain:btcb",
|
|
65
|
+
"botanix:btc -> bnbchain:btcb",
|
|
66
|
+
"bnbchain:btcb -> bitcoin:btc",
|
|
67
|
+
"bnbchain:btcb -> botanix:btc",
|
|
68
|
+
"bitcoin:btc -> botanix:btc",
|
|
69
|
+
"botanix:btc -> bitcoin:btc"
|
|
70
|
+
), u(this.setPolicy(i.result))) : l(`API Error: ${i.error}`);
|
|
59
71
|
} catch (t) {
|
|
60
|
-
return
|
|
72
|
+
return l(`Failed to load policy: ${t}`);
|
|
61
73
|
}
|
|
62
74
|
}
|
|
63
75
|
/**
|
|
64
76
|
* Checks if a given route is valid based on all route rules.
|
|
65
77
|
*/
|
|
66
78
|
async isValidRoute(e, t) {
|
|
67
|
-
const
|
|
68
|
-
if (!
|
|
69
|
-
const { sortedIsolationRules:
|
|
70
|
-
if (this.matchesRuleList(e, t, n))
|
|
71
|
-
return !0;
|
|
72
|
-
const c = this.findMatchingRule(
|
|
79
|
+
const i = await this.loadPolicy();
|
|
80
|
+
if (!i.ok || e.toString() === t.toString()) return !1;
|
|
81
|
+
const { sortedIsolationRules: s, sortedBlacklistRules: r, sortedWhitelistRules: n } = this.preprocessRules(i.val), o = this.findMatchingRule(
|
|
73
82
|
e,
|
|
74
|
-
|
|
75
|
-
"from"
|
|
83
|
+
s
|
|
76
84
|
);
|
|
77
|
-
if (
|
|
85
|
+
if (o && !this.matchesRuleDestination(t, o))
|
|
78
86
|
return !1;
|
|
79
|
-
const
|
|
87
|
+
const c = this.findMatchingRule(
|
|
80
88
|
t,
|
|
81
|
-
|
|
82
|
-
"to"
|
|
83
|
-
);
|
|
84
|
-
return l && !this.matchesRuleSource(e, l) || this.matchesRuleList(e, t, r) ? !1 : s.val.default === "open";
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Returns true if asset is part of any isolation group rule.
|
|
88
|
-
*/
|
|
89
|
-
async isAssetInIsolationGroup(e) {
|
|
90
|
-
const t = await this.loadPolicy();
|
|
91
|
-
if (!t.ok) return !1;
|
|
92
|
-
const { sortedIsolationRules: s } = this.preprocessRules(t.val);
|
|
93
|
-
return s.some(
|
|
94
|
-
(i) => this.matchesAssetPattern(e, i.fromPattern) || this.matchesAssetPattern(e, i.toPattern)
|
|
89
|
+
s
|
|
95
90
|
);
|
|
91
|
+
return c && c.rule.direction === "<->" && !this.matchesRuleSource(e, c) ? !1 : this.matchesRuleList(e, t, r) ? !!this.matchesRuleList(e, t, n) : i.val.default === "open";
|
|
96
92
|
}
|
|
97
93
|
/**
|
|
98
94
|
* Returns all valid destinations for a given source asset.
|
|
99
95
|
*/
|
|
100
96
|
async getValidDestinations(e, t) {
|
|
101
|
-
if (!(await this.loadPolicy()).ok) return [];
|
|
102
97
|
const i = [];
|
|
103
|
-
for (const
|
|
104
|
-
await this.isValidRoute(e,
|
|
98
|
+
for (const s of t)
|
|
99
|
+
await this.isValidRoute(e, s) && i.push(s);
|
|
105
100
|
return i;
|
|
106
101
|
}
|
|
107
102
|
/**
|
|
@@ -109,59 +104,64 @@ const o = class o {
|
|
|
109
104
|
*/
|
|
110
105
|
async getAllValidRoutes(e) {
|
|
111
106
|
const t = [];
|
|
112
|
-
for (const
|
|
113
|
-
for (const
|
|
114
|
-
await this.isValidRoute(
|
|
107
|
+
for (const i of e)
|
|
108
|
+
for (const s of e)
|
|
109
|
+
await this.isValidRoute(i, s) && t.push({ from: i, to: s });
|
|
115
110
|
return t;
|
|
116
111
|
}
|
|
117
112
|
/**
|
|
118
113
|
* Turns policy string rules into sorted ParsedRule objects.
|
|
119
114
|
*/
|
|
120
115
|
preprocessRules(e) {
|
|
121
|
-
const t = e.isolation_groups.map((r) => this.parseRule(r)).sort((r, n) => n.specificity - r.specificity),
|
|
122
|
-
return { sortedIsolationRules: t, sortedBlacklistRules:
|
|
116
|
+
const t = e.isolation_groups.map((r) => this.parseRule(r)).sort((r, n) => n.specificity - r.specificity), i = e.blacklist_pairs.map((r) => this.parseRule(r)).sort((r, n) => n.specificity - r.specificity), s = e.whitelist_overrides.map((r) => this.parseRule(r)).sort((r, n) => n.specificity - r.specificity);
|
|
117
|
+
return { sortedIsolationRules: t, sortedBlacklistRules: i, sortedWhitelistRules: s };
|
|
123
118
|
}
|
|
124
119
|
/**
|
|
125
120
|
* Parses a rule string (e.g. "ethereum:usdc -> base:usdt") into parts.
|
|
126
121
|
*/
|
|
127
122
|
parseRule(e) {
|
|
128
|
-
const
|
|
123
|
+
const i = e.includes(
|
|
129
124
|
"<->"
|
|
130
125
|
/* Bidirectional */
|
|
131
|
-
) ? "<->" : "->", [
|
|
126
|
+
) ? "<->" : "->", [s, r] = e.split(i).map((n) => n.trim());
|
|
132
127
|
return {
|
|
133
128
|
pattern: e,
|
|
134
|
-
fromPattern:
|
|
129
|
+
fromPattern: s,
|
|
135
130
|
toPattern: r,
|
|
136
|
-
direction:
|
|
137
|
-
specificity: this.calculateSpecificity(
|
|
131
|
+
direction: i,
|
|
132
|
+
specificity: this.calculateSpecificity(s, r)
|
|
138
133
|
};
|
|
139
134
|
}
|
|
140
135
|
/**
|
|
141
136
|
* Gives a specificity score to a rule pattern for prioritizing.
|
|
142
137
|
*/
|
|
143
138
|
calculateSpecificity(e, t) {
|
|
144
|
-
const
|
|
145
|
-
const r =
|
|
139
|
+
const i = (s) => {
|
|
140
|
+
const r = s.toLowerCase();
|
|
146
141
|
return r === "*" ? 0 : r.includes(
|
|
147
142
|
"*"
|
|
148
143
|
/* Any */
|
|
149
144
|
) ? 1 : 2;
|
|
150
145
|
};
|
|
151
|
-
return
|
|
146
|
+
return i(e) * 10 + i(t);
|
|
152
147
|
}
|
|
153
148
|
/**
|
|
154
149
|
* Finds the first matching rule for an asset given the rule "side".
|
|
155
150
|
*/
|
|
156
|
-
findMatchingRule(e, t
|
|
151
|
+
findMatchingRule(e, t) {
|
|
157
152
|
for (const i of t) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
153
|
+
if (this.matchesAssetPattern(e, i.fromPattern))
|
|
154
|
+
return {
|
|
155
|
+
rule: i,
|
|
156
|
+
matchedAs: "from"
|
|
157
|
+
/* From */
|
|
158
|
+
};
|
|
159
|
+
if (i.direction === "<->" && this.matchesAssetPattern(e, i.toPattern))
|
|
160
|
+
return {
|
|
161
|
+
rule: i,
|
|
162
|
+
matchedAs: "to"
|
|
163
|
+
/* To */
|
|
164
|
+
};
|
|
165
165
|
}
|
|
166
166
|
return null;
|
|
167
167
|
}
|
|
@@ -169,56 +169,51 @@ const o = class o {
|
|
|
169
169
|
* Checks if a given toAsset matches the rule's destination side.
|
|
170
170
|
*/
|
|
171
171
|
matchesRuleDestination(e, t) {
|
|
172
|
-
return
|
|
172
|
+
return t.matchedAs === "from" ? this.matchesAssetPattern(e, t.rule.toPattern) : t.rule.direction !== "<->" ? !1 : this.matchesAssetPattern(e, t.rule.fromPattern);
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
175
|
* Checks if a given fromAsset matches the rule's source side.
|
|
176
176
|
*/
|
|
177
177
|
matchesRuleSource(e, t) {
|
|
178
|
-
return
|
|
178
|
+
return t.matchedAs === "to" ? this.matchesAssetPattern(e, t.rule.fromPattern) : t.rule.direction !== "<->" ? !1 : this.matchesAssetPattern(e, t.rule.toPattern);
|
|
179
179
|
}
|
|
180
180
|
/**
|
|
181
181
|
* Checks if any rule in a list matches fromAsset and toAsset.
|
|
182
182
|
*/
|
|
183
|
-
matchesRuleList(e, t,
|
|
184
|
-
return
|
|
183
|
+
matchesRuleList(e, t, i) {
|
|
184
|
+
return i.some((s) => this.matchesRule(e, t, s));
|
|
185
185
|
}
|
|
186
186
|
/**
|
|
187
187
|
* Checks if a rule matches fromAsset and toAsset (forward or backward if bidirectional).
|
|
188
188
|
*/
|
|
189
|
-
matchesRule(e, t,
|
|
190
|
-
const
|
|
191
|
-
if (
|
|
192
|
-
const r = this.matchesAssetPattern(e,
|
|
193
|
-
return
|
|
189
|
+
matchesRule(e, t, i) {
|
|
190
|
+
const s = this.matchesAssetPattern(e, i.fromPattern) && this.matchesAssetPattern(t, i.toPattern);
|
|
191
|
+
if (i.direction === "<->") {
|
|
192
|
+
const r = this.matchesAssetPattern(e, i.toPattern) && this.matchesAssetPattern(t, i.fromPattern);
|
|
193
|
+
return s || r;
|
|
194
194
|
}
|
|
195
|
-
return
|
|
195
|
+
return s;
|
|
196
196
|
}
|
|
197
197
|
/**
|
|
198
198
|
* Checks if an asset string matches a rule's pattern (wildcards supported).
|
|
199
199
|
*/
|
|
200
200
|
matchesAssetPattern(e, t) {
|
|
201
|
-
const s = t.toLowerCase();
|
|
202
|
-
return
|
|
203
|
-
":*"
|
|
204
|
-
/* AnyToken */
|
|
205
|
-
) ? e.chain.toLowerCase() === s.slice(0, -2) : s.startsWith(
|
|
206
|
-
"*:"
|
|
207
|
-
/* AnyChain */
|
|
208
|
-
) ? e.symbol.toLowerCase() === s.slice(2) : e.toString().toLowerCase() === s;
|
|
201
|
+
const [i = "", s = ""] = t.split(":").map((o) => o.trim().toLowerCase()), r = i === "" || i === "*" || i === e.chain.toLowerCase(), n = s === "" || s === "*" || s === e.symbol.toLowerCase();
|
|
202
|
+
return r && n;
|
|
209
203
|
}
|
|
210
204
|
async buildRouteMatrix(e) {
|
|
211
205
|
const t = {};
|
|
212
|
-
for (const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
);
|
|
206
|
+
for (const i of e) {
|
|
207
|
+
const s = [];
|
|
208
|
+
for (const r of e)
|
|
209
|
+
await this.isValidRoute(i, r) && s.push(r);
|
|
210
|
+
t[i.toString()] = s;
|
|
211
|
+
}
|
|
217
212
|
return t;
|
|
218
213
|
}
|
|
219
214
|
};
|
|
220
|
-
|
|
221
|
-
let h =
|
|
215
|
+
a.POLICY_CACHE_KEY = "route_policy";
|
|
216
|
+
let h = a;
|
|
222
217
|
export {
|
|
223
218
|
h as RouteValidator
|
|
224
219
|
};
|
package/dist/index12.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@gardenfi/utils"),p=require("./index8.cjs");function d(n,t,e){var o;const r=(n??"").trim();if(!r)return{name:"",symbol:""};const i=r.split(":");if(i.length>=2){const u=((o=i[0])==null?void 0:o.trim())||"",m=i.slice(1).join(":").trim()||(e==null?void 0:e.trim())||"";return{name:u,symbol:m}}let s="";if(t)try{s=(typeof t=="string"?p.ChainAsset.from(t):t).symbol.toUpperCase()}catch{}return{name:r,symbol:s||(e==null?void 0:e.trim())||""}}function h(n){return n instanceof c.Url?n:new c.Url(n)}function A(n,t){const e=n.toString().replace(/\/+$/,""),r=t.startsWith("/")?t:`/${t}`;return`${e}${r}`}exports.buildDefaultEndpoint=A;exports.ensureUrl=h;exports.parseAssetNameSymbol=d;
|
package/dist/index12.js
CHANGED
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { Url as p } from "@gardenfi/utils";
|
|
2
|
+
import { ChainAsset as c } from "./index8.js";
|
|
3
|
+
function $(r, t, n) {
|
|
4
|
+
var o;
|
|
5
|
+
const e = (r ?? "").trim();
|
|
6
|
+
if (!e) return { name: "", symbol: "" };
|
|
7
|
+
const i = e.split(":");
|
|
8
|
+
if (i.length >= 2) {
|
|
9
|
+
const m = ((o = i[0]) == null ? void 0 : o.trim()) || "", u = i.slice(1).join(":").trim() || (n == null ? void 0 : n.trim()) || "";
|
|
10
|
+
return { name: m, symbol: u };
|
|
10
11
|
}
|
|
11
|
-
let
|
|
12
|
-
if (
|
|
12
|
+
let s = "";
|
|
13
|
+
if (t)
|
|
13
14
|
try {
|
|
14
|
-
|
|
15
|
+
s = (typeof t == "string" ? c.from(t) : t).symbol.toUpperCase();
|
|
15
16
|
} catch {
|
|
16
17
|
}
|
|
17
|
-
return { name:
|
|
18
|
+
return { name: e, symbol: s || (n == null ? void 0 : n.trim()) || "" };
|
|
19
|
+
}
|
|
20
|
+
function d(r) {
|
|
21
|
+
return r instanceof p ? r : new p(r);
|
|
22
|
+
}
|
|
23
|
+
function f(r, t) {
|
|
24
|
+
const n = r.toString().replace(/\/+$/, ""), e = t.startsWith("/") ? t : `/${t}`;
|
|
25
|
+
return `${n}${e}`;
|
|
18
26
|
}
|
|
19
27
|
export {
|
|
20
|
-
|
|
28
|
+
f as buildDefaultEndpoint,
|
|
29
|
+
d as ensureUrl,
|
|
30
|
+
$ as parseAssetNameSymbol
|
|
21
31
|
};
|
package/dist/index4.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@gardenfi/utils"),e=require("./index3.cjs"),s=require("./index5.cjs"),v=require("./index6.cjs");var o=(c=>(c.Created="Created",c.InitiateDetected="Initiate Detected",c.Initiated="Initiated",c.AwaitingRedeem="Awaiting Redeem",c.RedeemDetected="Redeem Detected",c.Redeemed="Redeemed",c.AwaitingRefund="Awaiting Refund",c.RefundDetected="Refund Detected",c.Refunded="Refunded",c.Expired="Expired",c))(o||{}),r=(c=>(c.refunded="refunded",c.expired="expired",c.completed="completed",c.inProgress="in-progress",c.notInitiated="not-initiated",c.all="all",c.pending="pending",c.fulfilled="fulfilled",c))(r||{});const n={solana_localnet:{type:e.BlockchainType.solana,SOL:s.SOLSolanaLocalnetAsset,network:a.Network.LOCALNET},arbitrum_localnet:{type:e.BlockchainType.evm,WBTC:s.WBTCArbitrumLocalnetAsset,network:a.Network.LOCALNET},ethereum_localnet:{type:e.BlockchainType.evm,WBTC:s.WBTCEthereumLocalnetAsset,network:a.Network.LOCALNET},bitcoin_regtest:{type:e.BlockchainType.bitcoin,BTC:s.bitcoinRegtestAsset,network:a.Network.LOCALNET},starknet_devnet:{type:e.BlockchainType.starknet,STRK:s.STRKStarknetLocalnetAsset,ETH:s.ETHStarknetLocalnetAsset,network:a.Network.LOCALNET},solana_testnet:{type:e.BlockchainType.solana,network:a.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:a.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:a.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:a.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:a.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:a.Network.TESTNET},citrea_testnet:{type:e.BlockchainType.evm,network:a.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:a.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:a.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:a.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:a.Network.TESTNET},bnbchain_testnet:{type:e.BlockchainType.evm,network:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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"}}},hypercore:{type:e.BlockchainType.evm,network:a.Network.MAINNET},hypercore_testnet:{type:e.BlockchainType.evm,network:a.Network.TESTNET}},T=Object.keys(n).reduce((c,t)=>(c[t]=t,c),{}),f=v.buildAssetsWithChain(n),E=c=>n[c].network===a.Network.MAINNET;function i(c){return t=>n[t].type===c}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=c=>n[c].type,d={[e.BlockchainType.evm]:"eth",[e.BlockchainType.solana]:"sol",[e.BlockchainType.sui]:"sui"},g=(c,t)=>h(c)&&t.toLowerCase()===d[e.BlockchainType.evm],C=(c,t)=>b(c)&&t.toLowerCase()===d[e.BlockchainType.solana],p=(c,t)=>k(c)&&t.toLowerCase()===d[e.BlockchainType.sui],x=c=>{const t=c.chain,m=c.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;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@gardenfi/utils"),e=require("./index3.cjs"),n=require("./index5.cjs"),v=require("./index6.cjs");var o=(c=>(c.Created="Created",c.InitiateDetected="Initiate Detected",c.Initiated="Initiated",c.AwaitingRedeem="Awaiting Redeem",c.RedeemDetected="Redeem Detected",c.Redeemed="Redeemed",c.AwaitingRefund="Awaiting Refund",c.RefundDetected="Refund Detected",c.Refunded="Refunded",c.Expired="Expired",c))(o||{}),r=(c=>(c.refunded="refunded",c.expired="expired",c.completed="completed",c.inProgress="in-progress",c.notInitiated="not-initiated",c.all="all",c.pending="pending",c.fulfilled="fulfilled",c))(r||{});const s={solana_localnet:{type:e.BlockchainType.solana,SOL:n.SOLSolanaLocalnetAsset,network:a.Network.LOCALNET},arbitrum_localnet:{type:e.BlockchainType.evm,WBTC:n.WBTCArbitrumLocalnetAsset,network:a.Network.LOCALNET},ethereum_localnet:{type:e.BlockchainType.evm,WBTC:n.WBTCEthereumLocalnetAsset,network:a.Network.LOCALNET},bitcoin_regtest:{type:e.BlockchainType.bitcoin,BTC:n.bitcoinRegtestAsset,network:a.Network.LOCALNET},starknet_devnet:{type:e.BlockchainType.starknet,STRK:n.STRKStarknetLocalnetAsset,ETH:n.ETHStarknetLocalnetAsset,network:a.Network.LOCALNET},solana_testnet:{type:e.BlockchainType.solana,network:a.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:a.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:a.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:a.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:a.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:a.Network.TESTNET},citrea_testnet:{type:e.BlockchainType.evm,network:a.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:a.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:a.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:a.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:a.Network.TESTNET},bnbchain_testnet:{type:e.BlockchainType.evm,network:a.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"}}},alpen_testnet:{type:e.BlockchainType.evm,network:a.Network.TESTNET,sBTC:{id:"alpen_testnet:sbtc",name:"Signet Bitcoin",symbol:"sBTC",decimals:18,icon:"https://avatars.githubusercontent.com/u/113091135",chain:"evm:2892",htlc:{address:"0x39269522737a4a155F78EC1B1BDb86288c1Fcf67",schema:"evm:htlc"},token:null},USDC:{id:"alpen_testnet:usdc",name:"USD Coin",symbol:"USDC",decimals:6,icon:"https://garden.imgix.net/token-images/usdc.svg",chain:"evm:2892",htlc:{address:"0x45b0d0c85bEb4512610fC2627CCB1587A7a044d4",schema:"evm:htlc_erc20"},token:{address:"0x9753D0481fC7e18797877B4e731B496439c849dE",schema:"evm:erc20"}}},bitcoin:{type:e.BlockchainType.bitcoin,network:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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:a.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"}}},hypercore:{type:e.BlockchainType.evm,network:a.Network.MAINNET},hypercore_testnet:{type:e.BlockchainType.evm,network:a.Network.TESTNET}},T=Object.keys(s).reduce((c,t)=>(c[t]=t,c),{}),f=v.buildAssetsWithChain(s),E=c=>s[c].network===a.Network.MAINNET;function i(c){return t=>s[t]&&s[t].type===c}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=c=>s[c].type,d={[e.BlockchainType.evm]:"eth",[e.BlockchainType.solana]:"sol",[e.BlockchainType.sui]:"sui"},g=(c,t)=>h(c)&&t.toLowerCase()===d[e.BlockchainType.evm],C=(c,t)=>b(c)&&t.toLowerCase()===d[e.BlockchainType.solana],p=(c,t)=>k(c)&&t.toLowerCase()===d[e.BlockchainType.sui],x=c=>{const t=c.chain,m=c.symbol;return g(t,m)||C(t,m)||l(t)||p(t,m)||!B(t)};exports.Assets=f;exports.Chains=T;exports.Config=s;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;
|
package/dist/index4.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Network as c } from "@gardenfi/utils";
|
|
2
2
|
import { BlockchainType as e } from "./index3.js";
|
|
3
3
|
import { ETHStarknetLocalnetAsset as m, STRKStarknetLocalnetAsset as o, bitcoinRegtestAsset as r, WBTCEthereumLocalnetAsset as h, WBTCArbitrumLocalnetAsset as l, SOLSolanaLocalnetAsset as b } from "./index5.js";
|
|
4
|
-
import { buildAssetsWithChain as
|
|
5
|
-
var
|
|
4
|
+
import { buildAssetsWithChain as C } from "./index6.js";
|
|
5
|
+
var g = /* @__PURE__ */ ((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))(g || {}), B = /* @__PURE__ */ ((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))(B || {});
|
|
6
6
|
const s = {
|
|
7
7
|
solana_localnet: {
|
|
8
8
|
type: e.solana,
|
|
@@ -466,6 +466,39 @@ const s = {
|
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
468
|
},
|
|
469
|
+
alpen_testnet: {
|
|
470
|
+
type: e.evm,
|
|
471
|
+
network: c.TESTNET,
|
|
472
|
+
sBTC: {
|
|
473
|
+
id: "alpen_testnet:sbtc",
|
|
474
|
+
name: "Signet Bitcoin",
|
|
475
|
+
symbol: "sBTC",
|
|
476
|
+
decimals: 18,
|
|
477
|
+
icon: "https://avatars.githubusercontent.com/u/113091135",
|
|
478
|
+
chain: "evm:2892",
|
|
479
|
+
htlc: {
|
|
480
|
+
address: "0x39269522737a4a155F78EC1B1BDb86288c1Fcf67",
|
|
481
|
+
schema: "evm:htlc"
|
|
482
|
+
},
|
|
483
|
+
token: null
|
|
484
|
+
},
|
|
485
|
+
USDC: {
|
|
486
|
+
id: "alpen_testnet:usdc",
|
|
487
|
+
name: "USD Coin",
|
|
488
|
+
symbol: "USDC",
|
|
489
|
+
decimals: 6,
|
|
490
|
+
icon: "https://garden.imgix.net/token-images/usdc.svg",
|
|
491
|
+
chain: "evm:2892",
|
|
492
|
+
htlc: {
|
|
493
|
+
address: "0x45b0d0c85bEb4512610fC2627CCB1587A7a044d4",
|
|
494
|
+
schema: "evm:htlc_erc20"
|
|
495
|
+
},
|
|
496
|
+
token: {
|
|
497
|
+
address: "0x9753D0481fC7e18797877B4e731B496439c849dE",
|
|
498
|
+
schema: "evm:erc20"
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
},
|
|
469
502
|
bitcoin: {
|
|
470
503
|
type: e.bitcoin,
|
|
471
504
|
network: c.MAINNET,
|
|
@@ -928,9 +961,9 @@ const s = {
|
|
|
928
961
|
}, _ = Object.keys(s).reduce(
|
|
929
962
|
(a, t) => (a[t] = t, a),
|
|
930
963
|
{}
|
|
931
|
-
), w =
|
|
964
|
+
), w = C(s), F = (a) => s[a].network === c.MAINNET;
|
|
932
965
|
function n(a) {
|
|
933
|
-
return (t) => s[t].type === a;
|
|
966
|
+
return (t) => s[t] && s[t].type === a;
|
|
934
967
|
}
|
|
935
968
|
const v = n(e.evm), p = n(e.bitcoin), f = n(e.solana), k = n(e.starknet), E = n(e.sui), N = (a) => s[a].type, d = {
|
|
936
969
|
[e.evm]: "eth",
|
|
@@ -947,7 +980,7 @@ export {
|
|
|
947
980
|
s as Config,
|
|
948
981
|
d as NATIVE_TOKENS,
|
|
949
982
|
B as OrderLifecycle,
|
|
950
|
-
|
|
983
|
+
g as OrderStatus,
|
|
951
984
|
N as getBlockchainType,
|
|
952
985
|
n as is,
|
|
953
986
|
p as isBitcoin,
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { AsyncResult, IAuth } from '@gardenfi/utils';
|
|
1
|
+
import { Url, AsyncResult, IAuth } from '@gardenfi/utils';
|
|
2
2
|
import { RouteValidator } from './routeValidator/routeValidator';
|
|
3
3
|
import { Assets, ChainData, Chains } from './types';
|
|
4
4
|
import { ChainAsset } from '../chainAsset/chainAsset';
|
|
5
5
|
import { Asset, Chain } from '../constants/asset.types';
|
|
6
6
|
|
|
7
|
+
type AssetManagerUrlConfig = {
|
|
8
|
+
baseUrl: string | Url;
|
|
9
|
+
assetsUrl?: string | Url;
|
|
10
|
+
policyUrl?: string | Url;
|
|
11
|
+
};
|
|
7
12
|
/**
|
|
8
13
|
* AssetManager
|
|
9
14
|
*
|
|
@@ -18,9 +23,9 @@ export declare class AssetManager {
|
|
|
18
23
|
routeMatrix: Record<string, ChainAsset[]> | null;
|
|
19
24
|
isLoading: boolean;
|
|
20
25
|
error: string | null;
|
|
21
|
-
private readonly
|
|
26
|
+
private readonly urls;
|
|
22
27
|
private auth;
|
|
23
|
-
constructor(
|
|
28
|
+
constructor(urlConfig: AssetManagerUrlConfig, apiKey: IAuth | string);
|
|
24
29
|
/**
|
|
25
30
|
* Initialize the AssetManager by fetching all required data
|
|
26
31
|
*/
|
|
@@ -74,3 +79,4 @@ export declare class AssetManager {
|
|
|
74
79
|
*/
|
|
75
80
|
refresh(): Promise<void>;
|
|
76
81
|
}
|
|
82
|
+
export {};
|
|
@@ -24,10 +24,6 @@ declare class RouteValidator {
|
|
|
24
24
|
* Checks if a given route is valid based on all route rules.
|
|
25
25
|
*/
|
|
26
26
|
isValidRoute(fromAsset: ChainAsset, toAsset: ChainAsset): Promise<boolean>;
|
|
27
|
-
/**
|
|
28
|
-
* Returns true if asset is part of any isolation group rule.
|
|
29
|
-
*/
|
|
30
|
-
isAssetInIsolationGroup(asset: ChainAsset): Promise<boolean>;
|
|
31
27
|
/**
|
|
32
28
|
* Returns all valid destinations for a given source asset.
|
|
33
29
|
*/
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { Url } from '@gardenfi/utils';
|
|
1
2
|
import { ChainAsset } from '../chainAsset/chainAsset';
|
|
2
3
|
|
|
3
4
|
export declare function parseAssetNameSymbol(input: string | undefined, assetId?: string | ChainAsset, fallbackSymbol?: string): {
|
|
4
5
|
name: string;
|
|
5
6
|
symbol: string;
|
|
6
7
|
};
|
|
8
|
+
export declare function ensureUrl(value: string | Url): Url;
|
|
9
|
+
export declare function buildDefaultEndpoint(baseUrl: Url, path: string): string;
|
|
@@ -523,6 +523,39 @@ export declare const Config: {
|
|
|
523
523
|
};
|
|
524
524
|
};
|
|
525
525
|
};
|
|
526
|
+
readonly alpen_testnet: {
|
|
527
|
+
readonly type: BlockchainType.evm;
|
|
528
|
+
readonly network: Network.TESTNET;
|
|
529
|
+
readonly sBTC: {
|
|
530
|
+
readonly id: "alpen_testnet:sbtc";
|
|
531
|
+
readonly name: "Signet Bitcoin";
|
|
532
|
+
readonly symbol: "sBTC";
|
|
533
|
+
readonly decimals: 18;
|
|
534
|
+
readonly icon: "https://avatars.githubusercontent.com/u/113091135";
|
|
535
|
+
readonly chain: "evm:2892";
|
|
536
|
+
readonly htlc: {
|
|
537
|
+
readonly address: "0x39269522737a4a155F78EC1B1BDb86288c1Fcf67";
|
|
538
|
+
readonly schema: "evm:htlc";
|
|
539
|
+
};
|
|
540
|
+
readonly token: null;
|
|
541
|
+
};
|
|
542
|
+
readonly USDC: {
|
|
543
|
+
readonly id: "alpen_testnet:usdc";
|
|
544
|
+
readonly name: "USD Coin";
|
|
545
|
+
readonly symbol: "USDC";
|
|
546
|
+
readonly decimals: 6;
|
|
547
|
+
readonly icon: "https://garden.imgix.net/token-images/usdc.svg";
|
|
548
|
+
readonly chain: "evm:2892";
|
|
549
|
+
readonly htlc: {
|
|
550
|
+
readonly address: "0x45b0d0c85bEb4512610fC2627CCB1587A7a044d4";
|
|
551
|
+
readonly schema: "evm:htlc_erc20";
|
|
552
|
+
};
|
|
553
|
+
readonly token: {
|
|
554
|
+
readonly address: "0x9753D0481fC7e18797877B4e731B496439c849dE";
|
|
555
|
+
readonly schema: "evm:erc20";
|
|
556
|
+
};
|
|
557
|
+
};
|
|
558
|
+
};
|
|
526
559
|
readonly bitcoin: {
|
|
527
560
|
readonly type: BlockchainType.bitcoin;
|
|
528
561
|
readonly network: Network.MAINNET;
|
|
@@ -1483,6 +1516,39 @@ export declare const Assets: import('./utils').AssetsType<{
|
|
|
1483
1516
|
};
|
|
1484
1517
|
};
|
|
1485
1518
|
};
|
|
1519
|
+
readonly alpen_testnet: {
|
|
1520
|
+
readonly type: BlockchainType.evm;
|
|
1521
|
+
readonly network: Network.TESTNET;
|
|
1522
|
+
readonly sBTC: {
|
|
1523
|
+
readonly id: "alpen_testnet:sbtc";
|
|
1524
|
+
readonly name: "Signet Bitcoin";
|
|
1525
|
+
readonly symbol: "sBTC";
|
|
1526
|
+
readonly decimals: 18;
|
|
1527
|
+
readonly icon: "https://avatars.githubusercontent.com/u/113091135";
|
|
1528
|
+
readonly chain: "evm:2892";
|
|
1529
|
+
readonly htlc: {
|
|
1530
|
+
readonly address: "0x39269522737a4a155F78EC1B1BDb86288c1Fcf67";
|
|
1531
|
+
readonly schema: "evm:htlc";
|
|
1532
|
+
};
|
|
1533
|
+
readonly token: null;
|
|
1534
|
+
};
|
|
1535
|
+
readonly USDC: {
|
|
1536
|
+
readonly id: "alpen_testnet:usdc";
|
|
1537
|
+
readonly name: "USD Coin";
|
|
1538
|
+
readonly symbol: "USDC";
|
|
1539
|
+
readonly decimals: 6;
|
|
1540
|
+
readonly icon: "https://garden.imgix.net/token-images/usdc.svg";
|
|
1541
|
+
readonly chain: "evm:2892";
|
|
1542
|
+
readonly htlc: {
|
|
1543
|
+
readonly address: "0x45b0d0c85bEb4512610fC2627CCB1587A7a044d4";
|
|
1544
|
+
readonly schema: "evm:htlc_erc20";
|
|
1545
|
+
};
|
|
1546
|
+
readonly token: {
|
|
1547
|
+
readonly address: "0x9753D0481fC7e18797877B4e731B496439c849dE";
|
|
1548
|
+
readonly schema: "evm:erc20";
|
|
1549
|
+
};
|
|
1550
|
+
};
|
|
1551
|
+
};
|
|
1486
1552
|
readonly bitcoin: {
|
|
1487
1553
|
readonly type: BlockchainType.bitcoin;
|
|
1488
1554
|
readonly network: Network.MAINNET;
|
|
@@ -1945,7 +2011,7 @@ export declare const Assets: import('./utils').AssetsType<{
|
|
|
1945
2011
|
}>;
|
|
1946
2012
|
export declare const isMainnet: (chain: Chain) => boolean;
|
|
1947
2013
|
export declare function is<T extends BlockchainType>(type: T): (chain: Chain) => chain is Extract<Chain, ChainsByBlockchainType<T>>;
|
|
1948
|
-
export declare const isEVM: (chain: Chain) => chain is "arbitrum_localnet" | "ethereum_localnet" | "ethereum_sepolia" | "arbitrum_sepolia" | "base_sepolia" | "bera_testnet" | "citrea_testnet" | "monad_testnet" | "hyperliquid_testnet" | "bnbchain_testnet" | "base" | "arbitrum" | "ethereum" | "bera" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "core" | "hypercore" | "hypercore_testnet";
|
|
2014
|
+
export declare const isEVM: (chain: Chain) => chain is "arbitrum_localnet" | "ethereum_localnet" | "ethereum_sepolia" | "arbitrum_sepolia" | "base_sepolia" | "bera_testnet" | "citrea_testnet" | "monad_testnet" | "hyperliquid_testnet" | "bnbchain_testnet" | "alpen_testnet" | "base" | "arbitrum" | "ethereum" | "bera" | "hyperliquid" | "unichain" | "corn" | "botanix" | "bnbchain" | "core" | "hypercore" | "hypercore_testnet";
|
|
1949
2015
|
export declare const isBitcoin: (chain: Chain) => chain is "bitcoin" | "bitcoin_regtest" | "bitcoin_testnet";
|
|
1950
2016
|
export declare const isSolana: (chain: Chain) => chain is "solana_localnet" | "solana_testnet" | "solana";
|
|
1951
2017
|
export declare const isStarknet: (chain: Chain) => chain is "starknet_devnet" | "starknet_sepolia" | "starknet";
|
|
@@ -59,6 +59,7 @@ export type CreateOrderRequest = {
|
|
|
59
59
|
delegate: string | null;
|
|
60
60
|
amount: string;
|
|
61
61
|
};
|
|
62
|
+
solver_id: string;
|
|
62
63
|
slippage?: number;
|
|
63
64
|
secret_hash?: string;
|
|
64
65
|
nonce: number;
|
|
@@ -171,7 +172,12 @@ type EvmTypedData = {
|
|
|
171
172
|
domain: Record<string, unknown>;
|
|
172
173
|
types: Record<string, unknown>;
|
|
173
174
|
primaryType: string;
|
|
174
|
-
message:
|
|
175
|
+
message: {
|
|
176
|
+
amount: string;
|
|
177
|
+
secretHash: string;
|
|
178
|
+
timelock: string;
|
|
179
|
+
redeemer: string;
|
|
180
|
+
};
|
|
175
181
|
};
|
|
176
182
|
export type EvmOrderResponse = WithTypedData<BaseCreateOrderResponse & {
|
|
177
183
|
approval_transaction: EVMTransaction | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gardenfi/orderbook",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@coral-xyz/anchor": "^0.31.1",
|
|
31
|
-
"@gardenfi/utils": "
|
|
31
|
+
"@gardenfi/utils": "3.0.0",
|
|
32
32
|
"bufferutil": "^4.0.8",
|
|
33
33
|
"node-cache": "^5.1.2",
|
|
34
34
|
"siwe": "^2.1.4",
|