@gardenfi/wallet-connectors 3.0.0-beta.2 → 3.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +17 -7
- package/dist/index10.cjs +1 -1
- package/dist/index10.js +62 -3
- package/dist/index11.cjs +1 -1
- package/dist/index11.js +83 -2
- package/dist/index12.cjs +1 -1
- package/dist/index12.js +108 -2
- package/dist/index13.cjs +1 -0
- package/dist/index13.js +83 -0
- package/dist/index14.cjs +1 -0
- package/dist/index14.js +68 -0
- package/dist/index15.cjs +1 -0
- package/dist/index15.js +10 -0
- package/dist/index16.cjs +1 -0
- package/dist/index16.js +4 -0
- package/dist/index17.cjs +1 -0
- package/dist/index17.js +37 -0
- package/dist/index18.cjs +1 -0
- package/dist/index18.js +5 -0
- package/dist/index19.cjs +1 -0
- package/dist/index19.js +4 -0
- package/dist/index2.cjs +1 -1
- package/dist/index2.js +67 -85
- package/dist/index20.cjs +1 -0
- package/dist/index20.js +4 -0
- package/dist/index5.cjs +1 -1
- package/dist/index5.js +83 -61
- package/dist/index6.cjs +1 -1
- package/dist/index6.js +14 -82
- package/dist/index7.cjs +1 -1
- package/dist/index7.js +109 -105
- package/dist/index8.cjs +1 -1
- package/dist/index8.js +107 -65
- package/dist/index9.cjs +1 -1
- package/dist/index9.js +83 -45
- package/dist/src/bitcoin/btcWalletsProvider.d.ts +2 -0
- package/dist/src/bitcoin/btcWalletsProvider.types.d.ts +0 -2
- package/dist/src/bitcoin/index.d.ts +2 -2
- package/dist/src/index.d.ts +2 -0
- package/dist/src/litecoin/constants.d.ts +14 -0
- package/dist/src/litecoin/index.d.ts +5 -0
- package/dist/src/litecoin/litecoin.types.d.ts +51 -0
- package/dist/src/litecoin/ltcWalletsProvider.d.ts +5 -0
- package/dist/src/litecoin/ltcWalletsProvider.types.d.ts +22 -0
- package/dist/src/litecoin/providers/ctrl/ctrl.types.d.ts +13 -0
- package/dist/src/litecoin/providers/ctrl/provider.d.ts +22 -0
- package/dist/src/litecoin/utils.d.ts +12 -0
- package/dist/src/spark/constants.d.ts +14 -0
- package/dist/src/spark/index.d.ts +5 -0
- package/dist/src/spark/providers/sparkWalletsProvider.d.ts +13 -0
- package/dist/src/spark/providers/sparkWalletsProvider.types.d.ts +22 -0
- package/dist/src/spark/providers/xverse/provider.d.ts +28 -0
- package/dist/src/spark/providers/xverse/xverse.types.d.ts +11 -0
- package/dist/src/spark/spark.types.d.ts +51 -0
- package/package.json +7 -5
package/dist/index2.js
CHANGED
|
@@ -1,137 +1,119 @@
|
|
|
1
|
-
import I, { useState as
|
|
2
|
-
import { OKXProvider as
|
|
3
|
-
import { UnisatProvider as
|
|
4
|
-
import { PhantomProvider as
|
|
5
|
-
import { XverseProvider as
|
|
6
|
-
import { KeplrProvider as
|
|
7
|
-
import {
|
|
8
|
-
const
|
|
9
|
-
children:
|
|
10
|
-
network:
|
|
11
|
-
store:
|
|
12
|
-
wallets:
|
|
1
|
+
import I, { useState as l, useMemo as X, useCallback as M, useEffect as p, createContext as O, useContext as S } from "react";
|
|
2
|
+
import { OKXProvider as J } from "./index10.js";
|
|
3
|
+
import { UnisatProvider as K } from "./index11.js";
|
|
4
|
+
import { PhantomProvider as L } from "./index12.js";
|
|
5
|
+
import { XverseProvider as z } from "./index13.js";
|
|
6
|
+
import { KeplrProvider as D } from "./index14.js";
|
|
7
|
+
import { Network as P, Err as g, Ok as k, Void as C } from "@gardenfi/utils";
|
|
8
|
+
const h = O(void 0), G = ({
|
|
9
|
+
children: c,
|
|
10
|
+
network: r,
|
|
11
|
+
store: v,
|
|
12
|
+
wallets: u
|
|
13
13
|
}) => {
|
|
14
|
-
const [t, w] =
|
|
14
|
+
const [t, w] = l(), [f, i] = l(), [N, s] = l(!1), [a, x] = l(
|
|
15
15
|
{}
|
|
16
|
-
),
|
|
17
|
-
() => !!t && !!
|
|
18
|
-
[t,
|
|
19
|
-
),
|
|
20
|
-
|
|
21
|
-
const o = await e.connect(
|
|
22
|
-
return o.ok ? o.val.network !==
|
|
23
|
-
},
|
|
16
|
+
), A = X(
|
|
17
|
+
() => !!t && !!f,
|
|
18
|
+
[t, f]
|
|
19
|
+
), W = async (e) => {
|
|
20
|
+
s(!0);
|
|
21
|
+
const o = await e.connect(r);
|
|
22
|
+
return o.ok ? o.val.network !== r ? (s(!1), g("Network mismatch")) : (w(o.val.provider), i(o.val.address), v.setItem("bitcoinWallet", JSON.stringify(o.val)), s(!1), k(C)) : (s(!1), g(o.error));
|
|
23
|
+
}, E = () => t ? (t.disconnect(), w(void 0), i(void 0), v.removeItem("bitcoinWallet"), k(C)) : g("No provider to disconnect"), T = M(async () => {
|
|
24
24
|
if (!t) return;
|
|
25
25
|
const e = await t.getAccounts();
|
|
26
26
|
if (!e.ok) {
|
|
27
27
|
console.error("Error getting accounts:", e.error);
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
i(e.val[0]);
|
|
31
31
|
const o = await t.getNetwork();
|
|
32
32
|
if (o.error) {
|
|
33
33
|
console.error("Error getting network:", o.error);
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
}, [t]),
|
|
37
|
-
|
|
36
|
+
}, [t]), n = (e) => {
|
|
37
|
+
x((o) => ({
|
|
38
38
|
...o,
|
|
39
39
|
[e.id]: e
|
|
40
40
|
}));
|
|
41
|
-
},
|
|
41
|
+
}, y = async () => {
|
|
42
42
|
if (window.okxwallet && window.okxwallet.bitcoin && window.okxwallet.bitcoinTestnet) {
|
|
43
|
-
const e = new
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
const e = new J(
|
|
44
|
+
r === P.MAINNET ? window.okxwallet.bitcoin : window.okxwallet.bitcoinTestnet,
|
|
45
|
+
r
|
|
46
46
|
);
|
|
47
|
-
|
|
47
|
+
n(e);
|
|
48
48
|
}
|
|
49
|
-
if (
|
|
50
|
-
const e = new
|
|
51
|
-
|
|
49
|
+
if (r === P.MAINNET && window.phantom && window.phantom.bitcoin) {
|
|
50
|
+
const e = new L(window.phantom.bitcoin);
|
|
51
|
+
n(e);
|
|
52
52
|
}
|
|
53
53
|
if (window.unisat) {
|
|
54
|
-
const e = new
|
|
55
|
-
|
|
54
|
+
const e = new K(window.unisat, r);
|
|
55
|
+
n(e);
|
|
56
56
|
}
|
|
57
57
|
if (window.XverseProviders && window.XverseProviders.BitcoinProvider) {
|
|
58
|
-
const e = new
|
|
58
|
+
const e = new z(
|
|
59
59
|
window.XverseProviders.BitcoinProvider
|
|
60
60
|
);
|
|
61
|
-
|
|
61
|
+
n(e);
|
|
62
62
|
}
|
|
63
|
-
if (
|
|
64
|
-
const e = new
|
|
65
|
-
|
|
63
|
+
if (r === P.MAINNET && window.keplr && window.keplr.bitcoin) {
|
|
64
|
+
const e = new D(window.keplr.bitcoin);
|
|
65
|
+
n(e);
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
u == null || u.forEach((e) => {
|
|
68
|
+
n(e.provider);
|
|
69
69
|
});
|
|
70
70
|
}, B = async () => {
|
|
71
|
-
const e =
|
|
71
|
+
const e = v.getItem("bitcoinWallet");
|
|
72
72
|
if (e) {
|
|
73
|
-
const o = JSON.parse(e),
|
|
74
|
-
if (
|
|
75
|
-
const m = await
|
|
73
|
+
const o = JSON.parse(e), d = a[o.id];
|
|
74
|
+
if (d) {
|
|
75
|
+
const m = await d.getAccounts();
|
|
76
76
|
if (!m.ok || !m.val[0]) return;
|
|
77
|
-
const b = await
|
|
78
|
-
if (b.error || b.val !==
|
|
79
|
-
w(
|
|
77
|
+
const b = await d.getNetwork();
|
|
78
|
+
if (b.error || b.val !== r) return;
|
|
79
|
+
w(d), i(m.val[0]);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
|
-
return
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
C(o.provider);
|
|
89
|
-
});
|
|
90
|
-
typeof r == "function" && e.push(r);
|
|
91
|
-
}
|
|
92
|
-
if (o.registerDisconnect) {
|
|
93
|
-
const r = o.registerDisconnect(() => {
|
|
94
|
-
g();
|
|
95
|
-
});
|
|
96
|
-
typeof r == "function" && e.push(r);
|
|
97
|
-
}
|
|
98
|
-
}), () => {
|
|
99
|
-
e.forEach((o) => o());
|
|
100
|
-
};
|
|
101
|
-
}, [i]), l(() => {
|
|
102
|
-
T();
|
|
103
|
-
}, []), l(() => {
|
|
104
|
-
u && B();
|
|
105
|
-
}, [u]), l(() => {
|
|
83
|
+
return p(() => {
|
|
84
|
+
y();
|
|
85
|
+
}, []), p(() => {
|
|
86
|
+
a && B();
|
|
87
|
+
}, [a]), p(() => {
|
|
106
88
|
if (!t) return;
|
|
107
89
|
const e = async (o) => {
|
|
108
|
-
o.length !== 0 &&
|
|
90
|
+
o.length !== 0 && i(o[0]);
|
|
109
91
|
};
|
|
110
92
|
return t.on("accountsChanged", e), () => {
|
|
111
93
|
t.off("accountsChanged", e);
|
|
112
94
|
};
|
|
113
95
|
}, [t]), /* @__PURE__ */ I.createElement(
|
|
114
|
-
|
|
96
|
+
h.Provider,
|
|
115
97
|
{
|
|
116
98
|
value: {
|
|
117
|
-
availableWallets:
|
|
118
|
-
connect:
|
|
99
|
+
availableWallets: a,
|
|
100
|
+
connect: W,
|
|
119
101
|
provider: t,
|
|
120
|
-
account:
|
|
121
|
-
network:
|
|
122
|
-
isConnecting:
|
|
123
|
-
updateAccount:
|
|
124
|
-
disconnect:
|
|
125
|
-
isConnected:
|
|
102
|
+
account: f,
|
|
103
|
+
network: r,
|
|
104
|
+
isConnecting: N,
|
|
105
|
+
updateAccount: T,
|
|
106
|
+
disconnect: E,
|
|
107
|
+
isConnected: A
|
|
126
108
|
}
|
|
127
109
|
},
|
|
128
|
-
|
|
110
|
+
c
|
|
129
111
|
);
|
|
130
112
|
}, H = () => {
|
|
131
|
-
const
|
|
132
|
-
if (!
|
|
113
|
+
const c = S(h);
|
|
114
|
+
if (!c)
|
|
133
115
|
throw new Error("useBitcoinWallet must be used within BTCWalletProvider");
|
|
134
|
-
return
|
|
116
|
+
return c;
|
|
135
117
|
};
|
|
136
118
|
export {
|
|
137
119
|
G as BTCWalletProvider,
|
package/dist/index20.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=(T=>(T.MAINNET="BITCOIN_MAINNET",T.TESTNET="BITCOIN_TESTNET",T))(e||{});exports.KeplrBitcoinChainType=e;
|
package/dist/index20.js
ADDED
package/dist/index5.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),h=require("./index9.cjs"),o=require("@gardenfi/utils"),g=r.createContext(void 0),S=({children:i,network:l,store:u})=>{const[n,d]=r.useState(),[v,c]=r.useState(),[W,s]=r.useState(!1),[a,p]=r.useState({}),m=r.useMemo(()=>!!n&&!!v,[n,v]),w=async e=>{s(!0);const t=await e.connect(l);return t.ok?t.val.network!==l?(s(!1),o.Err("Network mismatch")):(d(t.val.provider),c(t.val.address),u.setItem("litecoinWallet",JSON.stringify(t.val)),s(!1),o.Ok(o.Void)):(s(!1),o.Err(t.error))},P=()=>n?(n.disconnect(),d(void 0),c(void 0),u.removeItem("litecoinWallet"),o.Ok(o.Void)):o.Err("No provider to disconnect"),y=r.useCallback(async()=>{if(!n)return;const e=await n.getAccounts();if(!e.ok){console.error("Error getting accounts:",e.error);return}c(e.val[0])},[n]),A=e=>{p(t=>({...t,[e.id]:e}))},E=async()=>{const e=window.ctrl??window.xfi;if(e&&e.litecoin){const t=new h.CtrlProvider(e.litecoin);A(t)}},L=async()=>{const e=u.getItem("litecoinWallet");if(e){const t=JSON.parse(e),f=a[t.id];if(f){const C=await f.getAccounts();if(!C.ok||!C.val[0])return;d(f),c(C.val[0])}}};return r.useEffect(()=>{E()},[]),r.useEffect(()=>{a&&L()},[a]),r.useEffect(()=>{if(!n)return;const e=async t=>{t.length!==0&&c(t[0])};return n.on("accountsChanged",e),()=>{n.off("accountsChanged",e)}},[n]),r.createElement(g.Provider,{value:{availableWallets:a,connect:w,provider:n,account:v,network:l,isConnecting:W,updateAccount:y,disconnect:P,isConnected:m}},i)},b=()=>{const i=r.useContext(g);if(!i)throw new Error("useLitecoinWallet must be used within LTCWalletProvider");return i};exports.LTCWalletProvider=S;exports.useLitecoinWallet=b;
|
package/dist/index5.js
CHANGED
|
@@ -1,64 +1,86 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
1
|
+
import b, { useState as s, useMemo as I, useCallback as N, useEffect as C, createContext as T, useContext as O } from "react";
|
|
2
|
+
import { CtrlProvider as S } from "./index9.js";
|
|
3
|
+
import { Err as m, Ok as g, Void as p } from "@gardenfi/utils";
|
|
4
|
+
const W = T(void 0), M = ({
|
|
5
|
+
children: r,
|
|
6
|
+
network: a,
|
|
7
|
+
store: l
|
|
8
|
+
}) => {
|
|
9
|
+
const [n, d] = s(), [u, o] = s(), [w, c] = s(!1), [i, A] = s(
|
|
10
|
+
{}
|
|
11
|
+
), h = I(
|
|
12
|
+
() => !!n && !!u,
|
|
13
|
+
[n, u]
|
|
14
|
+
), P = async (t) => {
|
|
15
|
+
c(!0);
|
|
16
|
+
const e = await t.connect(a);
|
|
17
|
+
return e.ok ? e.val.network !== a ? (c(!1), m("Network mismatch")) : (d(e.val.provider), o(e.val.address), l.setItem("litecoinWallet", JSON.stringify(e.val)), c(!1), g(p)) : (c(!1), m(e.error));
|
|
18
|
+
}, y = () => n ? (n.disconnect(), d(void 0), o(void 0), l.removeItem("litecoinWallet"), g(p)) : m("No provider to disconnect"), L = N(async () => {
|
|
19
|
+
if (!n) return;
|
|
20
|
+
const t = await n.getAccounts();
|
|
21
|
+
if (!t.ok) {
|
|
22
|
+
console.error("Error getting accounts:", t.error);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
o(t.val[0]);
|
|
26
|
+
}, [n]), x = (t) => {
|
|
27
|
+
A((e) => ({
|
|
28
|
+
...e,
|
|
29
|
+
[t.id]: t
|
|
30
|
+
}));
|
|
31
|
+
}, k = async () => {
|
|
32
|
+
const t = window.ctrl ?? window.xfi;
|
|
33
|
+
if (t && t.litecoin) {
|
|
34
|
+
const e = new S(t.litecoin);
|
|
35
|
+
x(e);
|
|
26
36
|
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
37
|
+
}, E = async () => {
|
|
38
|
+
const t = l.getItem("litecoinWallet");
|
|
39
|
+
if (t) {
|
|
40
|
+
const e = JSON.parse(t), v = i[e.id];
|
|
41
|
+
if (v) {
|
|
42
|
+
const f = await v.getAccounts();
|
|
43
|
+
if (!f.ok || !f.val[0]) return;
|
|
44
|
+
d(v), o(f.val[0]);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return C(() => {
|
|
49
|
+
k();
|
|
50
|
+
}, []), C(() => {
|
|
51
|
+
i && E();
|
|
52
|
+
}, [i]), C(() => {
|
|
53
|
+
if (!n) return;
|
|
54
|
+
const t = async (e) => {
|
|
55
|
+
e.length !== 0 && o(e[0]);
|
|
56
|
+
};
|
|
57
|
+
return n.on("accountsChanged", t), () => {
|
|
58
|
+
n.off("accountsChanged", t);
|
|
59
|
+
};
|
|
60
|
+
}, [n]), /* @__PURE__ */ b.createElement(
|
|
61
|
+
W.Provider,
|
|
62
|
+
{
|
|
63
|
+
value: {
|
|
64
|
+
availableWallets: i,
|
|
65
|
+
connect: P,
|
|
66
|
+
provider: n,
|
|
67
|
+
account: u,
|
|
68
|
+
network: a,
|
|
69
|
+
isConnecting: w,
|
|
70
|
+
updateAccount: L,
|
|
71
|
+
disconnect: y,
|
|
72
|
+
isConnected: h
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
r
|
|
76
|
+
);
|
|
77
|
+
}, R = () => {
|
|
78
|
+
const r = O(W);
|
|
79
|
+
if (!r)
|
|
80
|
+
throw new Error("useLitecoinWallet must be used within LTCWalletProvider");
|
|
81
|
+
return r;
|
|
82
|
+
};
|
|
62
83
|
export {
|
|
63
|
-
|
|
84
|
+
M as LTCWalletProvider,
|
|
85
|
+
R as useLitecoinWallet
|
|
64
86
|
};
|
package/dist/index6.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t={Ctrl:{id:"ctrl",name:"CTRL Wallet",icon:"https://garden.imgix.net/wallets/ctrl.svg"}},e={Ctrl:{id:"ctrl",name:"CTRL Wallet",icon:"https://garden.imgix.net/wallets/ctrl.svg"}};exports.SupportedWallets=t;exports.WALLET_CONFIG=e;
|
package/dist/index6.js
CHANGED
|
@@ -1,85 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
N(this, n);
|
|
13
|
-
N(this, o);
|
|
14
|
-
this.address = "", this.id = l.Unisat.id, this.name = l.Unisat.name, this.icon = l.Unisat.icon, this.disconnect = () => (this.address = "", Promise.resolve(E("Disconnected unisat wallet"))), T(this, n, t), T(this, o, r);
|
|
15
|
-
}
|
|
16
|
-
async connect(t) {
|
|
17
|
-
try {
|
|
18
|
-
t || (t = i(this, o));
|
|
19
|
-
const r = await this.getNetwork(), s = await i(this, n).getChain();
|
|
20
|
-
if (r.error)
|
|
21
|
-
return a("Could not get network", r.error);
|
|
22
|
-
if (r.val !== t || s.enum === w.BITCOIN_TESTNET) {
|
|
23
|
-
const d = await this.switchNetwork();
|
|
24
|
-
if (d.error)
|
|
25
|
-
return a("Failed to switch network", d.error);
|
|
26
|
-
}
|
|
27
|
-
const c = await i(this, n).requestAccounts();
|
|
28
|
-
return c.length > 0 && (this.address = c[0]), E({
|
|
29
|
-
address: this.address,
|
|
30
|
-
provider: this,
|
|
31
|
-
network: t,
|
|
32
|
-
id: l.Unisat.id
|
|
33
|
-
});
|
|
34
|
-
} catch (r) {
|
|
35
|
-
return a("Error while connecting to the Unisat wallet", r);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// requests accounts from the wallet, if not connected, it will connect first
|
|
39
|
-
async requestAccounts() {
|
|
40
|
-
return await h(async () => await i(this, n).requestAccounts(), "Error while requesting accounts from the Unisat wallet");
|
|
41
|
-
}
|
|
42
|
-
//silently gets accounts if already connected
|
|
43
|
-
async getAccounts() {
|
|
44
|
-
return await h(async () => await i(this, n).getAccounts(), "Error while getting accounts from the Unisat wallet");
|
|
45
|
-
}
|
|
46
|
-
async getNetwork() {
|
|
47
|
-
return await h(async () => {
|
|
48
|
-
const t = await i(this, n).getNetwork();
|
|
49
|
-
if (t === f.LIVENET)
|
|
50
|
-
return u.MAINNET;
|
|
51
|
-
if (t === f.TESTNET)
|
|
52
|
-
return u.TESTNET;
|
|
53
|
-
throw new Error("Invalid or unsupported network" + t);
|
|
54
|
-
}, "Error while getting network from Unisat wallet");
|
|
55
|
-
}
|
|
56
|
-
async switchNetwork() {
|
|
57
|
-
try {
|
|
58
|
-
const t = await this.getNetwork(), r = await i(this, n).getChain();
|
|
59
|
-
if (t.error)
|
|
60
|
-
return a("Failed to get current network");
|
|
61
|
-
const s = t.val === u.MAINNET ? w.BITCOIN_TESTNET4 : i(this, o) === u.TESTNET && r.enum === w.BITCOIN_TESTNET ? w.BITCOIN_TESTNET4 : w.BITCOIN_MAINNET;
|
|
62
|
-
await i(this, n).switchChain(s);
|
|
63
|
-
const c = await this.getNetwork();
|
|
64
|
-
return c.ok ? E(c.val) : a("Failed to verify network switch");
|
|
65
|
-
} catch (t) {
|
|
66
|
-
return a("Error while switching network in Unisat:", t);
|
|
67
|
-
}
|
|
1
|
+
const t = {
|
|
2
|
+
Ctrl: {
|
|
3
|
+
id: "ctrl",
|
|
4
|
+
name: "CTRL Wallet",
|
|
5
|
+
icon: "https://garden.imgix.net/wallets/ctrl.svg"
|
|
6
|
+
}
|
|
7
|
+
}, l = {
|
|
8
|
+
Ctrl: {
|
|
9
|
+
id: "ctrl",
|
|
10
|
+
name: "CTRL Wallet",
|
|
11
|
+
icon: "https://garden.imgix.net/wallets/ctrl.svg"
|
|
68
12
|
}
|
|
69
|
-
|
|
70
|
-
return await h(async () => await i(this, n).getBalance(), "Error while getting balance from Unisat wallet");
|
|
71
|
-
}
|
|
72
|
-
async sendBitcoin(t, r) {
|
|
73
|
-
return await h(async () => await i(this, n).sendBitcoin(t, r), "Error while sending bitcoin from Unisat wallet");
|
|
74
|
-
}
|
|
75
|
-
on(t, r) {
|
|
76
|
-
i(this, n).on(t, r);
|
|
77
|
-
}
|
|
78
|
-
off(t, r) {
|
|
79
|
-
i(this, n).removeListener(t, r);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
n = new WeakMap(), o = new WeakMap();
|
|
13
|
+
};
|
|
83
14
|
export {
|
|
84
|
-
|
|
15
|
+
t as SupportedWallets,
|
|
16
|
+
l as WALLET_CONFIG
|
|
85
17
|
};
|
package/dist/index7.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),g=require("./index8.cjs"),i=require("@gardenfi/utils"),b=require("sats-connect"),S=o.createContext(void 0),x=({children:v,network:l,store:p})=>{const[t,P]=o.useState(),[w,c]=o.useState(),[C,u]=o.useState(!1),[f,W]=o.useState({}),m=o.useMemo(()=>!!t&&!!w,[t,w]),y=async r=>{u(!0);const e=await r.connect(l);return e.ok?e.val.network!==l?(u(!1),i.Err("Network mismatch")):(P(e.val.provider),c(e.val.address),p.setItem("sparkWallet",JSON.stringify(e.val)),u(!1),i.Ok(i.Void)):(u(!1),i.Err(e.error))},E=()=>t?(t.disconnect(),P(void 0),c(void 0),p.removeItem("sparkWallet"),i.Ok(i.Void)):i.Err("No provider to disconnect"),h=o.useCallback(async()=>{if(!t)return;const r=await t.getAccounts();if(!r.ok){console.error("Error getting accounts:",r.error);return}c(r.val[0]);const e=await t.getNetwork();if(e.error){console.error("Error getting network:",e.error);return}},[t]),k=r=>{W(e=>({...e,[r.id]:r}))},A=async()=>{var r,e,n;try{if(b.getProviders().find(s=>s.id==="BitcoinProvider"||s.id.toLowerCase().includes("xverseproviders.bitcoinprovider"))&&((r=window.XverseProviders)!=null&&r.BitcoinProvider)){const s=new g.XverseSparkProvider(window.XverseProviders.BitcoinProvider);k(s)}else if((e=window.XverseProviders)!=null&&e.BitcoinProvider){const s=new g.XverseSparkProvider(window.XverseProviders.BitcoinProvider);k(s)}}catch{if((n=window.XverseProviders)!=null&&n.BitcoinProvider){const d=new g.XverseSparkProvider(window.XverseProviders.BitcoinProvider);k(d)}}},X=async()=>{const r=p.getItem("sparkWallet");if(r){const e=JSON.parse(r),n=f[e.id];if(n){const a=await n.getAccounts();if(!a.ok||!a.val[0])return;const d=await n.getNetwork();if(d.error||d.val!==l)return;P(n),c(a.val[0])}}};return o.useEffect(()=>{A()},[]),o.useEffect(()=>{f&&X()},[f]),o.useEffect(()=>{if(!t)return;const r=async e=>{e.length!==0&&c(e[0])};return t.on("accountsChanged",r),()=>{t.off("accountsChanged",r)}},[t]),o.createElement(S.Provider,{value:{availableWallets:f,connect:y,provider:t,account:w,network:l,isConnecting:C,updateAccount:h,disconnect:E,isConnected:m}},v)},B=()=>{const v=o.useContext(S);if(!v)throw new Error("useSparkWallet must be used within SparkWalletProvider");return v};exports.SparkWalletProvider=x;exports.useSparkWallet=B;
|