@coinbase/cdp-core 0.0.32 → 0.0.34
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 +74 -8
- package/dist/esm/index.native.js +41 -36
- package/dist/esm/index.native10.js +115 -21
- package/dist/esm/index.native100.js +6 -9
- package/dist/esm/index.native101.js +11 -13
- package/dist/esm/index.native102.js +11 -8
- package/dist/esm/index.native103.js +7 -14
- package/dist/esm/index.native104.js +16 -80
- package/dist/esm/index.native105.js +79 -11
- package/dist/esm/index.native106.js +12 -35
- package/dist/esm/index.native107.js +35 -41
- package/dist/esm/index.native108.js +38 -75
- package/dist/esm/index.native109.js +81 -0
- package/dist/esm/index.native11.js +20 -30
- package/dist/esm/index.native12.js +30 -7
- package/dist/esm/index.native13.js +9 -15
- package/dist/esm/index.native14.js +15 -15
- package/dist/esm/index.native15.js +15 -116
- package/dist/esm/index.native16.js +116 -11
- package/dist/esm/index.native17.js +15 -42
- package/dist/esm/index.native18.js +42 -20
- package/dist/esm/index.native19.js +20 -172
- package/dist/esm/index.native2.js +3 -3
- package/dist/esm/index.native20.js +170 -39
- package/dist/esm/index.native21.js +41 -49
- package/dist/esm/index.native22.js +47 -70
- package/dist/esm/index.native23.js +69 -23
- package/dist/esm/index.native24.js +22 -156
- package/dist/esm/index.native25.js +157 -45
- package/dist/esm/index.native26.js +43 -245
- package/dist/esm/index.native27.js +247 -53
- package/dist/esm/index.native28.js +56 -17
- package/dist/esm/index.native29.js +15 -21
- package/dist/esm/index.native3.js +40 -30
- package/dist/esm/index.native30.js +21 -49
- package/dist/esm/index.native31.js +50 -8
- package/dist/esm/index.native32.js +8 -17
- package/dist/esm/index.native33.js +16 -44
- package/dist/esm/index.native34.js +45 -13
- package/dist/esm/index.native35.js +13 -55
- package/dist/esm/index.native36.js +55 -6
- package/dist/esm/index.native37.js +6 -21
- package/dist/esm/index.native38.js +21 -11
- package/dist/esm/index.native39.js +11 -3
- package/dist/esm/index.native4.js +67 -21
- package/dist/esm/index.native40.js +3 -3
- package/dist/esm/index.native41.js +3 -34
- package/dist/esm/index.native42.js +32 -10
- package/dist/esm/index.native43.js +12 -4
- package/dist/esm/index.native44.js +4 -28
- package/dist/esm/index.native45.js +28 -6
- package/dist/esm/index.native46.js +6 -24
- package/dist/esm/index.native47.js +24 -16
- package/dist/esm/index.native48.js +16 -54
- package/dist/esm/index.native49.js +53 -22
- package/dist/esm/index.native5.js +21 -254
- package/dist/esm/index.native50.js +23 -11
- package/dist/esm/index.native51.js +10 -26
- package/dist/esm/index.native52.js +26 -41
- package/dist/esm/index.native53.js +41 -54
- package/dist/esm/index.native54.js +54 -126
- package/dist/esm/index.native55.js +126 -11
- package/dist/esm/index.native56.js +9 -101
- package/dist/esm/index.native57.js +104 -6
- package/dist/esm/index.native58.js +7 -3
- package/dist/esm/index.native59.js +3 -15
- package/dist/esm/index.native6.js +314 -174
- package/dist/esm/index.native60.js +14 -42
- package/dist/esm/index.native61.js +38 -74
- package/dist/esm/index.native62.js +79 -2
- package/dist/esm/index.native63.js +2 -2
- package/dist/esm/index.native64.js +2 -13
- package/dist/esm/index.native65.js +8 -33
- package/dist/esm/index.native66.js +36 -5
- package/dist/esm/index.native67.js +5 -33
- package/dist/esm/index.native68.js +34 -8
- package/dist/esm/index.native69.js +8 -10
- package/dist/esm/index.native7.js +213 -115
- package/dist/esm/index.native70.js +10 -11
- package/dist/esm/index.native71.js +11 -13
- package/dist/esm/index.native72.js +13 -18
- package/dist/esm/index.native73.js +18 -5
- package/dist/esm/index.native74.js +6 -5
- package/dist/esm/index.native75.js +5 -11
- package/dist/esm/index.native76.js +10 -54
- package/dist/esm/index.native77.js +54 -10
- package/dist/esm/index.native78.js +11 -2
- package/dist/esm/index.native79.js +2 -45
- package/dist/esm/index.native8.js +115 -137
- package/dist/esm/index.native80.js +44 -13
- package/dist/esm/index.native81.js +14 -2
- package/dist/esm/index.native82.js +2 -21
- package/dist/esm/index.native83.js +18 -17
- package/dist/esm/index.native84.js +20 -80
- package/dist/esm/index.native85.js +79 -103
- package/dist/esm/index.native86.js +101 -30
- package/dist/esm/index.native87.js +32 -6
- package/dist/esm/index.native88.js +6 -78
- package/dist/esm/index.native89.js +2 -2
- package/dist/esm/index.native9.js +138 -113
- package/dist/esm/index.native90.js +3 -3
- package/dist/esm/index.native92.js +3 -3
- package/dist/esm/index.native93.js +1 -1
- package/dist/esm/index.native94.js +3 -3
- package/dist/esm/index.native95.js +79 -10
- package/dist/esm/index.native96.js +10 -5
- package/dist/esm/index.native97.js +5 -18
- package/dist/esm/index.native98.js +18 -28
- package/dist/esm/index.native99.js +26 -6
- package/dist/esm/index.web.js +41 -38
- package/dist/esm/index.web100.js +13 -28
- package/dist/esm/index.web101.js +10 -8
- package/dist/esm/index.web102.js +17 -11
- package/dist/esm/index.web103.js +80 -12
- package/dist/esm/index.web104.js +13 -10
- package/dist/esm/index.web105.js +36 -17
- package/dist/esm/index.web106.js +40 -79
- package/dist/esm/index.web12.js +6 -5
- package/dist/esm/index.web13.js +12 -10
- package/dist/esm/index.web15.js +1 -0
- package/dist/esm/index.web26.js +1 -1
- package/dist/esm/index.web5.js +217 -141
- package/dist/esm/index.web6.js +65 -38
- package/dist/esm/index.web75.js +6 -6
- package/dist/esm/index.web84.js +1 -1
- package/dist/esm/index.web87.js +21 -10
- package/dist/esm/index.web88.js +10 -79
- package/dist/esm/index.web89.js +19 -20
- package/dist/esm/index.web90.js +93 -9
- package/dist/esm/index.web91.js +19 -18
- package/dist/esm/index.web92.js +105 -81
- package/dist/esm/index.web93.js +9 -20
- package/dist/esm/index.web94.js +73 -112
- package/dist/esm/index.web96.js +18 -13
- package/dist/esm/index.web97.js +27 -35
- package/dist/esm/index.web98.js +7 -41
- package/dist/esm/index.web99.js +11 -18
- package/dist/native/index.native.js +41 -36
- package/dist/native/index.native10.js +115 -21
- package/dist/native/index.native100.js +6 -9
- package/dist/native/index.native101.js +11 -13
- package/dist/native/index.native102.js +11 -8
- package/dist/native/index.native103.js +7 -14
- package/dist/native/index.native104.js +16 -80
- package/dist/native/index.native105.js +79 -11
- package/dist/native/index.native106.js +12 -35
- package/dist/native/index.native107.js +35 -41
- package/dist/native/index.native108.js +38 -75
- package/dist/native/index.native109.js +81 -0
- package/dist/native/index.native11.js +20 -30
- package/dist/native/index.native12.js +30 -7
- package/dist/native/index.native13.js +9 -15
- package/dist/native/index.native14.js +15 -15
- package/dist/native/index.native15.js +15 -116
- package/dist/native/index.native16.js +116 -11
- package/dist/native/index.native17.js +15 -42
- package/dist/native/index.native18.js +42 -20
- package/dist/native/index.native19.js +20 -172
- package/dist/native/index.native2.js +3 -3
- package/dist/native/index.native20.js +170 -39
- package/dist/native/index.native21.js +41 -49
- package/dist/native/index.native22.js +47 -70
- package/dist/native/index.native23.js +69 -23
- package/dist/native/index.native24.js +22 -156
- package/dist/native/index.native25.js +157 -45
- package/dist/native/index.native26.js +43 -245
- package/dist/native/index.native27.js +247 -53
- package/dist/native/index.native28.js +56 -17
- package/dist/native/index.native29.js +15 -21
- package/dist/native/index.native3.js +40 -30
- package/dist/native/index.native30.js +21 -49
- package/dist/native/index.native31.js +50 -8
- package/dist/native/index.native32.js +8 -17
- package/dist/native/index.native33.js +16 -44
- package/dist/native/index.native34.js +45 -13
- package/dist/native/index.native35.js +13 -55
- package/dist/native/index.native36.js +55 -6
- package/dist/native/index.native37.js +6 -21
- package/dist/native/index.native38.js +21 -11
- package/dist/native/index.native39.js +11 -3
- package/dist/native/index.native4.js +67 -21
- package/dist/native/index.native40.js +3 -3
- package/dist/native/index.native41.js +3 -34
- package/dist/native/index.native42.js +32 -10
- package/dist/native/index.native43.js +12 -4
- package/dist/native/index.native44.js +4 -28
- package/dist/native/index.native45.js +28 -6
- package/dist/native/index.native46.js +6 -24
- package/dist/native/index.native47.js +24 -16
- package/dist/native/index.native48.js +16 -54
- package/dist/native/index.native49.js +53 -22
- package/dist/native/index.native5.js +21 -254
- package/dist/native/index.native50.js +23 -11
- package/dist/native/index.native51.js +10 -26
- package/dist/native/index.native52.js +26 -41
- package/dist/native/index.native53.js +41 -54
- package/dist/native/index.native54.js +54 -126
- package/dist/native/index.native55.js +126 -11
- package/dist/native/index.native56.js +9 -101
- package/dist/native/index.native57.js +104 -6
- package/dist/native/index.native58.js +7 -3
- package/dist/native/index.native59.js +3 -15
- package/dist/native/index.native6.js +314 -174
- package/dist/native/index.native60.js +14 -42
- package/dist/native/index.native61.js +38 -74
- package/dist/native/index.native62.js +79 -2
- package/dist/native/index.native63.js +2 -2
- package/dist/native/index.native64.js +2 -13
- package/dist/native/index.native65.js +8 -33
- package/dist/native/index.native66.js +36 -5
- package/dist/native/index.native67.js +5 -33
- package/dist/native/index.native68.js +34 -8
- package/dist/native/index.native69.js +8 -10
- package/dist/native/index.native7.js +213 -115
- package/dist/native/index.native70.js +10 -11
- package/dist/native/index.native71.js +11 -13
- package/dist/native/index.native72.js +13 -18
- package/dist/native/index.native73.js +18 -5
- package/dist/native/index.native74.js +6 -5
- package/dist/native/index.native75.js +5 -11
- package/dist/native/index.native76.js +10 -54
- package/dist/native/index.native77.js +54 -10
- package/dist/native/index.native78.js +11 -2
- package/dist/native/index.native79.js +2 -45
- package/dist/native/index.native8.js +115 -137
- package/dist/native/index.native80.js +44 -13
- package/dist/native/index.native81.js +14 -2
- package/dist/native/index.native82.js +2 -21
- package/dist/native/index.native83.js +18 -17
- package/dist/native/index.native84.js +20 -80
- package/dist/native/index.native85.js +79 -103
- package/dist/native/index.native86.js +101 -30
- package/dist/native/index.native87.js +32 -6
- package/dist/native/index.native88.js +6 -78
- package/dist/native/index.native89.js +2 -2
- package/dist/native/index.native9.js +138 -113
- package/dist/native/index.native90.js +3 -3
- package/dist/native/index.native92.js +3 -3
- package/dist/native/index.native93.js +1 -1
- package/dist/native/index.native94.js +3 -3
- package/dist/native/index.native95.js +79 -10
- package/dist/native/index.native96.js +10 -5
- package/dist/native/index.native97.js +5 -18
- package/dist/native/index.native98.js +18 -28
- package/dist/native/index.native99.js +26 -6
- package/dist/native-types/auth/authManager.d.ts +3 -0
- package/dist/native-types/auth/withAuth.d.ts +3 -1
- package/dist/native-types/core.d.ts +3 -1
- package/dist/native-types/platform/native/secureStorage.d.ts +2 -0
- package/dist/native-types/platform/types.d.ts +7 -0
- package/dist/native-types/types.d.ts +20 -3
- package/dist/types/auth/authManager.d.ts +3 -0
- package/dist/types/auth/withAuth.d.ts +3 -1
- package/dist/types/core.d.ts +3 -1
- package/dist/types/platform/native/secureStorage.d.ts +2 -0
- package/dist/types/platform/types.d.ts +7 -0
- package/dist/types/types.d.ts +20 -3
- package/dist/web/index.web.js +41 -38
- package/dist/web/index.web100.js +13 -28
- package/dist/web/index.web101.js +10 -8
- package/dist/web/index.web102.js +17 -11
- package/dist/web/index.web103.js +80 -12
- package/dist/web/index.web104.js +13 -10
- package/dist/web/index.web105.js +36 -17
- package/dist/web/index.web106.js +40 -79
- package/dist/web/index.web12.js +6 -5
- package/dist/web/index.web13.js +12 -10
- package/dist/web/index.web15.js +1 -0
- package/dist/web/index.web26.js +1 -1
- package/dist/web/index.web5.js +217 -141
- package/dist/web/index.web6.js +65 -38
- package/dist/web/index.web75.js +6 -6
- package/dist/web/index.web84.js +1 -1
- package/dist/web/index.web87.js +21 -10
- package/dist/web/index.web88.js +10 -79
- package/dist/web/index.web89.js +19 -20
- package/dist/web/index.web90.js +93 -9
- package/dist/web/index.web91.js +19 -18
- package/dist/web/index.web92.js +105 -81
- package/dist/web/index.web93.js +9 -20
- package/dist/web/index.web94.js +73 -112
- package/dist/web/index.web96.js +18 -13
- package/dist/web/index.web97.js +27 -35
- package/dist/web/index.web98.js +7 -41
- package/dist/web/index.web99.js +11 -18
- package/dist/web-types/auth/authManager.d.ts +3 -0
- package/dist/web-types/auth/withAuth.d.ts +3 -1
- package/dist/web-types/core.d.ts +3 -1
- package/dist/web-types/platform/native/secureStorage.d.ts +2 -0
- package/dist/web-types/platform/types.d.ts +7 -0
- package/dist/web-types/types.d.ts +20 -3
- package/package.json +8 -4
package/README.md
CHANGED
|
@@ -48,10 +48,11 @@ const config: Config = {
|
|
|
48
48
|
await initialize(config);
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
####
|
|
51
|
+
#### Account Configuration
|
|
52
52
|
|
|
53
|
-
You can configure the SDK to
|
|
53
|
+
You can configure the SDK to create different types of accounts for new users:
|
|
54
54
|
|
|
55
|
+
**Smart Account Configuration:**
|
|
55
56
|
```ts lines
|
|
56
57
|
const config: Config = {
|
|
57
58
|
projectId: "your-project-id",
|
|
@@ -66,6 +67,20 @@ When `createAccountOnLogin` is set to `"evm-smart"`, the SDK will:
|
|
|
66
67
|
2. Use that EOA as the owner to create a Smart Account
|
|
67
68
|
3. Both accounts will be available on the user object
|
|
68
69
|
|
|
70
|
+
**Solana Account Configuration:**
|
|
71
|
+
```ts lines
|
|
72
|
+
const config: Config = {
|
|
73
|
+
projectId: "your-project-id",
|
|
74
|
+
createAccountOnLogin: "solana", // Creates Solana accounts instead of EVM accounts
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await initialize(config);
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
When `createAccountOnLogin` is set to `"solana"`, the SDK will:
|
|
81
|
+
1. Create a Solana account for new users
|
|
82
|
+
2. The Solana account will be available on the `solanaAccounts` property
|
|
83
|
+
|
|
69
84
|
### Sign In a User
|
|
70
85
|
|
|
71
86
|
You're now ready to start calling the APIs provided by the package!
|
|
@@ -102,17 +117,27 @@ if (signedIn) {
|
|
|
102
117
|
// Get the user's information
|
|
103
118
|
const user = await getCurrentUser();
|
|
104
119
|
console.log("User ID:", user.userId);
|
|
105
|
-
|
|
106
|
-
|
|
120
|
+
|
|
121
|
+
// Display different account types based on configuration
|
|
122
|
+
if (user.evmAccounts?.length > 0) {
|
|
123
|
+
console.log("EVM Accounts (EOAs):", user.evmAccounts);
|
|
124
|
+
}
|
|
125
|
+
if (user.evmSmartAccounts?.length > 0) {
|
|
126
|
+
console.log("EVM Smart Accounts:", user.evmSmartAccounts);
|
|
127
|
+
}
|
|
128
|
+
if (user.solanaAccounts?.length > 0) {
|
|
129
|
+
console.log("Solana Accounts:", user.solanaAccounts);
|
|
130
|
+
}
|
|
107
131
|
|
|
108
132
|
// Find the user's email address (if they logged in with email/otp)
|
|
109
133
|
const email = user.authenticationMethods.email?.email;
|
|
110
|
-
console.log("Email Address"
|
|
134
|
+
console.log("Email Address:", email);
|
|
111
135
|
}
|
|
112
136
|
```
|
|
113
137
|
|
|
114
|
-
### Send
|
|
115
|
-
|
|
138
|
+
### Send an EVM Transaction
|
|
139
|
+
|
|
140
|
+
We support signing and sending an EVM transaction in a single call on the following networks:
|
|
116
141
|
- Base
|
|
117
142
|
- Base Sepolia
|
|
118
143
|
- Ethereum
|
|
@@ -145,7 +170,7 @@ const result = await sendEvmTransaction({
|
|
|
145
170
|
console.log("Transaction Hash:", result.transactionHash);
|
|
146
171
|
```
|
|
147
172
|
|
|
148
|
-
For networks other than those supported by the CDP APIs, your end user must sign the transaction, and then
|
|
173
|
+
For EVM networks other than those supported by the CDP APIs, your end user must sign the transaction, and then
|
|
149
174
|
you must broadcast the transaction yourself. This example uses the public client from `viem` to broadcast the transaction.
|
|
150
175
|
|
|
151
176
|
```typescript lines
|
|
@@ -186,6 +211,47 @@ const hash = await client.sendRawTransaction({
|
|
|
186
211
|
|
|
187
212
|
Smart Accounts provide advanced account abstraction features, including user operations and paymaster support.
|
|
188
213
|
|
|
214
|
+
### Sign a Solana Transaction
|
|
215
|
+
|
|
216
|
+
When your application is configured with `createAccountOnLogin: "solana"`, you can sign Solana transactions:
|
|
217
|
+
|
|
218
|
+
```typescript lines
|
|
219
|
+
import { signSolanaTransaction, getCurrentUser } from "@coinbase/cdp-core";
|
|
220
|
+
|
|
221
|
+
const user = await getCurrentUser();
|
|
222
|
+
const solanaAccount = user.solanaAccounts[0];
|
|
223
|
+
|
|
224
|
+
const result = await signSolanaTransaction({
|
|
225
|
+
solanaAccount,
|
|
226
|
+
transaction: "base64-encoded-solana-transaction" // Your Solana transaction here
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
console.log("Signed Transaction:", result.signedTransaction);
|
|
230
|
+
// The signedTransaction can now be broadcast to the Solana network
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Send a Solana Transaction
|
|
234
|
+
|
|
235
|
+
You can sign and send a Solana transaction in a single call on the following Solana networks:
|
|
236
|
+
- Solana Mainnet
|
|
237
|
+
- Solana Devnet
|
|
238
|
+
|
|
239
|
+
```typescript lines
|
|
240
|
+
import { sendSolanaTransaction, getCurrentUser } from "@coinbase/cdp-core";
|
|
241
|
+
|
|
242
|
+
const user = await getCurrentUser();
|
|
243
|
+
const solanaAccount = user.solanaAccounts[0];
|
|
244
|
+
|
|
245
|
+
const result = await sendSolanaTransaction({
|
|
246
|
+
solanaAccount,
|
|
247
|
+
network: "solana-devnet", // or "solana" for mainnet
|
|
248
|
+
transaction: "base64-encoded-solana-transaction" // Your Solana transaction here
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
console.log("Transaction Signature:", result.transactionSignature);
|
|
252
|
+
// The transaction has been broadcast to the Solana network
|
|
253
|
+
```
|
|
254
|
+
|
|
189
255
|
#### Send User Operations
|
|
190
256
|
|
|
191
257
|
Send user operations from a Smart Account:
|
package/dist/esm/index.native.js
CHANGED
|
@@ -1,47 +1,52 @@
|
|
|
1
1
|
import { nativeCrypto as r } from "./index.native2.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { nativeSecureStorage as o } from "./index.native3.js";
|
|
3
|
+
import { nativeStorage as e } from "./index.native4.js";
|
|
4
|
+
import { setPlatformServices as t } from "./index.native5.js";
|
|
5
|
+
import { exportEvmAccount as d, getAccessToken as S, getCurrentUser as f, getUserOperation as v, initialize as T, isSignedIn as u, onAuthStateChange as l, sendEvmTransaction as A, sendSolanaTransaction as y, sendUserOperation as h, signEvmHash as x, signEvmMessage as O, signEvmTransaction as P, signEvmTypedData as C, signInWithEmail as D, signInWithSms as I, signOut as R, signSolanaTransaction as U, verifyEmailOTP as W, verifySmsOTP as k } from "./index.native6.js";
|
|
6
|
+
import { AuthManager as N } from "./index.native7.js";
|
|
7
|
+
import { APIError as B, ErrorType as H, HttpErrorType as _, SendEvmTransactionWithEndUserAccountBodyNetwork as b, SendSolanaTransactionWithEndUserAccountBodyNetwork as z } from "@coinbase/cdp-api-client";
|
|
7
8
|
import "viem";
|
|
8
|
-
import { createCDPEmbeddedWallet as
|
|
9
|
-
import { EIP1193ProviderError as
|
|
9
|
+
import { createCDPEmbeddedWallet as j } from "./index.native8.js";
|
|
10
|
+
import { EIP1193ProviderError as F, STANDARD_ERROR_CODES as G } from "./index.native9.js";
|
|
10
11
|
import "ox";
|
|
11
12
|
import "zustand";
|
|
12
|
-
import { toViemAccount as
|
|
13
|
-
import { ModuleResolutionError as
|
|
14
|
-
|
|
13
|
+
import { toViemAccount as K } from "./index.native10.js";
|
|
14
|
+
import { ModuleResolutionError as Q } from "./index.native11.js";
|
|
15
|
+
t({
|
|
15
16
|
crypto: r,
|
|
16
|
-
storage: e
|
|
17
|
+
storage: e,
|
|
18
|
+
secureStorage: o
|
|
17
19
|
});
|
|
18
20
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
B as APIError,
|
|
22
|
+
N as AuthManager,
|
|
23
|
+
F as EIP1193ProviderError,
|
|
24
|
+
H as ErrorType,
|
|
25
|
+
_ as HttpErrorType,
|
|
26
|
+
Q as ModuleResolutionError,
|
|
27
|
+
G as STANDARD_ERROR_CODES,
|
|
28
|
+
b as SendEvmTransactionWithEndUserAccountBodyNetwork,
|
|
29
|
+
z as SendSolanaTransactionWithEndUserAccountBodyNetwork,
|
|
30
|
+
j as createCDPEmbeddedWallet,
|
|
31
|
+
d as exportEvmAccount,
|
|
32
|
+
S as getAccessToken,
|
|
30
33
|
f as getCurrentUser,
|
|
31
34
|
v as getUserOperation,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
T as initialize,
|
|
36
|
+
u as isSignedIn,
|
|
37
|
+
l as onAuthStateChange,
|
|
35
38
|
A as sendEvmTransaction,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
x as
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
y as sendSolanaTransaction,
|
|
40
|
+
h as sendUserOperation,
|
|
41
|
+
x as signEvmHash,
|
|
42
|
+
O as signEvmMessage,
|
|
43
|
+
P as signEvmTransaction,
|
|
44
|
+
C as signEvmTypedData,
|
|
45
|
+
D as signInWithEmail,
|
|
46
|
+
I as signInWithSms,
|
|
47
|
+
R as signOut,
|
|
48
|
+
U as signSolanaTransaction,
|
|
49
|
+
K as toViemAccount,
|
|
50
|
+
W as verifyEmailOTP,
|
|
51
|
+
k as verifySmsOTP
|
|
47
52
|
};
|
|
@@ -1,24 +1,118 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { serializeErc6492Signature as i, encodeFunctionData as c, pad as u, getTypesForEIP712Domain as m } from "viem";
|
|
2
|
+
import { getCurrentUser as g, signEvmHash as A, signEvmTypedData as l, signEvmTransaction as d, signEvmMessage as f } from "./index.native6.js";
|
|
3
|
+
import "@coinbase/cdp-api-client";
|
|
4
|
+
import { COINBASE_SMART_WALLET_FACTORY_ADDRESS as y, COINBASE_SMART_WALLET_FACTORY_ABI as p } from "./index.native22.js";
|
|
5
|
+
import { signAndWrapTypedDataForSmartAccount as v } from "./index.native23.js";
|
|
6
|
+
import { toAccount as w } from "./index.native24.js";
|
|
7
|
+
async function F(n) {
|
|
8
|
+
const r = await g();
|
|
9
|
+
if (!r || !r.evmAccounts?.length && !r.evmSmartAccounts?.length)
|
|
10
|
+
throw new Error(
|
|
11
|
+
"No accounts found - user must be authenticated and have at least one EVM account or smart account"
|
|
12
|
+
);
|
|
13
|
+
const s = r.evmAccounts?.includes(n) ?? !1, o = r.evmSmartAccounts?.includes(n) ?? !1;
|
|
14
|
+
if (!s && !o)
|
|
15
|
+
throw new Error(`Cannot sign for address ${n} - not authorized for this account`);
|
|
16
|
+
return w({
|
|
17
|
+
address: n,
|
|
18
|
+
/**
|
|
19
|
+
* Signs a message using CDP's message signing functionality.
|
|
20
|
+
* Supports string messages, hex strings, and byte arrays.
|
|
21
|
+
*
|
|
22
|
+
* @param root0 - The parameters object
|
|
23
|
+
* @param root0.message - The message to sign, can be a string, hex string, or byte array
|
|
24
|
+
* @returns The signature as a hex string
|
|
25
|
+
*/
|
|
26
|
+
async signMessage({ message: e }) {
|
|
27
|
+
let t;
|
|
28
|
+
if (typeof e == "string")
|
|
29
|
+
t = e;
|
|
30
|
+
else if ("raw" in e)
|
|
31
|
+
typeof e.raw == "string" ? t = e.raw : t = new TextDecoder().decode(e.raw);
|
|
32
|
+
else
|
|
33
|
+
throw new Error("Unsupported message format");
|
|
34
|
+
return (await f({
|
|
35
|
+
evmAccount: n,
|
|
36
|
+
message: t
|
|
37
|
+
})).signature;
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* Signs a transaction using CDP's transaction signing functionality.
|
|
41
|
+
* Converts Viem's transaction format to CDP's AllowedEvmTransactionType.
|
|
42
|
+
*
|
|
43
|
+
* @param transaction - The transaction to sign in Viem's format
|
|
44
|
+
* @returns The signature as a hex string
|
|
45
|
+
*/
|
|
46
|
+
async signTransaction(e) {
|
|
47
|
+
const t = {
|
|
48
|
+
to: e.to,
|
|
49
|
+
value: e.value,
|
|
50
|
+
data: e.data,
|
|
51
|
+
nonce: e.nonce,
|
|
52
|
+
gas: e.gas,
|
|
53
|
+
chainId: e.chainId ?? 1
|
|
54
|
+
};
|
|
55
|
+
return e.gasPrice !== void 0 ? (t.maxFeePerGas = e.gasPrice, t.maxPriorityFeePerGas = e.gasPrice) : (t.maxFeePerGas = e.maxFeePerGas, t.maxPriorityFeePerGas = e.maxPriorityFeePerGas), (await d({
|
|
56
|
+
evmAccount: n,
|
|
57
|
+
transaction: t
|
|
58
|
+
})).signedTransaction;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Signs EIP-712 typed data using CDP's typed data signing functionality.
|
|
62
|
+
* Handles domain separation and type encoding according to the EIP-712 specification.
|
|
63
|
+
* For smart accounts, implements replay-safe hash and signature wrapping.
|
|
64
|
+
*
|
|
65
|
+
* @param params - The typed data parameters following the EIP-712 specification
|
|
66
|
+
* @returns The signature as a hex string
|
|
67
|
+
*/
|
|
68
|
+
async signTypedData(e) {
|
|
69
|
+
if (o) {
|
|
70
|
+
const t = await v({
|
|
71
|
+
smartAccount: n,
|
|
72
|
+
ownerAddress: r.evmAccounts?.[0],
|
|
73
|
+
typedData: e
|
|
74
|
+
});
|
|
75
|
+
return i({
|
|
76
|
+
address: y,
|
|
77
|
+
data: c({
|
|
78
|
+
abi: p,
|
|
79
|
+
functionName: "createAccount",
|
|
80
|
+
args: [[u(r.evmAccounts?.[0])], 0n]
|
|
81
|
+
}),
|
|
82
|
+
signature: t.signature
|
|
83
|
+
});
|
|
84
|
+
} else {
|
|
85
|
+
const t = {
|
|
86
|
+
domain: e.domain,
|
|
87
|
+
types: {
|
|
88
|
+
EIP712Domain: m({
|
|
89
|
+
domain: e.domain
|
|
90
|
+
}),
|
|
91
|
+
...e.types
|
|
92
|
+
},
|
|
93
|
+
primaryType: e.primaryType,
|
|
94
|
+
message: e.message
|
|
95
|
+
};
|
|
96
|
+
return (await l({
|
|
97
|
+
evmAccount: n,
|
|
98
|
+
typedData: t
|
|
99
|
+
})).signature;
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
/**
|
|
103
|
+
* Signs a raw message hash using CDP's message signing functionality.
|
|
104
|
+
*
|
|
105
|
+
* @param message - The message hash to sign
|
|
106
|
+
* @returns The signature as a hex string
|
|
107
|
+
*/
|
|
108
|
+
async sign(e) {
|
|
109
|
+
return (await A({
|
|
110
|
+
evmAccount: n,
|
|
111
|
+
hash: e.hash
|
|
112
|
+
})).signature;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
21
115
|
}
|
|
22
116
|
export {
|
|
23
|
-
|
|
117
|
+
F as toViemAccount
|
|
24
118
|
};
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
throw new TypeError(o(r, "CryptoKey", "KeyObject", "JSON Web Key"));
|
|
7
|
-
return crypto.subtle.importKey("raw", r, { hash: `SHA-${t.slice(-3)}`, name: "HMAC" }, !1, [e]);
|
|
1
|
+
const o = (t, r) => {
|
|
2
|
+
if (t.startsWith("RS") || t.startsWith("PS")) {
|
|
3
|
+
const { modulusLength: e } = r.algorithm;
|
|
4
|
+
if (typeof e != "number" || e < 2048)
|
|
5
|
+
throw new TypeError(`${t} requires key modulusLength to be 2048 bits or larger`);
|
|
8
6
|
}
|
|
9
|
-
return i(r, t, e), r;
|
|
10
7
|
};
|
|
11
8
|
export {
|
|
12
|
-
|
|
9
|
+
o as default
|
|
13
10
|
};
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
1
|
+
import { checkSigCryptoKey as i } from "./index.native109.js";
|
|
2
|
+
import o from "./index.native102.js";
|
|
3
|
+
const s = async (t, r, e) => {
|
|
4
|
+
if (r instanceof Uint8Array) {
|
|
5
|
+
if (!t.startsWith("HS"))
|
|
6
|
+
throw new TypeError(o(r, "CryptoKey", "KeyObject", "JSON Web Key"));
|
|
7
|
+
return crypto.subtle.importKey("raw", r, { hash: `SHA-${t.slice(-3)}`, name: "HMAC" }, !1, [e]);
|
|
8
|
+
}
|
|
9
|
+
return i(r, t, e), r;
|
|
10
|
+
};
|
|
12
11
|
export {
|
|
13
|
-
|
|
14
|
-
t as withAlg
|
|
12
|
+
s as default
|
|
15
13
|
};
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
function e
|
|
2
|
-
|
|
1
|
+
function i(n, e, ...o) {
|
|
2
|
+
if (o = o.filter(Boolean), o.length > 2) {
|
|
3
|
+
const f = o.pop();
|
|
4
|
+
n += `one of type ${o.join(", ")}, or ${f}.`;
|
|
5
|
+
} else o.length === 2 ? n += `one of type ${o[0]} or ${o[1]}.` : n += `of type ${o[0]}.`;
|
|
6
|
+
return e == null ? n += ` Received ${e}` : typeof e == "function" && e.name ? n += ` Received function ${e.name}` : typeof e == "object" && e != null && e.constructor?.name && (n += ` Received an instance of ${e.constructor.name}`), n;
|
|
3
7
|
}
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
const r = (n, ...e) => i("Key must be ", n, ...e);
|
|
9
|
+
function t(n, e, ...o) {
|
|
10
|
+
return i(`Key for the ${n} algorithm must be `, e, ...o);
|
|
6
11
|
}
|
|
7
|
-
const n = (t) => e(t) || r(t);
|
|
8
12
|
export {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
r as isKeyObject
|
|
13
|
+
r as default,
|
|
14
|
+
t as withAlg
|
|
12
15
|
};
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
import n from "./index.native80.js";
|
|
2
|
-
function r(t) {
|
|
3
|
-
return n(t) && typeof t.kty == "string";
|
|
4
|
-
}
|
|
5
|
-
function o(t) {
|
|
6
|
-
return t.kty !== "oct" && typeof t.d == "string";
|
|
7
|
-
}
|
|
8
1
|
function e(t) {
|
|
9
|
-
return t.
|
|
2
|
+
return t?.[Symbol.toStringTag] === "CryptoKey";
|
|
10
3
|
}
|
|
11
|
-
function
|
|
12
|
-
return t.
|
|
4
|
+
function r(t) {
|
|
5
|
+
return t?.[Symbol.toStringTag] === "KeyObject";
|
|
13
6
|
}
|
|
7
|
+
const n = (t) => e(t) || r(t);
|
|
14
8
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
c as isSecretJWK
|
|
9
|
+
n as default,
|
|
10
|
+
e as isCryptoKey,
|
|
11
|
+
r as isKeyObject
|
|
19
12
|
};
|
|
@@ -1,83 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
case "RS384":
|
|
14
|
-
case "RS512":
|
|
15
|
-
a = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e.alg.slice(-3)}` }, r = e.d ? ["sign"] : ["verify"];
|
|
16
|
-
break;
|
|
17
|
-
case "RSA-OAEP":
|
|
18
|
-
case "RSA-OAEP-256":
|
|
19
|
-
case "RSA-OAEP-384":
|
|
20
|
-
case "RSA-OAEP-512":
|
|
21
|
-
a = {
|
|
22
|
-
name: "RSA-OAEP",
|
|
23
|
-
hash: `SHA-${parseInt(e.alg.slice(-3), 10) || 1}`
|
|
24
|
-
}, r = e.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"];
|
|
25
|
-
break;
|
|
26
|
-
default:
|
|
27
|
-
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
28
|
-
}
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
case "EC": {
|
|
32
|
-
switch (e.alg) {
|
|
33
|
-
case "ES256":
|
|
34
|
-
a = { name: "ECDSA", namedCurve: "P-256" }, r = e.d ? ["sign"] : ["verify"];
|
|
35
|
-
break;
|
|
36
|
-
case "ES384":
|
|
37
|
-
a = { name: "ECDSA", namedCurve: "P-384" }, r = e.d ? ["sign"] : ["verify"];
|
|
38
|
-
break;
|
|
39
|
-
case "ES512":
|
|
40
|
-
a = { name: "ECDSA", namedCurve: "P-521" }, r = e.d ? ["sign"] : ["verify"];
|
|
41
|
-
break;
|
|
42
|
-
case "ECDH-ES":
|
|
43
|
-
case "ECDH-ES+A128KW":
|
|
44
|
-
case "ECDH-ES+A192KW":
|
|
45
|
-
case "ECDH-ES+A256KW":
|
|
46
|
-
a = { name: "ECDH", namedCurve: e.crv }, r = e.d ? ["deriveBits"] : [];
|
|
47
|
-
break;
|
|
48
|
-
default:
|
|
49
|
-
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
50
|
-
}
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
case "OKP": {
|
|
54
|
-
switch (e.alg) {
|
|
55
|
-
case "Ed25519":
|
|
56
|
-
case "EdDSA":
|
|
57
|
-
a = { name: "Ed25519" }, r = e.d ? ["sign"] : ["verify"];
|
|
58
|
-
break;
|
|
59
|
-
case "ECDH-ES":
|
|
60
|
-
case "ECDH-ES+A128KW":
|
|
61
|
-
case "ECDH-ES+A192KW":
|
|
62
|
-
case "ECDH-ES+A256KW":
|
|
63
|
-
a = { name: e.crv }, r = e.d ? ["deriveBits"] : [];
|
|
64
|
-
break;
|
|
65
|
-
default:
|
|
66
|
-
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
default:
|
|
71
|
-
throw new s('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
|
|
72
|
-
}
|
|
73
|
-
return { algorithm: a, keyUsages: r };
|
|
1
|
+
import n from "./index.native81.js";
|
|
2
|
+
function r(t) {
|
|
3
|
+
return n(t) && typeof t.kty == "string";
|
|
4
|
+
}
|
|
5
|
+
function o(t) {
|
|
6
|
+
return t.kty !== "oct" && typeof t.d == "string";
|
|
7
|
+
}
|
|
8
|
+
function e(t) {
|
|
9
|
+
return t.kty !== "oct" && typeof t.d > "u";
|
|
10
|
+
}
|
|
11
|
+
function c(t) {
|
|
12
|
+
return t.kty === "oct" && typeof t.k == "string";
|
|
74
13
|
}
|
|
75
|
-
const i = async (e) => {
|
|
76
|
-
if (!e.alg)
|
|
77
|
-
throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
|
|
78
|
-
const { algorithm: a, keyUsages: r } = n(e), t = { ...e };
|
|
79
|
-
return delete t.alg, delete t.use, crypto.subtle.importKey("jwk", t, a, e.ext ?? !e.d, e.key_ops ?? r);
|
|
80
|
-
};
|
|
81
14
|
export {
|
|
82
|
-
|
|
15
|
+
r as isJWK,
|
|
16
|
+
o as isPrivateJWK,
|
|
17
|
+
e as isPublicJWK,
|
|
18
|
+
c as isSecretJWK
|
|
83
19
|
};
|
|
@@ -1,15 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { JOSENotSupported as s } from "./index.native30.js";
|
|
2
|
+
function n(e) {
|
|
3
|
+
let a, r;
|
|
4
|
+
switch (e.kty) {
|
|
5
|
+
case "RSA": {
|
|
6
|
+
switch (e.alg) {
|
|
7
|
+
case "PS256":
|
|
8
|
+
case "PS384":
|
|
9
|
+
case "PS512":
|
|
10
|
+
a = { name: "RSA-PSS", hash: `SHA-${e.alg.slice(-3)}` }, r = e.d ? ["sign"] : ["verify"];
|
|
11
|
+
break;
|
|
12
|
+
case "RS256":
|
|
13
|
+
case "RS384":
|
|
14
|
+
case "RS512":
|
|
15
|
+
a = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e.alg.slice(-3)}` }, r = e.d ? ["sign"] : ["verify"];
|
|
16
|
+
break;
|
|
17
|
+
case "RSA-OAEP":
|
|
18
|
+
case "RSA-OAEP-256":
|
|
19
|
+
case "RSA-OAEP-384":
|
|
20
|
+
case "RSA-OAEP-512":
|
|
21
|
+
a = {
|
|
22
|
+
name: "RSA-OAEP",
|
|
23
|
+
hash: `SHA-${parseInt(e.alg.slice(-3), 10) || 1}`
|
|
24
|
+
}, r = e.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"];
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
28
|
+
}
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
case "EC": {
|
|
32
|
+
switch (e.alg) {
|
|
33
|
+
case "ES256":
|
|
34
|
+
a = { name: "ECDSA", namedCurve: "P-256" }, r = e.d ? ["sign"] : ["verify"];
|
|
35
|
+
break;
|
|
36
|
+
case "ES384":
|
|
37
|
+
a = { name: "ECDSA", namedCurve: "P-384" }, r = e.d ? ["sign"] : ["verify"];
|
|
38
|
+
break;
|
|
39
|
+
case "ES512":
|
|
40
|
+
a = { name: "ECDSA", namedCurve: "P-521" }, r = e.d ? ["sign"] : ["verify"];
|
|
41
|
+
break;
|
|
42
|
+
case "ECDH-ES":
|
|
43
|
+
case "ECDH-ES+A128KW":
|
|
44
|
+
case "ECDH-ES+A192KW":
|
|
45
|
+
case "ECDH-ES+A256KW":
|
|
46
|
+
a = { name: "ECDH", namedCurve: e.crv }, r = e.d ? ["deriveBits"] : [];
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "OKP": {
|
|
54
|
+
switch (e.alg) {
|
|
55
|
+
case "Ed25519":
|
|
56
|
+
case "EdDSA":
|
|
57
|
+
a = { name: "Ed25519" }, r = e.d ? ["sign"] : ["verify"];
|
|
58
|
+
break;
|
|
59
|
+
case "ECDH-ES":
|
|
60
|
+
case "ECDH-ES+A128KW":
|
|
61
|
+
case "ECDH-ES+A192KW":
|
|
62
|
+
case "ECDH-ES+A256KW":
|
|
63
|
+
a = { name: e.crv }, r = e.d ? ["deriveBits"] : [];
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
throw new s('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
default:
|
|
71
|
+
throw new s('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
|
|
11
72
|
}
|
|
73
|
+
return { algorithm: a, keyUsages: r };
|
|
74
|
+
}
|
|
75
|
+
const i = async (e) => {
|
|
76
|
+
if (!e.alg)
|
|
77
|
+
throw new TypeError('"alg" argument is required when "jwk.alg" is not present');
|
|
78
|
+
const { algorithm: a, keyUsages: r } = n(e), t = { ...e };
|
|
79
|
+
return delete t.alg, delete t.use, crypto.subtle.importKey("jwk", t, a, e.ext ?? !e.d, e.key_ops ?? r);
|
|
12
80
|
};
|
|
13
81
|
export {
|
|
14
|
-
|
|
82
|
+
i as default
|
|
15
83
|
};
|