@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.
Files changed (125) hide show
  1. package/README.md +199 -5
  2. package/dist/esm/index177.js +3 -3
  3. package/dist/esm/index206.js +2 -2
  4. package/dist/esm/index209.js +2 -2
  5. package/dist/esm/index210.js +1 -1
  6. package/dist/esm/index214.js +3 -3
  7. package/dist/esm/index215.js +40 -38
  8. package/dist/esm/index216.js +2 -2
  9. package/dist/esm/index217.js +4 -69
  10. package/dist/esm/index218.js +10 -34
  11. package/dist/esm/index219.js +18 -13
  12. package/dist/esm/index220.js +8 -2
  13. package/dist/esm/index221.js +10 -39
  14. package/dist/esm/index222.js +67 -2
  15. package/dist/esm/index223.js +65 -4
  16. package/dist/esm/index224.js +184 -9
  17. package/dist/esm/index225.js +20 -17
  18. package/dist/esm/index226.js +42 -7
  19. package/dist/esm/index227.js +75 -10
  20. package/dist/esm/index228.js +40 -66
  21. package/dist/esm/index229.js +15 -64
  22. package/dist/esm/index230.js +12 -184
  23. package/dist/esm/index231.js +7 -22
  24. package/dist/esm/index232.js +6 -42
  25. package/dist/esm/index233.js +36 -76
  26. package/dist/esm/index234.js +15 -40
  27. package/dist/esm/index235.js +8 -16
  28. package/dist/esm/index236.js +12 -13
  29. package/dist/esm/index237.js +9 -7
  30. package/dist/esm/index238.js +16 -6
  31. package/dist/esm/index239.js +22 -36
  32. package/dist/esm/index240.js +30 -15
  33. package/dist/esm/index241.js +2 -9
  34. package/dist/esm/index242.js +13 -12
  35. package/dist/esm/index243.js +12 -9
  36. package/dist/esm/index244.js +46 -15
  37. package/dist/esm/index245.js +8 -21
  38. package/dist/esm/index246.js +13 -30
  39. package/dist/esm/index247.js +15 -2
  40. package/dist/esm/index248.js +8 -13
  41. package/dist/esm/index249.js +15 -12
  42. package/dist/esm/index250.js +24 -47
  43. package/dist/esm/index251.js +11 -9
  44. package/dist/esm/index252.js +24 -13
  45. package/dist/esm/index253.js +50 -13
  46. package/dist/esm/index254.js +15 -6
  47. package/dist/esm/index255.js +14 -15
  48. package/dist/esm/index256.js +11 -24
  49. package/dist/esm/index257.js +103 -11
  50. package/dist/esm/index258.js +5 -24
  51. package/dist/esm/index259.js +222 -50
  52. package/dist/esm/index260.js +6 -17
  53. package/dist/esm/index261.js +7 -15
  54. package/dist/esm/index262.js +26 -11
  55. package/dist/esm/index263.js +18 -102
  56. package/dist/esm/index264.js +145 -5
  57. package/dist/esm/index265.js +12 -223
  58. package/dist/esm/index266.js +36 -7
  59. package/dist/esm/index267.js +41 -6
  60. package/dist/esm/index268.js +37 -25
  61. package/dist/esm/index269.js +2 -20
  62. package/dist/esm/index270.js +69 -145
  63. package/dist/esm/index271.js +35 -13
  64. package/dist/esm/index272.js +15 -36
  65. package/dist/esm/index273.js +2 -42
  66. package/dist/esm/index277.js +3 -3
  67. package/dist/esm/index280.js +5 -5
  68. package/dist/esm/index281.js +4 -4
  69. package/dist/esm/index282.js +1 -1
  70. package/dist/esm/index284.js +2 -2
  71. package/dist/esm/index285.js +2 -2
  72. package/dist/esm/index286.js +1 -1
  73. package/dist/esm/index287.js +1 -1
  74. package/dist/esm/index288.js +65 -3
  75. package/dist/esm/index289.js +4 -65
  76. package/dist/esm/index290.js +40 -4
  77. package/dist/esm/index291.js +7 -40
  78. package/dist/esm/index292.js +62 -7
  79. package/dist/esm/index293.js +72 -57
  80. package/dist/esm/index294.js +4 -78
  81. package/dist/esm/index295.js +195 -4
  82. package/dist/esm/index296.js +3 -194
  83. package/dist/esm/index297.js +2 -2
  84. package/dist/esm/index3.js +1 -1
  85. package/dist/esm/index33.js +2 -2
  86. package/dist/esm/index40.js +1 -1
  87. package/dist/esm/index41.js +1 -1
  88. package/dist/esm/index44.js +3 -3
  89. package/dist/esm/index45.js +2 -2
  90. package/dist/esm/index46.js +3 -3
  91. package/dist/esm/index47.js +2 -2
  92. package/dist/esm/index48.js +3 -3
  93. package/dist/esm/index49.js +6 -6
  94. package/dist/esm/index50.js +2 -2
  95. package/dist/esm/index51.js +1 -1
  96. package/dist/esm/index52.js +1 -1
  97. package/dist/esm/index53.js +1 -1
  98. package/dist/esm/index54.js +1 -1
  99. package/dist/esm/index55.js +1 -1
  100. package/dist/esm/index56.js +1 -1
  101. package/dist/esm/index57.js +4 -4
  102. package/dist/esm/index58.js +1 -1
  103. package/dist/esm/index66.js +1 -1
  104. package/dist/esm/index67.js +2 -2
  105. package/dist/esm/index68.js +1 -1
  106. package/dist/esm/index73.js +1 -1
  107. package/dist/esm/index76.js +1 -1
  108. package/dist/esm/index79.js +1 -1
  109. package/dist/esm/index80.js +1 -1
  110. package/dist/esm/index81.js +3 -3
  111. package/dist/esm/index82.js +2 -2
  112. package/dist/esm/index83.js +1 -1
  113. package/dist/esm/index85.js +1 -1
  114. package/dist/esm/index86.js +1 -1
  115. package/dist/esm/index87.js +3 -3
  116. package/dist/esm/index88.js +3 -3
  117. package/dist/esm/index89.js +3 -3
  118. package/dist/esm/index90.js +3 -3
  119. package/dist/esm/index91.js +3 -3
  120. package/dist/esm/index92.js +3 -3
  121. package/dist/esm/index93.js +3 -3
  122. package/dist/esm/index94.js +1 -1
  123. package/dist/esm/index96.js +1 -1
  124. package/dist/types/index.d.ts +2 -1
  125. 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 TOTP (Time-based One-Time Password). MFA adds an extra layer of security for user accounts and sensitive operations.
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
- #### Enroll User in MFA
794
+ MFA adds an extra layer of security for user accounts and sensitive operations.
793
795
 
794
- Use `useInitiateMfaEnrollment` and `useSubmitMfaEnrollment` to enroll a user in MFA:
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
- #### Verify MFA for Sensitive Operations
891
+ #### Enroll User in SMS MFA
886
892
 
887
- Use `useInitiateMfaVerification` and `useSubmitMfaVerification` to verify MFA for sensitive operations:
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:
@@ -1,6 +1,6 @@
1
- import { sha256 as v } from "./index263.js";
2
- import { createCurve as G } from "./index264.js";
3
- import { Field as P, mod as h, pow2 as t } from "./index265.js";
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"),
@@ -1,5 +1,5 @@
1
- import { hashSignature as t } from "./index266.js";
2
- import { toSignature as o } from "./index267.js";
1
+ import { hashSignature as t } from "./index260.js";
2
+ import { toSignature as o } from "./index261.js";
3
3
  function a(r) {
4
4
  return t(o(r));
5
5
  }
@@ -1,5 +1,5 @@
1
- import { split as L, rotlSH as T, rotlSL as S, rotlBH as m, rotlBL as F } from "./index269.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 "./index270.js";
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);
@@ -1,4 +1,4 @@
1
- import { sha256 as s } from "./index263.js";
1
+ import { sha256 as s } from "./index257.js";
2
2
  const o = s;
3
3
  export {
4
4
  o as sha256
@@ -1,6 +1,6 @@
1
- import { contracts as o } from "./index271.js";
2
- import { formatters as r } from "./index272.js";
3
- import { serializers as t } from "./index273.js";
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,
@@ -1,41 +1,43 @@
1
- import { __module as h } from "./index216.js";
2
- import { __require as S } from "./index217.js";
3
- import { __require as q } from "./index218.js";
4
- import { __require as w } from "./index219.js";
5
- var x;
6
- function G() {
7
- return x ? h.exports : (x = 1, function() {
8
- var v = S(), p = q().utf8, B = w(), F = q().bin, d = function(o, f) {
9
- o.constructor == String ? f && f.encoding === "binary" ? o = F.stringToBytes(o) : o = p.stringToBytes(o) : B(o) ? o = Array.prototype.slice.call(o, 0) : !Array.isArray(o) && o.constructor !== Uint8Array && (o = o.toString());
10
- for (var u = v.bytesToWords(o), a = o.length * 8, n = 1732584193, r = -271733879, i = -1732584194, t = 271733878, e = 0; e < u.length; e++)
11
- u[e] = (u[e] << 8 | u[e] >>> 24) & 16711935 | (u[e] << 24 | u[e] >>> 8) & 4278255360;
12
- u[a >>> 5] |= 128 << a % 32, u[(a + 64 >>> 9 << 4) + 14] = a;
13
- for (var _ = d._ff, c = d._gg, l = d._hh, y = d._ii, e = 0; e < u.length; e += 16) {
14
- var T = n, b = r, A = i, I = t;
15
- n = _(n, r, i, t, u[e + 0], 7, -680876936), t = _(t, n, r, i, u[e + 1], 12, -389564586), i = _(i, t, n, r, u[e + 2], 17, 606105819), r = _(r, i, t, n, u[e + 3], 22, -1044525330), n = _(n, r, i, t, u[e + 4], 7, -176418897), t = _(t, n, r, i, u[e + 5], 12, 1200080426), i = _(i, t, n, r, u[e + 6], 17, -1473231341), r = _(r, i, t, n, u[e + 7], 22, -45705983), n = _(n, r, i, t, u[e + 8], 7, 1770035416), t = _(t, n, r, i, u[e + 9], 12, -1958414417), i = _(i, t, n, r, u[e + 10], 17, -42063), r = _(r, i, t, n, u[e + 11], 22, -1990404162), n = _(n, r, i, t, u[e + 12], 7, 1804603682), t = _(t, n, r, i, u[e + 13], 12, -40341101), i = _(i, t, n, r, u[e + 14], 17, -1502002290), r = _(r, i, t, n, u[e + 15], 22, 1236535329), n = c(n, r, i, t, u[e + 1], 5, -165796510), t = c(t, n, r, i, u[e + 6], 9, -1069501632), i = c(i, t, n, r, u[e + 11], 14, 643717713), r = c(r, i, t, n, u[e + 0], 20, -373897302), n = c(n, r, i, t, u[e + 5], 5, -701558691), t = c(t, n, r, i, u[e + 10], 9, 38016083), i = c(i, t, n, r, u[e + 15], 14, -660478335), r = c(r, i, t, n, u[e + 4], 20, -405537848), n = c(n, r, i, t, u[e + 9], 5, 568446438), t = c(t, n, r, i, u[e + 14], 9, -1019803690), i = c(i, t, n, r, u[e + 3], 14, -187363961), r = c(r, i, t, n, u[e + 8], 20, 1163531501), n = c(n, r, i, t, u[e + 13], 5, -1444681467), t = c(t, n, r, i, u[e + 2], 9, -51403784), i = c(i, t, n, r, u[e + 7], 14, 1735328473), r = c(r, i, t, n, u[e + 12], 20, -1926607734), n = l(n, r, i, t, u[e + 5], 4, -378558), t = l(t, n, r, i, u[e + 8], 11, -2022574463), i = l(i, t, n, r, u[e + 11], 16, 1839030562), r = l(r, i, t, n, u[e + 14], 23, -35309556), n = l(n, r, i, t, u[e + 1], 4, -1530992060), t = l(t, n, r, i, u[e + 4], 11, 1272893353), i = l(i, t, n, r, u[e + 7], 16, -155497632), r = l(r, i, t, n, u[e + 10], 23, -1094730640), n = l(n, r, i, t, u[e + 13], 4, 681279174), t = l(t, n, r, i, u[e + 0], 11, -358537222), i = l(i, t, n, r, u[e + 3], 16, -722521979), r = l(r, i, t, n, u[e + 6], 23, 76029189), n = l(n, r, i, t, u[e + 9], 4, -640364487), t = l(t, n, r, i, u[e + 12], 11, -421815835), i = l(i, t, n, r, u[e + 15], 16, 530742520), r = l(r, i, t, n, u[e + 2], 23, -995338651), n = y(n, r, i, t, u[e + 0], 6, -198630844), t = y(t, n, r, i, u[e + 7], 10, 1126891415), i = y(i, t, n, r, u[e + 14], 15, -1416354905), r = y(r, i, t, n, u[e + 5], 21, -57434055), n = y(n, r, i, t, u[e + 12], 6, 1700485571), t = y(t, n, r, i, u[e + 3], 10, -1894986606), i = y(i, t, n, r, u[e + 10], 15, -1051523), r = y(r, i, t, n, u[e + 1], 21, -2054922799), n = y(n, r, i, t, u[e + 8], 6, 1873313359), t = y(t, n, r, i, u[e + 15], 10, -30611744), i = y(i, t, n, r, u[e + 6], 15, -1560198380), r = y(r, i, t, n, u[e + 13], 21, 1309151649), n = y(n, r, i, t, u[e + 4], 6, -145523070), t = y(t, n, r, i, u[e + 11], 10, -1120210379), i = y(i, t, n, r, u[e + 2], 15, 718787259), r = y(r, i, t, n, u[e + 9], 21, -343485551), n = n + T >>> 0, r = r + b >>> 0, i = i + A >>> 0, t = t + I >>> 0;
16
- }
17
- return v.endian([n, r, i, t]);
18
- };
19
- d._ff = function(o, f, u, a, n, r, i) {
20
- var t = o + (f & u | ~f & a) + (n >>> 0) + i;
21
- return (t << r | t >>> 32 - r) + f;
22
- }, d._gg = function(o, f, u, a, n, r, i) {
23
- var t = o + (f & a | u & ~a) + (n >>> 0) + i;
24
- return (t << r | t >>> 32 - r) + f;
25
- }, d._hh = function(o, f, u, a, n, r, i) {
26
- var t = o + (f ^ u ^ a) + (n >>> 0) + i;
27
- return (t << r | t >>> 32 - r) + f;
28
- }, d._ii = function(o, f, u, a, n, r, i) {
29
- var t = o + (u ^ (f | ~a)) + (n >>> 0) + i;
30
- return (t << r | t >>> 32 - r) + f;
31
- }, d._blocksize = 16, d._digestsize = 16, h.exports = function(o, f) {
32
- if (o == null)
33
- throw new Error("Illegal argument " + o);
34
- var u = v.wordsToBytes(d(o, f));
35
- return f && f.asBytes ? u : f && f.asString ? F.bytesToString(u) : v.bytesToHex(u);
36
- };
37
- }(), h.exports);
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
- G as __require
42
+ a as BaseError
41
43
  };
@@ -1,4 +1,4 @@
1
- var e = { exports: {} };
1
+ const o = "1.0.8";
2
2
  export {
3
- e as __module
3
+ o as version
4
4
  };
@@ -1,72 +1,7 @@
1
- import { __module as a } from "./index220.js";
2
- var h;
3
- function c() {
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
- c as __require
6
+ e as formatAbiItem
72
7
  };
@@ -1,37 +1,13 @@
1
- var o, u;
2
- function c() {
3
- if (u) return o;
4
- u = 1;
5
- var t = {
6
- // UTF-8 encoding
7
- utf8: {
8
- // Convert a string to a byte array
9
- stringToBytes: function(n) {
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
- c as __require
12
+ f as formatAbiParameters
37
13
  };
@@ -1,17 +1,22 @@
1
- var f, e;
2
- function t() {
3
- if (e) return f;
4
- e = 1, f = function(r) {
5
- return r != null && (u(r) || n(r) || !!r._isBuffer);
6
- };
7
- function u(r) {
8
- return !!r.constructor && typeof r.constructor.isBuffer == "function" && r.constructor.isBuffer(r);
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
- function n(r) {
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
- t as __require
21
+ c as formatAbiParameter
17
22
  };
@@ -1,4 +1,10 @@
1
- var r = { exports: {} };
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
- r as __module
6
+ s as bytesRegex,
7
+ n as execTyped,
8
+ o as integerRegex,
9
+ x as isTupleRegex
4
10
  };
@@ -1,43 +1,14 @@
1
- import { version as u } from "./index222.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;
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 BaseError
13
+ a as parseAbi
43
14
  };