rocketh 0.19.7 → 0.19.8

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 (41) hide show
  1. package/package.json +2 -2
  2. package/dist/cli.d.ts +0 -3
  3. package/dist/cli.d.ts.map +0 -1
  4. package/dist/cli.js +0 -30
  5. package/dist/cli.js.map +0 -1
  6. package/dist/environment/deployment-store.d.ts +0 -3
  7. package/dist/environment/deployment-store.d.ts.map +0 -1
  8. package/dist/environment/deployment-store.js +0 -49
  9. package/dist/environment/deployment-store.js.map +0 -1
  10. package/dist/environment/providers/BaseProvider.d.ts +0 -8
  11. package/dist/environment/providers/BaseProvider.d.ts.map +0 -1
  12. package/dist/environment/providers/BaseProvider.js +0 -10
  13. package/dist/environment/providers/BaseProvider.js.map +0 -1
  14. package/dist/environment/providers/TransactionHashTracker.d.ts +0 -11
  15. package/dist/environment/providers/TransactionHashTracker.d.ts.map +0 -1
  16. package/dist/environment/providers/TransactionHashTracker.js +0 -15
  17. package/dist/environment/providers/TransactionHashTracker.js.map +0 -1
  18. package/dist/environment/utils/artifacts.d.ts +0 -39
  19. package/dist/environment/utils/artifacts.d.ts.map +0 -1
  20. package/dist/environment/utils/artifacts.js +0 -158
  21. package/dist/environment/utils/artifacts.js.map +0 -1
  22. package/dist/environment/utils/chains.d.ts +0 -12
  23. package/dist/environment/utils/chains.d.ts.map +0 -1
  24. package/dist/environment/utils/chains.js +0 -182
  25. package/dist/environment/utils/chains.js.map +0 -1
  26. package/dist/utils/extensions.d.ts +0 -32
  27. package/dist/utils/extensions.d.ts.map +0 -1
  28. package/dist/utils/extensions.js +0 -49
  29. package/dist/utils/extensions.js.map +0 -1
  30. package/dist/utils/extensions.test.d.ts +0 -12
  31. package/dist/utils/extensions.test.d.ts.map +0 -1
  32. package/dist/utils/extensions.test.js +0 -35
  33. package/dist/utils/extensions.test.js.map +0 -1
  34. package/dist/utils/fs.d.ts +0 -16
  35. package/dist/utils/fs.d.ts.map +0 -1
  36. package/dist/utils/fs.js +0 -52
  37. package/dist/utils/fs.js.map +0 -1
  38. package/dist/utils/json.d.ts +0 -6
  39. package/dist/utils/json.d.ts.map +0 -1
  40. package/dist/utils/json.js +0 -28
  41. package/dist/utils/json.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rocketh",
3
- "version": "0.19.7",
3
+ "version": "0.19.8",
4
4
  "description": "A framework-agnostic smart contract deployment system for Ethereum-compatible networks.",
5
5
  "keywords": [
6
6
  "rocketh",
@@ -53,7 +53,7 @@
53
53
  "eip-1193-jsonrpc-provider": "^0.4.3",
54
54
  "ldenv": "^0.5.0",
55
55
  "named-logs": "^0.4.1",
56
- "@rocketh/core": "0.19.3"
56
+ "@rocketh/core": "0.19.4"
57
57
  },
58
58
  "devDependencies": {
59
59
  "as-soon": "^0.1.6",
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #! /usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js DELETED
@@ -1,30 +0,0 @@
1
- #! /usr/bin/env node
2
- import { loadEnv } from 'ldenv';
3
- import { Command } from 'commander';
4
- import pkg from '../package.json' with { type: 'json' };
5
- import { loadAndExecuteDeployments } from './executor/index.js';
6
- loadEnv();
7
- const commandName = "rocketh";
8
- const program = new Command();
9
- program
10
- .name(commandName)
11
- .version(pkg.version)
12
- .usage(`${commandName}`)
13
- .description('execute deploy scripts and store the deployments')
14
- .option('-s, --scripts <value>', 'path the folder containing the deploy scripts to execute')
15
- .option('-t, --tags <value>', 'comma separated list of tags to execute')
16
- .option('-d, --deployments <value>', 'folder where deployments are saved')
17
- .option('--skip-gas-report', 'if set skip gas report')
18
- .option('--skip-prompts', 'if set skip any prompts')
19
- .option('--save-deployments', 'if set, save deployments')
20
- .requiredOption('-e, --environment <value>', 'environment to use')
21
- .parse(process.argv);
22
- const options = program.opts();
23
- loadAndExecuteDeployments({
24
- ...options,
25
- logLevel: 1,
26
- askBeforeProceeding: options.skipPrompts ? false : true,
27
- reportGasUse: options.skipGasReport ? false : true,
28
- saveDeployments: options.saveDeployments,
29
- });
30
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,CAAC;AAEV,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACL,IAAI,CAAC,WAAW,CAAC;KACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,KAAK,CAAC,GAAG,WAAW,EAAE,CAAC;KACvB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,uBAAuB,EAAE,0DAA0D,CAAC;KAC3F,MAAM,CAAC,oBAAoB,EAAE,yCAAyC,CAAC;KACvE,MAAM,CAAC,2BAA2B,EAAE,oCAAoC,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACrD,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;KACnD,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;KACxD,cAAc,CAAC,2BAA2B,EAAE,oBAAoB,CAAC;KACjE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAG/B,yBAAyB,CAAC;IACzB,GAAI,OAA2B;IAC/B,QAAQ,EAAE,CAAC;IACX,mBAAmB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;IACvD,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;IAClD,eAAe,EAAE,OAAO,CAAC,eAAe;CACxC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { DeploymentStore } from '@rocketh/core/types';
2
- export declare function createFSDeploymentStore(): DeploymentStore;
3
- //# sourceMappingURL=deployment-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployment-store.d.ts","sourceRoot":"","sources":["../../src/environment/deployment-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,uBAAuB,IAAI,eAAe,CAmEzD"}
@@ -1,49 +0,0 @@
1
- import path from 'node:path';
2
- import fs from 'node:fs';
3
- export function createFSDeploymentStore() {
4
- function getFolder(deploymentsFolder, environmentName) {
5
- return path.join(deploymentsFolder, environmentName);
6
- }
7
- function getFile(deploymentsFolder, environmentName, name) {
8
- return path.join(deploymentsFolder, environmentName, name);
9
- }
10
- async function ensureChainInfoRecorded(deploymentsFolder, environmentName, chainId, genesisHash) {
11
- if (!(await hasFile(deploymentsFolder, environmentName, '.chain'))) {
12
- await writeFile(deploymentsFolder, environmentName, '.chain', JSON.stringify({ chainId, genesisHash }));
13
- }
14
- }
15
- async function writeFileWithChainInfo(chaininfo, deploymentsFolder, environmentName, name, content) {
16
- await ensureChainInfoRecorded(deploymentsFolder, environmentName, chaininfo.chainId, chaininfo.genesisHash);
17
- fs.mkdirSync(getFolder(deploymentsFolder, environmentName), { recursive: true });
18
- fs.writeFileSync(getFile(deploymentsFolder, environmentName, name), content);
19
- }
20
- async function writeFile(deploymentsFolder, environmentName, name, content) {
21
- fs.mkdirSync(getFolder(deploymentsFolder, environmentName), { recursive: true });
22
- fs.writeFileSync(getFile(deploymentsFolder, environmentName, name), content);
23
- }
24
- async function readFile(deploymentsFolder, environmentName, name) {
25
- return fs.readFileSync(getFile(deploymentsFolder, environmentName, name), 'utf-8');
26
- }
27
- async function deleteFile(deploymentsFolder, environmentName, name) {
28
- fs.unlinkSync(getFile(deploymentsFolder, environmentName, name));
29
- }
30
- async function listFiles(deploymentsFolder, environmentName) {
31
- return fs.readdirSync(getFolder(deploymentsFolder, environmentName));
32
- }
33
- async function hasFile(deploymentsFolder, environmentName, name) {
34
- return fs.existsSync(getFile(deploymentsFolder, environmentName, name));
35
- }
36
- async function deleteAll(deploymentsFolder, environmentName) {
37
- fs.rmSync(getFolder(deploymentsFolder, environmentName), { recursive: true, force: true });
38
- }
39
- return {
40
- writeFileWithChainInfo,
41
- listFiles,
42
- hasFile,
43
- deleteAll,
44
- readFile,
45
- writeFile,
46
- deleteFile,
47
- };
48
- }
49
- //# sourceMappingURL=deployment-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployment-store.js","sourceRoot":"","sources":["../../src/environment/deployment-store.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { EIP1193GenericRequest, EIP1193ProviderWithoutEvents } from 'eip-1193';
2
- export declare abstract class BaseProvider implements EIP1193ProviderWithoutEvents {
3
- protected provider: EIP1193ProviderWithoutEvents;
4
- constructor(provider: EIP1193ProviderWithoutEvents);
5
- request(args: any): Promise<any>;
6
- protected abstract _request<T = unknown, V extends EIP1193GenericRequest = EIP1193GenericRequest>(args: V): Promise<T>;
7
- }
8
- //# sourceMappingURL=BaseProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseProvider.d.ts","sourceRoot":"","sources":["../../../src/environment/providers/BaseProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAiC,4BAA4B,EAAC,MAAM,UAAU,CAAC;AAE5G,8BAAsB,YAAa,YAAW,4BAA4B;IAC7D,SAAS,CAAC,QAAQ,EAAE,4BAA4B;gBAAtC,QAAQ,EAAE,4BAA4B;IAE5D,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,EAC/F,IAAI,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,CAAC;CACb"}
@@ -1,10 +0,0 @@
1
- export class BaseProvider {
2
- provider;
3
- constructor(provider) {
4
- this.provider = provider;
5
- }
6
- request(args) {
7
- return this._request(args);
8
- }
9
- }
10
- //# sourceMappingURL=BaseProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseProvider.js","sourceRoot":"","sources":["../../../src/environment/providers/BaseProvider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;IACX;IAAtB,YAAsB,QAAsC;QAAtC,aAAQ,GAAR,QAAQ,CAA8B;IAAG,CAAC;IAEhE,OAAO,CAAC,IAAS;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CAKD"}
@@ -1,11 +0,0 @@
1
- import { EIP1193GenericRequest, EIP1193ProviderWithoutEvents } from 'eip-1193';
2
- import { BaseProvider } from './BaseProvider.js';
3
- export declare class TransactionHashTrackerProvider extends BaseProvider implements EIP1193ProviderWithoutEvents {
4
- transactionHashes: `0x${string}`[];
5
- constructor(provider: EIP1193ProviderWithoutEvents);
6
- protected _request<T = unknown, V extends EIP1193GenericRequest = EIP1193GenericRequest>(args: V): Promise<T>;
7
- }
8
- export type TransactionHashTracker = EIP1193ProviderWithoutEvents & {
9
- transactionHashes: `0x${string}`[];
10
- };
11
- //# sourceMappingURL=TransactionHashTracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionHashTracker.d.ts","sourceRoot":"","sources":["../../../src/environment/providers/TransactionHashTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAE,4BAA4B,EAAC,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,qBAAa,8BAA+B,SAAQ,YAAa,YAAW,4BAA4B;IAChG,iBAAiB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAM;gBAEnC,QAAQ,EAAE,4BAA4B;cAIlC,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAOnH;AAED,MAAM,MAAM,sBAAsB,GAAG,4BAA4B,GAAG;IACnE,iBAAiB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;CACnC,CAAC"}
@@ -1,15 +0,0 @@
1
- import { BaseProvider } from './BaseProvider.js';
2
- export class TransactionHashTrackerProvider extends BaseProvider {
3
- transactionHashes = [];
4
- constructor(provider) {
5
- super(provider);
6
- }
7
- async _request(args) {
8
- const response = await this.provider.request(args);
9
- if (args.method === 'eth_sendRawTransaction' || args.method === 'eth_sendTransaction') {
10
- this.transactionHashes.push(response);
11
- }
12
- return response;
13
- }
14
- }
15
- //# sourceMappingURL=TransactionHashTracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionHashTracker.js","sourceRoot":"","sources":["../../../src/environment/providers/TransactionHashTracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,8BAA+B,SAAQ,YAAY;IACxD,iBAAiB,GAAoB,EAAE,CAAC;IAE/C,YAAY,QAAsC;QACjD,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,QAAQ,CAAuE,IAAO;QACrG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAW,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,wBAAwB,IAAI,IAAI,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;YACvF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAyB,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,QAAa,CAAC;IACtB,CAAC;CACD"}
@@ -1,39 +0,0 @@
1
- import { Abi } from 'abitype';
2
- import type { Artifact, DevDoc, UserDoc } from '../../types.js';
3
- type CreateMutable<Type> = {
4
- -readonly [Property in keyof Type]: Type[Property];
5
- };
6
- export declare function mergeABIs(list: {
7
- name: string;
8
- abi: Abi;
9
- }[], options?: {
10
- doNotCheckForConflicts?: boolean;
11
- }): {
12
- mergedABI: (import("abitype").AbiConstructor | import("abitype").AbiError | import("abitype").AbiEvent | import("abitype").AbiFallback | import("abitype").AbiFunction | import("abitype").AbiReceive)[];
13
- added: Map<string, import("abitype").AbiConstructor | import("abitype").AbiError | import("abitype").AbiEvent | import("abitype").AbiFallback | import("abitype").AbiFunction | import("abitype").AbiReceive>;
14
- sigJSMap: Map<`0x${string}`, {
15
- index: number;
16
- routeName: string;
17
- functionName: string;
18
- }>;
19
- };
20
- export declare function mergeArtifacts(list: {
21
- name: string;
22
- artifact: Partial<Artifact<Abi>> & {
23
- abi: Abi;
24
- };
25
- }[], options?: {
26
- doNotCheckForConflicts?: boolean;
27
- }): {
28
- mergedABI: (import("abitype").AbiConstructor | import("abitype").AbiError | import("abitype").AbiEvent | import("abitype").AbiFallback | import("abitype").AbiFunction | import("abitype").AbiReceive)[];
29
- added: Map<string, import("abitype").AbiConstructor | import("abitype").AbiError | import("abitype").AbiEvent | import("abitype").AbiFallback | import("abitype").AbiFunction | import("abitype").AbiReceive>;
30
- mergedDevDocs: CreateMutable<DevDoc>;
31
- mergedUserDocs: CreateMutable<UserDoc>;
32
- sigJSMap: Map<`0x${string}`, {
33
- index: number;
34
- routeName: string;
35
- functionName: string;
36
- }>;
37
- };
38
- export {};
39
- //# sourceMappingURL=artifacts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/environment/utils/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,EAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAG9D,KAAK,aAAa,CAAC,IAAI,IAAI;IAC1B,CAAC,UAAU,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;CAClD,CAAC;AA6CF,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAC,EAAE,EAAE,OAAO,CAAC,EAAE;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAC;;;;eAG5D,MAAM;mBAAa,MAAM;sBAAgB,MAAM;;EAmE1F;AAED,wBAAgB,cAAc,CAC7B,IAAI,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG;QAAC,GAAG,EAAE,GAAG,CAAA;KAAC,CAAA;CAAC,EAAE,EACrE,OAAO,CAAC,EAAE;IAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAC;;;;;;eAvED,MAAM;mBAAa,MAAM;sBAAgB,MAAM;;EAyH1F"}
@@ -1,158 +0,0 @@
1
- import { FunctionFragment } from 'ethers';
2
- // from https://gist.github.com/egardner/efd34f270cc33db67c0246e837689cb9
3
- function deepEqual(obj1, obj2) {
4
- // Private
5
- function isObject(obj) {
6
- if (typeof obj === 'object' && obj != null) {
7
- return true;
8
- }
9
- else {
10
- return false;
11
- }
12
- }
13
- if (obj1 === obj2) {
14
- return true;
15
- }
16
- else if (isObject(obj1) && isObject(obj2)) {
17
- if (Object.keys(obj1).length !== Object.keys(obj2).length) {
18
- return false;
19
- }
20
- for (var prop in obj1) {
21
- if (!deepEqual(obj1[prop], obj2[prop])) {
22
- return false;
23
- }
24
- }
25
- return true;
26
- }
27
- return false;
28
- }
29
- function mergeDoc(values, mergedDevDocs, field) {
30
- if (values[field]) {
31
- const mergedEventDocs = (mergedDevDocs[field] = mergedDevDocs[field] || {});
32
- for (const signature of Object.keys(values[field])) {
33
- if (mergedEventDocs[signature] && !deepEqual(mergedEventDocs[signature], values[field][signature])) {
34
- throw new Error(`Doc ${field} conflict: "${signature}" `);
35
- }
36
- mergedEventDocs[signature] = values[field][signature];
37
- }
38
- }
39
- }
40
- export function mergeABIs(list, options) {
41
- const added = new Map();
42
- const mergedABI = [];
43
- const sigJSMap = new Map();
44
- for (let i = 0; i < list.length; i++) {
45
- const listElem = list[i];
46
- for (const element of listElem.abi) {
47
- if (element.type === 'function') {
48
- // const selector = getFunctionSelector(element);
49
- const selector = FunctionFragment.from(element).selector;
50
- if (sigJSMap.has(selector)) {
51
- if (!options?.doNotCheckForConflicts) {
52
- const existing = sigJSMap.get(selector);
53
- throw new Error(`ABI conflict: ${existing.routeName} has function "${existing.functionName}" which conflict with ${listElem.name}'s "${element.name}" (selector: "${selector}") `);
54
- }
55
- else {
56
- continue;
57
- }
58
- }
59
- sigJSMap.set(selector, { index: i, routeName: listElem.name, functionName: element.name });
60
- const exists = added.has(element.name);
61
- if (exists) {
62
- // TODO check if same
63
- }
64
- else {
65
- added.set(element.name, element);
66
- mergedABI.push(element);
67
- }
68
- }
69
- else if (element.type === 'constructor') {
70
- // we skip it
71
- }
72
- else if (element.type === 'error') {
73
- const exists = added.has(element.name);
74
- if (exists) {
75
- // TODO check if same
76
- }
77
- else {
78
- added.set(element.name, element);
79
- mergedABI.push(element);
80
- }
81
- }
82
- else if (element.type === 'event') {
83
- const exists = added.has(element.name);
84
- if (exists) {
85
- // TODO check if same
86
- }
87
- else {
88
- added.set(element.name, element);
89
- mergedABI.push(element);
90
- }
91
- }
92
- else if (element.type === 'fallback') {
93
- }
94
- else if (element.type === 'receive') {
95
- }
96
- else {
97
- // if ('name' in element) {
98
- // const exists = added.has(element.name);
99
- // if (exists) {
100
- // // TODO check if same
101
- // } else {
102
- // added.set(element.name, element);
103
- // mergedABI.push(element);
104
- // }
105
- // }
106
- }
107
- }
108
- }
109
- return {
110
- mergedABI,
111
- added,
112
- sigJSMap,
113
- };
114
- }
115
- export function mergeArtifacts(list, options) {
116
- const { mergedABI, added, sigJSMap } = mergeABIs(list.map((v) => ({ name: v.name, abi: v.artifact.abi })), options);
117
- const mergedDevDocs = { kind: 'dev', version: 1, methods: {} };
118
- const mergedUserDocs = { kind: 'user', version: 1, methods: {} };
119
- for (let i = 0; i < list.length; i++) {
120
- const listElem = list[i];
121
- const devdoc = listElem.artifact.devdoc;
122
- if (devdoc) {
123
- mergeDoc(devdoc, mergedDevDocs, 'events');
124
- mergeDoc(devdoc, mergedDevDocs, 'errors');
125
- mergeDoc(devdoc, mergedDevDocs, 'methods');
126
- if (devdoc.author) {
127
- if (mergedDevDocs.author && mergedDevDocs.author != devdoc.author) {
128
- throw new Error(`DevDoc author conflict `);
129
- }
130
- mergedDevDocs.author = devdoc.author;
131
- if (mergedDevDocs.title && mergedDevDocs.title != devdoc.title) {
132
- throw new Error(`DevDoc title conflict `);
133
- }
134
- mergedDevDocs.title = devdoc.title;
135
- }
136
- }
137
- const userdoc = listElem.artifact.userdoc;
138
- if (userdoc) {
139
- mergeDoc(userdoc, mergedUserDocs, 'events');
140
- mergeDoc(userdoc, mergedUserDocs, 'errors');
141
- mergeDoc(userdoc, mergedUserDocs, 'methods');
142
- if (userdoc.notice) {
143
- if (mergedUserDocs.notice && mergedUserDocs.notice != userdoc.notice) {
144
- throw new Error(`UserDoc notice conflict `);
145
- }
146
- mergedUserDocs.notice = userdoc.notice;
147
- }
148
- }
149
- }
150
- return {
151
- mergedABI,
152
- added,
153
- mergedDevDocs,
154
- mergedUserDocs,
155
- sigJSMap,
156
- };
157
- }
158
- //# sourceMappingURL=artifacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/environment/utils/artifacts.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { ChainConfig, ChainInfo, ResolvedUserConfig } from '../../types.js';
2
- export type ChainType = 'zksync' | 'op-stack' | 'celo' | 'default';
3
- export declare const chainByCanonicalName: {
4
- [canonicalName: string]: ChainInfo;
5
- };
6
- export declare function getDefaultChainInfoByName(name: string): ChainInfo | undefined;
7
- export declare function getDefaultChainInfoFromChainId(id: string | number): ChainInfo | undefined;
8
- export declare function getChainConfigFromUserConfigAndDefaultChainInfo(config: ResolvedUserConfig, id: number, details: {
9
- chainInfo: ChainInfo;
10
- canonicalName: string;
11
- } | undefined): ChainConfig;
12
- //# sourceMappingURL=chains.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/environment/utils/chains.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,WAAW,EACX,SAAS,EAIT,kBAAkB,EAClB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAwCnE,eAAO,MAAM,oBAAoB,EAAE;IAAC,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAAM,CAAC;AAa7E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAG7E;AAgBD,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAWzF;AAED,wBAAgB,+CAA+C,CAC9D,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,GAChE,WAAW,CAgIb"}
@@ -1,182 +0,0 @@
1
- import * as chains from 'viem/chains';
2
- import { kebabCase } from 'change-case';
3
- const chainTypesByNames = {
4
- base: 'op-stack',
5
- baseGoerli: 'op-stack',
6
- baseSepolia: 'op-stack',
7
- optimism: 'op-stack',
8
- optimismGoerli: 'op-stack',
9
- optimismSepolia: 'op-stack',
10
- pgn: 'op-stack',
11
- pgnTestnet: 'op-stack',
12
- zora: 'op-stack',
13
- zoraSepolia: 'op-stack',
14
- zoraTestnet: 'op-stack',
15
- ancient8: 'op-stack',
16
- ancient8Sepolia: 'op-stack',
17
- celoAlfajores: 'celo',
18
- celo: 'celo',
19
- zkSync: 'zksync',
20
- zkSyncTestnet: 'zksync',
21
- zkSyncSepoliaTestnet: 'zksync',
22
- };
23
- const chainTypes = {};
24
- const chainById = {};
25
- const allChains = { ...(chains.default || chains) };
26
- allChains['localhost'] = { ...allChains['hardhat'], name: 'localhost' };
27
- for (const key of Object.keys(allChains)) {
28
- const chain = allChains[key];
29
- const chainId = chain.id.toString();
30
- const specificChainType = chainTypesByNames[key];
31
- if (specificChainType) {
32
- chainTypes[chainId] = specificChainType;
33
- }
34
- const list = (chainById[chainId] = chainById[chainId] || []);
35
- list.push({ ...chain, chainType: specificChainType });
36
- }
37
- export const chainByCanonicalName = {};
38
- for (const key of Object.keys(allChains)) {
39
- const chain = allChains[key];
40
- const canonicalName = kebabCase(chain.name);
41
- chainByCanonicalName[canonicalName] = chain;
42
- }
43
- function getChainsById(id) {
44
- const chains = chainById['' + id];
45
- return chains;
46
- }
47
- export function getDefaultChainInfoByName(name) {
48
- const chain = chainByCanonicalName[name];
49
- return chain;
50
- }
51
- // function getCanonicalNameFromChainId(id: string | number): string | undefined {
52
- // let defaultChainInfo: ChainInfo | undefined;
53
- // const defaultChainInfos = getChainsById(id);
54
- // if (defaultChainInfos && defaultChainInfos.length > 1) {
55
- // console.error(
56
- // `chainId ${id} refers to different chain, please specific it by name or provide the chainConfig yourself`
57
- // );
58
- // } else {
59
- // defaultChainInfo = defaultChainInfos ? defaultChainInfos[0] : undefined;
60
- // }
61
- // const canonicalName = defaultChainInfo ? kebabCase(defaultChainInfo.name) : undefined;
62
- // return canonicalName;
63
- // }
64
- export function getDefaultChainInfoFromChainId(id) {
65
- let defaultChainInfo;
66
- const defaultChainInfos = getChainsById(id);
67
- if (defaultChainInfos && defaultChainInfos.length > 1) {
68
- console.warn(`chainId ${id} refers to different chain, please specific it by name or provide the chainConfig yourself`);
69
- }
70
- else {
71
- defaultChainInfo = defaultChainInfos ? defaultChainInfos[0] : undefined;
72
- }
73
- return defaultChainInfo;
74
- }
75
- export function getChainConfigFromUserConfigAndDefaultChainInfo(config, id, details) {
76
- const canonicalName = details?.canonicalName;
77
- let chainInfo = details?.chainInfo ? { ...details.chainInfo } : undefined;
78
- if (chainInfo?.id && id != chainInfo.id) {
79
- console.warn(`default chainInfo has a different chainId (${chainInfo.id}) != ${id}, we thus assign it`);
80
- // we ensure the chainInfo has the correct id
81
- chainInfo.id = id;
82
- }
83
- if (canonicalName) {
84
- if (config.chains?.[id] && config.chains?.[canonicalName]) {
85
- throw new Error(`chain should be configured by chainId or name but not both, remove either ${id} or ${canonicalName}`);
86
- }
87
- }
88
- let chainConfig = canonicalName ? config.chains?.[canonicalName] : undefined;
89
- if (!chainConfig) {
90
- chainConfig = config.chains?.[id];
91
- }
92
- if (!chainConfig) {
93
- chainConfig = { info: chainInfo };
94
- }
95
- chainInfo = chainConfig?.info || chainInfo;
96
- let rpcUrl = process.env['ETH_NODE_URI_' + id];
97
- if (canonicalName) {
98
- const fromEnv = process.env['ETH_NODE_URI_' + canonicalName];
99
- if (fromEnv) {
100
- rpcUrl = fromEnv;
101
- }
102
- }
103
- if (!rpcUrl) {
104
- rpcUrl = chainConfig.rpcUrl;
105
- }
106
- if (!rpcUrl) {
107
- rpcUrl = chainConfig.info?.rpcUrls.default.http[0];
108
- }
109
- if (!rpcUrl) {
110
- if (id === 31337 || id === 1337) {
111
- rpcUrl = 'http://127.0.0.1:8545';
112
- }
113
- }
114
- if (!chainInfo) {
115
- if (!rpcUrl) {
116
- throw new Error(`no chain info found for chain with id ${id}`);
117
- }
118
- else {
119
- console.error(`chain with id ${id} has no public info`);
120
- }
121
- chainInfo = {
122
- id,
123
- name: 'unkwown',
124
- nativeCurrency: {
125
- name: 'Unknown Currency',
126
- symbol: 'UNKNOWN',
127
- decimals: 18,
128
- },
129
- rpcUrls: {
130
- default: {
131
- http: [rpcUrl],
132
- },
133
- },
134
- chainType: 'default',
135
- };
136
- }
137
- const create2Info = {
138
- factory: '0x4e59b44847b379578588920ca78fbf26c0b4956c',
139
- deployer: '0x3fab184622dc19b6109349b94811493bf2a45362',
140
- funding: '10000000000000000',
141
- signedTx: '0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222',
142
- };
143
- const create3Info = {
144
- factory: '0x000000000004d4f168daE7DB3C610F408eE22F57',
145
- salt: '0x5361109ca02853ca8e22046b7125306d9ec4ae4cdecc393c567b6be861df3db6',
146
- bytecode: '0x6080604052348015600f57600080fd5b506103ca8061001f6000396000f3fe6080604052600436106100295760003560e01c8063360d0fad1461002e5780639881d19514610077575b600080fd5b34801561003a57600080fd5b5061004e610049366004610228565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e61008536600461029c565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e734848461015e565b600061015882306101ce565b92915050565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061018e5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101c65763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b20601452806040525061d694600052600160345350506017601e20919050565b6000806040838503121561023b57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461025f57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156102af57600080fd5b823567ffffffffffffffff8111156102c657600080fd5b8301601f810185136102d757600080fd5b803567ffffffffffffffff8111156102f1576102f161026d565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561035d5761035d61026d565b60405281815282820160200187101561037557600080fd5b816020840160208301376000602092820183015296940135945050505056fea264697066735822122059dcc5dc6453397d13ff28021e28472a80a45bbd97f3135f69bd2650773aeb0164736f6c634300081a0033',
147
- proxyBytecode: '0x67363d3d37363d34f03d5260086018f3',
148
- };
149
- const pollingInterval = chainConfig.pollingInterval || config.defaultPollingInterval;
150
- let deterministicDeployment = {
151
- create2: (() => {
152
- const deterministicDeployment = chainConfig.deterministicDeployment;
153
- if (!deterministicDeployment) {
154
- return create2Info;
155
- }
156
- return 'create2' in deterministicDeployment && deterministicDeployment.create2
157
- ? deterministicDeployment.create2
158
- : !('create2' in deterministicDeployment) && !('create3' in deterministicDeployment)
159
- ? deterministicDeployment
160
- : create2Info;
161
- })(),
162
- create3: chainConfig.deterministicDeployment &&
163
- 'create3' in chainConfig.deterministicDeployment &&
164
- chainConfig.deterministicDeployment.create3
165
- ? chainConfig.deterministicDeployment.create3
166
- : create3Info,
167
- };
168
- const defaultTags = [];
169
- if (chainInfo.testnet) {
170
- defaultTags.push('testnet');
171
- }
172
- const properties = chainConfig.properties || config.defaultChainProperties || {};
173
- return {
174
- info: { ...chainInfo },
175
- deterministicDeployment,
176
- pollingInterval,
177
- properties,
178
- rpcUrl: rpcUrl || chainInfo.rpcUrls.default.http[0],
179
- tags: chainConfig.tags || [...defaultTags],
180
- };
181
- }
182
- //# sourceMappingURL=chains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/environment/utils/chains.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import type { Environment, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts, CurriedFunctions } from '../types.js';
2
- /**
3
- * @param env - The environment object to inject as the first parameter
4
- * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
5
- * or getter functions that return a value from the environment
6
- * @returns An object with the same function/property names, but with the environment parameter removed
7
- *
8
- * @example
9
- * ```typescript
10
- * const functionsAndGetters = {
11
- * // Functions that expect env as first parameter
12
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
13
- * verify: (env: Environment, address: string) => Promise<boolean>,
14
- *
15
- * // Getter properties that can be accessed directly
16
- * myValue: (env: Environment) => env.someValue,
17
- * networkId: (env: Environment) => env.network.id
18
- * };
19
- *
20
- * const enhancedEnv = withEnvironment(env, functionsAndGetters);
21
- *
22
- * // Now you can call functions without passing env:
23
- * await enhancedEnv.deploy('MyContract', []);
24
- * await enhancedEnv.verify('0x123...');
25
- *
26
- * // And access getter properties directly:
27
- * console.log(enhancedEnv.myValue);
28
- * console.log(enhancedEnv.networkId);
29
- * ```
30
- */
31
- export declare function withEnvironment<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>, T extends Record<string, ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => any)> = Record<string, ((env: Environment<NamedAccounts, Data, Deployments>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments>) => any)>>(env: Environment<NamedAccounts, Data, Deployments, Extra>, functionsAndGetters: T): CurriedFunctions<T>;
32
- //# sourceMappingURL=extensions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,gBAAgB,EAChB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAC9B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,CAAC,SAAS,MAAM,CACf,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACxF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CACtE,GAAG,MAAM,CACT,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACjF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,CAC/D,EACA,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAoBxG"}
@@ -1,49 +0,0 @@
1
- /**
2
- * @param env - The environment object to inject as the first parameter
3
- * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
4
- * or getter functions that return a value from the environment
5
- * @returns An object with the same function/property names, but with the environment parameter removed
6
- *
7
- * @example
8
- * ```typescript
9
- * const functionsAndGetters = {
10
- * // Functions that expect env as first parameter
11
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
12
- * verify: (env: Environment, address: string) => Promise<boolean>,
13
- *
14
- * // Getter properties that can be accessed directly
15
- * myValue: (env: Environment) => env.someValue,
16
- * networkId: (env: Environment) => env.network.id
17
- * };
18
- *
19
- * const enhancedEnv = withEnvironment(env, functionsAndGetters);
20
- *
21
- * // Now you can call functions without passing env:
22
- * await enhancedEnv.deploy('MyContract', []);
23
- * await enhancedEnv.verify('0x123...');
24
- *
25
- * // And access getter properties directly:
26
- * console.log(enhancedEnv.myValue);
27
- * console.log(enhancedEnv.networkId);
28
- * ```
29
- */
30
- export function withEnvironment(env, functionsAndGetters) {
31
- const result = {};
32
- for (const [key, func] of Object.entries(functionsAndGetters)) {
33
- // Check if the function is a getter or a regular function
34
- const value = func(env);
35
- if (typeof value === 'function') {
36
- // Regular function case: Create a function that automatically passes the environment
37
- result[key] = (...args) => func(env)(...args);
38
- }
39
- else {
40
- // Getter case: Define property with getter that returns the value
41
- Object.defineProperty(result, key, {
42
- get: () => func(env),
43
- enumerable: true,
44
- });
45
- }
46
- }
47
- return result;
48
- }
49
- //# sourceMappingURL=extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAc7B,GAAyD,EAAE,mBAAsB;IAClF,MAAM,MAAM,GAAG,EAAyB,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC/D,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,qFAAqF;YACpF,MAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,kEAAkE;YAClE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAClC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { Environment } from '../types.js';
2
- declare const exampleExtensions: {
3
- deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
4
- verify: (env: Environment) => (address: string) => Promise<boolean>;
5
- getBalance: (env: Environment) => (address: string) => Promise<bigint>;
6
- syncFunction: (env: Environment) => (value: number) => number;
7
- provider: (env: Environment) => import("@rocketh/core/providers").TransactionHashTracker;
8
- };
9
- declare const enhancedEnv: any;
10
- declare function testTypes(): Promise<void>;
11
- export { testTypes, enhancedEnv, exampleExtensions };
12
- //# sourceMappingURL=extensions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.test.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAO7C,QAAA,MAAM,iBAAiB;kBAEf,WAAW,MACV,cAAc,MAAM,EAAE,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKlD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlC,WAAW,MAChB,OAAO,MAAM,KAAG,MAAM;oBAIR,WAAW;CAC3B,CAAC;AAGF,QAAA,MAAM,WAAW,KAA8C,CAAC;AAGhE,iBAAe,SAAS,kBAUvB;AAGD,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
@@ -1,35 +0,0 @@
1
- import { withEnvironment } from './extensions.js';
2
- // Mock environment for testing
3
- const mockEnv = {};
4
- // Example functions that take environment as first parameter
5
- const exampleExtensions = {
6
- deploy: (env) => async (contractName, args) => {
7
- return Promise.resolve();
8
- },
9
- verify: (env) => async (address) => {
10
- return Promise.resolve(true);
11
- },
12
- getBalance: (env) => async (address) => {
13
- return Promise.resolve(BigInt(0));
14
- },
15
- syncFunction: (env) => (value) => {
16
- return value * 2;
17
- },
18
- provider: (env) => env.network.provider,
19
- };
20
- // Test the currying function
21
- const enhancedEnv = withEnvironment(mockEnv, exampleExtensions);
22
- // Type tests - these should compile without errors
23
- async function testTypes() {
24
- // These calls should work without passing env
25
- await enhancedEnv.deploy('MyContract', []);
26
- const isVerified = await enhancedEnv.verify('0x123...');
27
- const balance = await enhancedEnv.getBalance('0x456...');
28
- const doubled = enhancedEnv.syncFunction(42);
29
- const provider = enhancedEnv.provider;
30
- console.log('Type tests passed!');
31
- console.log({ isVerified, balance, doubled, provider });
32
- }
33
- // Export for potential use in actual tests
34
- export { testTypes, enhancedEnv, exampleExtensions };
35
- //# sourceMappingURL=extensions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extensions.test.js","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,+BAA+B;AAC/B,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG;IACzB,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,YAAoB,EAAE,IAAW,EAAiB,EAAE;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEF,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAoB,EAAE;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEF,UAAU,EACT,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAmB,EAAE;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAEF,YAAY,EACX,CAAC,GAAgB,EAAE,EAAE,CACrB,CAAC,KAAa,EAAU,EAAE;QACzB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAEF,QAAQ,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;CACpD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAEhE,mDAAmD;AACnD,KAAK,UAAU,SAAS;IACvB,8CAA8C;IAC9C,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;AACvD,CAAC;AAED,2CAA2C;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- interface LookupFileOptions {
2
- pathOnly?: boolean;
3
- rootDir?: string;
4
- predicate?: (file: string) => boolean;
5
- }
6
- export declare function lookupFile(dir: string, formats: string[], options?: LookupFileOptions): string | undefined;
7
- export declare function traverseMultipleDirectory(dirs: readonly string[]): string[];
8
- export declare const traverse: (dir: string, result?: any[], topDir?: string, filter?: (name: string, stats: any) => boolean) => Array<{
9
- name: string;
10
- path: string;
11
- relativePath: string;
12
- mtimeMs: number;
13
- directory: boolean;
14
- }>;
15
- export {};
16
- //# sourceMappingURL=fs.d.ts.map
@@ -1 +0,0 @@
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,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAU3E;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"}
package/dist/utils/fs.js DELETED
@@ -1,52 +0,0 @@
1
- // taken from https://github.com/vitejs/vite/blob/63524bac878e8d3771d34ad7ad2e10cd16870ff4/packages/vite/src/node/utils.ts#L371-L400
2
- import fs from 'node:fs';
3
- import path from 'node:path';
4
- export function lookupFile(dir, formats, options) {
5
- for (const format of formats) {
6
- const fullPath = path.join(dir, format);
7
- if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) {
8
- const result = options?.pathOnly ? fullPath : fs.readFileSync(fullPath, 'utf-8');
9
- if (!options?.predicate || options.predicate(result)) {
10
- return result;
11
- }
12
- }
13
- }
14
- const parentDir = path.dirname(dir);
15
- if (parentDir !== dir && (!options?.rootDir || parentDir.startsWith(options?.rootDir))) {
16
- return lookupFile(parentDir, formats, options);
17
- }
18
- }
19
- export function traverseMultipleDirectory(dirs) {
20
- const filepaths = [];
21
- for (const dir of dirs) {
22
- let filesStats = traverse(dir);
23
- filesStats = filesStats.filter((v) => !v.directory);
24
- for (const filestat of filesStats) {
25
- filepaths.push(path.join(dir, filestat.relativePath));
26
- }
27
- }
28
- return filepaths;
29
- }
30
- export const traverse = function (dir, result = [], topDir, filter // TODO any is Stats
31
- ) {
32
- fs.readdirSync(dir).forEach((name) => {
33
- const fPath = path.resolve(dir, name);
34
- const stats = fs.statSync(fPath);
35
- if ((!filter && !name.startsWith('.')) || (filter && filter(name, stats))) {
36
- const fileStats = {
37
- name,
38
- path: fPath,
39
- relativePath: path.relative(topDir || dir, fPath),
40
- mtimeMs: stats.mtimeMs,
41
- directory: stats.isDirectory(),
42
- };
43
- if (fileStats.directory) {
44
- result.push(fileStats);
45
- return traverse(fPath, result, topDir || dir, filter);
46
- }
47
- result.push(fileStats);
48
- }
49
- });
50
- return result;
51
- };
52
- //# sourceMappingURL=fs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export declare function postfixBigIntReplacer(k: string, v: any): any;
2
- export declare function bigIntToStringReplacer(k: string, v: any): any;
3
- export declare function postfixBigIntReviver(k: string, v: any): any;
4
- export declare function JSONToString<T = unknown>(json: unknown, space?: string | number): string;
5
- export declare function stringToJSON<T = unknown>(str: string): T;
6
- //# sourceMappingURL=json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAGA,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAK5D;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAK7D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,CAS3D;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"}
@@ -1,28 +0,0 @@
1
- // TODO share with db-utils
2
- export function postfixBigIntReplacer(k, v) {
3
- if (typeof v === 'bigint') {
4
- return v.toString() + 'n';
5
- }
6
- return v;
7
- }
8
- export function bigIntToStringReplacer(k, v) {
9
- if (typeof v === 'bigint') {
10
- return v.toString();
11
- }
12
- return v;
13
- }
14
- export function postfixBigIntReviver(k, v) {
15
- if (typeof v === 'string' &&
16
- (v.startsWith('-') ? !isNaN(parseInt(v.charAt(1))) : !isNaN(parseInt(v.charAt(0)))) &&
17
- v.charAt(v.length - 1) === 'n') {
18
- return BigInt(v.slice(0, -1));
19
- }
20
- return v;
21
- }
22
- export function JSONToString(json, space) {
23
- return JSON.stringify(json, bigIntToStringReplacer, space);
24
- }
25
- export function stringToJSON(str) {
26
- return JSON.parse(str);
27
- }
28
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAEA,2BAA2B;AAC3B,MAAM,UAAU,qBAAqB,CAAC,CAAS,EAAE,CAAM;IACtD,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,sBAAsB,CAAC,CAAS,EAAE,CAAM;IACvD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAS,EAAE,CAAM;IACrD,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,sBAAsB,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,YAAY,CAAc,GAAW;IACpD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}