@coinbase/cdp-core 0.0.18 → 0.0.20
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 +13 -5
- package/dist/esm/index.js +24 -21
- package/dist/esm/index103.js +1 -1
- package/dist/esm/index13.js +9 -3
- package/dist/esm/index15.js +8 -8
- package/dist/esm/index16.js +2 -2
- package/dist/esm/index17.js +158 -39
- package/dist/esm/index18.js +47 -16
- package/dist/esm/index19.js +152 -4
- package/dist/esm/index2.js +138 -124
- package/dist/esm/index20.js +56 -5
- package/dist/esm/index21.js +39 -158
- package/dist/esm/index22.js +16 -47
- package/dist/esm/index23.js +4 -152
- package/dist/esm/index24.js +5 -56
- package/dist/esm/index25.js +12 -8
- package/dist/esm/index26.js +11 -17
- package/dist/esm/index27.js +8 -45
- package/dist/esm/index28.js +17 -13
- package/dist/esm/index29.js +40 -50
- package/dist/esm/index3.js +4 -4
- package/dist/esm/index30.js +13 -6
- package/dist/esm/index31.js +54 -20
- package/dist/esm/index32.js +6 -11
- package/dist/esm/index33.js +21 -3
- package/dist/esm/index34.js +3 -3
- package/dist/esm/index35.js +3 -34
- package/dist/esm/index36.js +32 -10
- package/dist/esm/index37.js +12 -4
- package/dist/esm/index38.js +4 -28
- package/dist/esm/index39.js +28 -6
- package/dist/esm/index40.js +6 -24
- package/dist/esm/index41.js +24 -16
- package/dist/esm/index42.js +16 -54
- package/dist/esm/index43.js +53 -22
- package/dist/esm/index44.js +23 -11
- package/dist/esm/index45.js +10 -26
- package/dist/esm/index46.js +26 -41
- package/dist/esm/index47.js +41 -54
- package/dist/esm/index48.js +54 -126
- package/dist/esm/index49.js +126 -11
- package/dist/esm/index50.js +9 -101
- package/dist/esm/index51.js +104 -6
- package/dist/esm/index52.js +7 -3
- package/dist/esm/index53.js +3 -15
- package/dist/esm/index54.js +14 -42
- package/dist/esm/index55.js +38 -74
- package/dist/esm/index56.js +79 -2
- package/dist/esm/index57.js +2 -2
- package/dist/esm/index58.js +2 -13
- package/dist/esm/index59.js +2 -2
- package/dist/esm/index6.js +4 -4
- package/dist/esm/index60.js +1 -1
- package/dist/esm/index61.js +1 -1
- package/dist/esm/index62.js +2 -2
- package/dist/esm/index63.js +2 -2
- package/dist/esm/index64.js +1 -1
- package/dist/esm/index65.js +1 -1
- package/dist/esm/index66.js +3 -3
- package/dist/esm/index70.js +1 -1
- package/dist/esm/index72.js +4 -4
- package/dist/esm/index73.js +104 -2
- package/dist/esm/index74.js +75 -17
- package/dist/esm/index75.js +80 -20
- package/dist/esm/index76.js +2 -80
- package/dist/esm/index77.js +17 -100
- package/dist/esm/index78.js +18 -31
- package/dist/esm/index79.js +32 -6
- package/dist/esm/index80.js +6 -78
- package/dist/esm/index81.js +10 -55
- package/dist/esm/index82.js +54 -10
- package/dist/esm/index83.js +11 -2
- package/dist/esm/index84.js +2 -45
- package/dist/esm/index85.js +44 -13
- package/dist/esm/index86.js +13 -9
- package/dist/esm/index88.js +12 -20
- package/dist/esm/index89.js +35 -9
- package/dist/esm/index90.js +41 -19
- package/dist/esm/index91.js +20 -93
- package/dist/esm/index92.js +9 -20
- package/dist/esm/index93.js +16 -114
- package/dist/esm/index94.js +92 -11
- package/dist/esm/index95.js +20 -35
- package/dist/esm/index96.js +117 -41
- package/dist/types/index.d.ts +32 -2
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -93,7 +93,15 @@ if (signedIn) {
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
### Send a Transaction
|
|
96
|
-
We support signing and sending a Blockchain transaction in a single call on
|
|
96
|
+
We support signing and sending a Blockchain transaction in a single call on the following networks:
|
|
97
|
+
- Base
|
|
98
|
+
- Base Sepolia
|
|
99
|
+
- Ethereum
|
|
100
|
+
- Ethereum Sepolia
|
|
101
|
+
- Avalanche
|
|
102
|
+
- Arbitrum
|
|
103
|
+
- Optimism
|
|
104
|
+
- Polygon
|
|
97
105
|
|
|
98
106
|
```typescript
|
|
99
107
|
import { sendEvmTransaction, getCurrentUser } from "@coinbase/cdp-core";
|
|
@@ -118,13 +126,13 @@ const result = await sendEvmTransaction({
|
|
|
118
126
|
console.log("Transaction Hash:", result.transactionHash);
|
|
119
127
|
```
|
|
120
128
|
|
|
121
|
-
For networks other than
|
|
129
|
+
For networks other than those supported by the CDP APIs, your end user must sign the transaction, and then
|
|
122
130
|
you must broadcast the transaction yourself. This example uses the public client from `viem` to broadcast the transaction.
|
|
123
131
|
|
|
124
132
|
```typescript
|
|
125
133
|
import { signEvmTransaction, getCurrentUser } from "@coinbase/cdp-core";
|
|
126
134
|
import { http, createPublicClient } from "viem";
|
|
127
|
-
import {
|
|
135
|
+
import { tron } from "viem/chains";
|
|
128
136
|
|
|
129
137
|
const user = await getCurrentUser();
|
|
130
138
|
const evmAccount = user.evmAccounts[0];
|
|
@@ -139,14 +147,14 @@ const { signedTransaction } = await signEvmTransaction({
|
|
|
139
147
|
gas: 21000n,
|
|
140
148
|
maxFeePerGas: 30000000000n,
|
|
141
149
|
maxPriorityFeePerGas: 1000000000n,
|
|
142
|
-
chainId:
|
|
150
|
+
chainId: 728126428, // Tron
|
|
143
151
|
type: "eip1559",
|
|
144
152
|
}
|
|
145
153
|
});
|
|
146
154
|
|
|
147
155
|
// Broadcast signed transaction to non-Base chain
|
|
148
156
|
const client = createPublicClient({
|
|
149
|
-
chain:
|
|
157
|
+
chain: tron,
|
|
150
158
|
transport: http()
|
|
151
159
|
});
|
|
152
160
|
|
package/dist/esm/index.js
CHANGED
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
import { exportEvmAccount as n,
|
|
2
|
-
import { APIError as
|
|
1
|
+
import { exportEvmAccount as n, getAccessToken as m, getCurrentUser as s, initialize as E, isSignedIn as a, onAuthStateChange as p, sendEvmTransaction as c, signEvmHash as g, signEvmMessage as d, signEvmTransaction as v, signEvmTypedData as T, signInWithEmail as A, signInWithSms as f, signOut as S, verifyEmailOTP as h, verifySmsOTP as u } from "./index2.js";
|
|
2
|
+
import { APIError as y, ErrorType as P, HttpErrorType as l, SendEvmTransactionWithEndUserAccountBodyNetwork as D } from "@coinbase/cdp-api-client";
|
|
3
3
|
import "viem";
|
|
4
|
-
import { createCDPEmbeddedWallet as
|
|
5
|
-
import { EIP1193ProviderError as
|
|
4
|
+
import { createCDPEmbeddedWallet as O } from "./index3.js";
|
|
5
|
+
import { EIP1193ProviderError as R, STANDARD_ERROR_CODES as W } from "./index4.js";
|
|
6
6
|
import "ox";
|
|
7
7
|
import "zustand";
|
|
8
|
-
import { toViemAccount as
|
|
8
|
+
import { toViemAccount as H } from "./index5.js";
|
|
9
9
|
export {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
y as APIError,
|
|
11
|
+
R as EIP1193ProviderError,
|
|
12
|
+
P as ErrorType,
|
|
13
13
|
l as HttpErrorType,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
W as STANDARD_ERROR_CODES,
|
|
15
|
+
D as SendEvmTransactionWithEndUserAccountBodyNetwork,
|
|
16
|
+
O as createCDPEmbeddedWallet,
|
|
17
17
|
n as exportEvmAccount,
|
|
18
|
-
m as
|
|
18
|
+
m as getAccessToken,
|
|
19
|
+
s as getCurrentUser,
|
|
19
20
|
E as initialize,
|
|
20
21
|
a as isSignedIn,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
p as onAuthStateChange,
|
|
23
|
+
c as sendEvmTransaction,
|
|
24
|
+
g as signEvmHash,
|
|
24
25
|
d as signEvmMessage,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
v as signEvmTransaction,
|
|
27
|
+
T as signEvmTypedData,
|
|
28
|
+
A as signInWithEmail,
|
|
29
|
+
f as signInWithSms,
|
|
30
|
+
S as signOut,
|
|
31
|
+
H as toViemAccount,
|
|
32
|
+
h as verifyEmailOTP,
|
|
33
|
+
u as verifySmsOTP
|
|
31
34
|
};
|
package/dist/esm/index103.js
CHANGED
package/dist/esm/index13.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { SendEvmTransactionWithEndUserAccountBodyNetwork as
|
|
1
|
+
import { SendEvmTransactionWithEndUserAccountBodyNetwork as a } from "@coinbase/cdp-api-client";
|
|
2
2
|
const n = (e) => !e || typeof e != "object" ? e : Array.isArray(e) ? e.map(n) : Object.keys(e).sort().reduce(
|
|
3
3
|
(r, t) => (r[t] = n(e[t]), r),
|
|
4
4
|
{}
|
|
5
|
-
), o = (e) => Object.values(
|
|
5
|
+
), o = (e) => Object.values(a).includes(
|
|
6
6
|
e
|
|
7
7
|
), s = {
|
|
8
8
|
"base-sepolia": 84532,
|
|
9
|
-
base: 8453
|
|
9
|
+
base: 8453,
|
|
10
|
+
ethereum: 1,
|
|
11
|
+
"ethereum-sepolia": 11155111,
|
|
12
|
+
avalanche: 43114,
|
|
13
|
+
polygon: 137,
|
|
14
|
+
optimism: 10,
|
|
15
|
+
arbitrum: 42161
|
|
10
16
|
}, c = Object.fromEntries(
|
|
11
17
|
Object.entries(s).map(([e, r]) => [r, e])
|
|
12
18
|
), p = (e) => Object.values(s).includes(e);
|
package/dist/esm/index15.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { InvalidLegacyVError as H } from "./
|
|
2
|
-
import { serializeAuthorizationList as g } from "./
|
|
1
|
+
import { InvalidLegacyVError as H } from "./index55.js";
|
|
2
|
+
import { serializeAuthorizationList as g } from "./index28.js";
|
|
3
3
|
import { blobsToCommitments as B } from "./index62.js";
|
|
4
4
|
import { blobsToProofs as V } from "./index63.js";
|
|
5
5
|
import { commitmentsToVersionedHashes as C } from "./index64.js";
|
|
6
6
|
import { toBlobSidecars as k } from "./index65.js";
|
|
7
|
-
import { concatHex as h } from "./
|
|
8
|
-
import { trim as T } from "./
|
|
9
|
-
import { numberToHex as o, bytesToHex as w } from "./
|
|
10
|
-
import { toRlp as b } from "./
|
|
11
|
-
import { assertTransactionEIP1559 as S, assertTransactionEIP2930 as _, assertTransactionEIP4844 as R, assertTransactionEIP7702 as Y, assertTransactionLegacy as j } from "./
|
|
12
|
-
import { getTransactionType as q } from "./
|
|
7
|
+
import { concatHex as h } from "./index34.js";
|
|
8
|
+
import { trim as T } from "./index40.js";
|
|
9
|
+
import { numberToHex as o, bytesToHex as w } from "./index29.js";
|
|
10
|
+
import { toRlp as b } from "./index47.js";
|
|
11
|
+
import { assertTransactionEIP1559 as S, assertTransactionEIP2930 as _, assertTransactionEIP4844 as R, assertTransactionEIP7702 as Y, assertTransactionLegacy as j } from "./index56.js";
|
|
12
|
+
import { getTransactionType as q } from "./index54.js";
|
|
13
13
|
import { serializeAccessList as v } from "./index66.js";
|
|
14
14
|
function te(e, r) {
|
|
15
15
|
const i = q(e);
|
package/dist/esm/index16.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InvalidAddressError as s } from "./
|
|
2
|
-
import { isAddress as a } from "./
|
|
1
|
+
import { InvalidAddressError as s } from "./index25.js";
|
|
2
|
+
import { isAddress as a } from "./index26.js";
|
|
3
3
|
function r(n) {
|
|
4
4
|
if (typeof n == "string") {
|
|
5
5
|
if (!a(n, { strict: !1 }))
|
package/dist/esm/index17.js
CHANGED
|
@@ -1,43 +1,162 @@
|
|
|
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
|
-
setExpirationTime(t) {
|
|
26
|
-
return this.#t.exp = t, this;
|
|
27
|
-
}
|
|
28
|
-
setIssuedAt(t) {
|
|
29
|
-
return this.#t.iat = t, this;
|
|
30
|
-
}
|
|
31
|
-
setProtectedHeader(t) {
|
|
32
|
-
return this.#s = t, this;
|
|
33
|
-
}
|
|
34
|
-
async sign(t, e) {
|
|
35
|
-
const s = new i(this.#t.data());
|
|
36
|
-
if (s.setProtectedHeader(this.#s), Array.isArray(this.#s?.crit) && this.#s.crit.includes("b64") && this.#s.b64 === !1)
|
|
37
|
-
throw new r("JWTs MUST NOT use unencoded payload");
|
|
38
|
-
return s.sign(t, e);
|
|
1
|
+
const H = (m) => (h, n, r) => {
|
|
2
|
+
const s = r.subscribe;
|
|
3
|
+
return r.subscribe = (c, i, a) => {
|
|
4
|
+
let l = c;
|
|
5
|
+
if (i) {
|
|
6
|
+
const g = a?.equalityFn || Object.is;
|
|
7
|
+
let v = c(r.getState());
|
|
8
|
+
l = (f) => {
|
|
9
|
+
const u = c(f);
|
|
10
|
+
if (!g(v, u)) {
|
|
11
|
+
const y = v;
|
|
12
|
+
i(v = u, y);
|
|
13
|
+
}
|
|
14
|
+
}, a?.fireImmediately && i(v, v);
|
|
15
|
+
}
|
|
16
|
+
return s(l);
|
|
17
|
+
}, m(h, n, r);
|
|
18
|
+
}, R = H;
|
|
19
|
+
function F(m, h) {
|
|
20
|
+
let n;
|
|
21
|
+
try {
|
|
22
|
+
n = m();
|
|
23
|
+
} catch {
|
|
24
|
+
return;
|
|
39
25
|
}
|
|
26
|
+
return {
|
|
27
|
+
getItem: (s) => {
|
|
28
|
+
var e;
|
|
29
|
+
const c = (a) => a === null ? null : JSON.parse(a, void 0), i = (e = n.getItem(s)) != null ? e : null;
|
|
30
|
+
return i instanceof Promise ? i.then(c) : c(i);
|
|
31
|
+
},
|
|
32
|
+
setItem: (s, e) => n.setItem(s, JSON.stringify(e, void 0)),
|
|
33
|
+
removeItem: (s) => n.removeItem(s)
|
|
34
|
+
};
|
|
40
35
|
}
|
|
36
|
+
const p = (m) => (h) => {
|
|
37
|
+
try {
|
|
38
|
+
const n = m(h);
|
|
39
|
+
return n instanceof Promise ? n : {
|
|
40
|
+
then(r) {
|
|
41
|
+
return p(r)(n);
|
|
42
|
+
},
|
|
43
|
+
catch(r) {
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
} catch (n) {
|
|
48
|
+
return {
|
|
49
|
+
then(r) {
|
|
50
|
+
return this;
|
|
51
|
+
},
|
|
52
|
+
catch(r) {
|
|
53
|
+
return p(r)(n);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}, O = (m, h) => (n, r, s) => {
|
|
58
|
+
let e = {
|
|
59
|
+
storage: F(() => localStorage),
|
|
60
|
+
partialize: (t) => t,
|
|
61
|
+
version: 0,
|
|
62
|
+
merge: (t, S) => ({
|
|
63
|
+
...S,
|
|
64
|
+
...t
|
|
65
|
+
}),
|
|
66
|
+
...h
|
|
67
|
+
}, c = !1;
|
|
68
|
+
const i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
|
|
69
|
+
let l = e.storage;
|
|
70
|
+
if (!l)
|
|
71
|
+
return m(
|
|
72
|
+
(...t) => {
|
|
73
|
+
console.warn(
|
|
74
|
+
`[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`
|
|
75
|
+
), n(...t);
|
|
76
|
+
},
|
|
77
|
+
r,
|
|
78
|
+
s
|
|
79
|
+
);
|
|
80
|
+
const g = () => {
|
|
81
|
+
const t = e.partialize({ ...r() });
|
|
82
|
+
return l.setItem(e.name, {
|
|
83
|
+
state: t,
|
|
84
|
+
version: e.version
|
|
85
|
+
});
|
|
86
|
+
}, v = s.setState;
|
|
87
|
+
s.setState = (t, S) => {
|
|
88
|
+
v(t, S), g();
|
|
89
|
+
};
|
|
90
|
+
const f = m(
|
|
91
|
+
(...t) => {
|
|
92
|
+
n(...t), g();
|
|
93
|
+
},
|
|
94
|
+
r,
|
|
95
|
+
s
|
|
96
|
+
);
|
|
97
|
+
s.getInitialState = () => f;
|
|
98
|
+
let u;
|
|
99
|
+
const y = () => {
|
|
100
|
+
var t, S;
|
|
101
|
+
if (!l) return;
|
|
102
|
+
c = !1, i.forEach((o) => {
|
|
103
|
+
var d;
|
|
104
|
+
return o((d = r()) != null ? d : f);
|
|
105
|
+
});
|
|
106
|
+
const b = ((S = e.onRehydrateStorage) == null ? void 0 : S.call(e, (t = r()) != null ? t : f)) || void 0;
|
|
107
|
+
return p(l.getItem.bind(l))(e.name).then((o) => {
|
|
108
|
+
if (o)
|
|
109
|
+
if (typeof o.version == "number" && o.version !== e.version) {
|
|
110
|
+
if (e.migrate) {
|
|
111
|
+
const d = e.migrate(
|
|
112
|
+
o.state,
|
|
113
|
+
o.version
|
|
114
|
+
);
|
|
115
|
+
return d instanceof Promise ? d.then((I) => [!0, I]) : [!0, d];
|
|
116
|
+
}
|
|
117
|
+
console.error(
|
|
118
|
+
"State loaded from storage couldn't be migrated since no migrate function was provided"
|
|
119
|
+
);
|
|
120
|
+
} else
|
|
121
|
+
return [!1, o.state];
|
|
122
|
+
return [!1, void 0];
|
|
123
|
+
}).then((o) => {
|
|
124
|
+
var d;
|
|
125
|
+
const [I, _] = o;
|
|
126
|
+
if (u = e.merge(
|
|
127
|
+
_,
|
|
128
|
+
(d = r()) != null ? d : f
|
|
129
|
+
), n(u, !0), I)
|
|
130
|
+
return g();
|
|
131
|
+
}).then(() => {
|
|
132
|
+
b?.(u, void 0), u = r(), c = !0, a.forEach((o) => o(u));
|
|
133
|
+
}).catch((o) => {
|
|
134
|
+
b?.(void 0, o);
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
return s.persist = {
|
|
138
|
+
setOptions: (t) => {
|
|
139
|
+
e = {
|
|
140
|
+
...e,
|
|
141
|
+
...t
|
|
142
|
+
}, t.storage && (l = t.storage);
|
|
143
|
+
},
|
|
144
|
+
clearStorage: () => {
|
|
145
|
+
l?.removeItem(e.name);
|
|
146
|
+
},
|
|
147
|
+
getOptions: () => e,
|
|
148
|
+
rehydrate: () => y(),
|
|
149
|
+
hasHydrated: () => c,
|
|
150
|
+
onHydrate: (t) => (i.add(t), () => {
|
|
151
|
+
i.delete(t);
|
|
152
|
+
}),
|
|
153
|
+
onFinishHydration: (t) => (a.add(t), () => {
|
|
154
|
+
a.delete(t);
|
|
155
|
+
})
|
|
156
|
+
}, e.skipHydration || y(), u || f;
|
|
157
|
+
}, w = O;
|
|
41
158
|
export {
|
|
42
|
-
|
|
159
|
+
F as createJSONStorage,
|
|
160
|
+
w as persist,
|
|
161
|
+
R as subscribeWithSelector
|
|
43
162
|
};
|
package/dist/esm/index18.js
CHANGED
|
@@ -1,19 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
[
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
class n {
|
|
2
|
+
events = {};
|
|
3
|
+
/**
|
|
4
|
+
* Add an event listener.
|
|
5
|
+
*
|
|
6
|
+
* @param event - The name of the event to listen for.
|
|
7
|
+
* @param listener - The function to call when the event is emitted.
|
|
8
|
+
*/
|
|
9
|
+
on(e, s) {
|
|
10
|
+
this.events[e] || (this.events[e] = []), this.events[e].push(s);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Remove an event listener.
|
|
14
|
+
*
|
|
15
|
+
* @param event - The name of the event to remove the listener from.
|
|
16
|
+
* @param listener - The function to remove from the event listeners.
|
|
17
|
+
*/
|
|
18
|
+
removeListener(e, s) {
|
|
19
|
+
if (!this.events[e])
|
|
20
|
+
return;
|
|
21
|
+
const t = this.events[e].indexOf(s);
|
|
22
|
+
t > -1 && this.events[e].splice(t, 1);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Emit an event.
|
|
26
|
+
*
|
|
27
|
+
* @param event - The name of the event to emit.
|
|
28
|
+
* @param args - The arguments to pass to the event listeners.
|
|
29
|
+
*/
|
|
30
|
+
emit(e, ...s) {
|
|
31
|
+
this.events[e] && this.events[e].forEach((t) => {
|
|
32
|
+
try {
|
|
33
|
+
t(...s);
|
|
34
|
+
} catch (i) {
|
|
35
|
+
console.error(`Error in event listener for ${e}:`, i);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Remove all listeners for an event.
|
|
41
|
+
*
|
|
42
|
+
* @param event - The name of the event to remove all listeners from. If not provided, removes all listeners for all events.
|
|
43
|
+
*/
|
|
44
|
+
removeAllListeners(e) {
|
|
45
|
+
e ? delete this.events[e] : this.events = {};
|
|
46
|
+
}
|
|
16
47
|
}
|
|
17
48
|
export {
|
|
18
|
-
n as
|
|
49
|
+
n as EventEmitter
|
|
19
50
|
};
|
package/dist/esm/index19.js
CHANGED
|
@@ -1,7 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Hex as y } from "ox";
|
|
2
|
+
import { createWalletClient as I } from "viem";
|
|
3
|
+
import { signEvmTypedData as E, signEvmHash as S, getCurrentUser as f, signOut as P, sendEvmTransaction as R, signEvmTransaction as T, signEvmMessage as A } from "./index2.js";
|
|
4
|
+
import "@coinbase/cdp-api-client";
|
|
5
|
+
import "./index3.js";
|
|
6
|
+
import { validateUserOwnsAddress as m, EIP1193ProviderError as l, STANDARD_ERROR_CODES as s, RPCRequestError as o, validateUserHasEvmAccount as x, validateUserConnected as C } from "./index4.js";
|
|
7
|
+
import "zustand";
|
|
8
|
+
import { isChainIdSupportedForCDPSends as D, chainIdToNameMapping as b } from "./index13.js";
|
|
9
|
+
function g(e) {
|
|
10
|
+
return {
|
|
11
|
+
to: e.to,
|
|
12
|
+
data: e.data,
|
|
13
|
+
value: e.value ? BigInt(e.value) : void 0,
|
|
14
|
+
nonce: e.nonce ? Number(e.nonce) : void 0,
|
|
15
|
+
gas: e.gas ? BigInt(e.gas) : void 0,
|
|
16
|
+
maxFeePerGas: e.maxFeePerGas ? BigInt(e.maxFeePerGas) : void 0,
|
|
17
|
+
maxPriorityFeePerGas: e.maxPriorityFeePerGas ? BigInt(e.maxPriorityFeePerGas) : void 0,
|
|
18
|
+
type: "eip1559"
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async function M() {
|
|
22
|
+
return (await f())?.evmAccounts || [];
|
|
23
|
+
}
|
|
24
|
+
async function _(e, n) {
|
|
25
|
+
const a = await C();
|
|
26
|
+
return e.emit("connect", {
|
|
27
|
+
chainId: y.fromNumber(n.getState().chainId)
|
|
28
|
+
}), a.evmAccounts || [];
|
|
29
|
+
}
|
|
30
|
+
async function k(e) {
|
|
31
|
+
const [n, a] = e;
|
|
32
|
+
await m(a);
|
|
33
|
+
const t = Buffer.from(n.slice(2), "hex").toString();
|
|
34
|
+
try {
|
|
35
|
+
return (await A({
|
|
36
|
+
evmAccount: a,
|
|
37
|
+
message: t
|
|
38
|
+
})).signature;
|
|
39
|
+
} catch (c) {
|
|
40
|
+
throw new l(
|
|
41
|
+
s.provider.userRejectedRequest,
|
|
42
|
+
c instanceof Error ? c.message : "Signing failed"
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function z(e) {
|
|
47
|
+
const [n, a] = e;
|
|
48
|
+
await m(n);
|
|
49
|
+
try {
|
|
50
|
+
return (await E({
|
|
51
|
+
evmAccount: n,
|
|
52
|
+
typedData: JSON.parse(a)
|
|
53
|
+
})).signature;
|
|
54
|
+
} catch (t) {
|
|
55
|
+
throw new l(
|
|
56
|
+
s.provider.userRejectedRequest,
|
|
57
|
+
t instanceof Error ? t.message : "Signing failed"
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function J(e, n, a) {
|
|
62
|
+
const [t] = e;
|
|
63
|
+
if (!t || typeof t != "object")
|
|
64
|
+
throw new o(
|
|
65
|
+
s.rpc.invalidParams,
|
|
66
|
+
"Transaction parameter must be an object"
|
|
67
|
+
);
|
|
68
|
+
if (!t.to)
|
|
69
|
+
throw new o(
|
|
70
|
+
s.rpc.invalidParams,
|
|
71
|
+
"Transaction must include 'to' field"
|
|
72
|
+
);
|
|
73
|
+
const d = (await x()).evmAccounts?.[0], u = n.getState(), i = t.chainId ? Number(t.chainId) : u.chainId;
|
|
74
|
+
if (!d)
|
|
75
|
+
throw new o(
|
|
76
|
+
s.rpc.invalidParams,
|
|
77
|
+
"User does not have an EVM account"
|
|
78
|
+
);
|
|
79
|
+
if (D(i))
|
|
80
|
+
try {
|
|
81
|
+
return (await R({
|
|
82
|
+
evmAccount: d,
|
|
83
|
+
transaction: { ...g(t), chainId: i },
|
|
84
|
+
network: b[i]
|
|
85
|
+
})).transactionHash;
|
|
86
|
+
} catch (r) {
|
|
87
|
+
throw console.log("Transaction failed", r), new o(
|
|
88
|
+
s.rpc.transactionRejected,
|
|
89
|
+
r instanceof Error ? r.message : "Transaction failed"
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
else
|
|
93
|
+
try {
|
|
94
|
+
const r = I({
|
|
95
|
+
// Safe as we check before calling this handler that chainId is configured
|
|
96
|
+
chain: u.chains.find((h) => h.id === i),
|
|
97
|
+
transport: a[i],
|
|
98
|
+
account: d
|
|
99
|
+
}), p = u.chains.find((h) => h.id === i), w = await r.prepareTransactionRequest({
|
|
100
|
+
...g(t),
|
|
101
|
+
chain: p
|
|
102
|
+
}), v = await T({
|
|
103
|
+
evmAccount: d,
|
|
104
|
+
transaction: {
|
|
105
|
+
...w,
|
|
106
|
+
type: "eip1559"
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return await r.sendRawTransaction({
|
|
110
|
+
serializedTransaction: v.signedTransaction
|
|
111
|
+
});
|
|
112
|
+
} catch (r) {
|
|
113
|
+
throw new o(
|
|
114
|
+
s.rpc.transactionRejected,
|
|
115
|
+
r instanceof Error ? r.message : "Transaction failed"
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function V(e) {
|
|
120
|
+
const [n, a] = e;
|
|
121
|
+
await m(a);
|
|
122
|
+
try {
|
|
123
|
+
return (await S({
|
|
124
|
+
evmAccount: a,
|
|
125
|
+
hash: n
|
|
126
|
+
})).signature;
|
|
127
|
+
} catch (t) {
|
|
128
|
+
throw new l(
|
|
129
|
+
s.provider.userRejectedRequest,
|
|
130
|
+
t instanceof Error ? t.message : "Signing failed"
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async function W(e) {
|
|
135
|
+
return `0x${e.getState().chainId.toString(16)}`;
|
|
136
|
+
}
|
|
137
|
+
async function $() {
|
|
138
|
+
await f() && await P();
|
|
139
|
+
}
|
|
140
|
+
function K(e, n) {
|
|
141
|
+
const a = Number.parseInt(e[0].chainId, 16);
|
|
142
|
+
n.getState().setChainId(a);
|
|
4
143
|
}
|
|
5
144
|
export {
|
|
6
|
-
|
|
145
|
+
M as handleAccounts,
|
|
146
|
+
W as handleChainId,
|
|
147
|
+
$ as handleDisconnect,
|
|
148
|
+
V as handleEthSign,
|
|
149
|
+
k as handlePersonalSign,
|
|
150
|
+
_ as handleRequestAccounts,
|
|
151
|
+
J as handleSendTransaction,
|
|
152
|
+
z as handleSignTypedData,
|
|
153
|
+
K as handleSwitchEthereumChain,
|
|
154
|
+
g as shimProviderTxRequest
|
|
7
155
|
};
|