@gardenfi/react-hooks 0.0.1-beta.97 → 0.0.1-beta.99
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 +1 -1
- package/dist/index2.js +44 -42
- package/package.json +2 -2
package/dist/index2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),x=require("wagmi"),z=require("./index4.cjs"),A=require("./index3.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),x=require("wagmi"),z=require("./index4.cjs"),A=require("./index3.cjs"),d=require("@gardenfi/core"),n=require("@catalogfi/utils"),G=require("@gardenfi/orderbook"),v=require("@catalogfi/wallets"),q=require("@gardenfi/utils"),K=require("./index5.cjs"),R=a.createContext({isExecuting:!1}),Q=({children:b,config:r})=>{const[c,S]=a.useState(),[l,U]=a.useState(),[i,g]=a.useState(),[C,y]=a.useState(),N=a.useMemo(()=>!!(c&&l&&i&&C),[c,l,i,C]),h=a.useMemo(()=>new d.Quote(r.quoteUrl),[r.quoteUrl]),O=a.useMemo(()=>{const e=r.network===v.BitcoinNetwork.Mainnet?"mainnet":r.network===v.BitcoinNetwork.Testnet?"testnet":void 0;return r.blockNumberFetcherUrl&&e?new d.BlockNumberFetcher(r.blockNumberFetcherUrl,e):void 0},[r.blockNumberFetcherUrl,r.network]),P=a.useMemo(()=>new v.BitcoinProvider(r.network,r.bitcoinRPCUrl),[r.network,r.bitcoinRPCUrl]),{data:s}=x.useWalletClient(),{initializeSecretManager:M}=z.useSecretManager(S),{orderbook:m}=A.useOrderbook(r.orderBookUrl,i,y,O),f=async()=>{if(!s||!i)return n.Err("WalletClient or auth not initialized");const e=await M();if(e.error)return n.Err(e.error);const o=v.BitcoinWallet.fromPrivateKey(e.val.getMasterPrivKey(),P),t=new d.Garden({orderbookURl:r.orderBookUrl,secretManager:e.val,quote:h,auth:i,wallets:{evmWallet:s,btcWallet:o},blockNumberFetcher:O});return U(t),n.Ok(t)},W=async e=>{if(!m||!s||!i)return n.Err("Orderbook or walletClient or auth not initialized");let o=l;if(!c||!o){const B=await f();if(B.error)return n.Err(B.error);o=B.val}const t=await o.swap(e);if(t.error)return n.Err(t.error);if(G.isBitcoin(t.val.source_swap.chain))return n.Ok(t.val);const u=await d.switchOrAddNetwork(e.fromAsset.chain,s);if(u.error)return n.Err("Failed to switch network: "+u.error);const p=u.val.walletClient,w=await new d.EvmRelay(t.val,r.orderBookUrl,i).init(p);if(w.error)return n.Err(w.error);const k={...t.val,source_swap:{...t.val.source_swap,initiate_tx_hash:w.val}};return n.Ok(k)},_=async e=>{if(console.log("walletClient inside evmInitiate :",s),!s||!i)return n.Err("Orderbook or walletClient or auth not initialized");if(G.isBitcoin(e.source_swap.chain))return n.Err("Not an EVM order: sourceSwap.chain is Bitcoin");let o=l;if(!c||!o){const k=await f();if(k.error)return n.Err(k.error);o=k.val}const t=await d.switchOrAddNetwork(e.source_swap.chain,s);if(t.error)return n.Err("Failed to switch network: "+t.error);const u=t.val.walletClient;console.log("newWalletClient :",u);const E=await new d.EvmRelay(e,r.orderBookUrl,i).init(u);if(E.error)return n.Err(E.error);const w={...e,source_swap:{...e.source_swap,initiate_tx_hash:E.val}};return n.Ok(w)},F=async({fromAsset:e,toAsset:o,amount:t,isExactOut:u=!1})=>await h.getQuote(K.constructOrderpair(e,o),t,u);return a.useEffect(()=>{if(!s)return;const e=new q.Siwe(new q.Url(r.orderBookUrl),s,{store:r.store});g(e)},[s]),a.useEffect(()=>{if(!c||!s||!m||!i)return;const e=v.BitcoinWallet.fromPrivateKey(c.getMasterPrivKey(),P),o=new d.Garden({orderbookURl:r.orderBookUrl,secretManager:c,quote:h,auth:i,wallets:{evmWallet:s,btcWallet:e},blockNumberFetcher:O});U(o)},[c,s,m,i]),a.useEffect(()=>{if(!l)return;const e=l.execute(),o=t=>y(t);return l.on("onPendingOrdersChanged",o),()=>{(async()=>(await e)())(),l.off("onPendingOrdersChanged",o)}},[l]),a.createElement(R.Provider,{value:{orderBookUrl:r.orderBookUrl,initializeSecretManager:M,orderBook:m,swap:W,pendingOrders:C,getQuote:F,secretManager:c,garden:l,isExecuting:N,evmInitiate:_,quote:h}},b)},$=()=>{const b=a.useContext(R);if(!b)throw new Error("useGarden must be used within a GardenProvider");return b};exports.GardenContext=R;exports.GardenProvider=Q;exports.useGarden=$;
|
package/dist/index2.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import
|
|
1
|
+
import E, { createContext as T, useState as k, useMemo as b, useEffect as R } from "react";
|
|
2
2
|
import { useWalletClient as V } from "wagmi";
|
|
3
3
|
import { useSecretManager as j } from "./index4.js";
|
|
4
4
|
import { useOrderbook as D } from "./index3.js";
|
|
5
5
|
import { Quote as H, BlockNumberFetcher as J, Garden as F, switchOrAddNetwork as G, EvmRelay as N } from "@gardenfi/core";
|
|
6
6
|
import { Err as i, Ok as p } from "@catalogfi/utils";
|
|
7
|
-
import { isBitcoin as
|
|
8
|
-
import { BitcoinNetwork as
|
|
7
|
+
import { isBitcoin as W } from "@gardenfi/orderbook";
|
|
8
|
+
import { BitcoinNetwork as x, BitcoinProvider as L, BitcoinWallet as g } from "@catalogfi/wallets";
|
|
9
9
|
import { Siwe as X, Url as Y } from "@gardenfi/utils";
|
|
10
10
|
import { constructOrderpair as Z } from "./index5.js";
|
|
11
|
-
const
|
|
11
|
+
const S = T({
|
|
12
12
|
isExecuting: !1
|
|
13
13
|
}), ce = ({
|
|
14
14
|
children: w,
|
|
15
15
|
config: r
|
|
16
16
|
}) => {
|
|
17
|
-
const [l, z] = k(), [s, B] = k(), [
|
|
18
|
-
() => !!(l && s &&
|
|
19
|
-
[l, s,
|
|
20
|
-
), m = b(() => new H(r.quoteUrl), [r.quoteUrl]),
|
|
21
|
-
const e = r.network ===
|
|
17
|
+
const [l, z] = k(), [s, B] = k(), [a, K] = k(), [f, P] = k(), q = b(
|
|
18
|
+
() => !!(l && s && a && f),
|
|
19
|
+
[l, s, a, f]
|
|
20
|
+
), m = b(() => new H(r.quoteUrl), [r.quoteUrl]), C = b(() => {
|
|
21
|
+
const e = r.network === x.Mainnet ? "mainnet" : r.network === x.Testnet ? "testnet" : void 0;
|
|
22
22
|
return r.blockNumberFetcherUrl && e ? new J(
|
|
23
23
|
r.blockNumberFetcherUrl,
|
|
24
24
|
e
|
|
@@ -26,50 +26,50 @@ const g = T({
|
|
|
26
26
|
}, [r.blockNumberFetcherUrl, r.network]), y = b(
|
|
27
27
|
() => new L(r.network, r.bitcoinRPCUrl),
|
|
28
28
|
[r.network, r.bitcoinRPCUrl]
|
|
29
|
-
), { data:
|
|
29
|
+
), { data: n } = V(), { initializeSecretManager: O } = j(z), { orderbook: v } = D(
|
|
30
30
|
r.orderBookUrl,
|
|
31
|
-
|
|
31
|
+
a,
|
|
32
32
|
P,
|
|
33
|
-
|
|
33
|
+
C
|
|
34
34
|
), M = async () => {
|
|
35
|
-
if (!
|
|
35
|
+
if (!n || !a)
|
|
36
36
|
return i("WalletClient or auth not initialized");
|
|
37
37
|
const e = await O();
|
|
38
38
|
if (e.error) return i(e.error);
|
|
39
|
-
const o =
|
|
39
|
+
const o = g.fromPrivateKey(
|
|
40
40
|
e.val.getMasterPrivKey(),
|
|
41
41
|
y
|
|
42
42
|
), t = new F({
|
|
43
43
|
orderbookURl: r.orderBookUrl,
|
|
44
44
|
secretManager: e.val,
|
|
45
45
|
quote: m,
|
|
46
|
-
auth:
|
|
46
|
+
auth: a,
|
|
47
47
|
wallets: {
|
|
48
|
-
evmWallet:
|
|
48
|
+
evmWallet: n,
|
|
49
49
|
btcWallet: o
|
|
50
50
|
},
|
|
51
|
-
blockNumberFetcher:
|
|
51
|
+
blockNumberFetcher: C
|
|
52
52
|
});
|
|
53
53
|
return B(t), p(t);
|
|
54
54
|
}, A = async (e) => {
|
|
55
|
-
if (!v || !
|
|
55
|
+
if (!v || !n || !a)
|
|
56
56
|
return i("Orderbook or walletClient or auth not initialized");
|
|
57
57
|
let o = s;
|
|
58
58
|
if (!l || !o) {
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
61
|
-
o =
|
|
59
|
+
const U = await M();
|
|
60
|
+
if (U.error) return i(U.error);
|
|
61
|
+
o = U.val;
|
|
62
62
|
}
|
|
63
63
|
const t = await o.swap(e);
|
|
64
64
|
if (t.error) return i(t.error);
|
|
65
|
-
if (
|
|
65
|
+
if (W(t.val.source_swap.chain)) return p(t.val);
|
|
66
66
|
const c = await G(
|
|
67
67
|
e.fromAsset.chain,
|
|
68
|
-
|
|
68
|
+
n
|
|
69
69
|
);
|
|
70
70
|
if (c.error)
|
|
71
71
|
return i("Failed to switch network: " + c.error);
|
|
72
|
-
const _ = c.val.walletClient, u = await new N(t.val, r.orderBookUrl,
|
|
72
|
+
const _ = c.val.walletClient, u = await new N(t.val, r.orderBookUrl, a).init(_);
|
|
73
73
|
if (u.error) return i(u.error);
|
|
74
74
|
const d = {
|
|
75
75
|
...t.val,
|
|
@@ -80,23 +80,25 @@ const g = T({
|
|
|
80
80
|
};
|
|
81
81
|
return p(d);
|
|
82
82
|
}, Q = async (e) => {
|
|
83
|
-
if (!
|
|
83
|
+
if (console.log("walletClient inside evmInitiate :", n), !n || !a)
|
|
84
84
|
return i("Orderbook or walletClient or auth not initialized");
|
|
85
|
+
if (W(e.source_swap.chain))
|
|
86
|
+
return i("Not an EVM order: sourceSwap.chain is Bitcoin");
|
|
85
87
|
let o = s;
|
|
86
88
|
if (!l || !o) {
|
|
87
89
|
const d = await M();
|
|
88
90
|
if (d.error) return i(d.error);
|
|
89
91
|
o = d.val;
|
|
90
92
|
}
|
|
91
|
-
if (x(e.source_swap.chain))
|
|
92
|
-
return i("Not an EVM order: sourceSwap.chain is Bitcoin");
|
|
93
93
|
const t = await G(
|
|
94
94
|
e.source_swap.chain,
|
|
95
|
-
|
|
95
|
+
n
|
|
96
96
|
);
|
|
97
97
|
if (t.error)
|
|
98
98
|
return i("Failed to switch network: " + t.error);
|
|
99
|
-
const c = t.val.walletClient
|
|
99
|
+
const c = t.val.walletClient;
|
|
100
|
+
console.log("newWalletClient :", c);
|
|
101
|
+
const h = await new N(e, r.orderBookUrl, a).init(c);
|
|
100
102
|
if (h.error) return i(h.error);
|
|
101
103
|
const u = {
|
|
102
104
|
...e,
|
|
@@ -117,36 +119,36 @@ const g = T({
|
|
|
117
119
|
c
|
|
118
120
|
);
|
|
119
121
|
return R(() => {
|
|
120
|
-
if (!
|
|
121
|
-
const e = new X(new Y(r.orderBookUrl),
|
|
122
|
+
if (!n) return;
|
|
123
|
+
const e = new X(new Y(r.orderBookUrl), n, {
|
|
122
124
|
store: r.store
|
|
123
125
|
});
|
|
124
126
|
K(e);
|
|
125
|
-
}, [
|
|
126
|
-
if (!l || !
|
|
127
|
-
const e =
|
|
127
|
+
}, [n]), R(() => {
|
|
128
|
+
if (!l || !n || !v || !a) return;
|
|
129
|
+
const e = g.fromPrivateKey(
|
|
128
130
|
l.getMasterPrivKey(),
|
|
129
131
|
y
|
|
130
132
|
), o = new F({
|
|
131
133
|
orderbookURl: r.orderBookUrl,
|
|
132
134
|
secretManager: l,
|
|
133
135
|
quote: m,
|
|
134
|
-
auth:
|
|
136
|
+
auth: a,
|
|
135
137
|
wallets: {
|
|
136
|
-
evmWallet:
|
|
138
|
+
evmWallet: n,
|
|
137
139
|
btcWallet: e
|
|
138
140
|
},
|
|
139
|
-
blockNumberFetcher:
|
|
141
|
+
blockNumberFetcher: C
|
|
140
142
|
});
|
|
141
143
|
B(o);
|
|
142
|
-
}, [l,
|
|
144
|
+
}, [l, n, v, a]), R(() => {
|
|
143
145
|
if (!s) return;
|
|
144
146
|
const e = s.execute(), o = (t) => P(t);
|
|
145
147
|
return s.on("onPendingOrdersChanged", o), () => {
|
|
146
148
|
(async () => (await e)())(), s.off("onPendingOrdersChanged", o);
|
|
147
149
|
};
|
|
148
|
-
}, [s]), /* @__PURE__ */
|
|
149
|
-
|
|
150
|
+
}, [s]), /* @__PURE__ */ E.createElement(
|
|
151
|
+
S.Provider,
|
|
150
152
|
{
|
|
151
153
|
value: {
|
|
152
154
|
orderBookUrl: r.orderBookUrl,
|
|
@@ -165,13 +167,13 @@ const g = T({
|
|
|
165
167
|
w
|
|
166
168
|
);
|
|
167
169
|
}, ue = () => {
|
|
168
|
-
const w =
|
|
170
|
+
const w = E.useContext(S);
|
|
169
171
|
if (!w)
|
|
170
172
|
throw new Error("useGarden must be used within a GardenProvider");
|
|
171
173
|
return w;
|
|
172
174
|
};
|
|
173
175
|
export {
|
|
174
|
-
|
|
176
|
+
S as GardenContext,
|
|
175
177
|
ce as GardenProvider,
|
|
176
178
|
ue as useGarden
|
|
177
179
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gardenfi/react-hooks",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.99",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@catalogfi/utils": "^0.1.6",
|
|
30
30
|
"@catalogfi/wallets": "^0.2.51",
|
|
31
|
-
"@gardenfi/core": "^0.2.0-beta.
|
|
31
|
+
"@gardenfi/core": "^0.2.0-beta.78",
|
|
32
32
|
"@gardenfi/orderbook": "^0.2.0-beta.19",
|
|
33
33
|
"@gardenfi/utils": "^0.0.1-beta.18",
|
|
34
34
|
"react": "^18.3.1",
|