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,59 +1,59 @@
|
|
|
1
|
-
import { defineProperties } from "../utils/index.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* A Wordlist represents a collection of language-specific
|
|
5
|
-
* words used to encode and devoce [[link-bip-39]] encoded data
|
|
6
|
-
* by mapping words to 11-bit values and vice versa.
|
|
7
|
-
*/
|
|
8
|
-
export abstract class Wordlist {
|
|
9
|
-
locale!: string;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Creates a new Wordlist instance.
|
|
13
|
-
*
|
|
14
|
-
* Sub-classes MUST call this if they provide their own constructor,
|
|
15
|
-
* passing in the locale string of the language.
|
|
16
|
-
*
|
|
17
|
-
* Generally there is no need to create instances of a Wordlist,
|
|
18
|
-
* since each language-specific Wordlist creates an instance and
|
|
19
|
-
* there is no state kept internally, so they are safe to share.
|
|
20
|
-
*/
|
|
21
|
-
constructor(locale: string) {
|
|
22
|
-
defineProperties<Wordlist>(this, { locale });
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Sub-classes may override this to provide a language-specific
|
|
27
|
-
* method for spliting %%phrase%% into individual words.
|
|
28
|
-
*
|
|
29
|
-
* By default, %%phrase%% is split using any sequences of
|
|
30
|
-
* white-space as defined by regular expressions (i.e. ``/\s+/``).
|
|
31
|
-
*/
|
|
32
|
-
split(phrase: string): Array<string> {
|
|
33
|
-
return phrase.toLowerCase().split(/\s+/g)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Sub-classes may override this to provider a language-specific
|
|
38
|
-
* method for joining %%words%% into a phrase.
|
|
39
|
-
*
|
|
40
|
-
* By default, %%words%% are joined by a single space.
|
|
41
|
-
*/
|
|
42
|
-
join(words: Array<string>): string {
|
|
43
|
-
return words.join(" ");
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Maps an 11-bit value into its coresponding word in the list.
|
|
48
|
-
*
|
|
49
|
-
* Sub-classes MUST override this.
|
|
50
|
-
*/
|
|
51
|
-
abstract getWord(index: number): string;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Maps a word to its corresponding 11-bit value.
|
|
55
|
-
*
|
|
56
|
-
* Sub-classes MUST override this.
|
|
57
|
-
*/
|
|
58
|
-
abstract getWordIndex(word: string): number;
|
|
59
|
-
}
|
|
1
|
+
import { defineProperties } from "../utils/index.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A Wordlist represents a collection of language-specific
|
|
5
|
+
* words used to encode and devoce [[link-bip-39]] encoded data
|
|
6
|
+
* by mapping words to 11-bit values and vice versa.
|
|
7
|
+
*/
|
|
8
|
+
export abstract class Wordlist {
|
|
9
|
+
locale!: string;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Creates a new Wordlist instance.
|
|
13
|
+
*
|
|
14
|
+
* Sub-classes MUST call this if they provide their own constructor,
|
|
15
|
+
* passing in the locale string of the language.
|
|
16
|
+
*
|
|
17
|
+
* Generally there is no need to create instances of a Wordlist,
|
|
18
|
+
* since each language-specific Wordlist creates an instance and
|
|
19
|
+
* there is no state kept internally, so they are safe to share.
|
|
20
|
+
*/
|
|
21
|
+
constructor(locale: string) {
|
|
22
|
+
defineProperties<Wordlist>(this, { locale });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Sub-classes may override this to provide a language-specific
|
|
27
|
+
* method for spliting %%phrase%% into individual words.
|
|
28
|
+
*
|
|
29
|
+
* By default, %%phrase%% is split using any sequences of
|
|
30
|
+
* white-space as defined by regular expressions (i.e. ``/\s+/``).
|
|
31
|
+
*/
|
|
32
|
+
split(phrase: string): Array<string> {
|
|
33
|
+
return phrase.toLowerCase().split(/\s+/g)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Sub-classes may override this to provider a language-specific
|
|
38
|
+
* method for joining %%words%% into a phrase.
|
|
39
|
+
*
|
|
40
|
+
* By default, %%words%% are joined by a single space.
|
|
41
|
+
*/
|
|
42
|
+
join(words: Array<string>): string {
|
|
43
|
+
return words.join(" ");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Maps an 11-bit value into its coresponding word in the list.
|
|
48
|
+
*
|
|
49
|
+
* Sub-classes MUST override this.
|
|
50
|
+
*/
|
|
51
|
+
abstract getWord(index: number): string;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Maps a word to its corresponding 11-bit value.
|
|
55
|
+
*
|
|
56
|
+
* Sub-classes MUST override this.
|
|
57
|
+
*/
|
|
58
|
+
abstract getWordIndex(word: string): number;
|
|
59
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import { LangEn } from "./lang-en.js";
|
|
3
|
-
|
|
4
|
-
import type { Wordlist } from "./wordlist.js";
|
|
5
|
-
|
|
6
|
-
export const wordlists: Record<string, Wordlist> = {
|
|
7
|
-
en: LangEn.wordlist(),
|
|
8
|
-
};
|
|
1
|
+
|
|
2
|
+
import { LangEn } from "./lang-en.js";
|
|
3
|
+
|
|
4
|
+
import type { Wordlist } from "./wordlist.js";
|
|
5
|
+
|
|
6
|
+
export const wordlists: Record<string, Wordlist> = {
|
|
7
|
+
en: LangEn.wordlist(),
|
|
8
|
+
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export { LangCz } from "./lang-cz.js";
|
|
3
|
-
export { LangEs } from "./lang-es.js";
|
|
4
|
-
export { LangFr } from "./lang-fr.js";
|
|
5
|
-
export { LangJa } from "./lang-ja.js";
|
|
6
|
-
export { LangKo } from "./lang-ko.js";
|
|
7
|
-
export { LangIt } from "./lang-it.js";
|
|
8
|
-
export { LangPt } from "./lang-pt.js";
|
|
9
|
-
export { LangZh } from "./lang-zh.js";
|
|
1
|
+
|
|
2
|
+
export { LangCz } from "./lang-cz.js";
|
|
3
|
+
export { LangEs } from "./lang-es.js";
|
|
4
|
+
export { LangFr } from "./lang-fr.js";
|
|
5
|
+
export { LangJa } from "./lang-ja.js";
|
|
6
|
+
export { LangKo } from "./lang-ko.js";
|
|
7
|
+
export { LangIt } from "./lang-it.js";
|
|
8
|
+
export { LangPt } from "./lang-pt.js";
|
|
9
|
+
export { LangZh } from "./lang-zh.js";
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
import { LangCz } from "./lang-cz.js";
|
|
3
|
-
import { LangEn } from "./lang-en.js";
|
|
4
|
-
import { LangEs } from "./lang-es.js";
|
|
5
|
-
import { LangFr } from "./lang-fr.js";
|
|
6
|
-
import { LangJa } from "./lang-ja.js";
|
|
7
|
-
import { LangKo } from "./lang-ko.js";
|
|
8
|
-
import { LangIt } from "./lang-it.js";
|
|
9
|
-
import { LangPt } from "./lang-pt.js";
|
|
10
|
-
import { LangZh } from "./lang-zh.js";
|
|
11
|
-
|
|
12
|
-
import type { Wordlist } from "./wordlist.js";
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The available Wordlists by their
|
|
16
|
-
* [ISO 639-1 Language Code](link-wiki-iso639).
|
|
17
|
-
*
|
|
18
|
-
* (**i.e.** [cz](LangCz), [en](LangEn), [es](LangEs), [fr](LangFr),
|
|
19
|
-
* [ja](LangJa), [ko](LangKo), [it](LangIt), [pt](LangPt),
|
|
20
|
-
* [zh_cn](LangZh), [zh_tw](LangZh))
|
|
21
|
-
*
|
|
22
|
-
* The dist files (in the ``/dist`` folder) have had all languages
|
|
23
|
-
* except English stripped out, which reduces the library size by
|
|
24
|
-
* about 80kb. If required, they are available by importing the
|
|
25
|
-
* included ``wordlists-extra.min.js`` file.
|
|
26
|
-
*/
|
|
27
|
-
export const wordlists: Record<string, Wordlist> = {
|
|
28
|
-
cz: LangCz.wordlist(),
|
|
29
|
-
en: LangEn.wordlist(),
|
|
30
|
-
es: LangEs.wordlist(),
|
|
31
|
-
fr: LangFr.wordlist(),
|
|
32
|
-
it: LangIt.wordlist(),
|
|
33
|
-
pt: LangPt.wordlist(),
|
|
34
|
-
ja: LangJa.wordlist(),
|
|
35
|
-
ko: LangKo.wordlist(),
|
|
36
|
-
zh_cn: LangZh.wordlist("cn"),
|
|
37
|
-
zh_tw: LangZh.wordlist("tw"),
|
|
38
|
-
};
|
|
1
|
+
|
|
2
|
+
import { LangCz } from "./lang-cz.js";
|
|
3
|
+
import { LangEn } from "./lang-en.js";
|
|
4
|
+
import { LangEs } from "./lang-es.js";
|
|
5
|
+
import { LangFr } from "./lang-fr.js";
|
|
6
|
+
import { LangJa } from "./lang-ja.js";
|
|
7
|
+
import { LangKo } from "./lang-ko.js";
|
|
8
|
+
import { LangIt } from "./lang-it.js";
|
|
9
|
+
import { LangPt } from "./lang-pt.js";
|
|
10
|
+
import { LangZh } from "./lang-zh.js";
|
|
11
|
+
|
|
12
|
+
import type { Wordlist } from "./wordlist.js";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The available Wordlists by their
|
|
16
|
+
* [ISO 639-1 Language Code](link-wiki-iso639).
|
|
17
|
+
*
|
|
18
|
+
* (**i.e.** [cz](LangCz), [en](LangEn), [es](LangEs), [fr](LangFr),
|
|
19
|
+
* [ja](LangJa), [ko](LangKo), [it](LangIt), [pt](LangPt),
|
|
20
|
+
* [zh_cn](LangZh), [zh_tw](LangZh))
|
|
21
|
+
*
|
|
22
|
+
* The dist files (in the ``/dist`` folder) have had all languages
|
|
23
|
+
* except English stripped out, which reduces the library size by
|
|
24
|
+
* about 80kb. If required, they are available by importing the
|
|
25
|
+
* included ``wordlists-extra.min.js`` file.
|
|
26
|
+
*/
|
|
27
|
+
export const wordlists: Record<string, Wordlist> = {
|
|
28
|
+
cz: LangCz.wordlist(),
|
|
29
|
+
en: LangEn.wordlist(),
|
|
30
|
+
es: LangEs.wordlist(),
|
|
31
|
+
fr: LangFr.wordlist(),
|
|
32
|
+
it: LangIt.wordlist(),
|
|
33
|
+
pt: LangPt.wordlist(),
|
|
34
|
+
ja: LangJa.wordlist(),
|
|
35
|
+
ko: LangKo.wordlist(),
|
|
36
|
+
zh_cn: LangZh.wordlist("cn"),
|
|
37
|
+
zh_tw: LangZh.wordlist("tw"),
|
|
38
|
+
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [[link-alchemy]] provides a third-party service for connecting to
|
|
3
|
-
* various blockchains over JSON-RPC.
|
|
4
|
-
*
|
|
5
|
-
* **Supported Networks**
|
|
6
|
-
*
|
|
7
|
-
* - Ethereum Mainnet (``mainnet``)
|
|
8
|
-
* - Goerli Testnet (``goerli``)
|
|
9
|
-
* - Sepolia Testnet (``sepolia``)
|
|
10
|
-
* - Arbitrum (``arbitrum``)
|
|
11
|
-
* - Arbitrum Goerli Testnet (``arbitrum-goerli``)
|
|
12
|
-
* - Arbitrum Sepolia Testnet (``arbitrum-sepolia``)
|
|
13
|
-
* - Base (``base``)
|
|
14
|
-
* - Base Goerlia Testnet (``base-goerli``)
|
|
15
|
-
* - Base Sepolia Testnet (``base-sepolia``)
|
|
16
|
-
* - Optimism (``optimism``)
|
|
17
|
-
* - Optimism Goerli Testnet (``optimism-goerli``)
|
|
18
|
-
* - Optimism Sepolia Testnet (``optimism-sepolia``)
|
|
19
|
-
* - Polygon (``matic``)
|
|
20
|
-
* - Polygon Amoy Testnet (``matic-amoy``)
|
|
21
|
-
* - Polygon Mumbai Testnet (``matic-mumbai``)
|
|
22
|
-
*
|
|
23
|
-
* @_subsection: api/providers/thirdparty:Alchemy [providers-alchemy]
|
|
24
|
-
*/
|
|
25
|
-
import { FetchRequest } from "../utils/index.js";
|
|
26
|
-
import { Network } from "./network.js";
|
|
27
|
-
import { JsonRpcProvider } from "./provider-jsonrpc.js";
|
|
28
|
-
import type { AbstractProvider, PerformActionRequest } from "./abstract-provider.js";
|
|
29
|
-
import type { CommunityResourcable } from "./community.js";
|
|
30
|
-
import type { Networkish } from "./network.js";
|
|
31
|
-
/**
|
|
32
|
-
* The **AlchemyProvider** connects to the [[link-alchemy]]
|
|
33
|
-
* JSON-RPC end-points.
|
|
34
|
-
*
|
|
35
|
-
* By default, a highly-throttled API key is used, which is
|
|
36
|
-
* appropriate for quick prototypes and simple scripts. To
|
|
37
|
-
* gain access to an increased rate-limit, it is highly
|
|
38
|
-
* recommended to [sign up here](link-alchemy-signup).
|
|
39
|
-
*
|
|
40
|
-
* @_docloc: api/providers/thirdparty
|
|
41
|
-
*/
|
|
42
|
-
export declare class AlchemyProvider extends JsonRpcProvider implements CommunityResourcable {
|
|
43
|
-
readonly apiKey: string;
|
|
44
|
-
constructor(_network?: Networkish, apiKey?: null | string);
|
|
45
|
-
_getProvider(chainId: number): AbstractProvider;
|
|
46
|
-
_perform(req: PerformActionRequest): Promise<any>;
|
|
47
|
-
isCommunityResource(): boolean;
|
|
48
|
-
static getRequest(network: Network, apiKey?: string): FetchRequest;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=provider-alchemy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-alchemy.d.ts","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAEH,YAAY,EACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2C/C;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,oBAAoB;IAChF,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEb,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM;IAWzD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAOzC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmCvD,mBAAmB,IAAI,OAAO;IAI9B,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY;CAerE"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* [[link-alchemy]] provides a third-party service for connecting to
|
|
4
|
-
* various blockchains over JSON-RPC.
|
|
5
|
-
*
|
|
6
|
-
* **Supported Networks**
|
|
7
|
-
*
|
|
8
|
-
* - Ethereum Mainnet (``mainnet``)
|
|
9
|
-
* - Goerli Testnet (``goerli``)
|
|
10
|
-
* - Sepolia Testnet (``sepolia``)
|
|
11
|
-
* - Arbitrum (``arbitrum``)
|
|
12
|
-
* - Arbitrum Goerli Testnet (``arbitrum-goerli``)
|
|
13
|
-
* - Arbitrum Sepolia Testnet (``arbitrum-sepolia``)
|
|
14
|
-
* - Base (``base``)
|
|
15
|
-
* - Base Goerlia Testnet (``base-goerli``)
|
|
16
|
-
* - Base Sepolia Testnet (``base-sepolia``)
|
|
17
|
-
* - Optimism (``optimism``)
|
|
18
|
-
* - Optimism Goerli Testnet (``optimism-goerli``)
|
|
19
|
-
* - Optimism Sepolia Testnet (``optimism-sepolia``)
|
|
20
|
-
* - Polygon (``matic``)
|
|
21
|
-
* - Polygon Amoy Testnet (``matic-amoy``)
|
|
22
|
-
* - Polygon Mumbai Testnet (``matic-mumbai``)
|
|
23
|
-
*
|
|
24
|
-
* @_subsection: api/providers/thirdparty:Alchemy [providers-alchemy]
|
|
25
|
-
*/
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.AlchemyProvider = void 0;
|
|
28
|
-
const index_js_1 = require("../utils/index.js");
|
|
29
|
-
const community_js_1 = require("./community.js");
|
|
30
|
-
const network_js_1 = require("./network.js");
|
|
31
|
-
const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js");
|
|
32
|
-
const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
|
|
33
|
-
function getHost(name) {
|
|
34
|
-
switch (name) {
|
|
35
|
-
case "mainnet":
|
|
36
|
-
return "eth-mainnet.alchemyapi.io";
|
|
37
|
-
case "goerli":
|
|
38
|
-
return "eth-goerli.g.alchemy.com";
|
|
39
|
-
case "sepolia":
|
|
40
|
-
return "eth-sepolia.g.alchemy.com";
|
|
41
|
-
case "arbitrum":
|
|
42
|
-
return "arb-mainnet.g.alchemy.com";
|
|
43
|
-
case "arbitrum-goerli":
|
|
44
|
-
return "arb-goerli.g.alchemy.com";
|
|
45
|
-
case "arbitrum-sepolia":
|
|
46
|
-
return "arb-sepolia.g.alchemy.com";
|
|
47
|
-
case "base":
|
|
48
|
-
return "base-mainnet.g.alchemy.com";
|
|
49
|
-
case "base-goerli":
|
|
50
|
-
return "base-goerli.g.alchemy.com";
|
|
51
|
-
case "base-sepolia":
|
|
52
|
-
return "base-sepolia.g.alchemy.com";
|
|
53
|
-
case "matic":
|
|
54
|
-
return "polygon-mainnet.g.alchemy.com";
|
|
55
|
-
case "matic-amoy":
|
|
56
|
-
return "polygon-amoy.g.alchemy.com";
|
|
57
|
-
case "matic-mumbai":
|
|
58
|
-
return "polygon-mumbai.g.alchemy.com";
|
|
59
|
-
case "optimism":
|
|
60
|
-
return "opt-mainnet.g.alchemy.com";
|
|
61
|
-
case "optimism-goerli":
|
|
62
|
-
return "opt-goerli.g.alchemy.com";
|
|
63
|
-
case "optimism-sepolia":
|
|
64
|
-
return "opt-sepolia.g.alchemy.com";
|
|
65
|
-
}
|
|
66
|
-
(0, index_js_1.assertArgument)(false, "unsupported network", "network", name);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* The **AlchemyProvider** connects to the [[link-alchemy]]
|
|
70
|
-
* JSON-RPC end-points.
|
|
71
|
-
*
|
|
72
|
-
* By default, a highly-throttled API key is used, which is
|
|
73
|
-
* appropriate for quick prototypes and simple scripts. To
|
|
74
|
-
* gain access to an increased rate-limit, it is highly
|
|
75
|
-
* recommended to [sign up here](link-alchemy-signup).
|
|
76
|
-
*
|
|
77
|
-
* @_docloc: api/providers/thirdparty
|
|
78
|
-
*/
|
|
79
|
-
class AlchemyProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
|
|
80
|
-
apiKey;
|
|
81
|
-
constructor(_network, apiKey) {
|
|
82
|
-
if (_network == null) {
|
|
83
|
-
_network = "mainnet";
|
|
84
|
-
}
|
|
85
|
-
const network = network_js_1.Network.from(_network);
|
|
86
|
-
if (apiKey == null) {
|
|
87
|
-
apiKey = defaultApiKey;
|
|
88
|
-
}
|
|
89
|
-
const request = AlchemyProvider.getRequest(network, apiKey);
|
|
90
|
-
super(request, network, { staticNetwork: network });
|
|
91
|
-
(0, index_js_1.defineProperties)(this, { apiKey });
|
|
92
|
-
}
|
|
93
|
-
_getProvider(chainId) {
|
|
94
|
-
try {
|
|
95
|
-
return new AlchemyProvider(chainId, this.apiKey);
|
|
96
|
-
}
|
|
97
|
-
catch (error) { }
|
|
98
|
-
return super._getProvider(chainId);
|
|
99
|
-
}
|
|
100
|
-
async _perform(req) {
|
|
101
|
-
// https://docs.alchemy.com/reference/trace-transaction
|
|
102
|
-
if (req.method === "getTransactionResult") {
|
|
103
|
-
const { trace, tx } = await (0, index_js_1.resolveProperties)({
|
|
104
|
-
trace: this.send("trace_transaction", [req.hash]),
|
|
105
|
-
tx: this.getTransaction(req.hash)
|
|
106
|
-
});
|
|
107
|
-
if (trace == null || tx == null) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
let data;
|
|
111
|
-
let error = false;
|
|
112
|
-
try {
|
|
113
|
-
data = trace[0].result.output;
|
|
114
|
-
error = (trace[0].error === "Reverted");
|
|
115
|
-
}
|
|
116
|
-
catch (error) { }
|
|
117
|
-
if (data) {
|
|
118
|
-
(0, index_js_1.assert)(!error, "an error occurred during transaction executions", "CALL_EXCEPTION", {
|
|
119
|
-
action: "getTransactionResult",
|
|
120
|
-
data,
|
|
121
|
-
reason: null,
|
|
122
|
-
transaction: tx,
|
|
123
|
-
invocation: null,
|
|
124
|
-
revert: null // @TODO
|
|
125
|
-
});
|
|
126
|
-
return data;
|
|
127
|
-
}
|
|
128
|
-
(0, index_js_1.assert)(false, "could not parse trace result", "BAD_DATA", { value: trace });
|
|
129
|
-
}
|
|
130
|
-
return await super._perform(req);
|
|
131
|
-
}
|
|
132
|
-
isCommunityResource() {
|
|
133
|
-
return (this.apiKey === defaultApiKey);
|
|
134
|
-
}
|
|
135
|
-
static getRequest(network, apiKey) {
|
|
136
|
-
if (apiKey == null) {
|
|
137
|
-
apiKey = defaultApiKey;
|
|
138
|
-
}
|
|
139
|
-
const request = new index_js_1.FetchRequest(`https:/\/${getHost(network.name)}/v2/${apiKey}`);
|
|
140
|
-
request.allowGzip = true;
|
|
141
|
-
if (apiKey === defaultApiKey) {
|
|
142
|
-
request.retryFunc = async (request, response, attempt) => {
|
|
143
|
-
(0, community_js_1.showThrottleMessage)("alchemy");
|
|
144
|
-
return true;
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
return request;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
exports.AlchemyProvider = AlchemyProvider;
|
|
151
|
-
//# sourceMappingURL=provider-alchemy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* [[link-ankr]] provides a third-party service for connecting to
|
|
3
|
-
* various blockchains over JSON-RPC.
|
|
4
|
-
*
|
|
5
|
-
* **Supported Networks**
|
|
6
|
-
*
|
|
7
|
-
* - Ethereum Mainnet (``mainnet``)
|
|
8
|
-
* - Goerli Testnet (``goerli``)
|
|
9
|
-
* - Sepolia Testnet (``sepolia``)
|
|
10
|
-
* - Arbitrum (``arbitrum``)
|
|
11
|
-
* - Base (``base``)
|
|
12
|
-
* - Base Goerlia Testnet (``base-goerli``)
|
|
13
|
-
* - Base Sepolia Testnet (``base-sepolia``)
|
|
14
|
-
* - BNB (``bnb``)
|
|
15
|
-
* - BNB Testnet (``bnbt``)
|
|
16
|
-
* - Optimism (``optimism``)
|
|
17
|
-
* - Optimism Goerli Testnet (``optimism-goerli``)
|
|
18
|
-
* - Optimism Sepolia Testnet (``optimism-sepolia``)
|
|
19
|
-
* - Polygon (``matic``)
|
|
20
|
-
* - Polygon Mumbai Testnet (``matic-mumbai``)
|
|
21
|
-
*
|
|
22
|
-
* @_subsection: api/providers/thirdparty:Ankr [providers-ankr]
|
|
23
|
-
*/
|
|
24
|
-
import { FetchRequest } from "../utils/index.js";
|
|
25
|
-
import { AbstractProvider } from "./abstract-provider.js";
|
|
26
|
-
import { Network } from "./network.js";
|
|
27
|
-
import { JsonRpcProvider } from "./provider-jsonrpc.js";
|
|
28
|
-
import type { CommunityResourcable } from "./community.js";
|
|
29
|
-
import type { Networkish } from "./network.js";
|
|
30
|
-
import type { JsonRpcError, JsonRpcPayload } from "./provider-jsonrpc.js";
|
|
31
|
-
/**
|
|
32
|
-
* The **AnkrProvider** connects to the [[link-ankr]]
|
|
33
|
-
* JSON-RPC end-points.
|
|
34
|
-
*
|
|
35
|
-
* By default, a highly-throttled API key is used, which is
|
|
36
|
-
* appropriate for quick prototypes and simple scripts. To
|
|
37
|
-
* gain access to an increased rate-limit, it is highly
|
|
38
|
-
* recommended to [sign up here](link-ankr-signup).
|
|
39
|
-
*/
|
|
40
|
-
export declare class AnkrProvider extends JsonRpcProvider implements CommunityResourcable {
|
|
41
|
-
/**
|
|
42
|
-
* The API key for the Ankr connection.
|
|
43
|
-
*/
|
|
44
|
-
readonly apiKey: string;
|
|
45
|
-
/**
|
|
46
|
-
* Create a new **AnkrProvider**.
|
|
47
|
-
*
|
|
48
|
-
* By default connecting to ``mainnet`` with a highly throttled
|
|
49
|
-
* API key.
|
|
50
|
-
*/
|
|
51
|
-
constructor(_network?: Networkish, apiKey?: null | string);
|
|
52
|
-
_getProvider(chainId: number): AbstractProvider;
|
|
53
|
-
/**
|
|
54
|
-
* Returns a prepared request for connecting to %%network%% with
|
|
55
|
-
* %%apiKey%%.
|
|
56
|
-
*/
|
|
57
|
-
static getRequest(network: Network, apiKey?: null | string): FetchRequest;
|
|
58
|
-
getRpcError(payload: JsonRpcPayload, error: JsonRpcError): Error;
|
|
59
|
-
isCommunityResource(): boolean;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=provider-ankr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-ankr.d.ts","sourceRoot":"","sources":["../../src.ts/providers/provider-ankr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACe,YAAY,EACjC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA0C1E;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAgB,YAAW,oBAAoB;IAE7E;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAC;IAEzB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM;IAczD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAO/C;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,YAAY;IAgBzE,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,KAAK;IAUhE,mBAAmB,IAAI,OAAO;CAGjC"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnkrProvider = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* [[link-ankr]] provides a third-party service for connecting to
|
|
6
|
-
* various blockchains over JSON-RPC.
|
|
7
|
-
*
|
|
8
|
-
* **Supported Networks**
|
|
9
|
-
*
|
|
10
|
-
* - Ethereum Mainnet (``mainnet``)
|
|
11
|
-
* - Goerli Testnet (``goerli``)
|
|
12
|
-
* - Sepolia Testnet (``sepolia``)
|
|
13
|
-
* - Arbitrum (``arbitrum``)
|
|
14
|
-
* - Base (``base``)
|
|
15
|
-
* - Base Goerlia Testnet (``base-goerli``)
|
|
16
|
-
* - Base Sepolia Testnet (``base-sepolia``)
|
|
17
|
-
* - BNB (``bnb``)
|
|
18
|
-
* - BNB Testnet (``bnbt``)
|
|
19
|
-
* - Optimism (``optimism``)
|
|
20
|
-
* - Optimism Goerli Testnet (``optimism-goerli``)
|
|
21
|
-
* - Optimism Sepolia Testnet (``optimism-sepolia``)
|
|
22
|
-
* - Polygon (``matic``)
|
|
23
|
-
* - Polygon Mumbai Testnet (``matic-mumbai``)
|
|
24
|
-
*
|
|
25
|
-
* @_subsection: api/providers/thirdparty:Ankr [providers-ankr]
|
|
26
|
-
*/
|
|
27
|
-
const index_js_1 = require("../utils/index.js");
|
|
28
|
-
const community_js_1 = require("./community.js");
|
|
29
|
-
const network_js_1 = require("./network.js");
|
|
30
|
-
const provider_jsonrpc_js_1 = require("./provider-jsonrpc.js");
|
|
31
|
-
const defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
|
|
32
|
-
function getHost(name) {
|
|
33
|
-
switch (name) {
|
|
34
|
-
case "mainnet":
|
|
35
|
-
return "rpc.ankr.com/eth";
|
|
36
|
-
case "goerli":
|
|
37
|
-
return "rpc.ankr.com/eth_goerli";
|
|
38
|
-
case "sepolia":
|
|
39
|
-
return "rpc.ankr.com/eth_sepolia";
|
|
40
|
-
case "arbitrum":
|
|
41
|
-
return "rpc.ankr.com/arbitrum";
|
|
42
|
-
case "base":
|
|
43
|
-
return "rpc.ankr.com/base";
|
|
44
|
-
case "base-goerli":
|
|
45
|
-
return "rpc.ankr.com/base_goerli";
|
|
46
|
-
case "base-sepolia":
|
|
47
|
-
return "rpc.ankr.com/base_sepolia";
|
|
48
|
-
case "bnb":
|
|
49
|
-
return "rpc.ankr.com/bsc";
|
|
50
|
-
case "bnbt":
|
|
51
|
-
return "rpc.ankr.com/bsc_testnet_chapel";
|
|
52
|
-
case "matic":
|
|
53
|
-
return "rpc.ankr.com/polygon";
|
|
54
|
-
case "matic-mumbai":
|
|
55
|
-
return "rpc.ankr.com/polygon_mumbai";
|
|
56
|
-
case "optimism":
|
|
57
|
-
return "rpc.ankr.com/optimism";
|
|
58
|
-
case "optimism-goerli":
|
|
59
|
-
return "rpc.ankr.com/optimism_testnet";
|
|
60
|
-
case "optimism-sepolia":
|
|
61
|
-
return "rpc.ankr.com/optimism_sepolia";
|
|
62
|
-
}
|
|
63
|
-
(0, index_js_1.assertArgument)(false, "unsupported network", "network", name);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* The **AnkrProvider** connects to the [[link-ankr]]
|
|
67
|
-
* JSON-RPC end-points.
|
|
68
|
-
*
|
|
69
|
-
* By default, a highly-throttled API key is used, which is
|
|
70
|
-
* appropriate for quick prototypes and simple scripts. To
|
|
71
|
-
* gain access to an increased rate-limit, it is highly
|
|
72
|
-
* recommended to [sign up here](link-ankr-signup).
|
|
73
|
-
*/
|
|
74
|
-
class AnkrProvider extends provider_jsonrpc_js_1.JsonRpcProvider {
|
|
75
|
-
/**
|
|
76
|
-
* The API key for the Ankr connection.
|
|
77
|
-
*/
|
|
78
|
-
apiKey;
|
|
79
|
-
/**
|
|
80
|
-
* Create a new **AnkrProvider**.
|
|
81
|
-
*
|
|
82
|
-
* By default connecting to ``mainnet`` with a highly throttled
|
|
83
|
-
* API key.
|
|
84
|
-
*/
|
|
85
|
-
constructor(_network, apiKey) {
|
|
86
|
-
if (_network == null) {
|
|
87
|
-
_network = "mainnet";
|
|
88
|
-
}
|
|
89
|
-
const network = network_js_1.Network.from(_network);
|
|
90
|
-
if (apiKey == null) {
|
|
91
|
-
apiKey = defaultApiKey;
|
|
92
|
-
}
|
|
93
|
-
// Ankr does not support filterId, so we force polling
|
|
94
|
-
const options = { polling: true, staticNetwork: network };
|
|
95
|
-
const request = AnkrProvider.getRequest(network, apiKey);
|
|
96
|
-
super(request, network, options);
|
|
97
|
-
(0, index_js_1.defineProperties)(this, { apiKey });
|
|
98
|
-
}
|
|
99
|
-
_getProvider(chainId) {
|
|
100
|
-
try {
|
|
101
|
-
return new AnkrProvider(chainId, this.apiKey);
|
|
102
|
-
}
|
|
103
|
-
catch (error) { }
|
|
104
|
-
return super._getProvider(chainId);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Returns a prepared request for connecting to %%network%% with
|
|
108
|
-
* %%apiKey%%.
|
|
109
|
-
*/
|
|
110
|
-
static getRequest(network, apiKey) {
|
|
111
|
-
if (apiKey == null) {
|
|
112
|
-
apiKey = defaultApiKey;
|
|
113
|
-
}
|
|
114
|
-
const request = new index_js_1.FetchRequest(`https:/\/${getHost(network.name)}/${apiKey}`);
|
|
115
|
-
request.allowGzip = true;
|
|
116
|
-
if (apiKey === defaultApiKey) {
|
|
117
|
-
request.retryFunc = async (request, response, attempt) => {
|
|
118
|
-
(0, community_js_1.showThrottleMessage)("AnkrProvider");
|
|
119
|
-
return true;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
return request;
|
|
123
|
-
}
|
|
124
|
-
getRpcError(payload, error) {
|
|
125
|
-
if (payload.method === "eth_sendRawTransaction") {
|
|
126
|
-
if (error && error.error && error.error.message === "INTERNAL_ERROR: could not replace existing tx") {
|
|
127
|
-
error.error.message = "replacement transaction underpriced";
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return super.getRpcError(payload, error);
|
|
131
|
-
}
|
|
132
|
-
isCommunityResource() {
|
|
133
|
-
return (this.apiKey === defaultApiKey);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
exports.AnkrProvider = AnkrProvider;
|
|
137
|
-
//# sourceMappingURL=provider-ankr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-ankr.js","sourceRoot":"","sources":["../../src.ts/providers/provider-ankr.ts"],"names":[],"mappings":"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"}
|