@coinbase/cdp-hooks 0.0.75 → 0.0.76
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 +199 -5
- package/dist/esm/index177.js +3 -3
- package/dist/esm/index206.js +2 -2
- package/dist/esm/index209.js +2 -2
- package/dist/esm/index210.js +1 -1
- package/dist/esm/index214.js +3 -3
- package/dist/esm/index215.js +40 -38
- package/dist/esm/index216.js +2 -2
- package/dist/esm/index217.js +4 -69
- package/dist/esm/index218.js +10 -34
- package/dist/esm/index219.js +18 -13
- package/dist/esm/index220.js +8 -2
- package/dist/esm/index221.js +10 -39
- package/dist/esm/index222.js +67 -2
- package/dist/esm/index223.js +65 -4
- package/dist/esm/index224.js +184 -9
- package/dist/esm/index225.js +20 -17
- package/dist/esm/index226.js +42 -7
- package/dist/esm/index227.js +75 -10
- package/dist/esm/index228.js +40 -66
- package/dist/esm/index229.js +15 -64
- package/dist/esm/index230.js +12 -184
- package/dist/esm/index231.js +7 -22
- package/dist/esm/index232.js +6 -42
- package/dist/esm/index233.js +36 -76
- package/dist/esm/index234.js +15 -40
- package/dist/esm/index235.js +8 -16
- package/dist/esm/index236.js +12 -13
- package/dist/esm/index237.js +9 -7
- package/dist/esm/index238.js +16 -6
- package/dist/esm/index239.js +22 -36
- package/dist/esm/index240.js +30 -15
- package/dist/esm/index241.js +2 -9
- package/dist/esm/index242.js +13 -12
- package/dist/esm/index243.js +12 -9
- package/dist/esm/index244.js +46 -15
- package/dist/esm/index245.js +8 -21
- package/dist/esm/index246.js +13 -30
- package/dist/esm/index247.js +15 -2
- package/dist/esm/index248.js +8 -13
- package/dist/esm/index249.js +15 -12
- package/dist/esm/index250.js +24 -47
- package/dist/esm/index251.js +11 -9
- package/dist/esm/index252.js +24 -13
- package/dist/esm/index253.js +50 -13
- package/dist/esm/index254.js +15 -6
- package/dist/esm/index255.js +14 -15
- package/dist/esm/index256.js +11 -24
- package/dist/esm/index257.js +103 -11
- package/dist/esm/index258.js +5 -24
- package/dist/esm/index259.js +222 -50
- package/dist/esm/index260.js +6 -17
- package/dist/esm/index261.js +7 -15
- package/dist/esm/index262.js +26 -11
- package/dist/esm/index263.js +18 -102
- package/dist/esm/index264.js +145 -5
- package/dist/esm/index265.js +12 -223
- package/dist/esm/index266.js +36 -7
- package/dist/esm/index267.js +41 -6
- package/dist/esm/index268.js +37 -25
- package/dist/esm/index269.js +2 -20
- package/dist/esm/index270.js +69 -145
- package/dist/esm/index271.js +35 -13
- package/dist/esm/index272.js +15 -36
- package/dist/esm/index273.js +2 -42
- package/dist/esm/index277.js +3 -3
- package/dist/esm/index280.js +5 -5
- package/dist/esm/index281.js +4 -4
- package/dist/esm/index282.js +1 -1
- package/dist/esm/index284.js +2 -2
- package/dist/esm/index285.js +2 -2
- package/dist/esm/index286.js +1 -1
- package/dist/esm/index287.js +1 -1
- package/dist/esm/index288.js +65 -3
- package/dist/esm/index289.js +4 -65
- package/dist/esm/index290.js +40 -4
- package/dist/esm/index291.js +7 -40
- package/dist/esm/index292.js +62 -7
- package/dist/esm/index293.js +72 -57
- package/dist/esm/index294.js +4 -78
- package/dist/esm/index295.js +195 -4
- package/dist/esm/index296.js +3 -194
- package/dist/esm/index297.js +2 -2
- package/dist/esm/index3.js +1 -1
- package/dist/esm/index33.js +2 -2
- package/dist/esm/index40.js +1 -1
- package/dist/esm/index41.js +1 -1
- package/dist/esm/index44.js +3 -3
- package/dist/esm/index45.js +2 -2
- package/dist/esm/index46.js +3 -3
- package/dist/esm/index47.js +2 -2
- package/dist/esm/index48.js +3 -3
- package/dist/esm/index49.js +6 -6
- package/dist/esm/index50.js +2 -2
- package/dist/esm/index51.js +1 -1
- package/dist/esm/index52.js +1 -1
- package/dist/esm/index53.js +1 -1
- package/dist/esm/index54.js +1 -1
- package/dist/esm/index55.js +1 -1
- package/dist/esm/index56.js +1 -1
- package/dist/esm/index57.js +4 -4
- package/dist/esm/index58.js +1 -1
- package/dist/esm/index66.js +1 -1
- package/dist/esm/index67.js +2 -2
- package/dist/esm/index68.js +1 -1
- package/dist/esm/index73.js +1 -1
- package/dist/esm/index76.js +1 -1
- package/dist/esm/index79.js +1 -1
- package/dist/esm/index80.js +1 -1
- package/dist/esm/index81.js +3 -3
- package/dist/esm/index82.js +2 -2
- package/dist/esm/index83.js +1 -1
- package/dist/esm/index85.js +1 -1
- package/dist/esm/index86.js +1 -1
- package/dist/esm/index87.js +3 -3
- package/dist/esm/index88.js +3 -3
- package/dist/esm/index89.js +3 -3
- package/dist/esm/index90.js +3 -3
- package/dist/esm/index91.js +3 -3
- package/dist/esm/index92.js +3 -3
- package/dist/esm/index93.js +3 -3
- package/dist/esm/index94.js +1 -1
- package/dist/esm/index96.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -787,11 +787,17 @@ function CustomAuthSignIn() {
|
|
|
787
787
|
|
|
788
788
|
### Multi-Factor Authentication (MFA)
|
|
789
789
|
|
|
790
|
-
The CDP SDK provides hooks for implementing Multi-Factor Authentication using
|
|
790
|
+
The CDP SDK provides hooks for implementing Multi-Factor Authentication using two methods:
|
|
791
|
+
- **TOTP (Time-based One-Time Password)**: Users enroll using authenticator apps like Google Authenticator or Authy
|
|
792
|
+
- **SMS**: Users receive verification codes via text message to their phone number
|
|
791
793
|
|
|
792
|
-
|
|
794
|
+
MFA adds an extra layer of security for user accounts and sensitive operations.
|
|
793
795
|
|
|
794
|
-
|
|
796
|
+
> **Important**: Users must be authenticated (signed in) before they can enroll in MFA or perform MFA verification.
|
|
797
|
+
|
|
798
|
+
#### Enroll User in TOTP MFA
|
|
799
|
+
|
|
800
|
+
Use `useInitiateMfaEnrollment` and `useSubmitMfaEnrollment` to enroll a user in TOTP MFA:
|
|
795
801
|
|
|
796
802
|
```tsx lines
|
|
797
803
|
import {
|
|
@@ -882,9 +888,110 @@ function MfaEnrollment() {
|
|
|
882
888
|
}
|
|
883
889
|
```
|
|
884
890
|
|
|
885
|
-
####
|
|
891
|
+
#### Enroll User in SMS MFA
|
|
886
892
|
|
|
887
|
-
Use `
|
|
893
|
+
Use `useInitiateMfaEnrollment` and `useSubmitMfaEnrollment` to enroll a user in SMS MFA:
|
|
894
|
+
|
|
895
|
+
```tsx lines
|
|
896
|
+
import {
|
|
897
|
+
useInitiateMfaEnrollment,
|
|
898
|
+
useSubmitMfaEnrollment,
|
|
899
|
+
useCurrentUser
|
|
900
|
+
} from "@coinbase/cdp-hooks";
|
|
901
|
+
import { useState } from "react";
|
|
902
|
+
|
|
903
|
+
function SmsMfaEnrollment() {
|
|
904
|
+
const { initiateMfaEnrollment } = useInitiateMfaEnrollment();
|
|
905
|
+
const { submitMfaEnrollment } = useSubmitMfaEnrollment();
|
|
906
|
+
const { currentUser } = useCurrentUser();
|
|
907
|
+
const [phoneNumber, setPhoneNumber] = useState("");
|
|
908
|
+
const [mfaCode, setMfaCode] = useState("");
|
|
909
|
+
const [enrollmentInitiated, setEnrollmentInitiated] = useState(false);
|
|
910
|
+
|
|
911
|
+
const handleInitiateEnrollment = async () => {
|
|
912
|
+
try {
|
|
913
|
+
// Step 1: Initiate SMS MFA enrollment (sends OTP to phone)
|
|
914
|
+
const result = await initiateMfaEnrollment({
|
|
915
|
+
mfaMethod: "sms",
|
|
916
|
+
phoneNumber: phoneNumber // E.164 format (e.g., +14155552671)
|
|
917
|
+
});
|
|
918
|
+
|
|
919
|
+
console.log("SMS sent:", result.success);
|
|
920
|
+
setEnrollmentInitiated(true);
|
|
921
|
+
} catch (error) {
|
|
922
|
+
console.error("Failed to initiate SMS MFA enrollment:", error);
|
|
923
|
+
}
|
|
924
|
+
};
|
|
925
|
+
|
|
926
|
+
const handleSubmitEnrollment = async () => {
|
|
927
|
+
try {
|
|
928
|
+
// Step 2: Submit the 6-digit code received via SMS
|
|
929
|
+
const result = await submitMfaEnrollment({
|
|
930
|
+
mfaMethod: "sms",
|
|
931
|
+
mfaCode: mfaCode,
|
|
932
|
+
});
|
|
933
|
+
|
|
934
|
+
console.log("SMS MFA enrolled successfully for user:", result.user.userId);
|
|
935
|
+
console.log("SMS enrollment info:", result.user.mfaMethods?.sms);
|
|
936
|
+
setEnrollmentInitiated(false);
|
|
937
|
+
setPhoneNumber("");
|
|
938
|
+
setMfaCode("");
|
|
939
|
+
} catch (error) {
|
|
940
|
+
console.error("Failed to submit SMS MFA enrollment:", error);
|
|
941
|
+
}
|
|
942
|
+
};
|
|
943
|
+
|
|
944
|
+
if (!currentUser) {
|
|
945
|
+
return <div>Please sign in to enable SMS MFA</div>;
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
return (
|
|
949
|
+
<div>
|
|
950
|
+
<h2>Enable SMS MFA</h2>
|
|
951
|
+
|
|
952
|
+
{!enrollmentInitiated ? (
|
|
953
|
+
<div>
|
|
954
|
+
<input
|
|
955
|
+
type="tel"
|
|
956
|
+
placeholder="Phone number (e.g., +14155552671)"
|
|
957
|
+
value={phoneNumber}
|
|
958
|
+
onChange={(e) => setPhoneNumber(e.target.value)}
|
|
959
|
+
/>
|
|
960
|
+
<button
|
|
961
|
+
onClick={handleInitiateEnrollment}
|
|
962
|
+
disabled={!phoneNumber}
|
|
963
|
+
>
|
|
964
|
+
Send SMS Code
|
|
965
|
+
</button>
|
|
966
|
+
</div>
|
|
967
|
+
) : (
|
|
968
|
+
<div>
|
|
969
|
+
<p>A 6-digit code has been sent to {phoneNumber}</p>
|
|
970
|
+
|
|
971
|
+
<input
|
|
972
|
+
type="text"
|
|
973
|
+
placeholder="Enter 6-digit code"
|
|
974
|
+
value={mfaCode}
|
|
975
|
+
onChange={(e) => setMfaCode(e.target.value)}
|
|
976
|
+
maxLength={6}
|
|
977
|
+
/>
|
|
978
|
+
|
|
979
|
+
<button
|
|
980
|
+
onClick={handleSubmitEnrollment}
|
|
981
|
+
disabled={mfaCode.length !== 6}
|
|
982
|
+
>
|
|
983
|
+
Verify and Enable SMS MFA
|
|
984
|
+
</button>
|
|
985
|
+
</div>
|
|
986
|
+
)}
|
|
987
|
+
</div>
|
|
988
|
+
);
|
|
989
|
+
}
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
#### Verify TOTP MFA for Sensitive Operations
|
|
993
|
+
|
|
994
|
+
Use `useInitiateMfaVerification` and `useSubmitMfaVerification` to verify TOTP MFA for sensitive operations:
|
|
888
995
|
|
|
889
996
|
```tsx lines
|
|
890
997
|
import {
|
|
@@ -969,6 +1076,93 @@ function MfaVerification() {
|
|
|
969
1076
|
}
|
|
970
1077
|
```
|
|
971
1078
|
|
|
1079
|
+
#### Verify SMS MFA for Sensitive Operations
|
|
1080
|
+
|
|
1081
|
+
Use `useInitiateMfaVerification` and `useSubmitMfaVerification` to verify SMS MFA for sensitive operations:
|
|
1082
|
+
|
|
1083
|
+
```tsx lines
|
|
1084
|
+
import {
|
|
1085
|
+
useInitiateMfaVerification,
|
|
1086
|
+
useSubmitMfaVerification,
|
|
1087
|
+
useCurrentUser
|
|
1088
|
+
} from "@coinbase/cdp-hooks";
|
|
1089
|
+
import { useState } from "react";
|
|
1090
|
+
|
|
1091
|
+
function SmsMfaVerification() {
|
|
1092
|
+
const { initiateMfaVerification } = useInitiateMfaVerification();
|
|
1093
|
+
const { submitMfaVerification } = useSubmitMfaVerification();
|
|
1094
|
+
const { currentUser } = useCurrentUser();
|
|
1095
|
+
const [mfaCode, setMfaCode] = useState("");
|
|
1096
|
+
const [verificationInitiated, setVerificationInitiated] = useState(false);
|
|
1097
|
+
|
|
1098
|
+
const handleSensitiveOperation = async () => {
|
|
1099
|
+
try {
|
|
1100
|
+
// Step 1: Initiate SMS MFA verification (sends code to enrolled phone)
|
|
1101
|
+
await initiateMfaVerification({ mfaMethod: "sms" });
|
|
1102
|
+
setVerificationInitiated(true);
|
|
1103
|
+
|
|
1104
|
+
console.log("SMS sent to enrolled phone number. Enter your code.");
|
|
1105
|
+
} catch (error) {
|
|
1106
|
+
console.error("Failed to initiate SMS MFA verification:", error);
|
|
1107
|
+
}
|
|
1108
|
+
};
|
|
1109
|
+
|
|
1110
|
+
const handleVerifyMfa = async () => {
|
|
1111
|
+
try {
|
|
1112
|
+
// Step 2: Submit the 6-digit code from SMS
|
|
1113
|
+
await submitMfaVerification({
|
|
1114
|
+
mfaMethod: "sms",
|
|
1115
|
+
mfaCode: mfaCode,
|
|
1116
|
+
});
|
|
1117
|
+
|
|
1118
|
+
console.log("SMS MFA verified successfully");
|
|
1119
|
+
setVerificationInitiated(false);
|
|
1120
|
+
setMfaCode("");
|
|
1121
|
+
|
|
1122
|
+
// Now proceed with your sensitive operation
|
|
1123
|
+
// e.g., sign a transaction, export private key, etc.
|
|
1124
|
+
} catch (error) {
|
|
1125
|
+
console.error("SMS MFA verification failed:", error);
|
|
1126
|
+
}
|
|
1127
|
+
};
|
|
1128
|
+
|
|
1129
|
+
if (!currentUser) {
|
|
1130
|
+
return <div>Please sign in first</div>;
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
return (
|
|
1134
|
+
<div>
|
|
1135
|
+
<h2>Sensitive Operation (SMS MFA)</h2>
|
|
1136
|
+
|
|
1137
|
+
{!verificationInitiated ? (
|
|
1138
|
+
<button onClick={handleSensitiveOperation}>
|
|
1139
|
+
Perform Sensitive Operation
|
|
1140
|
+
</button>
|
|
1141
|
+
) : (
|
|
1142
|
+
<div>
|
|
1143
|
+
<p>A 6-digit code has been sent to your phone. Enter it to continue:</p>
|
|
1144
|
+
|
|
1145
|
+
<input
|
|
1146
|
+
type="text"
|
|
1147
|
+
placeholder="Enter 6-digit code"
|
|
1148
|
+
value={mfaCode}
|
|
1149
|
+
onChange={(e) => setMfaCode(e.target.value)}
|
|
1150
|
+
maxLength={6}
|
|
1151
|
+
/>
|
|
1152
|
+
|
|
1153
|
+
<button
|
|
1154
|
+
onClick={handleVerifyMfa}
|
|
1155
|
+
disabled={mfaCode.length !== 6}
|
|
1156
|
+
>
|
|
1157
|
+
Verify SMS MFA
|
|
1158
|
+
</button>
|
|
1159
|
+
</div>
|
|
1160
|
+
)}
|
|
1161
|
+
</div>
|
|
1162
|
+
);
|
|
1163
|
+
}
|
|
1164
|
+
```
|
|
1165
|
+
|
|
972
1166
|
#### Check MFA Configuration
|
|
973
1167
|
|
|
974
1168
|
Use `useGetMfaConfig` to check whether MFA is enabled for your project:
|
package/dist/esm/index177.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { sha256 as v } from "./
|
|
2
|
-
import { createCurve as G } from "./
|
|
3
|
-
import { Field as P, mod as h, pow2 as t } from "./
|
|
1
|
+
import { sha256 as v } from "./index257.js";
|
|
2
|
+
import { createCurve as G } from "./index258.js";
|
|
3
|
+
import { Field as P, mod as h, pow2 as t } from "./index259.js";
|
|
4
4
|
const B = {
|
|
5
5
|
p: BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),
|
|
6
6
|
n: BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),
|
package/dist/esm/index206.js
CHANGED
package/dist/esm/index209.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { split as L, rotlSH as T, rotlSL as S, rotlBH as m, rotlBL as F } from "./
|
|
2
|
-
import { createHasher as X, Hash as E, anumber as d, u32 as U, swap32IfBE as I, aexists as x, toBytes as P, abytes as k, aoutput as M, clean as y } from "./
|
|
1
|
+
import { split as L, rotlSH as T, rotlSL as S, rotlBH as m, rotlBL as F } from "./index263.js";
|
|
2
|
+
import { createHasher as X, Hash as E, anumber as d, u32 as U, swap32IfBE as I, aexists as x, toBytes as P, abytes as k, aoutput as M, clean as y } from "./index264.js";
|
|
3
3
|
const R = BigInt(0), f = BigInt(1), j = BigInt(2), q = BigInt(7), v = BigInt(256), z = BigInt(113), _ = [], g = [], B = [];
|
|
4
4
|
for (let n = 0, t = f, s = 1, i = 0; n < 24; n++) {
|
|
5
5
|
[s, i] = [i, (2 * s + 3 * i) % 5], _.push(2 * (5 * i + s)), g.push((n + 1) * (n + 2) / 2 % 64);
|
package/dist/esm/index210.js
CHANGED
package/dist/esm/index214.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { contracts as o } from "./
|
|
2
|
-
import { formatters as r } from "./
|
|
3
|
-
import { serializers as t } from "./
|
|
1
|
+
import { contracts as o } from "./index265.js";
|
|
2
|
+
import { formatters as r } from "./index266.js";
|
|
3
|
+
import { serializers as t } from "./index267.js";
|
|
4
4
|
const e = {
|
|
5
5
|
blockTime: 2e3,
|
|
6
6
|
contracts: o,
|
package/dist/esm/index215.js
CHANGED
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
import { version as u } from "./index216.js";
|
|
2
|
+
class a extends Error {
|
|
3
|
+
constructor(i, e = {}) {
|
|
4
|
+
const t = e.cause instanceof a ? e.cause.details : e.cause?.message ? e.cause.message : e.details, s = e.cause instanceof a && e.cause.docsPath || e.docsPath, r = [
|
|
5
|
+
i || "An error occurred.",
|
|
6
|
+
"",
|
|
7
|
+
...e.metaMessages ? [...e.metaMessages, ""] : [],
|
|
8
|
+
...s ? [`Docs: https://abitype.dev${s}`] : [],
|
|
9
|
+
...t ? [`Details: ${t}`] : [],
|
|
10
|
+
`Version: abitype@${u}`
|
|
11
|
+
].join(`
|
|
12
|
+
`);
|
|
13
|
+
super(r), Object.defineProperty(this, "details", {
|
|
14
|
+
enumerable: !0,
|
|
15
|
+
configurable: !0,
|
|
16
|
+
writable: !0,
|
|
17
|
+
value: void 0
|
|
18
|
+
}), Object.defineProperty(this, "docsPath", {
|
|
19
|
+
enumerable: !0,
|
|
20
|
+
configurable: !0,
|
|
21
|
+
writable: !0,
|
|
22
|
+
value: void 0
|
|
23
|
+
}), Object.defineProperty(this, "metaMessages", {
|
|
24
|
+
enumerable: !0,
|
|
25
|
+
configurable: !0,
|
|
26
|
+
writable: !0,
|
|
27
|
+
value: void 0
|
|
28
|
+
}), Object.defineProperty(this, "shortMessage", {
|
|
29
|
+
enumerable: !0,
|
|
30
|
+
configurable: !0,
|
|
31
|
+
writable: !0,
|
|
32
|
+
value: void 0
|
|
33
|
+
}), Object.defineProperty(this, "name", {
|
|
34
|
+
enumerable: !0,
|
|
35
|
+
configurable: !0,
|
|
36
|
+
writable: !0,
|
|
37
|
+
value: "AbiTypeError"
|
|
38
|
+
}), e.cause && (this.cause = e.cause), this.details = t, this.docsPath = s, this.metaMessages = e.metaMessages, this.shortMessage = i;
|
|
39
|
+
}
|
|
38
40
|
}
|
|
39
41
|
export {
|
|
40
|
-
|
|
42
|
+
a as BaseError
|
|
41
43
|
};
|
package/dist/esm/index216.js
CHANGED
package/dist/esm/index217.js
CHANGED
|
@@ -1,72 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
return h ? a.exports : (h = 1, function() {
|
|
5
|
-
var f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", u = {
|
|
6
|
-
// Bit-wise rotation left
|
|
7
|
-
rotl: function(r, t) {
|
|
8
|
-
return r << t | r >>> 32 - t;
|
|
9
|
-
},
|
|
10
|
-
// Bit-wise rotation right
|
|
11
|
-
rotr: function(r, t) {
|
|
12
|
-
return r << 32 - t | r >>> t;
|
|
13
|
-
},
|
|
14
|
-
// Swap big-endian to little-endian and vice versa
|
|
15
|
-
endian: function(r) {
|
|
16
|
-
if (r.constructor == Number)
|
|
17
|
-
return u.rotl(r, 8) & 16711935 | u.rotl(r, 24) & 4278255360;
|
|
18
|
-
for (var t = 0; t < r.length; t++)
|
|
19
|
-
r[t] = u.endian(r[t]);
|
|
20
|
-
return r;
|
|
21
|
-
},
|
|
22
|
-
// Generate an array of any length of random bytes
|
|
23
|
-
randomBytes: function(r) {
|
|
24
|
-
for (var t = []; r > 0; r--)
|
|
25
|
-
t.push(Math.floor(Math.random() * 256));
|
|
26
|
-
return t;
|
|
27
|
-
},
|
|
28
|
-
// Convert a byte array to big-endian 32-bit words
|
|
29
|
-
bytesToWords: function(r) {
|
|
30
|
-
for (var t = [], n = 0, o = 0; n < r.length; n++, o += 8)
|
|
31
|
-
t[o >>> 5] |= r[n] << 24 - o % 32;
|
|
32
|
-
return t;
|
|
33
|
-
},
|
|
34
|
-
// Convert big-endian 32-bit words to a byte array
|
|
35
|
-
wordsToBytes: function(r) {
|
|
36
|
-
for (var t = [], n = 0; n < r.length * 32; n += 8)
|
|
37
|
-
t.push(r[n >>> 5] >>> 24 - n % 32 & 255);
|
|
38
|
-
return t;
|
|
39
|
-
},
|
|
40
|
-
// Convert a byte array to a hex string
|
|
41
|
-
bytesToHex: function(r) {
|
|
42
|
-
for (var t = [], n = 0; n < r.length; n++)
|
|
43
|
-
t.push((r[n] >>> 4).toString(16)), t.push((r[n] & 15).toString(16));
|
|
44
|
-
return t.join("");
|
|
45
|
-
},
|
|
46
|
-
// Convert a hex string to a byte array
|
|
47
|
-
hexToBytes: function(r) {
|
|
48
|
-
for (var t = [], n = 0; n < r.length; n += 2)
|
|
49
|
-
t.push(parseInt(r.substr(n, 2), 16));
|
|
50
|
-
return t;
|
|
51
|
-
},
|
|
52
|
-
// Convert a byte array to a base-64 string
|
|
53
|
-
bytesToBase64: function(r) {
|
|
54
|
-
for (var t = [], n = 0; n < r.length; n += 3)
|
|
55
|
-
for (var o = r[n] << 16 | r[n + 1] << 8 | r[n + 2], e = 0; e < 4; e++)
|
|
56
|
-
n * 8 + e * 6 <= r.length * 8 ? t.push(f.charAt(o >>> 6 * (3 - e) & 63)) : t.push("=");
|
|
57
|
-
return t.join("");
|
|
58
|
-
},
|
|
59
|
-
// Convert a base-64 string to a byte array
|
|
60
|
-
base64ToBytes: function(r) {
|
|
61
|
-
r = r.replace(/[^A-Z0-9+\/]/ig, "");
|
|
62
|
-
for (var t = [], n = 0, o = 0; n < r.length; o = ++n % 4)
|
|
63
|
-
o != 0 && t.push((f.indexOf(r.charAt(n - 1)) & Math.pow(2, -2 * o + 8) - 1) << o * 2 | f.indexOf(r.charAt(n)) >>> 6 - o * 2);
|
|
64
|
-
return t;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
a.exports = u;
|
|
68
|
-
}(), a.exports);
|
|
1
|
+
import { formatAbiParameters as r } from "./index218.js";
|
|
2
|
+
function e(t) {
|
|
3
|
+
return t.type === "function" ? `function ${t.name}(${r(t.inputs)})${t.stateMutability && t.stateMutability !== "nonpayable" ? ` ${t.stateMutability}` : ""}${t.outputs?.length ? ` returns (${r(t.outputs)})` : ""}` : t.type === "event" ? `event ${t.name}(${r(t.inputs)})` : t.type === "error" ? `error ${t.name}(${r(t.inputs)})` : t.type === "constructor" ? `constructor(${r(t.inputs)})${t.stateMutability === "payable" ? " payable" : ""}` : t.type === "fallback" ? `fallback() external${t.stateMutability === "payable" ? " payable" : ""}` : "receive() external payable";
|
|
69
4
|
}
|
|
70
5
|
export {
|
|
71
|
-
|
|
6
|
+
e as formatAbiItem
|
|
72
7
|
};
|
package/dist/esm/index218.js
CHANGED
|
@@ -1,37 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return t.bin.stringToBytes(unescape(encodeURIComponent(n)));
|
|
11
|
-
},
|
|
12
|
-
// Convert a byte array to a string
|
|
13
|
-
bytesToString: function(n) {
|
|
14
|
-
return decodeURIComponent(escape(t.bin.bytesToString(n)));
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
// Binary encoding
|
|
18
|
-
bin: {
|
|
19
|
-
// Convert a string to a byte array
|
|
20
|
-
stringToBytes: function(n) {
|
|
21
|
-
for (var e = [], r = 0; r < n.length; r++)
|
|
22
|
-
e.push(n.charCodeAt(r) & 255);
|
|
23
|
-
return e;
|
|
24
|
-
},
|
|
25
|
-
// Convert a byte array to a string
|
|
26
|
-
bytesToString: function(n) {
|
|
27
|
-
for (var e = [], r = 0; r < n.length; r++)
|
|
28
|
-
e.push(String.fromCharCode(n[r]));
|
|
29
|
-
return e.join("");
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
return o = t, o;
|
|
1
|
+
import { formatAbiParameter as m } from "./index219.js";
|
|
2
|
+
function f(e) {
|
|
3
|
+
let r = "";
|
|
4
|
+
const o = e.length;
|
|
5
|
+
for (let t = 0; t < o; t++) {
|
|
6
|
+
const a = e[t];
|
|
7
|
+
r += m(a), t !== o - 1 && (r += ", ");
|
|
8
|
+
}
|
|
9
|
+
return r;
|
|
34
10
|
}
|
|
35
11
|
export {
|
|
36
|
-
|
|
12
|
+
f as formatAbiParameters
|
|
37
13
|
};
|
package/dist/esm/index219.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { execTyped as f } from "./index220.js";
|
|
2
|
+
const p = /^tuple(?<array>(\[(\d*)\])*)$/;
|
|
3
|
+
function c(n) {
|
|
4
|
+
let t = n.type;
|
|
5
|
+
if (p.test(n.type) && "components" in n) {
|
|
6
|
+
t = "(";
|
|
7
|
+
const e = n.components.length;
|
|
8
|
+
for (let o = 0; o < e; o++) {
|
|
9
|
+
const d = n.components[o];
|
|
10
|
+
t += c(d), o < e - 1 && (t += ", ");
|
|
11
|
+
}
|
|
12
|
+
const s = f(p, n.type);
|
|
13
|
+
return t += `)${s?.array ?? ""}`, c({
|
|
14
|
+
...n,
|
|
15
|
+
type: t
|
|
16
|
+
});
|
|
9
17
|
}
|
|
10
|
-
|
|
11
|
-
return typeof r.readFloatLE == "function" && typeof r.slice == "function" && u(r.slice(0, 0));
|
|
12
|
-
}
|
|
13
|
-
return f;
|
|
18
|
+
return "indexed" in n && n.indexed && (t = `${t} indexed`), n.name ? `${t} ${n.name}` : t;
|
|
14
19
|
}
|
|
15
20
|
export {
|
|
16
|
-
|
|
21
|
+
c as formatAbiParameter
|
|
17
22
|
};
|
package/dist/esm/index220.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
function n(e, t) {
|
|
2
|
+
return e.exec(t)?.groups;
|
|
3
|
+
}
|
|
4
|
+
const s = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/, o = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/, x = /^\(.+?\).*?$/;
|
|
2
5
|
export {
|
|
3
|
-
|
|
6
|
+
s as bytesRegex,
|
|
7
|
+
n as execTyped,
|
|
8
|
+
o as integerRegex,
|
|
9
|
+
x as isTupleRegex
|
|
4
10
|
};
|
package/dist/esm/index221.js
CHANGED
|
@@ -1,43 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
...t ? [`Details: ${t}`] : [],
|
|
10
|
-
`Version: abitype@${u}`
|
|
11
|
-
].join(`
|
|
12
|
-
`);
|
|
13
|
-
super(r), Object.defineProperty(this, "details", {
|
|
14
|
-
enumerable: !0,
|
|
15
|
-
configurable: !0,
|
|
16
|
-
writable: !0,
|
|
17
|
-
value: void 0
|
|
18
|
-
}), Object.defineProperty(this, "docsPath", {
|
|
19
|
-
enumerable: !0,
|
|
20
|
-
configurable: !0,
|
|
21
|
-
writable: !0,
|
|
22
|
-
value: void 0
|
|
23
|
-
}), Object.defineProperty(this, "metaMessages", {
|
|
24
|
-
enumerable: !0,
|
|
25
|
-
configurable: !0,
|
|
26
|
-
writable: !0,
|
|
27
|
-
value: void 0
|
|
28
|
-
}), Object.defineProperty(this, "shortMessage", {
|
|
29
|
-
enumerable: !0,
|
|
30
|
-
configurable: !0,
|
|
31
|
-
writable: !0,
|
|
32
|
-
value: void 0
|
|
33
|
-
}), Object.defineProperty(this, "name", {
|
|
34
|
-
enumerable: !0,
|
|
35
|
-
configurable: !0,
|
|
36
|
-
writable: !0,
|
|
37
|
-
value: "AbiTypeError"
|
|
38
|
-
}), e.cause && (this.cause = e.cause), this.details = t, this.docsPath = s, this.metaMessages = e.metaMessages, this.shortMessage = i;
|
|
1
|
+
import { isStructSignature as c } from "./index222.js";
|
|
2
|
+
import { parseStructs as s } from "./index223.js";
|
|
3
|
+
import { parseSignature as p } from "./index224.js";
|
|
4
|
+
function a(t) {
|
|
5
|
+
const i = s(t), o = [], e = t.length;
|
|
6
|
+
for (let r = 0; r < e; r++) {
|
|
7
|
+
const n = t[r];
|
|
8
|
+
c(n) || o.push(p(n, i));
|
|
39
9
|
}
|
|
10
|
+
return o;
|
|
40
11
|
}
|
|
41
12
|
export {
|
|
42
|
-
a as
|
|
13
|
+
a as parseAbi
|
|
43
14
|
};
|