@hashgraphonline/standards-sdk 0.0.102 → 0.0.103

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 (209) hide show
  1. package/dist/es/services/mirror-node.d.ts.map +1 -1
  2. package/dist/es/standards-sdk.es100.js +62 -8
  3. package/dist/es/standards-sdk.es100.js.map +1 -1
  4. package/dist/es/standards-sdk.es101.js +6 -18
  5. package/dist/es/standards-sdk.es101.js.map +1 -1
  6. package/dist/es/standards-sdk.es102.js +14 -5
  7. package/dist/es/standards-sdk.es102.js.map +1 -1
  8. package/dist/es/standards-sdk.es103.js +7 -9
  9. package/dist/es/standards-sdk.es103.js.map +1 -1
  10. package/dist/es/standards-sdk.es104.js +44 -12
  11. package/dist/es/standards-sdk.es104.js.map +1 -1
  12. package/dist/es/standards-sdk.es105.js +2 -13
  13. package/dist/es/standards-sdk.es105.js.map +1 -1
  14. package/dist/es/standards-sdk.es106.js +134 -30
  15. package/dist/es/standards-sdk.es106.js.map +1 -1
  16. package/dist/es/standards-sdk.es107.js +171 -14
  17. package/dist/es/standards-sdk.es107.js.map +1 -1
  18. package/dist/es/standards-sdk.es108.js +13 -4
  19. package/dist/es/standards-sdk.es108.js.map +1 -1
  20. package/dist/es/standards-sdk.es109.js +13 -4
  21. package/dist/es/standards-sdk.es109.js.map +1 -1
  22. package/dist/es/standards-sdk.es110.js +31 -15
  23. package/dist/es/standards-sdk.es110.js.map +1 -1
  24. package/dist/es/standards-sdk.es111.js +14 -4
  25. package/dist/es/standards-sdk.es111.js.map +1 -1
  26. package/dist/es/standards-sdk.es112.js +4 -39
  27. package/dist/es/standards-sdk.es112.js.map +1 -1
  28. package/dist/es/standards-sdk.es113.js +4 -40
  29. package/dist/es/standards-sdk.es113.js.map +1 -1
  30. package/dist/es/standards-sdk.es114.js +15 -36
  31. package/dist/es/standards-sdk.es114.js.map +1 -1
  32. package/dist/es/standards-sdk.es115.js +5 -78
  33. package/dist/es/standards-sdk.es115.js.map +1 -1
  34. package/dist/es/standards-sdk.es116.js +38 -418
  35. package/dist/es/standards-sdk.es116.js.map +1 -1
  36. package/dist/es/standards-sdk.es117.js +40 -2
  37. package/dist/es/standards-sdk.es117.js.map +1 -1
  38. package/dist/es/standards-sdk.es118.js +34 -117
  39. package/dist/es/standards-sdk.es118.js.map +1 -1
  40. package/dist/es/standards-sdk.es119.js +78 -3
  41. package/dist/es/standards-sdk.es119.js.map +1 -1
  42. package/dist/es/standards-sdk.es120.js +3 -2
  43. package/dist/es/standards-sdk.es120.js.map +1 -1
  44. package/dist/es/standards-sdk.es121.js +2 -2
  45. package/dist/es/standards-sdk.es121.js.map +1 -1
  46. package/dist/es/standards-sdk.es122.js +2 -34
  47. package/dist/es/standards-sdk.es122.js.map +1 -1
  48. package/dist/es/standards-sdk.es123.js +30 -29
  49. package/dist/es/standards-sdk.es123.js.map +1 -1
  50. package/dist/es/standards-sdk.es124.js +33 -9
  51. package/dist/es/standards-sdk.es124.js.map +1 -1
  52. package/dist/es/standards-sdk.es125.js +9 -34
  53. package/dist/es/standards-sdk.es125.js.map +1 -1
  54. package/dist/es/standards-sdk.es126.js +34 -4
  55. package/dist/es/standards-sdk.es126.js.map +1 -1
  56. package/dist/es/standards-sdk.es13.js +2 -2
  57. package/dist/es/standards-sdk.es18.js +2 -2
  58. package/dist/es/standards-sdk.es21.js +8 -4
  59. package/dist/es/standards-sdk.es21.js.map +1 -1
  60. package/dist/es/standards-sdk.es24.js +10 -10
  61. package/dist/es/standards-sdk.es26.js +3 -36
  62. package/dist/es/standards-sdk.es26.js.map +1 -1
  63. package/dist/es/standards-sdk.es27.js +4168 -48
  64. package/dist/es/standards-sdk.es27.js.map +1 -1
  65. package/dist/es/standards-sdk.es28.js +1 -1
  66. package/dist/es/standards-sdk.es29.js +9 -3
  67. package/dist/es/standards-sdk.es29.js.map +1 -1
  68. package/dist/es/standards-sdk.es30.js +2 -9
  69. package/dist/es/standards-sdk.es30.js.map +1 -1
  70. package/dist/es/standards-sdk.es31.js +36 -2
  71. package/dist/es/standards-sdk.es31.js.map +1 -1
  72. package/dist/es/standards-sdk.es32.js +48 -4168
  73. package/dist/es/standards-sdk.es32.js.map +1 -1
  74. package/dist/es/standards-sdk.es33.js +2 -2
  75. package/dist/es/standards-sdk.es34.js +1 -1
  76. package/dist/es/standards-sdk.es36.js +185 -74
  77. package/dist/es/standards-sdk.es36.js.map +1 -1
  78. package/dist/es/standards-sdk.es37.js +433 -18
  79. package/dist/es/standards-sdk.es37.js.map +1 -1
  80. package/dist/es/standards-sdk.es38.js +21 -144
  81. package/dist/es/standards-sdk.es38.js.map +1 -1
  82. package/dist/es/standards-sdk.es39.js +130 -82
  83. package/dist/es/standards-sdk.es39.js.map +1 -1
  84. package/dist/es/standards-sdk.es40.js +13 -169
  85. package/dist/es/standards-sdk.es40.js.map +1 -1
  86. package/dist/es/standards-sdk.es41.js +28 -5
  87. package/dist/es/standards-sdk.es41.js.map +1 -1
  88. package/dist/es/standards-sdk.es42.js +23 -137
  89. package/dist/es/standards-sdk.es42.js.map +1 -1
  90. package/dist/es/standards-sdk.es43.js +17 -191
  91. package/dist/es/standards-sdk.es43.js.map +1 -1
  92. package/dist/es/standards-sdk.es44.js +37 -431
  93. package/dist/es/standards-sdk.es44.js.map +1 -1
  94. package/dist/es/standards-sdk.es45.js +9 -16
  95. package/dist/es/standards-sdk.es45.js.map +1 -1
  96. package/dist/es/standards-sdk.es46.js +47 -125
  97. package/dist/es/standards-sdk.es46.js.map +1 -1
  98. package/dist/es/standards-sdk.es47.js +1284 -13
  99. package/dist/es/standards-sdk.es47.js.map +1 -1
  100. package/dist/es/standards-sdk.es48.js +140 -21
  101. package/dist/es/standards-sdk.es48.js.map +1 -1
  102. package/dist/es/standards-sdk.es49.js +87 -25
  103. package/dist/es/standards-sdk.es49.js.map +1 -1
  104. package/dist/es/standards-sdk.es50.js +80 -17
  105. package/dist/es/standards-sdk.es50.js.map +1 -1
  106. package/dist/es/standards-sdk.es51.js +27 -39
  107. package/dist/es/standards-sdk.es51.js.map +1 -1
  108. package/dist/es/standards-sdk.es52.js +5 -17
  109. package/dist/es/standards-sdk.es52.js.map +1 -1
  110. package/dist/es/standards-sdk.es53.js +149 -51
  111. package/dist/es/standards-sdk.es53.js.map +1 -1
  112. package/dist/es/standards-sdk.es54.js +19 -1285
  113. package/dist/es/standards-sdk.es54.js.map +1 -1
  114. package/dist/es/standards-sdk.es55.js +789 -28
  115. package/dist/es/standards-sdk.es55.js.map +1 -1
  116. package/dist/es/standards-sdk.es56.js +129 -145
  117. package/dist/es/standards-sdk.es56.js.map +1 -1
  118. package/dist/es/standards-sdk.es57.js +166 -785
  119. package/dist/es/standards-sdk.es57.js.map +1 -1
  120. package/dist/es/standards-sdk.es58.js +93 -356
  121. package/dist/es/standards-sdk.es58.js.map +1 -1
  122. package/dist/es/standards-sdk.es59.js +2 -6
  123. package/dist/es/standards-sdk.es59.js.map +1 -1
  124. package/dist/es/standards-sdk.es60.js +15 -178
  125. package/dist/es/standards-sdk.es60.js.map +1 -1
  126. package/dist/es/standards-sdk.es61.js +400 -72
  127. package/dist/es/standards-sdk.es61.js.map +1 -1
  128. package/dist/es/standards-sdk.es62.js +19 -112
  129. package/dist/es/standards-sdk.es62.js.map +1 -1
  130. package/dist/es/standards-sdk.es63.js +23 -48
  131. package/dist/es/standards-sdk.es63.js.map +1 -1
  132. package/dist/es/standards-sdk.es64.js +25 -9
  133. package/dist/es/standards-sdk.es64.js.map +1 -1
  134. package/dist/es/standards-sdk.es65.js +36 -95
  135. package/dist/es/standards-sdk.es65.js.map +1 -1
  136. package/dist/es/standards-sdk.es66.js +2282 -4
  137. package/dist/es/standards-sdk.es66.js.map +1 -1
  138. package/dist/es/standards-sdk.es67.js +164 -2
  139. package/dist/es/standards-sdk.es67.js.map +1 -1
  140. package/dist/es/standards-sdk.es68.js +3 -113
  141. package/dist/es/standards-sdk.es68.js.map +1 -1
  142. package/dist/es/standards-sdk.es69.js +7131 -69
  143. package/dist/es/standards-sdk.es69.js.map +1 -1
  144. package/dist/es/standards-sdk.es7.js +2 -2
  145. package/dist/es/standards-sdk.es70.js +9 -5
  146. package/dist/es/standards-sdk.es70.js.map +1 -1
  147. package/dist/es/standards-sdk.es71.js +10 -4
  148. package/dist/es/standards-sdk.es71.js.map +1 -1
  149. package/dist/es/standards-sdk.es72.js +16 -219
  150. package/dist/es/standards-sdk.es72.js.map +1 -1
  151. package/dist/es/standards-sdk.es73.js +5 -57
  152. package/dist/es/standards-sdk.es73.js.map +1 -1
  153. package/dist/es/standards-sdk.es74.js +9 -69
  154. package/dist/es/standards-sdk.es74.js.map +1 -1
  155. package/dist/es/standards-sdk.es75.js +405 -87
  156. package/dist/es/standards-sdk.es75.js.map +1 -1
  157. package/dist/es/standards-sdk.es76.js +2 -2
  158. package/dist/es/standards-sdk.es77.js +119 -15
  159. package/dist/es/standards-sdk.es77.js.map +1 -1
  160. package/dist/es/standards-sdk.es78.js +3 -408
  161. package/dist/es/standards-sdk.es78.js.map +1 -1
  162. package/dist/es/standards-sdk.es79.js +359 -22
  163. package/dist/es/standards-sdk.es79.js.map +1 -1
  164. package/dist/es/standards-sdk.es8.js +1 -1
  165. package/dist/es/standards-sdk.es80.js +5 -25
  166. package/dist/es/standards-sdk.es80.js.map +1 -1
  167. package/dist/es/standards-sdk.es81.js +177 -36
  168. package/dist/es/standards-sdk.es81.js.map +1 -1
  169. package/dist/es/standards-sdk.es82.js +76 -16
  170. package/dist/es/standards-sdk.es82.js.map +1 -1
  171. package/dist/es/standards-sdk.es83.js +113 -2281
  172. package/dist/es/standards-sdk.es83.js.map +1 -1
  173. package/dist/es/standards-sdk.es84.js +46 -158
  174. package/dist/es/standards-sdk.es84.js.map +1 -1
  175. package/dist/es/standards-sdk.es85.js +10 -3
  176. package/dist/es/standards-sdk.es85.js.map +1 -1
  177. package/dist/es/standards-sdk.es86.js +91 -26
  178. package/dist/es/standards-sdk.es86.js.map +1 -1
  179. package/dist/es/standards-sdk.es87.js +3 -62
  180. package/dist/es/standards-sdk.es87.js.map +1 -1
  181. package/dist/es/standards-sdk.es88.js +2 -50
  182. package/dist/es/standards-sdk.es88.js.map +1 -1
  183. package/dist/es/standards-sdk.es89.js +111 -8
  184. package/dist/es/standards-sdk.es89.js.map +1 -1
  185. package/dist/es/standards-sdk.es9.js +1 -1
  186. package/dist/es/standards-sdk.es90.js +70 -61
  187. package/dist/es/standards-sdk.es90.js.map +1 -1
  188. package/dist/es/standards-sdk.es91.js +6 -6
  189. package/dist/es/standards-sdk.es91.js.map +1 -1
  190. package/dist/es/standards-sdk.es92.js +4 -14
  191. package/dist/es/standards-sdk.es92.js.map +1 -1
  192. package/dist/es/standards-sdk.es93.js +221 -7
  193. package/dist/es/standards-sdk.es93.js.map +1 -1
  194. package/dist/es/standards-sdk.es94.js +54 -41
  195. package/dist/es/standards-sdk.es94.js.map +1 -1
  196. package/dist/es/standards-sdk.es95.js +69 -2
  197. package/dist/es/standards-sdk.es95.js.map +1 -1
  198. package/dist/es/standards-sdk.es96.js +31 -135
  199. package/dist/es/standards-sdk.es96.js.map +1 -1
  200. package/dist/es/standards-sdk.es97.js +55 -164
  201. package/dist/es/standards-sdk.es97.js.map +1 -1
  202. package/dist/es/standards-sdk.es98.js +45 -7131
  203. package/dist/es/standards-sdk.es98.js.map +1 -1
  204. package/dist/es/standards-sdk.es99.js +9 -9
  205. package/dist/es/standards-sdk.es99.js.map +1 -1
  206. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  207. package/dist/umd/standards-sdk.umd.js +1 -1
  208. package/dist/umd/standards-sdk.umd.js.map +1 -1
  209. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- import { getDefaultExportFromCjs } from "./standards-sdk.es126.js";
2
- import { __require as requireBrowser } from "./standards-sdk.es116.js";
1
+ import { getDefaultExportFromCjs } from "./standards-sdk.es78.js";
2
+ import { __require as requireBrowser } from "./standards-sdk.es75.js";
3
3
  var browserExports = requireBrowser();
4
4
  const pino = /* @__PURE__ */ getDefaultExportFromCjs(browserExports);
5
5
  export {
@@ -1,4 +1,4 @@
1
- import { getBytes } from "./standards-sdk.es39.js";
1
+ import { getBytes } from "./standards-sdk.es49.js";
2
2
  function decodeBase64(textData) {
3
3
  textData = atob(textData);
4
4
  const data = new Uint8Array(textData.length);
@@ -1,87 +1,198 @@
1
- import { keccak256 } from "./standards-sdk.es37.js";
2
- import { assertArgument } from "./standards-sdk.es38.js";
3
- import { getBytes } from "./standards-sdk.es39.js";
4
- const BN_0 = BigInt(0);
5
- const BN_36 = BigInt(36);
6
- function getChecksumAddress(address) {
7
- address = address.toLowerCase();
8
- const chars = address.substring(2).split("");
9
- const expanded = new Uint8Array(40);
10
- for (let i = 0; i < 40; i++) {
11
- expanded[i] = chars[i].charCodeAt(0);
12
- }
13
- const hashed = getBytes(keccak256(expanded));
14
- for (let i = 0; i < 40; i += 2) {
15
- if (hashed[i >> 1] >> 4 >= 8) {
16
- chars[i] = chars[i].toUpperCase();
17
- }
18
- if ((hashed[i >> 1] & 15) >= 8) {
19
- chars[i + 1] = chars[i + 1].toUpperCase();
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
3
+ };
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
6
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
7
+ var _AbiCoder_instances, getCoder_fn;
8
+ import { Writer, Reader } from "./standards-sdk.es37.js";
9
+ import { AddressCoder } from "./standards-sdk.es38.js";
10
+ import { ArrayCoder } from "./standards-sdk.es39.js";
11
+ import { BooleanCoder } from "./standards-sdk.es40.js";
12
+ import { BytesCoder } from "./standards-sdk.es41.js";
13
+ import { FixedBytesCoder } from "./standards-sdk.es42.js";
14
+ import { NullCoder } from "./standards-sdk.es43.js";
15
+ import { NumberCoder } from "./standards-sdk.es44.js";
16
+ import { StringCoder } from "./standards-sdk.es45.js";
17
+ import { TupleCoder } from "./standards-sdk.es46.js";
18
+ import { ParamType } from "./standards-sdk.es47.js";
19
+ import { assertArgument, assertArgumentCount, makeError } from "./standards-sdk.es48.js";
20
+ import { getBytes, hexlify } from "./standards-sdk.es49.js";
21
+ import { getAddress } from "./standards-sdk.es50.js";
22
+ const PanicReasons = /* @__PURE__ */ new Map();
23
+ PanicReasons.set(0, "GENERIC_PANIC");
24
+ PanicReasons.set(1, "ASSERT_FALSE");
25
+ PanicReasons.set(17, "OVERFLOW");
26
+ PanicReasons.set(18, "DIVIDE_BY_ZERO");
27
+ PanicReasons.set(33, "ENUM_RANGE_ERROR");
28
+ PanicReasons.set(34, "BAD_STORAGE_DATA");
29
+ PanicReasons.set(49, "STACK_UNDERFLOW");
30
+ PanicReasons.set(50, "ARRAY_RANGE_ERROR");
31
+ PanicReasons.set(65, "OUT_OF_MEMORY");
32
+ PanicReasons.set(81, "UNINITIALIZED_FUNCTION_CALL");
33
+ const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
34
+ const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
35
+ let defaultCoder = null;
36
+ let defaultMaxInflation = 1024;
37
+ function getBuiltinCallException(action, tx, data, abiCoder) {
38
+ let message = "missing revert data";
39
+ let reason = null;
40
+ const invocation = null;
41
+ let revert = null;
42
+ if (data) {
43
+ message = "execution reverted";
44
+ const bytes = getBytes(data);
45
+ data = hexlify(data);
46
+ if (bytes.length === 0) {
47
+ message += " (no data present; likely require(false) occurred";
48
+ reason = "require(false)";
49
+ } else if (bytes.length % 32 !== 4) {
50
+ message += " (could not decode reason; invalid data length)";
51
+ } else if (hexlify(bytes.slice(0, 4)) === "0x08c379a0") {
52
+ try {
53
+ reason = abiCoder.decode(["string"], bytes.slice(4))[0];
54
+ revert = {
55
+ signature: "Error(string)",
56
+ name: "Error",
57
+ args: [reason]
58
+ };
59
+ message += `: ${JSON.stringify(reason)}`;
60
+ } catch (error) {
61
+ message += " (could not decode reason; invalid string data)";
62
+ }
63
+ } else if (hexlify(bytes.slice(0, 4)) === "0x4e487b71") {
64
+ try {
65
+ const code = Number(abiCoder.decode(["uint256"], bytes.slice(4))[0]);
66
+ revert = {
67
+ signature: "Panic(uint256)",
68
+ name: "Panic",
69
+ args: [code]
70
+ };
71
+ reason = `Panic due to ${PanicReasons.get(code) || "UNKNOWN"}(${code})`;
72
+ message += `: ${reason}`;
73
+ } catch (error) {
74
+ message += " (could not decode panic code)";
75
+ }
76
+ } else {
77
+ message += " (unknown custom error)";
20
78
  }
21
79
  }
22
- return "0x" + chars.join("");
23
- }
24
- const ibanLookup = {};
25
- for (let i = 0; i < 10; i++) {
26
- ibanLookup[String(i)] = String(i);
27
- }
28
- for (let i = 0; i < 26; i++) {
29
- ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
80
+ const transaction = {
81
+ to: tx.to ? getAddress(tx.to) : null,
82
+ data: tx.data || "0x"
83
+ };
84
+ if (tx.from) {
85
+ transaction.from = getAddress(tx.from);
86
+ }
87
+ return makeError(message, "CALL_EXCEPTION", {
88
+ action,
89
+ data,
90
+ reason,
91
+ transaction,
92
+ invocation,
93
+ revert
94
+ });
30
95
  }
31
- const safeDigits = 15;
32
- function ibanChecksum(address) {
33
- address = address.toUpperCase();
34
- address = address.substring(4) + address.substring(0, 2) + "00";
35
- let expanded = address.split("").map((c) => {
36
- return ibanLookup[c];
37
- }).join("");
38
- while (expanded.length >= safeDigits) {
39
- let block = expanded.substring(0, safeDigits);
40
- expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
96
+ const _AbiCoder = class _AbiCoder {
97
+ constructor() {
98
+ __privateAdd(this, _AbiCoder_instances);
41
99
  }
42
- let checksum = String(98 - parseInt(expanded, 10) % 97);
43
- while (checksum.length < 2) {
44
- checksum = "0" + checksum;
100
+ /**
101
+ * Get the default values for the given %%types%%.
102
+ *
103
+ * For example, a ``uint`` is by default ``0`` and ``bool``
104
+ * is by default ``false``.
105
+ */
106
+ getDefaultValue(types) {
107
+ const coders = types.map((type) => __privateMethod(this, _AbiCoder_instances, getCoder_fn).call(this, ParamType.from(type)));
108
+ const coder = new TupleCoder(coders, "_");
109
+ return coder.defaultValue();
45
110
  }
46
- return checksum;
47
- }
48
- const Base36 = function() {
49
- const result = {};
50
- for (let i = 0; i < 36; i++) {
51
- const key = "0123456789abcdefghijklmnopqrstuvwxyz"[i];
52
- result[key] = BigInt(i);
111
+ /**
112
+ * Encode the %%values%% as the %%types%% into ABI data.
113
+ *
114
+ * @returns DataHexstring
115
+ */
116
+ encode(types, values) {
117
+ assertArgumentCount(values.length, types.length, "types/values length mismatch");
118
+ const coders = types.map((type) => __privateMethod(this, _AbiCoder_instances, getCoder_fn).call(this, ParamType.from(type)));
119
+ const coder = new TupleCoder(coders, "_");
120
+ const writer = new Writer();
121
+ coder.encode(writer, values);
122
+ return writer.data;
53
123
  }
54
- return result;
55
- }();
56
- function fromBase36(value) {
57
- value = value.toLowerCase();
58
- let result = BN_0;
59
- for (let i = 0; i < value.length; i++) {
60
- result = result * BN_36 + Base36[value[i]];
124
+ /**
125
+ * Decode the ABI %%data%% as the %%types%% into values.
126
+ *
127
+ * If %%loose%% decoding is enabled, then strict padding is
128
+ * not enforced. Some older versions of Solidity incorrectly
129
+ * padded event data emitted from ``external`` functions.
130
+ */
131
+ decode(types, data, loose) {
132
+ const coders = types.map((type) => __privateMethod(this, _AbiCoder_instances, getCoder_fn).call(this, ParamType.from(type)));
133
+ const coder = new TupleCoder(coders, "_");
134
+ return coder.decode(new Reader(data, loose, defaultMaxInflation));
61
135
  }
62
- return result;
63
- }
64
- function getAddress(address) {
65
- assertArgument(typeof address === "string", "invalid address", "address", address);
66
- if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
67
- if (!address.startsWith("0x")) {
68
- address = "0x" + address;
69
- }
70
- const result = getChecksumAddress(address);
71
- assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, "bad address checksum", "address", address);
72
- return result;
136
+ static _setDefaultMaxInflation(value) {
137
+ assertArgument(typeof value === "number" && Number.isInteger(value), "invalid defaultMaxInflation factor", "value", value);
138
+ defaultMaxInflation = value;
73
139
  }
74
- if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
75
- assertArgument(address.substring(2, 4) === ibanChecksum(address), "bad icap checksum", "address", address);
76
- let result = fromBase36(address.substring(4)).toString(16);
77
- while (result.length < 40) {
78
- result = "0" + result;
140
+ /**
141
+ * Returns the shared singleton instance of a default [[AbiCoder]].
142
+ *
143
+ * On the first call, the instance is created internally.
144
+ */
145
+ static defaultAbiCoder() {
146
+ if (defaultCoder == null) {
147
+ defaultCoder = new _AbiCoder();
79
148
  }
80
- return getChecksumAddress("0x" + result);
149
+ return defaultCoder;
81
150
  }
82
- assertArgument(false, "invalid address", "address", address);
83
- }
151
+ /**
152
+ * Returns an ethers-compatible [[CallExceptionError]] Error for the given
153
+ * result %%data%% for the [[CallExceptionAction]] %%action%% against
154
+ * the Transaction %%tx%%.
155
+ */
156
+ static getBuiltinCallException(action, tx, data) {
157
+ return getBuiltinCallException(action, tx, data, _AbiCoder.defaultAbiCoder());
158
+ }
159
+ };
160
+ _AbiCoder_instances = new WeakSet();
161
+ getCoder_fn = function(param) {
162
+ if (param.isArray()) {
163
+ return new ArrayCoder(__privateMethod(this, _AbiCoder_instances, getCoder_fn).call(this, param.arrayChildren), param.arrayLength, param.name);
164
+ }
165
+ if (param.isTuple()) {
166
+ return new TupleCoder(param.components.map((c) => __privateMethod(this, _AbiCoder_instances, getCoder_fn).call(this, c)), param.name);
167
+ }
168
+ switch (param.baseType) {
169
+ case "address":
170
+ return new AddressCoder(param.name);
171
+ case "bool":
172
+ return new BooleanCoder(param.name);
173
+ case "string":
174
+ return new StringCoder(param.name);
175
+ case "bytes":
176
+ return new BytesCoder(param.name);
177
+ case "":
178
+ return new NullCoder(param.name);
179
+ }
180
+ let match = param.type.match(paramTypeNumber);
181
+ if (match) {
182
+ let size = parseInt(match[2] || "256");
183
+ assertArgument(size !== 0 && size <= 256 && size % 8 === 0, "invalid " + match[1] + " bit length", "param", param);
184
+ return new NumberCoder(size / 8, match[1] === "int", param.name);
185
+ }
186
+ match = param.type.match(paramTypeBytes);
187
+ if (match) {
188
+ let size = parseInt(match[1]);
189
+ assertArgument(size !== 0 && size <= 32, "invalid bytes length", "param", param);
190
+ return new FixedBytesCoder(size, param.name);
191
+ }
192
+ assertArgument(false, "invalid type", "type", param.type);
193
+ };
194
+ let AbiCoder = _AbiCoder;
84
195
  export {
85
- getAddress
196
+ AbiCoder
86
197
  };
87
198
  //# sourceMappingURL=standards-sdk.es36.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es36.js","sources":["../../node_modules/ethers/lib.esm/address/address.js"],"sourcesContent":["import { keccak256 } from \"../crypto/index.js\";\nimport { getBytes, assertArgument } from \"../utils/index.js\";\nconst BN_0 = BigInt(0);\nconst BN_36 = BigInt(36);\nfunction getChecksumAddress(address) {\n // if (!isHexString(address, 20)) {\n // logger.throwArgumentError(\"invalid address\", \"address\", address);\n // }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = getBytes(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\n// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));\nconst safeDigits = 15;\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nconst Base36 = (function () {\n ;\n const result = {};\n for (let i = 0; i < 36; i++) {\n const key = \"0123456789abcdefghijklmnopqrstuvwxyz\"[i];\n result[key] = BigInt(i);\n }\n return result;\n})();\nfunction fromBase36(value) {\n value = value.toLowerCase();\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result = result * BN_36 + Base36[value[i]];\n }\n return result;\n}\n/**\n * Returns a normalized and checksumed address for %%address%%.\n * This accepts non-checksum addresses, checksum addresses and\n * [[getIcapAddress]] formats.\n *\n * The checksum in Ethereum uses the capitalization (upper-case\n * vs lower-case) of the characters within an address to encode\n * its checksum, which offers, on average, a checksum of 15-bits.\n *\n * If %%address%% contains both upper-case and lower-case, it is\n * assumed to already be a checksum address and its checksum is\n * validated, and if the address fails its expected checksum an\n * error is thrown.\n *\n * If you wish the checksum of %%address%% to be ignore, it should\n * be converted to lower-case (i.e. ``.toLowercase()``) before\n * being passed in. This should be a very rare situation though,\n * that you wish to bypass the safegaurds in place to protect\n * against an address that has been incorrectly copied from another\n * source.\n *\n * @example:\n * // Adds the checksum (via upper-casing specific letters)\n * getAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\")\n * //_result:\n *\n * // Converts ICAP address and adds checksum\n * getAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if an address contains mixed case,\n * // but the checksum fails\n * getAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_error:\n */\nexport function getAddress(address) {\n assertArgument(typeof (address) === \"string\", \"invalid address\", \"address\", address);\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (!address.startsWith(\"0x\")) {\n address = \"0x\" + address;\n }\n const result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, \"bad address checksum\", \"address\", address);\n return result;\n }\n // Maybe ICAP? (we only support direct mode)\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n assertArgument(address.substring(2, 4) === ibanChecksum(address), \"bad icap checksum\", \"address\", address);\n let result = fromBase36(address.substring(4)).toString(16);\n while (result.length < 40) {\n result = \"0\" + result;\n }\n return getChecksumAddress(\"0x\" + result);\n }\n assertArgument(false, \"invalid address\", \"address\", address);\n}\n/**\n * The [ICAP Address format](link-icap) format is an early checksum\n * format which attempts to be compatible with the banking\n * industry [IBAN format](link-wiki-iban) for bank accounts.\n *\n * It is no longer common or a recommended format.\n *\n * @example:\n * getIcapAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\");\n * //_result:\n *\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if the ICAP checksum is wrong\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37\");\n * //_error:\n */\nexport function getIcapAddress(address) {\n //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n//# sourceMappingURL=address.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es36.js","sources":["../../node_modules/ethers/lib.esm/abi/abi-coder.js"],"sourcesContent":["/**\n * When sending values to or receiving values from a [[Contract]], the\n * data is generally encoded using the [ABI standard](link-solc-abi).\n *\n * The AbiCoder provides a utility to encode values to ABI data and\n * decode values from ABI data.\n *\n * Most of the time, developers should favour the [[Contract]] class,\n * which further abstracts a lot of the finer details of ABI data.\n *\n * @_section api/abi/abi-coder:ABI Encoding\n */\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { assertArgumentCount, assertArgument } from \"../utils/index.js\";\nimport { Reader, Writer } from \"./coders/abstract-coder.js\";\nimport { AddressCoder } from \"./coders/address.js\";\nimport { ArrayCoder } from \"./coders/array.js\";\nimport { BooleanCoder } from \"./coders/boolean.js\";\nimport { BytesCoder } from \"./coders/bytes.js\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes.js\";\nimport { NullCoder } from \"./coders/null.js\";\nimport { NumberCoder } from \"./coders/number.js\";\nimport { StringCoder } from \"./coders/string.js\";\nimport { TupleCoder } from \"./coders/tuple.js\";\nimport { ParamType } from \"./fragments.js\";\nimport { getAddress } from \"../address/index.js\";\nimport { getBytes, hexlify, makeError } from \"../utils/index.js\";\n// https://docs.soliditylang.org/en/v0.8.17/control-structures.html\nconst PanicReasons = new Map();\nPanicReasons.set(0x00, \"GENERIC_PANIC\");\nPanicReasons.set(0x01, \"ASSERT_FALSE\");\nPanicReasons.set(0x11, \"OVERFLOW\");\nPanicReasons.set(0x12, \"DIVIDE_BY_ZERO\");\nPanicReasons.set(0x21, \"ENUM_RANGE_ERROR\");\nPanicReasons.set(0x22, \"BAD_STORAGE_DATA\");\nPanicReasons.set(0x31, \"STACK_UNDERFLOW\");\nPanicReasons.set(0x32, \"ARRAY_RANGE_ERROR\");\nPanicReasons.set(0x41, \"OUT_OF_MEMORY\");\nPanicReasons.set(0x51, \"UNINITIALIZED_FUNCTION_CALL\");\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nlet defaultCoder = null;\nlet defaultMaxInflation = 1024;\nfunction getBuiltinCallException(action, tx, data, abiCoder) {\n let message = \"missing revert data\";\n let reason = null;\n const invocation = null;\n let revert = null;\n if (data) {\n message = \"execution reverted\";\n const bytes = getBytes(data);\n data = hexlify(data);\n if (bytes.length === 0) {\n message += \" (no data present; likely require(false) occurred\";\n reason = \"require(false)\";\n }\n else if (bytes.length % 32 !== 4) {\n message += \" (could not decode reason; invalid data length)\";\n }\n else if (hexlify(bytes.slice(0, 4)) === \"0x08c379a0\") {\n // Error(string)\n try {\n reason = abiCoder.decode([\"string\"], bytes.slice(4))[0];\n revert = {\n signature: \"Error(string)\",\n name: \"Error\",\n args: [reason]\n };\n message += `: ${JSON.stringify(reason)}`;\n }\n catch (error) {\n message += \" (could not decode reason; invalid string data)\";\n }\n }\n else if (hexlify(bytes.slice(0, 4)) === \"0x4e487b71\") {\n // Panic(uint256)\n try {\n const code = Number(abiCoder.decode([\"uint256\"], bytes.slice(4))[0]);\n revert = {\n signature: \"Panic(uint256)\",\n name: \"Panic\",\n args: [code]\n };\n reason = `Panic due to ${PanicReasons.get(code) || \"UNKNOWN\"}(${code})`;\n message += `: ${reason}`;\n }\n catch (error) {\n message += \" (could not decode panic code)\";\n }\n }\n else {\n message += \" (unknown custom error)\";\n }\n }\n const transaction = {\n to: (tx.to ? getAddress(tx.to) : null),\n data: (tx.data || \"0x\")\n };\n if (tx.from) {\n transaction.from = getAddress(tx.from);\n }\n return makeError(message, \"CALL_EXCEPTION\", {\n action, data, reason, transaction, invocation, revert\n });\n}\n/**\n * The **AbiCoder** is a low-level class responsible for encoding JavaScript\n * values into binary data and decoding binary data into JavaScript values.\n */\nexport class AbiCoder {\n #getCoder(param) {\n if (param.isArray()) {\n return new ArrayCoder(this.#getCoder(param.arrayChildren), param.arrayLength, param.name);\n }\n if (param.isTuple()) {\n return new TupleCoder(param.components.map((c) => this.#getCoder(c)), param.name);\n }\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n assertArgument(size !== 0 && size <= 256 && (size % 8) === 0, \"invalid \" + match[1] + \" bit length\", \"param\", param);\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n assertArgument(size !== 0 && size <= 32, \"invalid bytes length\", \"param\", param);\n return new FixedBytesCoder(size, param.name);\n }\n assertArgument(false, \"invalid type\", \"type\", param.type);\n }\n /**\n * Get the default values for the given %%types%%.\n *\n * For example, a ``uint`` is by default ``0`` and ``bool``\n * is by default ``false``.\n */\n getDefaultValue(types) {\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n /**\n * Encode the %%values%% as the %%types%% into ABI data.\n *\n * @returns DataHexstring\n */\n encode(types, values) {\n assertArgumentCount(values.length, types.length, \"types/values length mismatch\");\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = new Writer();\n coder.encode(writer, values);\n return writer.data;\n }\n /**\n * Decode the ABI %%data%% as the %%types%% into values.\n *\n * If %%loose%% decoding is enabled, then strict padding is\n * not enforced. Some older versions of Solidity incorrectly\n * padded event data emitted from ``external`` functions.\n */\n decode(types, data, loose) {\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(new Reader(data, loose, defaultMaxInflation));\n }\n static _setDefaultMaxInflation(value) {\n assertArgument(typeof (value) === \"number\" && Number.isInteger(value), \"invalid defaultMaxInflation factor\", \"value\", value);\n defaultMaxInflation = value;\n }\n /**\n * Returns the shared singleton instance of a default [[AbiCoder]].\n *\n * On the first call, the instance is created internally.\n */\n static defaultAbiCoder() {\n if (defaultCoder == null) {\n defaultCoder = new AbiCoder();\n }\n return defaultCoder;\n }\n /**\n * Returns an ethers-compatible [[CallExceptionError]] Error for the given\n * result %%data%% for the [[CallExceptionAction]] %%action%% against\n * the Transaction %%tx%%.\n */\n static getBuiltinCallException(action, tx, data) {\n return getBuiltinCallException(action, tx, data, AbiCoder.defaultAbiCoder());\n }\n}\n//# sourceMappingURL=abi-coder.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}