@hashgraphonline/standards-sdk 0.0.82 → 0.0.83

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 (194) hide show
  1. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  2. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  3. package/dist/es/services/mirror-node.d.ts.map +1 -1
  4. package/dist/es/standards-sdk.es100.js +156 -29
  5. package/dist/es/standards-sdk.es100.js.map +1 -1
  6. package/dist/es/standards-sdk.es101.js +22 -14
  7. package/dist/es/standards-sdk.es101.js.map +1 -1
  8. package/dist/es/standards-sdk.es102.js +792 -3
  9. package/dist/es/standards-sdk.es102.js.map +1 -1
  10. package/dist/es/standards-sdk.es103.js +3 -3
  11. package/dist/es/standards-sdk.es103.js.map +1 -1
  12. package/dist/es/standards-sdk.es104.js +141 -14
  13. package/dist/es/standards-sdk.es104.js.map +1 -1
  14. package/dist/es/standards-sdk.es105.js +173 -4
  15. package/dist/es/standards-sdk.es105.js.map +1 -1
  16. package/dist/es/standards-sdk.es106.js +34 -39
  17. package/dist/es/standards-sdk.es106.js.map +1 -1
  18. package/dist/es/standards-sdk.es107.js +30 -37
  19. package/dist/es/standards-sdk.es107.js.map +1 -1
  20. package/dist/es/standards-sdk.es108.js +9 -37
  21. package/dist/es/standards-sdk.es108.js.map +1 -1
  22. package/dist/es/standards-sdk.es109.js +30 -74
  23. package/dist/es/standards-sdk.es109.js.map +1 -1
  24. package/dist/es/standards-sdk.es110.js +419 -3
  25. package/dist/es/standards-sdk.es110.js.map +1 -1
  26. package/dist/es/standards-sdk.es111.js +2 -2
  27. package/dist/es/standards-sdk.es111.js.map +1 -1
  28. package/dist/es/standards-sdk.es112.js +120 -2
  29. package/dist/es/standards-sdk.es112.js.map +1 -1
  30. package/dist/es/standards-sdk.es113.js +20 -33
  31. package/dist/es/standards-sdk.es113.js.map +1 -1
  32. package/dist/es/standards-sdk.es114.js +26 -32
  33. package/dist/es/standards-sdk.es114.js.map +1 -1
  34. package/dist/es/standards-sdk.es115.js +26 -9
  35. package/dist/es/standards-sdk.es115.js.map +1 -1
  36. package/dist/es/standards-sdk.es116.js +37 -33
  37. package/dist/es/standards-sdk.es116.js.map +1 -1
  38. package/dist/es/standards-sdk.es18.js +54 -38
  39. package/dist/es/standards-sdk.es18.js.map +1 -1
  40. package/dist/es/standards-sdk.es23.js +17 -17
  41. package/dist/es/standards-sdk.es24.js +1 -1
  42. package/dist/es/standards-sdk.es25.js +1 -1
  43. package/dist/es/standards-sdk.es28.js +10 -10
  44. package/dist/es/standards-sdk.es29.js +2 -2
  45. package/dist/es/standards-sdk.es30.js +87 -405
  46. package/dist/es/standards-sdk.es30.js.map +1 -1
  47. package/dist/es/standards-sdk.es31.js +2 -2
  48. package/dist/es/standards-sdk.es32.js +15 -119
  49. package/dist/es/standards-sdk.es32.js.map +1 -1
  50. package/dist/es/standards-sdk.es33.js +409 -2
  51. package/dist/es/standards-sdk.es33.js.map +1 -1
  52. package/dist/es/standards-sdk.es34.js +363 -3
  53. package/dist/es/standards-sdk.es34.js.map +1 -1
  54. package/dist/es/standards-sdk.es35.js +5 -83
  55. package/dist/es/standards-sdk.es35.js.map +1 -1
  56. package/dist/es/standards-sdk.es36.js +177 -21
  57. package/dist/es/standards-sdk.es36.js.map +1 -1
  58. package/dist/es/standards-sdk.es37.js +70 -137
  59. package/dist/es/standards-sdk.es37.js.map +1 -1
  60. package/dist/es/standards-sdk.es38.js +110 -87
  61. package/dist/es/standards-sdk.es38.js.map +1 -1
  62. package/dist/es/standards-sdk.es39.js +39 -7123
  63. package/dist/es/standards-sdk.es39.js.map +1 -1
  64. package/dist/es/standards-sdk.es40.js +9 -194
  65. package/dist/es/standards-sdk.es40.js.map +1 -1
  66. package/dist/es/standards-sdk.es41.js +71 -412
  67. package/dist/es/standards-sdk.es41.js.map +1 -1
  68. package/dist/es/standards-sdk.es42.js +3 -24
  69. package/dist/es/standards-sdk.es42.js.map +1 -1
  70. package/dist/es/standards-sdk.es43.js +2 -139
  71. package/dist/es/standards-sdk.es43.js.map +1 -1
  72. package/dist/es/standards-sdk.es44.js +107 -12
  73. package/dist/es/standards-sdk.es44.js.map +1 -1
  74. package/dist/es/standards-sdk.es45.js +70 -25
  75. package/dist/es/standards-sdk.es45.js.map +1 -1
  76. package/dist/es/standards-sdk.es46.js +5 -28
  77. package/dist/es/standards-sdk.es46.js.map +1 -1
  78. package/dist/es/standards-sdk.es47.js +4 -20
  79. package/dist/es/standards-sdk.es47.js.map +1 -1
  80. package/dist/es/standards-sdk.es48.js +218 -41
  81. package/dist/es/standards-sdk.es48.js.map +1 -1
  82. package/dist/es/standards-sdk.es49.js +57 -17
  83. package/dist/es/standards-sdk.es49.js.map +1 -1
  84. package/dist/es/standards-sdk.es5.js +26 -18
  85. package/dist/es/standards-sdk.es5.js.map +1 -1
  86. package/dist/es/standards-sdk.es50.js +69 -61
  87. package/dist/es/standards-sdk.es50.js.map +1 -1
  88. package/dist/es/standards-sdk.es51.js +2281 -1288
  89. package/dist/es/standards-sdk.es51.js.map +1 -1
  90. package/dist/es/standards-sdk.es52.js +159 -27
  91. package/dist/es/standards-sdk.es52.js.map +1 -1
  92. package/dist/es/standards-sdk.es53.js +7135 -5
  93. package/dist/es/standards-sdk.es53.js.map +1 -1
  94. package/dist/es/standards-sdk.es54.js +3 -159
  95. package/dist/es/standards-sdk.es54.js.map +1 -1
  96. package/dist/es/standards-sdk.es55.js +29 -790
  97. package/dist/es/standards-sdk.es55.js.map +1 -1
  98. package/dist/es/standards-sdk.es56.js +55 -166
  99. package/dist/es/standards-sdk.es56.js.map +1 -1
  100. package/dist/es/standards-sdk.es57.js +43 -136
  101. package/dist/es/standards-sdk.es57.js.map +1 -1
  102. package/dist/es/standards-sdk.es58.js +10 -3
  103. package/dist/es/standards-sdk.es58.js.map +1 -1
  104. package/dist/es/standards-sdk.es59.js +53 -352
  105. package/dist/es/standards-sdk.es59.js.map +1 -1
  106. package/dist/es/standards-sdk.es60.js +6 -6
  107. package/dist/es/standards-sdk.es60.js.map +1 -1
  108. package/dist/es/standards-sdk.es61.js +12 -176
  109. package/dist/es/standards-sdk.es61.js.map +1 -1
  110. package/dist/es/standards-sdk.es62.js +7 -81
  111. package/dist/es/standards-sdk.es62.js.map +1 -1
  112. package/dist/es/standards-sdk.es63.js +42 -111
  113. package/dist/es/standards-sdk.es63.js.map +1 -1
  114. package/dist/es/standards-sdk.es64.js +2 -52
  115. package/dist/es/standards-sdk.es64.js.map +1 -1
  116. package/dist/es/standards-sdk.es65.js +136 -10
  117. package/dist/es/standards-sdk.es65.js.map +1 -1
  118. package/dist/es/standards-sdk.es66.js +162 -87
  119. package/dist/es/standards-sdk.es66.js.map +1 -1
  120. package/dist/es/standards-sdk.es67.js +13 -4
  121. package/dist/es/standards-sdk.es67.js.map +1 -1
  122. package/dist/es/standards-sdk.es68.js +13 -2
  123. package/dist/es/standards-sdk.es68.js.map +1 -1
  124. package/dist/es/standards-sdk.es69.js +2 -113
  125. package/dist/es/standards-sdk.es69.js.map +1 -1
  126. package/dist/es/standards-sdk.es7.js +31 -25
  127. package/dist/es/standards-sdk.es7.js.map +1 -1
  128. package/dist/es/standards-sdk.es70.js +30 -72
  129. package/dist/es/standards-sdk.es70.js.map +1 -1
  130. package/dist/es/standards-sdk.es71.js +14 -5
  131. package/dist/es/standards-sdk.es71.js.map +1 -1
  132. package/dist/es/standards-sdk.es72.js +3 -4
  133. package/dist/es/standards-sdk.es72.js.map +1 -1
  134. package/dist/es/standards-sdk.es73.js +3 -220
  135. package/dist/es/standards-sdk.es73.js.map +1 -1
  136. package/dist/es/standards-sdk.es74.js +15 -57
  137. package/dist/es/standards-sdk.es74.js.map +1 -1
  138. package/dist/es/standards-sdk.es75.js +5 -69
  139. package/dist/es/standards-sdk.es75.js.map +1 -1
  140. package/dist/es/standards-sdk.es76.js +39 -21
  141. package/dist/es/standards-sdk.es76.js.map +1 -1
  142. package/dist/es/standards-sdk.es77.js +39 -26
  143. package/dist/es/standards-sdk.es77.js.map +1 -1
  144. package/dist/es/standards-sdk.es78.js +36 -25
  145. package/dist/es/standards-sdk.es78.js.map +1 -1
  146. package/dist/es/standards-sdk.es79.js +77 -37
  147. package/dist/es/standards-sdk.es79.js.map +1 -1
  148. package/dist/es/standards-sdk.es8.js.map +1 -1
  149. package/dist/es/standards-sdk.es80.js +3 -101
  150. package/dist/es/standards-sdk.es80.js.map +1 -1
  151. package/dist/es/standards-sdk.es81.js +2 -2
  152. package/dist/es/standards-sdk.es81.js.map +1 -1
  153. package/dist/es/standards-sdk.es82.js +2 -16
  154. package/dist/es/standards-sdk.es82.js.map +1 -1
  155. package/dist/es/standards-sdk.es83.js +190 -404
  156. package/dist/es/standards-sdk.es83.js.map +1 -1
  157. package/dist/es/standards-sdk.es84.js +412 -138
  158. package/dist/es/standards-sdk.es84.js.map +1 -1
  159. package/dist/es/standards-sdk.es85.js +20 -27
  160. package/dist/es/standards-sdk.es85.js.map +1 -1
  161. package/dist/es/standards-sdk.es86.js +131 -55
  162. package/dist/es/standards-sdk.es86.js.map +1 -1
  163. package/dist/es/standards-sdk.es87.js +14 -46
  164. package/dist/es/standards-sdk.es87.js.map +1 -1
  165. package/dist/es/standards-sdk.es88.js +28 -9
  166. package/dist/es/standards-sdk.es88.js.map +1 -1
  167. package/dist/es/standards-sdk.es89.js +24 -60
  168. package/dist/es/standards-sdk.es89.js.map +1 -1
  169. package/dist/es/standards-sdk.es90.js +21 -6
  170. package/dist/es/standards-sdk.es90.js.map +1 -1
  171. package/dist/es/standards-sdk.es91.js +41 -12
  172. package/dist/es/standards-sdk.es91.js.map +1 -1
  173. package/dist/es/standards-sdk.es92.js +18 -7
  174. package/dist/es/standards-sdk.es92.js.map +1 -1
  175. package/dist/es/standards-sdk.es93.js +60 -44
  176. package/dist/es/standards-sdk.es93.js.map +1 -1
  177. package/dist/es/standards-sdk.es94.js +1289 -2
  178. package/dist/es/standards-sdk.es94.js.map +1 -1
  179. package/dist/es/standards-sdk.es95.js +138 -126
  180. package/dist/es/standards-sdk.es95.js.map +1 -1
  181. package/dist/es/standards-sdk.es96.js +81 -162
  182. package/dist/es/standards-sdk.es96.js.map +1 -1
  183. package/dist/es/standards-sdk.es97.js +84 -2282
  184. package/dist/es/standards-sdk.es97.js.map +1 -1
  185. package/dist/es/standards-sdk.es98.js +32 -13
  186. package/dist/es/standards-sdk.es98.js.map +1 -1
  187. package/dist/es/standards-sdk.es99.js +6 -13
  188. package/dist/es/standards-sdk.es99.js.map +1 -1
  189. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  190. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  191. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  192. package/dist/umd/standards-sdk.umd.js +1 -1
  193. package/dist/umd/standards-sdk.umd.js.map +1 -1
  194. package/package.json +1 -1
@@ -1,175 +1,94 @@
1
- import platform from "./standards-sdk.es92.js";
2
- import utils from "./standards-sdk.es59.js";
3
- import AxiosError from "./standards-sdk.es70.js";
4
- import composeSignals from "./standards-sdk.es108.js";
5
- import { trackStream } from "./standards-sdk.es109.js";
6
- import AxiosHeaders from "./standards-sdk.es73.js";
7
- import { progressEventDecorator, progressEventReducer, asyncDecorator } from "./standards-sdk.es106.js";
8
- import resolveConfig from "./standards-sdk.es107.js";
9
- import settle from "./standards-sdk.es104.js";
10
- const isFetchSupported = typeof fetch === "function" && typeof Request === "function" && typeof Response === "function";
11
- const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === "function";
12
- const encodeText = isFetchSupported && (typeof TextEncoder === "function" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer()));
13
- const test = (fn, ...args) => {
14
- try {
15
- return !!fn(...args);
16
- } catch (e) {
17
- return false;
1
+ import { assert, assertArgument } from "./standards-sdk.es95.js";
2
+ function _getBytes(value, name, copy) {
3
+ if (value instanceof Uint8Array) {
4
+ if (copy) {
5
+ return new Uint8Array(value);
6
+ }
7
+ return value;
18
8
  }
19
- };
20
- const supportsRequestStream = isReadableStreamSupported && test(() => {
21
- let duplexAccessed = false;
22
- const hasContentType = new Request(platform.origin, {
23
- body: new ReadableStream(),
24
- method: "POST",
25
- get duplex() {
26
- duplexAccessed = true;
27
- return "half";
9
+ if (typeof value === "string" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) {
10
+ const result = new Uint8Array((value.length - 2) / 2);
11
+ let offset = 2;
12
+ for (let i = 0; i < result.length; i++) {
13
+ result[i] = parseInt(value.substring(offset, offset + 2), 16);
14
+ offset += 2;
28
15
  }
29
- }).headers.has("Content-Type");
30
- return duplexAccessed && !hasContentType;
31
- });
32
- const DEFAULT_CHUNK_SIZE = 64 * 1024;
33
- const supportsResponseStream = isReadableStreamSupported && test(() => utils.isReadableStream(new Response("").body));
34
- const resolvers = {
35
- stream: supportsResponseStream && ((res) => res.body)
36
- };
37
- isFetchSupported && ((res) => {
38
- ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => {
39
- !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => {
40
- throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);
41
- });
42
- });
43
- })(new Response());
44
- const getBodyLength = async (body) => {
45
- if (body == null) {
46
- return 0;
16
+ return result;
47
17
  }
48
- if (utils.isBlob(body)) {
49
- return body.size;
18
+ assertArgument(false, "invalid BytesLike value", name || "value", value);
19
+ }
20
+ function getBytes(value, name) {
21
+ return _getBytes(value, name, false);
22
+ }
23
+ function getBytesCopy(value, name) {
24
+ return _getBytes(value, name, true);
25
+ }
26
+ function isHexString(value, length) {
27
+ if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
28
+ return false;
50
29
  }
51
- if (utils.isSpecCompliantForm(body)) {
52
- const _request = new Request(platform.origin, {
53
- method: "POST",
54
- body
55
- });
56
- return (await _request.arrayBuffer()).byteLength;
30
+ if (typeof length === "number" && value.length !== 2 + 2 * length) {
31
+ return false;
57
32
  }
58
- if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {
59
- return body.byteLength;
33
+ if (length === true && value.length % 2 !== 0) {
34
+ return false;
60
35
  }
61
- if (utils.isURLSearchParams(body)) {
62
- body = body + "";
36
+ return true;
37
+ }
38
+ const HexCharacters = "0123456789abcdef";
39
+ function hexlify(data) {
40
+ const bytes = getBytes(data);
41
+ let result = "0x";
42
+ for (let i = 0; i < bytes.length; i++) {
43
+ const v = bytes[i];
44
+ result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15];
63
45
  }
64
- if (utils.isString(body)) {
65
- return (await encodeText(body)).byteLength;
46
+ return result;
47
+ }
48
+ function concat(datas) {
49
+ return "0x" + datas.map((d) => hexlify(d).substring(2)).join("");
50
+ }
51
+ function dataSlice(data, start, end) {
52
+ const bytes = getBytes(data);
53
+ if (end != null && end > bytes.length) {
54
+ assert(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", {
55
+ buffer: bytes,
56
+ length: bytes.length,
57
+ offset: end
58
+ });
66
59
  }
67
- };
68
- const resolveBodyLength = async (headers, body) => {
69
- const length = utils.toFiniteNumber(headers.getContentLength());
70
- return length == null ? getBodyLength(body) : length;
71
- };
72
- const fetchAdapter = isFetchSupported && (async (config) => {
73
- let {
74
- url,
75
- method,
76
- data,
77
- signal,
78
- cancelToken,
79
- timeout,
80
- onDownloadProgress,
81
- onUploadProgress,
82
- responseType,
83
- headers,
84
- withCredentials = "same-origin",
85
- fetchOptions
86
- } = resolveConfig(config);
87
- responseType = responseType ? (responseType + "").toLowerCase() : "text";
88
- let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
89
- let request;
90
- const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {
91
- composedSignal.unsubscribe();
60
+ return hexlify(bytes.slice(start == null ? 0 : start, end == null ? bytes.length : end));
61
+ }
62
+ function zeroPad(data, length, left) {
63
+ const bytes = getBytes(data);
64
+ assert(length >= bytes.length, "padding exceeds data length", "BUFFER_OVERRUN", {
65
+ buffer: new Uint8Array(bytes),
66
+ length,
67
+ offset: length + 1
92
68
  });
93
- let requestContentLength;
94
- try {
95
- if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {
96
- let _request = new Request(url, {
97
- method: "POST",
98
- body: data,
99
- duplex: "half"
100
- });
101
- let contentTypeHeader;
102
- if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get("content-type"))) {
103
- headers.setContentType(contentTypeHeader);
104
- }
105
- if (_request.body) {
106
- const [onProgress, flush] = progressEventDecorator(
107
- requestContentLength,
108
- progressEventReducer(asyncDecorator(onUploadProgress))
109
- );
110
- data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
111
- }
112
- }
113
- if (!utils.isString(withCredentials)) {
114
- withCredentials = withCredentials ? "include" : "omit";
115
- }
116
- const isCredentialsSupported = "credentials" in Request.prototype;
117
- request = new Request(url, {
118
- ...fetchOptions,
119
- signal: composedSignal,
120
- method: method.toUpperCase(),
121
- headers: headers.normalize().toJSON(),
122
- body: data,
123
- duplex: "half",
124
- credentials: isCredentialsSupported ? withCredentials : void 0
125
- });
126
- let response = await fetch(request);
127
- const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response");
128
- if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
129
- const options = {};
130
- ["status", "statusText", "headers"].forEach((prop) => {
131
- options[prop] = response[prop];
132
- });
133
- const responseContentLength = utils.toFiniteNumber(response.headers.get("content-length"));
134
- const [onProgress, flush] = onDownloadProgress && progressEventDecorator(
135
- responseContentLength,
136
- progressEventReducer(asyncDecorator(onDownloadProgress), true)
137
- ) || [];
138
- response = new Response(
139
- trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {
140
- flush && flush();
141
- unsubscribe && unsubscribe();
142
- }),
143
- options
144
- );
145
- }
146
- responseType = responseType || "text";
147
- let responseData = await resolvers[utils.findKey(resolvers, responseType) || "text"](response, config);
148
- !isStreamResponse && unsubscribe && unsubscribe();
149
- return await new Promise((resolve, reject) => {
150
- settle(resolve, reject, {
151
- data: responseData,
152
- headers: AxiosHeaders.from(response.headers),
153
- status: response.status,
154
- statusText: response.statusText,
155
- config,
156
- request
157
- });
158
- });
159
- } catch (err) {
160
- unsubscribe && unsubscribe();
161
- if (err && err.name === "TypeError" && /fetch/i.test(err.message)) {
162
- throw Object.assign(
163
- new AxiosError("Network Error", AxiosError.ERR_NETWORK, config, request),
164
- {
165
- cause: err.cause || err
166
- }
167
- );
168
- }
169
- throw AxiosError.from(err, err && err.code, config, request);
69
+ const result = new Uint8Array(length);
70
+ result.fill(0);
71
+ if (left) {
72
+ result.set(bytes, length - bytes.length);
73
+ } else {
74
+ result.set(bytes, 0);
170
75
  }
171
- });
76
+ return hexlify(result);
77
+ }
78
+ function zeroPadValue(data, length) {
79
+ return zeroPad(data, length, true);
80
+ }
81
+ function zeroPadBytes(data, length) {
82
+ return zeroPad(data, length, false);
83
+ }
172
84
  export {
173
- fetchAdapter as default
85
+ concat,
86
+ dataSlice,
87
+ getBytes,
88
+ getBytesCopy,
89
+ hexlify,
90
+ isHexString,
91
+ zeroPadBytes,
92
+ zeroPadValue
174
93
  };
175
94
  //# sourceMappingURL=standards-sdk.es96.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es96.js","sources":["../../node_modules/axios/lib/adapters/fetch.js"],"sourcesContent":["import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n"],"names":["res"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es96.js","sources":["../../node_modules/ethers/lib.esm/utils/data.js"],"sourcesContent":["/**\n * Some data helpers.\n *\n *\n * @_subsection api/utils:Data Helpers [about-data]\n */\nimport { assert, assertArgument } from \"./errors.js\";\nfunction _getBytes(value, name, copy) {\n if (value instanceof Uint8Array) {\n if (copy) {\n return new Uint8Array(value);\n }\n return value;\n }\n if (typeof (value) === \"string\" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) {\n const result = new Uint8Array((value.length - 2) / 2);\n let offset = 2;\n for (let i = 0; i < result.length; i++) {\n result[i] = parseInt(value.substring(offset, offset + 2), 16);\n offset += 2;\n }\n return result;\n }\n assertArgument(false, \"invalid BytesLike value\", name || \"value\", value);\n}\n/**\n * Get a typed Uint8Array for %%value%%. If already a Uint8Array\n * the original %%value%% is returned; if a copy is required use\n * [[getBytesCopy]].\n *\n * @see: getBytesCopy\n */\nexport function getBytes(value, name) {\n return _getBytes(value, name, false);\n}\n/**\n * Get a typed Uint8Array for %%value%%, creating a copy if necessary\n * to prevent any modifications of the returned value from being\n * reflected elsewhere.\n *\n * @see: getBytes\n */\nexport function getBytesCopy(value, name) {\n return _getBytes(value, name, true);\n}\n/**\n * Returns true if %%value%% is a valid [[HexString]].\n *\n * If %%length%% is ``true`` or a //number//, it also checks that\n * %%value%% is a valid [[DataHexString]] of %%length%% (if a //number//)\n * bytes of data (e.g. ``0x1234`` is 2 bytes).\n */\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (typeof (length) === \"number\" && value.length !== 2 + 2 * length) {\n return false;\n }\n if (length === true && (value.length % 2) !== 0) {\n return false;\n }\n return true;\n}\n/**\n * Returns true if %%value%% is a valid representation of arbitrary\n * data (i.e. a valid [[DataHexString]] or a Uint8Array).\n */\nexport function isBytesLike(value) {\n return (isHexString(value, true) || (value instanceof Uint8Array));\n}\nconst HexCharacters = \"0123456789abcdef\";\n/**\n * Returns a [[DataHexString]] representation of %%data%%.\n */\nexport function hexlify(data) {\n const bytes = getBytes(data);\n let result = \"0x\";\n for (let i = 0; i < bytes.length; i++) {\n const v = bytes[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n}\n/**\n * Returns a [[DataHexString]] by concatenating all values\n * within %%data%%.\n */\nexport function concat(datas) {\n return \"0x\" + datas.map((d) => hexlify(d).substring(2)).join(\"\");\n}\n/**\n * Returns the length of %%data%%, in bytes.\n */\nexport function dataLength(data) {\n if (isHexString(data, true)) {\n return (data.length - 2) / 2;\n }\n return getBytes(data).length;\n}\n/**\n * Returns a [[DataHexString]] by slicing %%data%% from the %%start%%\n * offset to the %%end%% offset.\n *\n * By default %%start%% is 0 and %%end%% is the length of %%data%%.\n */\nexport function dataSlice(data, start, end) {\n const bytes = getBytes(data);\n if (end != null && end > bytes.length) {\n assert(false, \"cannot slice beyond data bounds\", \"BUFFER_OVERRUN\", {\n buffer: bytes, length: bytes.length, offset: end\n });\n }\n return hexlify(bytes.slice((start == null) ? 0 : start, (end == null) ? bytes.length : end));\n}\n/**\n * Return the [[DataHexString]] result by stripping all **leading**\n ** zero bytes from %%data%%.\n */\nexport function stripZerosLeft(data) {\n let bytes = hexlify(data).substring(2);\n while (bytes.startsWith(\"00\")) {\n bytes = bytes.substring(2);\n }\n return \"0x\" + bytes;\n}\nfunction zeroPad(data, length, left) {\n const bytes = getBytes(data);\n assert(length >= bytes.length, \"padding exceeds data length\", \"BUFFER_OVERRUN\", {\n buffer: new Uint8Array(bytes),\n length: length,\n offset: length + 1\n });\n const result = new Uint8Array(length);\n result.fill(0);\n if (left) {\n result.set(bytes, length - bytes.length);\n }\n else {\n result.set(bytes, 0);\n }\n return hexlify(result);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **left**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **values** are in Solidity\n * (e.g. ``uint128``).\n */\nexport function zeroPadValue(data, length) {\n return zeroPad(data, length, true);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **right**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **bytes** are in Solidity\n * (e.g. ``bytes16``).\n */\nexport function zeroPadBytes(data, length) {\n return zeroPad(data, length, false);\n}\n//# sourceMappingURL=data.js.map"],"names":[],"mappings":";AAOA,SAAS,UAAU,OAAO,MAAM,MAAM;AAClC,MAAI,iBAAiB,YAAY;AAC7B,QAAI,MAAM;AACN,aAAO,IAAI,WAAW,KAAK;AAAA,IACvC;AACQ,WAAO;AAAA,EACf;AACI,MAAI,OAAQ,UAAW,YAAY,MAAM,MAAM,4BAA4B,GAAG;AAC1E,UAAM,SAAS,IAAI,YAAY,MAAM,SAAS,KAAK,CAAC;AACpD,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,aAAO,CAAC,IAAI,SAAS,MAAM,UAAU,QAAQ,SAAS,CAAC,GAAG,EAAE;AAC5D,gBAAU;AAAA,IACtB;AACQ,WAAO;AAAA,EACf;AACI,iBAAe,OAAO,2BAA2B,QAAQ,SAAS,KAAK;AAC3E;AAQO,SAAS,SAAS,OAAO,MAAM;AAClC,SAAO,UAAU,OAAO,MAAM,KAAK;AACvC;AAQO,SAAS,aAAa,OAAO,MAAM;AACtC,SAAO,UAAU,OAAO,MAAM,IAAI;AACtC;AAQO,SAAS,YAAY,OAAO,QAAQ;AACvC,MAAI,OAAQ,UAAW,YAAY,CAAC,MAAM,MAAM,kBAAkB,GAAG;AACjE,WAAO;AAAA,EACf;AACI,MAAI,OAAQ,WAAY,YAAY,MAAM,WAAW,IAAI,IAAI,QAAQ;AACjE,WAAO;AAAA,EACf;AACI,MAAI,WAAW,QAAS,MAAM,SAAS,MAAO,GAAG;AAC7C,WAAO;AAAA,EACf;AACI,SAAO;AACX;AAQA,MAAM,gBAAgB;AAIf,SAAS,QAAQ,MAAM;AAC1B,QAAM,QAAQ,SAAS,IAAI;AAC3B,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,UAAM,IAAI,MAAM,CAAC;AACjB,cAAU,eAAe,IAAI,QAAS,CAAC,IAAI,cAAc,IAAI,EAAI;AAAA,EACzE;AACI,SAAO;AACX;AAKO,SAAS,OAAO,OAAO;AAC1B,SAAO,OAAO,MAAM,IAAI,CAAC,MAAM,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;AACnE;AAgBO,SAAS,UAAU,MAAM,OAAO,KAAK;AACxC,QAAM,QAAQ,SAAS,IAAI;AAC3B,MAAI,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACnC,WAAO,OAAO,mCAAmC,kBAAkB;AAAA,MAC/D,QAAQ;AAAA,MAAO,QAAQ,MAAM;AAAA,MAAQ,QAAQ;AAAA,IACzD,CAAS;AAAA,EACT;AACI,SAAO,QAAQ,MAAM,MAAO,SAAS,OAAQ,IAAI,OAAQ,OAAO,OAAQ,MAAM,SAAS,GAAG,CAAC;AAC/F;AAYA,SAAS,QAAQ,MAAM,QAAQ,MAAM;AACjC,QAAM,QAAQ,SAAS,IAAI;AAC3B,SAAO,UAAU,MAAM,QAAQ,+BAA+B,kBAAkB;AAAA,IAC5E,QAAQ,IAAI,WAAW,KAAK;AAAA,IAC5B;AAAA,IACA,QAAQ,SAAS;AAAA,EACzB,CAAK;AACD,QAAM,SAAS,IAAI,WAAW,MAAM;AACpC,SAAO,KAAK,CAAC;AACb,MAAI,MAAM;AACN,WAAO,IAAI,OAAO,SAAS,MAAM,MAAM;AAAA,EAC/C,OACS;AACD,WAAO,IAAI,OAAO,CAAC;AAAA,EAC3B;AACI,SAAO,QAAQ,MAAM;AACzB;AAWO,SAAS,aAAa,MAAM,QAAQ;AACvC,SAAO,QAAQ,MAAM,QAAQ,IAAI;AACrC;AAWO,SAAS,aAAa,MAAM,QAAQ;AACvC,SAAO,QAAQ,MAAM,QAAQ,KAAK;AACtC;","x_google_ignoreList":[0]}