@across-protocol/sdk 3.1.28-beta.1 → 3.1.28

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 (103) hide show
  1. package/dist/cjs/clients/BundleDataClient/BundleDataClient.d.ts +1 -0
  2. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +11 -8
  3. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  4. package/dist/cjs/providers/alchemy.js +5 -5
  5. package/dist/cjs/providers/alchemy.js.map +1 -1
  6. package/dist/cjs/providers/drpc.d.ts +2 -0
  7. package/dist/cjs/providers/drpc.js +21 -0
  8. package/dist/cjs/providers/drpc.js.map +1 -0
  9. package/dist/cjs/providers/infura.js +5 -5
  10. package/dist/cjs/providers/infura.js.map +1 -1
  11. package/dist/cjs/providers/types.d.ts +1 -1
  12. package/dist/cjs/providers/utils.js +3 -1
  13. package/dist/cjs/providers/utils.js.map +1 -1
  14. package/dist/cjs/utils/Multicall.d.ts +3 -2
  15. package/dist/cjs/utils/Multicall.js +40 -41
  16. package/dist/cjs/utils/Multicall.js.map +1 -1
  17. package/dist/cjs/utils/abi/contracts/index.d.ts +1 -0
  18. package/dist/cjs/utils/abi/contracts/index.js +9 -0
  19. package/dist/cjs/utils/abi/contracts/index.js.map +1 -0
  20. package/dist/cjs/utils/abi/typechain/Multicall3.d.ts +289 -0
  21. package/dist/cjs/utils/abi/typechain/Multicall3.js +3 -0
  22. package/dist/cjs/utils/abi/typechain/Multicall3.js.map +1 -0
  23. package/dist/cjs/utils/abi/typechain/common.d.ts +21 -0
  24. package/dist/cjs/utils/abi/typechain/common.js +3 -0
  25. package/dist/cjs/utils/abi/typechain/common.js.map +1 -0
  26. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.d.ts +339 -0
  27. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +458 -0
  28. package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -0
  29. package/dist/cjs/utils/abi/typechain/factories/index.d.ts +1 -0
  30. package/dist/cjs/utils/abi/typechain/factories/index.js +6 -0
  31. package/dist/cjs/utils/abi/typechain/factories/index.js.map +1 -0
  32. package/dist/cjs/utils/abi/typechain/index.d.ts +3 -0
  33. package/dist/cjs/utils/abi/typechain/index.js +8 -0
  34. package/dist/cjs/utils/abi/typechain/index.js.map +1 -0
  35. package/dist/esm/clients/BundleDataClient/BundleDataClient.d.ts +1 -0
  36. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +16 -9
  37. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  38. package/dist/esm/providers/alchemy.js +6 -6
  39. package/dist/esm/providers/alchemy.js.map +1 -1
  40. package/dist/esm/providers/drpc.d.ts +2 -0
  41. package/dist/esm/providers/drpc.js +18 -0
  42. package/dist/esm/providers/drpc.js.map +1 -0
  43. package/dist/esm/providers/infura.js +6 -6
  44. package/dist/esm/providers/infura.js.map +1 -1
  45. package/dist/esm/providers/types.d.ts +1 -1
  46. package/dist/esm/providers/utils.js +3 -1
  47. package/dist/esm/providers/utils.js.map +1 -1
  48. package/dist/esm/utils/Multicall.d.ts +3 -2
  49. package/dist/esm/utils/Multicall.js +39 -42
  50. package/dist/esm/utils/Multicall.js.map +1 -1
  51. package/dist/esm/utils/abi/contracts/index.d.ts +1 -0
  52. package/dist/esm/utils/abi/contracts/index.js +2 -0
  53. package/dist/esm/utils/abi/contracts/index.js.map +1 -0
  54. package/dist/esm/utils/abi/typechain/Multicall3.d.ts +292 -0
  55. package/dist/esm/utils/abi/typechain/Multicall3.js +2 -0
  56. package/dist/esm/utils/abi/typechain/Multicall3.js.map +1 -0
  57. package/dist/esm/utils/abi/typechain/common.d.ts +21 -0
  58. package/dist/esm/utils/abi/typechain/common.js +2 -0
  59. package/dist/esm/utils/abi/typechain/common.js.map +1 -0
  60. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.d.ts +339 -0
  61. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +458 -0
  62. package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -0
  63. package/dist/esm/utils/abi/typechain/factories/index.d.ts +1 -0
  64. package/dist/esm/utils/abi/typechain/factories/index.js +5 -0
  65. package/dist/esm/utils/abi/typechain/factories/index.js.map +1 -0
  66. package/dist/esm/utils/abi/typechain/index.d.ts +3 -0
  67. package/dist/esm/utils/abi/typechain/index.js +4 -0
  68. package/dist/esm/utils/abi/typechain/index.js.map +1 -0
  69. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts +1 -0
  70. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  71. package/dist/types/providers/drpc.d.ts +3 -0
  72. package/dist/types/providers/drpc.d.ts.map +1 -0
  73. package/dist/types/providers/types.d.ts +1 -1
  74. package/dist/types/providers/types.d.ts.map +1 -1
  75. package/dist/types/providers/utils.d.ts.map +1 -1
  76. package/dist/types/utils/Multicall.d.ts +3 -2
  77. package/dist/types/utils/Multicall.d.ts.map +1 -1
  78. package/dist/types/utils/abi/contracts/index.d.ts +2 -0
  79. package/dist/types/utils/abi/contracts/index.d.ts.map +1 -0
  80. package/dist/types/utils/abi/typechain/Multicall3.d.ts +293 -0
  81. package/dist/types/utils/abi/typechain/Multicall3.d.ts.map +1 -0
  82. package/dist/types/utils/abi/typechain/common.d.ts +22 -0
  83. package/dist/types/utils/abi/typechain/common.d.ts.map +1 -0
  84. package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts +340 -0
  85. package/dist/types/utils/abi/typechain/factories/Multicall3__factory.d.ts.map +1 -0
  86. package/dist/types/utils/abi/typechain/factories/index.d.ts +2 -0
  87. package/dist/types/utils/abi/typechain/factories/index.d.ts.map +1 -0
  88. package/dist/types/utils/abi/typechain/index.d.ts +4 -0
  89. package/dist/types/utils/abi/typechain/index.d.ts.map +1 -0
  90. package/package.json +6 -8
  91. package/src/clients/BundleDataClient/BundleDataClient.ts +54 -40
  92. package/src/providers/alchemy.ts +6 -6
  93. package/src/providers/drpc.ts +19 -0
  94. package/src/providers/infura.ts +6 -6
  95. package/src/providers/types.ts +1 -1
  96. package/src/providers/utils.ts +3 -1
  97. package/src/utils/Multicall.ts +38 -30
  98. package/src/utils/abi/contracts/index.ts +1 -0
  99. package/src/utils/abi/typechain/Multicall3.ts +433 -0
  100. package/src/utils/abi/typechain/common.ts +30 -0
  101. package/src/utils/abi/typechain/factories/Multicall3__factory.ts +458 -0
  102. package/src/utils/abi/typechain/factories/index.ts +4 -0
  103. package/src/utils/abi/typechain/index.ts +6 -0
@@ -1,5 +1,6 @@
1
1
  import { BigNumber, Contract, providers, Signer, utils as ethersUtils } from "ethers";
2
- import { getABI } from "./abi";
2
+ import { CHAIN_IDs } from "@across-protocol/constants";
3
+ import { Multicall3, Multicall3__factory } from "./abi/typechain";
3
4
 
4
5
  type Provider = providers.Provider;
5
6
  type BlockTag = providers.BlockTag;
@@ -12,41 +13,48 @@ export type Call3 = {
12
13
  args?: any[];
13
14
  };
14
15
 
15
- // Multicall3 Constants:
16
- export const multicall3Addresses: Record<number, string> = {
17
- 1: "0xcA11bde05977b3631167028862bE2a173976CA11",
18
- 10: "0xcA11bde05977b3631167028862bE2a173976CA11",
19
- 137: "0xcA11bde05977b3631167028862bE2a173976CA11",
20
- 324: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
21
- 8453: "0xcA11bde05977b3631167028862bE2a173976CA11",
22
- 34443: "0xcA11bde05977b3631167028862bE2a173976CA11",
23
- 42161: "0xcA11bde05977b3631167028862bE2a173976CA11",
24
- 59144: "0xcA11bde05977b3631167028862bE2a173976CA11",
25
- 534352: "0xcA11bde05977b3631167028862bE2a173976CA11",
26
- // Testnets
27
- 5: "0xcA11bde05977b3631167028862bE2a173976CA11",
28
- 300: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
29
- 59140: "0xcA11bde05977b3631167028862bE2a173976CA11",
30
- 59141: "0xcA11bde05977b3631167028862bE2a173976CA11",
31
- 80002: "0xcA11bde05977b3631167028862bE2a173976CA11",
32
- 84531: "0xcA11bde05977b3631167028862bE2a173976CA11",
33
- 84532: "0xcA11bde05977b3631167028862bE2a173976CA11",
34
- 421613: "0xcA11bde05977b3631167028862bE2a173976CA11",
35
- 534351: "0xcA11bde05977b3631167028862bE2a173976CA11",
36
- 11155111: "0xcA11bde05977b3631167028862bE2a173976CA11",
37
- 11155420: "0xcA11bde05977b3631167028862bE2a173976CA11",
16
+ const DETERMINISTIC_MULTICALL_ADDRESS = "0xcA11bde05977b3631167028862bE2a173976CA11";
17
+
18
+ const NON_DETERMINISTIC_MULTICALL_ADDRESSES = {
19
+ [CHAIN_IDs.ZK_SYNC]: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
38
20
  };
39
21
 
40
- export async function getMulticall3(
41
- chainId: number,
42
- signerOrProvider?: Signer | Provider
43
- ): Promise<Contract | undefined> {
44
- const address = multicall3Addresses[chainId];
22
+ const DETERMINISTIC_MULTICALL_CHAINS = [
23
+ CHAIN_IDs.ARBITRUM,
24
+ CHAIN_IDs.BASE,
25
+ CHAIN_IDs.BLAST,
26
+ CHAIN_IDs.BOBA,
27
+ CHAIN_IDs.LINEA,
28
+ CHAIN_IDs.LISK,
29
+ CHAIN_IDs.MAINNET,
30
+ CHAIN_IDs.MODE,
31
+ CHAIN_IDs.OPTIMISM,
32
+ CHAIN_IDs.POLYGON,
33
+ CHAIN_IDs.REDSTONE,
34
+ CHAIN_IDs.SCROLL,
35
+ CHAIN_IDs.ZORA,
36
+ // Testnet:
37
+ CHAIN_IDs.BASE_SEPOLIA,
38
+ CHAIN_IDs.BLAST_SEPOLIA,
39
+ CHAIN_IDs.POLYGON_AMOY,
40
+ CHAIN_IDs.SCROLL_SEPOLIA,
41
+ CHAIN_IDs.SEPOLIA,
42
+ ];
43
+
44
+ export function getMulticallAddress(chainId: number): string | undefined {
45
+ if (DETERMINISTIC_MULTICALL_CHAINS.includes(chainId)) {
46
+ return DETERMINISTIC_MULTICALL_ADDRESS;
47
+ }
48
+ return NON_DETERMINISTIC_MULTICALL_ADDRESSES[chainId];
49
+ }
50
+
51
+ export function getMulticall3(chainId: number, signerOrProvider: Signer | Provider): Multicall3 | undefined {
52
+ const address = getMulticallAddress(chainId);
45
53
  if (!address) {
46
54
  return undefined;
47
55
  }
48
56
 
49
- return new Contract(address, await getABI("Multicall3"), signerOrProvider);
57
+ return Multicall3__factory.connect(address, signerOrProvider);
50
58
  }
51
59
 
52
60
  export async function aggregate(multicall3: Contract, calls: Call3[], blockTag?: BlockTag): Promise<Result[]> {
@@ -0,0 +1 @@
1
+ export { default as Multicall3Abi } from "./Multicall3.json";
@@ -0,0 +1,433 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ PayableOverrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import type { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import type { Listener, Provider } from "@ethersproject/providers";
18
+ import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
19
+
20
+ export declare namespace Multicall3 {
21
+ export type CallStruct = { target: string; callData: BytesLike };
22
+
23
+ export type CallStructOutput = [string, string] & {
24
+ target: string;
25
+ callData: string;
26
+ };
27
+
28
+ export type Call3Struct = {
29
+ target: string;
30
+ allowFailure: boolean;
31
+ callData: BytesLike;
32
+ };
33
+
34
+ export type Call3StructOutput = [string, boolean, string] & {
35
+ target: string;
36
+ allowFailure: boolean;
37
+ callData: string;
38
+ };
39
+
40
+ export type ResultStruct = { success: boolean; returnData: BytesLike };
41
+
42
+ export type ResultStructOutput = [boolean, string] & {
43
+ success: boolean;
44
+ returnData: string;
45
+ };
46
+
47
+ export type Call3ValueStruct = {
48
+ target: string;
49
+ allowFailure: boolean;
50
+ value: BigNumberish;
51
+ callData: BytesLike;
52
+ };
53
+
54
+ export type Call3ValueStructOutput = [string, boolean, BigNumber, string] & {
55
+ target: string;
56
+ allowFailure: boolean;
57
+ value: BigNumber;
58
+ callData: string;
59
+ };
60
+ }
61
+
62
+ export interface Multicall3Interface extends utils.Interface {
63
+ functions: {
64
+ "aggregate((address,bytes)[])": FunctionFragment;
65
+ "aggregate3((address,bool,bytes)[])": FunctionFragment;
66
+ "aggregate3Value((address,bool,uint256,bytes)[])": FunctionFragment;
67
+ "blockAndAggregate((address,bytes)[])": FunctionFragment;
68
+ "getBasefee()": FunctionFragment;
69
+ "getBlockHash(uint256)": FunctionFragment;
70
+ "getBlockNumber()": FunctionFragment;
71
+ "getChainId()": FunctionFragment;
72
+ "getCurrentBlockCoinbase()": FunctionFragment;
73
+ "getCurrentBlockDifficulty()": FunctionFragment;
74
+ "getCurrentBlockGasLimit()": FunctionFragment;
75
+ "getCurrentBlockTimestamp()": FunctionFragment;
76
+ "getEthBalance(address)": FunctionFragment;
77
+ "getLastBlockHash()": FunctionFragment;
78
+ "tryAggregate(bool,(address,bytes)[])": FunctionFragment;
79
+ "tryBlockAndAggregate(bool,(address,bytes)[])": FunctionFragment;
80
+ };
81
+
82
+ getFunction(
83
+ nameOrSignatureOrTopic:
84
+ | "aggregate"
85
+ | "aggregate3"
86
+ | "aggregate3Value"
87
+ | "blockAndAggregate"
88
+ | "getBasefee"
89
+ | "getBlockHash"
90
+ | "getBlockNumber"
91
+ | "getChainId"
92
+ | "getCurrentBlockCoinbase"
93
+ | "getCurrentBlockDifficulty"
94
+ | "getCurrentBlockGasLimit"
95
+ | "getCurrentBlockTimestamp"
96
+ | "getEthBalance"
97
+ | "getLastBlockHash"
98
+ | "tryAggregate"
99
+ | "tryBlockAndAggregate"
100
+ ): FunctionFragment;
101
+
102
+ encodeFunctionData(functionFragment: "aggregate", values: [Multicall3.CallStruct[]]): string;
103
+ encodeFunctionData(functionFragment: "aggregate3", values: [Multicall3.Call3Struct[]]): string;
104
+ encodeFunctionData(functionFragment: "aggregate3Value", values: [Multicall3.Call3ValueStruct[]]): string;
105
+ encodeFunctionData(functionFragment: "blockAndAggregate", values: [Multicall3.CallStruct[]]): string;
106
+ encodeFunctionData(functionFragment: "getBasefee", values?: undefined): string;
107
+ encodeFunctionData(functionFragment: "getBlockHash", values: [BigNumberish]): string;
108
+ encodeFunctionData(functionFragment: "getBlockNumber", values?: undefined): string;
109
+ encodeFunctionData(functionFragment: "getChainId", values?: undefined): string;
110
+ encodeFunctionData(functionFragment: "getCurrentBlockCoinbase", values?: undefined): string;
111
+ encodeFunctionData(functionFragment: "getCurrentBlockDifficulty", values?: undefined): string;
112
+ encodeFunctionData(functionFragment: "getCurrentBlockGasLimit", values?: undefined): string;
113
+ encodeFunctionData(functionFragment: "getCurrentBlockTimestamp", values?: undefined): string;
114
+ encodeFunctionData(functionFragment: "getEthBalance", values: [string]): string;
115
+ encodeFunctionData(functionFragment: "getLastBlockHash", values?: undefined): string;
116
+ encodeFunctionData(functionFragment: "tryAggregate", values: [boolean, Multicall3.CallStruct[]]): string;
117
+ encodeFunctionData(functionFragment: "tryBlockAndAggregate", values: [boolean, Multicall3.CallStruct[]]): string;
118
+
119
+ decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result;
120
+ decodeFunctionResult(functionFragment: "aggregate3", data: BytesLike): Result;
121
+ decodeFunctionResult(functionFragment: "aggregate3Value", data: BytesLike): Result;
122
+ decodeFunctionResult(functionFragment: "blockAndAggregate", data: BytesLike): Result;
123
+ decodeFunctionResult(functionFragment: "getBasefee", data: BytesLike): Result;
124
+ decodeFunctionResult(functionFragment: "getBlockHash", data: BytesLike): Result;
125
+ decodeFunctionResult(functionFragment: "getBlockNumber", data: BytesLike): Result;
126
+ decodeFunctionResult(functionFragment: "getChainId", data: BytesLike): Result;
127
+ decodeFunctionResult(functionFragment: "getCurrentBlockCoinbase", data: BytesLike): Result;
128
+ decodeFunctionResult(functionFragment: "getCurrentBlockDifficulty", data: BytesLike): Result;
129
+ decodeFunctionResult(functionFragment: "getCurrentBlockGasLimit", data: BytesLike): Result;
130
+ decodeFunctionResult(functionFragment: "getCurrentBlockTimestamp", data: BytesLike): Result;
131
+ decodeFunctionResult(functionFragment: "getEthBalance", data: BytesLike): Result;
132
+ decodeFunctionResult(functionFragment: "getLastBlockHash", data: BytesLike): Result;
133
+ decodeFunctionResult(functionFragment: "tryAggregate", data: BytesLike): Result;
134
+ decodeFunctionResult(functionFragment: "tryBlockAndAggregate", data: BytesLike): Result;
135
+
136
+ events: {};
137
+ }
138
+
139
+ export interface Multicall3 extends BaseContract {
140
+ connect(signerOrProvider: Signer | Provider | string): this;
141
+ attach(addressOrName: string): this;
142
+ deployed(): Promise<this>;
143
+
144
+ interface: Multicall3Interface;
145
+
146
+ queryFilter<TEvent extends TypedEvent>(
147
+ event: TypedEventFilter<TEvent>,
148
+ fromBlockOrBlockhash?: string | number | undefined,
149
+ toBlock?: string | number | undefined
150
+ ): Promise<Array<TEvent>>;
151
+
152
+ listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
153
+ listeners(eventName?: string): Array<Listener>;
154
+ removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
155
+ removeAllListeners(eventName?: string): this;
156
+ off: OnEvent<this>;
157
+ on: OnEvent<this>;
158
+ once: OnEvent<this>;
159
+ removeListener: OnEvent<this>;
160
+
161
+ functions: {
162
+ aggregate(
163
+ calls: Multicall3.CallStruct[],
164
+ overrides?: PayableOverrides & { from?: string }
165
+ ): Promise<ContractTransaction>;
166
+
167
+ aggregate3(
168
+ calls: Multicall3.Call3Struct[],
169
+ overrides?: PayableOverrides & { from?: string }
170
+ ): Promise<ContractTransaction>;
171
+
172
+ aggregate3Value(
173
+ calls: Multicall3.Call3ValueStruct[],
174
+ overrides?: PayableOverrides & { from?: string }
175
+ ): Promise<ContractTransaction>;
176
+
177
+ blockAndAggregate(
178
+ calls: Multicall3.CallStruct[],
179
+ overrides?: PayableOverrides & { from?: string }
180
+ ): Promise<ContractTransaction>;
181
+
182
+ getBasefee(overrides?: CallOverrides): Promise<[BigNumber] & { basefee: BigNumber }>;
183
+
184
+ getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<[string] & { blockHash: string }>;
185
+
186
+ getBlockNumber(overrides?: CallOverrides): Promise<[BigNumber] & { blockNumber: BigNumber }>;
187
+
188
+ getChainId(overrides?: CallOverrides): Promise<[BigNumber] & { chainid: BigNumber }>;
189
+
190
+ getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<[string] & { coinbase: string }>;
191
+
192
+ getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<[BigNumber] & { difficulty: BigNumber }>;
193
+
194
+ getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<[BigNumber] & { gaslimit: BigNumber }>;
195
+
196
+ getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<[BigNumber] & { timestamp: BigNumber }>;
197
+
198
+ getEthBalance(addr: string, overrides?: CallOverrides): Promise<[BigNumber] & { balance: BigNumber }>;
199
+
200
+ getLastBlockHash(overrides?: CallOverrides): Promise<[string] & { blockHash: string }>;
201
+
202
+ tryAggregate(
203
+ requireSuccess: boolean,
204
+ calls: Multicall3.CallStruct[],
205
+ overrides?: PayableOverrides & { from?: string }
206
+ ): Promise<ContractTransaction>;
207
+
208
+ tryBlockAndAggregate(
209
+ requireSuccess: boolean,
210
+ calls: Multicall3.CallStruct[],
211
+ overrides?: PayableOverrides & { from?: string }
212
+ ): Promise<ContractTransaction>;
213
+ };
214
+
215
+ aggregate(
216
+ calls: Multicall3.CallStruct[],
217
+ overrides?: PayableOverrides & { from?: string }
218
+ ): Promise<ContractTransaction>;
219
+
220
+ aggregate3(
221
+ calls: Multicall3.Call3Struct[],
222
+ overrides?: PayableOverrides & { from?: string }
223
+ ): Promise<ContractTransaction>;
224
+
225
+ aggregate3Value(
226
+ calls: Multicall3.Call3ValueStruct[],
227
+ overrides?: PayableOverrides & { from?: string }
228
+ ): Promise<ContractTransaction>;
229
+
230
+ blockAndAggregate(
231
+ calls: Multicall3.CallStruct[],
232
+ overrides?: PayableOverrides & { from?: string }
233
+ ): Promise<ContractTransaction>;
234
+
235
+ getBasefee(overrides?: CallOverrides): Promise<BigNumber>;
236
+
237
+ getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<string>;
238
+
239
+ getBlockNumber(overrides?: CallOverrides): Promise<BigNumber>;
240
+
241
+ getChainId(overrides?: CallOverrides): Promise<BigNumber>;
242
+
243
+ getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<string>;
244
+
245
+ getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<BigNumber>;
246
+
247
+ getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<BigNumber>;
248
+
249
+ getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
250
+
251
+ getEthBalance(addr: string, overrides?: CallOverrides): Promise<BigNumber>;
252
+
253
+ getLastBlockHash(overrides?: CallOverrides): Promise<string>;
254
+
255
+ tryAggregate(
256
+ requireSuccess: boolean,
257
+ calls: Multicall3.CallStruct[],
258
+ overrides?: PayableOverrides & { from?: string }
259
+ ): Promise<ContractTransaction>;
260
+
261
+ tryBlockAndAggregate(
262
+ requireSuccess: boolean,
263
+ calls: Multicall3.CallStruct[],
264
+ overrides?: PayableOverrides & { from?: string }
265
+ ): Promise<ContractTransaction>;
266
+
267
+ callStatic: {
268
+ aggregate(
269
+ calls: Multicall3.CallStruct[],
270
+ overrides?: CallOverrides
271
+ ): Promise<[BigNumber, string[]] & { blockNumber: BigNumber; returnData: string[] }>;
272
+
273
+ aggregate3(calls: Multicall3.Call3Struct[], overrides?: CallOverrides): Promise<Multicall3.ResultStructOutput[]>;
274
+
275
+ aggregate3Value(
276
+ calls: Multicall3.Call3ValueStruct[],
277
+ overrides?: CallOverrides
278
+ ): Promise<Multicall3.ResultStructOutput[]>;
279
+
280
+ blockAndAggregate(
281
+ calls: Multicall3.CallStruct[],
282
+ overrides?: CallOverrides
283
+ ): Promise<
284
+ [BigNumber, string, Multicall3.ResultStructOutput[]] & {
285
+ blockNumber: BigNumber;
286
+ blockHash: string;
287
+ returnData: Multicall3.ResultStructOutput[];
288
+ }
289
+ >;
290
+
291
+ getBasefee(overrides?: CallOverrides): Promise<BigNumber>;
292
+
293
+ getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<string>;
294
+
295
+ getBlockNumber(overrides?: CallOverrides): Promise<BigNumber>;
296
+
297
+ getChainId(overrides?: CallOverrides): Promise<BigNumber>;
298
+
299
+ getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<string>;
300
+
301
+ getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<BigNumber>;
302
+
303
+ getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<BigNumber>;
304
+
305
+ getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
306
+
307
+ getEthBalance(addr: string, overrides?: CallOverrides): Promise<BigNumber>;
308
+
309
+ getLastBlockHash(overrides?: CallOverrides): Promise<string>;
310
+
311
+ tryAggregate(
312
+ requireSuccess: boolean,
313
+ calls: Multicall3.CallStruct[],
314
+ overrides?: CallOverrides
315
+ ): Promise<Multicall3.ResultStructOutput[]>;
316
+
317
+ tryBlockAndAggregate(
318
+ requireSuccess: boolean,
319
+ calls: Multicall3.CallStruct[],
320
+ overrides?: CallOverrides
321
+ ): Promise<
322
+ [BigNumber, string, Multicall3.ResultStructOutput[]] & {
323
+ blockNumber: BigNumber;
324
+ blockHash: string;
325
+ returnData: Multicall3.ResultStructOutput[];
326
+ }
327
+ >;
328
+ };
329
+
330
+ filters: {};
331
+
332
+ estimateGas: {
333
+ aggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string }): Promise<BigNumber>;
334
+
335
+ aggregate3(calls: Multicall3.Call3Struct[], overrides?: PayableOverrides & { from?: string }): Promise<BigNumber>;
336
+
337
+ aggregate3Value(
338
+ calls: Multicall3.Call3ValueStruct[],
339
+ overrides?: PayableOverrides & { from?: string }
340
+ ): Promise<BigNumber>;
341
+
342
+ blockAndAggregate(
343
+ calls: Multicall3.CallStruct[],
344
+ overrides?: PayableOverrides & { from?: string }
345
+ ): Promise<BigNumber>;
346
+
347
+ getBasefee(overrides?: CallOverrides): Promise<BigNumber>;
348
+
349
+ getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
350
+
351
+ getBlockNumber(overrides?: CallOverrides): Promise<BigNumber>;
352
+
353
+ getChainId(overrides?: CallOverrides): Promise<BigNumber>;
354
+
355
+ getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<BigNumber>;
356
+
357
+ getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<BigNumber>;
358
+
359
+ getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<BigNumber>;
360
+
361
+ getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<BigNumber>;
362
+
363
+ getEthBalance(addr: string, overrides?: CallOverrides): Promise<BigNumber>;
364
+
365
+ getLastBlockHash(overrides?: CallOverrides): Promise<BigNumber>;
366
+
367
+ tryAggregate(
368
+ requireSuccess: boolean,
369
+ calls: Multicall3.CallStruct[],
370
+ overrides?: PayableOverrides & { from?: string }
371
+ ): Promise<BigNumber>;
372
+
373
+ tryBlockAndAggregate(
374
+ requireSuccess: boolean,
375
+ calls: Multicall3.CallStruct[],
376
+ overrides?: PayableOverrides & { from?: string }
377
+ ): Promise<BigNumber>;
378
+ };
379
+
380
+ populateTransaction: {
381
+ aggregate(
382
+ calls: Multicall3.CallStruct[],
383
+ overrides?: PayableOverrides & { from?: string }
384
+ ): Promise<PopulatedTransaction>;
385
+
386
+ aggregate3(
387
+ calls: Multicall3.Call3Struct[],
388
+ overrides?: PayableOverrides & { from?: string }
389
+ ): Promise<PopulatedTransaction>;
390
+
391
+ aggregate3Value(
392
+ calls: Multicall3.Call3ValueStruct[],
393
+ overrides?: PayableOverrides & { from?: string }
394
+ ): Promise<PopulatedTransaction>;
395
+
396
+ blockAndAggregate(
397
+ calls: Multicall3.CallStruct[],
398
+ overrides?: PayableOverrides & { from?: string }
399
+ ): Promise<PopulatedTransaction>;
400
+
401
+ getBasefee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
402
+
403
+ getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
404
+
405
+ getBlockNumber(overrides?: CallOverrides): Promise<PopulatedTransaction>;
406
+
407
+ getChainId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
408
+
409
+ getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<PopulatedTransaction>;
410
+
411
+ getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<PopulatedTransaction>;
412
+
413
+ getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<PopulatedTransaction>;
414
+
415
+ getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<PopulatedTransaction>;
416
+
417
+ getEthBalance(addr: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
418
+
419
+ getLastBlockHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
420
+
421
+ tryAggregate(
422
+ requireSuccess: boolean,
423
+ calls: Multicall3.CallStruct[],
424
+ overrides?: PayableOverrides & { from?: string }
425
+ ): Promise<PopulatedTransaction>;
426
+
427
+ tryBlockAndAggregate(
428
+ requireSuccess: boolean,
429
+ calls: Multicall3.CallStruct[],
430
+ overrides?: PayableOverrides & { from?: string }
431
+ ): Promise<PopulatedTransaction>;
432
+ };
433
+ }
@@ -0,0 +1,30 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type { Listener } from "@ethersproject/providers";
5
+ import type { Event, EventFilter } from "ethers";
6
+
7
+ export interface TypedEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends Event {
8
+ args: TArgsArray & TArgsObject;
9
+ }
10
+
11
+ export interface TypedEventFilter<_TEvent extends TypedEvent> extends EventFilter {}
12
+
13
+ export interface TypedListener<TEvent extends TypedEvent> {
14
+ (...listenerArg: [...__TypechainArgsArray<TEvent>, TEvent]): void;
15
+ }
16
+
17
+ type __TypechainArgsArray<T> = T extends TypedEvent<infer U> ? U : never;
18
+
19
+ export interface OnEvent<TRes> {
20
+ <TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>, listener: TypedListener<TEvent>): TRes;
21
+ (eventName: string, listener: Listener): TRes;
22
+ }
23
+
24
+ export type MinEthersFactory<C, ARGS> = {
25
+ deploy(...a: ARGS[]): Promise<C>;
26
+ };
27
+
28
+ export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<infer C, any> ? C : never;
29
+
30
+ export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any> ? Parameters<F["deploy"]> : never;