@gardenfi/react-hooks 2.0.28-beta.16 → 2.0.28-beta.18

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/index2.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),E=require("./index3.cjs"),d=require("@gardenfi/core"),a=require("./index4.cjs"),c=require("@gardenfi/orderbook"),G=require("./index5.cjs"),T=require("./index6.cjs"),p=o.createContext({}),q=({children:l,config:e})=>{const[r,h]=o.useState(),{digestKey:i}=T.useDigestKey(),{pendingOrders:k}=E.useOrderbook(r,i),v=o.useMemo(()=>e.quote??new d.Quote(d.API[e.environment].quote),[e.quote,e.environment]),m=o.useMemo(()=>async({fromAsset:s,toAsset:t,amount:u,isExactOut:w=!1,request:n})=>await v.getQuote(G.constructOrderpair(s,t),u,w,n),[v]),C=async s=>{if(!r)return a.Err("Garden not initialized");const t=await r.swap(s);if(t.error)return a.Err(t.error);if(c.isBitcoin(t.val.source_swap.chain))return a.Ok(t.val);let u;switch(c.getBlockchainType(t.val.source_swap.chain)){case c.BlockchainType.EVM:{if(!r.evmHTLC)return a.Err("EVM HTLC not initialized: Please provide evmHTLC");const n=await r.evmHTLC.initiate(t.val);if(n.error)return a.Err(n.error);u=n.val;break}case c.BlockchainType.Starknet:{if(!r.starknetHTLC)return a.Err("Starknet HTLC not initialized: Please provide starknetHTLC");const n=await r.starknetHTLC.initiate(t.val);if(n.error)return a.Err(n.error);u=n.val;break}default:return a.Err("Unsupported chain")}const w={...t.val,source_swap:{...t.val.source_swap,initiate_tx_hash:u}};return a.Ok(w)};return o.useEffect(()=>{if(!window||!i||!e.wallets&&!e.htlc)return;let s;if(e.wallets)s=d.Garden.from({environment:e.environment,digestKey:i,wallets:e.wallets,siweOpts:{store:localStorage}});else if(e.htlc)s=new d.Garden({environment:e.environment,digestKey:i,htlc:e.htlc,siweOpts:{store:localStorage}});else return;h(s)},[e.wallets,e.htlc,e.environment,i]),o.createElement(p.Provider,{value:{orderBook:r==null?void 0:r.orderbook,quote:v,swapAndInitiate:C,pendingOrders:k,getQuote:m,garden:r}},l)},y=()=>{const l=o.useContext(p);if(!l)throw new Error("useGarden must be used within a GardenProvider");return l};exports.GardenContext=p;exports.GardenProvider=q;exports.useGarden=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),f=require("./index3.cjs"),w=require("@gardenfi/core"),n=require("./index4.cjs"),c=require("@gardenfi/orderbook"),C=require("./index5.cjs"),E=require("./index6.cjs"),v=o.createContext({}),G=({children:d,config:a})=>{const[r,p]=o.useState(),{digestKey:u}=E.useDigestKey(),{pendingOrders:h}=f.useOrderbook(r,u),k=o.useMemo(()=>async({fromAsset:i,toAsset:e,amount:s,isExactOut:l=!1,request:t})=>r&&await r.quote.getQuote(C.constructOrderpair(i,e),s,l,t),[r]),T=async i=>{if(!r)return n.Err("Garden not initialized");const e=await r.swap(i);if(e.error)return n.Err(e.error);if(c.isBitcoin(e.val.source_swap.chain))return n.Ok(e.val);let s;switch(c.getBlockchainType(e.val.source_swap.chain)){case c.BlockchainType.EVM:{if(!r.evmHTLC)return n.Err("EVM HTLC not initialized: Please provide evmHTLC");const t=await r.evmHTLC.initiate(e.val);if(t.error)return n.Err(t.error);s=t.val;break}case c.BlockchainType.Starknet:{if(!r.starknetHTLC)return n.Err("Starknet HTLC not initialized: Please provide starknetHTLC");const t=await r.starknetHTLC.initiate(e.val);if(t.error)return n.Err(t.error);s=t.val;break}case c.BlockchainType.Bitcoin:s=e.val.source_swap.initiate_tx_hash;break;default:return n.Err("Unsupported chain")}const l={...e.val,source_swap:{...e.val.source_swap,initiate_tx_hash:s}};return n.Ok(l)};return o.useEffect(()=>{if(!window||!u||!("wallets"in a)&&!("htlc"in a))return;let i;if("wallets"in a)i=w.Garden.fromWallets({...a,digestKey:u});else if("htlc"in a)i=new w.Garden({...a,digestKey:u});else return;p(i)},[a,u]),o.createElement(v.Provider,{value:{swapAndInitiate:T,pendingOrders:h,getQuote:k,garden:r}},d)},y=()=>{const d=o.useContext(v);if(!d)throw new Error("useGarden must be used within a GardenProvider");return d};exports.GardenContext=v;exports.GardenProvider=G;exports.useGarden=y;
package/dist/index2.js CHANGED
@@ -1,111 +1,104 @@
1
- import w, { createContext as G, useState as H, useMemo as c, useEffect as L } from "react";
2
- import { useOrderbook as _ } from "./index3.js";
3
- import { Quote as O, API as x, Garden as m } from "@gardenfi/core";
4
- import { Err as o, Ok as p } from "./index4.js";
5
- import { isBitcoin as y, getBlockchainType as E, BlockchainType as v } from "@gardenfi/orderbook";
6
- import { constructOrderpair as P } from "./index5.js";
7
- import { useDigestKey as b } from "./index6.js";
8
- const h = G({}), R = ({
9
- children: l,
10
- config: e
1
+ import m, { useState as C, useMemo as _, useEffect as T, createContext as G } from "react";
2
+ import { useOrderbook as H } from "./index3.js";
3
+ import { Garden as l } from "@gardenfi/core";
4
+ import { Err as i, Ok as p } from "./index4.js";
5
+ import { isBitcoin as L, getBlockchainType as x, BlockchainType as d } from "@gardenfi/orderbook";
6
+ import { constructOrderpair as y } from "./index5.js";
7
+ import { useDigestKey as E } from "./index6.js";
8
+ const w = G({}), R = ({
9
+ children: u,
10
+ config: a
11
11
  }) => {
12
- const [t, k] = H(), { digestKey: s } = b(), { pendingOrders: C } = _(t, s), u = c(() => e.quote ?? new O(x[e.environment].quote), [e.quote, e.environment]), T = c(
12
+ const [r, v] = C(), { digestKey: o } = E(), { pendingOrders: f } = H(r, o), h = _(
13
13
  () => async ({
14
- fromAsset: a,
15
- toAsset: r,
16
- amount: i,
17
- isExactOut: d = !1,
18
- request: n
19
- }) => await u.getQuote(
20
- P(a, r),
21
- i,
22
- d,
23
- n
14
+ fromAsset: n,
15
+ toAsset: e,
16
+ amount: s,
17
+ isExactOut: c = !1,
18
+ request: t
19
+ }) => r && await r.quote.getQuote(
20
+ y(n, e),
21
+ s,
22
+ c,
23
+ t
24
24
  ),
25
- [u]
26
- ), f = async (a) => {
27
- if (!t) return o("Garden not initialized");
28
- const r = await t.swap(a);
29
- if (r.error) return o(r.error);
30
- if (y(r.val.source_swap.chain)) return p(r.val);
31
- let i;
32
- switch (E(r.val.source_swap.chain)) {
33
- case v.EVM: {
34
- if (!t.evmHTLC)
35
- return o("EVM HTLC not initialized: Please provide evmHTLC");
36
- const n = await t.evmHTLC.initiate(r.val);
37
- if (n.error) return o(n.error);
38
- i = n.val;
25
+ [r]
26
+ ), k = async (n) => {
27
+ if (!r) return i("Garden not initialized");
28
+ const e = await r.swap(n);
29
+ if (e.error) return i(e.error);
30
+ if (L(e.val.source_swap.chain)) return p(e.val);
31
+ let s;
32
+ switch (x(e.val.source_swap.chain)) {
33
+ case d.EVM: {
34
+ if (!r.evmHTLC)
35
+ return i("EVM HTLC not initialized: Please provide evmHTLC");
36
+ const t = await r.evmHTLC.initiate(e.val);
37
+ if (t.error) return i(t.error);
38
+ s = t.val;
39
39
  break;
40
40
  }
41
- case v.Starknet: {
42
- if (!t.starknetHTLC)
43
- return o(
41
+ case d.Starknet: {
42
+ if (!r.starknetHTLC)
43
+ return i(
44
44
  "Starknet HTLC not initialized: Please provide starknetHTLC"
45
45
  );
46
- const n = await t.starknetHTLC.initiate(r.val);
47
- if (n.error) return o(n.error);
48
- i = n.val;
46
+ const t = await r.starknetHTLC.initiate(e.val);
47
+ if (t.error) return i(t.error);
48
+ s = t.val;
49
49
  break;
50
50
  }
51
+ case d.Bitcoin:
52
+ s = e.val.source_swap.initiate_tx_hash;
53
+ break;
51
54
  default:
52
- return o("Unsupported chain");
55
+ return i("Unsupported chain");
53
56
  }
54
- const d = {
55
- ...r.val,
57
+ const c = {
58
+ ...e.val,
56
59
  source_swap: {
57
- ...r.val.source_swap,
58
- initiate_tx_hash: i
60
+ ...e.val.source_swap,
61
+ initiate_tx_hash: s
59
62
  }
60
63
  };
61
- return p(d);
64
+ return p(c);
62
65
  };
63
- return L(() => {
64
- if (!window || !s || !e.wallets && !e.htlc) return;
65
- let a;
66
- if (e.wallets)
67
- a = m.from({
68
- environment: e.environment,
69
- digestKey: s,
70
- wallets: e.wallets,
71
- siweOpts: {
72
- store: localStorage
73
- }
66
+ return T(() => {
67
+ if (!window || !o || !("wallets" in a) && !("htlc" in a)) return;
68
+ let n;
69
+ if ("wallets" in a)
70
+ n = l.fromWallets({
71
+ ...a,
72
+ digestKey: o
74
73
  });
75
- else if (e.htlc)
76
- a = new m({
77
- environment: e.environment,
78
- digestKey: s,
79
- htlc: e.htlc,
80
- siweOpts: {
81
- store: localStorage
82
- }
74
+ else if ("htlc" in a)
75
+ n = new l({
76
+ ...a,
77
+ digestKey: o
83
78
  });
84
79
  else
85
80
  return;
86
- k(a);
87
- }, [e.wallets, e.htlc, e.environment, s]), /* @__PURE__ */ w.createElement(
88
- h.Provider,
81
+ v(n);
82
+ }, [a, o]), /* @__PURE__ */ m.createElement(
83
+ w.Provider,
89
84
  {
90
85
  value: {
91
- orderBook: t == null ? void 0 : t.orderbook,
92
- quote: u,
93
- swapAndInitiate: f,
94
- pendingOrders: C,
95
- getQuote: T,
96
- garden: t
86
+ swapAndInitiate: k,
87
+ pendingOrders: f,
88
+ getQuote: h,
89
+ garden: r
97
90
  }
98
91
  },
99
- l
92
+ u
100
93
  );
101
- }, A = () => {
102
- const l = w.useContext(h);
103
- if (!l)
94
+ }, S = () => {
95
+ const u = m.useContext(w);
96
+ if (!u)
104
97
  throw new Error("useGarden must be used within a GardenProvider");
105
- return l;
98
+ return u;
106
99
  };
107
100
  export {
108
- h as GardenContext,
101
+ w as GardenContext,
109
102
  R as GardenProvider,
110
- A as useGarden
103
+ S as useGarden
111
104
  };
package/dist/index4.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var u=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},l=(e,t,r)=>(u(e,t,"read from private field"),r?r.call(e):t.get(e)),f=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},h=(e,t,r,i)=>(u(e,t,"write to private field"),t.set(e,r),r),n,o,a;class s{constructor(t,r,i=void 0){f(this,n,void 0),f(this,o,void 0),f(this,a,void 0),h(this,n,t),h(this,a,i),h(this,o,r)}get ok(){return l(this,n)}get error(){return l(this,a)}get val(){return l(this,o)}}n=new WeakMap,o=new WeakMap,a=new WeakMap;const d=e=>new s(!0,e),v=(e,...t)=>{if(typeof e=="string"&&t&&t.length>0){let r=[e,...t].map(i=>{if(i){if(i instanceof Error)return i.message;if(typeof i=="string")return i;if(i!=null&&i.toString)return i.toString()}});return new s(!1,null,r.filter(i=>i!==void 0).join(" "))}return new s(!1,null,e)};exports.Err=v;exports.Ok=d;exports.Result=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var h=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},l=(e,t,r)=>(h(e,t,"read from private field"),r?r.call(e):t.get(e)),f=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},u=(e,t,r,i)=>(h(e,t,"write to private field"),t.set(e,r),r),n,a,o;class s{constructor(t,r,i=void 0){f(this,n,void 0),f(this,a,void 0),f(this,o,void 0),u(this,n,t),u(this,o,i),u(this,a,r)}get ok(){return l(this,n)}get error(){return l(this,o)}get val(){return l(this,a)}}n=new WeakMap,a=new WeakMap,o=new WeakMap;const d=e=>new s(!0,e),v=(e,...t)=>{if(typeof e=="string"&&t&&t.length>0){let r=[e,...t].map(i=>{if(i){if(i instanceof Error)return i.message;if(typeof i=="string")return i;if(i!=null&&i.toString)return i.toString()}});return new s(!1,null,r.filter(i=>i!==void 0).join(" "))}return new s(!1,null,e)};exports.Err=v;exports.Ok=d;exports.Result=s;
package/dist/index4.js CHANGED
@@ -1,14 +1,14 @@
1
1
  var u = (e, t, r) => {
2
2
  if (!t.has(e))
3
3
  throw TypeError("Cannot " + r);
4
- }, s = (e, t, r) => (u(e, t, "read from private field"), r ? r.call(e) : t.get(e)), h = (e, t, r) => {
4
+ }, s = (e, t, r) => (u(e, t, "read from private field"), r ? r.call(e) : t.get(e)), l = (e, t, r) => {
5
5
  if (t.has(e))
6
6
  throw TypeError("Cannot add the same private member more than once");
7
7
  t instanceof WeakSet ? t.add(e) : t.set(e, r);
8
- }, l = (e, t, r, i) => (u(e, t, "write to private field"), t.set(e, r), r), n, a, o;
9
- class f {
8
+ }, f = (e, t, r, i) => (u(e, t, "write to private field"), t.set(e, r), r), n, a, o;
9
+ class h {
10
10
  constructor(t, r, i = void 0) {
11
- h(this, n, void 0), h(this, a, void 0), h(this, o, void 0), l(this, n, t), l(this, o, i), l(this, a, r);
11
+ l(this, n, void 0), l(this, a, void 0), l(this, o, void 0), f(this, n, t), f(this, o, i), f(this, a, r);
12
12
  }
13
13
  get ok() {
14
14
  return s(this, n);
@@ -21,7 +21,7 @@ class f {
21
21
  }
22
22
  }
23
23
  n = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), o = /* @__PURE__ */ new WeakMap();
24
- const d = (e) => new f(!0, e), p = (e, ...t) => {
24
+ const d = (e) => new h(!0, e), p = (e, ...t) => {
25
25
  if (typeof e == "string" && t && t.length > 0) {
26
26
  let r = [e, ...t].map((i) => {
27
27
  if (i) {
@@ -33,16 +33,16 @@ const d = (e) => new f(!0, e), p = (e, ...t) => {
33
33
  return i.toString();
34
34
  }
35
35
  });
36
- return new f(
36
+ return new h(
37
37
  !1,
38
38
  null,
39
39
  r.filter((i) => i !== void 0).join(" ")
40
40
  );
41
41
  }
42
- return new f(!1, null, e);
42
+ return new h(!1, null, e);
43
43
  };
44
44
  export {
45
45
  p as Err,
46
46
  d as Ok,
47
- f as Result
47
+ h as Result
48
48
  };
@@ -1,9 +1,6 @@
1
- import { WalletClient } from 'viem';
2
- import { IEVMHTLC, IStarknetHTLC, OrderWithStatus, IGardenJS, IQuote, QuoteResponse, SwapParams } from '@gardenfi/core';
1
+ import { OrderWithStatus, IGardenJS, IQuote, QuoteResponse, SwapParams, GardenConfigWithHTLCs, GardenConfigWithWallets } from '@gardenfi/core';
3
2
  import { AsyncResult, Request, Result } from '@catalogfi/utils';
4
3
  import { Asset, IOrderbook, MatchedOrder } from '@gardenfi/orderbook';
5
- import { Environment, Url } from '@gardenfi/utils';
6
- import { AccountInterface } from 'starknet';
7
4
 
8
5
  export type GardenContextType = {
9
6
  /**
@@ -28,7 +25,7 @@ export type GardenContextType = {
28
25
  * @param params
29
26
  * @returns
30
27
  */
31
- getQuote?: (params: QuoteParams) => Promise<Result<QuoteResponse, string>>;
28
+ getQuote?: (params: QuoteParams) => Promise<Result<QuoteResponse, string> | undefined>;
32
29
  /**
33
30
  * The garden instance.
34
31
  * @returns {IGardenJS}
@@ -42,20 +39,7 @@ export type GardenContextType = {
42
39
  };
43
40
  export type GardenProviderProps = {
44
41
  children: React.ReactNode;
45
- config: {
46
- environment: Environment;
47
- orderBook?: IOrderbook;
48
- quote?: IQuote;
49
- blockNumberFetcherUrl?: Url;
50
- htlc?: {
51
- evm?: IEVMHTLC;
52
- starknet?: IStarknetHTLC;
53
- };
54
- wallets?: {
55
- evm?: WalletClient;
56
- starknet?: AccountInterface;
57
- };
58
- };
42
+ config: Omit<GardenConfigWithHTLCs, 'digestKey'> | Omit<GardenConfigWithWallets, 'digestKey'>;
59
43
  };
60
44
  export type QuoteParams = {
61
45
  fromAsset: Asset;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gardenfi/react-hooks",
3
- "version": "2.0.28-beta.16",
3
+ "version": "2.0.28-beta.18",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -27,9 +27,9 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@catalogfi/wallets": "^0.2.59",
30
- "@gardenfi/core": "2.0.25-beta.15",
31
- "@gardenfi/orderbook": "2.0.9-beta.13",
32
- "@gardenfi/utils": "2.0.6-beta.9",
30
+ "@gardenfi/core": "2.0.25-beta.17",
31
+ "@gardenfi/orderbook": "2.0.9-beta.15",
32
+ "@gardenfi/utils": "2.0.6-beta.12",
33
33
  "react": "^18.3.1",
34
34
  "starknet": "6.23.1",
35
35
  "viem": "^2.21.23"