quantumcoin 6.14.2 → 6.14.5

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 (317) hide show
  1. package/CHANGELOG.md +442 -442
  2. package/FUNDING.json +10 -10
  3. package/LICENSE.md +21 -21
  4. package/README.md +132 -142
  5. package/SECURITY.md +34 -34
  6. package/dist/README.md +22 -22
  7. package/dist/quantumcoin.js +1127 -1324
  8. package/dist/quantumcoin.js.map +1 -1
  9. package/dist/quantumcoin.min.js +1 -1
  10. package/dist/quantumcoin.umd.js +1128 -1327
  11. package/dist/quantumcoin.umd.js.map +1 -1
  12. package/dist/quantumcoin.umd.min.js +1 -1
  13. package/dist/wordlists-extra.js +1 -1
  14. package/dist/wordlists-extra.js.map +1 -1
  15. package/dist/wordlists-extra.min.js +1 -1
  16. package/lib.commonjs/README.md +16 -16
  17. package/lib.commonjs/_version.js +1 -1
  18. package/lib.commonjs/crypto/signature.d.ts +3 -76
  19. package/lib.commonjs/crypto/signature.d.ts.map +1 -1
  20. package/lib.commonjs/crypto/signature.js +15 -199
  21. package/lib.commonjs/crypto/signature.js.map +1 -1
  22. package/lib.commonjs/crypto/signing-key.d.ts +1 -1
  23. package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
  24. package/lib.commonjs/crypto/signing-key.js +19 -10
  25. package/lib.commonjs/crypto/signing-key.js.map +1 -1
  26. package/lib.commonjs/package.json +12 -12
  27. package/lib.commonjs/providers/provider-jsonrpc.d.ts +0 -1
  28. package/lib.commonjs/providers/provider-jsonrpc.d.ts.map +1 -1
  29. package/lib.commonjs/providers/provider-jsonrpc.js +0 -1
  30. package/lib.commonjs/providers/provider-jsonrpc.js.map +1 -1
  31. package/lib.commonjs/quantumcoin.d.ts +2 -0
  32. package/lib.commonjs/quantumcoin.d.ts.map +1 -1
  33. package/lib.commonjs/quantumcoin.js +11 -5
  34. package/lib.commonjs/quantumcoin.js.map +1 -1
  35. package/lib.commonjs/transaction/address.d.ts.map +1 -1
  36. package/lib.commonjs/transaction/address.js +8 -3
  37. package/lib.commonjs/transaction/address.js.map +1 -1
  38. package/lib.commonjs/transaction/transaction.d.ts.map +1 -1
  39. package/lib.commonjs/transaction/transaction.js +7 -40
  40. package/lib.commonjs/transaction/transaction.js.map +1 -1
  41. package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
  42. package/lib.commonjs/wallet/json-keystore.js +7 -7
  43. package/lib.commonjs/wallet/json-keystore.js.map +1 -1
  44. package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
  45. package/lib.commonjs/wallet/wallet.js +2 -2
  46. package/lib.commonjs/wallet/wallet.js.map +1 -1
  47. package/lib.esm/README.md +16 -16
  48. package/lib.esm/_version.js +1 -1
  49. package/lib.esm/crypto/signature.d.ts +3 -76
  50. package/lib.esm/crypto/signature.d.ts.map +1 -1
  51. package/lib.esm/crypto/signature.js +16 -202
  52. package/lib.esm/crypto/signature.js.map +1 -1
  53. package/lib.esm/crypto/signing-key.d.ts +1 -1
  54. package/lib.esm/crypto/signing-key.d.ts.map +1 -1
  55. package/lib.esm/crypto/signing-key.js +20 -9
  56. package/lib.esm/crypto/signing-key.js.map +1 -1
  57. package/lib.esm/package.json +12 -12
  58. package/lib.esm/providers/provider-jsonrpc.d.ts +0 -1
  59. package/lib.esm/providers/provider-jsonrpc.d.ts.map +1 -1
  60. package/lib.esm/providers/provider-jsonrpc.js +0 -1
  61. package/lib.esm/providers/provider-jsonrpc.js.map +1 -1
  62. package/lib.esm/quantumcoin.d.ts +2 -0
  63. package/lib.esm/quantumcoin.d.ts.map +1 -1
  64. package/lib.esm/quantumcoin.js +6 -0
  65. package/lib.esm/quantumcoin.js.map +1 -1
  66. package/lib.esm/transaction/address.d.ts.map +1 -1
  67. package/lib.esm/transaction/address.js +8 -2
  68. package/lib.esm/transaction/address.js.map +1 -1
  69. package/lib.esm/transaction/transaction.d.ts.map +1 -1
  70. package/lib.esm/transaction/transaction.js +7 -40
  71. package/lib.esm/transaction/transaction.js.map +1 -1
  72. package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
  73. package/lib.esm/wallet/json-keystore.js +11 -5
  74. package/lib.esm/wallet/json-keystore.js.map +1 -1
  75. package/lib.esm/wallet/wallet.d.ts.map +1 -1
  76. package/lib.esm/wallet/wallet.js +3 -1
  77. package/lib.esm/wallet/wallet.js.map +1 -1
  78. package/package.json +6 -5
  79. package/rollup.config.mjs +50 -50
  80. package/src.ts/_version.ts +1 -1
  81. package/src.ts/abi/abi-coder.ts +237 -237
  82. package/src.ts/abi/bytes32.ts +45 -45
  83. package/src.ts/abi/coders/abstract-coder.ts +541 -541
  84. package/src.ts/abi/coders/address.ts +36 -36
  85. package/src.ts/abi/coders/anonymous.ts +29 -29
  86. package/src.ts/abi/coders/array.ts +199 -199
  87. package/src.ts/abi/coders/boolean.ts +27 -27
  88. package/src.ts/abi/coders/bytes.ts +43 -43
  89. package/src.ts/abi/coders/fixed-bytes.ts +37 -37
  90. package/src.ts/abi/coders/null.ts +28 -28
  91. package/src.ts/abi/coders/number.ts +63 -63
  92. package/src.ts/abi/coders/string.ts +29 -29
  93. package/src.ts/abi/coders/tuple.ts +69 -69
  94. package/src.ts/abi/fragments.ts +1617 -1617
  95. package/src.ts/abi/index.ts +41 -41
  96. package/src.ts/abi/interface.ts +1271 -1271
  97. package/src.ts/abi/typed.ts +796 -796
  98. package/src.ts/address/address.ts +148 -148
  99. package/src.ts/address/checks.ts +123 -123
  100. package/src.ts/address/contract-address.ts +80 -80
  101. package/src.ts/address/index.ts +57 -57
  102. package/src.ts/constants/addresses.ts +8 -8
  103. package/src.ts/constants/hashes.ts +7 -7
  104. package/src.ts/constants/index.ts +16 -16
  105. package/src.ts/constants/numbers.ts +35 -35
  106. package/src.ts/constants/strings.ts +16 -16
  107. package/src.ts/contract/contract.ts +1120 -1120
  108. package/src.ts/contract/factory.ts +143 -143
  109. package/src.ts/contract/index.ts +31 -31
  110. package/src.ts/contract/types.ts +236 -236
  111. package/src.ts/contract/wrappers.ts +225 -225
  112. package/src.ts/crypto/crypto-browser.ts +64 -64
  113. package/src.ts/crypto/crypto.ts +4 -4
  114. package/src.ts/crypto/hmac.ts +51 -51
  115. package/src.ts/crypto/index.ts +59 -59
  116. package/src.ts/crypto/keccak.ts +54 -54
  117. package/src.ts/crypto/pbkdf2.ts +55 -55
  118. package/src.ts/crypto/random.ts +36 -36
  119. package/src.ts/crypto/ripemd160.ts +43 -43
  120. package/src.ts/crypto/scrypt.ts +114 -114
  121. package/src.ts/crypto/sha2.ts +78 -78
  122. package/src.ts/crypto/signature.ts +145 -349
  123. package/src.ts/crypto/signing-key.ts +126 -118
  124. package/src.ts/hash/authorization.ts +38 -38
  125. package/src.ts/hash/id.ts +17 -17
  126. package/src.ts/hash/index.ts +18 -18
  127. package/src.ts/hash/message.ts +51 -51
  128. package/src.ts/hash/namehash.ts +101 -101
  129. package/src.ts/hash/solidity.ts +117 -117
  130. package/src.ts/hash/typed-data.ts +658 -658
  131. package/src.ts/index.ts +12 -12
  132. package/src.ts/providers/abstract-provider.ts +1761 -1761
  133. package/src.ts/providers/abstract-signer.ts +314 -314
  134. package/src.ts/providers/community.ts +49 -49
  135. package/src.ts/providers/contracts.ts +42 -42
  136. package/src.ts/providers/default-provider.ts +96 -96
  137. package/src.ts/providers/ens-resolver.ts +606 -606
  138. package/src.ts/providers/format.ts +320 -320
  139. package/src.ts/providers/formatting.ts +418 -418
  140. package/src.ts/providers/index.ts +125 -125
  141. package/src.ts/providers/network.ts +327 -327
  142. package/src.ts/providers/pagination.ts +8 -8
  143. package/src.ts/providers/plugin-fallback.ts +35 -35
  144. package/src.ts/providers/plugins-network.ts +281 -281
  145. package/src.ts/providers/provider-browser.ts +334 -334
  146. package/src.ts/providers/provider-fallback.ts +801 -801
  147. package/src.ts/providers/provider-ipcsocket-browser.ts +3 -3
  148. package/src.ts/providers/provider-ipcsocket.ts +81 -81
  149. package/src.ts/providers/provider-jsonrpc.ts +1334 -1335
  150. package/src.ts/providers/provider-socket.ts +352 -352
  151. package/src.ts/providers/provider-websocket.ts +103 -103
  152. package/src.ts/providers/provider.ts +2136 -2136
  153. package/src.ts/providers/signer-noncemanager.ts +98 -98
  154. package/src.ts/providers/signer.ts +166 -166
  155. package/src.ts/providers/subscriber-connection.ts +74 -74
  156. package/src.ts/providers/subscriber-filterid.ts +199 -199
  157. package/src.ts/providers/subscriber-polling.ts +321 -321
  158. package/src.ts/providers/ws-browser.ts +11 -11
  159. package/src.ts/providers/ws.ts +3 -3
  160. package/src.ts/quantumcoin.ts +219 -211
  161. package/src.ts/thirdparty.d.ts +16 -16
  162. package/src.ts/transaction/accesslist.ts +43 -43
  163. package/src.ts/transaction/address.ts +35 -31
  164. package/src.ts/transaction/authorization.ts +14 -14
  165. package/src.ts/transaction/index.ts +51 -51
  166. package/src.ts/transaction/transaction.ts +1349 -1379
  167. package/src.ts/utils/base58.ts +73 -73
  168. package/src.ts/utils/base64-browser.ts +25 -25
  169. package/src.ts/utils/base64.ts +56 -56
  170. package/src.ts/utils/data.ts +199 -199
  171. package/src.ts/utils/errors.ts +793 -793
  172. package/src.ts/utils/events.ts +105 -105
  173. package/src.ts/utils/fetch.ts +970 -970
  174. package/src.ts/utils/fixednumber.ts +643 -643
  175. package/src.ts/utils/geturl-browser.ts +81 -81
  176. package/src.ts/utils/geturl.ts +134 -134
  177. package/src.ts/utils/index.ts +95 -95
  178. package/src.ts/utils/maths.ts +240 -240
  179. package/src.ts/utils/properties.ts +60 -60
  180. package/src.ts/utils/rlp-decode.ts +104 -104
  181. package/src.ts/utils/rlp-encode.ts +64 -64
  182. package/src.ts/utils/rlp.ts +20 -20
  183. package/src.ts/utils/units.ts +91 -91
  184. package/src.ts/utils/utf8.ts +325 -325
  185. package/src.ts/utils/uuid.ts +36 -36
  186. package/src.ts/wallet/base-wallet.ts +160 -160
  187. package/src.ts/wallet/index.ts +32 -32
  188. package/src.ts/wallet/json-keystore.ts +108 -106
  189. package/src.ts/wallet/utils.ts +147 -147
  190. package/src.ts/wallet/wallet.ts +138 -139
  191. package/src.ts/wordlists/bit-reader.ts +35 -35
  192. package/src.ts/wordlists/decode-owl.ts +58 -58
  193. package/src.ts/wordlists/decode-owla.ts +33 -33
  194. package/src.ts/wordlists/generation/encode-latin.ts +370 -370
  195. package/src.ts/wordlists/index.ts +26 -26
  196. package/src.ts/wordlists/lang-cz.ts +33 -33
  197. package/src.ts/wordlists/lang-en.ts +33 -33
  198. package/src.ts/wordlists/lang-es.ts +35 -35
  199. package/src.ts/wordlists/lang-fr.ts +34 -34
  200. package/src.ts/wordlists/lang-it.ts +33 -33
  201. package/src.ts/wordlists/lang-ja.ts +181 -181
  202. package/src.ts/wordlists/lang-ko.ts +104 -104
  203. package/src.ts/wordlists/lang-pt.ts +34 -34
  204. package/src.ts/wordlists/lang-zh.ts +112 -112
  205. package/src.ts/wordlists/wordlist-owl.ts +77 -77
  206. package/src.ts/wordlists/wordlist-owla.ts +41 -41
  207. package/src.ts/wordlists/wordlist.ts +59 -59
  208. package/src.ts/wordlists/wordlists-browser.ts +8 -8
  209. package/src.ts/wordlists/wordlists-extra.ts +9 -9
  210. package/src.ts/wordlists/wordlists.ts +38 -38
  211. package/dist/quantumcoin.min.js'.gz' +0 -0
  212. package/dist/quantumcoin.umd.min.js'.gz' +0 -0
  213. package/dist/wordlists-extra.min.js'.gz' +0 -0
  214. package/lib.commonjs/providers/provider-alchemy.d.ts +0 -50
  215. package/lib.commonjs/providers/provider-alchemy.d.ts.map +0 -1
  216. package/lib.commonjs/providers/provider-alchemy.js +0 -151
  217. package/lib.commonjs/providers/provider-alchemy.js.map +0 -1
  218. package/lib.commonjs/providers/provider-ankr.d.ts +0 -61
  219. package/lib.commonjs/providers/provider-ankr.d.ts.map +0 -1
  220. package/lib.commonjs/providers/provider-ankr.js +0 -137
  221. package/lib.commonjs/providers/provider-ankr.js.map +0 -1
  222. package/lib.commonjs/providers/provider-blockscout.d.ts +0 -59
  223. package/lib.commonjs/providers/provider-blockscout.d.ts.map +0 -1
  224. package/lib.commonjs/providers/provider-blockscout.js +0 -145
  225. package/lib.commonjs/providers/provider-blockscout.js.map +0 -1
  226. package/lib.commonjs/providers/provider-chainstack.d.ts +0 -46
  227. package/lib.commonjs/providers/provider-chainstack.d.ts.map +0 -1
  228. package/lib.commonjs/providers/provider-chainstack.js +0 -102
  229. package/lib.commonjs/providers/provider-chainstack.js.map +0 -1
  230. package/lib.commonjs/providers/provider-cloudflare.d.ts +0 -14
  231. package/lib.commonjs/providers/provider-cloudflare.d.ts.map +0 -1
  232. package/lib.commonjs/providers/provider-cloudflare.js +0 -26
  233. package/lib.commonjs/providers/provider-cloudflare.js.map +0 -1
  234. package/lib.commonjs/providers/provider-etherscan.d.ts +0 -147
  235. package/lib.commonjs/providers/provider-etherscan.d.ts.map +0 -1
  236. package/lib.commonjs/providers/provider-etherscan.js +0 -587
  237. package/lib.commonjs/providers/provider-etherscan.js.map +0 -1
  238. package/lib.commonjs/providers/provider-infura.d.ts +0 -101
  239. package/lib.commonjs/providers/provider-infura.d.ts.map +0 -1
  240. package/lib.commonjs/providers/provider-infura.js +0 -206
  241. package/lib.commonjs/providers/provider-infura.js.map +0 -1
  242. package/lib.commonjs/providers/provider-pocket.d.ts +0 -54
  243. package/lib.commonjs/providers/provider-pocket.d.ts.map +0 -1
  244. package/lib.commonjs/providers/provider-pocket.js +0 -109
  245. package/lib.commonjs/providers/provider-pocket.js.map +0 -1
  246. package/lib.commonjs/providers/provider-quicknode.d.ts +0 -59
  247. package/lib.commonjs/providers/provider-quicknode.d.ts.map +0 -1
  248. package/lib.commonjs/providers/provider-quicknode.js +0 -163
  249. package/lib.commonjs/providers/provider-quicknode.js.map +0 -1
  250. package/lib.commonjs/wallet/hdwallet.d.ts +0 -248
  251. package/lib.commonjs/wallet/hdwallet.d.ts.map +0 -1
  252. package/lib.commonjs/wallet/hdwallet.js +0 -505
  253. package/lib.commonjs/wallet/hdwallet.js.map +0 -1
  254. package/lib.commonjs/wallet/json-crowdsale.d.ts +0 -27
  255. package/lib.commonjs/wallet/json-crowdsale.d.ts.map +0 -1
  256. package/lib.commonjs/wallet/json-crowdsale.js +0 -60
  257. package/lib.commonjs/wallet/json-crowdsale.js.map +0 -1
  258. package/lib.commonjs/wallet/mnemonic.d.ts +0 -65
  259. package/lib.commonjs/wallet/mnemonic.d.ts.map +0 -1
  260. package/lib.commonjs/wallet/mnemonic.js +0 -169
  261. package/lib.commonjs/wallet/mnemonic.js.map +0 -1
  262. package/lib.commonjs/wallet/seedwallet.d.ts +0 -4
  263. package/lib.commonjs/wallet/seedwallet.d.ts.map +0 -1
  264. package/lib.commonjs/wallet/seedwallet.js +0 -8
  265. package/lib.commonjs/wallet/seedwallet.js.map +0 -1
  266. package/lib.esm/providers/provider-alchemy.d.ts +0 -50
  267. package/lib.esm/providers/provider-alchemy.d.ts.map +0 -1
  268. package/lib.esm/providers/provider-alchemy.js +0 -147
  269. package/lib.esm/providers/provider-alchemy.js.map +0 -1
  270. package/lib.esm/providers/provider-ankr.d.ts +0 -61
  271. package/lib.esm/providers/provider-ankr.d.ts.map +0 -1
  272. package/lib.esm/providers/provider-ankr.js +0 -133
  273. package/lib.esm/providers/provider-ankr.js.map +0 -1
  274. package/lib.esm/providers/provider-blockscout.d.ts +0 -59
  275. package/lib.esm/providers/provider-blockscout.d.ts.map +0 -1
  276. package/lib.esm/providers/provider-blockscout.js +0 -141
  277. package/lib.esm/providers/provider-blockscout.js.map +0 -1
  278. package/lib.esm/providers/provider-chainstack.d.ts +0 -46
  279. package/lib.esm/providers/provider-chainstack.d.ts.map +0 -1
  280. package/lib.esm/providers/provider-chainstack.js +0 -98
  281. package/lib.esm/providers/provider-chainstack.js.map +0 -1
  282. package/lib.esm/providers/provider-cloudflare.d.ts +0 -14
  283. package/lib.esm/providers/provider-cloudflare.d.ts.map +0 -1
  284. package/lib.esm/providers/provider-cloudflare.js +0 -22
  285. package/lib.esm/providers/provider-cloudflare.js.map +0 -1
  286. package/lib.esm/providers/provider-etherscan.d.ts +0 -147
  287. package/lib.esm/providers/provider-etherscan.d.ts.map +0 -1
  288. package/lib.esm/providers/provider-etherscan.js +0 -584
  289. package/lib.esm/providers/provider-etherscan.js.map +0 -1
  290. package/lib.esm/providers/provider-infura.d.ts +0 -101
  291. package/lib.esm/providers/provider-infura.d.ts.map +0 -1
  292. package/lib.esm/providers/provider-infura.js +0 -201
  293. package/lib.esm/providers/provider-infura.js.map +0 -1
  294. package/lib.esm/providers/provider-pocket.d.ts +0 -54
  295. package/lib.esm/providers/provider-pocket.d.ts.map +0 -1
  296. package/lib.esm/providers/provider-pocket.js +0 -105
  297. package/lib.esm/providers/provider-pocket.js.map +0 -1
  298. package/lib.esm/providers/provider-quicknode.d.ts +0 -59
  299. package/lib.esm/providers/provider-quicknode.d.ts.map +0 -1
  300. package/lib.esm/providers/provider-quicknode.js +0 -159
  301. package/lib.esm/providers/provider-quicknode.js.map +0 -1
  302. package/lib.esm/wallet/hdwallet.d.ts +0 -248
  303. package/lib.esm/wallet/hdwallet.d.ts.map +0 -1
  304. package/lib.esm/wallet/hdwallet.js +0 -498
  305. package/lib.esm/wallet/hdwallet.js.map +0 -1
  306. package/lib.esm/wallet/json-crowdsale.d.ts +0 -27
  307. package/lib.esm/wallet/json-crowdsale.d.ts.map +0 -1
  308. package/lib.esm/wallet/json-crowdsale.js +0 -55
  309. package/lib.esm/wallet/json-crowdsale.js.map +0 -1
  310. package/lib.esm/wallet/mnemonic.d.ts +0 -65
  311. package/lib.esm/wallet/mnemonic.d.ts.map +0 -1
  312. package/lib.esm/wallet/mnemonic.js +0 -165
  313. package/lib.esm/wallet/mnemonic.js.map +0 -1
  314. package/lib.esm/wallet/seedwallet.d.ts +0 -4
  315. package/lib.esm/wallet/seedwallet.d.ts.map +0 -1
  316. package/lib.esm/wallet/seedwallet.js +0 -4
  317. package/lib.esm/wallet/seedwallet.js.map +0 -1
@@ -1,49 +1,49 @@
1
- /**
2
- * There are many awesome community services that provide Ethereum
3
- * nodes both for developers just starting out and for large-scale
4
- * communities.
5
- *
6
- * @_section: api/providers/thirdparty: Community Providers [thirdparty]
7
- */
8
-
9
- /**
10
- * Providers which offer community credentials should extend this
11
- * to notify any interested consumers whether community credentials
12
- * are in-use.
13
- */
14
- export interface CommunityResourcable {
15
- /**
16
- * Returns true if the instance is connected using the community
17
- * credentials.
18
- */
19
- isCommunityResource(): boolean;
20
- }
21
-
22
- // Show the throttle message only once per service
23
- const shown: Set<string> = new Set();
24
-
25
- /**
26
- * Displays a warning in the console when the community resource is
27
- * being used too heavily by the app, recommending the developer
28
- * acquire their own credentials instead of using the community
29
- * credentials.
30
- *
31
- * The notification will only occur once per service.
32
- */
33
- export function showThrottleMessage(service: string): void {
34
- if (shown.has(service)) { return; }
35
- shown.add(service);
36
-
37
- console.log("========= NOTICE =========")
38
- console.log(`Request-Rate Exceeded for ${ service } (this message will not be repeated)`);
39
- console.log("");
40
- console.log("The default API keys for each service are provided as a highly-throttled,");
41
- console.log("community resource for low-traffic projects and early prototyping.");
42
- console.log("");
43
- console.log("While your application will continue to function, we highly recommended");
44
- console.log("signing up for your own API keys to improve performance, increase your");
45
- console.log("request rate/limit and enable other perks, such as metrics and advanced APIs.");
46
- console.log("");
47
- console.log("For more details: https:/\/docs.ethers.org/api-keys/");
48
- console.log("==========================");
49
- }
1
+ /**
2
+ * There are many awesome community services that provide Ethereum
3
+ * nodes both for developers just starting out and for large-scale
4
+ * communities.
5
+ *
6
+ * @_section: api/providers/thirdparty: Community Providers [thirdparty]
7
+ */
8
+
9
+ /**
10
+ * Providers which offer community credentials should extend this
11
+ * to notify any interested consumers whether community credentials
12
+ * are in-use.
13
+ */
14
+ export interface CommunityResourcable {
15
+ /**
16
+ * Returns true if the instance is connected using the community
17
+ * credentials.
18
+ */
19
+ isCommunityResource(): boolean;
20
+ }
21
+
22
+ // Show the throttle message only once per service
23
+ const shown: Set<string> = new Set();
24
+
25
+ /**
26
+ * Displays a warning in the console when the community resource is
27
+ * being used too heavily by the app, recommending the developer
28
+ * acquire their own credentials instead of using the community
29
+ * credentials.
30
+ *
31
+ * The notification will only occur once per service.
32
+ */
33
+ export function showThrottleMessage(service: string): void {
34
+ if (shown.has(service)) { return; }
35
+ shown.add(service);
36
+
37
+ console.log("========= NOTICE =========")
38
+ console.log(`Request-Rate Exceeded for ${ service } (this message will not be repeated)`);
39
+ console.log("");
40
+ console.log("The default API keys for each service are provided as a highly-throttled,");
41
+ console.log("community resource for low-traffic projects and early prototyping.");
42
+ console.log("");
43
+ console.log("While your application will continue to function, we highly recommended");
44
+ console.log("signing up for your own API keys to improve performance, increase your");
45
+ console.log("request rate/limit and enable other perks, such as metrics and advanced APIs.");
46
+ console.log("");
47
+ console.log("For more details: https:/\/docs.ethers.org/api-keys/");
48
+ console.log("==========================");
49
+ }
@@ -1,42 +1,42 @@
1
- import type {
2
- Provider, TransactionRequest, TransactionResponse
3
- } from "./provider.js";
4
-
5
- /**
6
- * A **ContractRunner** is a generic interface which defines an object
7
- * capable of interacting with a Contract on the network.
8
- *
9
- * The more operations supported, the more utility it is capable of.
10
- *
11
- * The most common ContractRunners are [Providers](Provider) which enable
12
- * read-only access and [Signers](Signer) which enable write-access.
13
- */
14
- export interface ContractRunner {
15
- /**
16
- * The provider used for necessary state querying operations.
17
- *
18
- * This can also point to the **ContractRunner** itself, in the
19
- * case of an [[AbstractProvider]].
20
- */
21
- provider: null | Provider;
22
-
23
- /**
24
- * Required to estimate gas.
25
- */
26
- estimateGas?: (tx: TransactionRequest) => Promise<bigint>;
27
-
28
- /**
29
- * Required for pure, view or static calls to contracts.
30
- */
31
- call?: (tx: TransactionRequest) => Promise<string>;
32
-
33
- /**
34
- * Required to support ENS names
35
- */
36
- resolveName?: (name: string) => Promise<null | string>;
37
-
38
- /**
39
- * Required for state mutating calls
40
- */
41
- sendTransaction?: (tx: TransactionRequest) => Promise<TransactionResponse>;
42
- }
1
+ import type {
2
+ Provider, TransactionRequest, TransactionResponse
3
+ } from "./provider.js";
4
+
5
+ /**
6
+ * A **ContractRunner** is a generic interface which defines an object
7
+ * capable of interacting with a Contract on the network.
8
+ *
9
+ * The more operations supported, the more utility it is capable of.
10
+ *
11
+ * The most common ContractRunners are [Providers](Provider) which enable
12
+ * read-only access and [Signers](Signer) which enable write-access.
13
+ */
14
+ export interface ContractRunner {
15
+ /**
16
+ * The provider used for necessary state querying operations.
17
+ *
18
+ * This can also point to the **ContractRunner** itself, in the
19
+ * case of an [[AbstractProvider]].
20
+ */
21
+ provider: null | Provider;
22
+
23
+ /**
24
+ * Required to estimate gas.
25
+ */
26
+ estimateGas?: (tx: TransactionRequest) => Promise<bigint>;
27
+
28
+ /**
29
+ * Required for pure, view or static calls to contracts.
30
+ */
31
+ call?: (tx: TransactionRequest) => Promise<string>;
32
+
33
+ /**
34
+ * Required to support ENS names
35
+ */
36
+ resolveName?: (name: string) => Promise<null | string>;
37
+
38
+ /**
39
+ * Required for state mutating calls
40
+ */
41
+ sendTransaction?: (tx: TransactionRequest) => Promise<TransactionResponse>;
42
+ }
@@ -1,96 +1,96 @@
1
-
2
- import { assert } from "../utils/index.js";
3
-
4
- import { FallbackProvider } from "./provider-fallback.js";
5
- import { JsonRpcProvider } from "./provider-jsonrpc.js";
6
- import { Network } from "./network.js";
7
- import { WebSocketProvider } from "./provider-websocket.js";
8
-
9
- import type { AbstractProvider } from "./abstract-provider.js";
10
- import type { Networkish } from "./network.js";
11
- import { WebSocketLike } from "./provider-websocket.js";
12
-
13
- function isWebSocketLike(value: any): value is WebSocketLike {
14
- return (value && typeof(value.send) === "function" &&
15
- typeof(value.close) === "function");
16
- }
17
-
18
- const Testnets = "goerli kovan sepolia classicKotti optimism-goerli arbitrum-goerli matic-mumbai bnbt".split(" ");
19
-
20
- /**
21
- * Returns a default provider for %%network%%.
22
- *
23
- * If %%network%% is a [[WebSocketLike]] or string that begins with
24
- * ``"ws:"`` or ``"wss:"``, a [[WebSocketProvider]] is returned backed
25
- * by that WebSocket or URL.
26
- *
27
- * If %%network%% is a string that begins with ``"HTTP:"`` or ``"HTTPS:"``,
28
- * a [[JsonRpcProvider]] is returned connected to that URL.
29
- *
30
- * Otherwise, a default provider is created backed by well-known public
31
- * Web3 backends (such as [[link-infura]]) using community-provided API
32
- * keys.
33
- *
34
- * The %%options%% allows specifying custom API keys per backend (setting
35
- * an API key to ``"-"`` will omit that provider) and ``options.exclusive``
36
- * can be set to either a backend name or and array of backend names, which
37
- * will whitelist **only** those backends.
38
- *
39
- * Current backend strings supported are:
40
- *
41
- * @example:
42
- * // Connect to a local Geth node
43
- * provider = getDefaultProvider("http://localhost:8545/");
44
- *
45
- * // Connect to Ethereum mainnet with any current and future
46
- * // third-party services available
47
- * provider = getDefaultProvider("mainnet");
48
- *
49
- * // Connect to Polygon, but only allow Etherscan and
50
- * // INFURA and use "MY_API_KEY" in calls to Etherscan.
51
- * provider = getDefaultProvider("matic", {
52
- * etherscan: "MY_API_KEY",
53
- * exclusive: [ "etherscan", "infura" ]
54
- * });
55
- */
56
- export function getDefaultProvider(network?: string | Networkish | WebSocketLike, options?: any): AbstractProvider {
57
- if (options == null) { options = { }; }
58
-
59
- if (typeof(network) === "string" && network.match(/^https?:/)) {
60
- return new JsonRpcProvider(network);
61
- }
62
-
63
- if (typeof(network) === "string" && network.match(/^wss?:/) || isWebSocketLike(network)) {
64
- return new WebSocketProvider(network);
65
- }
66
-
67
- // Get the network and name, if possible
68
- let staticNetwork: null | Network = null;
69
- try {
70
- staticNetwork = Network.from(network);
71
- } catch (error) { }
72
-
73
-
74
- const providers: Array<AbstractProvider> = [ ];
75
-
76
- assert(providers.length, "unsupported default network", "UNSUPPORTED_OPERATION", {
77
- operation: "getDefaultProvider"
78
- });
79
-
80
- // No need for a FallbackProvider
81
- if (providers.length === 1) { return providers[0]; }
82
-
83
- // We use the floor because public third-party providers can be unreliable,
84
- // so a low number of providers with a large quorum will fail too often
85
- let quorum = Math.floor(providers.length / 2);
86
- if (quorum > 2) { quorum = 2; }
87
-
88
- // Testnets don't need as strong a security gaurantee and speed is
89
- // more useful during testing
90
- if (staticNetwork && Testnets.indexOf(staticNetwork.name) !== -1) { quorum = 1; }
91
-
92
- // Provided override qorum takes priority
93
- if (options && options.quorum) { quorum = options.quorum; }
94
-
95
- return new FallbackProvider(providers, undefined, { quorum });
96
- }
1
+
2
+ import { assert } from "../utils/index.js";
3
+
4
+ import { FallbackProvider } from "./provider-fallback.js";
5
+ import { JsonRpcProvider } from "./provider-jsonrpc.js";
6
+ import { Network } from "./network.js";
7
+ import { WebSocketProvider } from "./provider-websocket.js";
8
+
9
+ import type { AbstractProvider } from "./abstract-provider.js";
10
+ import type { Networkish } from "./network.js";
11
+ import { WebSocketLike } from "./provider-websocket.js";
12
+
13
+ function isWebSocketLike(value: any): value is WebSocketLike {
14
+ return (value && typeof(value.send) === "function" &&
15
+ typeof(value.close) === "function");
16
+ }
17
+
18
+ const Testnets = "goerli kovan sepolia classicKotti optimism-goerli arbitrum-goerli matic-mumbai bnbt".split(" ");
19
+
20
+ /**
21
+ * Returns a default provider for %%network%%.
22
+ *
23
+ * If %%network%% is a [[WebSocketLike]] or string that begins with
24
+ * ``"ws:"`` or ``"wss:"``, a [[WebSocketProvider]] is returned backed
25
+ * by that WebSocket or URL.
26
+ *
27
+ * If %%network%% is a string that begins with ``"HTTP:"`` or ``"HTTPS:"``,
28
+ * a [[JsonRpcProvider]] is returned connected to that URL.
29
+ *
30
+ * Otherwise, a default provider is created backed by well-known public
31
+ * Web3 backends (such as [[link-infura]]) using community-provided API
32
+ * keys.
33
+ *
34
+ * The %%options%% allows specifying custom API keys per backend (setting
35
+ * an API key to ``"-"`` will omit that provider) and ``options.exclusive``
36
+ * can be set to either a backend name or and array of backend names, which
37
+ * will whitelist **only** those backends.
38
+ *
39
+ * Current backend strings supported are:
40
+ *
41
+ * @example:
42
+ * // Connect to a local Geth node
43
+ * provider = getDefaultProvider("http://localhost:8545/");
44
+ *
45
+ * // Connect to Ethereum mainnet with any current and future
46
+ * // third-party services available
47
+ * provider = getDefaultProvider("mainnet");
48
+ *
49
+ * // Connect to Polygon, but only allow Etherscan and
50
+ * // INFURA and use "MY_API_KEY" in calls to Etherscan.
51
+ * provider = getDefaultProvider("matic", {
52
+ * etherscan: "MY_API_KEY",
53
+ * exclusive: [ "etherscan", "infura" ]
54
+ * });
55
+ */
56
+ export function getDefaultProvider(network?: string | Networkish | WebSocketLike, options?: any): AbstractProvider {
57
+ if (options == null) { options = { }; }
58
+
59
+ if (typeof(network) === "string" && network.match(/^https?:/)) {
60
+ return new JsonRpcProvider(network);
61
+ }
62
+
63
+ if (typeof(network) === "string" && network.match(/^wss?:/) || isWebSocketLike(network)) {
64
+ return new WebSocketProvider(network);
65
+ }
66
+
67
+ // Get the network and name, if possible
68
+ let staticNetwork: null | Network = null;
69
+ try {
70
+ staticNetwork = Network.from(network);
71
+ } catch (error) { }
72
+
73
+
74
+ const providers: Array<AbstractProvider> = [ ];
75
+
76
+ assert(providers.length, "unsupported default network", "UNSUPPORTED_OPERATION", {
77
+ operation: "getDefaultProvider"
78
+ });
79
+
80
+ // No need for a FallbackProvider
81
+ if (providers.length === 1) { return providers[0]; }
82
+
83
+ // We use the floor because public third-party providers can be unreliable,
84
+ // so a low number of providers with a large quorum will fail too often
85
+ let quorum = Math.floor(providers.length / 2);
86
+ if (quorum > 2) { quorum = 2; }
87
+
88
+ // Testnets don't need as strong a security gaurantee and speed is
89
+ // more useful during testing
90
+ if (staticNetwork && Testnets.indexOf(staticNetwork.name) !== -1) { quorum = 1; }
91
+
92
+ // Provided override qorum takes priority
93
+ if (options && options.quorum) { quorum = options.quorum; }
94
+
95
+ return new FallbackProvider(providers, undefined, { quorum });
96
+ }