rocketh 0.15.0-testing.17 → 0.15.0-testing.3
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/CHANGELOG.md +0 -84
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/environment/deployments.d.ts +1 -1
- package/dist/environment/deployments.d.ts.map +1 -1
- package/dist/environment/index.d.ts +6 -2
- package/dist/environment/index.d.ts.map +1 -1
- package/dist/environment/index.js +60 -42
- package/dist/environment/index.js.map +1 -1
- package/dist/environment/types.d.ts +75 -33
- package/dist/environment/types.d.ts.map +1 -1
- package/dist/environment/utils/artifacts.d.ts +1 -1
- package/dist/environment/utils/artifacts.d.ts.map +1 -1
- package/dist/environment/utils/chains.d.ts +5 -6
- package/dist/environment/utils/chains.d.ts.map +1 -1
- package/dist/environment/utils/chains.js +19 -85
- package/dist/environment/utils/chains.js.map +1 -1
- package/dist/executor/index.d.ts +84 -12
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +216 -167
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/setup.test.d.ts +3 -3
- package/dist/executor/setup.test.d.ts.map +1 -1
- package/dist/executor/setup.test.js +1 -1
- package/dist/executor/setup.test.js.map +1 -1
- package/dist/executor/types.d.ts +0 -92
- package/dist/executor/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/utils/extensions.d.ts +2 -1
- package/dist/utils/extensions.d.ts.map +1 -1
- package/dist/utils/extensions.test.d.ts +2 -2
- package/dist/utils/extensions.test.d.ts.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js.map +1 -1
- package/package.json +3 -3
- package/src/cli.ts +3 -3
- package/src/environment/deployments.ts +1 -1
- package/src/environment/index.ts +72 -56
- package/src/environment/types.ts +380 -0
- package/src/environment/utils/artifacts.ts +1 -1
- package/src/environment/utils/chains.ts +22 -113
- package/src/executor/index.ts +341 -218
- package/src/executor/setup.test.ts +2 -2
- package/src/executor/types.ts +176 -0
- package/src/index.ts +6 -14
- package/src/utils/extensions.test.ts +1 -1
- package/src/utils/extensions.ts +2 -2
- package/src/utils/fs.ts +1 -1
- package/dist/types.d.ts +0 -472
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/src/types.ts +0 -600
package/dist/executor/types.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Address } from 'abitype';
|
|
2
2
|
import type { Environment, JSONTypePlusBigInt, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts } from '../environment/types.js';
|
|
3
|
-
import { EIP1193ProviderWithoutEvents } from 'eip-1193';
|
|
4
3
|
export type DeployScriptFunction<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, ArgumentsTypes = undefined, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>> = (env: Environment<NamedAccounts, Data, Deployments, Extra>, args?: ArgumentsTypes) => Promise<void | boolean>;
|
|
5
4
|
export interface DeployScriptModule<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, ArgumentsTypes = undefined, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>> {
|
|
6
5
|
(env: Environment<NamedAccounts, Data, Deployments, Extra>, args?: ArgumentsTypes): Promise<void | boolean>;
|
|
@@ -96,96 +95,5 @@ export type ChainInfo = {
|
|
|
96
95
|
genesisHash?: string;
|
|
97
96
|
properties?: Record<string, JSONTypePlusBigInt>;
|
|
98
97
|
};
|
|
99
|
-
export type NamedAccountExecuteFunction<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData> = <ArgumentsType = undefined, Deployments extends UnknownDeployments = UnknownDeployments>(callback: DeployScriptFunction<NamedAccounts, Data, ArgumentsType, Deployments>, options: {
|
|
100
|
-
tags?: string[];
|
|
101
|
-
dependencies?: string[];
|
|
102
|
-
id?: string;
|
|
103
|
-
}) => DeployScriptModule<NamedAccounts, Data, ArgumentsType, Deployments>;
|
|
104
|
-
export interface UntypedRequestArguments {
|
|
105
|
-
readonly method: string;
|
|
106
|
-
readonly params?: readonly unknown[] | object;
|
|
107
|
-
}
|
|
108
|
-
export type UntypedEIP1193Provider = {
|
|
109
|
-
request(requestArguments: UntypedRequestArguments): Promise<unknown>;
|
|
110
|
-
};
|
|
111
|
-
export type ConfigOverrides = {
|
|
112
|
-
deployments?: string;
|
|
113
|
-
scripts?: string | string[];
|
|
114
|
-
};
|
|
115
|
-
export type Create2DeterministicDeploymentInfo = {
|
|
116
|
-
factory: `0x${string}`;
|
|
117
|
-
deployer: `0x${string}`;
|
|
118
|
-
funding: string;
|
|
119
|
-
signedTx: `0x${string}`;
|
|
120
|
-
};
|
|
121
|
-
export type Create3DeterministicDeploymentInfo = {
|
|
122
|
-
salt?: `0x${string}`;
|
|
123
|
-
factory: `0x${string}`;
|
|
124
|
-
bytecode: `0x${string}`;
|
|
125
|
-
proxyBytecode: `0x${string}`;
|
|
126
|
-
};
|
|
127
|
-
export type DeterministicDeploymentInfo = Create2DeterministicDeploymentInfo | {
|
|
128
|
-
create2?: Create2DeterministicDeploymentInfo;
|
|
129
|
-
create3?: Create3DeterministicDeploymentInfo;
|
|
130
|
-
};
|
|
131
|
-
export type ChainUserConfig = {
|
|
132
|
-
rpcUrl?: string;
|
|
133
|
-
tags?: string[];
|
|
134
|
-
deterministicDeployment?: DeterministicDeploymentInfo;
|
|
135
|
-
info?: ChainInfo;
|
|
136
|
-
pollingInterval?: number;
|
|
137
|
-
properties?: Record<string, JSONTypePlusBigInt>;
|
|
138
|
-
};
|
|
139
|
-
export type ChainConfig = {
|
|
140
|
-
rpcUrl: string;
|
|
141
|
-
tags: string[];
|
|
142
|
-
deterministicDeployment: DeterministicDeploymentInfo;
|
|
143
|
-
info: ChainInfo;
|
|
144
|
-
pollingInterval: number;
|
|
145
|
-
properties: Record<string, JSONTypePlusBigInt>;
|
|
146
|
-
};
|
|
147
|
-
export type DeploymentTargetConfig = {
|
|
148
|
-
chainId: number;
|
|
149
|
-
scripts?: string | string[];
|
|
150
|
-
overrides: Omit<ChainUserConfig, 'info'>;
|
|
151
|
-
};
|
|
152
|
-
export type Chains = {
|
|
153
|
-
[idOrName: number | string]: ChainUserConfig;
|
|
154
|
-
};
|
|
155
|
-
export type SignerProtocolFunction = (protocolString: string) => Promise<Signer>;
|
|
156
|
-
export type SignerProtocol = {
|
|
157
|
-
getSigner: SignerProtocolFunction;
|
|
158
|
-
};
|
|
159
|
-
export type UserConfig<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData> = {
|
|
160
|
-
targets?: {
|
|
161
|
-
[name: string]: DeploymentTargetConfig;
|
|
162
|
-
};
|
|
163
|
-
chains?: Chains;
|
|
164
|
-
deployments?: string;
|
|
165
|
-
scripts?: string | string[];
|
|
166
|
-
accounts?: NamedAccounts;
|
|
167
|
-
data?: Data;
|
|
168
|
-
signerProtocols?: Record<string, SignerProtocolFunction>;
|
|
169
|
-
defaultPollingInterval?: number;
|
|
170
|
-
};
|
|
171
|
-
export type ResolvedUserConfig<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData> = UserConfig & {
|
|
172
|
-
deployments: string;
|
|
173
|
-
scripts: string[];
|
|
174
|
-
defaultPollingInterval: number;
|
|
175
|
-
};
|
|
176
|
-
export type ExecutionParams<Extra extends Record<string, unknown> = Record<string, unknown>> = {
|
|
177
|
-
target?: string | {
|
|
178
|
-
fork: string;
|
|
179
|
-
};
|
|
180
|
-
tags?: string[];
|
|
181
|
-
saveDeployments?: boolean;
|
|
182
|
-
askBeforeProceeding?: boolean;
|
|
183
|
-
reportGasUse?: boolean;
|
|
184
|
-
defaultPollingInterval?: number;
|
|
185
|
-
extra?: Extra;
|
|
186
|
-
logLevel?: number;
|
|
187
|
-
provider?: EIP1193ProviderWithoutEvents;
|
|
188
|
-
config: ConfigOverrides;
|
|
189
|
-
};
|
|
190
98
|
export {};
|
|
191
99
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './types.js';
|
|
1
|
+
export * from './executor/index.js';
|
|
2
|
+
export * from './executor/types.js';
|
|
3
|
+
export * from './environment/types.js';
|
|
4
4
|
export { loadDeployments } from './environment/deployments.js';
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
5
|
+
export * from './environment/utils/artifacts.js';
|
|
6
|
+
export * from './environment/utils/chains.js';
|
|
7
|
+
export * from './utils/eth.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './types.js';
|
|
1
|
+
export * from './executor/index.js';
|
|
2
|
+
export * from './executor/types.js';
|
|
3
|
+
export * from './environment/types.js';
|
|
4
4
|
export { loadDeployments } from './environment/deployments.js';
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
5
|
+
export * from './environment/utils/artifacts.js';
|
|
6
|
+
export * from './environment/utils/chains.js';
|
|
7
|
+
export * from './utils/eth.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
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,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Environment, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts
|
|
1
|
+
import type { Environment, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts } from '../environment/types.js';
|
|
2
|
+
import { CurriedFunctions } from '../executor/types.js';
|
|
2
3
|
/**
|
|
3
4
|
* @param env - The environment object to inject as the first parameter
|
|
4
5
|
* @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,4 +1,4 @@
|
|
|
1
|
-
import type { Environment } from '../types.js';
|
|
1
|
+
import type { Environment } from '../environment/types.js';
|
|
2
2
|
declare const exampleExtensions: {
|
|
3
3
|
deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
|
|
4
4
|
verify: (env: Environment) => (address: string) => Promise<boolean>;
|
|
@@ -6,7 +6,7 @@ declare const exampleExtensions: {
|
|
|
6
6
|
syncFunction: (env: Environment) => (value: number) => number;
|
|
7
7
|
provider: (env: Environment) => import("../environment/providers/TransactionHashTracker.js").TransactionHashTracker;
|
|
8
8
|
};
|
|
9
|
-
declare const enhancedEnv: import("../
|
|
9
|
+
declare const enhancedEnv: import("../index.js").CurriedFunctions<{
|
|
10
10
|
deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
|
|
11
11
|
verify: (env: Environment) => (address: string) => Promise<boolean>;
|
|
12
12
|
getBalance: (env: Environment) => (address: string) => Promise<bigint>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.test.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"extensions.test.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,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;kBA3BT,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;EAImC,CAAC;AAGhE,iBAAe,SAAS,kBAUvB;AAGD,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
|
package/dist/utils/fs.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ interface LookupFileOptions {
|
|
|
4
4
|
predicate?: (file: string) => boolean;
|
|
5
5
|
}
|
|
6
6
|
export declare function lookupFile(dir: string, formats: string[], options?: LookupFileOptions): string | undefined;
|
|
7
|
-
export declare function traverseMultipleDirectory(dirs:
|
|
7
|
+
export declare function traverseMultipleDirectory(dirs: string[]): string[];
|
|
8
8
|
export declare const traverse: (dir: string, result?: any[], topDir?: string, filter?: (name: string, stats: any) => boolean) => Array<{
|
|
9
9
|
name: string;
|
|
10
10
|
path: string;
|
package/dist/utils/fs.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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"}
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,oIAAoI;AACpI,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,OAAiB,EAAE,OAA2B;IACrF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC;YACf,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rocketh",
|
|
3
|
-
"version": "0.15.0-testing.
|
|
3
|
+
"version": "0.15.0-testing.3",
|
|
4
4
|
"description": "deploy smart contract on ethereum-compatible networks",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^24.4.0",
|
|
23
|
+
"abitype": "^1.1.0",
|
|
23
24
|
"as-soon": "^0.0.11",
|
|
25
|
+
"eip-1193": "^0.6.5",
|
|
24
26
|
"ipfs-gateway-emulator": "4.2.1-ipfs.2",
|
|
25
27
|
"rimraf": "^6.0.1",
|
|
26
28
|
"typedoc": "^0.28.13",
|
|
@@ -29,10 +31,8 @@
|
|
|
29
31
|
"dependencies": {
|
|
30
32
|
"@types/figlet": "^1.7.0",
|
|
31
33
|
"@types/prompts": "^2.4.9",
|
|
32
|
-
"abitype": "^1.1.0",
|
|
33
34
|
"change-case": "^5.4.4",
|
|
34
35
|
"commander": "^13.1.0",
|
|
35
|
-
"eip-1193": "^0.6.5",
|
|
36
36
|
"eip-1193-jsonrpc-provider": "^0.4.3",
|
|
37
37
|
"ethers": "^6.15.0",
|
|
38
38
|
"figlet": "^1.9.1",
|
package/src/cli.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
import {loadEnv} from 'ldenv';
|
|
3
|
-
import {
|
|
3
|
+
import {ConfigOptions, loadAndExecuteDeployments} from './index.js';
|
|
4
4
|
import {Command} from 'commander';
|
|
5
5
|
import pkg from '../package.json' with {type: 'json'};
|
|
6
6
|
|
|
@@ -19,14 +19,14 @@ program
|
|
|
19
19
|
.option('--skip-gas-report', 'if set skip gas report')
|
|
20
20
|
.option('--skip-prompts', 'if set skip any prompts')
|
|
21
21
|
.option('--save-deployments', 'if set, save deployments')
|
|
22
|
-
.requiredOption('
|
|
22
|
+
.requiredOption('--target <value>', 'target context to use')
|
|
23
23
|
.parse(process.argv);
|
|
24
24
|
|
|
25
25
|
const options = program.opts();
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
loadAndExecuteDeployments({
|
|
29
|
-
...(options as
|
|
29
|
+
...(options as ConfigOptions),
|
|
30
30
|
logLevel: 1,
|
|
31
31
|
askBeforeProceeding: options.skipPrompts ? false : true,
|
|
32
32
|
reportGasUse: options.skipGasReport ? false : true,
|
package/src/environment/index.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
PendingDeployment,
|
|
10
10
|
PendingTransaction,
|
|
11
11
|
ResolvedAccount,
|
|
12
|
+
ResolvedConfig,
|
|
12
13
|
ResolvedNamedAccounts,
|
|
13
14
|
ResolvedNamedSigners,
|
|
14
15
|
UnknownDeployments,
|
|
@@ -16,10 +17,8 @@ import {
|
|
|
16
17
|
UnresolvedNetworkSpecificData,
|
|
17
18
|
ResolvedNetworkSpecificData,
|
|
18
19
|
DataType,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
PendingExecution,
|
|
22
|
-
} from '../types.js';
|
|
20
|
+
} from './types.js';
|
|
21
|
+
import {JSONRPCHTTPProvider} from 'eip-1193-jsonrpc-provider';
|
|
23
22
|
import {Abi, Address} from 'abitype';
|
|
24
23
|
import {InternalEnvironment} from '../internal/types.js';
|
|
25
24
|
import path from 'node:path';
|
|
@@ -30,13 +29,22 @@ import {
|
|
|
30
29
|
EIP1193Block,
|
|
31
30
|
EIP1193BlockWithTransactions,
|
|
32
31
|
EIP1193DATA,
|
|
32
|
+
EIP1193ProviderWithoutEvents,
|
|
33
|
+
EIP1193QUANTITY,
|
|
33
34
|
EIP1193Transaction,
|
|
34
35
|
EIP1193TransactionReceipt,
|
|
35
36
|
} from 'eip-1193';
|
|
36
37
|
import {ProgressIndicator, log, spin} from '../internal/logging.js';
|
|
38
|
+
import {PendingExecution} from './types.js';
|
|
39
|
+
import {getChainWithConfig} from './utils/chains.js';
|
|
37
40
|
import {mergeArtifacts} from './utils/artifacts.js';
|
|
38
41
|
import {TransactionHashTracker, TransactionHashTrackerProvider} from './providers/TransactionHashTracker.js';
|
|
39
42
|
|
|
43
|
+
export type SignerProtocolFunction = (protocolString: string) => Promise<Signer>;
|
|
44
|
+
export type SignerProtocol = {
|
|
45
|
+
getSigner: SignerProtocolFunction;
|
|
46
|
+
};
|
|
47
|
+
|
|
40
48
|
function wait(numSeconds: number): Promise<void> {
|
|
41
49
|
return new Promise((resolve) => {
|
|
42
50
|
setTimeout(resolve, numSeconds * 1000);
|
|
@@ -58,10 +66,12 @@ export async function createEnvironment<
|
|
|
58
66
|
Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData,
|
|
59
67
|
Deployments extends UnknownDeployments = UnknownDeployments
|
|
60
68
|
>(
|
|
61
|
-
|
|
62
|
-
resolvedExecutionParams: ResolvedExecutionParams
|
|
69
|
+
config: ResolvedConfig<NamedAccounts, Data>
|
|
63
70
|
): Promise<{internal: InternalEnvironment; external: Environment<NamedAccounts, Data, Deployments>}> {
|
|
64
|
-
const rawProvider =
|
|
71
|
+
const rawProvider =
|
|
72
|
+
'provider' in config.target
|
|
73
|
+
? config.target.provider
|
|
74
|
+
: (new JSONRPCHTTPProvider(config.target.nodeUrl) as EIP1193ProviderWithoutEvents);
|
|
65
75
|
|
|
66
76
|
const provider: TransactionHashTracker = new TransactionHashTrackerProvider(rawProvider);
|
|
67
77
|
|
|
@@ -85,14 +95,34 @@ export async function createEnvironment<
|
|
|
85
95
|
console.error(`failed to get genesis block`);
|
|
86
96
|
}
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const saveDeployments = resolvedExecutionParams.saveDeployments;
|
|
98
|
+
let networkName: string;
|
|
99
|
+
let saveDeployments: boolean;
|
|
91
100
|
let networkTags: {[tag: string]: boolean} = {};
|
|
92
|
-
for (const networkTag of
|
|
101
|
+
for (const networkTag of config.target.tags) {
|
|
93
102
|
networkTags[networkTag] = true;
|
|
94
103
|
}
|
|
95
104
|
|
|
105
|
+
if ('nodeUrl' in config) {
|
|
106
|
+
networkName = config.target.name;
|
|
107
|
+
saveDeployments = true;
|
|
108
|
+
} else {
|
|
109
|
+
if (config.target.name) {
|
|
110
|
+
networkName = config.target.name;
|
|
111
|
+
} else {
|
|
112
|
+
networkName = 'memory';
|
|
113
|
+
}
|
|
114
|
+
if (networkName === 'memory' || networkName === 'hardhat' || networkName === 'default') {
|
|
115
|
+
networkTags['memory'] = true;
|
|
116
|
+
saveDeployments = false;
|
|
117
|
+
} else {
|
|
118
|
+
saveDeployments = true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (config.saveDeployments !== undefined) {
|
|
123
|
+
saveDeployments = config.saveDeployments;
|
|
124
|
+
}
|
|
125
|
+
|
|
96
126
|
const resolvedAccounts: {[name: string]: ResolvedAccount} = {};
|
|
97
127
|
|
|
98
128
|
const allRemoteAccounts = await provider.request({method: 'eth_accounts'});
|
|
@@ -119,7 +149,7 @@ export async function createEnvironment<
|
|
|
119
149
|
} else if (typeof accountDef === 'string') {
|
|
120
150
|
if (accountDef.startsWith('0x')) {
|
|
121
151
|
if (accountDef.length === 66) {
|
|
122
|
-
const privateKeyProtocol =
|
|
152
|
+
const privateKeyProtocol = config.signerProtocols['privateKey'];
|
|
123
153
|
if (privateKeyProtocol) {
|
|
124
154
|
const namedSigner = await privateKeyProtocol(`privateKey:${accountDef}`);
|
|
125
155
|
const [address] = await namedSigner.signer.request({method: 'eth_accounts'});
|
|
@@ -138,7 +168,7 @@ export async function createEnvironment<
|
|
|
138
168
|
} else {
|
|
139
169
|
if (accountDef.indexOf(':') > 0) {
|
|
140
170
|
const [protocolID, extra] = accountDef.split(':');
|
|
141
|
-
const protocol =
|
|
171
|
+
const protocol = config.signerProtocols[protocolID];
|
|
142
172
|
if (!protocol) {
|
|
143
173
|
throw new Error(`protocol: ${protocolID} is not supported`);
|
|
144
174
|
}
|
|
@@ -156,8 +186,7 @@ export async function createEnvironment<
|
|
|
156
186
|
}
|
|
157
187
|
}
|
|
158
188
|
} else {
|
|
159
|
-
|
|
160
|
-
const accountForNetwork = accountDef[environmentName] || accountDef[chainId] || accountDef['default'];
|
|
189
|
+
const accountForNetwork = accountDef[networkName] || accountDef[chainId] || accountDef['default'];
|
|
161
190
|
if (typeof accountForNetwork !== undefined) {
|
|
162
191
|
const accountFetched = await getAccount(name, accounts, accountForNetwork);
|
|
163
192
|
if (accountFetched) {
|
|
@@ -169,33 +198,24 @@ export async function createEnvironment<
|
|
|
169
198
|
return account;
|
|
170
199
|
}
|
|
171
200
|
|
|
172
|
-
if (
|
|
173
|
-
const accountNames = Object.keys(
|
|
201
|
+
if (config.accounts) {
|
|
202
|
+
const accountNames = Object.keys(config.accounts);
|
|
174
203
|
for (const accountName of accountNames) {
|
|
175
|
-
|
|
176
|
-
if (!account) {
|
|
177
|
-
throw new Error(
|
|
178
|
-
`cannot get account for ${accountName} = ${JSON.stringify(
|
|
179
|
-
userConfig.accounts[accountName],
|
|
180
|
-
null,
|
|
181
|
-
2
|
|
182
|
-
)}\n You might need to connect to a account-aware provider.`
|
|
183
|
-
);
|
|
184
|
-
}
|
|
204
|
+
let account = await getAccount(accountName, config.accounts, config.accounts[accountName]);
|
|
185
205
|
(resolvedAccounts as any)[accountName] = account;
|
|
186
206
|
}
|
|
187
207
|
}
|
|
188
208
|
|
|
189
209
|
const resolvedData: ResolvedNetworkSpecificData<Data> = {} as ResolvedNetworkSpecificData<Data>;
|
|
190
210
|
async function getData<T = unknown>(name: string, dataDef: DataType<T>): Promise<T | undefined> {
|
|
191
|
-
const dataForNetwork = dataDef[
|
|
211
|
+
const dataForNetwork = dataDef[networkName] || dataDef[chainId] || dataDef['default'];
|
|
192
212
|
return dataForNetwork;
|
|
193
213
|
}
|
|
194
214
|
|
|
195
|
-
if (
|
|
196
|
-
const dataFields = Object.keys(
|
|
215
|
+
if (config.data) {
|
|
216
|
+
const dataFields = Object.keys(config.data);
|
|
197
217
|
for (const dataField of dataFields) {
|
|
198
|
-
let fieldData = await getData(dataField,
|
|
218
|
+
let fieldData = await getData(dataField, config.data[dataField]);
|
|
199
219
|
(resolvedData as any)[dataField] = fieldData;
|
|
200
220
|
}
|
|
201
221
|
}
|
|
@@ -203,18 +223,21 @@ export async function createEnvironment<
|
|
|
203
223
|
const context = {
|
|
204
224
|
accounts: resolvedAccounts,
|
|
205
225
|
data: resolvedData,
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
226
|
+
network: {
|
|
227
|
+
name: networkName,
|
|
228
|
+
fork: config.target.fork,
|
|
229
|
+
saveDeployments,
|
|
230
|
+
tags: networkTags,
|
|
231
|
+
},
|
|
209
232
|
};
|
|
210
233
|
|
|
211
234
|
// console.log(`context`, JSON.stringify(context.network, null, 2));
|
|
212
235
|
|
|
213
236
|
const {deployments, migrations} = loadDeployments(
|
|
214
|
-
|
|
215
|
-
|
|
237
|
+
config.deployments,
|
|
238
|
+
context.network.name,
|
|
216
239
|
false,
|
|
217
|
-
context.fork
|
|
240
|
+
context.network.fork
|
|
218
241
|
? undefined
|
|
219
242
|
: {
|
|
220
243
|
chainId,
|
|
@@ -244,11 +267,7 @@ export async function createEnvironment<
|
|
|
244
267
|
}
|
|
245
268
|
|
|
246
269
|
const perliminaryEnvironment = {
|
|
247
|
-
|
|
248
|
-
saveDeployments: context.saveDeployments,
|
|
249
|
-
},
|
|
250
|
-
name: environmentName,
|
|
251
|
-
tags: context.tags,
|
|
270
|
+
config,
|
|
252
271
|
deployments: deployments as Deployments,
|
|
253
272
|
namedAccounts: namedAccounts as ResolvedNamedAccounts<NamedAccounts>,
|
|
254
273
|
data: resolvedData,
|
|
@@ -256,19 +275,16 @@ export async function createEnvironment<
|
|
|
256
275
|
unnamedAccounts,
|
|
257
276
|
addressSigners: addressSigners,
|
|
258
277
|
network: {
|
|
259
|
-
chain:
|
|
260
|
-
|
|
278
|
+
chain: getChainWithConfig(chainId, config),
|
|
279
|
+
name: context.network.name,
|
|
280
|
+
tags: context.network.tags,
|
|
261
281
|
provider,
|
|
262
|
-
deterministicDeployment: resolvedExecutionParams.environment.deterministicDeployment,
|
|
263
|
-
|
|
264
|
-
// for backward compatibility
|
|
265
|
-
tags: context.tags,
|
|
266
282
|
},
|
|
267
|
-
extra:
|
|
283
|
+
extra: config.extra || {},
|
|
268
284
|
};
|
|
269
285
|
|
|
270
286
|
function getDeploymentFolder(): string {
|
|
271
|
-
const folderPath = path.join(
|
|
287
|
+
const folderPath = path.join(config.deployments, context.network.name);
|
|
272
288
|
return folderPath;
|
|
273
289
|
}
|
|
274
290
|
|
|
@@ -321,7 +337,7 @@ export async function createEnvironment<
|
|
|
321
337
|
|
|
322
338
|
function recordMigration(id: string): void {
|
|
323
339
|
migrations[id] = Math.floor(Date.now() / 1000);
|
|
324
|
-
if (context.saveDeployments) {
|
|
340
|
+
if (context.network.saveDeployments) {
|
|
325
341
|
const folderPath = ensureDeploymentFolder();
|
|
326
342
|
fs.writeFileSync(`${folderPath}/.migrations.json`, JSON.stringify(migrations));
|
|
327
343
|
}
|
|
@@ -369,7 +385,7 @@ export async function createEnvironment<
|
|
|
369
385
|
} else {
|
|
370
386
|
deployments[name] = {...deployment, numDeployments: 1};
|
|
371
387
|
}
|
|
372
|
-
if (context.saveDeployments) {
|
|
388
|
+
if (context.network.saveDeployments) {
|
|
373
389
|
const folderPath = ensureDeploymentFolder();
|
|
374
390
|
fs.writeFileSync(`${folderPath}/${name}.json`, JSONToString(deployment, 2));
|
|
375
391
|
}
|
|
@@ -377,7 +393,7 @@ export async function createEnvironment<
|
|
|
377
393
|
}
|
|
378
394
|
|
|
379
395
|
async function recoverTransactionsIfAny(): Promise<void> {
|
|
380
|
-
if (!context.saveDeployments) {
|
|
396
|
+
if (!context.network.saveDeployments) {
|
|
381
397
|
return;
|
|
382
398
|
}
|
|
383
399
|
const folderPath = getDeploymentFolder();
|
|
@@ -422,7 +438,7 @@ export async function createEnvironment<
|
|
|
422
438
|
}
|
|
423
439
|
|
|
424
440
|
async function savePendingTransaction(pendingTransaction: PendingTransaction) {
|
|
425
|
-
if (context.saveDeployments) {
|
|
441
|
+
if (context.network.saveDeployments) {
|
|
426
442
|
const folderPath = ensureDeploymentFolder();
|
|
427
443
|
const filepath = path.join(folderPath, '.pending_transactions.json');
|
|
428
444
|
let existingPendinTransactions: PendingTransaction[];
|
|
@@ -442,7 +458,7 @@ export async function createEnvironment<
|
|
|
442
458
|
// confirmations?: number; // TODO
|
|
443
459
|
// timeout?: number; // TODO
|
|
444
460
|
}): Promise<EIP1193TransactionReceipt> {
|
|
445
|
-
const {hash, pollingInterval} = {pollingInterval:
|
|
461
|
+
const {hash, pollingInterval} = {pollingInterval: config.target.pollingInterval, ...params};
|
|
446
462
|
|
|
447
463
|
let receipt: EIP1193TransactionReceipt | null = null;
|
|
448
464
|
try {
|
|
@@ -460,7 +476,7 @@ export async function createEnvironment<
|
|
|
460
476
|
}
|
|
461
477
|
|
|
462
478
|
async function deleteTransaction<TAbi extends Abi = Abi>(hash: string) {
|
|
463
|
-
if (context.saveDeployments) {
|
|
479
|
+
if (context.network.saveDeployments) {
|
|
464
480
|
const folderPath = ensureDeploymentFolder();
|
|
465
481
|
const filepath = path.join(folderPath, '.pending_transactions.json');
|
|
466
482
|
let existingPendinTransactions: PendingTransaction[];
|