hardhat 2.13.0 → 2.14.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 (78) hide show
  1. package/internal/constants.d.ts.map +1 -1
  2. package/internal/constants.js +1 -0
  3. package/internal/constants.js.map +1 -1
  4. package/internal/core/config/default-config.js +1 -1
  5. package/internal/core/config/default-config.js.map +1 -1
  6. package/internal/core/jsonrpc/types/output/block.d.ts +24 -0
  7. package/internal/core/jsonrpc/types/output/block.d.ts.map +1 -1
  8. package/internal/core/jsonrpc/types/output/block.js +8 -0
  9. package/internal/core/jsonrpc/types/output/block.js.map +1 -1
  10. package/internal/hardhat-network/provider/BlockchainBase.d.ts +1 -1
  11. package/internal/hardhat-network/provider/BlockchainBase.d.ts.map +1 -1
  12. package/internal/hardhat-network/provider/BlockchainBase.js +16 -9
  13. package/internal/hardhat-network/provider/BlockchainBase.js.map +1 -1
  14. package/internal/hardhat-network/provider/TxPool.d.ts.map +1 -1
  15. package/internal/hardhat-network/provider/TxPool.js +1 -0
  16. package/internal/hardhat-network/provider/TxPool.js.map +1 -1
  17. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts +1 -1
  18. package/internal/hardhat-network/provider/fork/ForkBlockchain.d.ts.map +1 -1
  19. package/internal/hardhat-network/provider/fork/ForkBlockchain.js +24 -14
  20. package/internal/hardhat-network/provider/fork/ForkBlockchain.js.map +1 -1
  21. package/internal/hardhat-network/provider/fork/rpcToBlockData.d.ts.map +1 -1
  22. package/internal/hardhat-network/provider/fork/rpcToBlockData.js +2 -0
  23. package/internal/hardhat-network/provider/fork/rpcToBlockData.js.map +1 -1
  24. package/internal/hardhat-network/provider/modules/eth.d.ts +1 -0
  25. package/internal/hardhat-network/provider/modules/eth.d.ts.map +1 -1
  26. package/internal/hardhat-network/provider/modules/eth.js +28 -3
  27. package/internal/hardhat-network/provider/modules/eth.js.map +1 -1
  28. package/internal/hardhat-network/provider/node.d.ts +2 -0
  29. package/internal/hardhat-network/provider/node.d.ts.map +1 -1
  30. package/internal/hardhat-network/provider/node.js +62 -16
  31. package/internal/hardhat-network/provider/node.js.map +1 -1
  32. package/internal/hardhat-network/provider/output.d.ts +8 -0
  33. package/internal/hardhat-network/provider/output.d.ts.map +1 -1
  34. package/internal/hardhat-network/provider/output.js +9 -0
  35. package/internal/hardhat-network/provider/output.js.map +1 -1
  36. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js +1 -1
  37. package/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.js.map +1 -1
  38. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js +1 -1
  39. package/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.js.map +1 -1
  40. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js +1 -1
  41. package/internal/hardhat-network/provider/transactions/FakeSenderTransaction.js.map +1 -1
  42. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.d.ts.map +1 -1
  43. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js +5 -1
  44. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.js.map +1 -1
  45. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.d.ts.map +1 -1
  46. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js +5 -1
  47. package/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.js.map +1 -1
  48. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js +1 -1
  49. package/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.js.map +1 -1
  50. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js +1 -1
  51. package/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.js.map +1 -1
  52. package/internal/solidity/resolver.d.ts.map +1 -1
  53. package/internal/solidity/resolver.js +18 -2
  54. package/internal/solidity/resolver.js.map +1 -1
  55. package/internal/util/hardforks.d.ts +2 -1
  56. package/internal/util/hardforks.d.ts.map +1 -1
  57. package/internal/util/hardforks.js +2 -0
  58. package/internal/util/hardforks.js.map +1 -1
  59. package/package.json +11 -11
  60. package/src/internal/constants.ts +1 -0
  61. package/src/internal/core/config/default-config.ts +1 -1
  62. package/src/internal/core/jsonrpc/types/output/block.ts +12 -0
  63. package/src/internal/hardhat-network/provider/BlockchainBase.ts +19 -10
  64. package/src/internal/hardhat-network/provider/TxPool.ts +1 -0
  65. package/src/internal/hardhat-network/provider/fork/ForkBlockchain.ts +28 -18
  66. package/src/internal/hardhat-network/provider/fork/rpcToBlockData.ts +2 -0
  67. package/src/internal/hardhat-network/provider/modules/eth.ts +40 -3
  68. package/src/internal/hardhat-network/provider/node.ts +73 -14
  69. package/src/internal/hardhat-network/provider/output.ts +20 -0
  70. package/src/internal/hardhat-network/provider/transactions/FakeSenderAccessListEIP2930Transaction.ts +1 -1
  71. package/src/internal/hardhat-network/provider/transactions/FakeSenderEIP1559Transaction.ts +1 -1
  72. package/src/internal/hardhat-network/provider/transactions/FakeSenderTransaction.ts +1 -1
  73. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP1559Transaction.ts +5 -1
  74. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidEIP2930Transaction.ts +5 -1
  75. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidTransaction.ts +1 -1
  76. package/src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts +1 -1
  77. package/src/internal/solidity/resolver.ts +25 -6
  78. package/src/internal/util/hardforks.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ReadOnlyValidUnknownTypeTransaction.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadOnlyValidUnknownTypeTransaction.js","sourceRoot":"","sources":["../../../../src/internal/hardhat-network/provider/transactions/ReadOnlyValidUnknownTypeTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,IAAI,aAAa,EAC9B,MAAM,2BAA2B,CAAC;AAenC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC;AAID,qBAAa,YAAa,YAAW,aAAa;aAI9B,UAAU,EAAE,MAAM;aAClB,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,WAAW;aACpB,WAAW,EAAE,MAAM;aACnB,oBAAoB,EAAE,IAAI;IAP5C,SAAgB,OAAO,CAAC,EAAE,WAAW,CAAC;gBAGpB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,IAAI,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM;IAgBlB,gBAAgB;CAMxB;AAED,qBAAa,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,oBAAoB,EAAE,CACrC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,CAAC;IAGtB;;;;OAIG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBzE;;;;OAIG;IACU,aAAa,CACxB,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;YA0IV,uBAAuB;YAavB,yBAAyB;YAsDzB,2BAA2B;YAuC3B,YAAY;IAoC1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sCAAsC;IAO9C,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,oCAAoC;YAY9B,qCAAqC;CAwCpD"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,IAAI,aAAa,EAC9B,MAAM,2BAA2B,CAAC;AAenC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC;AAID,qBAAa,YAAa,YAAW,aAAa;aAI9B,UAAU,EAAE,MAAM;aAClB,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,WAAW;aACpB,WAAW,EAAE,MAAM;aACnB,oBAAoB,EAAE,IAAI;IAP5C,SAAgB,OAAO,CAAC,EAAE,WAAW,CAAC;gBAGpB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,EACnB,oBAAoB,EAAE,IAAI,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM;IAgBlB,gBAAgB;CAMxB;AAED,qBAAa,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,oBAAoB,EAAE,CACrC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,CAAC;IAGtB;;;;OAIG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoBzE;;;;OAIG;IACU,aAAa,CACxB,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC;YA0IV,uBAAuB;YAavB,yBAAyB;YAyEzB,2BAA2B;YAuC3B,YAAY;IAoC1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,sCAAsC;IAO9C,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,oCAAoC;YAY9B,qCAAqC;CAwCpD"}
@@ -189,12 +189,28 @@ class Resolver {
189
189
  if (this._isScopedPackage(sourceName)) {
190
190
  nodeModulesPath = path_1.default.dirname(nodeModulesPath);
191
191
  }
192
- await this._validateSourceNameExistenceAndCasing(nodeModulesPath, sourceName, true);
192
+ let absolutePath;
193
+ if (path_1.default.basename(nodeModulesPath) !== NODE_MODULES) {
194
+ // this can happen in monorepos that use PnP, in those
195
+ // cases we handle resolution differently
196
+ const packageRoot = path_1.default.dirname(packageJsonPath);
197
+ const pattern = new RegExp(`^${libraryName}/?`);
198
+ const fileName = sourceName.replace(pattern, "");
199
+ await this._validateSourceNameExistenceAndCasing(packageRoot,
200
+ // TODO: this is _not_ a source name; we should handle this scenario in
201
+ // a better way
202
+ fileName, true);
203
+ absolutePath = path_1.default.join(packageRoot, fileName);
204
+ }
205
+ else {
206
+ await this._validateSourceNameExistenceAndCasing(nodeModulesPath, sourceName, true);
207
+ absolutePath = path_1.default.join(nodeModulesPath, sourceName);
208
+ }
193
209
  const packageInfo = await fs_extra_1.default.readJson(packageJsonPath);
194
210
  const libraryVersion = packageInfo.version;
195
211
  return this._resolveFile(sourceName,
196
212
  // We resolve to the real path here, as we may be resolving a linked library
197
- await (0, fs_utils_1.getRealPath)(path_1.default.join(nodeModulesPath, sourceName)), libraryName, libraryVersion);
213
+ await (0, fs_utils_1.getRealPath)(absolutePath), libraryName, libraryVersion);
198
214
  }
199
215
  async _relativeImportToSourceName(from, imported) {
200
216
  // This is a special case, were we turn relative imports from local files
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAC/B,gDAAwB;AACxB,sDAA8B;AAO9B,2DAQkC;AAClC,2CAAsE;AACtE,qDAA6C;AAC7C,uCAAyE;AAEzE,+CAA+C;AAO/C,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,MAAa,YAAY;IAGvB,YACkB,UAAkB,EAClB,YAAoB,EACpB,OAAoB,EACpB,WAAmB,EACnB,oBAA0B,EAC1C,WAAoB,EACpB,cAAuB;QANP,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAa;QACpB,gBAAW,GAAX,WAAW,CAAQ;QACnB,yBAAoB,GAApB,oBAAoB,CAAM;QAI1C,IAAA,+BAAsB,EACpB,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC;YACzD,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC,EAC7D,6DAA6D,CAC9D,CAAC;QAEF,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,OAAO,GAAG;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,cAAc;aACxB,CAAC;SACH;IACH,CAAC;IAEM,gBAAgB;QACrB,OAAO,CACL,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;CACF;AAhCD,oCAgCC;AAED,MAAa,QAAQ;IAGnB,YACmB,YAAoB,EACpB,OAAe,EACf,SAAoD,EACpD,oBAEG;QALH,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAA2C;QACpD,yBAAoB,GAApB,oBAAoB,CAEjB;QARL,WAAM,GAA8B,IAAI,GAAG,EAAE,CAAC;IAS5D,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,IAAA,uCAAwB,EAAC,UAAU,CAAC,CAAC;QAErC,IAAI,YAA0B,CAAC;QAE/B,IAAI,MAAM,IAAA,gCAAiB,EAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;YAC1D,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;SAC/D;aAAM;YACL,YAAY,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CACxB,IAAkB,EAClB,UAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC9D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;gBACR,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,iCAAkB,EAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE;gBAC/D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,uCAAwB,EAAC,QAAQ,CAAC,EAAE;YACtC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE;gBACnE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,iFAAiF;QACjF,0EAA0E;QAC1E,IAAI,MAAM,IAAA,qCAAsB,EAAC,QAAQ,CAAC,EAAE;YAC1C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE;gBAChE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI;YACF,IAAI,UAAkB,CAAC;YAEvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE1D,IAAI,gBAAgB,EAAE;gBACpB,UAAU,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACrE;iBAAM;gBACL,UAAU,GAAG,IAAA,kCAAmB,EAAC,QAAQ,CAAC,CAAC;aAC5C;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;YAED,IAAI,YAA0B,CAAC;YAE/B,mEAAmE;YACnE,4DAA4D;YAC5D,oDAAoD;YACpD,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;gBAC1B,gBAAgB;gBAChB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChD;gBACA,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;aAC/D;iBAAM;gBACL,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,YAAY,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,cAAc,CAC/B;gBACD,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,sBAAsB,CACvC,EACD;gBACA,IAAI,QAAQ,KAAK,UAAU,EAAE;oBAC3B,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;wBACE,QAAQ;wBACR,UAAU;wBACV,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;qBAAM;oBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EACvC;wBACE,QAAQ;wBACR,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;aACF;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,CACzC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,2BAA2B,EAC3C;oBACE,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,CACtC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;oBACE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;oBACvC,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,gFAAgF;YAChF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAkB;QAElB,MAAM,IAAI,CAAC,qCAAqC,CAC9C,IAAI,CAAC,YAAY,EACjB,UAAU,EACV,KAAK,CACN,CAAC;QAEF,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,UAAkB;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,eAAe,GAAG,IAAI,CAAC,sCAAsC,CAC3D,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,wEAAwE;YACxE,uEAAuE;YACvE,+CAA+C;YAC/C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxD,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,EACrC;oBACE,OAAO,EAAE,WAAW;iBACrB,EACD,KAAc,CACf,CAAC;aACH;SACF;QAED,IAAI,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACrC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SACjD;QAED,MAAM,IAAI,CAAC,qCAAqC,CAC9C,eAAe,EACf,UAAU,EACV,IAAI,CACL,CAAC;QAEF,MAAM,WAAW,GAGb,MAAM,kBAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC;QAE3C,OAAO,IAAI,CAAC,YAAY,CACtB,UAAU;QACV,4EAA4E;QAC5E,MAAM,IAAA,sBAAW,EAAC,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,EACzD,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,IAAkB,EAClB,QAAgB;QAEhB,yEAAyE;QACzE,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,oCAAoC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAClE;QAED,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,mEAAmE;QACnE,wEAAwE;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC9D,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,iCAAiC,EACjD,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CACpC,CAAC;SACH;QAED,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EACnD;YACA,qEAAqE;YACrE,+BAA+B;YAC/B,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,UAAkB,EAClB,YAAoB,EACpB,WAAoB,EACpB,cAAuB;QAEvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,kBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAA,gDAAyC,EAC3D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CACtC,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,UAAU;YACV,GAAG,aAAa;SACjB,CAAC;QAEF,OAAO,IAAI,YAAY,CACrB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,sCAAsC,CAAC,QAAgB;QAC7D,OAAO,iBAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACrC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjE;aAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACzC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;SAC9B;aAAM;YACL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,MAAM,EAAE,GAAG,kBAAkB,CAAC;QAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,eAAuB,EAAE,gBAAwB;QACxE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GACP,UAAU,KAAK,CAAC,CAAC;YACf,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC;YAC1C,CAAC,CAAC,eAAe,CAAC;QAEtB,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,oBAA4B;QACnD,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEO,0BAA0B,CAChC,IAAkB,EAClB,QAAgB;QAEhB,OAAO,CACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,oCAAoC,CAC1C,IAAkB,EAClB,QAAgB;QAEhB,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,qCAAqC,CACjD,OAAe,EACf,UAAkB,EAClB,SAAkB;QAElB,IAAI;YACF,MAAM,IAAA,mDAAoC,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,YAAY,CAAC,cAAc,CACnC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,SAAS;oBACP,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,sBAAsB;oBACxC,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAClC,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACxE;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EACxC;oBACE,SAAS,EAAE,UAAU;oBACrB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;iBACxC,EACD,KAAK,CACN,CAAC;aACH;YAED,gFAAgF;YAChF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF;AApbD,4BAobC"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/internal/solidity/resolver.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAC/B,gDAAwB;AACxB,sDAA8B;AAO9B,2DAQkC;AAClC,2CAAsE;AACtE,qDAA6C;AAC7C,uCAAyE;AAEzE,+CAA+C;AAO/C,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,MAAa,YAAY;IAGvB,YACkB,UAAkB,EAClB,YAAoB,EACpB,OAAoB,EACpB,WAAmB,EACnB,oBAA0B,EAC1C,WAAoB,EACpB,cAAuB;QANP,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAa;QACpB,gBAAW,GAAX,WAAW,CAAQ;QACnB,yBAAoB,GAApB,oBAAoB,CAAM;QAI1C,IAAA,+BAAsB,EACpB,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC;YACzD,CAAC,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,CAAC,EAC7D,6DAA6D,CAC9D,CAAC;QAEF,IAAI,WAAW,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;YAC7D,IAAI,CAAC,OAAO,GAAG;gBACb,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,cAAc;aACxB,CAAC;SACH;IACH,CAAC;IAEM,gBAAgB;QACrB,OAAO,CACL,IAAI,CAAC,UAAU;YACf,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;CACF;AAhCD,oCAgCC;AAED,MAAa,QAAQ;IAGnB,YACmB,YAAoB,EACpB,OAAe,EACf,SAAoD,EACpD,oBAEG;QALH,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAA2C;QACpD,yBAAoB,GAApB,oBAAoB,CAEjB;QARL,WAAM,GAA8B,IAAI,GAAG,EAAE,CAAC;IAS5D,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,MAAM,CAAC;SACf;QAED,IAAA,uCAAwB,EAAC,UAAU,CAAC,CAAC;QAErC,IAAI,YAA0B,CAAC;QAE/B,IAAI,MAAM,IAAA,gCAAiB,EAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;YAC1D,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;SAC/D;aAAM;YACL,YAAY,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CACxB,IAAkB,EAClB,UAAkB;QAElB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE;gBAC9D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;gBACR,QAAQ,EAAE,MAAM;aACjB,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,iCAAkB,EAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE;gBAC/D,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI,IAAA,uCAAwB,EAAC,QAAQ,CAAC,EAAE;YACtC,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,4BAA4B,EAAE;gBACnE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,iFAAiF;QACjF,0EAA0E;QAC1E,IAAI,MAAM,IAAA,qCAAsB,EAAC,QAAQ,CAAC,EAAE;YAC1C,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE;gBAChE,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,IAAI;YACF,IAAI,UAAkB,CAAC;YAEvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE1D,IAAI,gBAAgB,EAAE;gBACpB,UAAU,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACrE;iBAAM;gBACL,UAAU,GAAG,IAAA,kCAAmB,EAAC,QAAQ,CAAC,CAAC;aAC5C;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,OAAO,MAAM,CAAC;aACf;YAED,IAAI,YAA0B,CAAC;YAE/B,mEAAmE;YACnE,4DAA4D;YAC5D,oDAAoD;YACpD,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;gBAC1B,gBAAgB;gBAChB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAChD;gBACA,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;aAC/D;iBAAM;gBACL,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,YAAY,CAAC;SACrB;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,cAAc,CAC/B;gBACD,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,sBAAsB,CACvC,EACD;gBACA,IAAI,QAAQ,KAAK,UAAU,EAAE;oBAC3B,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;wBACE,QAAQ;wBACR,UAAU;wBACV,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;qBAAM;oBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,uBAAuB,EACvC;wBACE,QAAQ;wBACR,IAAI,EAAE,IAAI,CAAC,UAAU;qBACtB,EACD,KAAK,CACN,CAAC;iBACH;aACF;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,CACzC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,2BAA2B,EAC3C;oBACE,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,CACtC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,8BAA8B,EAC9C;oBACE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;oBACvC,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,EACD,KAAK,CACN,CAAC;aACH;YAED,gFAAgF;YAChF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,UAAkB;QAElB,MAAM,IAAI,CAAC,qCAAqC,CAC9C,IAAI,CAAC,YAAY,EACjB,UAAU,EACV,KAAK,CACN,CAAC;QAEF,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,UAAkB;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAErD,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,eAAe,GAAG,IAAI,CAAC,sCAAsC,CAC3D,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CACvC,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,wEAAwE;YACxE,uEAAuE;YACvE,+CAA+C;YAC/C,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBACxD,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,qBAAqB,EACrC;oBACE,OAAO,EAAE,WAAW;iBACrB,EACD,KAAc,CACf,CAAC;aACH;SACF;QAED,IAAI,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACrC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SACjD;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,cAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,YAAY,EAAE;YACnD,sDAAsD;YACtD,yCAAyC;YACzC,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAEjD,MAAM,IAAI,CAAC,qCAAqC,CAC9C,WAAW;YACX,uEAAuE;YACvE,eAAe;YACf,QAAQ,EACR,IAAI,CACL,CAAC;YACF,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;SACjD;aAAM;YACL,MAAM,IAAI,CAAC,qCAAqC,CAC9C,eAAe,EACf,UAAU,EACV,IAAI,CACL,CAAC;YACF,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;SACvD;QAED,MAAM,WAAW,GAGb,MAAM,kBAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC;QAE3C,OAAO,IAAI,CAAC,YAAY,CACtB,UAAU;QACV,4EAA4E;QAC5E,MAAM,IAAA,sBAAW,EAAC,YAAY,CAAC,EAC/B,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,IAAkB,EAClB,QAAgB;QAEhB,yEAAyE;QACzE,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC,oCAAoC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAClE;QAED,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,mEAAmE;QACnE,wEAAwE;QACxE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC9D,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,iCAAiC,EACjD,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CACpC,CAAC;SACH;QAED,IACE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EACnD;YACA,qEAAqE;YACrE,+BAA+B;YAC/B,MAAM,IAAI,qBAAY,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,QAAQ;aACT,CAAC,CAAC;SACJ;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,UAAkB,EAClB,YAAoB,EACpB,WAAoB,EACpB,cAAuB;QAEvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,kBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,oBAAoB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAA,gDAAyC,EAC3D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CACtC,UAAU,EACV,YAAY,EACZ,WAAW,CACZ,CAAC;QAEF,MAAM,OAAO,GAAG;YACd,UAAU;YACV,GAAG,aAAa;SACjB,CAAC;QAEF,OAAO,IAAI,YAAY,CACrB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,sCAAsC,CAAC,QAAgB;QAC7D,OAAO,iBAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,IAAI,QAAgB,CAAC;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YACrC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjE;aAAM,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YACzC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;SAC9B;aAAM;YACL,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACpC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,CAAS;QAC7B,MAAM,EAAE,GAAG,kBAAkB,CAAC;QAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,eAAuB,EAAE,gBAAwB;QACxE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GACP,UAAU,KAAK,CAAC,CAAC;YACf,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC;YAC1C,CAAC,CAAC,eAAe,CAAC;QAEtB,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEO,gBAAgB,CAAC,oBAA4B;QACnD,OAAO,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEO,0BAA0B,CAChC,IAAkB,EAClB,QAAgB;QAEhB,OAAO,CACL,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1B,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,oCAAoC,CAC1C,IAAkB,EAClB,QAAgB;QAEhB,MAAM,UAAU,GAAG,IAAA,kCAAmB,EACpC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CACnD,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,qCAAqC,CACjD,OAAe,EACf,UAAkB,EAClB,SAAkB;QAElB,IAAI;YACF,MAAM,IAAA,mDAAoC,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACjE;QAAC,OAAO,KAAK,EAAE;YACd,IACE,qBAAY,CAAC,kBAAkB,CAC7B,KAAK,EACL,oBAAM,CAAC,YAAY,CAAC,cAAc,CACnC,EACD;gBACA,MAAM,IAAI,qBAAY,CACpB,SAAS;oBACP,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,sBAAsB;oBACxC,CAAC,CAAC,oBAAM,CAAC,QAAQ,CAAC,cAAc,EAClC,EAAE,IAAI,EAAE,UAAU,EAAE,EACpB,KAAK,CACN,CAAC;aACH;YAED,IACE,qBAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EACxE;gBACA,MAAM,IAAI,qBAAY,CACpB,oBAAM,CAAC,QAAQ,CAAC,wBAAwB,EACxC;oBACE,SAAS,EAAE,UAAU;oBACrB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO;iBACxC,EACD,KAAK,CACN,CAAC;aACH;YAED,gFAAgF;YAChF,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF;AAvcD,4BAucC"}
@@ -13,7 +13,8 @@ export declare enum HardforkName {
13
13
  LONDON = "london",
14
14
  ARROW_GLACIER = "arrowGlacier",
15
15
  GRAY_GLACIER = "grayGlacier",
16
- MERGE = "merge"
16
+ MERGE = "merge",
17
+ SHANGHAI = "shanghai"
17
18
  }
18
19
  export declare function getHardforkName(name: string): HardforkName;
19
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hardforks.d.ts","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IACtB,QAAQ,eAAe;IACvB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,iBAAiB,qBAAqB;IACtC,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,aAAa,iBAAiB;IAC9B,YAAY,gBAAgB;IAC5B,KAAK,UAAU;CAChB;AAoBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAY1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,YAAY,GACtB,OAAO,CAOT"}
1
+ {"version":3,"file":"hardforks.d.ts","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":"AAEA,oBAAY,YAAY;IACtB,QAAQ,eAAe;IACvB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,iBAAiB,qBAAqB;IACtC,eAAe,mBAAmB;IAClC,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,YAAY,gBAAgB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,aAAa,iBAAiB;IAC9B,YAAY,gBAAgB;IAC5B,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAqBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAY1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,YAAY,GACtB,OAAO,CAOT"}
@@ -19,6 +19,7 @@ var HardforkName;
19
19
  HardforkName["ARROW_GLACIER"] = "arrowGlacier";
20
20
  HardforkName["GRAY_GLACIER"] = "grayGlacier";
21
21
  HardforkName["MERGE"] = "merge";
22
+ HardforkName["SHANGHAI"] = "shanghai";
22
23
  })(HardforkName = exports.HardforkName || (exports.HardforkName = {}));
23
24
  const HARDFORKS_ORDER = [
24
25
  HardforkName.FRONTIER,
@@ -36,6 +37,7 @@ const HARDFORKS_ORDER = [
36
37
  HardforkName.ARROW_GLACIER,
37
38
  HardforkName.GRAY_GLACIER,
38
39
  HardforkName.MERGE,
40
+ HardforkName.SHANGHAI,
39
41
  ];
40
42
  function getHardforkName(name) {
41
43
  const hardforkName = Object.values(HardforkName)[Object.values(HardforkName).indexOf(name)];
@@ -1 +1 @@
1
- {"version":3,"file":"hardforks.js","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,2BAAW,CAAA;IACX,sDAAsC,CAAA;IACtC,kDAAkC,CAAA;IAClC,uCAAuB,CAAA;IACvB,iDAAiC,CAAA;IACjC,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;AACjB,CAAC,EAhBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAgBvB;AAED,MAAM,eAAe,GAAmB;IACtC,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,GAAG;IAChB,YAAY,CAAC,iBAAiB;IAC9B,YAAY,CAAC,eAAe;IAC5B,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,cAAc;IAC3B,YAAY,CAAC,UAAU;IACvB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,aAAa;IAC1B,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,KAAK;CACnB,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,YAAY,GAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CACzB,MAAM,CAAC,MAAM,CAAS,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAClD,CAAC;IAEJ,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,wBAAwB,IAAI,EAAE,CAC/B,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAZD,0CAYC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,SAAuB,EACvB,SAAuB;IAEvB,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC;AAVD,kCAUC"}
1
+ {"version":3,"file":"hardforks.js","sourceRoot":"","sources":["../../src/internal/util/hardforks.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAExD,IAAY,YAiBX;AAjBD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,2BAAW,CAAA;IACX,sDAAsC,CAAA;IACtC,kDAAkC,CAAA;IAClC,uCAAuB,CAAA;IACvB,iDAAiC,CAAA;IACjC,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,4CAA4B,CAAA;IAC5B,+BAAe,CAAA;IACf,qCAAqB,CAAA;AACvB,CAAC,EAjBW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAiBvB;AAED,MAAM,eAAe,GAAmB;IACtC,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,GAAG;IAChB,YAAY,CAAC,iBAAiB;IAC9B,YAAY,CAAC,eAAe;IAC5B,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,cAAc;IAC3B,YAAY,CAAC,UAAU;IACvB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,aAAa;IAC1B,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,KAAK;IAClB,YAAY,CAAC,QAAQ;CACtB,CAAC;AAEF,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,YAAY,GAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CACzB,MAAM,CAAC,MAAM,CAAS,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAClD,CAAC;IAEJ,IAAA,+BAAsB,EACpB,YAAY,KAAK,SAAS,EAC1B,wBAAwB,IAAI,EAAE,CAC/B,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC;AAZD,0CAYC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,SAAuB,EACvB,SAAuB;IAEvB,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC;AAVD,kCAUC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hardhat",
3
- "version": "2.13.0",
3
+ "version": "2.14.0",
4
4
  "author": "Nomic Labs LLC",
5
5
  "license": "MIT",
6
6
  "homepage": "https://hardhat.org",
@@ -99,16 +99,16 @@
99
99
  "dependencies": {
100
100
  "@ethersproject/abi": "^5.1.2",
101
101
  "@metamask/eth-sig-util": "^4.0.0",
102
- "@nomicfoundation/ethereumjs-block": "^4.0.0",
103
- "@nomicfoundation/ethereumjs-blockchain": "^6.0.0",
104
- "@nomicfoundation/ethereumjs-common": "^3.0.0",
105
- "@nomicfoundation/ethereumjs-evm": "^1.0.0",
106
- "@nomicfoundation/ethereumjs-rlp": "^4.0.0",
107
- "@nomicfoundation/ethereumjs-statemanager": "^1.0.0",
108
- "@nomicfoundation/ethereumjs-trie": "^5.0.0",
109
- "@nomicfoundation/ethereumjs-tx": "^4.0.0",
110
- "@nomicfoundation/ethereumjs-util": "^8.0.0",
111
- "@nomicfoundation/ethereumjs-vm": "^6.0.0",
102
+ "@nomicfoundation/ethereumjs-block": "5.0.1",
103
+ "@nomicfoundation/ethereumjs-blockchain": "7.0.1",
104
+ "@nomicfoundation/ethereumjs-common": "4.0.1",
105
+ "@nomicfoundation/ethereumjs-evm": "2.0.1",
106
+ "@nomicfoundation/ethereumjs-rlp": "5.0.1",
107
+ "@nomicfoundation/ethereumjs-statemanager": "2.0.1",
108
+ "@nomicfoundation/ethereumjs-trie": "6.0.1",
109
+ "@nomicfoundation/ethereumjs-tx": "5.0.1",
110
+ "@nomicfoundation/ethereumjs-util": "9.0.1",
111
+ "@nomicfoundation/ethereumjs-vm": "7.0.1",
112
112
  "@nomicfoundation/solidity-analyzer": "^0.1.0",
113
113
  "@sentry/node": "^5.18.1",
114
114
  "@types/bn.js": "^5.1.0",
@@ -21,6 +21,7 @@ export const HARDHAT_NETWORK_SUPPORTED_HARDFORKS = [
21
21
  "arrowGlacier",
22
22
  "grayGlacier",
23
23
  "merge",
24
+ "shanghai",
24
25
  ];
25
26
 
26
27
  export const HARDHAT_MEMPOOL_SUPPORTED_ORDERS = ["fifo", "priority"] as const;
@@ -36,7 +36,7 @@ export const defaultHardhatNetworkParams: Omit<
36
36
  HardhatNetworkConfig,
37
37
  "gas" | "initialDate"
38
38
  > = {
39
- hardfork: "merge",
39
+ hardfork: HardforkName.SHANGHAI,
40
40
  blockGasLimit: 30_000_000,
41
41
  gasPrice: HARDHAT_NETWORK_DEFAULT_GAS_PRICE,
42
42
  chainId: 31337,
@@ -5,6 +5,16 @@ import { rpcAddress, rpcData, rpcHash, rpcQuantity } from "../base-types";
5
5
 
6
6
  import { rpcTransaction } from "./transaction";
7
7
 
8
+ const rpcWithdrawalItem = t.type(
9
+ {
10
+ index: rpcQuantity,
11
+ validatorIndex: rpcQuantity,
12
+ address: rpcAddress,
13
+ amount: rpcQuantity,
14
+ },
15
+ "RpcBlockWithdrawalItem"
16
+ );
17
+
8
18
  const baseBlockResponse = {
9
19
  number: nullable(rpcQuantity),
10
20
  hash: nullable(rpcHash),
@@ -26,6 +36,8 @@ const baseBlockResponse = {
26
36
  uncles: t.array(rpcHash, "HASH Array"),
27
37
  mixHash: optional(rpcHash),
28
38
  baseFeePerGas: optional(rpcQuantity),
39
+ withdrawals: optional(t.array(rpcWithdrawalItem)),
40
+ withdrawalsRoot: optional(rpcHash),
29
41
  };
30
42
 
31
43
  export type RpcBlock = t.TypeOf<typeof rpcBlock>;
@@ -63,7 +63,7 @@ export abstract class BlockchainBase {
63
63
 
64
64
  public async getBlock(
65
65
  blockHashOrNumber: Buffer | bigint | number
66
- ): Promise<Block | null> {
66
+ ): Promise<Block> {
67
67
  if (
68
68
  (typeof blockHashOrNumber === "number" ||
69
69
  BigIntUtils.isBigInt(blockHashOrNumber)) &&
@@ -73,22 +73,32 @@ export abstract class BlockchainBase {
73
73
  }
74
74
 
75
75
  if (typeof blockHashOrNumber === "number") {
76
- return this._data.getBlockByNumber(BigInt(blockHashOrNumber)) ?? null;
76
+ const blockByNumber = this._data.getBlockByNumber(
77
+ BigInt(blockHashOrNumber)
78
+ );
79
+ if (blockByNumber === undefined) {
80
+ throw new Error("Block not found");
81
+ }
82
+ return blockByNumber;
77
83
  }
78
84
  if (BigIntUtils.isBigInt(blockHashOrNumber)) {
79
- return this._data.getBlockByNumber(blockHashOrNumber) ?? null;
85
+ const blockByNumber = this._data.getBlockByNumber(blockHashOrNumber);
86
+ if (blockByNumber === undefined) {
87
+ throw new Error("Block not found");
88
+ }
89
+ return blockByNumber;
90
+ }
91
+ const blockByHash = this._data.getBlockByHash(blockHashOrNumber);
92
+ if (blockByHash === undefined) {
93
+ throw new Error("Block not found");
80
94
  }
81
- return this._data.getBlockByHash(blockHashOrNumber) ?? null;
95
+ return blockByHash;
82
96
  }
83
97
 
84
98
  public abstract getLatestBlockNumber(): bigint;
85
99
 
86
100
  public async getLatestBlock(): Promise<Block> {
87
- const block = await this.getBlock(this.getLatestBlockNumber());
88
- if (block === null) {
89
- throw new Error("Block not found");
90
- }
91
- return block;
101
+ return this.getBlock(this.getLatestBlockNumber());
92
102
  }
93
103
 
94
104
  public getLocalTransaction(
@@ -162,7 +172,6 @@ export abstract class BlockchainBase {
162
172
  }
163
173
 
164
174
  const parentBlock = await this.getBlock(blockNumber - 1n);
165
- assertHardhatInvariant(parentBlock !== null, "Parent block should exist");
166
175
 
167
176
  const parentHash = parentBlock.hash();
168
177
  const parentTD = this._data.getTotalDifficulty(parentHash);
@@ -81,6 +81,7 @@ export function deserializeTransaction(
81
81
  } else {
82
82
  data = TransactionFactory.fromSerializedData(toBuffer(rlpSerialization), {
83
83
  common,
84
+ disableMaxInitCodeSizeCheck: true,
84
85
  });
85
86
  }
86
87
 
@@ -48,9 +48,7 @@ export class ForkBlockchain
48
48
  return this._latestBlockNumber;
49
49
  }
50
50
 
51
- public async getBlock(
52
- blockHashOrNumber: Buffer | bigint
53
- ): Promise<Block | null> {
51
+ public async getBlock(blockHashOrNumber: Buffer | bigint): Promise<Block> {
54
52
  if (
55
53
  typeof blockHashOrNumber === "bigint" &&
56
54
  this._data.isReservedBlock(blockHashOrNumber)
@@ -61,11 +59,17 @@ export class ForkBlockchain
61
59
  let block: Block | undefined | null;
62
60
  if (Buffer.isBuffer(blockHashOrNumber)) {
63
61
  block = await this._getBlockByHash(blockHashOrNumber);
64
- return block ?? null;
62
+ if (block === undefined) {
63
+ throw new Error("Block not found");
64
+ }
65
+ return block;
65
66
  }
66
67
 
67
68
  block = await this._getBlockByNumber(BigInt(blockHashOrNumber));
68
- return block ?? null;
69
+ if (block === undefined) {
70
+ throw new Error("Block not found");
71
+ }
72
+ return block;
69
73
  }
70
74
 
71
75
  public async addBlock(block: Block): Promise<Block> {
@@ -131,10 +135,10 @@ export class ForkBlockchain
131
135
  if (td !== undefined) {
132
136
  return td;
133
137
  }
134
- const block = await this.getBlock(blockHash);
135
- if (block === null) {
136
- throw new Error("Block not found");
137
- }
138
+
139
+ // fetch block to check if it exists
140
+ await this.getBlock(blockHash);
141
+
138
142
  td = this._data.getTotalDifficulty(blockHash);
139
143
  if (td === undefined) {
140
144
  throw new Error("This should never happen");
@@ -232,10 +236,12 @@ export class ForkBlockchain
232
236
  if (blockNumber > this._latestBlockNumber) {
233
237
  return undefined;
234
238
  }
235
- const block = await super.getBlock(blockNumber);
236
- if (block !== null) {
239
+
240
+ try {
241
+ const block = await super.getBlock(blockNumber);
237
242
  return block;
238
- }
243
+ } catch {}
244
+
239
245
  const rpcBlock = await this._jsonRpcClient.getBlockByNumber(
240
246
  blockNumber,
241
247
  true
@@ -254,13 +260,17 @@ export class ForkBlockchain
254
260
  }
255
261
 
256
262
  const common = this._common.copy();
257
- // We set the common's hardfork to Berlin if the remote block doesn't have
258
- // EIP-1559 activated. The reason for this is that ethereumjs throws if we
259
- // have a base fee for an older hardfork, and set a default one for London.
260
- if (rpcBlock.baseFeePerGas !== undefined) {
261
- common.setHardfork("london"); // TODO: consider changing this to "latest hardfork"
262
- } else {
263
+ // We set the common's hardfork depending on the remote block fields, to
264
+ // prevent ethereumjs from throwing if unsupported fields are passed.
265
+ // We use "berlin" for pre-EIP-1559 blocks (blocks without baseFeePerGas),
266
+ // "merge" for blocks that have baseFeePerGas but not withdrawals,
267
+ // and "shanghai" for blocks with withdrawals
268
+ if (rpcBlock.baseFeePerGas === undefined) {
263
269
  common.setHardfork("berlin");
270
+ } else if (rpcBlock.withdrawals === undefined) {
271
+ common.setHardfork("merge");
272
+ } else {
273
+ common.setHardfork("shanghai");
264
274
  }
265
275
 
266
276
  // we don't include the transactions to add our own custom tx objects,
@@ -23,8 +23,10 @@ export function rpcToBlockData(rpcBlock: RpcBlockWithTransactions): BlockData {
23
23
  mixHash: rpcBlock.mixHash,
24
24
  nonce: rpcBlock.nonce,
25
25
  baseFeePerGas: rpcBlock.baseFeePerGas,
26
+ withdrawalsRoot: rpcBlock.withdrawalsRoot,
26
27
  },
27
28
  transactions: rpcBlock.transactions.map(rpcToTxData),
29
+ withdrawals: rpcBlock.withdrawals,
28
30
  // uncleHeaders are not fetched and set here as provider methods for getting them are not supported
29
31
  };
30
32
  }
@@ -86,11 +86,13 @@ import {
86
86
  import { assertHardhatNetworkInvariant } from "../utils/assertions";
87
87
  import { optional } from "../../../util/io-ts";
88
88
  import * as BigIntUtils from "../../../util/bigint";
89
+ import { HardforkName } from "../../../util/hardforks";
89
90
  import { ModulesLogger } from "./logger";
90
91
 
91
- const EIP1559_MIN_HARDFORK = "london";
92
- const ACCESS_LIST_MIN_HARDFORK = "berlin";
93
- const EIP155_MIN_HARDFORK = "spuriousDragon";
92
+ const EIP1559_MIN_HARDFORK = HardforkName.LONDON;
93
+ const ACCESS_LIST_MIN_HARDFORK = HardforkName.BERLIN;
94
+ const EIP155_MIN_HARDFORK = HardforkName.SPURIOUS_DRAGON;
95
+ const EIP3860_MIN_HARDFORK = HardforkName.SHANGHAI;
94
96
 
95
97
  /* eslint-disable @nomiclabs/hardhat-internal-rules/only-hardhat-error */
96
98
  export class EthModule {
@@ -960,7 +962,10 @@ export class EthModule {
960
962
  try {
961
963
  tx = TransactionFactory.fromSerializedData(rawTx, {
962
964
  common: this._common,
965
+ disableMaxInitCodeSizeCheck: true,
963
966
  });
967
+
968
+ this._validateEip3860MaxInitCodeSize(tx.to?.toBuffer(), tx.data);
964
969
  } catch (error) {
965
970
  // This section of the code is incredibly dependant of TransactionFactory.fromSerializedData
966
971
  // AccessListEIP2930Transaction.fromSerializedTx and Transaction.fromSerializedTx
@@ -1017,6 +1022,11 @@ export class EthModule {
1017
1022
  private async _sendTransactionAction(
1018
1023
  transactionRequest: RpcTransactionRequest
1019
1024
  ): Promise<string> {
1025
+ this._validateEip3860MaxInitCodeSize(
1026
+ transactionRequest.to,
1027
+ transactionRequest.data ?? Buffer.from([])
1028
+ );
1029
+
1020
1030
  const expectedChainId = this._common.chainId();
1021
1031
  if (
1022
1032
  transactionRequest.chainId !== undefined &&
@@ -1742,6 +1752,33 @@ You can use them by running Hardhat Network with 'hardfork' ${EIP155_MIN_HARDFOR
1742
1752
  }
1743
1753
  }
1744
1754
 
1755
+ private _validateEip3860MaxInitCodeSize(
1756
+ to: Buffer | undefined,
1757
+ data: Buffer
1758
+ ) {
1759
+ if (!this._common.gteHardfork(EIP3860_MIN_HARDFORK)) {
1760
+ // this check is only relevant after shanghai
1761
+ return;
1762
+ }
1763
+
1764
+ if (to !== undefined) {
1765
+ // this check is only relevant for deployments
1766
+ return;
1767
+ }
1768
+
1769
+ if (this._node.allowUnlimitedContractSize) {
1770
+ // this check is not performed if allowUnlimitedContractSize is enabled
1771
+ return;
1772
+ }
1773
+
1774
+ const maxInitCodeSize = this._common.param("vm", "maxInitCodeSize");
1775
+ if (data.length > maxInitCodeSize) {
1776
+ throw new InvalidArgumentsError(`Trying to send a deployment transaction whose init code length is ${data.length}. The max length allowed by EIP-3860 is ${maxInitCodeSize}.
1777
+
1778
+ Enable the 'allowUnlimitedContractSize' option to allow init codes of any length.`);
1779
+ }
1780
+ }
1781
+
1745
1782
  private _validateRawTransactionHardforkRequirements(rawTx: Buffer) {
1746
1783
  if (rawTx[0] <= 0x7f && rawTx[0] !== 1 && rawTx[0] !== 2) {
1747
1784
  throw new InvalidArgumentsError(`Invalid transaction type ${rawTx[0]}.
@@ -140,7 +140,6 @@ export class HardhatNode extends EventEmitter {
140
140
  automine,
141
141
  genesisAccounts,
142
142
  blockGasLimit,
143
- allowUnlimitedContractSize,
144
143
  tracingConfig,
145
144
  minGasPrice,
146
145
  mempoolOrder,
@@ -149,6 +148,9 @@ export class HardhatNode extends EventEmitter {
149
148
  allowBlocksWithSameTimestamp,
150
149
  } = config;
151
150
 
151
+ const allowUnlimitedContractSize =
152
+ config.allowUnlimitedContractSize ?? false;
153
+
152
154
  let stateManager: StateManager;
153
155
  let blockchain: HardhatBlockchainInterface;
154
156
  let initialBlockTimeOffset: bigint | undefined;
@@ -294,6 +296,7 @@ export class HardhatNode extends EventEmitter {
294
296
  hardfork,
295
297
  hardforkActivations,
296
298
  mixHashGenerator,
299
+ allowUnlimitedContractSize,
297
300
  allowBlocksWithSameTimestamp,
298
301
  tracingConfig,
299
302
  forkNetworkId,
@@ -380,6 +383,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
380
383
  public readonly hardfork: HardforkName,
381
384
  private readonly _hardforkActivations: HardforkHistoryConfig,
382
385
  private _mixHashGenerator: RandomBufferGenerator,
386
+ public readonly allowUnlimitedContractSize: boolean,
383
387
  private _allowBlocksWithSameTimestamp: boolean,
384
388
  tracingConfig?: TracingConfig,
385
389
  private _forkNetworkId?: number,
@@ -453,13 +457,18 @@ Hardhat Network's forking functionality only works with blocks from at least spu
453
457
  if ("maxFeePerGas" in txParams) {
454
458
  tx = FeeMarketEIP1559Transaction.fromTxData(txParams, {
455
459
  common: this._vm._common,
460
+ disableMaxInitCodeSizeCheck: true,
456
461
  });
457
462
  } else if ("accessList" in txParams) {
458
463
  tx = AccessListEIP2930Transaction.fromTxData(txParams, {
459
464
  common: this._vm._common,
465
+ disableMaxInitCodeSizeCheck: true,
460
466
  });
461
467
  } else {
462
- tx = Transaction.fromTxData(txParams, { common: this._vm._common });
468
+ tx = Transaction.fromTxData(txParams, {
469
+ common: this._vm._common,
470
+ disableMaxInitCodeSizeCheck: true,
471
+ });
463
472
  }
464
473
 
465
474
  return tx.sign(pk);
@@ -889,13 +898,21 @@ Hardhat Network's forking functionality only works with blocks from at least spu
889
898
  );
890
899
  }
891
900
 
892
- const block = await this._blockchain.getBlock(blockNumberOrPending);
893
- return block ?? undefined;
901
+ try {
902
+ const block = await this._blockchain.getBlock(blockNumberOrPending);
903
+ return block;
904
+ } catch {
905
+ return undefined;
906
+ }
894
907
  }
895
908
 
896
909
  public async getBlockByHash(blockHash: Buffer): Promise<Block | undefined> {
897
- const block = await this._blockchain.getBlock(blockHash);
898
- return block ?? undefined;
910
+ try {
911
+ const block = await this._blockchain.getBlock(blockHash);
912
+ return block;
913
+ } catch {
914
+ return undefined;
915
+ }
899
916
  }
900
917
 
901
918
  public async getBlockByTransactionHash(
@@ -1402,17 +1419,13 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1402
1419
  txWithCommon = new FakeSenderAccessListEIP2930Transaction(
1403
1420
  sender,
1404
1421
  tx,
1405
- {
1406
- common: vm._common,
1407
- }
1422
+ { common: vm._common }
1408
1423
  );
1409
1424
  } else if (tx.type === 2) {
1410
1425
  txWithCommon = new FakeSenderEIP1559Transaction(
1411
1426
  sender,
1412
1427
  { ...tx, gasPrice: undefined },
1413
- {
1414
- common: vm._common,
1415
- }
1428
+ { common: vm._common }
1416
1429
  );
1417
1430
  } else {
1418
1431
  throw new InternalError(
@@ -1424,10 +1437,18 @@ Hardhat Network's forking functionality only works with blocks from at least spu
1424
1437
  if (txHash.equals(hash)) {
1425
1438
  const vmDebugTracer = new VMDebugTracer(vm);
1426
1439
  return vmDebugTracer.trace(async () => {
1427
- await vm.runTx({ tx: txWithCommon, block });
1440
+ await vm.runTx({
1441
+ tx: txWithCommon,
1442
+ block,
1443
+ skipHardForkValidation: true,
1444
+ });
1428
1445
  }, config);
1429
1446
  }
1430
- await vm.runTx({ tx: txWithCommon, block });
1447
+ await vm.runTx({
1448
+ tx: txWithCommon,
1449
+ block,
1450
+ skipHardForkValidation: true,
1451
+ });
1431
1452
  }
1432
1453
  throw new TransactionExecutionError(
1433
1454
  `Unable to find a transaction in a block that contains that transaction, this should never happen`
@@ -2366,6 +2387,30 @@ Hardhat Network's forking functionality only works with blocks from at least spu
2366
2387
  // know anything about the txs in the current block
2367
2388
  }
2368
2389
 
2390
+ // If this VM is running without EIP4895, but the block has withdrawals,
2391
+ // we remove them and the withdrawal root from the block
2392
+ if (
2393
+ !this.isEip4895Active(blockNumberOrPending) &&
2394
+ blockContext.withdrawals !== undefined
2395
+ ) {
2396
+ blockContext = Block.fromBlockData(
2397
+ {
2398
+ ...blockContext,
2399
+ withdrawals: undefined,
2400
+ header: {
2401
+ ...blockContext.header,
2402
+ withdrawalsRoot: undefined,
2403
+ },
2404
+ },
2405
+ {
2406
+ freeze: false,
2407
+ common: this._vm._common,
2408
+
2409
+ skipConsensusFormatValidation: true,
2410
+ }
2411
+ );
2412
+ }
2413
+
2369
2414
  // NOTE: This is a workaround of both an @nomicfoundation/ethereumjs-vm limitation, and
2370
2415
  // a bug in Hardhat Network.
2371
2416
  //
@@ -2415,6 +2460,7 @@ Hardhat Network's forking functionality only works with blocks from at least spu
2415
2460
  skipNonce: true,
2416
2461
  skipBalance: true,
2417
2462
  skipBlockGasLimitValidation: true,
2463
+ skipHardForkValidation: true,
2418
2464
  });
2419
2465
  } finally {
2420
2466
  if (originalCommon !== undefined) {
@@ -2528,6 +2574,19 @@ Hardhat Network's forking functionality only works with blocks from at least spu
2528
2574
  return this._vm._common.gteHardfork("london");
2529
2575
  }
2530
2576
 
2577
+ public isEip4895Active(blockNumberOrPending?: bigint | "pending"): boolean {
2578
+ if (
2579
+ blockNumberOrPending !== undefined &&
2580
+ blockNumberOrPending !== "pending"
2581
+ ) {
2582
+ return this._vm._common.hardforkGteHardfork(
2583
+ this._selectHardfork(blockNumberOrPending),
2584
+ "shanghai"
2585
+ );
2586
+ }
2587
+ return this._vm._common.gteHardfork("shanghai");
2588
+ }
2589
+
2531
2590
  public isPostMergeHardfork(): boolean {
2532
2591
  return hardforkGte(this.hardfork, HardforkName.MERGE);
2533
2592
  }