rocketh 0.10.18 → 0.11.2

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 (107) hide show
  1. package/CHANGELOG.md +52 -1
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/{esm/cli.js → cli.js} +1 -2
  4. package/dist/cli.js.map +1 -0
  5. package/dist/{esm/environment → environment}/deployments.d.ts +1 -0
  6. package/dist/environment/deployments.d.ts.map +1 -0
  7. package/dist/{esm/environment → environment}/deployments.js +41 -23
  8. package/dist/environment/deployments.js.map +1 -0
  9. package/dist/environment/index.d.ts.map +1 -0
  10. package/dist/{esm/environment → environment}/index.js +42 -10
  11. package/dist/environment/index.js.map +1 -0
  12. package/dist/environment/providers/BaseProvider.d.ts +8 -0
  13. package/dist/environment/providers/BaseProvider.d.ts.map +1 -0
  14. package/dist/environment/providers/BaseProvider.js.map +1 -0
  15. package/dist/environment/providers/TransactionHashTracker.d.ts +11 -0
  16. package/dist/environment/providers/TransactionHashTracker.d.ts.map +1 -0
  17. package/dist/{esm/environment → environment}/providers/TransactionHashTracker.js +1 -1
  18. package/dist/environment/providers/TransactionHashTracker.js.map +1 -0
  19. package/dist/{esm/environment → environment}/types.d.ts +7 -3
  20. package/dist/environment/types.d.ts.map +1 -0
  21. package/dist/{esm/executor → environment}/types.js.map +1 -1
  22. package/dist/environment/utils/artifacts.d.ts.map +1 -0
  23. package/dist/environment/utils/artifacts.js.map +1 -0
  24. package/dist/environment/utils/chains.d.ts.map +1 -0
  25. package/dist/environment/utils/chains.js.map +1 -0
  26. package/dist/{esm/executor → executor}/index.d.ts +9 -1
  27. package/dist/executor/index.d.ts.map +1 -0
  28. package/dist/{esm/executor → executor}/index.js +10 -25
  29. package/dist/executor/index.js.map +1 -0
  30. package/dist/executor/types.d.ts.map +1 -0
  31. package/dist/{esm/internal → executor}/types.js.map +1 -1
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/internal/logging.d.ts.map +1 -0
  35. package/dist/internal/logging.js.map +1 -0
  36. package/dist/{esm/internal → internal}/types.d.ts +1 -0
  37. package/dist/internal/types.d.ts.map +1 -0
  38. package/dist/{esm/environment → internal}/types.js.map +1 -1
  39. package/dist/utils/eth.d.ts.map +1 -0
  40. package/dist/utils/eth.js.map +1 -0
  41. package/dist/utils/fs.d.ts.map +1 -0
  42. package/dist/utils/fs.js.map +1 -0
  43. package/dist/utils/json.d.ts.map +1 -0
  44. package/dist/utils/json.js.map +1 -0
  45. package/package.json +22 -22
  46. package/src/cli.ts +1 -2
  47. package/src/environment/deployments.ts +59 -27
  48. package/src/environment/index.ts +47 -10
  49. package/src/environment/providers/BaseProvider.ts +4 -105
  50. package/src/environment/providers/TransactionHashTracker.ts +9 -5
  51. package/src/environment/types.ts +10 -3
  52. package/src/executor/index.ts +25 -31
  53. package/src/internal/types.ts +1 -0
  54. package/src/utils/eth.ts +1 -8
  55. package/tsconfig.json +1 -1
  56. package/dist/esm/cli.d.ts.map +0 -1
  57. package/dist/esm/cli.js.map +0 -1
  58. package/dist/esm/environment/deployments.d.ts.map +0 -1
  59. package/dist/esm/environment/deployments.js.map +0 -1
  60. package/dist/esm/environment/index.d.ts.map +0 -1
  61. package/dist/esm/environment/index.js.map +0 -1
  62. package/dist/esm/environment/providers/BaseProvider.d.ts +0 -53
  63. package/dist/esm/environment/providers/BaseProvider.d.ts.map +0 -1
  64. package/dist/esm/environment/providers/BaseProvider.js.map +0 -1
  65. package/dist/esm/environment/providers/TransactionHashTracker.d.ts +0 -8
  66. package/dist/esm/environment/providers/TransactionHashTracker.d.ts.map +0 -1
  67. package/dist/esm/environment/providers/TransactionHashTracker.js.map +0 -1
  68. package/dist/esm/environment/types.d.ts.map +0 -1
  69. package/dist/esm/environment/utils/artifacts.d.ts.map +0 -1
  70. package/dist/esm/environment/utils/artifacts.js.map +0 -1
  71. package/dist/esm/environment/utils/chains.d.ts.map +0 -1
  72. package/dist/esm/environment/utils/chains.js.map +0 -1
  73. package/dist/esm/executor/index.d.ts.map +0 -1
  74. package/dist/esm/executor/index.js.map +0 -1
  75. package/dist/esm/executor/types.d.ts.map +0 -1
  76. package/dist/esm/index.d.ts.map +0 -1
  77. package/dist/esm/index.js.map +0 -1
  78. package/dist/esm/internal/logging.d.ts.map +0 -1
  79. package/dist/esm/internal/logging.js.map +0 -1
  80. package/dist/esm/internal/types.d.ts.map +0 -1
  81. package/dist/esm/utils/eth.d.ts.map +0 -1
  82. package/dist/esm/utils/eth.js.map +0 -1
  83. package/dist/esm/utils/fs.d.ts.map +0 -1
  84. package/dist/esm/utils/fs.js.map +0 -1
  85. package/dist/esm/utils/json.d.ts.map +0 -1
  86. package/dist/esm/utils/json.js.map +0 -1
  87. /package/dist/{esm/cli.d.ts → cli.d.ts} +0 -0
  88. /package/dist/{esm/environment → environment}/index.d.ts +0 -0
  89. /package/dist/{esm/environment → environment}/providers/BaseProvider.js +0 -0
  90. /package/dist/{esm/environment → environment}/types.js +0 -0
  91. /package/dist/{esm/environment → environment}/utils/artifacts.d.ts +0 -0
  92. /package/dist/{esm/environment → environment}/utils/artifacts.js +0 -0
  93. /package/dist/{esm/environment → environment}/utils/chains.d.ts +0 -0
  94. /package/dist/{esm/environment → environment}/utils/chains.js +0 -0
  95. /package/dist/{esm/executor → executor}/types.d.ts +0 -0
  96. /package/dist/{esm/executor → executor}/types.js +0 -0
  97. /package/dist/{esm/index.d.ts → index.d.ts} +0 -0
  98. /package/dist/{esm/index.js → index.js} +0 -0
  99. /package/dist/{esm/internal → internal}/logging.d.ts +0 -0
  100. /package/dist/{esm/internal → internal}/logging.js +0 -0
  101. /package/dist/{esm/internal → internal}/types.js +0 -0
  102. /package/dist/{esm/utils → utils}/eth.d.ts +0 -0
  103. /package/dist/{esm/utils → utils}/eth.js +0 -0
  104. /package/dist/{esm/utils → utils}/fs.d.ts +0 -0
  105. /package/dist/{esm/utils → utils}/fs.js +0 -0
  106. /package/dist/{esm/utils → utils}/json.d.ts +0 -0
  107. /package/dist/{esm/utils → utils}/json.js +0 -0
@@ -12,6 +12,8 @@ export function execute(context, callback, options) {
12
12
  scriptModule.providedContext = context;
13
13
  scriptModule.tags = options.tags;
14
14
  scriptModule.dependencies = options.dependencies;
15
+ scriptModule.id = options.id;
16
+ // scriptModule.skip
15
17
  // TODO id + skip
16
18
  return scriptModule;
17
19
  }
@@ -284,10 +286,10 @@ Do you want to proceed (note that gas price can change for each tx)`,
284
286
  for (const deployScript of scriptsToRun.concat(scriptsToRunAtTheEnd)) {
285
287
  const filename = path.basename(deployScript.filePath);
286
288
  const relativeFilepath = path.relative('.', deployScript.filePath);
287
- // if (deployScript.func.id && this.db.migrations[deployScript.func.id]) {
288
- // logger.info(`skipping ${filename} as migrations already executed and complete`);
289
- // continue;
290
- // }
289
+ if (deployScript.func.id && external.hasMigrationBeenDone(deployScript.func.id)) {
290
+ logger.info(`skipping ${filename} as migrations already executed and complete`);
291
+ continue;
292
+ }
291
293
  let skip = false;
292
294
  const spinner = spin(`- Executing ${filename}`);
293
295
  if (deployScript.func.skip) {
@@ -312,27 +314,10 @@ Do you want to proceed (note that gas price can change for each tx)`,
312
314
  throw e;
313
315
  }
314
316
  if (result && typeof result === 'boolean') {
315
- // if (!deployScript.func.id) {
316
- // throw new Error(
317
- // `${deployScript.filePath} return true to not be executed again, but does not provide an id. the script function needs to have the field "id" to be set`
318
- // );
319
- // }
320
- // this.db.migrations[deployScript.func.id] = Math.floor(Date.now() / 1000);
321
- const deploymentFolderPath = config.deployments;
322
- // TODO refactor to extract this whole path and folder existence stuff
323
- // const toSave = this.db.writeDeploymentsToFiles && this.network.saveDeployments;
324
- // if (toSave) {
325
- // try {
326
- // fs.mkdirSync(this.deploymentsPath);
327
- // } catch (e) {}
328
- // try {
329
- // fs.mkdirSync(path.join(this.deploymentsPath, deploymentFolderPath));
330
- // } catch (e) {}
331
- // fs.writeFileSync(
332
- // path.join(this.deploymentsPath, deploymentFolderPath, '.migrations.json'),
333
- // JSON.stringify(this.db.migrations, null, ' ')
334
- // );
335
- // }
317
+ if (!deployScript.func.id) {
318
+ throw new Error(`${deployScript.filePath} return true to not be executed again, but does not provide an id. the script function needs to have the field "id" to be set`);
319
+ }
320
+ internal.recordMigration(deployScript.func.id);
336
321
  }
337
322
  }
338
323
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,oBAAoB,CAC/B,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,oBAAoB,GAAG,oBAAoB,EACjE,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,IACxD,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAEhH,MAAM,WAAW,kBAAkB,CAClC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IAE3D,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAC/G,IAAI,GAAG,OAAO,CACd,CAAC;IACF,eAAe,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CACN,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,EAC9E,IAAI,CAAC,EAAE,cAAc,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,eAAe,CAC1B,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,IAClF;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,CACzB,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,oBAAoB,GAAG,oBAAoB,EACjE,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,IACxD,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/internal/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAC,iBAAiB,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,QAOxC;AAED,eAAO,MAAM,MAAM,6BAAkB,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACvC,IAAI,IAAI,iBAAiB,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACtC,CAAC;AA4CF,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAOxD;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,QAIlC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC,OAAO,EAAC,MAAM,EAAE,OAAO,IAAI,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAC9D,6BAA6B;AAC7B,MAAM,EAAE,CAAC;AAET,MAAM,UAAU,WAAW,CAAC,KAAa;IACxC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAQtC,MAAM,uBAAuB,GAAsB;IAClD,KAAK,CAAC,GAAY;QACjB,IAAI,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,CAAC,GAAY;QACnB,IAAI,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,GAAY;QAChB,IAAI,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AACF,MAAM,qBAAqB,GAAsB;IAChD,KAAK;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI;QACH,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO;QACN,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI;QACH,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AACF,sDAAsD;AACtD,4EAA4E;AAC5E,IAAI;AAEJ,iCAAiC;AACjC,IAAI,QAAQ,GAAG,uBAAuB,CAAC;AACvC,MAAM,UAAU,IAAI,CAAC,OAAgB;IACpC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IACjB,CAAC;SAAM,CAAC;QACP,OAAO,qBAAqB,CAAC;IAC9B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IAClC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;AACF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export type InternalEnvironment = {
2
2
  exportDeploymentsAsTypes(): Promise<void>;
3
3
  recoverTransactionsIfAny(): Promise<void>;
4
+ recordMigration(id: string): void;
4
5
  };
5
6
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IACjC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/environment/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/internal/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eth.d.ts","sourceRoot":"","sources":["../../src/utils/eth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,4BAA4B,EAAC,MAAM,UAAU,CAAC;AAOvE,MAAM,MAAM,uBAAuB,GAAG;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,eAAe,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,eAAe,CAAC;IAC7B,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,EAAE,CAAC;AAChD,MAAM,MAAM,2BAA2B,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,CAAC;AAE9F,wBAAsB,mBAAmB,CACxC,QAAQ,EAAE,4BAA4B,EACtC,OAAO,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACxC,OAAO,CAAC,sBAAsB,CAAC,CA8CjC;AAED,wBAAsB,wBAAwB,CAC7C,QAAQ,EAAE,4BAA4B,EACtC,OAAO,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,GAC7C,OAAO,CAAC,2BAA2B,CAAC,CAkBtC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/utils/eth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAc1G;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAUlE;AAED,eAAO,MAAM,QAAQ,GACpB,KAAK,MAAM,EACX,SAAQ,GAAG,EAAO,EAClB,SAAS,MAAM,EACf,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,KAC5C,KAAK,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACnB,CAoBA,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AACA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAKjD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAShD;AAED,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,UAE/E;AAED,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAExD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAM;IAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAM;IAC1C,IACC,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAC7B,CAAC;QACF,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,YAAY,CAAc,IAAa,EAAE,KAAuB;IAC/E,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,YAAY,CAAc,GAAW;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,46 +1,46 @@
1
1
  {
2
2
  "name": "rocketh",
3
- "version": "0.10.18",
3
+ "version": "0.11.2",
4
4
  "description": "deploy smart contract on ethereum-compatible networks",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "type": "module",
9
- "main": "dist/esm/index.js",
10
- "module": "dist/esm/index.js",
11
- "types": "dist/esm/index.d.ts",
9
+ "main": "dist/index.js",
10
+ "module": "dist/index.js",
11
+ "types": "dist/index.d.ts",
12
12
  ".": {
13
13
  "import": {
14
- "types": "./dist/esm/index.d.ts",
15
- "default": "./dist/esm/index.js"
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
16
  }
17
17
  },
18
18
  "bin": {
19
- "rocketh": "dist/esm/cli.js"
19
+ "rocketh": "dist/cli.js"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/node": "^20.14.8",
23
- "abitype": "^1.0.4",
22
+ "@types/node": "^22.13.10",
23
+ "abitype": "^1.0.8",
24
24
  "as-soon": "^0.0.11",
25
- "eip-1193": "^0.5.0",
25
+ "eip-1193": "^0.6.2",
26
26
  "ipfs-gateway-emulator": "4.2.1-ipfs.2",
27
- "rimraf": "^5.0.7",
28
- "typedoc": "^0.26.2",
29
- "typescript": "^5.5.2"
27
+ "rimraf": "^6.0.1",
28
+ "typedoc": "^0.27.9",
29
+ "typescript": "^5.8.2"
30
30
  },
31
31
  "dependencies": {
32
- "@types/figlet": "^1.5.8",
32
+ "@types/figlet": "^1.7.0",
33
33
  "@types/prompts": "^2.4.9",
34
- "commander": "^12.1.0",
35
- "eip-1193-jsonrpc-provider": "^0.4.0",
36
- "ethers": "^6.13.1",
37
- "figlet": "^1.7.0",
38
- "ldenv": "^0.3.10",
39
- "named-logs": "^0.2.4",
34
+ "commander": "^13.1.0",
35
+ "eip-1193-jsonrpc-provider": "^0.4.2",
36
+ "ethers": "^6.13.5",
37
+ "figlet": "^1.8.0",
38
+ "ldenv": "^0.3.12",
39
+ "named-logs": "^0.3.2",
40
40
  "named-logs-console": "^0.3.1",
41
41
  "prompts": "^2.4.2",
42
- "tsx": "^4.19.2",
43
- "viem": "^2.16.2"
42
+ "tsx": "^4.19.3",
43
+ "viem": "^2.23.10"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "tsc --project tsconfig.json",
package/src/cli.ts CHANGED
@@ -6,7 +6,7 @@ import pkg from '../package.json' with {type: 'json'};
6
6
 
7
7
  loadEnv();
8
8
 
9
- const commandName = pkg.name;
9
+ const commandName = "rocketh";
10
10
  const program = new Command();
11
11
  program
12
12
  .name(commandName)
@@ -24,7 +24,6 @@ program
24
24
 
25
25
  const options = program.opts();
26
26
 
27
- console.log(options);
28
27
 
29
28
  loadAndExecuteDeployments({
30
29
  ...(options as ConfigOptions),
@@ -8,35 +8,43 @@ export function loadDeployments(
8
8
  networkName: string,
9
9
  onlyABIAndAddress?: boolean,
10
10
  expectedChain?: {chainId: string; genesisHash?: `0x${string}`; deleteDeploymentsIfDifferentGenesisHash?: boolean}
11
- ): {deployments: UnknownDeployments; chainId?: string; genesisHash?: `0x${string}`} {
11
+ ): {
12
+ deployments: UnknownDeployments;
13
+ migrations: Record<string, number>;
14
+ chainId?: string;
15
+ genesisHash?: `0x${string}`;
16
+ } {
12
17
  const deploymentsFound: UnknownDeployments = {};
13
18
  const deployPath = path.join(deploymentsPath, networkName);
14
19
 
15
20
  let filesStats;
16
21
  try {
17
- filesStats = traverse(deployPath, undefined, undefined, (name) => !name.startsWith('.') && name !== 'solcInputs');
22
+ filesStats = traverse(
23
+ deployPath,
24
+ undefined,
25
+ undefined,
26
+ (name) => !(name.startsWith('.') && name !== '.migrations.json') && name !== 'solcInputs'
27
+ );
18
28
  } catch (e) {
19
29
  // console.log('no folder at ' + deployPath);
20
- return {deployments: {}};
30
+ return {deployments: {}, migrations: {}};
21
31
  }
22
32
  let chainId: string;
23
33
  let genesisHash: `0x${string}` | undefined;
24
34
  if (filesStats.length > 0) {
25
35
  const chainIdFilepath = path.join(deployPath, '.chainId');
26
- if (fs.existsSync(chainIdFilepath)) {
36
+ const chainFilepath = path.join(deployPath, '.chain');
37
+ if (fs.existsSync(chainFilepath)) {
38
+ const chainSTR = fs.readFileSync(chainFilepath, 'utf-8');
39
+ const chainData = JSON.parse(chainSTR);
40
+ chainId = chainData.chainId;
41
+ genesisHash = chainData.genesisHash;
42
+ } else if (fs.existsSync(chainIdFilepath)) {
27
43
  chainId = fs.readFileSync(chainIdFilepath, 'utf-8').trim();
28
44
  } else {
29
- const chainFilepath = path.join(deployPath, '.chain');
30
- if (fs.existsSync(chainFilepath)) {
31
- const chainSTR = fs.readFileSync(chainFilepath, 'utf-8');
32
- const chainData = JSON.parse(chainSTR);
33
- chainId = chainData.chainId;
34
- genesisHash = chainData.genesisHash;
35
- } else {
36
- throw new Error(
37
- `A '.chain' or '.chainId' file is expected to be present in the deployment folder for network ${networkName}`
38
- );
39
- }
45
+ throw new Error(
46
+ `A '.chain' or '.chainId' file is expected to be present in the deployment folder for network ${networkName}`
47
+ );
40
48
  }
41
49
 
42
50
  if (expectedChain) {
@@ -46,22 +54,46 @@ export function loadDeployments(
46
54
  );
47
55
  }
48
56
 
49
- if (expectedChain.genesisHash && expectedChain.genesisHash !== genesisHash) {
50
- if (expectedChain.deleteDeploymentsIfDifferentGenesisHash) {
51
- // we delete the old folder
57
+ if (genesisHash) {
58
+ if (expectedChain.genesisHash && expectedChain.genesisHash !== genesisHash) {
59
+ if (expectedChain.deleteDeploymentsIfDifferentGenesisHash) {
60
+ // we delete the old folder
52
61
 
53
- fs.rmSync(deployPath, {recursive: true, force: true});
54
- return {deployments: {}};
55
- } else {
56
- throw new Error(
57
- `Loading deployment in folder '${deployPath}' (with genesisHash: ${genesisHash}) for a different genesisHash (${expectedChain.genesisHash})`
58
- );
62
+ fs.rmSync(deployPath, {recursive: true, force: true});
63
+ return {deployments: {}, migrations: {}};
64
+ } else {
65
+ throw new Error(
66
+ `Loading deployment in folder '${deployPath}' (with genesisHash: ${genesisHash}) for a different genesisHash (${expectedChain.genesisHash})`
67
+ );
68
+ }
59
69
  }
70
+ } else {
71
+ console.warn(
72
+ `genesisHash not found in folder '${deployPath}' (with chainId: ${chainId}), writing .chain with expected one...`
73
+ );
74
+ fs.writeFileSync(
75
+ chainFilepath,
76
+ JSON.stringify({chainId: expectedChain.chainId, genesisHash: expectedChain.genesisHash})
77
+ );
78
+ try {
79
+ fs.unlinkSync(chainIdFilepath);
80
+ } catch {}
60
81
  }
61
82
  }
62
83
  } else {
63
- return {deployments: {}};
84
+ return {deployments: {}, migrations: {}};
64
85
  }
86
+
87
+ let migrations: Record<string, number> = {};
88
+ const migrationsFilepath = path.join(deployPath, '.migrations.json');
89
+ if (fs.existsSync(migrationsFilepath)) {
90
+ try {
91
+ migrations = JSON.parse(fs.readFileSync(migrationsFilepath, 'utf-8'));
92
+ } catch (err) {
93
+ console.error(`failed to parse .migrations.json`);
94
+ }
95
+ }
96
+
65
97
  let fileNames = filesStats.map((a) => a.relativePath);
66
98
  fileNames = fileNames.sort((a, b) => {
67
99
  if (a < b) {
@@ -74,7 +106,7 @@ export function loadDeployments(
74
106
  });
75
107
 
76
108
  for (const fileName of fileNames) {
77
- if (fileName.substring(fileName.length - 5) === '.json') {
109
+ if (fileName.substring(fileName.length - 5) === '.json' && fileName !== '.migrations.json') {
78
110
  const deploymentFileName = path.join(deployPath, fileName);
79
111
  let deployment = JSON.parse(fs.readFileSync(deploymentFileName).toString());
80
112
  // truffleChainId argument:
@@ -99,5 +131,5 @@ export function loadDeployments(
99
131
  deploymentsFound[name] = deployment;
100
132
  }
101
133
  }
102
- return {deployments: deploymentsFound, chainId, genesisHash};
134
+ return {deployments: deploymentsFound, migrations, chainId, genesisHash};
103
135
  }
@@ -37,7 +37,7 @@ import {ProgressIndicator, log, spin} from '../internal/logging.js';
37
37
  import {PendingExecution} from './types.js';
38
38
  import {getChain} from './utils/chains.js';
39
39
  import {mergeArtifacts} from './utils/artifacts.js';
40
- import {TransactionHashTracker} from './providers/TransactionHashTracker.js';
40
+ import {TransactionHashTracker, TransactionHashTrackerProvider} from './providers/TransactionHashTracker.js';
41
41
 
42
42
  type ReceiptResult = {receipt: EIP1193TransactionReceipt; latestBlockNumber: EIP1193QUANTITY};
43
43
 
@@ -90,7 +90,7 @@ export async function createEnvironment<
90
90
  ? config.network.provider
91
91
  : (new JSONRPCHTTPProvider(config.network.nodeUrl) as EIP1193ProviderWithoutEvents);
92
92
 
93
- const provider = new TransactionHashTracker(rawProvider);
93
+ const provider: TransactionHashTracker = new TransactionHashTrackerProvider(rawProvider);
94
94
 
95
95
  const transport = custom(provider);
96
96
  const viemClient = createPublicClient({transport});
@@ -227,7 +227,7 @@ export async function createEnvironment<
227
227
 
228
228
  // console.log(`context`, JSON.stringify(context.network, null, 2));
229
229
 
230
- const {deployments} = loadDeployments(
230
+ const {deployments, migrations} = loadDeployments(
231
231
  config.deployments,
232
232
  context.network.name,
233
233
  false,
@@ -276,8 +276,13 @@ export async function createEnvironment<
276
276
  },
277
277
  };
278
278
 
279
- function ensureDeploymentFolder(): string {
279
+ function getDeploymentFolder(): string {
280
280
  const folderPath = path.join(config.deployments, context.network.name);
281
+ return folderPath;
282
+ }
283
+
284
+ function ensureDeploymentFolder(): string {
285
+ const folderPath = getDeploymentFolder();
281
286
  fs.mkdirSync(folderPath, {recursive: true});
282
287
  // const chainIdFilepath = path.join(folderPath, '.chainId');
283
288
  // if (!fs.existsSync(chainIdFilepath)) {
@@ -319,6 +324,18 @@ export async function createEnvironment<
319
324
  return (deployments[name] || null) as Deployment<TAbi> | null;
320
325
  }
321
326
 
327
+ function hasMigrationBeenDone(id: string): boolean {
328
+ return migrations[id] ? true : false;
329
+ }
330
+
331
+ function recordMigration(id: string): void {
332
+ migrations[id] = Math.floor(Date.now() / 1000);
333
+ if (context.network.saveDeployments) {
334
+ const folderPath = ensureDeploymentFolder();
335
+ fs.writeFileSync(`${folderPath}/.migrations.json`, JSON.stringify(migrations));
336
+ }
337
+ }
338
+
322
339
  function fromAddressToNamedABIOrNull<TAbi extends Abi>(address: Address): {mergedABI: TAbi; names: string[]} | null {
323
340
  let list: {name: string; artifact: Artifact<Abi>}[] = [];
324
341
  for (const name of Object.keys(deployments)) {
@@ -346,8 +363,21 @@ export async function createEnvironment<
346
363
  return n;
347
364
  }
348
365
 
349
- async function save<TAbi extends Abi>(name: string, deployment: Deployment<TAbi>): Promise<Deployment<TAbi>> {
350
- deployments[name] = deployment;
366
+ async function save<TAbi extends Abi>(
367
+ name: string,
368
+ deployment: Deployment<TAbi>,
369
+ options?: {doNotCountAsNewDeployment?: boolean}
370
+ ): Promise<Deployment<TAbi>> {
371
+ if (!options?.doNotCountAsNewDeployment) {
372
+ let numDeployments = 1;
373
+ const oldDeployment = deployments[name];
374
+ if (oldDeployment) {
375
+ numDeployments = (oldDeployment.numDeployments || 1) + 1;
376
+ }
377
+ deployments[name] = {...deployment, numDeployments};
378
+ } else {
379
+ deployments[name] = {...deployment, numDeployments: 1};
380
+ }
351
381
  if (context.network.saveDeployments) {
352
382
  const folderPath = ensureDeploymentFolder();
353
383
  fs.writeFileSync(`${folderPath}/${name}.json`, JSONToString(deployment, 2));
@@ -359,7 +389,7 @@ export async function createEnvironment<
359
389
  if (!context.network.saveDeployments) {
360
390
  return;
361
391
  }
362
- const folderPath = ensureDeploymentFolder();
392
+ const folderPath = getDeploymentFolder();
363
393
  const filepath = path.join(folderPath, '.pending_transactions.json');
364
394
  let existingPendingTansactions: PendingTransaction[];
365
395
  try {
@@ -497,7 +527,8 @@ export async function createEnvironment<
497
527
  pendingDeployment: PendingDeployment<TAbi>,
498
528
  transaction?: EIP1193Transaction | null
499
529
  ): Promise<Deployment<TAbi>> {
500
- const message = ` - Deploying ${pendingDeployment.name} with tx:\n ${pendingDeployment.transaction.hash}${
530
+ const nameToDisplay = pendingDeployment.name || '<no name>';
531
+ const message = ` - Deploying ${nameToDisplay} with tx:\n ${pendingDeployment.transaction.hash}${
501
532
  transaction ? `\n ${displayTransaction(transaction)}` : ''
502
533
  }`;
503
534
  const {receipt, latestBlockNumber} = await waitForTransaction(pendingDeployment.transaction.hash, {
@@ -509,7 +540,7 @@ export async function createEnvironment<
509
540
  const contractAddress = pendingDeployment.expectedAddress || receipt.contractAddress;
510
541
  if (!contractAddress) {
511
542
  console.error(receipt);
512
- throw new Error(`no contract address found for ${pendingDeployment.name}`);
543
+ throw new Error(`no contract address found for ${nameToDisplay}`);
513
544
  }
514
545
 
515
546
  showMessage(` => ${contractAddress}`);
@@ -576,7 +607,11 @@ export async function createEnvironment<
576
607
  transactionIndex: receipt.transactionIndex,
577
608
  },
578
609
  };
579
- return save(pendingDeployment.name, deployment);
610
+ if (pendingDeployment.name) {
611
+ return save(pendingDeployment.name, deployment);
612
+ } else {
613
+ return deployment;
614
+ }
580
615
  }
581
616
 
582
617
  async function savePendingExecution(pendingExecution: PendingExecution) {
@@ -660,6 +695,7 @@ export async function createEnvironment<
660
695
  fromAddressToNamedABIOrNull,
661
696
  showMessage,
662
697
  showProgress,
698
+ hasMigrationBeenDone,
663
699
  };
664
700
  for (const extension of (globalThis as any).extensions) {
665
701
  env = extension(env);
@@ -670,6 +706,7 @@ export async function createEnvironment<
670
706
  internal: {
671
707
  exportDeploymentsAsTypes,
672
708
  recoverTransactionsIfAny,
709
+ recordMigration,
673
710
  },
674
711
  };
675
712
  }
@@ -1,110 +1,9 @@
1
- import {
2
- EIP1193Accounts,
3
- EIP1193AccountsRequest,
4
- EIP1193AddChainError,
5
- EIP1193Block,
6
- EIP1193BlockNumberRequest,
7
- EIP1193BlockWithTransactions,
8
- EIP1193CallRequest,
9
- EIP1193ChainIdRequest,
10
- EIP1193CoinbaseRequest,
11
- EIP1193EstimateGasRequest,
12
- EIP1193GasPriceRequest,
13
- EIP1193GenericRequest,
14
- EIP1193GenericRequestProvider,
15
- EIP1193GetBalanceRequest,
16
- EIP1193GetBlockByHashRequest,
17
- EIP1193GetBlockByNumberRequest,
18
- EIP1193GetCodeRequest,
19
- EIP1193GetLogsRequest,
20
- EIP1193GetStorageAtRequest,
21
- EIP1193GetTransactionByBlockHashAndIndexRequest,
22
- EIP1193GetTransactionByBlockNumberAndIndexRequest,
23
- EIP1193GetTransactionByHashRequest,
24
- EIP1193GetTransactionCountByHashRequest,
25
- EIP1193GetTransactionCountByNumberRequest,
26
- EIP1193GetTransactionCountRequest,
27
- EIP1193GetTransactionReceiptRequest,
28
- EIP1193GetUncleByBlockHashAndIndexRequest,
29
- EIP1193GetUncleByBlockNumberAndIndexRequest,
30
- EIP1193GetUncleCountByBlockHashRequest,
31
- EIP1193GetUncleCountByBlockNumberRequest,
32
- EIP1193LegacySignRequest,
33
- EIP1193Log,
34
- EIP1193NetListeningRequest,
35
- EIP1193NetPeerCountRequest,
36
- EIP1193NetVersionRequest,
37
- EIP1193PTypedSignRequest,
38
- EIP1193PTypedSignv4Request,
39
- EIP1193PersonalSignRequest,
40
- EIP1193ProtocolVersionRequest,
41
- EIP1193ProviderWithoutEvents,
42
- EIP1193RequestAccountsRequest,
43
- EIP1193SendRawTransactionRequest,
44
- EIP1193SendTransactionRequest,
45
- EIP1193SignTransactionRequest,
46
- EIP1193SubscribeRequest,
47
- EIP1193SwitchChainError,
48
- EIP1193SyncingRequest,
49
- EIP1193SyncingStatus,
50
- EIP1193Transaction,
51
- EIP1193TransactionReceipt,
52
- EIP1193UnsubscribeRequest,
53
- EIP1193Web3ClientVersionRequest,
54
- EIP1193Web3SHARequest,
55
- ERIP1193AddChainRequest,
56
- ERIP1193SwitchChainRequest,
57
- } from 'eip-1193';
1
+ import {EIP1193GenericRequest, EIP1193GenericRequestProvider, EIP1193ProviderWithoutEvents} from 'eip-1193';
58
2
 
59
3
  export abstract class BaseProvider implements EIP1193ProviderWithoutEvents {
60
- constructor(protected provider: EIP1193GenericRequestProvider) {}
61
- request(args: EIP1193Web3ClientVersionRequest): Promise<string>;
62
- request(args: EIP1193Web3SHARequest): Promise<`0x${string}`>;
63
- request(args: EIP1193NetVersionRequest): Promise<`0x${string}`>;
64
- request(args: EIP1193NetListeningRequest): Promise<boolean>;
65
- request(args: EIP1193NetPeerCountRequest): Promise<`0x${string}`>;
66
- request(args: EIP1193ProtocolVersionRequest): Promise<string>;
67
- request(args: EIP1193SyncingRequest): Promise<false | EIP1193SyncingStatus>;
68
- request(args: EIP1193CoinbaseRequest): Promise<`0x${string}`>;
69
- request(args: EIP1193GasPriceRequest): Promise<`0x${string}`>;
70
- request(args: EIP1193AccountsRequest): Promise<EIP1193Accounts>;
71
- request(args: EIP1193BlockNumberRequest): Promise<`0x${string}`>;
72
- request(args: EIP1193GetBalanceRequest): Promise<`0x${string}`>;
73
- request(args: EIP1193GetStorageAtRequest): Promise<`0x${string}`>;
74
- request(args: EIP1193GetTransactionCountRequest): Promise<`0x${string}`>;
75
- request(args: EIP1193GetTransactionCountByHashRequest): Promise<`0x${string}`>;
76
- request(args: EIP1193GetTransactionCountByNumberRequest): Promise<`0x${string}`>;
77
- request(args: EIP1193GetUncleCountByBlockHashRequest): Promise<`0x${string}`>;
78
- request(args: EIP1193GetUncleCountByBlockNumberRequest): Promise<`0x${string}`>;
79
- request(args: EIP1193GetCodeRequest): Promise<`0x${string}`>;
80
- request(args: EIP1193LegacySignRequest): Promise<`0x${string}`>;
81
- request(args: EIP1193SignTransactionRequest): Promise<`0x${string}`>;
82
- request(args: EIP1193SendTransactionRequest): Promise<`0x${string}`>;
83
- request(args: EIP1193SendRawTransactionRequest): Promise<`0x${string}`>;
84
- request(args: EIP1193CallRequest): Promise<`0x${string}`>;
85
- request(args: EIP1193EstimateGasRequest): Promise<`0x${string}`>;
86
- request(args: EIP1193GetBlockByHashRequest<false>): Promise<EIP1193Block | null>;
87
- request(args: EIP1193GetBlockByHashRequest<true>): Promise<EIP1193BlockWithTransactions | null>;
88
- request(args: EIP1193GetBlockByNumberRequest<false>): Promise<EIP1193Block | null>;
89
- request(args: EIP1193GetBlockByNumberRequest<true>): Promise<EIP1193BlockWithTransactions | null>;
90
- request(args: EIP1193GetTransactionByHashRequest): Promise<EIP1193Transaction | null>;
91
- request(args: EIP1193GetTransactionByBlockHashAndIndexRequest): Promise<EIP1193Transaction | null>;
92
- request(args: EIP1193GetTransactionByBlockNumberAndIndexRequest): Promise<EIP1193Transaction | null>;
93
- request(args: EIP1193GetTransactionReceiptRequest): Promise<EIP1193TransactionReceipt | null>;
94
- request(args: EIP1193GetUncleByBlockHashAndIndexRequest): Promise<EIP1193Block | null>;
95
- request(args: EIP1193GetUncleByBlockNumberAndIndexRequest): Promise<EIP1193Block | null>;
96
- request(args: EIP1193GetLogsRequest): Promise<EIP1193Log[]>;
97
- request(args: EIP1193PersonalSignRequest): Promise<`0x${string}`>;
98
- request(args: EIP1193PTypedSignv4Request): Promise<`0x${string}`>;
99
- request(args: EIP1193PTypedSignRequest): Promise<`0x${string}`>;
100
- request(args: EIP1193ChainIdRequest): Promise<`0x${string}`>;
101
- request(args: EIP1193RequestAccountsRequest): Promise<EIP1193Accounts>;
102
- request(args: ERIP1193SwitchChainRequest): Promise<EIP1193SwitchChainError | null>;
103
- request(args: ERIP1193AddChainRequest): Promise<EIP1193AddChainError | null>;
104
- request(args: EIP1193SubscribeRequest): Promise<string>;
105
- request(args: EIP1193UnsubscribeRequest): Promise<boolean>;
106
- request<T = unknown, V extends EIP1193GenericRequest = EIP1193GenericRequest>(args: V): Promise<T>;
107
- request<T = unknown, V extends EIP1193GenericRequest = EIP1193GenericRequest>(args: V): Promise<T> {
4
+ constructor(protected provider: EIP1193ProviderWithoutEvents) {}
5
+
6
+ request(args: any): Promise<any> {
108
7
  return this._request(args);
109
8
  }
110
9