@coinbase/cdp-hooks 0.0.35 → 0.0.37
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/README.md +93 -10
- package/dist/esm/index.js +25 -23
- package/dist/esm/index3.js +75 -73
- package/dist/types/index.d.ts +16 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -142,7 +142,9 @@ function App() {
|
|
|
142
142
|
<CDPHooksProvider
|
|
143
143
|
config={{
|
|
144
144
|
projectId: "your-project-id",
|
|
145
|
-
|
|
145
|
+
ethereum: {
|
|
146
|
+
createOnLogin: "smart", // Creates Smart Accounts instead of EOAs
|
|
147
|
+
},
|
|
146
148
|
}}
|
|
147
149
|
>
|
|
148
150
|
<App />
|
|
@@ -151,7 +153,7 @@ function App() {
|
|
|
151
153
|
}
|
|
152
154
|
```
|
|
153
155
|
|
|
154
|
-
* When `
|
|
156
|
+
* When `ethereum.createOnLogin` is set to `"smart"`, new users will automatically get both an EOA and a Smart Account.
|
|
155
157
|
|
|
156
158
|
#### Solana Configuration
|
|
157
159
|
|
|
@@ -163,7 +165,9 @@ function App() {
|
|
|
163
165
|
<CDPHooksProvider
|
|
164
166
|
config={{
|
|
165
167
|
projectId: "your-project-id",
|
|
166
|
-
|
|
168
|
+
solana: {
|
|
169
|
+
createOnLogin: true, // Creates Solana accounts
|
|
170
|
+
},
|
|
167
171
|
}}
|
|
168
172
|
>
|
|
169
173
|
<App />
|
|
@@ -172,7 +176,7 @@ function App() {
|
|
|
172
176
|
}
|
|
173
177
|
```
|
|
174
178
|
|
|
175
|
-
* When `
|
|
179
|
+
* When `solana.createOnLogin` is set to `true`, new users will automatically get a Solana account instead of EVM accounts.
|
|
176
180
|
|
|
177
181
|
### Sign In a User
|
|
178
182
|
|
|
@@ -380,7 +384,7 @@ function UserInformation() {
|
|
|
380
384
|
|
|
381
385
|
### Working with Solana
|
|
382
386
|
|
|
383
|
-
When your application is configured with `
|
|
387
|
+
When your application is configured with `solana: { createOnLogin: true }`, you can use Solana-specific hooks to interact with Solana accounts.
|
|
384
388
|
|
|
385
389
|
#### Access Solana Address
|
|
386
390
|
|
|
@@ -447,6 +451,49 @@ function SolanaTransactionSigner() {
|
|
|
447
451
|
}
|
|
448
452
|
```
|
|
449
453
|
|
|
454
|
+
#### Sign a Solana Message
|
|
455
|
+
|
|
456
|
+
Use the `useSignSolanaMessage` hook to sign arbitrary messages with Solana accounts:
|
|
457
|
+
|
|
458
|
+
```tsx lines
|
|
459
|
+
import { useSignSolanaMessage, useSolanaAddress } from "@coinbase/cdp-hooks";
|
|
460
|
+
|
|
461
|
+
function SolanaMessageSigner() {
|
|
462
|
+
const { signSolanaMessage } = useSignSolanaMessage();
|
|
463
|
+
const { solanaAddress } = useSolanaAddress();
|
|
464
|
+
|
|
465
|
+
const handleSignMessage = async () => {
|
|
466
|
+
if (!solanaAddress) return;
|
|
467
|
+
|
|
468
|
+
try {
|
|
469
|
+
const message = Buffer.from("Hello, Solana!", "utf8").toString("base64");
|
|
470
|
+
const result = await signSolanaMessage({
|
|
471
|
+
solanaAccount: solanaAddress,
|
|
472
|
+
message // Base64 encoded message to sign
|
|
473
|
+
});
|
|
474
|
+
|
|
475
|
+
console.log("Message Signature:", result.signature);
|
|
476
|
+
// The signature can be used for authentication or verification purposes
|
|
477
|
+
} catch (error) {
|
|
478
|
+
console.error("Failed to sign message:", error);
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
if (!solanaAddress) {
|
|
483
|
+
return <div>Please connect your Solana wallet first</div>;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
return (
|
|
487
|
+
<div>
|
|
488
|
+
<h3>Sign Solana Message</h3>
|
|
489
|
+
<button onClick={handleSignMessage}>
|
|
490
|
+
Sign Message
|
|
491
|
+
</button>
|
|
492
|
+
</div>
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
```
|
|
496
|
+
|
|
450
497
|
#### Send a Solana Transaction
|
|
451
498
|
|
|
452
499
|
Use the `useSendSolanaTransaction` hook to sign and send Solana transactions in a single action. This is supported on:
|
|
@@ -663,14 +710,16 @@ function SignData() {
|
|
|
663
710
|
}
|
|
664
711
|
```
|
|
665
712
|
|
|
666
|
-
### Export Private
|
|
713
|
+
### Export Private Keys
|
|
667
714
|
|
|
668
|
-
End users can export their private keys from their embedded wallet, allowing them to import
|
|
715
|
+
End users can export their private keys from their embedded wallet, allowing them to import them into compatible wallets of their choice.
|
|
716
|
+
|
|
717
|
+
#### Export EVM Private Key
|
|
669
718
|
|
|
670
719
|
```tsx lines
|
|
671
720
|
import { useExportEvmAccount, useEvmAddress } from "@coinbase/cdp-hooks";
|
|
672
721
|
|
|
673
|
-
function
|
|
722
|
+
function ExportEvmKey() {
|
|
674
723
|
const { exportEvmAccount: exportAccount } = useExportEvmAccount();
|
|
675
724
|
const { evmAddress } = useEvmAddress();
|
|
676
725
|
|
|
@@ -682,14 +731,48 @@ function ExportKey() {
|
|
|
682
731
|
evmAccount: evmAddress
|
|
683
732
|
});
|
|
684
733
|
|
|
685
|
-
console.log("Private Key:", privateKey);
|
|
734
|
+
console.log("EVM Private Key:", privateKey);
|
|
686
735
|
// Warning: Handle private keys with extreme care!
|
|
687
736
|
} catch (error) {
|
|
688
737
|
console.error("Export failed:", error);
|
|
689
738
|
}
|
|
690
739
|
};
|
|
691
740
|
|
|
692
|
-
return <button onClick={handleExport}>Export Private Key</button>;
|
|
741
|
+
return <button onClick={handleExport}>Export EVM Private Key</button>;
|
|
742
|
+
}
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
#### Export Solana Private Key
|
|
746
|
+
|
|
747
|
+
When your application is configured with `solana: { createOnLogin: true }`, you can export Solana private keys:
|
|
748
|
+
|
|
749
|
+
```tsx lines
|
|
750
|
+
import { useExportSolanaAccount, useSolanaAddress } from "@coinbase/cdp-hooks";
|
|
751
|
+
|
|
752
|
+
function ExportSolanaKey() {
|
|
753
|
+
const { exportSolanaAccount: exportAccount } = useExportSolanaAccount();
|
|
754
|
+
const { solanaAddress } = useSolanaAddress();
|
|
755
|
+
|
|
756
|
+
const handleExport = async () => {
|
|
757
|
+
if (!solanaAddress) return;
|
|
758
|
+
|
|
759
|
+
try {
|
|
760
|
+
const { privateKey } = await exportAccount({
|
|
761
|
+
solanaAccount: solanaAddress
|
|
762
|
+
});
|
|
763
|
+
|
|
764
|
+
console.log("Solana Private Key:", privateKey);
|
|
765
|
+
// Warning: Handle private keys with extreme care!
|
|
766
|
+
} catch (error) {
|
|
767
|
+
console.error("Export failed:", error);
|
|
768
|
+
}
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
if (!solanaAddress) {
|
|
772
|
+
return <div>Please connect your Solana wallet first</div>;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
return <button onClick={handleExport}>Export Solana Private Key</button>;
|
|
693
776
|
}
|
|
694
777
|
```
|
|
695
778
|
|
package/dist/esm/index.js
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import { APIError as n } from "@coinbase/cdp-core";
|
|
2
|
-
import { CDPContext as
|
|
3
|
-
import { useConfig as
|
|
2
|
+
import { CDPContext as u, CDPHooksProvider as o } from "./index2.js";
|
|
3
|
+
import { useConfig as i, useCurrentUser as t, useEnforceAuthenticated as S, useEnforceUnauthenticated as c, useEvmAddress as m, useExportEvmAccount as E, useExportSolanaAccount as d, useGetAccessToken as g, useIsInitialized as f, useIsSignedIn as l, useSendEvmTransaction as p, useSendSolanaTransaction as v, useSendUserOperation as T, useSignEvmHash as A, useSignEvmMessage as I, useSignEvmTransaction as x, useSignEvmTypedData as P, useSignInWithEmail as h, useSignInWithSms as C, useSignOut as O, useSignSolanaMessage as U, useSignSolanaTransaction as y, useSolanaAddress as D, useVerifyEmailOTP as W, useVerifySmsOTP as k, useWaitForUserOperation as H } from "./index3.js";
|
|
4
4
|
export {
|
|
5
5
|
n as APIError,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
u as CDPContext,
|
|
7
|
+
o as CDPHooksProvider,
|
|
8
|
+
i as useConfig,
|
|
9
9
|
t as useCurrentUser,
|
|
10
10
|
S as useEnforceAuthenticated,
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
c as useEnforceUnauthenticated,
|
|
12
|
+
m as useEvmAddress,
|
|
13
13
|
E as useExportEvmAccount,
|
|
14
|
-
|
|
15
|
-
g as
|
|
16
|
-
f as
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
d as useExportSolanaAccount,
|
|
15
|
+
g as useGetAccessToken,
|
|
16
|
+
f as useIsInitialized,
|
|
17
|
+
l as useIsSignedIn,
|
|
18
|
+
p as useSendEvmTransaction,
|
|
19
|
+
v as useSendSolanaTransaction,
|
|
20
|
+
T as useSendUserOperation,
|
|
21
|
+
A as useSignEvmHash,
|
|
22
|
+
I as useSignEvmMessage,
|
|
23
|
+
x as useSignEvmTransaction,
|
|
23
24
|
P as useSignEvmTypedData,
|
|
24
25
|
h as useSignInWithEmail,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
C as useSignInWithSms,
|
|
27
|
+
O as useSignOut,
|
|
28
|
+
U as useSignSolanaMessage,
|
|
29
|
+
y as useSignSolanaTransaction,
|
|
30
|
+
D as useSolanaAddress,
|
|
31
|
+
W as useVerifyEmailOTP,
|
|
32
|
+
k as useVerifySmsOTP,
|
|
33
|
+
H as useWaitForUserOperation
|
|
32
34
|
};
|
package/dist/esm/index3.js
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { getAccessToken as
|
|
2
|
-
import { useState as u, useEffect as f, useMemo as
|
|
1
|
+
import { getAccessToken as A, sendUserOperation as y, signInWithEmail as O, signInWithSms as I, verifyEmailOTP as U, verifySmsOTP as P, signOut as x, signEvmHash as M, signEvmTransaction as k, sendEvmTransaction as C, signEvmMessage as W, signSolanaMessage as H, signEvmTypedData as b, exportEvmAccount as D, exportSolanaAccount as V, signSolanaTransaction as F, sendSolanaTransaction as z, getUserOperation as G } from "@coinbase/cdp-core";
|
|
2
|
+
import { useState as u, useEffect as f, useMemo as j, useCallback as h } from "react";
|
|
3
3
|
import { useCDP as p } from "./index2.js";
|
|
4
|
-
import { useAutoPolling as
|
|
5
|
-
import { getPublicClient as
|
|
6
|
-
const
|
|
4
|
+
import { useAutoPolling as q } from "./index4.js";
|
|
5
|
+
import { getPublicClient as B } from "./index5.js";
|
|
6
|
+
const Y = () => {
|
|
7
7
|
const { config: n } = p();
|
|
8
8
|
return { config: n };
|
|
9
|
-
},
|
|
9
|
+
}, Z = () => {
|
|
10
10
|
const { isInitialized: n } = p();
|
|
11
11
|
return { isInitialized: n };
|
|
12
|
-
},
|
|
12
|
+
}, _ = () => ({ signInWithEmail: g(O) }), $ = () => ({ signInWithSms: g(I) }), R = () => ({ verifyEmailOTP: g(U) }), nn = () => ({ verifySmsOTP: g(P) }), en = () => {
|
|
13
13
|
const { isSignedIn: n } = p();
|
|
14
14
|
return { isSignedIn: n };
|
|
15
15
|
}, w = () => {
|
|
16
16
|
const { currentUser: n } = p();
|
|
17
17
|
return { currentUser: n };
|
|
18
|
-
},
|
|
18
|
+
}, tn = () => ({ signOut: o(x) }), sn = () => ({ getAccessToken: A }), rn = () => {
|
|
19
19
|
const { currentUser: n } = w();
|
|
20
20
|
return {
|
|
21
21
|
evmAddress: n?.evmSmartAccounts?.[0] ?? n?.evmAccounts?.[0] ?? null
|
|
22
22
|
};
|
|
23
|
-
},
|
|
23
|
+
}, an = () => {
|
|
24
24
|
const { currentUser: n } = w();
|
|
25
25
|
return {
|
|
26
26
|
solanaAddress: n?.solanaAccounts?.[0] ?? null
|
|
27
27
|
};
|
|
28
|
-
},
|
|
29
|
-
const [n, e] = u(null), [
|
|
30
|
-
async (
|
|
31
|
-
const
|
|
32
|
-
return e({ hash:
|
|
28
|
+
}, on = () => ({ signEvmHash: o(M) }), cn = () => ({ signEvmTransaction: o(k) }), un = () => {
|
|
29
|
+
const [n, e] = u(null), [r, t] = u(null), [c, S] = u(null), { config: a } = p(), d = o(
|
|
30
|
+
async (m) => {
|
|
31
|
+
const i = await C(m);
|
|
32
|
+
return e({ hash: i.transactionHash, network: m.network }), S(null), t(null), i;
|
|
33
33
|
}
|
|
34
34
|
);
|
|
35
35
|
f(() => {
|
|
36
36
|
if (!n) return;
|
|
37
37
|
(async () => {
|
|
38
38
|
try {
|
|
39
|
-
const E = await
|
|
39
|
+
const E = await B(n.network, a).waitForTransactionReceipt({
|
|
40
40
|
hash: n.hash
|
|
41
41
|
});
|
|
42
42
|
t(E);
|
|
43
|
-
} catch (
|
|
44
|
-
|
|
43
|
+
} catch (i) {
|
|
44
|
+
S(i instanceof Error ? i : new Error(String(i)));
|
|
45
45
|
}
|
|
46
46
|
})();
|
|
47
47
|
}, [n]);
|
|
48
|
-
const
|
|
48
|
+
const l = j(() => n ? r ? { status: "success", receipt: r } : c ? { status: "error", error: c } : { status: "pending", hash: n.hash } : { status: "idle" }, [n, r, c]);
|
|
49
49
|
return {
|
|
50
50
|
sendEvmTransaction: d,
|
|
51
|
-
data:
|
|
51
|
+
data: l
|
|
52
52
|
};
|
|
53
|
-
},
|
|
54
|
-
sendSolanaTransaction:
|
|
55
|
-
}),
|
|
53
|
+
}, pn = () => ({ signEvmMessage: o(W) }), dn = () => ({ signSolanaMessage: o(H) }), ln = () => ({ signEvmTypedData: o(b) }), Sn = () => ({ exportEvmAccount: o(D) }), mn = () => ({ exportSolanaAccount: o(V) }), gn = () => ({ signSolanaTransaction: o(F) }), En = () => ({
|
|
54
|
+
sendSolanaTransaction: o(z)
|
|
55
|
+
}), o = (n) => {
|
|
56
56
|
const { isSignedIn: e } = p();
|
|
57
57
|
return h(
|
|
58
58
|
async (...t) => {
|
|
@@ -62,7 +62,7 @@ const Q = () => {
|
|
|
62
62
|
},
|
|
63
63
|
[e, n]
|
|
64
64
|
);
|
|
65
|
-
},
|
|
65
|
+
}, g = (n) => {
|
|
66
66
|
const { isSignedIn: e } = p();
|
|
67
67
|
return h(
|
|
68
68
|
async (...t) => {
|
|
@@ -72,12 +72,12 @@ const Q = () => {
|
|
|
72
72
|
},
|
|
73
73
|
[e, n]
|
|
74
74
|
);
|
|
75
|
-
},
|
|
76
|
-
const [n, e] = u(void 0), { status:
|
|
75
|
+
}, wn = () => {
|
|
76
|
+
const [n, e] = u(void 0), { status: r, data: t, error: c } = J(n);
|
|
77
77
|
return {
|
|
78
|
-
sendUserOperation:
|
|
78
|
+
sendUserOperation: o(
|
|
79
79
|
async (a) => {
|
|
80
|
-
const d = await
|
|
80
|
+
const d = await y(a);
|
|
81
81
|
return e({
|
|
82
82
|
userOperationHash: d.userOperationHash,
|
|
83
83
|
evmSmartAccount: a.evmSmartAccount,
|
|
@@ -87,69 +87,71 @@ const Q = () => {
|
|
|
87
87
|
),
|
|
88
88
|
data: t,
|
|
89
89
|
error: c,
|
|
90
|
-
status:
|
|
90
|
+
status: r
|
|
91
91
|
};
|
|
92
|
-
},
|
|
93
|
-
const { userOperationHash: e, evmSmartAccount:
|
|
92
|
+
}, J = (n = {}) => {
|
|
93
|
+
const { userOperationHash: e, evmSmartAccount: r, network: t, enabled: c } = n, [S, a] = u("idle"), [d, l] = u(void 0), [m, i] = u(void 0), { currentUser: E } = w();
|
|
94
94
|
f(() => {
|
|
95
|
-
e &&
|
|
96
|
-
}, [e,
|
|
97
|
-
const v = c !== !1 && !!(e &&
|
|
98
|
-
return
|
|
95
|
+
e && r && t && (a(c !== !1 ? "pending" : "idle"), l(void 0), i(void 0));
|
|
96
|
+
}, [e, r, t, c]);
|
|
97
|
+
const v = c !== !1 && !!(e && r && t && E);
|
|
98
|
+
return q(
|
|
99
99
|
{
|
|
100
100
|
pollFn: async () => {
|
|
101
|
-
const
|
|
101
|
+
const s = await G({
|
|
102
102
|
userOperationHash: e,
|
|
103
|
-
evmSmartAccount:
|
|
103
|
+
evmSmartAccount: r,
|
|
104
104
|
network: t
|
|
105
105
|
});
|
|
106
|
-
return
|
|
106
|
+
return l(s), s;
|
|
107
107
|
},
|
|
108
|
-
shouldStop: (
|
|
108
|
+
shouldStop: (s) => s.status === "complete" || s.status === "dropped" || s.status === "failed",
|
|
109
109
|
enabled: v,
|
|
110
|
-
onSuccess: (
|
|
111
|
-
if (
|
|
112
|
-
|
|
113
|
-
else if (
|
|
114
|
-
const T =
|
|
115
|
-
|
|
110
|
+
onSuccess: (s) => {
|
|
111
|
+
if (s.status === "complete")
|
|
112
|
+
l(s), a("success");
|
|
113
|
+
else if (s.status === "failed") {
|
|
114
|
+
const T = s.receipts?.[0]?.revert?.message || "User operation failed";
|
|
115
|
+
i(new Error(T)), a("error");
|
|
116
116
|
} else
|
|
117
|
-
|
|
117
|
+
l(s), a("error");
|
|
118
118
|
},
|
|
119
|
-
onError: (
|
|
120
|
-
|
|
119
|
+
onError: (s) => {
|
|
120
|
+
i(s), a("error");
|
|
121
121
|
}
|
|
122
122
|
},
|
|
123
|
-
[e,
|
|
123
|
+
[e, r, t, v]
|
|
124
124
|
), {
|
|
125
|
-
status:
|
|
125
|
+
status: S,
|
|
126
126
|
data: d,
|
|
127
|
-
error:
|
|
127
|
+
error: m
|
|
128
128
|
};
|
|
129
129
|
};
|
|
130
130
|
export {
|
|
131
|
-
|
|
131
|
+
Y as useConfig,
|
|
132
132
|
w as useCurrentUser,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
133
|
+
o as useEnforceAuthenticated,
|
|
134
|
+
g as useEnforceUnauthenticated,
|
|
135
|
+
rn as useEvmAddress,
|
|
136
|
+
Sn as useExportEvmAccount,
|
|
137
|
+
mn as useExportSolanaAccount,
|
|
138
|
+
sn as useGetAccessToken,
|
|
139
|
+
Z as useIsInitialized,
|
|
140
|
+
en as useIsSignedIn,
|
|
141
|
+
un as useSendEvmTransaction,
|
|
142
|
+
En as useSendSolanaTransaction,
|
|
143
|
+
wn as useSendUserOperation,
|
|
144
|
+
on as useSignEvmHash,
|
|
145
|
+
pn as useSignEvmMessage,
|
|
146
|
+
cn as useSignEvmTransaction,
|
|
147
|
+
ln as useSignEvmTypedData,
|
|
148
|
+
_ as useSignInWithEmail,
|
|
149
|
+
$ as useSignInWithSms,
|
|
150
|
+
tn as useSignOut,
|
|
151
|
+
dn as useSignSolanaMessage,
|
|
152
|
+
gn as useSignSolanaTransaction,
|
|
153
|
+
an as useSolanaAddress,
|
|
154
|
+
R as useVerifyEmailOTP,
|
|
155
|
+
nn as useVerifySmsOTP,
|
|
156
|
+
J as useWaitForUserOperation
|
|
155
157
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ import { EIP712TypedData } from '@coinbase/cdp-core';
|
|
|
9
9
|
import { EvmAddress } from '@coinbase/cdp-core';
|
|
10
10
|
import { ExportEvmAccountOptions } from '@coinbase/cdp-core';
|
|
11
11
|
import { ExportEvmAccountResult } from '@coinbase/cdp-core';
|
|
12
|
+
import { ExportSolanaAccountOptions } from '@coinbase/cdp-core';
|
|
13
|
+
import { ExportSolanaAccountResult } from '@coinbase/cdp-core';
|
|
12
14
|
import { GetUserOperationResult } from '@coinbase/cdp-core';
|
|
13
15
|
import { Hex } from '@coinbase/cdp-core';
|
|
14
16
|
import { JSX } from 'react/jsx-runtime';
|
|
@@ -32,6 +34,8 @@ import { SignInWithEmailOptions } from '@coinbase/cdp-core';
|
|
|
32
34
|
import { SignInWithEmailResult } from '@coinbase/cdp-core';
|
|
33
35
|
import { SignInWithSmsOptions } from '@coinbase/cdp-core';
|
|
34
36
|
import { SignInWithSmsResult } from '@coinbase/cdp-core';
|
|
37
|
+
import { SignSolanaMessageOptions } from '@coinbase/cdp-core';
|
|
38
|
+
import { SignSolanaMessageResult } from '@coinbase/cdp-core';
|
|
35
39
|
import { SignSolanaTransactionOptions } from '@coinbase/cdp-core';
|
|
36
40
|
import { SignSolanaTransactionResult } from '@coinbase/cdp-core';
|
|
37
41
|
import { SolanaAddress } from '@coinbase/cdp-core';
|
|
@@ -77,6 +81,10 @@ export { ExportEvmAccountOptions }
|
|
|
77
81
|
|
|
78
82
|
export { ExportEvmAccountResult }
|
|
79
83
|
|
|
84
|
+
export { ExportSolanaAccountOptions }
|
|
85
|
+
|
|
86
|
+
export { ExportSolanaAccountResult }
|
|
87
|
+
|
|
80
88
|
export { GetUserOperationResult }
|
|
81
89
|
|
|
82
90
|
export { Hex }
|
|
@@ -140,6 +148,10 @@ export declare const useExportEvmAccount: () => {
|
|
|
140
148
|
exportEvmAccount: (options: ExportEvmAccountOptions) => Promise<ExportEvmAccountResult>;
|
|
141
149
|
};
|
|
142
150
|
|
|
151
|
+
export declare const useExportSolanaAccount: () => {
|
|
152
|
+
exportSolanaAccount: (options: ExportSolanaAccountOptions) => Promise<ExportSolanaAccountResult>;
|
|
153
|
+
};
|
|
154
|
+
|
|
143
155
|
export declare const useGetAccessToken: () => {
|
|
144
156
|
getAccessToken: () => Promise<string | null>;
|
|
145
157
|
};
|
|
@@ -200,6 +212,10 @@ export declare const useSignOut: () => {
|
|
|
200
212
|
signOut: () => Promise<void>;
|
|
201
213
|
};
|
|
202
214
|
|
|
215
|
+
export declare const useSignSolanaMessage: () => {
|
|
216
|
+
signSolanaMessage: (options: SignSolanaMessageOptions) => Promise<SignSolanaMessageResult>;
|
|
217
|
+
};
|
|
218
|
+
|
|
203
219
|
export declare const useSignSolanaTransaction: () => {
|
|
204
220
|
signSolanaTransaction: (options: SignSolanaTransactionOptions) => Promise<SignSolanaTransactionResult>;
|
|
205
221
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cdp-hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.37",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
16
|
"react": ">=18.2.0",
|
|
17
|
-
"@coinbase/cdp-core": "^0.0.
|
|
17
|
+
"@coinbase/cdp-core": "^0.0.37"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@testing-library/jest-dom": "^6.6.3",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@size-limit/webpack": "^11.2.0",
|
|
30
30
|
"@size-limit/webpack-why": "^11.2.0",
|
|
31
31
|
"size-limit": "^11.2.0",
|
|
32
|
-
"@coinbase/cdp-core": "^0.0.
|
|
32
|
+
"@coinbase/cdp-core": "^0.0.37"
|
|
33
33
|
},
|
|
34
34
|
"size-limit": [
|
|
35
35
|
{
|