essential-eth 0.5.6 → 0.5.9

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 (91) hide show
  1. package/lib/cjs/classes/Contract.d.ts +10 -4
  2. package/lib/cjs/classes/Contract.js +15 -4
  3. package/lib/cjs/classes/utils/clean-block.d.ts +115 -0
  4. package/lib/cjs/classes/utils/clean-block.js +122 -9
  5. package/lib/cjs/classes/utils/clean-log.d.ts +9 -0
  6. package/lib/cjs/classes/utils/clean-log.js +37 -0
  7. package/lib/cjs/classes/utils/clean-transaction-receipt.d.ts +9 -0
  8. package/lib/cjs/classes/utils/clean-transaction-receipt.js +11 -16
  9. package/lib/cjs/classes/utils/clean-transaction.d.ts +9 -0
  10. package/lib/cjs/classes/utils/clean-transaction.js +10 -1
  11. package/lib/cjs/classes/utils/encode-decode-transaction.d.ts +12 -0
  12. package/lib/cjs/classes/utils/encode-decode-transaction.js +24 -0
  13. package/lib/cjs/classes/utils/fetchers.d.ts +31 -1
  14. package/lib/cjs/classes/utils/fetchers.js +30 -0
  15. package/lib/cjs/classes/utils/hex-to-decimal.d.ts +14 -1
  16. package/lib/cjs/classes/utils/hex-to-decimal.js +14 -1
  17. package/lib/cjs/classes/utils/prepare-transaction.d.ts +6 -0
  18. package/lib/cjs/classes/utils/prepare-transaction.js +45 -0
  19. package/lib/cjs/index.d.ts +3 -3
  20. package/lib/cjs/index.js +0 -1
  21. package/lib/cjs/logger/package-version.d.ts +1 -1
  22. package/lib/cjs/logger/package-version.js +1 -1
  23. package/lib/cjs/providers/BaseProvider.d.ts +261 -212
  24. package/lib/cjs/providers/BaseProvider.js +332 -225
  25. package/lib/cjs/providers/JsonRpcProvider.d.ts +6 -0
  26. package/lib/cjs/providers/JsonRpcProvider.js +6 -0
  27. package/lib/cjs/providers/utils/chains-info.d.ts +11 -0
  28. package/lib/cjs/providers/utils/chains-info.js +34 -1
  29. package/lib/cjs/shared/tiny-big/helpers.d.ts +16 -0
  30. package/lib/cjs/shared/tiny-big/helpers.js +27 -1
  31. package/lib/cjs/shared/tiny-big/tiny-big.d.ts +30 -4
  32. package/lib/cjs/shared/tiny-big/tiny-big.js +34 -4
  33. package/lib/cjs/types/Block.types.d.ts +11 -7
  34. package/lib/cjs/types/Filter.types.d.ts +16 -0
  35. package/lib/cjs/{providers/types.js → types/Filter.types.js} +0 -0
  36. package/lib/cjs/types/Transaction.types.d.ts +33 -6
  37. package/lib/cjs/utils/bytes.d.ts +150 -33
  38. package/lib/cjs/utils/bytes.js +179 -32
  39. package/lib/cjs/utils/compute-address.d.ts +10 -1
  40. package/lib/cjs/utils/compute-address.js +10 -1
  41. package/lib/cjs/utils/compute-public-key.d.ts +12 -3
  42. package/lib/cjs/utils/compute-public-key.js +12 -3
  43. package/lib/cjs/utils/ether-to-gwei.d.ts +2 -1
  44. package/lib/cjs/utils/ether-to-gwei.js +2 -1
  45. package/lib/cjs/utils/ether-to-wei.d.ts +2 -1
  46. package/lib/cjs/utils/ether-to-wei.js +2 -1
  47. package/lib/cjs/utils/gwei-to-ether.d.ts +2 -1
  48. package/lib/cjs/utils/gwei-to-ether.js +2 -1
  49. package/lib/cjs/utils/hash-message.d.ts +3 -1
  50. package/lib/cjs/utils/hash-message.js +3 -1
  51. package/lib/cjs/utils/is-address.d.ts +2 -2
  52. package/lib/cjs/utils/is-address.js +2 -2
  53. package/lib/cjs/utils/keccak256.d.ts +15 -1
  54. package/lib/cjs/utils/keccak256.js +16 -2
  55. package/lib/cjs/utils/solidity-keccak256.d.ts +17 -7
  56. package/lib/cjs/utils/solidity-keccak256.js +27 -7
  57. package/lib/cjs/utils/split-signature.d.ts +1 -3
  58. package/lib/cjs/utils/split-signature.js +1 -3
  59. package/lib/cjs/utils/to-checksum-address.d.ts +2 -2
  60. package/lib/cjs/utils/to-checksum-address.js +2 -2
  61. package/lib/cjs/utils/to-utf8-bytes.d.ts +14 -0
  62. package/lib/cjs/utils/to-utf8-bytes.js +14 -0
  63. package/lib/cjs/utils/wei-to-ether.d.ts +2 -1
  64. package/lib/cjs/utils/wei-to-ether.js +2 -1
  65. package/lib/esm/classes/utils/clean-block.js +7 -8
  66. package/lib/esm/classes/utils/clean-log.d.ts +2 -0
  67. package/lib/esm/classes/utils/clean-log.js +26 -0
  68. package/lib/esm/classes/utils/clean-transaction-receipt.js +2 -16
  69. package/lib/esm/classes/utils/clean-transaction.js +1 -1
  70. package/lib/esm/classes/utils/fetchers.d.ts +1 -1
  71. package/lib/esm/classes/utils/prepare-transaction.d.ts +2 -0
  72. package/lib/esm/classes/utils/prepare-transaction.js +34 -0
  73. package/lib/esm/index.d.ts +3 -3
  74. package/lib/esm/index.js +0 -1
  75. package/lib/esm/logger/package-version.d.ts +1 -1
  76. package/lib/esm/logger/package-version.js +1 -1
  77. package/lib/esm/providers/BaseProvider.d.ts +5 -2
  78. package/lib/esm/providers/BaseProvider.js +56 -13
  79. package/lib/esm/providers/utils/chains-info.d.ts +11 -0
  80. package/lib/esm/providers/utils/chains-info.js +34 -1
  81. package/lib/esm/shared/tiny-big/tiny-big.js +4 -0
  82. package/lib/esm/types/Block.types.d.ts +11 -7
  83. package/lib/esm/types/Filter.types.d.ts +12 -0
  84. package/lib/esm/{providers/types.js → types/Filter.types.js} +0 -0
  85. package/lib/esm/types/Transaction.types.d.ts +31 -5
  86. package/lib/esm/utils/keccak256.d.ts +1 -1
  87. package/lib/esm/utils/keccak256.js +2 -2
  88. package/package.json +30 -6
  89. package/readme.md +643 -291
  90. package/lib/cjs/providers/types.d.ts +0 -7
  91. package/lib/esm/providers/types.d.ts +0 -7
@@ -1,8 +1,8 @@
1
1
  import { TinyBig } from '../shared/tiny-big/tiny-big';
2
2
  import { BlockResponse, BlockTag } from '../types/Block.types';
3
+ import { Filter, FilterByBlockHash } from '../types/Filter.types';
3
4
  import { Network } from '../types/Network.types';
4
- import { TransactionReceipt, TransactionResponse } from '../types/Transaction.types';
5
- import { TransactionRequest } from './types';
5
+ import { Log, TransactionReceipt, TransactionRequest, TransactionResponse } from '../types/Transaction.types';
6
6
  export declare abstract class BaseProvider {
7
7
  /**
8
8
  * ignore
@@ -18,278 +18,270 @@ export declare abstract class BaseProvider {
18
18
  */
19
19
  protected _post: (body: Record<string, unknown>) => Promise<any>;
20
20
  /**
21
- * @param rpcUrl The URL to your Eth node. Consider POKT or Infura
21
+ * @param rpcUrls The URL(s) to your Eth node(s). Consider POKT or Infura
22
+ * @example
23
+ * `https://free-eth-node.com/api/eth`
24
+ * @example
25
+ * `https://mainnet.infura.io/v3/YOUR-PROJECT-ID`
22
26
  */
23
27
  constructor(rpcUrls: string[]);
24
28
  /**
25
- * Returns the network this provider is connected to
29
+ * Gets information (name, chainId, and ensAddress when applicable) about the network the provider is connected to.
30
+ *
31
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getNetwork`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getNetwork) in ethers.js
32
+ * * [Similar](/docs/api#isd) to [`web3.eth.getChainId`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getchainid) in web3.js, returns more than just the `chainId`
33
+ *
34
+ * @returns information about the network this provider is currently connected to
35
+ * @example
36
+ * ```javascript
37
+ * jsonRpcProvider('https://free-eth-node.com/api/eth').getNetwork();
38
+ * // { chainId: 1, name: 'eth', ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' }
39
+ * ```
40
+ * @example
41
+ * ```javascript
42
+ * jsonRpcProvider('https://free-eth-node.com/api/MATIC').getNetwork();
43
+ * // { chainId: 137, name: 'MATIC', ensAddress: null }
44
+ * ```
26
45
  */
27
46
  getNetwork(): Promise<Network>;
28
47
  /**
29
- * Gets the number of the most recently mined block on the network the provider is connected to
48
+ * Gets the number of the most recently mined block on the network the provider is connected to.
30
49
  *
31
- * * Identical to [`ethers.provider.getBlockNumber`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBlockNumber)
32
- * * Identical to [`web3.eth.getBlockNumber`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getblocknumber)
50
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getBlockNumber`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBlockNumber) in ethers.js
51
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBlockNumber`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getblocknumber) in web3.js
33
52
  *
34
53
  * @returns the number of the most recently mined block
35
54
  * @example
36
- * ```js
55
+ * ```javascript
37
56
  * await provider.getBlockNumber();
38
57
  * // 1053312
39
58
  * ```
40
59
  */
41
60
  getBlockNumber(): Promise<number>;
42
61
  /**
43
- * * Similar to [`ethers.provider.getTransaction`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransaction), some information not included
62
+ * Gets information about a specified transaction, even if it hasn't been mined yet.
44
63
  *
45
- * @returns information about one transaction
64
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getTransaction`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransaction) in ethers.js, does not have `wait` method that waits until the transaction has been mined
65
+ * * [Similar](/docs/api#isd) to [`web3.eth.getTransaction`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransaction) in web3.js, some information returned using different types
66
+ *
67
+ * @param transactionHash the hash of the transaction to get information about
68
+ * @returns information about the specified transaction
46
69
  * @example
47
- * ```js
70
+ * ```javascript
48
71
  * await provider.getTransaction('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
49
- * {
50
- * accessList: [],
51
- * blockHash: '0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d',
52
- * blockNumber: 14578286,
53
- * chainId: 1,
54
- * from: '0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4',
55
- * gas: Big {
56
- * s: 1,
57
- * e: 5,
58
- * c: [ 1, 1, 2, 1, 6, 3 ],
59
- * constructor: <ref *1> [Function: Big] {
60
- * DP: 20,
61
- * RM: 1,
62
- * NE: -7,
63
- * PE: 21,
64
- * strict: false,
65
- * roundDown: 0,
66
- * roundHalfUp: 1,
67
- * roundHalfEven: 2,
68
- * roundUp: 3,
69
- * Big: [Circular *1],
70
- * default: [Circular *1]
71
- * }
72
- * },
73
- * gasPrice: Big {
74
- * s: 1,
75
- * e: 10,
76
- * c: [
77
- * 4, 8, 5, 9, 2,
78
- * 4, 2, 6, 8, 5,
79
- * 8
80
- * ],
81
- * constructor: <ref *1> [Function: Big] {
82
- * DP: 20,
83
- * RM: 1,
84
- * NE: -7,
85
- * PE: 21,
86
- * strict: false,
87
- * roundDown: 0,
88
- * roundHalfUp: 1,
89
- * roundHalfEven: 2,
90
- * roundUp: 3,
91
- * Big: [Circular *1],
92
- * default: [Circular *1]
93
- * }
94
- * },
95
- * hash: '0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789',
96
- * input: '0x83259f170000000000000000000000000000000000000000000000000000000000000080000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed400000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009e99ad11a214fd016b19dc3648678c5944859ae292b21c24ca94f857836c4596f1950c82dd0c23dd621af4763edc2f66466e63c5df9de0c1107b1cd16bf460fe93e43fd308e3444bc79c3d88a4cb961dc8367ab6ad048867afc76d193bca99cf3a068864ed4a7df1dbf1d4c52238eced3e5e05644b4040fc2b3ccb8557b0e99fff6131305a0ea2b8061b90bd418db5bbdd2e92129f52d93f90531465e309c4caec5b85285822b6196398d36f16f511811b61bbda6461e80e29210cd303118bdcee8df6fa0505ffbe8642094fd2ba4dd458496fe3b459ac880bbf71877c713e969ccf5ed7efab8a84ebc07e3939901371ca427e1192e455a8f35a6a1d7ad09e1475dd1758b36fa631dab5d70e99316b23c4c43094188d360cd9c3457355904e07c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000162074a7047f',
97
- * maxFeePerGas: Big {
98
- * s: 1,
99
- * e: 10,
100
- * c: [
101
- * 6, 7, 6, 8, 1,
102
- * 2, 6, 1, 6, 1,
103
- * 8
104
- * ],
105
- * constructor: <ref *1> [Function: Big] {
106
- * DP: 20,
107
- * RM: 1,
108
- * NE: -7,
109
- * PE: 21,
110
- * strict: false,
111
- * roundDown: 0,
112
- * roundHalfUp: 1,
113
- * roundHalfEven: 2,
114
- * roundUp: 3,
115
- * Big: [Circular *1],
116
- * default: [Circular *1]
117
- * }
118
- * },
119
- * maxPriorityFeePerGas: Big {
120
- * s: 1,
121
- * e: 9,
122
- * c: [ 1, 5 ],
123
- * constructor: <ref *1> [Function: Big] {
124
- * DP: 20,
125
- * RM: 1,
126
- * NE: -7,
127
- * PE: 21,
128
- * strict: false,
129
- * roundDown: 0,
130
- * roundHalfUp: 1,
131
- * roundHalfEven: 2,
132
- * roundUp: 3,
133
- * Big: [Circular *1],
134
- * default: [Circular *1]
135
- * }
136
- * },
137
- * nonce: 129,
138
- * r: '0x59a7c15b12c18cd68d6c440963d959bff3e73831ffc938e75ecad07f7ee43fbc',
139
- * s: '0x1ebaf05f0d9273b16c2a7748b150a79d22533a8cd74552611cbe620fee3dcf1c',
140
- * to: '0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B',
141
- * transactionIndex: 29,
142
- * type: 2,
143
- * v: 0,
144
- * value: Big {
145
- * s: 1,
146
- * e: 0,
147
- * c: [ 0 ],
148
- * constructor: <ref *1> [Function: Big] {
149
- * DP: 20,
150
- * RM: 1,
151
- * NE: -7,
152
- * PE: 21,
153
- * strict: false,
154
- * roundDown: 0,
155
- * roundHalfUp: 1,
156
- * roundHalfEven: 2,
157
- * roundUp: 3,
158
- * Big: [Circular *1],
159
- * default: [Circular *1]
160
- * }
161
- * },
162
- * confirmations: 1210
163
- * }
72
+ * // {
73
+ * // accessList: [],
74
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
75
+ * // blockNumber: 14578286,
76
+ * // chainId: 1,
77
+ * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
78
+ * // gas: { TinyBig: 112163 },
79
+ * // gasPrice: { TinyBig: 48592426858 },
80
+ * // hash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
81
+ * // input: "0x83259f17000000000000000000000000000000000000000000...",
82
+ * // maxFeePerGas: { TinyBig: 67681261618 },
83
+ * // maxPriorityFeePerGas: { TinyBig: 1500000000 },
84
+ * // nonce: { TinyBig: 129 },
85
+ * // r: "0x59a7c15b12c18cd68d6c440963d959bff3e73831ffc938e75ecad07f7ee43fbc",
86
+ * // s: "0x1ebaf05f0d9273b16c2a7748b150a79d22533a8cd74552611cbe620fee3dcf1c",
87
+ * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
88
+ * // transactionIndex: 29,
89
+ * // type: 2,
90
+ * // v: 0,
91
+ * // value: { TinyBig: 0 },
92
+ * // confirmations: 298140,
93
+ * // }
164
94
  * ```
165
95
  */
166
96
  getTransaction(transactionHash: string): Promise<TransactionResponse>;
167
97
  /**
168
- * Gives information about a transaction that has already been mined. Includes additional information beyond what's provided by `getTransaction()`
98
+ * Gives information about a transaction that has already been mined. Includes additional information beyond what's provided by [`getTransaction`](/docs/api/modules#gettransaction).
169
99
  *
170
- * * Similar to [`ethers.provider.getTransactionReceipt`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionReceipt), some information not included
100
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionReceipt`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionReceipt) in ethers.js
101
+ * * [Similar](/docs/api#isd) to [`web3.eth.getTransactionReceipt`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactionreceipt) in web3.js, some information returned using different types
171
102
  *
172
103
  * @param transactionHash the hash of the transaction to get information about
173
- *
104
+ * @returns information about the specified transaction that has already been mined
105
+ * @example
106
+ * ```javascript
107
+ * await provider.getTransactionReceipt('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
108
+ * // {
109
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
110
+ * // blockNumber: 14578286,
111
+ * // contractAddress: null,
112
+ * // cumulativeGasUsed: { TinyBig: 3067973 },
113
+ * // effectiveGasPrice: { TinyBig: 48592426858 },
114
+ * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
115
+ * // gasUsed: { TinyBig: 112163 },
116
+ * // logs: [
117
+ * // {
118
+ * // address: "0x0eDF9bc41Bbc1354c70e2107F80C42caE7FBBcA8",
119
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
120
+ * // blockNumber: 14578286,
121
+ * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
122
+ * // logIndex: 42,
123
+ * // topics: [
124
+ * // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
125
+ * // "0x00000000000000000000000039b72d136ba3e4cef35f48cd09587ffab754dd8b",
126
+ * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
127
+ * // ],
128
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
129
+ * // transactionIndex: 29,
130
+ * // },
131
+ * // {
132
+ * // address: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
133
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
134
+ * // blockNumber: 14578286,
135
+ * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
136
+ * // logIndex: 43,
137
+ * // topics: [
138
+ * // "0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7",
139
+ * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
140
+ * // "0x0000000000000000000000000000000000000000000000000000000000000003",
141
+ * // ],
142
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
143
+ * // transactionIndex: 29,
144
+ * // },
145
+ * // ],
146
+ * // logsBloom: "0x00000000000000000000000000000...",
147
+ * // status: 1,
148
+ * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
149
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
150
+ * // transactionIndex: 29,
151
+ * // type: 2,
152
+ * // byzantium: true,
153
+ * // confirmations: 298171,
154
+ * // }
155
+ * ```
174
156
  */
175
157
  getTransactionReceipt(transactionHash: string): Promise<TransactionReceipt>;
176
158
  /**
177
- * Returns the transaction count from genesis up to specified blockTag
159
+ * Returns the number of sent transactions by an address, from genesis (or as far back as a provider looks) up to specified block.
178
160
  *
179
- * * Same as `ethers.provider.getTransactionCount`
180
- * * Same as `web3.eth.getTransactionCount`
161
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionCount`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionCount) in ethers.js
162
+ * * [Identical](/docs/api#isd) to [`web3.eth.getTransactionCount`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactioncount) in web3.js
181
163
  *
164
+ * @param address the address to count number of sent transactions
165
+ * @param blockTag the block to count transactions up to, inclusive
166
+ * @returns the number of transactions sent by the specified address
182
167
  * @example
183
- * ```js
184
- * const address = '0x71660c4005ba85c37ccec55d0c4493e66fe775d3';
185
- * await provider
186
- * .getTransactionCount(address, 'latest')
168
+ * ```javascript
169
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3');
187
170
  * // 1060000
188
171
  * ```
189
- *
190
172
  * @example
191
- * ```js
192
- * await provider
193
- * .getTransactionCount(address)
194
- * // 1053312
173
+ * ```javascript
174
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 'latest');
175
+ * // 1060000
195
176
  * ```
196
- *
197
177
  * @example
198
- * ```js
199
- * await provider
200
- * .getTransactionCount(address, 14649390)
178
+ * ```javascript
179
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 14649390);
201
180
  * // 1053312
202
181
  * ```
203
182
  */
204
183
  getTransactionCount(address: string, blockTag?: BlockTag): Promise<number>;
205
184
  /**
206
- * Gets information about a certain block.
207
- * Same as `web3.eth.getBlock` and `ethers.providers.getBlock`
185
+ * Gets information about a certain block, optionally with full transaction objects.
208
186
  *
209
- * @param timeFrame The number, hash, or text-based description ('latest', 'earliest', or 'pending') of the block to collect information on.
187
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getBlock`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js, includes some additional information. Can also return block with full transaction objects, similar to [`ethers.providers.getBlockWithTransactions`]
188
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBlock`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
210
189
  *
190
+ * @param timeFrame The number, hash, or text-based description ('latest', 'earliest', or 'pending') of the block to collect information on.
211
191
  * @param returnTransactionObjects Whether to also return data about the transactions on the block.
212
- *
213
192
  * @returns A BlockResponse object with information about the specified block
214
- *
215
- * @example
216
- * ```js
217
- * await provider.getBlock(14645431);
218
- * ```
219
- *
220
193
  * @example
221
- * ```js
222
- * await provider.getBlock('0x3e5cea9c2be7e0ab4b0aa04c24dafddc37571db2d2d345caf7f88b3366ece0cf');
194
+ * ```javascript
195
+ * await provider.getBlock(14879862);
196
+ * // {
197
+ * // baseFeePerGas: { TinyBig: 39095728776 },
198
+ * // difficulty: { TinyBig: 14321294455359973 },
199
+ * // extraData: "0x486976656f6e2073672d6865617679",
200
+ * // gasLimit: { TinyBig: 29970620 },
201
+ * // gasUsed: { TinyBig: 20951384 },
202
+ * // hash: "0x563b458ec3c4f87393b53f70bdddc0058497109b784d8cacd9247ddf267049ab",
203
+ * // logsBloom:
204
+ * // "0x9f38794fe80b521794df6efad8b0d2e9582f9ec3959a3f9384bda0fa371cfa5fac5af9d515c6bdf1ec325f5b5f7ebdd6a3a9fae17b38a86d4dc4b0971afc68d8086640550f4c156e6f923f4a1bb94fb0bed6cdcc474c5c64bfeff7a4a906f72b9a7b94004ee58efc53d63ac66961acd3a431b2d896cc9fd75f6072960bced45f770587caf130f57504decfcb63c6ca8fbc5bdbd749edd5a99a7375d2b81872289adb775fb3c928259f4be39c6d3f4d5b6217822979bb88c1f1fb62429b1b6d41cf4e3f77f9e1db3f5723108f1e5b1255dd734ad8cdb11e7ea22487c788e67c83777b6f395e504ca59c64f52245ee6de3804cf809e5caa4f0ea6a9aa9eb6ed801",
205
+ * // miner: "0x1aD91ee08f21bE3dE0BA2ba6918E714dA6B45836",
206
+ * // mixHash: "0x73cc9419bfb89c9d41c3a8c34ce56b5ebe468bdcf870258d2e77262275d580ec",
207
+ * // nonce: "0x976f3f5d596ffb08",
208
+ * // number: 14879862,
209
+ * // parentHash: "0x95986ae14a71face8d9a6a379edd875b2e8bc73e4de0d9d460e7752bddb0f579",
210
+ * // receiptsRoot: "0x8e6ba2fd9bee602b653dae6e3132f16538c2c5df24f1df8c000392053f73defa",
211
+ * // sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
212
+ * // size: { TinyBig: 134483 },
213
+ * // stateRoot: "0xbf2bb67bd1c741f3d00904b8451d7c2cf4e3a2726f5a5884792ede2074747b85",
214
+ * // timestamp: { TinyBig: 1654016186 },
215
+ * // totalDifficulty: { TinyBig: 50478104614257705213748 },
216
+ * // transactions: [
217
+ * // "0xb3326a9149809603a2c28545e50e4f7d16e194bf5ee9764e0544603854c4a8d2",
218
+ * // "0x8b42095f8d335404a4896b2817b8e5e3d86a5a87cb434a8eec295d5280a7f48e",
219
+ * // "0x882f78fcb73f0f7ad0700bb0424a8b4beb366aaa93b88a3562c49a8d0ce4dcff",
220
+ * // ...
221
+ * // ],
222
+ * // transactionsRoot: "0x5934902f3dcc263ec34f24318179bf6301f53f4834685792066026f3a4849d72",
223
+ * // uncles: [],
224
+ * // }
223
225
  * ```
224
- *
225
- * @example
226
- * ```js
227
- * await provider.getBlock('latest');
228
- * {
229
- * number: 4232826,
230
- * hash: '0x93211a1cd17e154b183565ec685254a03f844a8e34824a46ce1bdd6753dcb669',
231
- * parentHash: '0x1b32bfcba1bb2a57f56e166a3bb06875a1978992999dfc8828397b4c1526f472',
232
- * sha3Uncles: '0x0fb399c67bb5a071ec8a22549223215ab76b7d4009941c9c37aa3c3936010463',
233
- * logsBloom: '0x00000000000000000000101000000000020000000000000000000000000000000000400000010000000000000000000000000000010000000008800000000800000000200000000000000000000000000000000000000000000002000000000000000000000000000040000000000040000000000000000000000000000000000000000000000001000000000004000000000010000000000000000020000000000000000200100020000000000000000080000000000080001000000000000000000001040000000000000000008000000020010100000000200000100000000000000000000000002000000080000000020400000000002000200000000000',
234
- * transactionsRoot: '0xc43b3f13e1fe810e34d3a26ffe465b72c7063a5c70a02de2c78e91e4d10bd9fb',
235
- * stateRoot: '0x04d7bc816537ea7ef3a16e76c9879d29f34f99d4154273c2e98e012a31bad745',
236
- * receiptsRoot: '0x89c6f781ceac0bd49c4d9aa9115df4a5d4dd0e0220ff7668012f15bc04222c6b',
237
- * miner: '0x31fe561eb2c628cD32Ec52573D7c4b7E4C278Bfa',
238
- * difficulty: '1300907486001755331049',
239
- * totalDifficulty: '5989929395521171616186006183',
240
- * extraData: '0xce018c495249532d62613031656132',
241
- * size: 5416,
242
- * gasLimit: 6800000,
243
- * gasUsed: 202955,
244
- * timestamp: 1649884910,
245
- * transactions: [
246
- * '0x6b34a59c7b9aead24fa6dad782f8a3ad84ed4a23ee09bcbf0bcf880840fbbe20',
247
- * '0x9a3851ca24d5336c6a0d48aba2c4b4769d7a672c9b01729c5eb9924efd1b19a7',
248
- * '0xc3ed3d198b62f2f3427ebfa3bbd0fcada4e3c0c189e4464e7eeceb403c75981e'
249
- * ],
250
- * uncles: [
251
- * '0x0c567c054e98153f10d651fbbc018891c1dd9d62a9ffd998e87678803e95b6ed',
252
- * '0xb7d69389dbfb057c6fcb4bc0582d46a2ba01170703f0dadf8cd1462b83e88753',
253
- * '0xd5f74ccd0ad4c58b3161e8c2c507c264231e5f28925061b809c02e5e4bb6db28'
254
- * ],
255
- * minimumGasPrice: '0x387ee40',
256
- * bitcoinMergedMiningHeader: '0x04000020e8567ed3d2480e15a1dd1b4335e4732ae343c037e4fd03000000000000000000ed10a8340d163d3e813bdd430f902f4e5a56828dc62313b2e23797c0be6b8516eb3e576297d8091735884f42',
257
- * bitcoinMergedMiningCoinbaseTransaction: '0x0000000000000140e910128fda7bac502dc5e0573bbaf12de8e2524f70c22f7bd160dedcb19a2521002b6a2952534b424c4f434b3ae493303f597fa368c0ccc4f8aceabf1c315bb7c9a07605c073a89f260040967aace6a7d9',
258
- * bitcoinMergedMiningMerkleProof: '0xdf63a3d7eb6fbcfb301311faa46e9a15b0408bb1a04e284daee86c273c1dfd65ede23f3170f806e9e0f4cef7ba6b56aa37470d9c23f96ec8e43d08b58645919c5e10bcb892897a731f8f9ce79c72dc0e390896bcd6c67bb38c0bdb72982b6cf05519968d76673572c3f3ef3a08b0ddb464863f1788f7cdbaad3fe44a8a8af576d430ac282fe28852c16df198ca96cc5f71a50695912efe1a836e8442be69e31b6d6f973da2818bce9a3a1c2d9be0671aee9a7776e398d6a03d1e178e20d84646004a3d03c0501334e629d9146aa6a01316dcbaa289df6e6c5e3090cadaddff22699cfc7ff09512fc0d65c5062f17c98561ce3c9510de210d9d654cf99f8d756ff37c9fa21e7122ee8cadb923341690845d572921425f2bd7e044558b7e07983ac4df28928028b0c13c3624dc7a965af8091b0cecc845bf7da5308c03b2c97d607f6706a599f802025894435f1d76ea4e67cc2fc4e1559f1206f559a24633de0f',
259
- * hashForMergedMining: '0xe493303f597fa368c0ccc4f8aceabf1c315bb7c9a07605c073a89f260040967a',
260
- * paidFees: '0xc0744dcb7a0',
261
- * cumulativeDifficulty: '0x1190930db285269e582'
262
- * }
263
- *```
264
226
  */
265
227
  getBlock(timeFrame?: BlockTag, returnTransactionObjects?: boolean): Promise<BlockResponse>;
266
228
  /**
267
- * Returns the current gas price in wei as TinyBig
268
- * Same as `ethers.provider.getGasPrice`
229
+ * Gives an estimate of the current gas price in wei.
230
+ *
231
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getGasPrice`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getGasPrice) in ethers.js, does not have a parameter specifying what unit you'd like to return. See also [`weiToEther`](/docs/api/modules#weitoether) and [`etherToGwei`](/docs/api/modules#ethertogwei)
232
+ * * [Identical](/docs/api#isd) to [`web3.eth.getGasPrice`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getgasprice) in web3.js, returns a number (TinyBig) instead of a string
233
+ *
234
+ * @returns an estimate of the current gas price in wei
235
+ * @example
236
+ * ```javascript
237
+ * await provider.getGasPrice();
238
+ * // 52493941856
239
+ * ```
269
240
  */
270
241
  getGasPrice(): Promise<TinyBig>;
271
242
  /**
272
- * Returns the balance of the account in wei as TinyBig
273
- * * Same as [`ethers.provider.getBalance`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBalance)
274
- * * Same as `web3.eth.getBalance`
243
+ * Returns the balance of the account in wei.
275
244
  *
245
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getBalance`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBalance) in ethers.js
246
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBalance`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getbalance) in web3.js, returns a number (TinyBig) instead of a string
247
+ *
248
+ * @param address the address to check the balance of
249
+ * @param blockTag the block to check the specified address' balance on
250
+ * @returns the balance of the network's native token for the specified address on the specified block
276
251
  * @example
277
- * ```js
278
- * await provider
279
- * .getBalance('0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8')
280
- * .then((balance) => console.log(balance.toString()));
281
- * // "28798127851528138"
252
+ * ```javascript
253
+ * await provider.getBalance('0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8');
254
+ * // 28798127851528138
282
255
  * ```
283
256
  */
284
257
  getBalance(address: string, blockTag?: BlockTag): Promise<TinyBig>;
258
+ /**
259
+ * Gets the code of a contract on a specified block.
260
+ *
261
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getCode`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getCode) in ethers.js
262
+ * * [Identical](/docs/api#isd) to [`web3.eth.getCode`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getcode) in web3.js
263
+ *
264
+ * @param address the contract address to get the contract code from
265
+ * @param blockTag the block height to search for the contract code from. Contract code can change, so this allows for checking a specific block
266
+ * @returns the contract creation code for the specified address at the specified block height
267
+ * @example
268
+ * ```javascript
269
+ * await jsonRpcProvider().getCode('0xaC6095720221C79C6E7C638d260A2eFBC5D8d880', 'latest');
270
+ * // '0x608060405234801561001057600080fd5b506004361061...'
271
+ * ```
272
+ */
273
+ getCode(address: string, blockTag?: BlockTag): Promise<string>;
285
274
  /**
286
275
  * Returns an estimate of the amount of gas that would be required to submit transaction to the network.
287
- * An estimate may not be accurate since there could be another transaction on the network that was not accounted for, but after being mined affected relevant state.
276
+ * An estimate may not be accurate since there could be another transaction on the network that was not accounted for.
288
277
  *
289
- * * Same as ["estimateGas" in ethers.js](https://docs.ethers.io/v5/api/providers/provider/#Provider-estimateGas)
278
+ * * [Identical](/docs/api#isd) to [`ethers.provider.estimateGas`](https://docs.ethers.io/v5/api/providers/provider/#Provider-estimateGas) in ethers.js
279
+ * * [Identical](/docs/api#isd) to [`web3.eth.estimateGas`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#estimateGas) in web3.js
290
280
  *
281
+ * @param transaction the transaction to check the estimated gas cost for
282
+ * @returns the estimated amount of gas charged for submitting the specified transaction to the blockchain
291
283
  * @example
292
- * ```js
284
+ * ```javascript
293
285
  * await provider.estimateGas({
294
286
  * // Wrapped ETH address
295
287
  * to: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
@@ -297,8 +289,65 @@ export declare abstract class BaseProvider {
297
289
  * value: etherToWei('1.0').toHexString(),
298
290
  * });
299
291
  * // { TinyBig: "27938" }
300
- *
301
292
  * ```
302
- * */
293
+ */
303
294
  estimateGas(transaction: TransactionRequest): Promise<TinyBig>;
295
+ /**
296
+ * Returns transaction receipt event logs that match a specified filter.
297
+ * May return `[]` if parameters are too broad, even if logs exist.
298
+ *
299
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getLogs`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js
300
+ * * [Identical](/docs/api#isd) to [`web3.eth.getPastLogs`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
301
+ *
302
+ * @param filter parameters to filter the logs by
303
+ * @returns an array of logs matching the specified filter
304
+ * @example
305
+ * ```javascript
306
+ * provider.getLogs({
307
+ * address: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
308
+ * topics: [
309
+ * "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
310
+ * "0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e",
311
+ * ],
312
+ * fromBlock: 14825027,
313
+ * toBlock: 14825039,
314
+ * });
315
+ *
316
+ * [
317
+ * {
318
+ * address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
319
+ * blockHash: '0x8e0dfac2f704851960f866c8708b3bef2f66c0fee0329cf25ff0261b264ca6bc',
320
+ * blockNumber: 14825029,
321
+ * data: '0x000000000000000000000000000000000000000000000000005f862ee352a38a',
322
+ * logIndex: 384,
323
+ * removed: false,
324
+ * topics: [
325
+ * '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
326
+ * '0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e',
327
+ * '0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45'
328
+ * ],
329
+ * transactionHash: '0xbd49031be16f8fd1775f4e0fe79b408ffd8ae9c65b2827ee47e3238e3f51f4c0',
330
+ * transactionIndex: 226
331
+ * }
332
+ * ]
333
+ * ```
334
+ */
335
+ getLogs(filter: Filter | FilterByBlockHash): Promise<Array<Log>>;
336
+ /**
337
+ * Returns the result of adding a transaction to the blockchain without actually adding that transaction to the blockchain.
338
+ * Does not require any ether as gas.
339
+ *
340
+ * * [Identical](/docs/api#isd) to [`ethers.provider.call`](https://docs.ethers.io/v5/api/providers/provider/#Provider-call) in ethers.js
341
+ * * [Identical](/docs/api#isd) to [`web3.eth.call`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#call) in web3.js
342
+ *
343
+ * @param transaction the transaction object to, in theory, execute. Doesn't actually get added to the blockchain.
344
+ * @param blockTag the block to execute this transaction on
345
+ * @returns the result of executing the transaction on the specified block
346
+ * @example
347
+ * ```javascript
348
+ * await provider.call({ to: "0x6b175474e89094c44da98b954eedeac495271d0f", data: "0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE" });
349
+ * // '0x0000000000000000000000000000000000000000000000000858898f93629000'
350
+ * ```
351
+ */
352
+ call(transaction: TransactionRequest, blockTag?: BlockTag): Promise<string>;
304
353
  }