quantumcoin 6.14.2 → 6.14.4

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 (161) hide show
  1. package/README.md +12 -22
  2. package/dist/README.md +1 -1
  3. package/lib.commonjs/_version.js +1 -1
  4. package/lib.commonjs/crypto/signing-key.d.ts +1 -1
  5. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
  6. package/lib.commonjs/crypto/signing-key.js +14 -8
  7. package/lib.commonjs/crypto/signing-key.js.map +1 -1
  8. package/lib.commonjs/quantumcoin.d.ts +2 -0
  9. package/lib.commonjs/quantumcoin.d.ts.map +1 -1
  10. package/lib.commonjs/quantumcoin.js +11 -5
  11. package/lib.commonjs/quantumcoin.js.map +1 -1
  12. package/lib.commonjs/transaction/address.d.ts.map +1 -1
  13. package/lib.commonjs/transaction/address.js +8 -3
  14. package/lib.commonjs/transaction/address.js.map +1 -1
  15. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
  16. package/lib.commonjs/wallet/json-keystore.js +7 -7
  17. package/lib.commonjs/wallet/json-keystore.js.map +1 -1
  18. package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
  19. package/lib.commonjs/wallet/wallet.js +2 -2
  20. package/lib.commonjs/wallet/wallet.js.map +1 -1
  21. package/lib.esm/_version.js +1 -1
  22. package/lib.esm/crypto/signing-key.d.ts +1 -1
  23. package/lib.esm/crypto/signing-key.d.ts.map +1 -1
  24. package/lib.esm/crypto/signing-key.js +15 -8
  25. package/lib.esm/crypto/signing-key.js.map +1 -1
  26. package/lib.esm/quantumcoin.d.ts +2 -0
  27. package/lib.esm/quantumcoin.d.ts.map +1 -1
  28. package/lib.esm/quantumcoin.js +6 -0
  29. package/lib.esm/quantumcoin.js.map +1 -1
  30. package/lib.esm/transaction/address.d.ts.map +1 -1
  31. package/lib.esm/transaction/address.js +8 -2
  32. package/lib.esm/transaction/address.js.map +1 -1
  33. package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
  34. package/lib.esm/wallet/json-keystore.js +11 -5
  35. package/lib.esm/wallet/json-keystore.js.map +1 -1
  36. package/lib.esm/wallet/wallet.d.ts.map +1 -1
  37. package/lib.esm/wallet/wallet.js +3 -1
  38. package/lib.esm/wallet/wallet.js.map +1 -1
  39. package/package.json +6 -5
  40. package/src.ts/_version.ts +1 -1
  41. package/src.ts/crypto/signing-key.ts +14 -9
  42. package/src.ts/quantumcoin.ts +10 -2
  43. package/src.ts/transaction/address.ts +7 -3
  44. package/src.ts/wallet/json-keystore.ts +8 -6
  45. package/src.ts/wallet/wallet.ts +2 -3
  46. package/dist/quantumcoin.js +0 -21137
  47. package/dist/quantumcoin.js.map +0 -1
  48. package/dist/quantumcoin.min.js +0 -1
  49. package/dist/quantumcoin.min.js'.gz' +0 -0
  50. package/dist/quantumcoin.umd.js +0 -21316
  51. package/dist/quantumcoin.umd.js.map +0 -1
  52. package/dist/quantumcoin.umd.min.js +0 -1
  53. package/dist/quantumcoin.umd.min.js'.gz' +0 -0
  54. package/dist/wordlists-extra.js +0 -1500
  55. package/dist/wordlists-extra.js.map +0 -1
  56. package/dist/wordlists-extra.min.js +0 -1
  57. package/dist/wordlists-extra.min.js'.gz' +0 -0
  58. package/lib.commonjs/providers/provider-alchemy.d.ts +0 -50
  59. package/lib.commonjs/providers/provider-alchemy.d.ts.map +0 -1
  60. package/lib.commonjs/providers/provider-alchemy.js +0 -151
  61. package/lib.commonjs/providers/provider-alchemy.js.map +0 -1
  62. package/lib.commonjs/providers/provider-ankr.d.ts +0 -61
  63. package/lib.commonjs/providers/provider-ankr.d.ts.map +0 -1
  64. package/lib.commonjs/providers/provider-ankr.js +0 -137
  65. package/lib.commonjs/providers/provider-ankr.js.map +0 -1
  66. package/lib.commonjs/providers/provider-blockscout.d.ts +0 -59
  67. package/lib.commonjs/providers/provider-blockscout.d.ts.map +0 -1
  68. package/lib.commonjs/providers/provider-blockscout.js +0 -145
  69. package/lib.commonjs/providers/provider-blockscout.js.map +0 -1
  70. package/lib.commonjs/providers/provider-chainstack.d.ts +0 -46
  71. package/lib.commonjs/providers/provider-chainstack.d.ts.map +0 -1
  72. package/lib.commonjs/providers/provider-chainstack.js +0 -102
  73. package/lib.commonjs/providers/provider-chainstack.js.map +0 -1
  74. package/lib.commonjs/providers/provider-cloudflare.d.ts +0 -14
  75. package/lib.commonjs/providers/provider-cloudflare.d.ts.map +0 -1
  76. package/lib.commonjs/providers/provider-cloudflare.js +0 -26
  77. package/lib.commonjs/providers/provider-cloudflare.js.map +0 -1
  78. package/lib.commonjs/providers/provider-etherscan.d.ts +0 -147
  79. package/lib.commonjs/providers/provider-etherscan.d.ts.map +0 -1
  80. package/lib.commonjs/providers/provider-etherscan.js +0 -587
  81. package/lib.commonjs/providers/provider-etherscan.js.map +0 -1
  82. package/lib.commonjs/providers/provider-infura.d.ts +0 -101
  83. package/lib.commonjs/providers/provider-infura.d.ts.map +0 -1
  84. package/lib.commonjs/providers/provider-infura.js +0 -206
  85. package/lib.commonjs/providers/provider-infura.js.map +0 -1
  86. package/lib.commonjs/providers/provider-pocket.d.ts +0 -54
  87. package/lib.commonjs/providers/provider-pocket.d.ts.map +0 -1
  88. package/lib.commonjs/providers/provider-pocket.js +0 -109
  89. package/lib.commonjs/providers/provider-pocket.js.map +0 -1
  90. package/lib.commonjs/providers/provider-quicknode.d.ts +0 -59
  91. package/lib.commonjs/providers/provider-quicknode.d.ts.map +0 -1
  92. package/lib.commonjs/providers/provider-quicknode.js +0 -163
  93. package/lib.commonjs/providers/provider-quicknode.js.map +0 -1
  94. package/lib.commonjs/wallet/hdwallet.d.ts +0 -248
  95. package/lib.commonjs/wallet/hdwallet.d.ts.map +0 -1
  96. package/lib.commonjs/wallet/hdwallet.js +0 -505
  97. package/lib.commonjs/wallet/hdwallet.js.map +0 -1
  98. package/lib.commonjs/wallet/json-crowdsale.d.ts +0 -27
  99. package/lib.commonjs/wallet/json-crowdsale.d.ts.map +0 -1
  100. package/lib.commonjs/wallet/json-crowdsale.js +0 -60
  101. package/lib.commonjs/wallet/json-crowdsale.js.map +0 -1
  102. package/lib.commonjs/wallet/mnemonic.d.ts +0 -65
  103. package/lib.commonjs/wallet/mnemonic.d.ts.map +0 -1
  104. package/lib.commonjs/wallet/mnemonic.js +0 -169
  105. package/lib.commonjs/wallet/mnemonic.js.map +0 -1
  106. package/lib.commonjs/wallet/seedwallet.d.ts +0 -4
  107. package/lib.commonjs/wallet/seedwallet.d.ts.map +0 -1
  108. package/lib.commonjs/wallet/seedwallet.js +0 -8
  109. package/lib.commonjs/wallet/seedwallet.js.map +0 -1
  110. package/lib.esm/providers/provider-alchemy.d.ts +0 -50
  111. package/lib.esm/providers/provider-alchemy.d.ts.map +0 -1
  112. package/lib.esm/providers/provider-alchemy.js +0 -147
  113. package/lib.esm/providers/provider-alchemy.js.map +0 -1
  114. package/lib.esm/providers/provider-ankr.d.ts +0 -61
  115. package/lib.esm/providers/provider-ankr.d.ts.map +0 -1
  116. package/lib.esm/providers/provider-ankr.js +0 -133
  117. package/lib.esm/providers/provider-ankr.js.map +0 -1
  118. package/lib.esm/providers/provider-blockscout.d.ts +0 -59
  119. package/lib.esm/providers/provider-blockscout.d.ts.map +0 -1
  120. package/lib.esm/providers/provider-blockscout.js +0 -141
  121. package/lib.esm/providers/provider-blockscout.js.map +0 -1
  122. package/lib.esm/providers/provider-chainstack.d.ts +0 -46
  123. package/lib.esm/providers/provider-chainstack.d.ts.map +0 -1
  124. package/lib.esm/providers/provider-chainstack.js +0 -98
  125. package/lib.esm/providers/provider-chainstack.js.map +0 -1
  126. package/lib.esm/providers/provider-cloudflare.d.ts +0 -14
  127. package/lib.esm/providers/provider-cloudflare.d.ts.map +0 -1
  128. package/lib.esm/providers/provider-cloudflare.js +0 -22
  129. package/lib.esm/providers/provider-cloudflare.js.map +0 -1
  130. package/lib.esm/providers/provider-etherscan.d.ts +0 -147
  131. package/lib.esm/providers/provider-etherscan.d.ts.map +0 -1
  132. package/lib.esm/providers/provider-etherscan.js +0 -584
  133. package/lib.esm/providers/provider-etherscan.js.map +0 -1
  134. package/lib.esm/providers/provider-infura.d.ts +0 -101
  135. package/lib.esm/providers/provider-infura.d.ts.map +0 -1
  136. package/lib.esm/providers/provider-infura.js +0 -201
  137. package/lib.esm/providers/provider-infura.js.map +0 -1
  138. package/lib.esm/providers/provider-pocket.d.ts +0 -54
  139. package/lib.esm/providers/provider-pocket.d.ts.map +0 -1
  140. package/lib.esm/providers/provider-pocket.js +0 -105
  141. package/lib.esm/providers/provider-pocket.js.map +0 -1
  142. package/lib.esm/providers/provider-quicknode.d.ts +0 -59
  143. package/lib.esm/providers/provider-quicknode.d.ts.map +0 -1
  144. package/lib.esm/providers/provider-quicknode.js +0 -159
  145. package/lib.esm/providers/provider-quicknode.js.map +0 -1
  146. package/lib.esm/wallet/hdwallet.d.ts +0 -248
  147. package/lib.esm/wallet/hdwallet.d.ts.map +0 -1
  148. package/lib.esm/wallet/hdwallet.js +0 -498
  149. package/lib.esm/wallet/hdwallet.js.map +0 -1
  150. package/lib.esm/wallet/json-crowdsale.d.ts +0 -27
  151. package/lib.esm/wallet/json-crowdsale.d.ts.map +0 -1
  152. package/lib.esm/wallet/json-crowdsale.js +0 -55
  153. package/lib.esm/wallet/json-crowdsale.js.map +0 -1
  154. package/lib.esm/wallet/mnemonic.d.ts +0 -65
  155. package/lib.esm/wallet/mnemonic.d.ts.map +0 -1
  156. package/lib.esm/wallet/mnemonic.js +0 -165
  157. package/lib.esm/wallet/mnemonic.js.map +0 -1
  158. package/lib.esm/wallet/seedwallet.d.ts +0 -4
  159. package/lib.esm/wallet/seedwallet.d.ts.map +0 -1
  160. package/lib.esm/wallet/seedwallet.js +0 -4
  161. package/lib.esm/wallet/seedwallet.js.map +0 -1
@@ -1,587 +0,0 @@
1
- "use strict";
2
- /**
3
- * [[link-etherscan]] provides a third-party service for connecting to
4
- * various blockchains over a combination of JSON-RPC and custom API
5
- * endpoints.
6
- *
7
- * **Supported Networks**
8
- *
9
- * - Ethereum Mainnet (``mainnet``)
10
- * - Goerli Testnet (``goerli``)
11
- * - Sepolia Testnet (``sepolia``)
12
- * - Holesky Testnet (``holesky``)
13
- * - Arbitrum (``arbitrum``)
14
- * - Arbitrum Goerli Testnet (``arbitrum-goerli``)
15
- * - Base (``base``)
16
- * - Base Sepolia Testnet (``base-sepolia``)
17
- * - BNB Smart Chain Mainnet (``bnb``)
18
- * - BNB Smart Chain Testnet (``bnbt``)
19
- * - Optimism (``optimism``)
20
- * - Optimism Goerli Testnet (``optimism-goerli``)
21
- * - Polygon (``matic``)
22
- * - Polygon Mumbai Testnet (``matic-mumbai``)
23
- * - Polygon Amoy Testnet (``matic-amoy``)
24
- *
25
- * @_subsection api/providers/thirdparty:Etherscan [providers-etherscan]
26
- */
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.EtherscanProvider = exports.EtherscanPlugin = void 0;
29
- const index_js_1 = require("../abi/index.js");
30
- const index_js_2 = require("../contract/index.js");
31
- const index_js_3 = require("../transaction/index.js");
32
- const index_js_4 = require("../utils/index.js");
33
- const abstract_provider_js_1 = require("./abstract-provider.js");
34
- const network_js_1 = require("./network.js");
35
- const plugins_network_js_1 = require("./plugins-network.js");
36
- const community_js_1 = require("./community.js");
37
- const THROTTLE = 2000;
38
- function isPromise(value) {
39
- return (value && typeof (value.then) === "function");
40
- }
41
- const EtherscanPluginId = "org.ethers.plugins.provider.Etherscan";
42
- /**
43
- * A Network can include an **EtherscanPlugin** to provide
44
- * a custom base URL.
45
- *
46
- * @_docloc: api/providers/thirdparty:Etherscan
47
- */
48
- class EtherscanPlugin extends plugins_network_js_1.NetworkPlugin {
49
- /**
50
- * The Etherscan API base URL.
51
- */
52
- baseUrl;
53
- /**
54
- * Creates a new **EtherscanProvider** which will use
55
- * %%baseUrl%%.
56
- */
57
- constructor(baseUrl) {
58
- super(EtherscanPluginId);
59
- (0, index_js_4.defineProperties)(this, { baseUrl });
60
- }
61
- clone() {
62
- return new EtherscanPlugin(this.baseUrl);
63
- }
64
- }
65
- exports.EtherscanPlugin = EtherscanPlugin;
66
- const skipKeys = ["enableCcipRead"];
67
- let nextId = 1;
68
- /**
69
- * The **EtherscanBaseProvider** is the super-class of
70
- * [[EtherscanProvider]], which should generally be used instead.
71
- *
72
- * Since the **EtherscanProvider** includes additional code for
73
- * [[Contract]] access, in //rare cases// that contracts are not
74
- * used, this class can reduce code size.
75
- *
76
- * @_docloc: api/providers/thirdparty:Etherscan
77
- */
78
- class EtherscanProvider extends abstract_provider_js_1.AbstractProvider {
79
- /**
80
- * The connected network.
81
- */
82
- network;
83
- /**
84
- * The API key or null if using the community provided bandwidth.
85
- */
86
- apiKey;
87
- #plugin;
88
- /**
89
- * Creates a new **EtherscanBaseProvider**.
90
- */
91
- constructor(_network, _apiKey) {
92
- const apiKey = (_apiKey != null) ? _apiKey : null;
93
- super();
94
- const network = network_js_1.Network.from(_network);
95
- this.#plugin = network.getPlugin(EtherscanPluginId);
96
- (0, index_js_4.defineProperties)(this, { apiKey, network });
97
- // Test that the network is supported by Etherscan
98
- this.getBaseUrl();
99
- }
100
- /**
101
- * Returns the base URL.
102
- *
103
- * If an [[EtherscanPlugin]] is configured on the
104
- * [[EtherscanBaseProvider_network]], returns the plugin's
105
- * baseUrl.
106
- */
107
- getBaseUrl() {
108
- if (this.#plugin) {
109
- return this.#plugin.baseUrl;
110
- }
111
- switch (this.network.name) {
112
- case "mainnet":
113
- return "https:/\/api.etherscan.io";
114
- case "goerli":
115
- return "https:/\/api-goerli.etherscan.io";
116
- case "sepolia":
117
- return "https:/\/api-sepolia.etherscan.io";
118
- case "holesky":
119
- return "https:/\/api-holesky.etherscan.io";
120
- case "arbitrum":
121
- return "https:/\/api.arbiscan.io";
122
- case "arbitrum-goerli":
123
- return "https:/\/api-goerli.arbiscan.io";
124
- case "base":
125
- return "https:/\/api.basescan.org";
126
- case "base-sepolia":
127
- return "https:/\/api-sepolia.basescan.org";
128
- case "bnb":
129
- return "https:/\/api.bscscan.com";
130
- case "bnbt":
131
- return "https:/\/api-testnet.bscscan.com";
132
- case "matic":
133
- return "https:/\/api.polygonscan.com";
134
- case "matic-amoy":
135
- return "https:/\/api-amoy.polygonscan.com";
136
- case "matic-mumbai":
137
- return "https:/\/api-testnet.polygonscan.com";
138
- case "optimism":
139
- return "https:/\/api-optimistic.etherscan.io";
140
- case "optimism-goerli":
141
- return "https:/\/api-goerli-optimistic.etherscan.io";
142
- default:
143
- }
144
- (0, index_js_4.assertArgument)(false, "unsupported network", "network", this.network);
145
- }
146
- /**
147
- * Returns the URL for the %%module%% and %%params%%.
148
- */
149
- getUrl(module, params) {
150
- const query = Object.keys(params).reduce((accum, key) => {
151
- const value = params[key];
152
- if (value != null) {
153
- accum += `&${key}=${value}`;
154
- }
155
- return accum;
156
- }, "");
157
- const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : "");
158
- return `${this.getBaseUrl()}/api?module=${module}${query}${apiKey}`;
159
- }
160
- /**
161
- * Returns the URL for using POST requests.
162
- */
163
- getPostUrl() {
164
- return `${this.getBaseUrl()}/api`;
165
- }
166
- /**
167
- * Returns the parameters for using POST requests.
168
- */
169
- getPostData(module, params) {
170
- params.module = module;
171
- params.apikey = this.apiKey;
172
- return params;
173
- }
174
- async detectNetwork() {
175
- return this.network;
176
- }
177
- /**
178
- * Resolves to the result of calling %%module%% with %%params%%.
179
- *
180
- * If %%post%%, the request is made as a POST request.
181
- */
182
- async fetch(module, params, post) {
183
- const id = nextId++;
184
- const url = (post ? this.getPostUrl() : this.getUrl(module, params));
185
- const payload = (post ? this.getPostData(module, params) : null);
186
- this.emit("debug", { action: "sendRequest", id, url, payload: payload });
187
- const request = new index_js_4.FetchRequest(url);
188
- request.setThrottleParams({ slotInterval: 1000 });
189
- request.retryFunc = (req, resp, attempt) => {
190
- if (this.isCommunityResource()) {
191
- (0, community_js_1.showThrottleMessage)("Etherscan");
192
- }
193
- return Promise.resolve(true);
194
- };
195
- request.processFunc = async (request, response) => {
196
- const result = response.hasBody() ? JSON.parse((0, index_js_4.toUtf8String)(response.body)) : {};
197
- const throttle = ((typeof (result.result) === "string") ? result.result : "").toLowerCase().indexOf("rate limit") >= 0;
198
- if (module === "proxy") {
199
- // This JSON response indicates we are being throttled
200
- if (result && result.status == 0 && result.message == "NOTOK" && throttle) {
201
- this.emit("debug", { action: "receiveError", id, reason: "proxy-NOTOK", error: result });
202
- response.throwThrottleError(result.result, THROTTLE);
203
- }
204
- }
205
- else {
206
- if (throttle) {
207
- this.emit("debug", { action: "receiveError", id, reason: "null result", error: result.result });
208
- response.throwThrottleError(result.result, THROTTLE);
209
- }
210
- }
211
- return response;
212
- };
213
- if (payload) {
214
- request.setHeader("content-type", "application/x-www-form-urlencoded; charset=UTF-8");
215
- request.body = Object.keys(payload).map((k) => `${k}=${payload[k]}`).join("&");
216
- }
217
- const response = await request.send();
218
- try {
219
- response.assertOk();
220
- }
221
- catch (error) {
222
- this.emit("debug", { action: "receiveError", id, error, reason: "assertOk" });
223
- (0, index_js_4.assert)(false, "response error", "SERVER_ERROR", { request, response });
224
- }
225
- if (!response.hasBody()) {
226
- this.emit("debug", { action: "receiveError", id, error: "missing body", reason: "null body" });
227
- (0, index_js_4.assert)(false, "missing response", "SERVER_ERROR", { request, response });
228
- }
229
- const result = JSON.parse((0, index_js_4.toUtf8String)(response.body));
230
- if (module === "proxy") {
231
- if (result.jsonrpc != "2.0") {
232
- this.emit("debug", { action: "receiveError", id, result, reason: "invalid JSON-RPC" });
233
- (0, index_js_4.assert)(false, "invalid JSON-RPC response (missing jsonrpc='2.0')", "SERVER_ERROR", { request, response, info: { result } });
234
- }
235
- if (result.error) {
236
- this.emit("debug", { action: "receiveError", id, result, reason: "JSON-RPC error" });
237
- (0, index_js_4.assert)(false, "error response", "SERVER_ERROR", { request, response, info: { result } });
238
- }
239
- this.emit("debug", { action: "receiveRequest", id, result });
240
- return result.result;
241
- }
242
- else {
243
- // getLogs, getHistory have weird success responses
244
- if (result.status == 0 && (result.message === "No records found" || result.message === "No transactions found")) {
245
- this.emit("debug", { action: "receiveRequest", id, result });
246
- return result.result;
247
- }
248
- if (result.status != 1 || (typeof (result.message) === "string" && !result.message.match(/^OK/))) {
249
- this.emit("debug", { action: "receiveError", id, result });
250
- (0, index_js_4.assert)(false, "error response", "SERVER_ERROR", { request, response, info: { result } });
251
- }
252
- this.emit("debug", { action: "receiveRequest", id, result });
253
- return result.result;
254
- }
255
- }
256
- /**
257
- * Returns %%transaction%% normalized for the Etherscan API.
258
- */
259
- _getTransactionPostData(transaction) {
260
- const result = {};
261
- for (let key in transaction) {
262
- if (skipKeys.indexOf(key) >= 0) {
263
- continue;
264
- }
265
- if (transaction[key] == null) {
266
- continue;
267
- }
268
- let value = transaction[key];
269
- if (key === "type" && value === 0) {
270
- continue;
271
- }
272
- if (key === "blockTag" && value === "latest") {
273
- continue;
274
- }
275
- // Quantity-types require no leading zero, unless 0
276
- if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {
277
- value = (0, index_js_4.toQuantity)(value);
278
- }
279
- else if (key === "accessList") {
280
- value = "[" + (0, index_js_3.accessListify)(value).map((set) => {
281
- return `{address:"${set.address}",storageKeys:["${set.storageKeys.join('","')}"]}`;
282
- }).join(",") + "]";
283
- }
284
- else if (key === "blobVersionedHashes") {
285
- if (value.length === 0) {
286
- continue;
287
- }
288
- // @TODO: update this once the API supports blobs
289
- (0, index_js_4.assert)(false, "Etherscan API does not support blobVersionedHashes", "UNSUPPORTED_OPERATION", {
290
- operation: "_getTransactionPostData",
291
- info: { transaction }
292
- });
293
- }
294
- else {
295
- value = (0, index_js_4.hexlify)(value);
296
- }
297
- result[key] = value;
298
- }
299
- return result;
300
- }
301
- /**
302
- * Throws the normalized Etherscan error.
303
- */
304
- _checkError(req, error, transaction) {
305
- // Pull any message out if, possible
306
- let message = "";
307
- if ((0, index_js_4.isError)(error, "SERVER_ERROR")) {
308
- // Check for an error emitted by a proxy call
309
- try {
310
- message = error.info.result.error.message;
311
- }
312
- catch (e) { }
313
- if (!message) {
314
- try {
315
- message = error.info.message;
316
- }
317
- catch (e) { }
318
- }
319
- }
320
- if (req.method === "estimateGas") {
321
- if (!message.match(/revert/i) && message.match(/insufficient funds/i)) {
322
- (0, index_js_4.assert)(false, "insufficient funds", "INSUFFICIENT_FUNDS", {
323
- transaction: req.transaction
324
- });
325
- }
326
- }
327
- if (req.method === "call" || req.method === "estimateGas") {
328
- if (message.match(/execution reverted/i)) {
329
- let data = "";
330
- try {
331
- data = error.info.result.error.data;
332
- }
333
- catch (error) { }
334
- const e = index_js_1.AbiCoder.getBuiltinCallException(req.method, req.transaction, data);
335
- e.info = { request: req, error };
336
- throw e;
337
- }
338
- }
339
- if (message) {
340
- if (req.method === "broadcastTransaction") {
341
- const transaction = index_js_3.Transaction.from(req.signedTransaction);
342
- if (message.match(/replacement/i) && message.match(/underpriced/i)) {
343
- (0, index_js_4.assert)(false, "replacement fee too low", "REPLACEMENT_UNDERPRICED", {
344
- transaction
345
- });
346
- }
347
- if (message.match(/insufficient funds/)) {
348
- (0, index_js_4.assert)(false, "insufficient funds for intrinsic transaction cost", "INSUFFICIENT_FUNDS", {
349
- transaction
350
- });
351
- }
352
- if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {
353
- (0, index_js_4.assert)(false, "nonce has already been used", "NONCE_EXPIRED", {
354
- transaction
355
- });
356
- }
357
- }
358
- }
359
- // Something we could not process
360
- throw error;
361
- }
362
- async _detectNetwork() {
363
- return this.network;
364
- }
365
- async _perform(req) {
366
- switch (req.method) {
367
- case "chainId":
368
- return this.network.chainId;
369
- case "getBlockNumber":
370
- return this.fetch("proxy", { action: "eth_blockNumber" });
371
- case "getGasPrice":
372
- return this.fetch("proxy", { action: "eth_gasPrice" });
373
- case "getPriorityFee":
374
- // This is temporary until Etherscan completes support
375
- if (this.network.name === "mainnet") {
376
- return "1000000000";
377
- }
378
- else if (this.network.name === "optimism") {
379
- return "1000000";
380
- }
381
- else {
382
- throw new Error("fallback onto the AbstractProvider default");
383
- }
384
- /* Working with Etherscan to get this added:
385
- try {
386
- const test = await this.fetch("proxy", {
387
- action: "eth_maxPriorityFeePerGas"
388
- });
389
- console.log(test);
390
- return test;
391
- } catch (e) {
392
- console.log("DEBUG", e);
393
- throw e;
394
- }
395
- */
396
- /* This might be safe; but due to rounding neither myself
397
- or Etherscan are necessarily comfortable with this. :)
398
- try {
399
- const result = await this.fetch("gastracker", { action: "gasoracle" });
400
- console.log(result);
401
- const gasPrice = parseUnits(result.SafeGasPrice, "gwei");
402
- const baseFee = parseUnits(result.suggestBaseFee, "gwei");
403
- const priorityFee = gasPrice - baseFee;
404
- if (priorityFee < 0) { throw new Error("negative priority fee; defer to abstract provider default"); }
405
- return priorityFee;
406
- } catch (error) {
407
- console.log("DEBUG", error);
408
- throw error;
409
- }
410
- */
411
- case "getBalance":
412
- // Returns base-10 result
413
- return this.fetch("account", {
414
- action: "balance",
415
- address: req.address,
416
- tag: req.blockTag
417
- });
418
- case "getTransactionCount":
419
- return this.fetch("proxy", {
420
- action: "eth_getTransactionCount",
421
- address: req.address,
422
- tag: req.blockTag
423
- });
424
- case "getCode":
425
- return this.fetch("proxy", {
426
- action: "eth_getCode",
427
- address: req.address,
428
- tag: req.blockTag
429
- });
430
- case "getStorage":
431
- return this.fetch("proxy", {
432
- action: "eth_getStorageAt",
433
- address: req.address,
434
- position: req.position,
435
- tag: req.blockTag
436
- });
437
- case "broadcastTransaction":
438
- return this.fetch("proxy", {
439
- action: "eth_sendRawTransaction",
440
- hex: req.signedTransaction
441
- }, true).catch((error) => {
442
- return this._checkError(req, error, req.signedTransaction);
443
- });
444
- case "getBlock":
445
- if ("blockTag" in req) {
446
- return this.fetch("proxy", {
447
- action: "eth_getBlockByNumber",
448
- tag: req.blockTag,
449
- boolean: (req.includeTransactions ? "true" : "false")
450
- });
451
- }
452
- (0, index_js_4.assert)(false, "getBlock by blockHash not supported by Etherscan", "UNSUPPORTED_OPERATION", {
453
- operation: "getBlock(blockHash)"
454
- });
455
- case "getTransaction":
456
- return this.fetch("proxy", {
457
- action: "eth_getTransactionByHash",
458
- txhash: req.hash
459
- });
460
- case "getTransactionReceipt":
461
- return this.fetch("proxy", {
462
- action: "eth_getTransactionReceipt",
463
- txhash: req.hash
464
- });
465
- case "call": {
466
- if (req.blockTag !== "latest") {
467
- throw new Error("EtherscanProvider does not support blockTag for call");
468
- }
469
- const postData = this._getTransactionPostData(req.transaction);
470
- postData.module = "proxy";
471
- postData.action = "eth_call";
472
- try {
473
- return await this.fetch("proxy", postData, true);
474
- }
475
- catch (error) {
476
- return this._checkError(req, error, req.transaction);
477
- }
478
- }
479
- case "estimateGas": {
480
- const postData = this._getTransactionPostData(req.transaction);
481
- postData.module = "proxy";
482
- postData.action = "eth_estimateGas";
483
- try {
484
- return await this.fetch("proxy", postData, true);
485
- }
486
- catch (error) {
487
- return this._checkError(req, error, req.transaction);
488
- }
489
- }
490
- /*
491
- case "getLogs": {
492
- // Needs to complain if more than one address is passed in
493
- const args: Record<string, any> = { action: "getLogs" }
494
-
495
- if (params.filter.fromBlock) {
496
- args.fromBlock = checkLogTag(params.filter.fromBlock);
497
- }
498
-
499
- if (params.filter.toBlock) {
500
- args.toBlock = checkLogTag(params.filter.toBlock);
501
- }
502
-
503
- if (params.filter.address) {
504
- args.address = params.filter.address;
505
- }
506
-
507
- // @TODO: We can handle slightly more complicated logs using the logs API
508
- if (params.filter.topics && params.filter.topics.length > 0) {
509
- if (params.filter.topics.length > 1) {
510
- logger.throwError("unsupported topic count", Logger.Errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });
511
- }
512
- if (params.filter.topics.length === 1) {
513
- const topic0 = params.filter.topics[0];
514
- if (typeof(topic0) !== "string" || topic0.length !== 66) {
515
- logger.throwError("unsupported topic format", Logger.Errors.UNSUPPORTED_OPERATION, { topic0: topic0 });
516
- }
517
- args.topic0 = topic0;
518
- }
519
- }
520
-
521
- const logs: Array<any> = await this.fetch("logs", args);
522
-
523
- // Cache txHash => blockHash
524
- let blocks: { [tag: string]: string } = {};
525
-
526
- // Add any missing blockHash to the logs
527
- for (let i = 0; i < logs.length; i++) {
528
- const log = logs[i];
529
- if (log.blockHash != null) { continue; }
530
- if (blocks[log.blockNumber] == null) {
531
- const block = await this.getBlock(log.blockNumber);
532
- if (block) {
533
- blocks[log.blockNumber] = block.hash;
534
- }
535
- }
536
-
537
- log.blockHash = blocks[log.blockNumber];
538
- }
539
-
540
- return logs;
541
- }
542
- */
543
- default:
544
- break;
545
- }
546
- return super._perform(req);
547
- }
548
- async getNetwork() {
549
- return this.network;
550
- }
551
- /**
552
- * Resolves to the current price of ether.
553
- *
554
- * This returns ``0`` on any network other than ``mainnet``.
555
- */
556
- async getEtherPrice() {
557
- if (this.network.name !== "mainnet") {
558
- return 0.0;
559
- }
560
- return parseFloat((await this.fetch("stats", { action: "ethprice" })).ethusd);
561
- }
562
- /**
563
- * Resolves to a [Contract]] for %%address%%, using the
564
- * Etherscan API to retreive the Contract ABI.
565
- */
566
- async getContract(_address) {
567
- let address = this._getAddress(_address);
568
- if (isPromise(address)) {
569
- address = await address;
570
- }
571
- try {
572
- const resp = await this.fetch("contract", {
573
- action: "getabi", address
574
- });
575
- const abi = JSON.parse(resp);
576
- return new index_js_2.Contract(address, abi, this);
577
- }
578
- catch (error) {
579
- return null;
580
- }
581
- }
582
- isCommunityResource() {
583
- return (this.apiKey == null);
584
- }
585
- }
586
- exports.EtherscanProvider = EtherscanProvider;
587
- //# sourceMappingURL=provider-etherscan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-etherscan.js","sourceRoot":"","sources":["../../src.ts/providers/provider-etherscan.ts"],"names":[],"mappings":"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"}