@rocketh/export 0.17.16 → 0.17.18

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.
package/README.md CHANGED
@@ -1 +1,7 @@
1
1
  # @rocketh/export
2
+
3
+ Export deployments tool for rocketh, enabling you to export deployment data for frontend consumption in various formats (JSON, TypeScript, JavaScript modules).
4
+
5
+ For full documentation, visit [rocketh.dev](https://rocketh.dev).
6
+
7
+ For hardhat-deploy documentation, see [rocketh.dev/hardhat-deploy/](https://rocketh.dev/hardhat-deploy/).
package/dist/cli.js CHANGED
@@ -3,7 +3,7 @@ import { readAndResolveConfig } from '@rocketh/node';
3
3
  import { run } from './index.js';
4
4
  import { Command } from 'commander';
5
5
  import pkg from '../package.json' with { type: 'json' };
6
- const commandName = "rocketh-export";
6
+ const commandName = 'rocketh-export';
7
7
  const program = new Command();
8
8
  program
9
9
  .name(commandName)
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Abi } from 'abitype';
2
2
  import type { ChainInfo, LinkedData, ResolvedUserConfig } from '@rocketh/core/types';
3
+ export declare const logger: import("named-logs").Logger;
3
4
  export interface ContractExport {
4
5
  address: `0x${string}`;
5
6
  abi: Abi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAU,MAAM,SAAS,CAAC;AAIrC,OAAO,KAAK,EAAC,SAAS,EAAc,UAAU,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAS/F,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAC,CAAC;CAC5C,CAAC;AAgBF,wBAAsB,GAAG,CACxB,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,iBAsID"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAU,MAAM,SAAS,CAAC;AAKrC,OAAO,KAAK,EAAC,SAAS,EAAc,UAAU,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAS/F,eAAO,MAAM,MAAM,6BAA0B,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;KAAC,CAAC;CAC5C,CAAC;AAmBF,wBAAsB,GAAG,CACxB,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B,iBAyID"}
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
+ import { logs } from 'named-logs';
3
4
  import { getChainConfigFromUserConfigAndDefaultChainInfo, getDefaultChainInfoByName, getDefaultChainInfoFromChainId, } from 'rocketh';
4
5
  import { loadDeploymentsFromFiles } from '@rocketh/node';
5
6
  import { bigIntToStringReplacer } from '@rocketh/core/json';
7
+ export const logger = logs('@rocketh/export');
6
8
  function objectMap(object, mapFn) {
7
9
  return Object.keys(object).reduce((result, key) => {
8
10
  result[key] = mapFn(object[key]);
@@ -25,8 +27,11 @@ export async function run(config, environmentName, options) {
25
27
  const idToFetch = parseInt(chainId);
26
28
  let chainInfoFound = getDefaultChainInfoByName(environmentName);
27
29
  if (!chainInfoFound) {
28
- // console.log(`could not find chainInfo by name = "${environmentName}"`);
29
- chainInfoFound = getDefaultChainInfoFromChainId(idToFetch);
30
+ const result = getDefaultChainInfoFromChainId(idToFetch);
31
+ chainInfoFound = result.success ? result.chainInfo : undefined;
32
+ if (!result.success && result.error) {
33
+ // logger.warn(`could not find chainInfo by name = "${environmentName}"\n ${result.error}`);
34
+ }
30
35
  if (!chainInfoFound) {
31
36
  // console.log(`could not find chainInfo by chainId = "${idToFetch}"`);
32
37
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocketh/export",
3
- "version": "0.17.16",
3
+ "version": "0.17.18",
4
4
  "description": "export deployments",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,7 +21,8 @@
21
21
  "rocketh-export": "dist/cli.js"
22
22
  },
23
23
  "files": [
24
- "dist"
24
+ "dist",
25
+ "src"
25
26
  ],
26
27
  "dependencies": {
27
28
  "@types/fs-extra": "^11.0.4",
@@ -30,19 +31,20 @@
30
31
  "commander": "^14.0.2",
31
32
  "eip-1193": "^0.6.5",
32
33
  "fs-extra": "^11.3.3",
33
- "@rocketh/core": "0.17.8"
34
+ "named-logs": "^0.4.1",
35
+ "@rocketh/core": "0.17.9"
34
36
  },
35
37
  "devDependencies": {
36
- "@types/node": "^25.0.6",
37
- "as-soon": "^0.0.11",
38
+ "@types/node": "^25.0.10",
39
+ "as-soon": "^0.1.4",
38
40
  "rimraf": "^6.1.2",
39
41
  "typescript": "^5.9.3",
40
- "@rocketh/node": "0.17.16",
41
- "rocketh": "0.17.13"
42
+ "rocketh": "0.17.15",
43
+ "@rocketh/node": "0.17.18"
42
44
  },
43
45
  "peerDependencies": {
44
- "@rocketh/node": "0.17.16",
45
- "rocketh": "0.17.13"
46
+ "@rocketh/node": "0.17.18",
47
+ "rocketh": "0.17.15"
46
48
  },
47
49
  "scripts": {
48
50
  "build": "tsc --project tsconfig.json",
package/src/cli.ts ADDED
@@ -0,0 +1,40 @@
1
+ #! /usr/bin/env node
2
+ import {readAndResolveConfig} from '@rocketh/node';
3
+ import type {ConfigOverrides} from '@rocketh/core/types';
4
+ import {run} from './index.js';
5
+ import {Command} from 'commander';
6
+ import pkg from '../package.json' with {type: 'json'};
7
+
8
+ const commandName = 'rocketh-export';
9
+
10
+ const program = new Command();
11
+ program
12
+ .name(commandName)
13
+ .description('export deployments to consume elswhere')
14
+ .version(pkg.version)
15
+ .option('-d, --deployments <value>', 'folder where deployments are saved')
16
+ .option('--ts <value>', 'list of filepath where the typescript export will be written, separated by commas')
17
+ .option('--js <value>', 'list of filepath where the javascript export will be written, separated by commas')
18
+ .option('--json <value>', 'list of filepath where the json export will be written, separated by commas')
19
+ .option(
20
+ '--tsm <value>',
21
+ 'list of filepath where the typescript export with individual export will be written, separated by commas',
22
+ )
23
+ .option(
24
+ '--jsm <value>',
25
+ 'list of filepath where the javascript export with individual exportwill be written, separated by commas',
26
+ )
27
+ .option('-b, --bytecode', 'if set, the bytecode will also be part of the output')
28
+ .requiredOption('-e, --environment <value>', 'environment context to use')
29
+ .parse(process.argv);
30
+
31
+ const {environment, ...options} = program.opts();
32
+ const resolvedConfig = await readAndResolveConfig({...(options as ConfigOverrides)});
33
+ run(resolvedConfig, environment, {
34
+ tots: options.ts ? options.ts.split(',') : undefined,
35
+ tojson: options.json ? options.json.split(',') : undefined,
36
+ tojs: options.js ? options.js.split(',') : undefined,
37
+ totsm: options.tsm ? options.tsm.split(',') : undefined,
38
+ tojsm: options.jsm ? options.jsm.split(',') : undefined,
39
+ includeBytecode: options.bytecode,
40
+ });
package/src/index.ts ADDED
@@ -0,0 +1,196 @@
1
+ import {Abi, Address} from 'abitype';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import {logs} from 'named-logs';
5
+
6
+ import type {ChainInfo, Deployment, LinkedData, ResolvedUserConfig} from '@rocketh/core/types';
7
+ import {
8
+ getChainConfigFromUserConfigAndDefaultChainInfo,
9
+ getDefaultChainInfoByName,
10
+ getDefaultChainInfoFromChainId,
11
+ } from 'rocketh';
12
+ import {loadDeploymentsFromFiles} from '@rocketh/node';
13
+ import {bigIntToStringReplacer} from '@rocketh/core/json';
14
+
15
+ export const logger = logs('@rocketh/export');
16
+
17
+ export interface ContractExport {
18
+ address: `0x${string}`;
19
+ abi: Abi;
20
+ argsData?: string;
21
+ bytecode?: `0x${string}`;
22
+ linkedData?: LinkedData;
23
+ startBlock?: number;
24
+ }
25
+
26
+ export type ExportedDeployments = {
27
+ chain: ChainInfo;
28
+ name: string;
29
+ contracts: {[name: string]: ContractExport};
30
+ };
31
+
32
+ type Trandformed<O, Value> = {
33
+ [Property in keyof O]: Value;
34
+ };
35
+
36
+ function objectMap<V, N, O extends Trandformed<{}, V> = Trandformed<{}, V>>(
37
+ object: O,
38
+ mapFn: (v: V) => N,
39
+ ): Trandformed<O, N> {
40
+ return Object.keys(object).reduce(
41
+ (result, key) => {
42
+ (result as any)[key] = mapFn((object as any)[key]);
43
+ return result;
44
+ },
45
+ {} as Trandformed<O, N>,
46
+ );
47
+ }
48
+
49
+ export async function run(
50
+ config: ResolvedUserConfig,
51
+ environmentName: string,
52
+ options: {
53
+ tojs?: string[];
54
+ tots?: string[];
55
+ tojson?: string[];
56
+ totsm?: string[];
57
+ tojsm?: string[];
58
+ includeBytecode?: boolean;
59
+ },
60
+ ) {
61
+ if (!options.tots && !options.tojs && !options.tojson && !options.tojsm && !options.totsm) {
62
+ console.log(`no filepath to export to are specified`);
63
+ return;
64
+ }
65
+
66
+ const {deployments, chainId, genesisHash} = await loadDeploymentsFromFiles(config.deployments, environmentName);
67
+
68
+ if (!deployments || Object.keys(deployments).length === 0) {
69
+ console.log(`no deployments to export`);
70
+ return;
71
+ }
72
+
73
+ if (!chainId) {
74
+ throw new Error(`no chainId found for ${environmentName}`);
75
+ }
76
+
77
+ const idToFetch = parseInt(chainId);
78
+ let chainInfoFound = getDefaultChainInfoByName(environmentName);
79
+ if (!chainInfoFound) {
80
+ const result = getDefaultChainInfoFromChainId(idToFetch);
81
+ chainInfoFound = result.success ? result.chainInfo : undefined;
82
+ if (!result.success && result.error) {
83
+ // logger.warn(`could not find chainInfo by name = "${environmentName}"\n ${result.error}`);
84
+ }
85
+ if (!chainInfoFound) {
86
+ // console.log(`could not find chainInfo by chainId = "${idToFetch}"`);
87
+ }
88
+ }
89
+
90
+ const defaultChainInfo = chainInfoFound;
91
+ const chainConfig = getChainConfigFromUserConfigAndDefaultChainInfo(config, {
92
+ id: idToFetch,
93
+ chainInfo: defaultChainInfo,
94
+ canonicalName: environmentName,
95
+ doNotRequireRpcURL: true,
96
+ });
97
+ const chainInfo = {...chainConfig.info, genesisHash, properties: chainConfig.properties};
98
+
99
+ const exportData: ExportedDeployments = {
100
+ chain: chainInfo,
101
+ contracts: objectMap<Deployment<Abi>, ContractExport>(deployments, (d) => ({
102
+ abi: d.abi,
103
+ address: d.address,
104
+ linkedData: d.linkedData,
105
+ bytecode: options.includeBytecode ? d.bytecode : undefined,
106
+ argsData: options.includeBytecode ? d.argsData : undefined,
107
+ startBlock: d.receipt?.blockNumber ? parseInt(d.receipt.blockNumber.slice(2), 16) : undefined,
108
+ })),
109
+ name: environmentName,
110
+ };
111
+
112
+ const js = typeof options.tojs === 'string' ? [options.tojs] : options.tojs || [];
113
+ const ts = typeof options.tots === 'string' ? [options.tots] : options.tots || [];
114
+ const json = typeof options.tojson === 'string' ? [options.tojson] : options.tojson || [];
115
+
116
+ const tsmodule = typeof options.totsm === 'string' ? [options.totsm] : options.totsm || [];
117
+ const jsmodule = typeof options.tojsm === 'string' ? [options.tojsm] : options.tojsm || [];
118
+
119
+ if (ts.length > 0) {
120
+ const newContent = `export default ${JSON.stringify(exportData, bigIntToStringReplacer, 2)} as const;`;
121
+ for (const tsFile of ts) {
122
+ const folderPath = path.dirname(tsFile);
123
+ fs.mkdirSync(folderPath, {recursive: true});
124
+ fs.writeFileSync(tsFile, newContent);
125
+ }
126
+ }
127
+
128
+ if (js.length > 0) {
129
+ const newContent = `export default /** @type {const} **/ (${JSON.stringify(
130
+ exportData,
131
+ bigIntToStringReplacer,
132
+ 2,
133
+ )});`;
134
+ const dtsContent = `declare const _default: ${JSON.stringify(
135
+ exportData,
136
+ bigIntToStringReplacer,
137
+ 2,
138
+ )};\nexport default _default;`;
139
+ for (const jsFile of js) {
140
+ const folderPath = path.dirname(jsFile);
141
+ fs.mkdirSync(folderPath, {recursive: true});
142
+ fs.writeFileSync(jsFile, newContent);
143
+ fs.writeFileSync(jsFile.replace('.js', '.d.ts'), dtsContent);
144
+ }
145
+ }
146
+
147
+ if (json.length > 0) {
148
+ const newContent = JSON.stringify(exportData, bigIntToStringReplacer, 2);
149
+ for (const jsonFile of json) {
150
+ const folderPath = path.dirname(jsonFile);
151
+ fs.mkdirSync(folderPath, {recursive: true});
152
+ fs.writeFileSync(jsonFile, newContent);
153
+ }
154
+ }
155
+
156
+ if (tsmodule.length > 0) {
157
+ let newContent = `export const chain = ${JSON.stringify(chainInfo, bigIntToStringReplacer, 2)} as const;\n`;
158
+
159
+ for (const contractName of Object.keys(exportData.contracts)) {
160
+ newContent += `export const ${contractName} = ${JSON.stringify(
161
+ (exportData.contracts as any)[contractName],
162
+ bigIntToStringReplacer,
163
+ 2,
164
+ )} as const;`;
165
+ }
166
+
167
+ for (const tsFile of tsmodule) {
168
+ const folderPath = path.dirname(tsFile);
169
+ fs.mkdirSync(folderPath, {recursive: true});
170
+ fs.writeFileSync(tsFile, newContent);
171
+ }
172
+ }
173
+
174
+ if (jsmodule.length > 0) {
175
+ // TODO test
176
+ let newContent = `export const chain = /** @type {const} **/ (${JSON.stringify(
177
+ chainInfo,
178
+ bigIntToStringReplacer,
179
+ 2,
180
+ )});\n`;
181
+
182
+ for (const contractName of Object.keys(exportData.contracts)) {
183
+ newContent += `export const ${contractName} = /** @type {const} **/ (${JSON.stringify(
184
+ (exportData.contracts as any)[contractName],
185
+ bigIntToStringReplacer,
186
+ 2,
187
+ )});`;
188
+ }
189
+
190
+ for (const jsFile of jsmodule) {
191
+ const folderPath = path.dirname(jsFile);
192
+ fs.mkdirSync(folderPath, {recursive: true});
193
+ fs.writeFileSync(jsFile, newContent);
194
+ }
195
+ }
196
+ }