@coinbase/cdp-hooks 0.0.45 → 0.0.46
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/esm/index.js +37 -34
- package/dist/esm/index2.js +24 -21
- package/dist/esm/index217.js +1 -1
- package/dist/esm/index218.js +1 -1
- package/dist/esm/index219.js +2 -2
- package/dist/esm/index224.js +1 -1
- package/dist/esm/index230.js +1 -1
- package/dist/esm/index231.js +1 -1
- package/dist/esm/index248.js +16 -3
- package/dist/esm/index249.js +3 -136
- package/dist/esm/index250.js +125 -144
- package/dist/esm/index251.js +155 -9
- package/dist/esm/index252.js +9 -16
- package/dist/esm/index253.js +1 -1
- package/dist/esm/index254.js +1 -1
- package/dist/esm/index263.js +1 -1
- package/dist/esm/index264.js +1 -1
- package/dist/esm/index268.js +1 -1
- package/dist/esm/index269.js +1 -1
- package/dist/esm/index3.js +100 -92
- package/dist/types/index.d.ts +16 -0
- package/package.json +3 -3
package/dist/esm/index.js
CHANGED
|
@@ -1,40 +1,43 @@
|
|
|
1
|
-
import { APIError as n } from "@coinbase/cdp-core";
|
|
2
|
-
import { CDPContext as
|
|
3
|
-
import { useConfig as
|
|
4
|
-
import { useCreateSpendPermission as
|
|
5
|
-
import { useListSpendPermissions as
|
|
6
|
-
import { useRevokeSpendPermission as
|
|
1
|
+
import { APIError as n, OAuth2ProviderType as r } from "@coinbase/cdp-core";
|
|
2
|
+
import { CDPContext as i, CDPHooksProvider as t } from "./index2.js";
|
|
3
|
+
import { useConfig as a, useCurrentUser as S, useEnforceAuthenticated as m, useEnforceUnauthenticated as d, useEvmAddress as p, useExportEvmAccount as c, useExportSolanaAccount as g, useGetAccessToken as E, useIsInitialized as f, useIsSignedIn as v, useOAuthState as A, useSendEvmTransaction as P, useSendSolanaTransaction as h, useSendUserOperation as x, useSignEvmHash as T, useSignEvmMessage as l, useSignEvmTransaction as I, useSignEvmTypedData as O, useSignInWithEmail as C, useSignInWithOAuth as y, useSignInWithSms as U, useSignOut as W, useSignSolanaMessage as k, useSignSolanaTransaction as D, useSolanaAddress as H, useVerifyEmailOTP as M, useVerifySmsOTP as V, useWaitForUserOperation as z } from "./index3.js";
|
|
4
|
+
import { useCreateSpendPermission as G } from "./index4.js";
|
|
5
|
+
import { useListSpendPermissions as R } from "./index5.js";
|
|
6
|
+
import { useRevokeSpendPermission as j } from "./index6.js";
|
|
7
7
|
export {
|
|
8
8
|
n as APIError,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
S as
|
|
15
|
-
m as
|
|
16
|
-
d as
|
|
9
|
+
i as CDPContext,
|
|
10
|
+
t as CDPHooksProvider,
|
|
11
|
+
r as OAuth2ProviderType,
|
|
12
|
+
a as useConfig,
|
|
13
|
+
G as useCreateSpendPermission,
|
|
14
|
+
S as useCurrentUser,
|
|
15
|
+
m as useEnforceAuthenticated,
|
|
16
|
+
d as useEnforceUnauthenticated,
|
|
17
|
+
p as useEvmAddress,
|
|
17
18
|
c as useExportEvmAccount,
|
|
18
|
-
|
|
19
|
+
g as useExportSolanaAccount,
|
|
19
20
|
E as useGetAccessToken,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
T as
|
|
29
|
-
|
|
30
|
-
I as
|
|
21
|
+
f as useIsInitialized,
|
|
22
|
+
v as useIsSignedIn,
|
|
23
|
+
R as useListSpendPermissions,
|
|
24
|
+
A as useOAuthState,
|
|
25
|
+
j as useRevokeSpendPermission,
|
|
26
|
+
P as useSendEvmTransaction,
|
|
27
|
+
h as useSendSolanaTransaction,
|
|
28
|
+
x as useSendUserOperation,
|
|
29
|
+
T as useSignEvmHash,
|
|
30
|
+
l as useSignEvmMessage,
|
|
31
|
+
I as useSignEvmTransaction,
|
|
32
|
+
O as useSignEvmTypedData,
|
|
31
33
|
C as useSignInWithEmail,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
k as
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
y as useSignInWithOAuth,
|
|
35
|
+
U as useSignInWithSms,
|
|
36
|
+
W as useSignOut,
|
|
37
|
+
k as useSignSolanaMessage,
|
|
38
|
+
D as useSignSolanaTransaction,
|
|
39
|
+
H as useSolanaAddress,
|
|
40
|
+
M as useVerifyEmailOTP,
|
|
41
|
+
V as useVerifySmsOTP,
|
|
42
|
+
z as useWaitForUserOperation
|
|
40
43
|
};
|
package/dist/esm/index2.js
CHANGED
|
@@ -1,35 +1,38 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { initialize as
|
|
3
|
-
import { createContext as
|
|
4
|
-
const
|
|
5
|
-
function
|
|
6
|
-
const [n,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
await
|
|
10
|
-
|
|
11
|
-
}),
|
|
12
|
-
})()
|
|
1
|
+
import { jsx as h } from "react/jsx-runtime";
|
|
2
|
+
import { onOAuthStateChange as m, initialize as P, onAuthStateChange as d } from "@coinbase/cdp-core";
|
|
3
|
+
import { createContext as f, useState as s, useEffect as x, useMemo as S, useContext as A } from "react";
|
|
4
|
+
const a = f(null);
|
|
5
|
+
function I({ children: t, config: e }) {
|
|
6
|
+
const [n, c] = s(null), [r, i] = s(!1), [u, l] = s(null);
|
|
7
|
+
x(() => {
|
|
8
|
+
i(!1), (async () => {
|
|
9
|
+
await P(e), d((o) => {
|
|
10
|
+
c(o);
|
|
11
|
+
}), i(!0);
|
|
12
|
+
})(), m((o) => {
|
|
13
|
+
l(o);
|
|
14
|
+
});
|
|
13
15
|
}, [e]);
|
|
14
|
-
const
|
|
16
|
+
const C = S(
|
|
15
17
|
() => ({
|
|
16
18
|
isInitialized: r,
|
|
17
19
|
currentUser: n,
|
|
18
20
|
isSignedIn: !!n,
|
|
19
|
-
config: e
|
|
21
|
+
config: e,
|
|
22
|
+
oauthState: u
|
|
20
23
|
}),
|
|
21
|
-
[n, r, e]
|
|
24
|
+
[n, r, e, u]
|
|
22
25
|
);
|
|
23
|
-
return /* @__PURE__ */
|
|
26
|
+
return /* @__PURE__ */ h(a.Provider, { value: C, children: t });
|
|
24
27
|
}
|
|
25
|
-
function
|
|
26
|
-
const t =
|
|
28
|
+
function y() {
|
|
29
|
+
const t = A(a);
|
|
27
30
|
if (!t)
|
|
28
31
|
throw new Error("useCDP must be used within a CDPHooksProvider");
|
|
29
32
|
return t;
|
|
30
33
|
}
|
|
31
34
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
a as CDPContext,
|
|
36
|
+
I as CDPHooksProvider,
|
|
37
|
+
y as useCDP
|
|
35
38
|
};
|
package/dist/esm/index217.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { stringToBytes as i } from "./index112.js";
|
|
2
|
-
import { encodeLabelhash as h } from "./
|
|
2
|
+
import { encodeLabelhash as h } from "./index249.js";
|
|
3
3
|
import { labelhash as f } from "./index111.js";
|
|
4
4
|
function y(s) {
|
|
5
5
|
const o = s.replace(/^\.|\.$/gm, "");
|
package/dist/esm/index218.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseAvatarUri as o, parseNftUri as f, getNftTokenUri as v, resolveAvatarUri as l, getJsonImage as A, getMetadataAvatarUri as N } from "./
|
|
1
|
+
import { parseAvatarUri as o, parseNftUri as f, getNftTokenUri as v, resolveAvatarUri as l, getJsonImage as A, getMetadataAvatarUri as N } from "./index250.js";
|
|
2
2
|
async function b(r, { gatewayUrls: t, record: e }) {
|
|
3
3
|
return /eip155:/i.test(e) ? U(r, { gatewayUrls: t, record: e }) : o({ uri: e, gatewayUrls: t });
|
|
4
4
|
}
|
package/dist/esm/index219.js
CHANGED
package/dist/esm/index224.js
CHANGED
package/dist/esm/index230.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { from as t } from "./index253.js";
|
|
2
2
|
import { encode as m } from "./index254.js";
|
|
3
|
-
import { concat as c } from "./
|
|
3
|
+
import { concat as c } from "./index251.js";
|
|
4
4
|
function s(o, e) {
|
|
5
5
|
const { bytecode: r, args: n } = e;
|
|
6
6
|
return c(r, o.inputs?.length && n?.length ? m(o.inputs, n) : "0x");
|
package/dist/esm/index231.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { from as c, fromAbi as m, NotFoundError as i, getSelector as s } from "./index253.js";
|
|
2
2
|
import { encode as u } from "./index254.js";
|
|
3
|
-
import { concat as d } from "./
|
|
3
|
+
import { concat as d } from "./index251.js";
|
|
4
4
|
function S(o, ...t) {
|
|
5
5
|
const { overloads: r } = o, e = r ? p([o, ...r], o.name, {
|
|
6
6
|
args: t[0]
|
package/dist/esm/index248.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { concatHex as i } from "./index117.js";
|
|
2
|
+
import { hexToBytes as m } from "./index112.js";
|
|
3
|
+
import { numberToHex as c } from "./index113.js";
|
|
4
|
+
import { toRlp as d } from "./index158.js";
|
|
5
|
+
import { keccak256 as f } from "./index114.js";
|
|
6
|
+
function b(o) {
|
|
7
|
+
const { chainId: t, nonce: r, to: s } = o, e = o.contractAddress ?? o.address, n = f(i([
|
|
8
|
+
"0x05",
|
|
9
|
+
d([
|
|
10
|
+
t ? c(t) : "0x",
|
|
11
|
+
e,
|
|
12
|
+
r ? c(r) : "0x"
|
|
13
|
+
])
|
|
14
|
+
]));
|
|
15
|
+
return s === "bytes" ? m(n) : n;
|
|
3
16
|
}
|
|
4
17
|
export {
|
|
5
|
-
|
|
18
|
+
b as hashAuthorization
|
|
6
19
|
};
|
package/dist/esm/index249.js
CHANGED
|
@@ -1,139 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const v = /(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/, A = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/, b = /^data:([a-zA-Z\-/+]*);base64,([^"].*)/, E = /^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;
|
|
4
|
-
async function k(e) {
|
|
5
|
-
try {
|
|
6
|
-
const t = await fetch(e, { method: "HEAD" });
|
|
7
|
-
return t.status === 200 ? t.headers.get("content-type")?.startsWith("image/") : !1;
|
|
8
|
-
} catch (t) {
|
|
9
|
-
return typeof t == "object" && typeof t.response < "u" || !globalThis.hasOwnProperty("Image") ? !1 : new Promise((n) => {
|
|
10
|
-
const a = new Image();
|
|
11
|
-
a.onload = () => {
|
|
12
|
-
n(!0);
|
|
13
|
-
}, a.onerror = () => {
|
|
14
|
-
n(!1);
|
|
15
|
-
}, a.src = e;
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function l(e, t) {
|
|
20
|
-
return e ? e.endsWith("/") ? e.slice(0, -1) : e : t;
|
|
21
|
-
}
|
|
22
|
-
function C({ uri: e, gatewayUrls: t }) {
|
|
23
|
-
const n = b.test(e);
|
|
24
|
-
if (n)
|
|
25
|
-
return { uri: e, isOnChain: !0, isEncoded: n };
|
|
26
|
-
const a = l(t?.ipfs, "https://ipfs.io"), r = l(t?.arweave, "https://arweave.net"), f = e.match(v), { protocol: i, subpath: c, target: s, subtarget: h = "" } = f?.groups || {}, u = i === "ipns:/" || c === "ipns/", m = i === "ipfs:/" || c === "ipfs/" || A.test(e);
|
|
27
|
-
if (e.startsWith("http") && !u && !m) {
|
|
28
|
-
let g = e;
|
|
29
|
-
return t?.arweave && (g = e.replace(/https:\/\/arweave.net/g, t?.arweave)), { uri: g, isOnChain: !1, isEncoded: !1 };
|
|
30
|
-
}
|
|
31
|
-
if ((u || m) && s)
|
|
32
|
-
return {
|
|
33
|
-
uri: `${a}/${u ? "ipns" : "ipfs"}/${s}${h}`,
|
|
34
|
-
isOnChain: !1,
|
|
35
|
-
isEncoded: !1
|
|
36
|
-
};
|
|
37
|
-
if (i === "ar:/" && s)
|
|
38
|
-
return {
|
|
39
|
-
uri: `${r}/${s}${h || ""}`,
|
|
40
|
-
isOnChain: !1,
|
|
41
|
-
isEncoded: !1
|
|
42
|
-
};
|
|
43
|
-
let o = e.replace(E, "");
|
|
44
|
-
if (o.startsWith("<svg") && (o = `data:image/svg+xml;base64,${btoa(o)}`), o.startsWith("data:") || o.startsWith("{"))
|
|
45
|
-
return {
|
|
46
|
-
uri: o,
|
|
47
|
-
isOnChain: !0,
|
|
48
|
-
isEncoded: !1
|
|
49
|
-
};
|
|
50
|
-
throw new d({ uri: e });
|
|
51
|
-
}
|
|
52
|
-
function U(e) {
|
|
53
|
-
if (typeof e != "object" || !("image" in e) && !("image_url" in e) && !("image_data" in e))
|
|
54
|
-
throw new y({ data: e });
|
|
55
|
-
return e.image || e.image_url || e.image_data;
|
|
56
|
-
}
|
|
57
|
-
async function $({ gatewayUrls: e, uri: t }) {
|
|
58
|
-
try {
|
|
59
|
-
const n = await fetch(t).then((r) => r.json());
|
|
60
|
-
return await R({
|
|
61
|
-
gatewayUrls: e,
|
|
62
|
-
uri: U(n)
|
|
63
|
-
});
|
|
64
|
-
} catch {
|
|
65
|
-
throw new d({ uri: t });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
async function R({ gatewayUrls: e, uri: t }) {
|
|
69
|
-
const { uri: n, isOnChain: a } = C({ uri: t, gatewayUrls: e });
|
|
70
|
-
if (a || await k(n))
|
|
71
|
-
return n;
|
|
72
|
-
throw new d({ uri: t });
|
|
73
|
-
}
|
|
74
|
-
function D(e) {
|
|
75
|
-
let t = e;
|
|
76
|
-
t.startsWith("did:nft:") && (t = t.replace("did:nft:", "").replace(/_/g, "/"));
|
|
77
|
-
const [n, a, r] = t.split("/"), [f, i] = n.split(":"), [c, s] = a.split(":");
|
|
78
|
-
if (!f || f.toLowerCase() !== "eip155")
|
|
79
|
-
throw new p({ reason: "Only EIP-155 supported" });
|
|
80
|
-
if (!i)
|
|
81
|
-
throw new p({ reason: "Chain ID not found" });
|
|
82
|
-
if (!s)
|
|
83
|
-
throw new p({
|
|
84
|
-
reason: "Contract address not found"
|
|
85
|
-
});
|
|
86
|
-
if (!r)
|
|
87
|
-
throw new p({ reason: "Token ID not found" });
|
|
88
|
-
if (!c)
|
|
89
|
-
throw new p({ reason: "ERC namespace not found" });
|
|
90
|
-
return {
|
|
91
|
-
chainID: Number.parseInt(i),
|
|
92
|
-
namespace: c.toLowerCase(),
|
|
93
|
-
contractAddress: s,
|
|
94
|
-
tokenID: r
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
async function O(e, { nft: t }) {
|
|
98
|
-
if (t.namespace === "erc721")
|
|
99
|
-
return w(e, {
|
|
100
|
-
address: t.contractAddress,
|
|
101
|
-
abi: [
|
|
102
|
-
{
|
|
103
|
-
name: "tokenURI",
|
|
104
|
-
type: "function",
|
|
105
|
-
stateMutability: "view",
|
|
106
|
-
inputs: [{ name: "tokenId", type: "uint256" }],
|
|
107
|
-
outputs: [{ name: "", type: "string" }]
|
|
108
|
-
}
|
|
109
|
-
],
|
|
110
|
-
functionName: "tokenURI",
|
|
111
|
-
args: [BigInt(t.tokenID)]
|
|
112
|
-
});
|
|
113
|
-
if (t.namespace === "erc1155")
|
|
114
|
-
return w(e, {
|
|
115
|
-
address: t.contractAddress,
|
|
116
|
-
abi: [
|
|
117
|
-
{
|
|
118
|
-
name: "uri",
|
|
119
|
-
type: "function",
|
|
120
|
-
stateMutability: "view",
|
|
121
|
-
inputs: [{ name: "_id", type: "uint256" }],
|
|
122
|
-
outputs: [{ name: "", type: "string" }]
|
|
123
|
-
}
|
|
124
|
-
],
|
|
125
|
-
functionName: "uri",
|
|
126
|
-
args: [BigInt(t.tokenID)]
|
|
127
|
-
});
|
|
128
|
-
throw new I({ namespace: t.namespace });
|
|
1
|
+
function n(e) {
|
|
2
|
+
return `[${e.slice(2)}]`;
|
|
129
3
|
}
|
|
130
4
|
export {
|
|
131
|
-
|
|
132
|
-
U as getJsonImage,
|
|
133
|
-
$ as getMetadataAvatarUri,
|
|
134
|
-
O as getNftTokenUri,
|
|
135
|
-
k as isImageUri,
|
|
136
|
-
R as parseAvatarUri,
|
|
137
|
-
D as parseNftUri,
|
|
138
|
-
C as resolveAvatarUri
|
|
5
|
+
n as encodeLabelhash
|
|
139
6
|
};
|
package/dist/esm/index250.js
CHANGED
|
@@ -1,158 +1,139 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function y(t, e = {}) {
|
|
6
|
-
const { strict: r = !1 } = e;
|
|
7
|
-
if (!t)
|
|
8
|
-
throw new f(t);
|
|
9
|
-
if (typeof t != "string")
|
|
10
|
-
throw new f(t);
|
|
11
|
-
if (r && !/^0x[0-9a-fA-F]*$/.test(t))
|
|
12
|
-
throw new l(t);
|
|
13
|
-
if (!t.startsWith("0x"))
|
|
14
|
-
throw new l(t);
|
|
15
|
-
}
|
|
16
|
-
function B(...t) {
|
|
17
|
-
return `0x${t.reduce((e, r) => e + r.replace("0x", ""), "")}`;
|
|
18
|
-
}
|
|
19
|
-
function P(t, e = {}) {
|
|
20
|
-
const r = `0x${Number(t)}`;
|
|
21
|
-
return typeof e.size == "number" ? (g(r, e.size), x(r, e.size)) : r;
|
|
22
|
-
}
|
|
23
|
-
function w(t, e = {}) {
|
|
24
|
-
let r = "";
|
|
25
|
-
for (let i = 0; i < t.length; i++)
|
|
26
|
-
r += h[t[i]];
|
|
27
|
-
const n = `0x${r}`;
|
|
28
|
-
return typeof e.size == "number" ? (g(n, e.size), E(n, e.size)) : n;
|
|
29
|
-
}
|
|
30
|
-
function V(t, e = {}) {
|
|
31
|
-
const { signed: r, size: n } = e, i = BigInt(t);
|
|
32
|
-
let s;
|
|
33
|
-
n ? r ? s = (1n << BigInt(n) * 8n - 1n) - 1n : s = 2n ** (BigInt(n) * 8n) - 1n : typeof t == "number" && (s = BigInt(Number.MAX_SAFE_INTEGER));
|
|
34
|
-
const u = typeof s == "bigint" && r ? -s - 1n : 0;
|
|
35
|
-
if (s && i > s || i < u) {
|
|
36
|
-
const a = typeof t == "bigint" ? "n" : "";
|
|
37
|
-
throw new O({
|
|
38
|
-
max: s ? `${s}${a}` : void 0,
|
|
39
|
-
min: `${u}${a}`,
|
|
40
|
-
signed: r,
|
|
41
|
-
size: n,
|
|
42
|
-
value: `${t}${a}`
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
const c = `0x${(r && i < 0 ? (1n << BigInt(n * 8)) + BigInt(i) : i).toString(16)}`;
|
|
46
|
-
return n ? x(c, n) : c;
|
|
47
|
-
}
|
|
48
|
-
function j(t, e = {}) {
|
|
49
|
-
return w($.encode(t), e);
|
|
50
|
-
}
|
|
51
|
-
function x(t, e) {
|
|
52
|
-
return d(t, { dir: "left", size: e });
|
|
53
|
-
}
|
|
54
|
-
function E(t, e) {
|
|
55
|
-
return d(t, { dir: "right", size: e });
|
|
56
|
-
}
|
|
57
|
-
function v(t, e, r, n = {}) {
|
|
58
|
-
const { strict: i } = n;
|
|
59
|
-
p(t, e);
|
|
60
|
-
const s = `0x${t.replace("0x", "").slice((e ?? 0) * 2, (r ?? t.length) * 2)}`;
|
|
61
|
-
return i && m(s, e, r), s;
|
|
62
|
-
}
|
|
63
|
-
function A(t) {
|
|
64
|
-
return Math.ceil((t.length - 2) / 2);
|
|
65
|
-
}
|
|
66
|
-
function N(t, e = {}) {
|
|
67
|
-
const { strict: r = !1 } = e;
|
|
1
|
+
import { readContract as w } from "./index59.js";
|
|
2
|
+
import { EnsAvatarUriResolutionError as d, EnsAvatarInvalidNftUriError as p, EnsAvatarUnsupportedNamespaceError as I, EnsAvatarInvalidMetadataError as y } from "./index103.js";
|
|
3
|
+
const v = /(?<protocol>https?:\/\/[^\/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/, A = /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/, b = /^data:([a-zA-Z\-/+]*);base64,([^"].*)/, E = /^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;
|
|
4
|
+
async function k(e) {
|
|
68
5
|
try {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
writable: !0,
|
|
80
|
-
value: "Hex.IntegerOutOfRangeError"
|
|
6
|
+
const t = await fetch(e, { method: "HEAD" });
|
|
7
|
+
return t.status === 200 ? t.headers.get("content-type")?.startsWith("image/") : !1;
|
|
8
|
+
} catch (t) {
|
|
9
|
+
return typeof t == "object" && typeof t.response < "u" || !globalThis.hasOwnProperty("Image") ? !1 : new Promise((n) => {
|
|
10
|
+
const a = new Image();
|
|
11
|
+
a.onload = () => {
|
|
12
|
+
n(!0);
|
|
13
|
+
}, a.onerror = () => {
|
|
14
|
+
n(!1);
|
|
15
|
+
}, a.src = e;
|
|
81
16
|
});
|
|
82
17
|
}
|
|
83
18
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
19
|
+
function l(e, t) {
|
|
20
|
+
return e ? e.endsWith("/") ? e.slice(0, -1) : e : t;
|
|
21
|
+
}
|
|
22
|
+
function C({ uri: e, gatewayUrls: t }) {
|
|
23
|
+
const n = b.test(e);
|
|
24
|
+
if (n)
|
|
25
|
+
return { uri: e, isOnChain: !0, isEncoded: n };
|
|
26
|
+
const a = l(t?.ipfs, "https://ipfs.io"), r = l(t?.arweave, "https://arweave.net"), f = e.match(v), { protocol: i, subpath: c, target: s, subtarget: h = "" } = f?.groups || {}, u = i === "ipns:/" || c === "ipns/", m = i === "ipfs:/" || c === "ipfs/" || A.test(e);
|
|
27
|
+
if (e.startsWith("http") && !u && !m) {
|
|
28
|
+
let g = e;
|
|
29
|
+
return t?.arweave && (g = e.replace(/https:\/\/arweave.net/g, t?.arweave)), { uri: g, isOnChain: !1, isEncoded: !1 };
|
|
94
30
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
31
|
+
if ((u || m) && s)
|
|
32
|
+
return {
|
|
33
|
+
uri: `${a}/${u ? "ipns" : "ipfs"}/${s}${h}`,
|
|
34
|
+
isOnChain: !1,
|
|
35
|
+
isEncoded: !1
|
|
36
|
+
};
|
|
37
|
+
if (i === "ar:/" && s)
|
|
38
|
+
return {
|
|
39
|
+
uri: `${r}/${s}${h || ""}`,
|
|
40
|
+
isOnChain: !1,
|
|
41
|
+
isEncoded: !1
|
|
42
|
+
};
|
|
43
|
+
let o = e.replace(E, "");
|
|
44
|
+
if (o.startsWith("<svg") && (o = `data:image/svg+xml;base64,${btoa(o)}`), o.startsWith("data:") || o.startsWith("{"))
|
|
45
|
+
return {
|
|
46
|
+
uri: o,
|
|
47
|
+
isOnChain: !0,
|
|
48
|
+
isEncoded: !1
|
|
49
|
+
};
|
|
50
|
+
throw new d({ uri: e });
|
|
51
|
+
}
|
|
52
|
+
function U(e) {
|
|
53
|
+
if (typeof e != "object" || !("image" in e) && !("image_url" in e) && !("image_data" in e))
|
|
54
|
+
throw new y({ data: e });
|
|
55
|
+
return e.image || e.image_url || e.image_data;
|
|
56
|
+
}
|
|
57
|
+
async function $({ gatewayUrls: e, uri: t }) {
|
|
58
|
+
try {
|
|
59
|
+
const n = await fetch(t).then((r) => r.json());
|
|
60
|
+
return await R({
|
|
61
|
+
gatewayUrls: e,
|
|
62
|
+
uri: U(n)
|
|
107
63
|
});
|
|
64
|
+
} catch {
|
|
65
|
+
throw new d({ uri: t });
|
|
108
66
|
}
|
|
109
67
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
68
|
+
async function R({ gatewayUrls: e, uri: t }) {
|
|
69
|
+
const { uri: n, isOnChain: a } = C({ uri: t, gatewayUrls: e });
|
|
70
|
+
if (a || await k(n))
|
|
71
|
+
return n;
|
|
72
|
+
throw new d({ uri: t });
|
|
73
|
+
}
|
|
74
|
+
function D(e) {
|
|
75
|
+
let t = e;
|
|
76
|
+
t.startsWith("did:nft:") && (t = t.replace("did:nft:", "").replace(/_/g, "/"));
|
|
77
|
+
const [n, a, r] = t.split("/"), [f, i] = n.split(":"), [c, s] = a.split(":");
|
|
78
|
+
if (!f || f.toLowerCase() !== "eip155")
|
|
79
|
+
throw new p({ reason: "Only EIP-155 supported" });
|
|
80
|
+
if (!i)
|
|
81
|
+
throw new p({ reason: "Chain ID not found" });
|
|
82
|
+
if (!s)
|
|
83
|
+
throw new p({
|
|
84
|
+
reason: "Contract address not found"
|
|
117
85
|
});
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
86
|
+
if (!r)
|
|
87
|
+
throw new p({ reason: "Token ID not found" });
|
|
88
|
+
if (!c)
|
|
89
|
+
throw new p({ reason: "ERC namespace not found" });
|
|
90
|
+
return {
|
|
91
|
+
chainID: Number.parseInt(i),
|
|
92
|
+
namespace: c.toLowerCase(),
|
|
93
|
+
contractAddress: s,
|
|
94
|
+
tokenID: r
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async function O(e, { nft: t }) {
|
|
98
|
+
if (t.namespace === "erc721")
|
|
99
|
+
return w(e, {
|
|
100
|
+
address: t.contractAddress,
|
|
101
|
+
abi: [
|
|
102
|
+
{
|
|
103
|
+
name: "tokenURI",
|
|
104
|
+
type: "function",
|
|
105
|
+
stateMutability: "view",
|
|
106
|
+
inputs: [{ name: "tokenId", type: "uint256" }],
|
|
107
|
+
outputs: [{ name: "", type: "string" }]
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
functionName: "tokenURI",
|
|
111
|
+
args: [BigInt(t.tokenID)]
|
|
127
112
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
113
|
+
if (t.namespace === "erc1155")
|
|
114
|
+
return w(e, {
|
|
115
|
+
address: t.contractAddress,
|
|
116
|
+
abi: [
|
|
117
|
+
{
|
|
118
|
+
name: "uri",
|
|
119
|
+
type: "function",
|
|
120
|
+
stateMutability: "view",
|
|
121
|
+
inputs: [{ name: "_id", type: "uint256" }],
|
|
122
|
+
outputs: [{ name: "", type: "string" }]
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
functionName: "uri",
|
|
126
|
+
args: [BigInt(t.tokenID)]
|
|
137
127
|
});
|
|
138
|
-
}
|
|
128
|
+
throw new I({ namespace: t.namespace });
|
|
139
129
|
}
|
|
140
130
|
export {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
P as fromBoolean,
|
|
150
|
-
w as fromBytes,
|
|
151
|
-
V as fromNumber,
|
|
152
|
-
j as fromString,
|
|
153
|
-
x as padLeft,
|
|
154
|
-
E as padRight,
|
|
155
|
-
A as size,
|
|
156
|
-
v as slice,
|
|
157
|
-
N as validate
|
|
131
|
+
l as getGateway,
|
|
132
|
+
U as getJsonImage,
|
|
133
|
+
$ as getMetadataAvatarUri,
|
|
134
|
+
O as getNftTokenUri,
|
|
135
|
+
k as isImageUri,
|
|
136
|
+
R as parseAvatarUri,
|
|
137
|
+
D as parseNftUri,
|
|
138
|
+
C as resolveAvatarUri
|
|
158
139
|
};
|
package/dist/esm/index251.js
CHANGED
|
@@ -1,12 +1,158 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { BaseError as o } from "./index261.js";
|
|
2
|
+
import { stringify as b } from "./index262.js";
|
|
3
|
+
import { pad as d, assertEndOffset as m, assertSize as g, assertStartOffset as p } from "./index263.js";
|
|
4
|
+
const $ = /* @__PURE__ */ new TextEncoder(), h = /* @__PURE__ */ Array.from({ length: 256 }, (t, e) => e.toString(16).padStart(2, "0"));
|
|
5
|
+
function y(t, e = {}) {
|
|
6
|
+
const { strict: r = !1 } = e;
|
|
7
|
+
if (!t)
|
|
8
|
+
throw new f(t);
|
|
9
|
+
if (typeof t != "string")
|
|
10
|
+
throw new f(t);
|
|
11
|
+
if (r && !/^0x[0-9a-fA-F]*$/.test(t))
|
|
12
|
+
throw new l(t);
|
|
13
|
+
if (!t.startsWith("0x"))
|
|
14
|
+
throw new l(t);
|
|
15
|
+
}
|
|
16
|
+
function B(...t) {
|
|
17
|
+
return `0x${t.reduce((e, r) => e + r.replace("0x", ""), "")}`;
|
|
18
|
+
}
|
|
19
|
+
function P(t, e = {}) {
|
|
20
|
+
const r = `0x${Number(t)}`;
|
|
21
|
+
return typeof e.size == "number" ? (g(r, e.size), x(r, e.size)) : r;
|
|
22
|
+
}
|
|
23
|
+
function w(t, e = {}) {
|
|
24
|
+
let r = "";
|
|
25
|
+
for (let i = 0; i < t.length; i++)
|
|
26
|
+
r += h[t[i]];
|
|
27
|
+
const n = `0x${r}`;
|
|
28
|
+
return typeof e.size == "number" ? (g(n, e.size), E(n, e.size)) : n;
|
|
29
|
+
}
|
|
30
|
+
function V(t, e = {}) {
|
|
31
|
+
const { signed: r, size: n } = e, i = BigInt(t);
|
|
32
|
+
let s;
|
|
33
|
+
n ? r ? s = (1n << BigInt(n) * 8n - 1n) - 1n : s = 2n ** (BigInt(n) * 8n) - 1n : typeof t == "number" && (s = BigInt(Number.MAX_SAFE_INTEGER));
|
|
34
|
+
const u = typeof s == "bigint" && r ? -s - 1n : 0;
|
|
35
|
+
if (s && i > s || i < u) {
|
|
36
|
+
const a = typeof t == "bigint" ? "n" : "";
|
|
37
|
+
throw new O({
|
|
38
|
+
max: s ? `${s}${a}` : void 0,
|
|
39
|
+
min: `${u}${a}`,
|
|
40
|
+
signed: r,
|
|
41
|
+
size: n,
|
|
42
|
+
value: `${t}${a}`
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const c = `0x${(r && i < 0 ? (1n << BigInt(n * 8)) + BigInt(i) : i).toString(16)}`;
|
|
46
|
+
return n ? x(c, n) : c;
|
|
47
|
+
}
|
|
48
|
+
function j(t, e = {}) {
|
|
49
|
+
return w($.encode(t), e);
|
|
50
|
+
}
|
|
51
|
+
function x(t, e) {
|
|
52
|
+
return d(t, { dir: "left", size: e });
|
|
53
|
+
}
|
|
54
|
+
function E(t, e) {
|
|
55
|
+
return d(t, { dir: "right", size: e });
|
|
56
|
+
}
|
|
57
|
+
function v(t, e, r, n = {}) {
|
|
58
|
+
const { strict: i } = n;
|
|
59
|
+
p(t, e);
|
|
60
|
+
const s = `0x${t.replace("0x", "").slice((e ?? 0) * 2, (r ?? t.length) * 2)}`;
|
|
61
|
+
return i && m(s, e, r), s;
|
|
62
|
+
}
|
|
63
|
+
function A(t) {
|
|
64
|
+
return Math.ceil((t.length - 2) / 2);
|
|
65
|
+
}
|
|
66
|
+
function N(t, e = {}) {
|
|
67
|
+
const { strict: r = !1 } = e;
|
|
68
|
+
try {
|
|
69
|
+
return y(t, { strict: r }), !0;
|
|
70
|
+
} catch {
|
|
71
|
+
return !1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class O extends o {
|
|
75
|
+
constructor({ max: e, min: r, signed: n, size: i, value: s }) {
|
|
76
|
+
super(`Number \`${s}\` is not in safe${i ? ` ${i * 8}-bit` : ""}${n ? " signed" : " unsigned"} integer range ${e ? `(\`${r}\` to \`${e}\`)` : `(above \`${r}\`)`}`), Object.defineProperty(this, "name", {
|
|
77
|
+
enumerable: !0,
|
|
78
|
+
configurable: !0,
|
|
79
|
+
writable: !0,
|
|
80
|
+
value: "Hex.IntegerOutOfRangeError"
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
class f extends o {
|
|
85
|
+
constructor(e) {
|
|
86
|
+
super(`Value \`${typeof e == "object" ? b(e) : e}\` of type \`${typeof e}\` is an invalid hex type.`, {
|
|
87
|
+
metaMessages: ['Hex types must be represented as `"0x${string}"`.']
|
|
88
|
+
}), Object.defineProperty(this, "name", {
|
|
89
|
+
enumerable: !0,
|
|
90
|
+
configurable: !0,
|
|
91
|
+
writable: !0,
|
|
92
|
+
value: "Hex.InvalidHexTypeError"
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
class l extends o {
|
|
97
|
+
constructor(e) {
|
|
98
|
+
super(`Value \`${e}\` is an invalid hex value.`, {
|
|
99
|
+
metaMessages: [
|
|
100
|
+
'Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).'
|
|
101
|
+
]
|
|
102
|
+
}), Object.defineProperty(this, "name", {
|
|
103
|
+
enumerable: !0,
|
|
104
|
+
configurable: !0,
|
|
105
|
+
writable: !0,
|
|
106
|
+
value: "Hex.InvalidHexValueError"
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
class _ extends o {
|
|
111
|
+
constructor({ givenSize: e, maxSize: r }) {
|
|
112
|
+
super(`Size cannot exceed \`${r}\` bytes. Given size: \`${e}\` bytes.`), Object.defineProperty(this, "name", {
|
|
113
|
+
enumerable: !0,
|
|
114
|
+
configurable: !0,
|
|
115
|
+
writable: !0,
|
|
116
|
+
value: "Hex.SizeOverflowError"
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
class M extends o {
|
|
121
|
+
constructor({ offset: e, position: r, size: n }) {
|
|
122
|
+
super(`Slice ${r === "start" ? "starting" : "ending"} at offset \`${e}\` is out-of-bounds (size: \`${n}\`).`), Object.defineProperty(this, "name", {
|
|
123
|
+
enumerable: !0,
|
|
124
|
+
configurable: !0,
|
|
125
|
+
writable: !0,
|
|
126
|
+
value: "Hex.SliceOffsetOutOfBoundsError"
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
class R extends o {
|
|
131
|
+
constructor({ size: e, targetSize: r, type: n }) {
|
|
132
|
+
super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${r}\`).`), Object.defineProperty(this, "name", {
|
|
133
|
+
enumerable: !0,
|
|
134
|
+
configurable: !0,
|
|
135
|
+
writable: !0,
|
|
136
|
+
value: "Hex.SizeExceedsPaddingSizeError"
|
|
137
|
+
});
|
|
138
|
+
}
|
|
9
139
|
}
|
|
10
140
|
export {
|
|
11
|
-
|
|
141
|
+
O as IntegerOutOfRangeError,
|
|
142
|
+
f as InvalidHexTypeError,
|
|
143
|
+
l as InvalidHexValueError,
|
|
144
|
+
R as SizeExceedsPaddingSizeError,
|
|
145
|
+
_ as SizeOverflowError,
|
|
146
|
+
M as SliceOffsetOutOfBoundsError,
|
|
147
|
+
y as assert,
|
|
148
|
+
B as concat,
|
|
149
|
+
P as fromBoolean,
|
|
150
|
+
w as fromBytes,
|
|
151
|
+
V as fromNumber,
|
|
152
|
+
j as fromString,
|
|
153
|
+
x as padLeft,
|
|
154
|
+
E as padRight,
|
|
155
|
+
A as size,
|
|
156
|
+
v as slice,
|
|
157
|
+
N as validate
|
|
12
158
|
};
|
package/dist/esm/index252.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
d([
|
|
10
|
-
t ? c(t) : "0x",
|
|
11
|
-
e,
|
|
12
|
-
r ? c(r) : "0x"
|
|
13
|
-
])
|
|
14
|
-
]));
|
|
15
|
-
return s === "bytes" ? m(n) : n;
|
|
1
|
+
import { fromNumber as e } from "./index251.js";
|
|
2
|
+
function r(o) {
|
|
3
|
+
return {
|
|
4
|
+
address: o.address,
|
|
5
|
+
amount: e(o.amount),
|
|
6
|
+
index: e(o.index),
|
|
7
|
+
validatorIndex: e(o.validatorIndex)
|
|
8
|
+
};
|
|
16
9
|
}
|
|
17
10
|
export {
|
|
18
|
-
|
|
11
|
+
r as toRpc
|
|
19
12
|
};
|
package/dist/esm/index253.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseError as y } from "./index261.js";
|
|
2
2
|
import { keccak256 as v } from "./index264.js";
|
|
3
|
-
import { validate as $, slice as A, fromString as S } from "./
|
|
3
|
+
import { validate as $, slice as A, fromString as S } from "./index251.js";
|
|
4
4
|
import { isArgOfType as E, normalizeSignature as p, getAmbiguousTypes as B } from "./index265.js";
|
|
5
5
|
import { parseAbiItem as l } from "./index204.js";
|
|
6
6
|
import { formatAbiItem as h } from "./index196.js";
|
package/dist/esm/index254.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assert as p } from "./index266.js";
|
|
2
2
|
import { BaseError as u } from "./index261.js";
|
|
3
|
-
import { size as y, padLeft as f, fromString as x, fromBoolean as w, fromNumber as E, padRight as P, concat as g } from "./
|
|
3
|
+
import { size as y, padLeft as f, fromString as x, fromBoolean as w, fromNumber as E, padRight as P, concat as g } from "./index251.js";
|
|
4
4
|
import { integerRegex as A, bytesRegex as $, arrayRegex as L } from "./index267.js";
|
|
5
5
|
import { prepareParameters as z, encode as I } from "./index268.js";
|
|
6
6
|
function N(n, e, t) {
|
package/dist/esm/index263.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SizeExceedsPaddingSizeError as s, size as i, SliceOffsetOutOfBoundsError as f, SizeOverflowError as p } from "./
|
|
1
|
+
import { SizeExceedsPaddingSizeError as s, size as i, SliceOffsetOutOfBoundsError as f, SizeOverflowError as p } from "./index251.js";
|
|
2
2
|
function c(t, e) {
|
|
3
3
|
if (i(t) > e)
|
|
4
4
|
throw new p({
|
package/dist/esm/index264.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { keccak_256 as f } from "./index188.js";
|
|
2
2
|
import { from as m } from "./index269.js";
|
|
3
|
-
import { fromBytes as s } from "./
|
|
3
|
+
import { fromBytes as s } from "./index251.js";
|
|
4
4
|
function p(t, o = {}) {
|
|
5
5
|
const { as: e = typeof t == "string" ? "Hex" : "Bytes" } = o, r = f(m(t));
|
|
6
6
|
return e === "Bytes" ? r : s(r);
|
package/dist/esm/index268.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InvalidTypeError as g, InvalidArrayError as b, ArrayLengthMismatchError as w, BytesSizeMismatchError as z } from "./index254.js";
|
|
2
2
|
import { assert as x } from "./index266.js";
|
|
3
3
|
import { BaseError as S } from "./index261.js";
|
|
4
|
-
import { size as d, fromNumber as f, concat as p, padLeft as h, fromBoolean as A, IntegerOutOfRangeError as E, padRight as y, fromString as I, slice as B } from "./
|
|
4
|
+
import { size as d, fromNumber as f, concat as p, padLeft as h, fromBoolean as A, IntegerOutOfRangeError as E, padRight as y, fromString as I, slice as B } from "./index251.js";
|
|
5
5
|
import { integerRegex as L } from "./index267.js";
|
|
6
6
|
function q({ checksumAddress: e, parameters: n, values: r }) {
|
|
7
7
|
const t = [];
|
package/dist/esm/index269.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseError as c } from "./index261.js";
|
|
2
|
-
import { padRight as h } from "./
|
|
2
|
+
import { padRight as h } from "./index251.js";
|
|
3
3
|
import { charCodeToBase16 as b, assertSize as g, pad as m } from "./index270.js";
|
|
4
4
|
import { assertSize as p } from "./index263.js";
|
|
5
5
|
const l = /* @__PURE__ */ new TextEncoder();
|
package/dist/esm/index3.js
CHANGED
|
@@ -1,156 +1,164 @@
|
|
|
1
|
-
import { getAccessToken as A, sendUserOperation as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { useCDP as
|
|
4
|
-
import { useAutoPolling as
|
|
5
|
-
import { getPublicClient as
|
|
6
|
-
const
|
|
7
|
-
const { config: n } =
|
|
1
|
+
import { getAccessToken as A, sendUserOperation as O, signInWithEmail as y, signInWithSms as I, verifyEmailOTP as U, verifySmsOTP as W, signInWithOAuth as P, signOut as x, signEvmHash as M, signEvmTransaction as k, sendEvmTransaction as C, signEvmMessage as H, signSolanaMessage as b, signEvmTypedData as D, exportEvmAccount as V, exportSolanaAccount as F, signSolanaTransaction as z, sendSolanaTransaction as G, getUserOperation as j } from "@coinbase/cdp-core";
|
|
2
|
+
import { useState as p, useEffect as v, useMemo as q, useCallback as f } from "react";
|
|
3
|
+
import { useCDP as u } from "./index2.js";
|
|
4
|
+
import { useAutoPolling as B } from "./index7.js";
|
|
5
|
+
import { getPublicClient as J } from "./index8.js";
|
|
6
|
+
const _ = () => {
|
|
7
|
+
const { config: n } = u();
|
|
8
8
|
return { config: n };
|
|
9
|
-
},
|
|
10
|
-
const { isInitialized: n } =
|
|
9
|
+
}, $ = () => {
|
|
10
|
+
const { isInitialized: n } = u();
|
|
11
11
|
return { isInitialized: n };
|
|
12
|
-
},
|
|
13
|
-
const {
|
|
12
|
+
}, R = () => ({ signInWithEmail: m(y) }), nn = () => ({ signInWithSms: m(I) }), tn = () => ({ verifyEmailOTP: m(U) }), en = () => ({ verifySmsOTP: m(W) }), sn = () => {
|
|
13
|
+
const n = m(P), { oauthState: t } = K();
|
|
14
|
+
return { signInWithOAuth: n, oauthState: t };
|
|
15
|
+
}, K = () => {
|
|
16
|
+
const { oauthState: n } = u();
|
|
17
|
+
return { oauthState: n };
|
|
18
|
+
}, rn = () => {
|
|
19
|
+
const { isSignedIn: n } = u();
|
|
14
20
|
return { isSignedIn: n };
|
|
15
21
|
}, w = () => {
|
|
16
|
-
const { currentUser: n } =
|
|
22
|
+
const { currentUser: n } = u();
|
|
17
23
|
return { currentUser: n };
|
|
18
|
-
},
|
|
24
|
+
}, an = () => ({ signOut: i(x) }), on = () => ({ getAccessToken: A }), cn = () => {
|
|
19
25
|
const { currentUser: n } = w();
|
|
20
26
|
return {
|
|
21
27
|
evmAddress: n?.evmSmartAccounts?.[0] ?? n?.evmAccounts?.[0] ?? null
|
|
22
28
|
};
|
|
23
|
-
},
|
|
29
|
+
}, un = () => {
|
|
24
30
|
const { currentUser: n } = w();
|
|
25
31
|
return {
|
|
26
32
|
solanaAddress: n?.solanaAccounts?.[0] ?? null
|
|
27
33
|
};
|
|
28
|
-
},
|
|
29
|
-
const [n,
|
|
30
|
-
async (
|
|
31
|
-
const o = await C(
|
|
32
|
-
return
|
|
34
|
+
}, pn = () => ({ signEvmHash: i(M) }), dn = () => ({ signEvmTransaction: i(k) }), ln = () => {
|
|
35
|
+
const [n, t] = p(null), [r, s] = p(null), [c, S] = p(null), { config: a } = u(), d = i(
|
|
36
|
+
async (g) => {
|
|
37
|
+
const o = await C(g);
|
|
38
|
+
return t({ hash: o.transactionHash, network: g.network }), S(null), s(null), o;
|
|
33
39
|
}
|
|
34
40
|
);
|
|
35
|
-
|
|
41
|
+
v(() => {
|
|
36
42
|
if (!n) return;
|
|
37
43
|
(async () => {
|
|
38
44
|
try {
|
|
39
|
-
const E = await
|
|
45
|
+
const E = await J(n.network, a).waitForTransactionReceipt({
|
|
40
46
|
hash: n.hash
|
|
41
47
|
});
|
|
42
|
-
|
|
48
|
+
s(E);
|
|
43
49
|
} catch (o) {
|
|
44
50
|
S(o instanceof Error ? o : new Error(String(o)));
|
|
45
51
|
}
|
|
46
52
|
})();
|
|
47
53
|
}, [n]);
|
|
48
|
-
const l =
|
|
54
|
+
const l = q(() => n ? r ? { status: "success", receipt: r } : c ? { status: "error", error: c } : { status: "pending", hash: n.hash } : { status: "idle" }, [n, r, c]);
|
|
49
55
|
return {
|
|
50
56
|
sendEvmTransaction: d,
|
|
51
57
|
data: l
|
|
52
58
|
};
|
|
53
|
-
},
|
|
54
|
-
sendSolanaTransaction: i(
|
|
59
|
+
}, Sn = () => ({ signEvmMessage: i(H) }), gn = () => ({ signSolanaMessage: i(b) }), mn = () => ({ signEvmTypedData: i(D) }), En = () => ({ exportEvmAccount: i(V) }), wn = () => ({ exportSolanaAccount: i(F) }), hn = () => ({ signSolanaTransaction: i(z) }), vn = () => ({
|
|
60
|
+
sendSolanaTransaction: i(G)
|
|
55
61
|
}), i = (n) => {
|
|
56
|
-
const { isSignedIn:
|
|
57
|
-
return
|
|
58
|
-
async (...
|
|
59
|
-
if (!
|
|
62
|
+
const { isSignedIn: t } = u();
|
|
63
|
+
return f(
|
|
64
|
+
async (...s) => {
|
|
65
|
+
if (!t)
|
|
60
66
|
throw new Error("User is not authenticated");
|
|
61
|
-
return n(...
|
|
67
|
+
return n(...s);
|
|
62
68
|
},
|
|
63
|
-
[
|
|
69
|
+
[t, n]
|
|
64
70
|
);
|
|
65
|
-
},
|
|
66
|
-
const { isSignedIn:
|
|
67
|
-
return
|
|
68
|
-
async (...
|
|
69
|
-
if (
|
|
71
|
+
}, m = (n) => {
|
|
72
|
+
const { isSignedIn: t } = u();
|
|
73
|
+
return f(
|
|
74
|
+
async (...s) => {
|
|
75
|
+
if (t)
|
|
70
76
|
throw new Error("User is already authenticated. Please sign out first.");
|
|
71
|
-
return n(...
|
|
77
|
+
return n(...s);
|
|
72
78
|
},
|
|
73
|
-
[
|
|
79
|
+
[t, n]
|
|
74
80
|
);
|
|
75
|
-
},
|
|
76
|
-
const [n,
|
|
81
|
+
}, fn = () => {
|
|
82
|
+
const [n, t] = p(void 0), { status: r, data: s, error: c } = L(n);
|
|
77
83
|
return {
|
|
78
84
|
sendUserOperation: i(
|
|
79
85
|
async (a) => {
|
|
80
|
-
const d = await
|
|
81
|
-
return
|
|
86
|
+
const d = await O(a);
|
|
87
|
+
return t({
|
|
82
88
|
userOperationHash: d.userOperationHash,
|
|
83
89
|
evmSmartAccount: a.evmSmartAccount,
|
|
84
90
|
network: a.network
|
|
85
91
|
}), d;
|
|
86
92
|
}
|
|
87
93
|
),
|
|
88
|
-
data:
|
|
94
|
+
data: s,
|
|
89
95
|
error: c,
|
|
90
|
-
status:
|
|
96
|
+
status: r
|
|
91
97
|
};
|
|
92
|
-
},
|
|
93
|
-
const { userOperationHash:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, [
|
|
97
|
-
const
|
|
98
|
-
return
|
|
98
|
+
}, L = (n = {}) => {
|
|
99
|
+
const { userOperationHash: t, evmSmartAccount: r, network: s, enabled: c } = n, [S, a] = p("idle"), [d, l] = p(void 0), [g, o] = p(void 0), { currentUser: E } = w();
|
|
100
|
+
v(() => {
|
|
101
|
+
t && r && s && (a(c !== !1 ? "pending" : "idle"), l(void 0), o(void 0));
|
|
102
|
+
}, [t, r, s, c]);
|
|
103
|
+
const h = c !== !1 && !!(t && r && s && E);
|
|
104
|
+
return B(
|
|
99
105
|
{
|
|
100
106
|
pollFn: async () => {
|
|
101
|
-
const
|
|
102
|
-
userOperationHash:
|
|
103
|
-
evmSmartAccount:
|
|
104
|
-
network:
|
|
107
|
+
const e = await j({
|
|
108
|
+
userOperationHash: t,
|
|
109
|
+
evmSmartAccount: r,
|
|
110
|
+
network: s
|
|
105
111
|
});
|
|
106
|
-
return l(
|
|
112
|
+
return l(e), e;
|
|
107
113
|
},
|
|
108
|
-
shouldStop: (
|
|
109
|
-
enabled:
|
|
110
|
-
onSuccess: (
|
|
111
|
-
if (
|
|
112
|
-
l(
|
|
113
|
-
else if (
|
|
114
|
-
const T =
|
|
114
|
+
shouldStop: (e) => e.status === "complete" || e.status === "dropped" || e.status === "failed",
|
|
115
|
+
enabled: h,
|
|
116
|
+
onSuccess: (e) => {
|
|
117
|
+
if (e.status === "complete")
|
|
118
|
+
l(e), a("success");
|
|
119
|
+
else if (e.status === "failed") {
|
|
120
|
+
const T = e.receipts?.[0]?.revert?.message || "User operation failed";
|
|
115
121
|
o(new Error(T)), a("error");
|
|
116
|
-
} else
|
|
122
|
+
} else e.status === "dropped" ? (o(new Error('User operation failed with status: "dropped"')), a("error")) : (l(e), a("error"));
|
|
117
123
|
},
|
|
118
|
-
onError: (
|
|
119
|
-
o(
|
|
124
|
+
onError: (e) => {
|
|
125
|
+
o(e), a("error");
|
|
120
126
|
}
|
|
121
127
|
},
|
|
122
|
-
[
|
|
128
|
+
[t, r, s, h]
|
|
123
129
|
), {
|
|
124
130
|
status: S,
|
|
125
131
|
data: d,
|
|
126
|
-
error:
|
|
132
|
+
error: g
|
|
127
133
|
};
|
|
128
134
|
};
|
|
129
135
|
export {
|
|
130
|
-
|
|
136
|
+
_ as useConfig,
|
|
131
137
|
w as useCurrentUser,
|
|
132
138
|
i as useEnforceAuthenticated,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
pn as
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
139
|
+
m as useEnforceUnauthenticated,
|
|
140
|
+
cn as useEvmAddress,
|
|
141
|
+
En as useExportEvmAccount,
|
|
142
|
+
wn as useExportSolanaAccount,
|
|
143
|
+
on as useGetAccessToken,
|
|
144
|
+
$ as useIsInitialized,
|
|
145
|
+
rn as useIsSignedIn,
|
|
146
|
+
K as useOAuthState,
|
|
147
|
+
ln as useSendEvmTransaction,
|
|
148
|
+
vn as useSendSolanaTransaction,
|
|
149
|
+
fn as useSendUserOperation,
|
|
150
|
+
pn as useSignEvmHash,
|
|
151
|
+
Sn as useSignEvmMessage,
|
|
152
|
+
dn as useSignEvmTransaction,
|
|
153
|
+
mn as useSignEvmTypedData,
|
|
154
|
+
R as useSignInWithEmail,
|
|
155
|
+
sn as useSignInWithOAuth,
|
|
156
|
+
nn as useSignInWithSms,
|
|
157
|
+
an as useSignOut,
|
|
158
|
+
gn as useSignSolanaMessage,
|
|
159
|
+
hn as useSignSolanaTransaction,
|
|
160
|
+
un as useSolanaAddress,
|
|
161
|
+
tn as useVerifyEmailOTP,
|
|
162
|
+
en as useVerifySmsOTP,
|
|
163
|
+
L as useWaitForUserOperation
|
|
156
164
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ import { Hex } from '@coinbase/cdp-core';
|
|
|
18
18
|
import { JSX } from 'react/jsx-runtime';
|
|
19
19
|
import { ListSpendPermissionsOptions } from '@coinbase/cdp-core';
|
|
20
20
|
import { ListSpendPermissionsResult } from '@coinbase/cdp-core';
|
|
21
|
+
import { OAuth2ProviderType } from '@coinbase/cdp-core';
|
|
22
|
+
import { OAuthFlowState } from '@coinbase/cdp-core';
|
|
21
23
|
import { ReactNode } from 'react';
|
|
22
24
|
import { RevokeSpendPermissionOptions as RevokeSpendPermissionOptions_2 } from '@coinbase/cdp-core';
|
|
23
25
|
import { RevokeSpendPermissionResult } from '@coinbase/cdp-core';
|
|
@@ -67,6 +69,7 @@ export declare interface CDPContextValue {
|
|
|
67
69
|
currentUser: User | null;
|
|
68
70
|
isSignedIn: boolean;
|
|
69
71
|
config: Config;
|
|
72
|
+
oauthState: OAuthFlowState | null;
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
export declare function CDPHooksProvider({ children, config }: CDPHooksProviderProps): JSX.Element;
|
|
@@ -100,6 +103,10 @@ export { GetUserOperationResult }
|
|
|
100
103
|
|
|
101
104
|
export { Hex }
|
|
102
105
|
|
|
106
|
+
export { OAuth2ProviderType }
|
|
107
|
+
|
|
108
|
+
export { OAuthFlowState }
|
|
109
|
+
|
|
103
110
|
export declare type RevokeSpendPermissionOptions = Omit<RevokeSpendPermissionOptions_2, "evmSmartAccount"> & {
|
|
104
111
|
evmSmartAccount?: EvmAddress;
|
|
105
112
|
};
|
|
@@ -213,6 +220,10 @@ export declare type UseListSpendPermissionsReturnType = {
|
|
|
213
220
|
refetch: () => void;
|
|
214
221
|
};
|
|
215
222
|
|
|
223
|
+
export declare const useOAuthState: () => {
|
|
224
|
+
oauthState: OAuthFlowState | null;
|
|
225
|
+
};
|
|
226
|
+
|
|
216
227
|
export { User }
|
|
217
228
|
|
|
218
229
|
export declare const useRevokeSpendPermission: () => UseRevokeSpendPermissionReturnType;
|
|
@@ -262,6 +273,11 @@ export declare const useSignInWithEmail: () => {
|
|
|
262
273
|
signInWithEmail: (options: SignInWithEmailOptions) => Promise<SignInWithEmailResult>;
|
|
263
274
|
};
|
|
264
275
|
|
|
276
|
+
export declare const useSignInWithOAuth: () => {
|
|
277
|
+
signInWithOAuth: (providerType: OAuth2ProviderType) => Promise<void>;
|
|
278
|
+
oauthState: OAuthFlowState | null;
|
|
279
|
+
};
|
|
280
|
+
|
|
265
281
|
export declare const useSignInWithSms: () => {
|
|
266
282
|
signInWithSms: (options: SignInWithSmsOptions) => Promise<SignInWithSmsResult>;
|
|
267
283
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinbase/cdp-hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.46",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"react": ">=18.2.0",
|
|
18
|
-
"@coinbase/cdp-core": "^0.0.
|
|
18
|
+
"@coinbase/cdp-core": "^0.0.46"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@testing-library/jest-dom": "^6.6.3",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@size-limit/webpack": "^11.2.0",
|
|
31
31
|
"@size-limit/webpack-why": "^11.2.0",
|
|
32
32
|
"size-limit": "^11.2.0",
|
|
33
|
-
"@coinbase/cdp-core": "^0.0.
|
|
33
|
+
"@coinbase/cdp-core": "^0.0.46"
|
|
34
34
|
},
|
|
35
35
|
"size-limit": [
|
|
36
36
|
{
|