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.
- package/CHANGELOG.md +442 -442
- package/FUNDING.json +10 -10
- package/LICENSE.md +21 -21
- package/README.md +132 -142
- package/SECURITY.md +34 -34
- package/dist/README.md +22 -22
- package/dist/quantumcoin.js +1127 -1324
- package/dist/quantumcoin.js.map +1 -1
- package/dist/quantumcoin.min.js +1 -1
- package/dist/quantumcoin.umd.js +1128 -1327
- package/dist/quantumcoin.umd.js.map +1 -1
- package/dist/quantumcoin.umd.min.js +1 -1
- package/dist/wordlists-extra.js +1 -1
- package/dist/wordlists-extra.js.map +1 -1
- package/dist/wordlists-extra.min.js +1 -1
- package/lib.commonjs/README.md +16 -16
- package/lib.commonjs/_version.js +1 -1
- package/lib.commonjs/crypto/signature.d.ts +3 -76
- package/lib.commonjs/crypto/signature.d.ts.map +1 -1
- package/lib.commonjs/crypto/signature.js +15 -199
- package/lib.commonjs/crypto/signature.js.map +1 -1
- package/lib.commonjs/crypto/signing-key.d.ts +1 -1
- package/lib.commonjs/crypto/signing-key.d.ts.map +1 -1
- package/lib.commonjs/crypto/signing-key.js +19 -10
- package/lib.commonjs/crypto/signing-key.js.map +1 -1
- package/lib.commonjs/package.json +12 -12
- package/lib.commonjs/providers/provider-jsonrpc.d.ts +0 -1
- package/lib.commonjs/providers/provider-jsonrpc.d.ts.map +1 -1
- package/lib.commonjs/providers/provider-jsonrpc.js +0 -1
- package/lib.commonjs/providers/provider-jsonrpc.js.map +1 -1
- package/lib.commonjs/quantumcoin.d.ts +2 -0
- package/lib.commonjs/quantumcoin.d.ts.map +1 -1
- package/lib.commonjs/quantumcoin.js +11 -5
- package/lib.commonjs/quantumcoin.js.map +1 -1
- package/lib.commonjs/transaction/address.d.ts.map +1 -1
- package/lib.commonjs/transaction/address.js +8 -3
- package/lib.commonjs/transaction/address.js.map +1 -1
- package/lib.commonjs/transaction/transaction.d.ts.map +1 -1
- package/lib.commonjs/transaction/transaction.js +7 -40
- package/lib.commonjs/transaction/transaction.js.map +1 -1
- package/lib.commonjs/wallet/json-keystore.d.ts.map +1 -1
- package/lib.commonjs/wallet/json-keystore.js +7 -7
- package/lib.commonjs/wallet/json-keystore.js.map +1 -1
- package/lib.commonjs/wallet/wallet.d.ts.map +1 -1
- package/lib.commonjs/wallet/wallet.js +2 -2
- package/lib.commonjs/wallet/wallet.js.map +1 -1
- package/lib.esm/README.md +16 -16
- package/lib.esm/_version.js +1 -1
- package/lib.esm/crypto/signature.d.ts +3 -76
- package/lib.esm/crypto/signature.d.ts.map +1 -1
- package/lib.esm/crypto/signature.js +16 -202
- package/lib.esm/crypto/signature.js.map +1 -1
- package/lib.esm/crypto/signing-key.d.ts +1 -1
- package/lib.esm/crypto/signing-key.d.ts.map +1 -1
- package/lib.esm/crypto/signing-key.js +20 -9
- package/lib.esm/crypto/signing-key.js.map +1 -1
- package/lib.esm/package.json +12 -12
- package/lib.esm/providers/provider-jsonrpc.d.ts +0 -1
- package/lib.esm/providers/provider-jsonrpc.d.ts.map +1 -1
- package/lib.esm/providers/provider-jsonrpc.js +0 -1
- package/lib.esm/providers/provider-jsonrpc.js.map +1 -1
- package/lib.esm/quantumcoin.d.ts +2 -0
- package/lib.esm/quantumcoin.d.ts.map +1 -1
- package/lib.esm/quantumcoin.js +6 -0
- package/lib.esm/quantumcoin.js.map +1 -1
- package/lib.esm/transaction/address.d.ts.map +1 -1
- package/lib.esm/transaction/address.js +8 -2
- package/lib.esm/transaction/address.js.map +1 -1
- package/lib.esm/transaction/transaction.d.ts.map +1 -1
- package/lib.esm/transaction/transaction.js +7 -40
- package/lib.esm/transaction/transaction.js.map +1 -1
- package/lib.esm/wallet/json-keystore.d.ts.map +1 -1
- package/lib.esm/wallet/json-keystore.js +11 -5
- package/lib.esm/wallet/json-keystore.js.map +1 -1
- package/lib.esm/wallet/wallet.d.ts.map +1 -1
- package/lib.esm/wallet/wallet.js +3 -1
- package/lib.esm/wallet/wallet.js.map +1 -1
- package/package.json +6 -5
- package/rollup.config.mjs +50 -50
- package/src.ts/_version.ts +1 -1
- package/src.ts/abi/abi-coder.ts +237 -237
- package/src.ts/abi/bytes32.ts +45 -45
- package/src.ts/abi/coders/abstract-coder.ts +541 -541
- package/src.ts/abi/coders/address.ts +36 -36
- package/src.ts/abi/coders/anonymous.ts +29 -29
- package/src.ts/abi/coders/array.ts +199 -199
- package/src.ts/abi/coders/boolean.ts +27 -27
- package/src.ts/abi/coders/bytes.ts +43 -43
- package/src.ts/abi/coders/fixed-bytes.ts +37 -37
- package/src.ts/abi/coders/null.ts +28 -28
- package/src.ts/abi/coders/number.ts +63 -63
- package/src.ts/abi/coders/string.ts +29 -29
- package/src.ts/abi/coders/tuple.ts +69 -69
- package/src.ts/abi/fragments.ts +1617 -1617
- package/src.ts/abi/index.ts +41 -41
- package/src.ts/abi/interface.ts +1271 -1271
- package/src.ts/abi/typed.ts +796 -796
- package/src.ts/address/address.ts +148 -148
- package/src.ts/address/checks.ts +123 -123
- package/src.ts/address/contract-address.ts +80 -80
- package/src.ts/address/index.ts +57 -57
- package/src.ts/constants/addresses.ts +8 -8
- package/src.ts/constants/hashes.ts +7 -7
- package/src.ts/constants/index.ts +16 -16
- package/src.ts/constants/numbers.ts +35 -35
- package/src.ts/constants/strings.ts +16 -16
- package/src.ts/contract/contract.ts +1120 -1120
- package/src.ts/contract/factory.ts +143 -143
- package/src.ts/contract/index.ts +31 -31
- package/src.ts/contract/types.ts +236 -236
- package/src.ts/contract/wrappers.ts +225 -225
- package/src.ts/crypto/crypto-browser.ts +64 -64
- package/src.ts/crypto/crypto.ts +4 -4
- package/src.ts/crypto/hmac.ts +51 -51
- package/src.ts/crypto/index.ts +59 -59
- package/src.ts/crypto/keccak.ts +54 -54
- package/src.ts/crypto/pbkdf2.ts +55 -55
- package/src.ts/crypto/random.ts +36 -36
- package/src.ts/crypto/ripemd160.ts +43 -43
- package/src.ts/crypto/scrypt.ts +114 -114
- package/src.ts/crypto/sha2.ts +78 -78
- package/src.ts/crypto/signature.ts +145 -349
- package/src.ts/crypto/signing-key.ts +126 -118
- package/src.ts/hash/authorization.ts +38 -38
- package/src.ts/hash/id.ts +17 -17
- package/src.ts/hash/index.ts +18 -18
- package/src.ts/hash/message.ts +51 -51
- package/src.ts/hash/namehash.ts +101 -101
- package/src.ts/hash/solidity.ts +117 -117
- package/src.ts/hash/typed-data.ts +658 -658
- package/src.ts/index.ts +12 -12
- package/src.ts/providers/abstract-provider.ts +1761 -1761
- package/src.ts/providers/abstract-signer.ts +314 -314
- package/src.ts/providers/community.ts +49 -49
- package/src.ts/providers/contracts.ts +42 -42
- package/src.ts/providers/default-provider.ts +96 -96
- package/src.ts/providers/ens-resolver.ts +606 -606
- package/src.ts/providers/format.ts +320 -320
- package/src.ts/providers/formatting.ts +418 -418
- package/src.ts/providers/index.ts +125 -125
- package/src.ts/providers/network.ts +327 -327
- package/src.ts/providers/pagination.ts +8 -8
- package/src.ts/providers/plugin-fallback.ts +35 -35
- package/src.ts/providers/plugins-network.ts +281 -281
- package/src.ts/providers/provider-browser.ts +334 -334
- package/src.ts/providers/provider-fallback.ts +801 -801
- package/src.ts/providers/provider-ipcsocket-browser.ts +3 -3
- package/src.ts/providers/provider-ipcsocket.ts +81 -81
- package/src.ts/providers/provider-jsonrpc.ts +1334 -1335
- package/src.ts/providers/provider-socket.ts +352 -352
- package/src.ts/providers/provider-websocket.ts +103 -103
- package/src.ts/providers/provider.ts +2136 -2136
- package/src.ts/providers/signer-noncemanager.ts +98 -98
- package/src.ts/providers/signer.ts +166 -166
- package/src.ts/providers/subscriber-connection.ts +74 -74
- package/src.ts/providers/subscriber-filterid.ts +199 -199
- package/src.ts/providers/subscriber-polling.ts +321 -321
- package/src.ts/providers/ws-browser.ts +11 -11
- package/src.ts/providers/ws.ts +3 -3
- package/src.ts/quantumcoin.ts +219 -211
- package/src.ts/thirdparty.d.ts +16 -16
- package/src.ts/transaction/accesslist.ts +43 -43
- package/src.ts/transaction/address.ts +35 -31
- package/src.ts/transaction/authorization.ts +14 -14
- package/src.ts/transaction/index.ts +51 -51
- package/src.ts/transaction/transaction.ts +1349 -1379
- package/src.ts/utils/base58.ts +73 -73
- package/src.ts/utils/base64-browser.ts +25 -25
- package/src.ts/utils/base64.ts +56 -56
- package/src.ts/utils/data.ts +199 -199
- package/src.ts/utils/errors.ts +793 -793
- package/src.ts/utils/events.ts +105 -105
- package/src.ts/utils/fetch.ts +970 -970
- package/src.ts/utils/fixednumber.ts +643 -643
- package/src.ts/utils/geturl-browser.ts +81 -81
- package/src.ts/utils/geturl.ts +134 -134
- package/src.ts/utils/index.ts +95 -95
- package/src.ts/utils/maths.ts +240 -240
- package/src.ts/utils/properties.ts +60 -60
- package/src.ts/utils/rlp-decode.ts +104 -104
- package/src.ts/utils/rlp-encode.ts +64 -64
- package/src.ts/utils/rlp.ts +20 -20
- package/src.ts/utils/units.ts +91 -91
- package/src.ts/utils/utf8.ts +325 -325
- package/src.ts/utils/uuid.ts +36 -36
- package/src.ts/wallet/base-wallet.ts +160 -160
- package/src.ts/wallet/index.ts +32 -32
- package/src.ts/wallet/json-keystore.ts +108 -106
- package/src.ts/wallet/utils.ts +147 -147
- package/src.ts/wallet/wallet.ts +138 -139
- package/src.ts/wordlists/bit-reader.ts +35 -35
- package/src.ts/wordlists/decode-owl.ts +58 -58
- package/src.ts/wordlists/decode-owla.ts +33 -33
- package/src.ts/wordlists/generation/encode-latin.ts +370 -370
- package/src.ts/wordlists/index.ts +26 -26
- package/src.ts/wordlists/lang-cz.ts +33 -33
- package/src.ts/wordlists/lang-en.ts +33 -33
- package/src.ts/wordlists/lang-es.ts +35 -35
- package/src.ts/wordlists/lang-fr.ts +34 -34
- package/src.ts/wordlists/lang-it.ts +33 -33
- package/src.ts/wordlists/lang-ja.ts +181 -181
- package/src.ts/wordlists/lang-ko.ts +104 -104
- package/src.ts/wordlists/lang-pt.ts +34 -34
- package/src.ts/wordlists/lang-zh.ts +112 -112
- package/src.ts/wordlists/wordlist-owl.ts +77 -77
- package/src.ts/wordlists/wordlist-owla.ts +41 -41
- package/src.ts/wordlists/wordlist.ts +59 -59
- package/src.ts/wordlists/wordlists-browser.ts +8 -8
- package/src.ts/wordlists/wordlists-extra.ts +9 -9
- package/src.ts/wordlists/wordlists.ts +38 -38
- package/dist/quantumcoin.min.js'.gz' +0 -0
- package/dist/quantumcoin.umd.min.js'.gz' +0 -0
- package/dist/wordlists-extra.min.js'.gz' +0 -0
- package/lib.commonjs/providers/provider-alchemy.d.ts +0 -50
- package/lib.commonjs/providers/provider-alchemy.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-alchemy.js +0 -151
- package/lib.commonjs/providers/provider-alchemy.js.map +0 -1
- package/lib.commonjs/providers/provider-ankr.d.ts +0 -61
- package/lib.commonjs/providers/provider-ankr.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-ankr.js +0 -137
- package/lib.commonjs/providers/provider-ankr.js.map +0 -1
- package/lib.commonjs/providers/provider-blockscout.d.ts +0 -59
- package/lib.commonjs/providers/provider-blockscout.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-blockscout.js +0 -145
- package/lib.commonjs/providers/provider-blockscout.js.map +0 -1
- package/lib.commonjs/providers/provider-chainstack.d.ts +0 -46
- package/lib.commonjs/providers/provider-chainstack.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-chainstack.js +0 -102
- package/lib.commonjs/providers/provider-chainstack.js.map +0 -1
- package/lib.commonjs/providers/provider-cloudflare.d.ts +0 -14
- package/lib.commonjs/providers/provider-cloudflare.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-cloudflare.js +0 -26
- package/lib.commonjs/providers/provider-cloudflare.js.map +0 -1
- package/lib.commonjs/providers/provider-etherscan.d.ts +0 -147
- package/lib.commonjs/providers/provider-etherscan.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-etherscan.js +0 -587
- package/lib.commonjs/providers/provider-etherscan.js.map +0 -1
- package/lib.commonjs/providers/provider-infura.d.ts +0 -101
- package/lib.commonjs/providers/provider-infura.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-infura.js +0 -206
- package/lib.commonjs/providers/provider-infura.js.map +0 -1
- package/lib.commonjs/providers/provider-pocket.d.ts +0 -54
- package/lib.commonjs/providers/provider-pocket.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-pocket.js +0 -109
- package/lib.commonjs/providers/provider-pocket.js.map +0 -1
- package/lib.commonjs/providers/provider-quicknode.d.ts +0 -59
- package/lib.commonjs/providers/provider-quicknode.d.ts.map +0 -1
- package/lib.commonjs/providers/provider-quicknode.js +0 -163
- package/lib.commonjs/providers/provider-quicknode.js.map +0 -1
- package/lib.commonjs/wallet/hdwallet.d.ts +0 -248
- package/lib.commonjs/wallet/hdwallet.d.ts.map +0 -1
- package/lib.commonjs/wallet/hdwallet.js +0 -505
- package/lib.commonjs/wallet/hdwallet.js.map +0 -1
- package/lib.commonjs/wallet/json-crowdsale.d.ts +0 -27
- package/lib.commonjs/wallet/json-crowdsale.d.ts.map +0 -1
- package/lib.commonjs/wallet/json-crowdsale.js +0 -60
- package/lib.commonjs/wallet/json-crowdsale.js.map +0 -1
- package/lib.commonjs/wallet/mnemonic.d.ts +0 -65
- package/lib.commonjs/wallet/mnemonic.d.ts.map +0 -1
- package/lib.commonjs/wallet/mnemonic.js +0 -169
- package/lib.commonjs/wallet/mnemonic.js.map +0 -1
- package/lib.commonjs/wallet/seedwallet.d.ts +0 -4
- package/lib.commonjs/wallet/seedwallet.d.ts.map +0 -1
- package/lib.commonjs/wallet/seedwallet.js +0 -8
- package/lib.commonjs/wallet/seedwallet.js.map +0 -1
- package/lib.esm/providers/provider-alchemy.d.ts +0 -50
- package/lib.esm/providers/provider-alchemy.d.ts.map +0 -1
- package/lib.esm/providers/provider-alchemy.js +0 -147
- package/lib.esm/providers/provider-alchemy.js.map +0 -1
- package/lib.esm/providers/provider-ankr.d.ts +0 -61
- package/lib.esm/providers/provider-ankr.d.ts.map +0 -1
- package/lib.esm/providers/provider-ankr.js +0 -133
- package/lib.esm/providers/provider-ankr.js.map +0 -1
- package/lib.esm/providers/provider-blockscout.d.ts +0 -59
- package/lib.esm/providers/provider-blockscout.d.ts.map +0 -1
- package/lib.esm/providers/provider-blockscout.js +0 -141
- package/lib.esm/providers/provider-blockscout.js.map +0 -1
- package/lib.esm/providers/provider-chainstack.d.ts +0 -46
- package/lib.esm/providers/provider-chainstack.d.ts.map +0 -1
- package/lib.esm/providers/provider-chainstack.js +0 -98
- package/lib.esm/providers/provider-chainstack.js.map +0 -1
- package/lib.esm/providers/provider-cloudflare.d.ts +0 -14
- package/lib.esm/providers/provider-cloudflare.d.ts.map +0 -1
- package/lib.esm/providers/provider-cloudflare.js +0 -22
- package/lib.esm/providers/provider-cloudflare.js.map +0 -1
- package/lib.esm/providers/provider-etherscan.d.ts +0 -147
- package/lib.esm/providers/provider-etherscan.d.ts.map +0 -1
- package/lib.esm/providers/provider-etherscan.js +0 -584
- package/lib.esm/providers/provider-etherscan.js.map +0 -1
- package/lib.esm/providers/provider-infura.d.ts +0 -101
- package/lib.esm/providers/provider-infura.d.ts.map +0 -1
- package/lib.esm/providers/provider-infura.js +0 -201
- package/lib.esm/providers/provider-infura.js.map +0 -1
- package/lib.esm/providers/provider-pocket.d.ts +0 -54
- package/lib.esm/providers/provider-pocket.d.ts.map +0 -1
- package/lib.esm/providers/provider-pocket.js +0 -105
- package/lib.esm/providers/provider-pocket.js.map +0 -1
- package/lib.esm/providers/provider-quicknode.d.ts +0 -59
- package/lib.esm/providers/provider-quicknode.d.ts.map +0 -1
- package/lib.esm/providers/provider-quicknode.js +0 -159
- package/lib.esm/providers/provider-quicknode.js.map +0 -1
- package/lib.esm/wallet/hdwallet.d.ts +0 -248
- package/lib.esm/wallet/hdwallet.d.ts.map +0 -1
- package/lib.esm/wallet/hdwallet.js +0 -498
- package/lib.esm/wallet/hdwallet.js.map +0 -1
- package/lib.esm/wallet/json-crowdsale.d.ts +0 -27
- package/lib.esm/wallet/json-crowdsale.d.ts.map +0 -1
- package/lib.esm/wallet/json-crowdsale.js +0 -55
- package/lib.esm/wallet/json-crowdsale.js.map +0 -1
- package/lib.esm/wallet/mnemonic.d.ts +0 -65
- package/lib.esm/wallet/mnemonic.d.ts.map +0 -1
- package/lib.esm/wallet/mnemonic.js +0 -165
- package/lib.esm/wallet/mnemonic.js.map +0 -1
- package/lib.esm/wallet/seedwallet.d.ts +0 -4
- package/lib.esm/wallet/seedwallet.d.ts.map +0 -1
- package/lib.esm/wallet/seedwallet.js +0 -4
- 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
|
+
}
|