@hyperlane-xyz/sdk 41.1.0 → 41.2.0

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 (124) hide show
  1. package/dist/block-explorer/etherscan.d.ts +16 -0
  2. package/dist/block-explorer/etherscan.d.ts.map +1 -1
  3. package/dist/block-explorer/etherscan.js +42 -30
  4. package/dist/block-explorer/etherscan.js.map +1 -1
  5. package/dist/core/types.d.ts +136 -0
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/deploy/proxy.d.ts +41 -4
  8. package/dist/deploy/proxy.d.ts.map +1 -1
  9. package/dist/deploy/proxy.js +38 -8
  10. package/dist/deploy/proxy.js.map +1 -1
  11. package/dist/deploy/warp.d.ts.map +1 -1
  12. package/dist/deploy/warp.js +18 -1
  13. package/dist/deploy/warp.js.map +1 -1
  14. package/dist/ica/types.d.ts +80 -0
  15. package/dist/ica/types.d.ts.map +1 -1
  16. package/dist/ism/EvmIsmModule.d.ts +2 -0
  17. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  18. package/dist/ism/EvmIsmModule.hardhat-test.js +162 -9
  19. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  20. package/dist/ism/EvmIsmModule.js +35 -8
  21. package/dist/ism/EvmIsmModule.js.map +1 -1
  22. package/dist/ism/EvmIsmModule.test.d.ts +2 -0
  23. package/dist/ism/EvmIsmModule.test.d.ts.map +1 -0
  24. package/dist/ism/EvmIsmModule.test.js +200 -0
  25. package/dist/ism/EvmIsmModule.test.js.map +1 -0
  26. package/dist/ism/EvmIsmReader.d.ts +12 -0
  27. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  28. package/dist/ism/EvmIsmReader.js +29 -12
  29. package/dist/ism/EvmIsmReader.js.map +1 -1
  30. package/dist/ism/EvmIsmReader.test.js +227 -8
  31. package/dist/ism/EvmIsmReader.test.js.map +1 -1
  32. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  33. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +166 -2
  34. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  35. package/dist/ism/HyperlaneIsmFactory.js +3 -2
  36. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  37. package/dist/ism/blacklist.d.ts +62 -0
  38. package/dist/ism/blacklist.d.ts.map +1 -0
  39. package/dist/ism/blacklist.js +98 -0
  40. package/dist/ism/blacklist.js.map +1 -0
  41. package/dist/ism/types.test.js +20 -1
  42. package/dist/ism/types.test.js.map +1 -1
  43. package/dist/ism/utils.d.ts.map +1 -1
  44. package/dist/ism/utils.js +26 -8
  45. package/dist/ism/utils.js.map +1 -1
  46. package/dist/metadata/ChainMetadataManager.d.ts +6 -0
  47. package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
  48. package/dist/metadata/ChainMetadataManager.js +21 -16
  49. package/dist/metadata/ChainMetadataManager.js.map +1 -1
  50. package/dist/metadata/ChainMetadataManager.test.js +30 -0
  51. package/dist/metadata/ChainMetadataManager.test.js.map +1 -1
  52. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.d.ts.map +1 -1
  53. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js +21 -6
  54. package/dist/providers/SmartProvider/HyperlaneEtherscanProvider.js.map +1 -1
  55. package/dist/providers/SmartProvider/SmartProvider.d.ts +4 -0
  56. package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
  57. package/dist/providers/SmartProvider/SmartProvider.js +1 -1
  58. package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
  59. package/dist/providers/SmartProvider/SmartProvider.test.js +82 -0
  60. package/dist/providers/SmartProvider/SmartProvider.test.js.map +1 -1
  61. package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
  62. package/dist/router/ProxiedRouterDeployer.js +9 -0
  63. package/dist/router/ProxiedRouterDeployer.js.map +1 -1
  64. package/dist/router/types.d.ts +80 -0
  65. package/dist/router/types.d.ts.map +1 -1
  66. package/dist/router/types.js +4 -1
  67. package/dist/router/types.js.map +1 -1
  68. package/dist/router/types.test.js +76 -0
  69. package/dist/router/types.test.js.map +1 -1
  70. package/dist/rpc/evm/EvmEventLogsReader.d.ts +14 -0
  71. package/dist/rpc/evm/EvmEventLogsReader.d.ts.map +1 -1
  72. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js +209 -3
  73. package/dist/rpc/evm/EvmEventLogsReader.hardhat-test.js.map +1 -1
  74. package/dist/rpc/evm/EvmEventLogsReader.js +96 -11
  75. package/dist/rpc/evm/EvmEventLogsReader.js.map +1 -1
  76. package/dist/rpc/evm/utils.d.ts +7 -11
  77. package/dist/rpc/evm/utils.d.ts.map +1 -1
  78. package/dist/rpc/evm/utils.hardhat-test.js +34 -9
  79. package/dist/rpc/evm/utils.hardhat-test.js.map +1 -1
  80. package/dist/rpc/evm/utils.js +10 -20
  81. package/dist/rpc/evm/utils.js.map +1 -1
  82. package/dist/test/contractDouble.d.ts +8 -0
  83. package/dist/test/contractDouble.d.ts.map +1 -0
  84. package/dist/test/contractDouble.js +12 -0
  85. package/dist/test/contractDouble.js.map +1 -0
  86. package/dist/timelock/evm/constants.d.ts +1 -0
  87. package/dist/timelock/evm/constants.d.ts.map +1 -1
  88. package/dist/timelock/evm/constants.js +1 -0
  89. package/dist/timelock/evm/constants.js.map +1 -1
  90. package/dist/timelock/evm/errors.d.ts +2 -0
  91. package/dist/timelock/evm/errors.d.ts.map +1 -0
  92. package/dist/timelock/evm/errors.js +19 -0
  93. package/dist/timelock/evm/errors.js.map +1 -0
  94. package/dist/timelock/evm/errors.test.d.ts +2 -0
  95. package/dist/timelock/evm/errors.test.d.ts.map +1 -0
  96. package/dist/timelock/evm/errors.test.js +33 -0
  97. package/dist/timelock/evm/errors.test.js.map +1 -0
  98. package/dist/token/EvmWarpModule.d.ts +13 -0
  99. package/dist/token/EvmWarpModule.d.ts.map +1 -1
  100. package/dist/token/EvmWarpModule.hardhat-test.js +35 -0
  101. package/dist/token/EvmWarpModule.hardhat-test.js.map +1 -1
  102. package/dist/token/EvmWarpModule.js +99 -2
  103. package/dist/token/EvmWarpModule.js.map +1 -1
  104. package/dist/token/EvmWarpModule.test.js +232 -8
  105. package/dist/token/EvmWarpModule.test.js.map +1 -1
  106. package/dist/token/configUtils.d.ts.map +1 -1
  107. package/dist/token/configUtils.js +2 -0
  108. package/dist/token/configUtils.js.map +1 -1
  109. package/dist/token/deploy.d.ts +1 -0
  110. package/dist/token/deploy.d.ts.map +1 -1
  111. package/dist/token/deploy.js +8 -1
  112. package/dist/token/deploy.js.map +1 -1
  113. package/dist/token/types.d.ts +6146 -2899
  114. package/dist/token/types.d.ts.map +1 -1
  115. package/dist/token/types.js +20 -3
  116. package/dist/token/types.js.map +1 -1
  117. package/dist/token/types.test.js +21 -0
  118. package/dist/token/types.test.js.map +1 -1
  119. package/dist/token/warpCheck.d.ts.map +1 -1
  120. package/dist/token/warpCheck.js +88 -2
  121. package/dist/token/warpCheck.js.map +1 -1
  122. package/dist/token/warpCheck.test.js +101 -1
  123. package/dist/token/warpCheck.test.js.map +1 -1
  124. package/package.json +11 -11
@@ -11,6 +11,15 @@ export const GetLogByTopicOptionsSchema = z.object({
11
11
  toBlock: ZUint.optional(),
12
12
  });
13
13
  export const RequiredGetLogByTopicOptionsSchema = GetLogByTopicOptionsSchema.required();
14
+ function assertLogsMatchQuery(logs, query) {
15
+ const expectedAddress = query.contractAddress.toLowerCase();
16
+ const expectedTopic = query.eventTopic.toLowerCase();
17
+ for (const log of logs) {
18
+ assert(log.address.toLowerCase() === expectedAddress, `Log address ${log.address} does not match requested contract ${query.contractAddress}`);
19
+ assert(log.topics[0]?.toLowerCase() === expectedTopic, `Log topic does not match requested topic ${query.eventTopic}`);
20
+ assert(log.blockNumber >= query.fromBlock && log.blockNumber <= query.toBlock, `Log block ${log.blockNumber} is outside requested range ${query.fromBlock}-${query.toBlock}`);
21
+ }
22
+ }
14
23
  export class EvmEtherscanLikeEventLogsReader {
15
24
  chain;
16
25
  config;
@@ -69,6 +78,55 @@ export class EvmRpcEventLogsReader {
69
78
  });
70
79
  }
71
80
  }
81
+ class ExplorerFallbackError extends Error {
82
+ errors;
83
+ isRecoverable;
84
+ constructor(chain, errors) {
85
+ super(`All configured block explorers failed on chain "${chain}"`, {
86
+ cause: errors.at(-1),
87
+ });
88
+ this.errors = errors;
89
+ this.isRecoverable = errors.every((error) => typeof error === 'object' &&
90
+ error !== null &&
91
+ Reflect.get(error, 'isRecoverable') === false)
92
+ ? false
93
+ : undefined;
94
+ }
95
+ }
96
+ export class FallbackEvmEventLogsReader {
97
+ chain;
98
+ readers;
99
+ logger;
100
+ config;
101
+ constructor(chain, readers, logger, config = {}) {
102
+ this.chain = chain;
103
+ this.readers = readers;
104
+ this.logger = logger;
105
+ this.config = config;
106
+ assert(readers.length > 0, 'At least one explorer reader is required');
107
+ }
108
+ async executeWithFallback(operation, fallbackEnabled) {
109
+ if (!fallbackEnabled)
110
+ return operation(this.readers[0]);
111
+ const errors = [];
112
+ for (const [explorerIndex, reader] of this.readers.entries()) {
113
+ try {
114
+ return await operation(reader);
115
+ }
116
+ catch (error) {
117
+ errors.push(error);
118
+ this.logger.debug({ err: error, explorerIndex }, `Block explorer request failed on chain "${this.chain}"`);
119
+ }
120
+ }
121
+ throw new ExplorerFallbackError(this.chain, errors);
122
+ }
123
+ getContractDeploymentBlockNumber(address) {
124
+ return this.executeWithFallback((reader) => reader.getContractDeploymentBlockNumber(address), this.config.getContractDeploymentBlockNumber ?? true);
125
+ }
126
+ getContractLogs(options) {
127
+ return this.executeWithFallback((reader) => reader.getContractLogs(options), this.config.getContractLogs ?? true);
128
+ }
129
+ }
72
130
  export class EvmEventLogsReader {
73
131
  config;
74
132
  multiProvider;
@@ -76,6 +134,7 @@ export class EvmEventLogsReader {
76
134
  logger;
77
135
  fallbackLogReaderStrategy;
78
136
  deploymentBlockCache = new Map();
137
+ explorerDeploymentBlockCache = new Map();
79
138
  constructor(config, multiProvider, logReaderStrategy, logger, fallbackLogReaderStrategy) {
80
139
  this.config = config;
81
140
  this.multiProvider = multiProvider;
@@ -86,11 +145,14 @@ export class EvmEventLogsReader {
86
145
  static fromConfig(config, multiProvider, logger = rootLogger.child({
87
146
  module: EvmEventLogsReader.name,
88
147
  })) {
89
- const explorer = multiProvider.tryGetEvmExplorerMetadata(config.chain);
148
+ const explorers = config.useRPC
149
+ ? []
150
+ : multiProvider.tryGetEvmExplorerMetadataList(config.chain);
151
+ const explorerReaders = explorers.map((explorer) => new EvmEtherscanLikeEventLogsReader(config.chain, explorer, multiProvider));
90
152
  let logReaderStrategy;
91
153
  let fallbackLogReaderSrategy;
92
- if (explorer && !config.useRPC) {
93
- logReaderStrategy = new EvmEtherscanLikeEventLogsReader(config.chain, explorer, multiProvider);
154
+ if (explorerReaders.length > 0) {
155
+ logReaderStrategy = new FallbackEvmEventLogsReader(config.chain, explorerReaders, logger, config.explorerFallback);
94
156
  fallbackLogReaderSrategy = new EvmRpcEventLogsReader(config.chain, { paginationBlockRange: config.paginationBlockRange }, multiProvider);
95
157
  }
96
158
  else {
@@ -98,20 +160,39 @@ export class EvmEventLogsReader {
98
160
  }
99
161
  return new EvmEventLogsReader(config, multiProvider, logReaderStrategy, logger, fallbackLogReaderSrategy);
100
162
  }
163
+ async getContractDeploymentBlockFromExplorer(contractAddress) {
164
+ const explorerReader = this.logReaderStrategy;
165
+ assert(explorerReader instanceof FallbackEvmEventLogsReader, `No block explorer is configured for chain ${this.config.chain}`);
166
+ const cached = this.explorerDeploymentBlockCache.get(contractAddress);
167
+ if (!isNullish(cached))
168
+ return cached;
169
+ // Do not use deploymentBlockCache here: an earlier read may have populated
170
+ // it from RPC bisection after an explorer failure.
171
+ const block = await retryAsync(() => explorerReader.getContractDeploymentBlockNumber(contractAddress));
172
+ this.explorerDeploymentBlockCache.set(contractAddress, block);
173
+ this.deploymentBlockCache.set(contractAddress, block);
174
+ return block;
175
+ }
101
176
  async getLogsByTopic(options) {
177
+ const parsedOptions = GetLogByTopicOptionsSchema.parse(options);
102
178
  const provider = this.multiProvider.getProvider(this.config.chain);
103
- await assertIsContractAddress(this.multiProvider, this.config.chain, options.contractAddress);
179
+ await assertIsContractAddress(this.multiProvider, this.config.chain, parsedOptions.contractAddress);
180
+ // Every retry and fallback must answer the same block range.
181
+ const resolvedOptions = {
182
+ ...parsedOptions,
183
+ toBlock: parsedOptions.toBlock ?? (await provider.getBlockNumber()),
184
+ };
104
185
  try {
105
186
  // Retry the primary strategy with exponential backoff to handle
106
187
  // transient failures like explorer rate limits
107
- return await retryAsync(() => this.getLogsByTopicWithStrategy(options, provider, this.logReaderStrategy));
188
+ return await retryAsync(() => this.getLogsByTopicWithStrategy(resolvedOptions, this.logReaderStrategy));
108
189
  }
109
190
  catch (err) {
110
191
  if (!this.fallbackLogReaderStrategy) {
111
192
  throw err;
112
193
  }
113
194
  this.logger.debug(`Failed to read logs on chain "${this.config.chain}": ${err}. Falling back to using the RPC`);
114
- return this.getLogsByTopicWithStrategy(options, provider, this.fallbackLogReaderStrategy);
195
+ return this.getLogsByTopicWithStrategy(resolvedOptions, this.fallbackLogReaderStrategy);
115
196
  }
116
197
  }
117
198
  async getDeploymentBlock(contractAddress, logReaderStrategy) {
@@ -122,17 +203,21 @@ export class EvmEventLogsReader {
122
203
  this.deploymentBlockCache.set(contractAddress, block);
123
204
  return block;
124
205
  }
125
- async getLogsByTopicWithStrategy(options, provider, logReaderStrategy) {
206
+ async getLogsByTopicWithStrategy(options, logReaderStrategy) {
126
207
  const parsedOptions = GetLogByTopicOptionsSchema.parse(options);
127
208
  const fromBlock = parsedOptions.fromBlock ??
128
209
  (await this.getDeploymentBlock(parsedOptions.contractAddress, logReaderStrategy));
129
- const toBlock = parsedOptions.toBlock ?? (await provider.getBlockNumber());
130
- return logReaderStrategy.getContractLogs({
210
+ assert(!isNullish(parsedOptions.toBlock), 'Expected the log range end to be resolved');
211
+ assert(fromBlock <= parsedOptions.toBlock, `Log range start ${fromBlock} exceeds end ${parsedOptions.toBlock}`);
212
+ const resolvedOptions = {
131
213
  contractAddress: parsedOptions.contractAddress,
132
214
  eventTopic: parsedOptions.eventTopic,
133
215
  fromBlock,
134
- toBlock,
135
- });
216
+ toBlock: parsedOptions.toBlock,
217
+ };
218
+ const logs = await logReaderStrategy.getContractLogs(resolvedOptions);
219
+ assertLogsMatchQuery(logs, resolvedOptions);
220
+ return logs;
136
221
  }
137
222
  }
138
223
  //# sourceMappingURL=EvmEventLogsReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EvmEventLogsReader.js","sourceRoot":"","sources":["../../../src/rpc/evm/EvmEventLogsReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EvmEventLogsReader.js","sourceRoot":"","sources":["../../../src/rpc/evm/EvmEventLogsReader.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,15 @@ import { ChainNameOrId } from '../../types.js';
5
5
  import { GetEventLogsResponse } from './types.js';
6
6
  /**
7
7
  * Finds the block a contract was deployed in by bisecting `eth_getCode` over
8
- * the chain's history, falling back to the genesis block where the endpoint
9
- * cannot serve the state of a past block.
8
+ * the chain's history.
10
9
  *
11
10
  * Every probe but the last few is a request for archive state, which an
12
- * endpoint that prunes answers in one of two ways. Either it fails the probe,
13
- * which is what the fallback below reads as "this endpoint cannot place the
14
- * deployment", or it reports no code at a height where the contract did exist.
15
- * The second is indistinguishable from a genuine pre-deployment answer on a
16
- * single probe, so nothing here detects it, and the search then converges on a
17
- * block after the deployment and a scan started there silently omits the events
18
- * below it. The reliable source of a deployment block is therefore the
19
- * explorer's getcontractcreation response, and this search is what is left
20
- * where there is no explorer.
11
+ * endpoint that prunes answers in one of two ways. If it fails the probe, this
12
+ * lookup fails rather than widening the subsequent log scan to genesis. If it
13
+ * reports no code at a height where the contract did exist, that successful
14
+ * response is indistinguishable from a genuine pre-deployment answer. Like any
15
+ * other RPC read, this search therefore assumes a successful response describes
16
+ * the requested block correctly.
21
17
  */
22
18
  export declare function getContractCreationBlockFromRpc(chain: ChainNameOrId, contractAddress: Address, multiProvider: MultiProvider): Promise<number>;
23
19
  export type GetLogsFromRpcOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/rpc/evm/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAqBlD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,OAAO,EACxB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAwJF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBzD;AAED,wBAAsB,cAAc,CAAC,EACnC,KAAK,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAA0C,GAC3C,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA4GzD;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,oBAAoB,GACxB,GAAG,CAYL"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/rpc/evm/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBlD;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,aAAa,EACpB,eAAe,EAAE,OAAO,EACxB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAwJF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBzD;AAED,wBAAsB,cAAc,CAAC,EACnC,KAAK,EACL,eAAe,EACf,aAAa,EACb,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAA0C,GAC3C,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA4GzD;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,oBAAoB,GACxB,GAAG,CAYL"}
@@ -56,15 +56,16 @@ describe('RPC Utils', () => {
56
56
  const contractCode = await providerChainTest1.getCode(testContract.address);
57
57
  expect(contractCode).not.to.equal('0x');
58
58
  });
59
- // A pruned endpoint holds the state of the last few hundred blocks and
60
- // errors below that, so there is no history for the bisection to search
61
- // even though the same endpoint still serves the logs of those blocks.
62
- it('should start from the genesis block when the endpoint cannot serve historical state', async () => {
59
+ // A pruned endpoint can still serve logs while lacking the historical state
60
+ // the deployment search needs. That observable failure must stop the read;
61
+ // scanning from genesis can take an infeasible number of requests.
62
+ it('should fail when the endpoint cannot serve historical state', async () => {
63
63
  await mineRandomNumberOfBlocks();
64
64
  await deployTestErc20();
65
65
  await mineRandomNumberOfBlocks();
66
66
  const provider = multiProvider.getProvider(TestChainName.test1);
67
67
  const codeAtHead = provider.getCode.bind(provider);
68
+ const historicalStateError = new Error('missing trie node 8a1c7f (path ) state 0x8a1c7f is not available');
68
69
  const getCode = sinon
69
70
  .stub(provider, 'getCode')
70
71
  .callsFake(async (address, blockTag) => {
@@ -73,17 +74,41 @@ describe('RPC Utils', () => {
73
74
  }
74
75
  // How a pruned geth reports state it no longer holds, and what 0g's
75
76
  // endpoints answer a historical eth_getCode with at any depth.
76
- throw new Error('missing trie node 8a1c7f (path ) state 0x8a1c7f is not available');
77
+ throw historicalStateError;
77
78
  });
78
- const foundBlock = await getContractCreationBlockFromRpc(TestChainName.test1, testContract.address, multiProvider);
79
- expect(foundBlock).to.equal(0);
80
- // The first probe that cannot be answered ends the search, rather than
81
- // every rung of the bisection failing its way down to the floor.
79
+ await expect(getContractCreationBlockFromRpc(TestChainName.test1, testContract.address, multiProvider)).to.be.rejectedWith(historicalStateError.message);
80
+ // The first probe that cannot be answered ends the search.
82
81
  const historicalProbes = getCode
83
82
  .getCalls()
84
83
  .filter((call) => !isNullish(call.args[1]));
85
84
  expect(historicalProbes).to.have.length(1);
86
85
  });
86
+ // A successful but false response cannot be distinguished locally from
87
+ // genuine pre-deployment state. This records the data-source trust boundary.
88
+ it('documents that silent pruning places the deployment too late', async () => {
89
+ await mineRandomNumberOfBlocks();
90
+ await deployTestErc20();
91
+ await mineRandomNumberOfBlocks();
92
+ await mineRandomNumberOfBlocks();
93
+ const provider = multiProvider.getProvider(TestChainName.test1);
94
+ const realGetCode = provider.getCode.bind(provider);
95
+ // The contract exists from deploymentBlockNumber, but the endpoint only
96
+ // holds state from a later block and answers below it as though it were
97
+ // empty.
98
+ const retentionFloor = deploymentBlockNumber + 5;
99
+ expect(await realGetCode(testContract.address, deploymentBlockNumber)).not.to.equal('0x');
100
+ sinon.stub(provider, 'getCode').callsFake(async (address, blockTag) => {
101
+ if (isNullish(blockTag) || Number(blockTag) >= retentionFloor) {
102
+ return realGetCode(address, blockTag);
103
+ }
104
+ return '0x';
105
+ });
106
+ const foundBlock = await getContractCreationBlockFromRpc(TestChainName.test1, testContract.address, multiProvider);
107
+ // The search trusts the successful response and settles on the oldest
108
+ // block the endpoint claims has code.
109
+ expect(foundBlock).to.be.greaterThan(deploymentBlockNumber);
110
+ expect(foundBlock).to.equal(retentionFloor);
111
+ });
87
112
  it('should throw an error for non-existing contract address', async () => {
88
113
  const nonExistentAddress = randomAddress();
89
114
  await expect(getContractCreationBlockFromRpc(TestChainName.test1, nonExistentAddress, multiProvider)).to.be.rejectedWith(`Address "${nonExistentAddress}" on chain "${TestChainName.test1}" is not a contract`);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.hardhat-test.js","sourceRoot":"","sources":["../../../src/rpc/evm/utils.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.hardhat-test.js","sourceRoot":"","sources":["../../../src/rpc/evm/utils.hardhat-test.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAa,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,+BAA+B,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE7E,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAEzB,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,aAAgC,CAAC;IACrC,IAAI,eAAkC,CAAC;IACvC,IAAI,eAAkC,CAAC;IACvC,IAAI,kBAAmC,CAAC;IACxC,IAAI,aAA4B,CAAC;IACjC,IAAI,YAAuB,CAAC;IAC5B,IAAI,YAAgC,CAAC;IACrC,IAAI,qBAA6B,CAAC;IAElC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAmC,CAAC,CAAC;IAE3E,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,CAAC,aAAa,EAAE,eAAe,EAAE,eAAe,CAAC;YAC/C,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEhC,MAAM,CACJ,aAAa,CAAC,QAAQ,EACtB,+CAA+C,CAChD,CAAC;QAEF,2CAA2C;QAC3C,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC;YACpD,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,aAAa,CAAC,QAAQ;SACjC,CAAC,CAAC;QACH,kBAAkB,GAAG,aAAa,CAAC,QAA2B,CAAC;QAE/D,qCAAqC;QACrC,YAAY,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,eAAe;QAC5B,YAAY,GAAG,MAAM,YAAY,CAAC,MAAM,CACtC,WAAW,EACX,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAClC,EAAE,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CACJ,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAC1C,6DAA6D,CAC9D,CAAC;QACF,qBAAqB,GAAG,YAAY,CAAC,iBAAiB,CAAC,WAAW,CAAC;IACrE,CAAC;IAED,KAAK,UAAU,wBAAwB;QACrC,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC3D,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,+BAA+B,CAAC,IAAI,EAAE,GAAG,EAAE;QAClD,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjC,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,eAAe,EAAE,CAAC;YAExB,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,UAAU,GAAG,MAAM,+BAA+B,CACtD,aAAa,CAAC,KAAK,EACnB,YAAY,CAAC,OAAO,EACpB,aAAa,CACd,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,OAAO,CACnD,YAAY,CAAC,OAAO,CACrB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,2EAA2E;QAC3E,mEAAmE;QACnE,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,eAAe,EAAE,CAAC;YAExB,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,oBAAoB,GAAG,IAAI,KAAK,CACpC,kEAAkE,CACnE,CAAC;YACF,MAAM,OAAO,GAAG,KAAK;iBAClB,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;iBACzB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACrC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBACD,oEAAoE;gBACpE,+DAA+D;gBAC/D,MAAM,oBAAoB,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEL,MAAM,MAAM,CACV,+BAA+B,CAC7B,aAAa,CAAC,KAAK,EACnB,YAAY,CAAC,OAAO,EACpB,aAAa,CACd,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAEnD,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,OAAO;iBAC7B,QAAQ,EAAE;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,6EAA6E;QAC7E,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,eAAe,EAAE,CAAC;YAExB,MAAM,wBAAwB,EAAE,CAAC;YACjC,MAAM,wBAAwB,EAAE,CAAC;YAEjC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEpD,wEAAwE;YACxE,wEAAwE;YACxE,SAAS;YACT,MAAM,cAAc,GAAG,qBAAqB,GAAG,CAAC,CAAC;YACjD,MAAM,CACJ,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAC/D,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAErB,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACpE,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC;oBAC9D,OAAO,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,+BAA+B,CACtD,aAAa,CAAC,KAAK,EACnB,YAAY,CAAC,OAAO,EACpB,aAAa,CACd,CAAC;YAEF,sEAAsE;YACtE,sCAAsC;YACtC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;YAC5D,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC;YAE3C,MAAM,MAAM,CACV,+BAA+B,CAC7B,aAAa,CAAC,KAAK,EACnB,kBAAkB,EAClB,aAAa,CACd,CACF,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAClB,YAAY,kBAAkB,eAAe,aAAa,CAAC,KAAK,qBAAqB,CACtF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;QACjC,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,4BAA4B;YAC5B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CACrC,eAAe,CAAC,OAAO,EACvB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CACrC,eAAe,CAAC,OAAO,EACvB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;gBAChC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;gBACrC,aAAa;gBACb,SAAS,EAAE,qBAAqB;gBAChC,KAAK,EAAE,aAAa;aACrB,CAAC,CAAC;YAEH,4EAA4E;YAC5E,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,wBAAwB,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;YAE7D,4BAA4B;YAC5B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CACrC,eAAe,CAAC,OAAO,EACvB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;YAElE,MAAM,wBAAwB,EAAE,CAAC;YAEjC,4BAA4B;YAC5B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CACrC,eAAe,CAAC,OAAO,EACvB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,2CAA2C;YAC3C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;gBAChC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;gBACrC,aAAa;gBACb,SAAS,EAAE,UAAU;gBACrB,OAAO,EAAE,eAAe;gBACxB,KAAK,EAAE,aAAa;aACrB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAChC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAC5C,CAAC;gBACF,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAClB,CAAC;YAED,kEAAkE;YAClE,MAAM,sBAAsB,GAAG,oBAAoB,GAAG,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;gBAChC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;gBACrC,aAAa;gBACb,SAAS,EAAE,qBAAqB;gBAChC,KAAK,EAAE,aAAa;gBACpB,+BAA+B;gBAC/B,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,qEAAqE;YACrE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CACrC,eAAe,CAAC,OAAO,EACvB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAC/B,CAAC;YACF,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAEjB,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC;YACtE,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC;gBAChC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;gBACrC,aAAa;gBACb,SAAS,EAAE,qBAAqB;gBAChC,KAAK,EAAE,gBAAgB;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,IAAI,WAAwC,CAAC;YAE7C,SAAS,CAAC,GAAG,EAAE;gBACb,WAAW,EAAE,OAAO,EAAE,CAAC;gBACvB,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC,CAAC,CAAC;YAIH,MAAM,iBAAiB,GAAG,wCAAwC,CAAC;YAEnE,uEAAuE;YACvE,yEAAyE;YACzE,MAAM,8BAA8B,GAClC,8CAA8C,CAAC;YAEjD,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAElD,SAAS,WAAW,CAClB,OAAuC;gBAEvC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM,SAAS,GAAoB,EAAE,CAAC;gBAEtC,WAAW,GAAG,KAAK;qBAChB,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;qBACzB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;oBAC9B,MAAM,CACJ,QAAQ;wBACN,WAAW,IAAI,QAAQ;wBACvB,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EACxC,wDAAwD,CACzD,CAAC;oBACF,MAAM,CACJ,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAC7D,sDAAsD,CACvD,CAAC;oBAEF,MAAM,KAAK,GAAG;wBACZ,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC1B,CAAC;oBACF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,CAAC;oBAEf,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEL,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,qEAAqE;YACrE,qEAAqE;YACrE,iEAAiE;YACjE,SAAS,kBAAkB,CACzB,OAAe,EACf,OAAO,GAAG,iBAAiB;gBAE3B,OAAO,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;wBAClD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,uEAAuE;YACvE,+DAA+D;YAC/D,SAAS,qBAAqB,CAAC,YAAoB;gBACjD,IAAI,YAAY,GAAG,YAAY,CAAC;gBAChC,OAAO,WAAW,CAAC,GAAG,EAAE;oBACtB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;wBACrB,YAAY,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,SAAS,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAiB;gBACnD,OAAO,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;YACjC,CAAC;YAED,uEAAuE;YACvE,mCAAmC;YACnC,SAAS,iBAAiB,CAAC,MAAuB;gBAChD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACf,KAAK,KAAK,CAAC;oBACX,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;oBAC/C,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAC9C,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,uEAAuE;YACvE,SAAS,wBAAwB,CAC/B,QAAyB,EACzB,SAAiB,EACjB,OAAe;gBAEf,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAClD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAED,KAAK,UAAU,UAAU,CAAC,KAAa;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/B,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAED,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,KAAK,GAAG,CAAC,CAAC;gBAChB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAE5C,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,cAAc,CAAC;oBACnB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK;iBACN,CAAC,CAAC;gBAEH,kEAAkE;gBAClE,MAAM,WAAW,GAAG,OAAO,GAAG,qBAAqB,GAAG,CAAC,CAAC;gBACxD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3D,wBAAwB,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,OAAO,GAAG,CAAC,CAAC;gBAClB,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAE9C,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,cAAc,CAAC;oBACnB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;gBAEH,uEAAuE;gBACvE,2DAA2D;gBAC3D,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjE,MAAM,CACJ,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CACrD,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,wBAAwB,CACtB,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,EACrD,qBAAqB,EACrB,OAAO,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;gBAC1F,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBAExC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,MAAM,CACV,cAAc,CAAC;oBACb,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,CAAC;iBACT,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAExC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,yEAAyE;YACzE,0EAA0E;YAC1E,qEAAqE;YACrE,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;gBACxF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;gBAEH,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,MAAM,CACV,cAAc,CAAC;oBACb,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,CAAC;iBACT,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBAErC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAChF,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;oBACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,EAAE;wBACrD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE;4BAC/C,aAAa,EAAE,KAAK;yBACrB,CAAC;qBACH,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,MAAM,CACV,cAAc,CAAC;oBACb,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,CAAC;iBACT,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAC;gBAE5D,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,uEAAuE;YACvE,wEAAwE;YACxE,+CAA+C;YAC/C,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAE3C,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,cAAc,CAAC;oBACnB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK;iBACN,CAAC,CAAC;gBAEH,wEAAwE;gBACxE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC1C,SAAS,CAAC,CAAC,CAAC;oBACZ,SAAS,CAAC,CAAC,CAAC;oBACZ,SAAS,CAAC,CAAC,CAAC;iBACb,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC3D,wBAAwB,CACtB,iBAAiB,CAAC,SAAS,CAAC,EAC5B,qBAAqB,EACrB,OAAO,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,yEAAyE;YACzE,sEAAsE;YACtE,kDAAkD;YAClD,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;gBACrF,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBAElE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,MAAM,CACV,cAAc,CAAC;oBACb,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,GAAG;iBACX,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAExC,iEAAiE;gBACjE,qEAAqE;gBACrE,qEAAqE;gBACrE,sBAAsB;gBACtB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC1C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;iBAC3D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,uEAAuE;YACvE,yEAAyE;YACzE,qCAAqC;YACrC,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAChF,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,MAAM,SAAS,GAAG,kBAAkB,CAClC,OAAO,EACP,8BAA8B,CAC/B,CAAC;gBAEF,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBAE1D,MAAM,cAAc,CAAC;oBACnB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,OAAO;oBACP,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;gBAEH,mEAAmE;gBACnE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBACtD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;iBACvC,CAAC,CAAC;gBACH,wBAAwB,CACtB,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,EACrD,qBAAqB,EACrB,OAAO,CACR,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,MAAM,CACV,cAAc,CAAC;oBACb,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,eAAe,EAAE,YAAY,CAAC,OAAO;oBACrC,aAAa;oBACb,SAAS,EAAE,qBAAqB;oBAChC,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,CAAC;iBACT,CAAC,CACH,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAClB,8DAA8D,CAC/D,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -11,24 +11,19 @@ function toStringArray(value, field) {
11
11
  assert(Array.isArray(value) && value.every((v) => typeof v === 'string'), `Unable to convert ${field} to string[]`);
12
12
  return value;
13
13
  }
14
- // The block every scan is safe to start from, and what this search answers
15
- // with when it cannot establish a later one.
14
+ // The lowest block the deployment search probes.
16
15
  const GENESIS_BLOCK_NUMBER = 0;
17
16
  /**
18
17
  * Finds the block a contract was deployed in by bisecting `eth_getCode` over
19
- * the chain's history, falling back to the genesis block where the endpoint
20
- * cannot serve the state of a past block.
18
+ * the chain's history.
21
19
  *
22
20
  * Every probe but the last few is a request for archive state, which an
23
- * endpoint that prunes answers in one of two ways. Either it fails the probe,
24
- * which is what the fallback below reads as "this endpoint cannot place the
25
- * deployment", or it reports no code at a height where the contract did exist.
26
- * The second is indistinguishable from a genuine pre-deployment answer on a
27
- * single probe, so nothing here detects it, and the search then converges on a
28
- * block after the deployment and a scan started there silently omits the events
29
- * below it. The reliable source of a deployment block is therefore the
30
- * explorer's getcontractcreation response, and this search is what is left
31
- * where there is no explorer.
21
+ * endpoint that prunes answers in one of two ways. If it fails the probe, this
22
+ * lookup fails rather than widening the subsequent log scan to genesis. If it
23
+ * reports no code at a height where the contract did exist, that successful
24
+ * response is indistinguishable from a genuine pre-deployment answer. Like any
25
+ * other RPC read, this search therefore assumes a successful response describes
26
+ * the requested block correctly.
32
27
  */
33
28
  export async function getContractCreationBlockFromRpc(chain, contractAddress, multiProvider) {
34
29
  await assertIsContractAddress(multiProvider, chain, contractAddress);
@@ -44,13 +39,8 @@ export async function getContractCreationBlockFromRpc(chain, contractAddress, mu
44
39
  isContract = await isContractAddress(multiProvider, chain, contractAddress, mid);
45
40
  }
46
41
  catch (error) {
47
- // Reported rather than rethrown because the whole scan reads the same
48
- // events wherever it starts below the deployment, so an endpoint that
49
- // cannot answer for a past block costs the request count of a full scan
50
- // and nothing else. It stays a warning so that the endpoint is visible
51
- // as pruned rather than merely slow.
52
- logger.warn({ err: error }, `Unable to read the state of block ${mid} on chain ${chain} while searching for the deployment block of ${contractAddress}, starting from block ${GENESIS_BLOCK_NUMBER} instead`);
53
- return GENESIS_BLOCK_NUMBER;
42
+ logger.warn({ err: error }, `Unable to read the state of block ${mid} on chain ${chain} while searching for the deployment block of ${contractAddress}`);
43
+ throw error;
54
44
  }
55
45
  if (isContract) {
56
46
  creationBlock = mid;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rpc/evm/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rpc/evm/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Builds a typed partial double of `T`, typically a typechain factory's
3
+ * `connect` return. The provided members are type-checked against the real `T`
4
+ * (so a misspelled or removed member is a compile error); only the final
5
+ * widening — which sinon's `.returns`/`.resolves` requires — is cast.
6
+ */
7
+ export declare function contractDouble<T>(members: Partial<T>): T;
8
+ //# sourceMappingURL=contractDouble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractDouble.d.ts","sourceRoot":"","sources":["../../src/test/contractDouble.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAIxD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Builds a typed partial double of `T`, typically a typechain factory's
3
+ * `connect` return. The provided members are type-checked against the real `T`
4
+ * (so a misspelled or removed member is a compile error); only the final
5
+ * widening — which sinon's `.returns`/`.resolves` requires — is cast.
6
+ */
7
+ export function contractDouble(members) {
8
+ // CAST: sinon's `.returns` needs the exact contract type; `members` is a
9
+ // partial test double whose keys are validated against `T` above.
10
+ return members;
11
+ }
12
+ //# sourceMappingURL=contractDouble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractDouble.js","sourceRoot":"","sources":["../../src/test/contractDouble.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,OAAmB;IACnD,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,OAAY,CAAC;AACtB,CAAC"}
@@ -2,4 +2,5 @@ export declare const EMPTY_BYTES_32 = "0x000000000000000000000000000000000000000
2
2
  export declare const PROPOSER_ROLE: string;
3
3
  export declare const EXECUTOR_ROLE: string;
4
4
  export declare const CANCELLER_ROLE: string;
5
+ export declare const TIMELOCK_ADMIN_ROLE: string;
5
6
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/timelock/evm/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,uEAC2C,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,MAAgD,CAAC;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAgD,CAAC;AAC7E,eAAO,MAAM,cAAc,EAAE,MAAiD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/timelock/evm/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,uEAC2C,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,MAAgD,CAAC;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAgD,CAAC;AAC7E,eAAO,MAAM,cAAc,EAAE,MAAiD,CAAC;AAC/E,eAAO,MAAM,mBAAmB,EAAE,MAEjC,CAAC"}
@@ -3,4 +3,5 @@ export const EMPTY_BYTES_32 = '0x00000000000000000000000000000000000000000000000
3
3
  export const PROPOSER_ROLE = keccak256(Buffer.from('PROPOSER_ROLE'));
4
4
  export const EXECUTOR_ROLE = keccak256(Buffer.from('EXECUTOR_ROLE'));
5
5
  export const CANCELLER_ROLE = keccak256(Buffer.from('CANCELLER_ROLE'));
6
+ export const TIMELOCK_ADMIN_ROLE = keccak256(Buffer.from('TIMELOCK_ADMIN_ROLE'));
6
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/timelock/evm/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GACzB,oEAAoE,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/timelock/evm/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GACzB,oEAAoE,CAAC;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAW,SAAS,CAClD,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function isDeterministicTimelockReadError(error: unknown): boolean;
2
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/timelock/evm/errors.ts"],"names":[],"mappings":"AAgBA,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAUxE"}
@@ -0,0 +1,19 @@
1
+ import { errors as EthersError } from 'ethers';
2
+ import { getNestedJsonRpcError } from '../../providers/SmartProvider/SmartProvider.js';
3
+ function asRecord(error) {
4
+ if (typeof error !== 'object' || error === null)
5
+ return undefined;
6
+ // CAST: runtime object check above narrows enough for keyed inspection.
7
+ return error;
8
+ }
9
+ export function isDeterministicTimelockReadError(error) {
10
+ // CAST: asRecord gates property reads; fields stay unknown until compared.
11
+ const record = asRecord(error);
12
+ if (record?.code !== EthersError.CALL_EXCEPTION)
13
+ return false;
14
+ const hasRevertData = !!record.data && record.data !== '0x';
15
+ const hasNestedError = !!record.error;
16
+ const jsonRpcErrorCode = getNestedJsonRpcError(error).code;
17
+ return hasRevertData || jsonRpcErrorCode === 3 || !hasNestedError;
18
+ }
19
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/timelock/evm/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAQvF,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,wEAAwE;IACxE,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,2EAA2E;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAoC,CAAC;IAClE,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAE3D,OAAO,aAAa,IAAI,gBAAgB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/timelock/evm/errors.test.ts"],"names":[],"mappings":""}