rocketh 0.17.23 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/environment/chains.d.ts +2 -19
- package/dist/environment/chains.d.ts.map +1 -1
- package/dist/environment/chains.js +55 -158
- package/dist/environment/chains.js.map +1 -1
- package/dist/executor/index.d.ts +2 -2
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +23 -61
- package/dist/executor/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/environment/chains.ts +61 -191
- package/src/executor/index.ts +38 -62
- package/src/index.ts +1 -6
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export
|
|
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): {
|
|
8
|
-
success: true;
|
|
9
|
-
chainInfo: ChainInfo;
|
|
10
|
-
} | {
|
|
11
|
-
success: false;
|
|
12
|
-
error?: string;
|
|
13
|
-
};
|
|
14
|
-
export declare function getChainConfigFromUserConfigAndDefaultChainInfo(config: ResolvedUserConfig, chainDetails: {
|
|
15
|
-
id: number;
|
|
16
|
-
chainInfo?: ChainInfo;
|
|
17
|
-
canonicalName?: string;
|
|
18
|
-
doNotRequireRpcURL?: boolean;
|
|
19
|
-
}): ChainConfig;
|
|
1
|
+
import { ChainConfig, EIP1193ProviderWithoutEvents, ResolvedUserConfig } from '../types.js';
|
|
2
|
+
export declare function getChainConfigFromUserConfig(config: ResolvedUserConfig, id: number, provider?: EIP1193ProviderWithoutEvents): ChainConfig;
|
|
20
3
|
//# sourceMappingURL=chains.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/environment/chains.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/environment/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EAIX,4BAA4B,EAC5B,kBAAkB,EAClB,MAAM,aAAa,CAAC;AAErB,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,QAAQ,CAAC,EAAE,4BAA4B,GACrC,WAAW,CAgGb"}
|
|
@@ -1,187 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
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
|
-
return {
|
|
69
|
-
success: false,
|
|
70
|
-
error: `chainId ${id} refers to different chains, please specify it by name or provide the chainConfig yourself`,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
defaultChainInfo = defaultChainInfos ? defaultChainInfos[0] : undefined;
|
|
75
|
-
}
|
|
76
|
-
return defaultChainInfo ? { success: true, chainInfo: defaultChainInfo } : { success: false };
|
|
77
|
-
}
|
|
78
|
-
export function getChainConfigFromUserConfigAndDefaultChainInfo(config, chainDetails) {
|
|
79
|
-
const canonicalName = chainDetails?.canonicalName;
|
|
80
|
-
let chainInfo = chainDetails?.chainInfo ? { ...chainDetails.chainInfo } : undefined;
|
|
81
|
-
if (chainInfo?.id && chainDetails.id != chainInfo.id) {
|
|
82
|
-
console.warn(`default chainInfo has a different chainId (${chainInfo.id}) != ${chainDetails.id}, we thus assign it`);
|
|
83
|
-
// we ensure the chainInfo has the correct id
|
|
84
|
-
chainInfo.id = chainDetails.id;
|
|
85
|
-
}
|
|
86
|
-
if (canonicalName) {
|
|
87
|
-
if (config.chains?.[chainDetails.id] && config.chains?.[canonicalName]) {
|
|
88
|
-
throw new Error(`chain should be configured by chainId or name but not both, remove either ${chainDetails.id} or ${canonicalName}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
let chainConfig = canonicalName ? config.chains?.[canonicalName] : undefined;
|
|
92
|
-
if (!chainConfig) {
|
|
93
|
-
chainConfig = config.chains?.[chainDetails.id];
|
|
94
|
-
}
|
|
95
|
-
if (!chainConfig) {
|
|
96
|
-
chainConfig = { info: chainInfo };
|
|
97
|
-
}
|
|
98
|
-
chainInfo = chainConfig?.info || chainInfo;
|
|
99
|
-
// let rpcUrl = process.env['ETH_NODE_URI_' + id];
|
|
100
|
-
// if (canonicalName) {
|
|
101
|
-
// const fromEnv = process.env['ETH_NODE_URI_' + canonicalName];
|
|
102
|
-
// if (fromEnv) {
|
|
103
|
-
// rpcUrl = fromEnv;
|
|
104
|
-
// }
|
|
105
|
-
// }
|
|
106
|
-
// if (!rpcUrl) {
|
|
107
|
-
// rpcUrl = chainConfig.rpcUrl;
|
|
108
|
-
// }
|
|
109
|
-
let rpcUrl = chainConfig.rpcUrl;
|
|
110
|
-
if (!rpcUrl) {
|
|
111
|
-
rpcUrl = chainConfig.info?.rpcUrls.default.http[0];
|
|
112
|
-
}
|
|
113
|
-
// TODO remove ?
|
|
114
|
-
if (!rpcUrl) {
|
|
115
|
-
if (chainDetails.id === 31337 || chainDetails.id === 1337) {
|
|
116
|
-
rpcUrl = 'http://127.0.0.1:8545';
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
if (!chainInfo) {
|
|
120
|
-
if (!rpcUrl && !chainDetails.doNotRequireRpcURL) {
|
|
121
|
-
throw new Error(`chain with id ${chainDetails.id} has no public info and no rpc url known to fallback on`);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
console.error(`chain with id ${chainDetails.id} has no public info`);
|
|
125
|
-
}
|
|
126
|
-
chainInfo = {
|
|
127
|
-
id: chainDetails.id,
|
|
128
|
-
name: 'unknown',
|
|
129
|
-
nativeCurrency: {
|
|
130
|
-
name: 'Unknown Currency',
|
|
131
|
-
symbol: 'UNKNOWN',
|
|
132
|
-
decimals: 18,
|
|
133
|
-
},
|
|
134
|
-
rpcUrls: {
|
|
135
|
-
default: {
|
|
136
|
-
http: rpcUrl ? [rpcUrl] : [],
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
chainType: 'default',
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
const create2Info = {
|
|
1
|
+
export function getChainConfigFromUserConfig(config, id, provider) {
|
|
2
|
+
const chainConfig = config.chains?.[id];
|
|
3
|
+
const defaultCreate2Info = {
|
|
143
4
|
factory: '0x4e59b44847b379578588920ca78fbf26c0b4956c',
|
|
144
5
|
deployer: '0x3fab184622dc19b6109349b94811493bf2a45362',
|
|
145
6
|
funding: '10000000000000000',
|
|
146
7
|
signedTx: '0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222',
|
|
147
8
|
};
|
|
148
|
-
const
|
|
9
|
+
const defaultCreate3Info = {
|
|
149
10
|
factory: '0x000000000004d4f168daE7DB3C610F408eE22F57',
|
|
150
11
|
salt: '0x5361109ca02853ca8e22046b7125306d9ec4ae4cdecc393c567b6be861df3db6',
|
|
151
12
|
bytecode: '0x6080604052348015600f57600080fd5b506103ca8061001f6000396000f3fe6080604052600436106100295760003560e01c8063360d0fad1461002e5780639881d19514610077575b600080fd5b34801561003a57600080fd5b5061004e610049366004610228565b61008a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61004e61008536600461029c565b6100ee565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e78261014c565b9392505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018290526000906054016040516020818303038152906040528051906020012091506100e734848461015e565b600061015882306101ce565b92915050565b60006f67363d3d37363d34f03d5260086018f3600052816010806000f58061018e5763301164256000526004601cfd5b8060145261d69460005260016034536017601e20915060008085516020870188855af1823b026101c65763301164256000526004601cfd5b509392505050565b60006040518260005260ff600b53836020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b20601452806040525061d694600052600160345350506017601e20919050565b6000806040838503121561023b57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461025f57600080fd5b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156102af57600080fd5b823567ffffffffffffffff8111156102c657600080fd5b8301601f810185136102d757600080fd5b803567ffffffffffffffff8111156102f1576102f161026d565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff8211171561035d5761035d61026d565b60405281815282820160200187101561037557600080fd5b816020840160208301376000602092820183015296940135945050505056fea264697066735822122059dcc5dc6453397d13ff28021e28472a80a45bbd97f3135f69bd2650773aeb0164736f6c634300081a0033',
|
|
152
13
|
proxyBytecode: '0x67363d3d37363d34f03d5260086018f3',
|
|
153
14
|
};
|
|
154
|
-
const pollingInterval = chainConfig
|
|
15
|
+
const pollingInterval = chainConfig?.pollingInterval || config.defaultPollingInterval;
|
|
155
16
|
let deterministicDeployment = {
|
|
156
17
|
create2: (() => {
|
|
157
|
-
const deterministicDeployment = chainConfig
|
|
18
|
+
const deterministicDeployment = chainConfig?.deterministicDeployment;
|
|
158
19
|
if (!deterministicDeployment) {
|
|
159
|
-
return
|
|
20
|
+
return defaultCreate2Info;
|
|
160
21
|
}
|
|
161
22
|
return 'create2' in deterministicDeployment && deterministicDeployment.create2
|
|
162
23
|
? deterministicDeployment.create2
|
|
163
24
|
: !('create2' in deterministicDeployment) && !('create3' in deterministicDeployment)
|
|
164
25
|
? deterministicDeployment
|
|
165
|
-
:
|
|
26
|
+
: defaultCreate2Info;
|
|
166
27
|
})(),
|
|
167
|
-
create3: chainConfig
|
|
28
|
+
create3: chainConfig?.deterministicDeployment &&
|
|
168
29
|
'create3' in chainConfig.deterministicDeployment &&
|
|
169
30
|
chainConfig.deterministicDeployment.create3
|
|
170
31
|
? chainConfig.deterministicDeployment.create3
|
|
171
|
-
:
|
|
32
|
+
: defaultCreate3Info,
|
|
172
33
|
};
|
|
173
34
|
const defaultTags = [];
|
|
174
|
-
if (
|
|
35
|
+
if (chainConfig?.info?.testnet) {
|
|
175
36
|
defaultTags.push('testnet');
|
|
176
37
|
}
|
|
177
|
-
const properties = chainConfig
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
38
|
+
const properties = chainConfig?.properties || config.defaultChainProperties || {};
|
|
39
|
+
if (!chainConfig?.info) {
|
|
40
|
+
console.error(`chain with id ${id} ${chainConfig ? 'has a chain config but' : ''} has no public info`);
|
|
41
|
+
}
|
|
42
|
+
const rpcUrl = chainConfig?.rpcUrl || chainConfig?.info?.rpcUrls.default.http[0];
|
|
43
|
+
const defaultChainInfo = {
|
|
44
|
+
id: id,
|
|
45
|
+
name: 'unknown',
|
|
46
|
+
nativeCurrency: {
|
|
47
|
+
name: 'Unknown Currency',
|
|
48
|
+
symbol: 'UNKNOWN',
|
|
49
|
+
decimals: 18,
|
|
50
|
+
},
|
|
51
|
+
rpcUrls: {
|
|
52
|
+
default: {
|
|
53
|
+
http: rpcUrl ? [rpcUrl] : [],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
chainType: 'default',
|
|
185
57
|
};
|
|
58
|
+
if (!rpcUrl && provider !== undefined) {
|
|
59
|
+
return {
|
|
60
|
+
info: chainConfig?.info || defaultChainInfo,
|
|
61
|
+
deterministicDeployment,
|
|
62
|
+
pollingInterval,
|
|
63
|
+
properties,
|
|
64
|
+
provider,
|
|
65
|
+
tags: chainConfig?.tags || [...defaultTags],
|
|
66
|
+
autoImpersonate: chainConfig?.autoImpersonate || false,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
else if (rpcUrl) {
|
|
70
|
+
return {
|
|
71
|
+
info: chainConfig?.info || defaultChainInfo,
|
|
72
|
+
deterministicDeployment,
|
|
73
|
+
pollingInterval,
|
|
74
|
+
properties,
|
|
75
|
+
rpcUrl: rpcUrl,
|
|
76
|
+
tags: chainConfig?.tags || [...defaultTags],
|
|
77
|
+
autoImpersonate: chainConfig?.autoImpersonate || false,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
throw new Error(`chain with id ${id} has no rpc url provided nor any provider to use`);
|
|
82
|
+
}
|
|
186
83
|
}
|
|
187
84
|
//# sourceMappingURL=chains.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/environment/chains.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/environment/chains.ts"],"names":[],"mappings":"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"}
|
package/dist/executor/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { EIP1193ProviderWithoutEvents } from 'eip-1193';
|
|
2
1
|
import type { Environment, ExecutionParams, ResolvedExecutionParams, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts, DeployScriptModule, EnhancedDeployScriptFunction, ResolvedUserConfig, ConfigOverrides, UserConfig, PromptExecutor, DeploymentStore, ModuleObject } from '@rocketh/core/types';
|
|
3
2
|
/**
|
|
4
3
|
* Setup function that creates the execute function for deploy scripts. It allow to specify a set of functions that will be available in the environment.
|
|
@@ -35,7 +34,8 @@ export declare function setupDeployScripts<Extensions extends Record<string, (en
|
|
|
35
34
|
}): DeployScriptModule<NamedAccounts, Data, ArgumentsType, Deployments, Extra>;
|
|
36
35
|
};
|
|
37
36
|
export declare function resolveConfig<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(configFile: UserConfig, overrides?: ConfigOverrides): ResolvedUserConfig<NamedAccounts, Data>;
|
|
38
|
-
export declare function getChainIdForEnvironment(config: ResolvedUserConfig, environmentName: string,
|
|
37
|
+
export declare function getChainIdForEnvironment(config: ResolvedUserConfig, environmentName: string, executionParams: ExecutionParams): Promise<number>;
|
|
38
|
+
export declare function getChainIdForExecutionParams(config: ResolvedUserConfig, executionParams: ExecutionParams): Promise<number>;
|
|
39
39
|
export declare function getEnvironmentName(executionParams: ExecutionParams): {
|
|
40
40
|
name: string;
|
|
41
41
|
fork: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,kBAAkB,EAClB,4BAA4B,EAE5B,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,cAAc,EACd,eAAe,EACf,YAAY,EAEZ,MAAM,qBAAqB,CAAC;AAU7B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAChF,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,EAE/D,UAAU,EAAE,UAAU,GACpB;IACF,YAAY,CAAC,aAAa,GAAG,SAAS,EACrC,QAAQ,EAAE,4BAA4B,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,EACnG,OAAO,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAC,GACrF,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;CAC9E,CA+BA;AAED,wBAAgB,aAAa,CAC5B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EACzE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAuB9F;AAED,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,eAAe,mBAyBhC;AAED,wBAAsB,4BAA4B,CACjD,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,eAAe,GAC9B,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAYlG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrG,MAAM,EAAE,kBAAkB,EAC1B,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,EAC3C,OAAO,EAAE,MAAM,GACb,uBAAuB,CAAC,KAAK,CAAC,CAyFhC;AAED,wBAAsB,eAAe,CACpC,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE/D,MAAM,EAAE,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EACvC,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,EACvC,eAAe,EAAE,eAAe,GAC9B,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAY/D;AAED,wBAAgB,cAAc,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc;iCA0B7F,aAAa,SAAS,8BAA8B,mCACpD,IAAI,SAAS,6BAA6B,kCAC1C,aAAa,6BAEE,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,cACrD,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,2BAC1B,uBAAuB,SACzC,aAAa,KAClB,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;iDAhC/D,aAAa,SAAS,8BAA8B,mCACpD,IAAI,SAAS,6BAA6B,kCAC1C,aAAa,cACb,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2CAEtB,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,cACrD,UAAU,oBACJ,eAAe,CAAC,KAAK,CAAC,SACjC,aAAa,KAClB,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;EAoNhE"}
|
package/dist/executor/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { withEnvironment } from '@rocketh/core/environment';
|
|
2
|
-
import { getChainConfigFromUserConfigAndDefaultChainInfo, getDefaultChainInfoByName, getDefaultChainInfoFromChainId, } from '../environment/chains.js';
|
|
3
2
|
import { JSONRPCHTTPProvider } from 'eip-1193-jsonrpc-provider';
|
|
4
3
|
import { createEnvironment } from '../environment/index.js';
|
|
5
4
|
import { getRoughGasPriceEstimate } from '../utils/eth.js';
|
|
6
5
|
import { formatEther } from 'viem';
|
|
7
6
|
import { logger, spin } from '../internal/logging.js';
|
|
7
|
+
import { getChainConfigFromUserConfig } from '../environment/chains.js';
|
|
8
8
|
/**
|
|
9
9
|
* Setup function that creates the execute function for deploy scripts. It allow to specify a set of functions that will be available in the environment.
|
|
10
10
|
*
|
|
@@ -71,44 +71,25 @@ export function resolveConfig(configFile, overrides) {
|
|
|
71
71
|
}
|
|
72
72
|
return config;
|
|
73
73
|
}
|
|
74
|
-
export async function getChainIdForEnvironment(config, environmentName,
|
|
74
|
+
export async function getChainIdForEnvironment(config, environmentName, executionParams) {
|
|
75
|
+
const provider = executionParams.provider;
|
|
75
76
|
let chainId;
|
|
76
|
-
const chainIdFromProvider = provider ? Number(await provider.request({ method: 'eth_chainId' })) : undefined;
|
|
77
77
|
if (config?.environments?.[environmentName]?.chain) {
|
|
78
|
-
|
|
79
|
-
? config.environments[environmentName].chain
|
|
80
|
-
: parseInt(config.environments[environmentName].chain);
|
|
81
|
-
if (!isNaN(chainAsNumber)) {
|
|
82
|
-
chainId = chainAsNumber;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
const chainFound = getDefaultChainInfoByName(config.environments[environmentName].chain);
|
|
86
|
-
if (chainFound) {
|
|
87
|
-
chainId = chainFound.id;
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
throw new Error(`environment ${environmentName} chain id cannot be found, specify it in the rocketh config`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
const chainFound = getDefaultChainInfoByName(environmentName);
|
|
96
|
-
if (chainFound) {
|
|
97
|
-
chainId = chainFound.id;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
if (chainIdFromProvider) {
|
|
101
|
-
chainId = chainIdFromProvider;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
throw new Error(`environment ${environmentName} chain id cannot be found, specify it in the rocketh config`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
78
|
+
chainId = config.environments[environmentName].chain;
|
|
107
79
|
}
|
|
108
|
-
|
|
80
|
+
const chainIdFromProvider = provider ? Number(await provider.request({ method: 'eth_chainId' })) : undefined;
|
|
81
|
+
if (chainId && chainIdFromProvider && chainIdFromProvider != chainId) {
|
|
109
82
|
console.warn(`provider give a different chainId (${chainIdFromProvider}) than the one expected for environment named "${environmentName}" (${chainId})`);
|
|
110
83
|
}
|
|
111
|
-
|
|
84
|
+
const chainIdToReturn = chainIdFromProvider || chainId;
|
|
85
|
+
if (chainIdToReturn === undefined) {
|
|
86
|
+
throw new Error(`Could not find chainId for environment named "${environmentName}" ${provider ? `` : '(no provider)'}`);
|
|
87
|
+
}
|
|
88
|
+
return chainIdToReturn;
|
|
89
|
+
}
|
|
90
|
+
export async function getChainIdForExecutionParams(config, executionParams) {
|
|
91
|
+
const { name: environmentName } = getEnvironmentName(executionParams);
|
|
92
|
+
return getChainIdForEnvironment(config, environmentName, executionParams);
|
|
112
93
|
}
|
|
113
94
|
export function getEnvironmentName(executionParams) {
|
|
114
95
|
const environmentProvided = executionParams.environment || executionParams.network;
|
|
@@ -128,24 +109,7 @@ export function resolveExecutionParams(config, executionParameters, chainId) {
|
|
|
128
109
|
const { name: environmentName, fork } = getEnvironmentName(executionParameters);
|
|
129
110
|
// TODO fork chainId resolution option to keep the network being used
|
|
130
111
|
const idToFetch = fork ? 31337 : chainId;
|
|
131
|
-
|
|
132
|
-
if (!chainInfoFound) {
|
|
133
|
-
const result = getDefaultChainInfoFromChainId(idToFetch);
|
|
134
|
-
chainInfoFound = result.success ? result.chainInfo : undefined;
|
|
135
|
-
if (!result.success && result.error) {
|
|
136
|
-
// logger.warn(`could not find chainInfo by name = "${environmentName}"\n ${result.error}`);
|
|
137
|
-
}
|
|
138
|
-
if (!chainInfoFound) {
|
|
139
|
-
// console.log(`could not find chainInfo by chainId = "${idToFetch}"`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
const defaultChainInfo = chainInfoFound;
|
|
143
|
-
const chainConfig = getChainConfigFromUserConfigAndDefaultChainInfo(config, {
|
|
144
|
-
id: idToFetch,
|
|
145
|
-
chainInfo: defaultChainInfo,
|
|
146
|
-
canonicalName: environmentName,
|
|
147
|
-
doNotRequireRpcURL: !!executionParameters.provider,
|
|
148
|
-
});
|
|
112
|
+
const chainConfig = getChainConfigFromUserConfig(config, idToFetch, executionParameters.provider);
|
|
149
113
|
let chainInfo = chainConfig.info;
|
|
150
114
|
const environmentConfig = config?.environments?.[environmentName];
|
|
151
115
|
const actualChainConfig = environmentConfig?.overrides
|
|
@@ -180,11 +144,9 @@ export function resolveExecutionParams(config, executionParameters, chainId) {
|
|
|
180
144
|
scripts = [...environmentConfig.scripts];
|
|
181
145
|
}
|
|
182
146
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const provider = executionParameters.provider ||
|
|
187
|
-
new JSONRPCHTTPProvider(actualChainConfig.rpcUrl);
|
|
147
|
+
const provider = 'provider' in actualChainConfig
|
|
148
|
+
? actualChainConfig.provider
|
|
149
|
+
: new JSONRPCHTTPProvider(actualChainConfig.rpcUrl);
|
|
188
150
|
let saveDeployments = executionParameters.saveDeployments;
|
|
189
151
|
if (saveDeployments === undefined) {
|
|
190
152
|
if (!executionParameters.provider) {
|
|
@@ -202,8 +164,8 @@ export function resolveExecutionParams(config, executionParameters, chainId) {
|
|
|
202
164
|
}
|
|
203
165
|
// Resolve auto-impersonation flag (priority: params > environment config > global config)
|
|
204
166
|
let autoImpersonate = executionParameters.autoImpersonate;
|
|
205
|
-
if (autoImpersonate === undefined &&
|
|
206
|
-
autoImpersonate =
|
|
167
|
+
if (autoImpersonate === undefined && actualChainConfig.autoImpersonate !== undefined) {
|
|
168
|
+
autoImpersonate = actualChainConfig.autoImpersonate;
|
|
207
169
|
}
|
|
208
170
|
return {
|
|
209
171
|
askBeforeProceeding: executionParameters.askBeforeProceeding || false,
|
|
@@ -227,7 +189,7 @@ export function resolveExecutionParams(config, executionParameters, chainId) {
|
|
|
227
189
|
export async function loadEnvironment(config, executionParams, deploymentStore) {
|
|
228
190
|
const userConfig = resolveConfig(config, executionParams.config);
|
|
229
191
|
const { name: environmentName, fork } = getEnvironmentName(executionParams);
|
|
230
|
-
const chainId = await getChainIdForEnvironment(userConfig, environmentName, executionParams
|
|
192
|
+
const chainId = await getChainIdForEnvironment(userConfig, environmentName, executionParams);
|
|
231
193
|
const resolvedExecutionParams = resolveExecutionParams(userConfig, executionParams, chainId);
|
|
232
194
|
// console.log(JSON.stringify(resolvedConfig, null, 2));
|
|
233
195
|
const { external, internal } = await createEnvironment(userConfig, resolvedExecutionParams, deploymentStore);
|
|
@@ -238,7 +200,7 @@ export function createExecutor(deploymentStore, promptExecutor) {
|
|
|
238
200
|
executionParams = executionParams || {};
|
|
239
201
|
const resolveduserConfig = resolveConfig(userConfig, executionParams.config);
|
|
240
202
|
const { name: environmentName, fork } = getEnvironmentName(executionParams);
|
|
241
|
-
const chainId = await getChainIdForEnvironment(resolveduserConfig, environmentName, executionParams
|
|
203
|
+
const chainId = await getChainIdForEnvironment(resolveduserConfig, environmentName, executionParams);
|
|
242
204
|
const resolvedExecutionParams = resolveExecutionParams(resolveduserConfig, executionParams, chainId);
|
|
243
205
|
return executeDeployScriptModules(moduleObjects, resolveduserConfig, resolvedExecutionParams, args);
|
|
244
206
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { setupDeployScripts, loadEnvironment, resolveConfig, resolveExecutionParams, getChainIdForEnvironment, getEnvironmentName, createExecutor, } from './executor/index.js';
|
|
2
2
|
export { createEnvironment, loadDeployments } from './environment/index.js';
|
|
3
3
|
export { enhanceEnvIfNeeded } from '@rocketh/core/environment';
|
|
4
|
-
export {
|
|
4
|
+
export { getChainConfigFromUserConfig } from './environment/chains.js';
|
|
5
5
|
//# 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,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,5 +2,5 @@ export { setupDeployScripts, loadEnvironment, resolveConfig, resolveExecutionPar
|
|
|
2
2
|
export { createEnvironment, loadDeployments } from './environment/index.js';
|
|
3
3
|
// used by hardhat-deploy and instead of having hardhat-deploy depends on @rocketh/core we export it here as well
|
|
4
4
|
export { enhanceEnvIfNeeded } from '@rocketh/core/environment';
|
|
5
|
-
export {
|
|
5
|
+
export { getChainConfigFromUserConfig } from './environment/chains.js';
|
|
6
6
|
//# 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,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAE1E,iHAAiH;AACjH,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAE1E,iHAAiH;AACjH,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rocketh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "A framework-agnostic smart contract deployment system for Ethereum-compatible networks.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"rocketh",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"ldenv": "^0.3.16",
|
|
55
55
|
"named-logs": "^0.4.1",
|
|
56
56
|
"viem": "^2.45.1",
|
|
57
|
-
"@rocketh/core": "0.
|
|
57
|
+
"@rocketh/core": "0.18.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"as-soon": "^0.1.5",
|
|
@@ -1,194 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {kebabCase} from 'change-case';
|
|
3
|
-
import type {
|
|
1
|
+
import {
|
|
4
2
|
ChainConfig,
|
|
5
3
|
ChainInfo,
|
|
6
|
-
ChainUserConfig,
|
|
7
4
|
Create2DeterministicDeploymentInfo,
|
|
8
5
|
Create3DeterministicDeploymentInfo,
|
|
6
|
+
EIP1193ProviderWithoutEvents,
|
|
9
7
|
ResolvedUserConfig,
|
|
10
|
-
} from '
|
|
8
|
+
} from '../types.js';
|
|
11
9
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
const chainTypesByNames: {[chainExportName: string]: ChainType} = {
|
|
15
|
-
base: 'op-stack',
|
|
16
|
-
baseGoerli: 'op-stack',
|
|
17
|
-
baseSepolia: 'op-stack',
|
|
18
|
-
optimism: 'op-stack',
|
|
19
|
-
optimismGoerli: 'op-stack',
|
|
20
|
-
optimismSepolia: 'op-stack',
|
|
21
|
-
pgn: 'op-stack',
|
|
22
|
-
pgnTestnet: 'op-stack',
|
|
23
|
-
zora: 'op-stack',
|
|
24
|
-
zoraSepolia: 'op-stack',
|
|
25
|
-
zoraTestnet: 'op-stack',
|
|
26
|
-
ancient8: 'op-stack',
|
|
27
|
-
ancient8Sepolia: 'op-stack',
|
|
28
|
-
celoAlfajores: 'celo',
|
|
29
|
-
celo: 'celo',
|
|
30
|
-
zkSync: 'zksync',
|
|
31
|
-
zkSyncTestnet: 'zksync',
|
|
32
|
-
zkSyncSepoliaTestnet: 'zksync',
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const chainTypes: {[chainId: string]: ChainType} = {};
|
|
36
|
-
|
|
37
|
-
const chainById: {[chainId: string]: ChainInfo[]} = {};
|
|
38
|
-
const allChains: {[chainExportName: string]: ChainInfo} = {...((chains as any).default || chains)};
|
|
39
|
-
allChains['localhost'] = {...allChains['hardhat'], name: 'localhost'};
|
|
40
|
-
|
|
41
|
-
for (const key of Object.keys(allChains)) {
|
|
42
|
-
const chain = (allChains as any)[key] as ChainInfo;
|
|
43
|
-
const chainId = chain.id.toString();
|
|
44
|
-
const specificChainType = chainTypesByNames[key];
|
|
45
|
-
if (specificChainType) {
|
|
46
|
-
chainTypes[chainId] = specificChainType;
|
|
47
|
-
}
|
|
48
|
-
const list = (chainById[chainId] = chainById[chainId] || []);
|
|
49
|
-
list.push({...chain, chainType: specificChainType});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export const chainByCanonicalName: {[canonicalName: string]: ChainInfo} = {};
|
|
53
|
-
for (const key of Object.keys(allChains)) {
|
|
54
|
-
const chain = (allChains as any)[key] as ChainInfo;
|
|
55
|
-
const canonicalName = kebabCase(chain.name);
|
|
56
|
-
chainByCanonicalName[canonicalName] = chain;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function getChainsById(id: string | number): ChainInfo[] | undefined {
|
|
60
|
-
const chains = chainById['' + id];
|
|
61
|
-
|
|
62
|
-
return chains;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function getDefaultChainInfoByName(name: string): ChainInfo | undefined {
|
|
66
|
-
const chain = chainByCanonicalName[name];
|
|
67
|
-
return chain;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// function getCanonicalNameFromChainId(id: string | number): string | undefined {
|
|
71
|
-
// let defaultChainInfo: ChainInfo | undefined;
|
|
72
|
-
// const defaultChainInfos = getChainsById(id);
|
|
73
|
-
// if (defaultChainInfos && defaultChainInfos.length > 1) {
|
|
74
|
-
// console.error(
|
|
75
|
-
// `chainId ${id} refers to different chain, please specific it by name or provide the chainConfig yourself`
|
|
76
|
-
// );
|
|
77
|
-
// } else {
|
|
78
|
-
// defaultChainInfo = defaultChainInfos ? defaultChainInfos[0] : undefined;
|
|
79
|
-
// }
|
|
80
|
-
// const canonicalName = defaultChainInfo ? kebabCase(defaultChainInfo.name) : undefined;
|
|
81
|
-
// return canonicalName;
|
|
82
|
-
// }
|
|
83
|
-
|
|
84
|
-
export function getDefaultChainInfoFromChainId(
|
|
85
|
-
id: string | number,
|
|
86
|
-
): {success: true; chainInfo: ChainInfo} | {success: false; error?: string} {
|
|
87
|
-
let defaultChainInfo: ChainInfo | undefined;
|
|
88
|
-
const defaultChainInfos = getChainsById(id);
|
|
89
|
-
if (defaultChainInfos && defaultChainInfos.length > 1) {
|
|
90
|
-
return {
|
|
91
|
-
success: false,
|
|
92
|
-
error: `chainId ${id} refers to different chains, please specify it by name or provide the chainConfig yourself`,
|
|
93
|
-
};
|
|
94
|
-
} else {
|
|
95
|
-
defaultChainInfo = defaultChainInfos ? defaultChainInfos[0] : undefined;
|
|
96
|
-
}
|
|
97
|
-
return defaultChainInfo ? {success: true, chainInfo: defaultChainInfo} : {success: false};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export function getChainConfigFromUserConfigAndDefaultChainInfo(
|
|
10
|
+
export function getChainConfigFromUserConfig(
|
|
101
11
|
config: ResolvedUserConfig,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
chainInfo?: ChainInfo;
|
|
105
|
-
canonicalName?: string;
|
|
106
|
-
doNotRequireRpcURL?: boolean;
|
|
107
|
-
},
|
|
12
|
+
id: number,
|
|
13
|
+
provider?: EIP1193ProviderWithoutEvents,
|
|
108
14
|
): ChainConfig {
|
|
109
|
-
const
|
|
110
|
-
let chainInfo = chainDetails?.chainInfo ? {...chainDetails.chainInfo} : undefined;
|
|
111
|
-
if (chainInfo?.id && chainDetails.id != chainInfo.id) {
|
|
112
|
-
console.warn(
|
|
113
|
-
`default chainInfo has a different chainId (${chainInfo.id}) != ${chainDetails.id}, we thus assign it`,
|
|
114
|
-
);
|
|
115
|
-
// we ensure the chainInfo has the correct id
|
|
116
|
-
chainInfo.id = chainDetails.id;
|
|
117
|
-
}
|
|
118
|
-
if (canonicalName) {
|
|
119
|
-
if (config.chains?.[chainDetails.id] && config.chains?.[canonicalName]) {
|
|
120
|
-
throw new Error(
|
|
121
|
-
`chain should be configured by chainId or name but not both, remove either ${chainDetails.id} or ${canonicalName}`,
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
15
|
+
const chainConfig = config.chains?.[id];
|
|
125
16
|
|
|
126
|
-
|
|
127
|
-
if (!chainConfig) {
|
|
128
|
-
chainConfig = config.chains?.[chainDetails.id];
|
|
129
|
-
}
|
|
130
|
-
if (!chainConfig) {
|
|
131
|
-
chainConfig = {info: chainInfo};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
chainInfo = chainConfig?.info || chainInfo;
|
|
135
|
-
|
|
136
|
-
// let rpcUrl = process.env['ETH_NODE_URI_' + id];
|
|
137
|
-
// if (canonicalName) {
|
|
138
|
-
// const fromEnv = process.env['ETH_NODE_URI_' + canonicalName];
|
|
139
|
-
// if (fromEnv) {
|
|
140
|
-
// rpcUrl = fromEnv;
|
|
141
|
-
// }
|
|
142
|
-
// }
|
|
143
|
-
// if (!rpcUrl) {
|
|
144
|
-
// rpcUrl = chainConfig.rpcUrl;
|
|
145
|
-
// }
|
|
146
|
-
|
|
147
|
-
let rpcUrl = chainConfig.rpcUrl;
|
|
148
|
-
|
|
149
|
-
if (!rpcUrl) {
|
|
150
|
-
rpcUrl = chainConfig.info?.rpcUrls.default.http[0];
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// TODO remove ?
|
|
154
|
-
if (!rpcUrl) {
|
|
155
|
-
if (chainDetails.id === 31337 || chainDetails.id === 1337) {
|
|
156
|
-
rpcUrl = 'http://127.0.0.1:8545';
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
if (!chainInfo) {
|
|
161
|
-
if (!rpcUrl && !chainDetails.doNotRequireRpcURL) {
|
|
162
|
-
throw new Error(`chain with id ${chainDetails.id} has no public info and no rpc url known to fallback on`);
|
|
163
|
-
} else {
|
|
164
|
-
console.error(`chain with id ${chainDetails.id} has no public info`);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
chainInfo = {
|
|
168
|
-
id: chainDetails.id,
|
|
169
|
-
name: 'unknown',
|
|
170
|
-
nativeCurrency: {
|
|
171
|
-
name: 'Unknown Currency',
|
|
172
|
-
symbol: 'UNKNOWN',
|
|
173
|
-
decimals: 18,
|
|
174
|
-
},
|
|
175
|
-
rpcUrls: {
|
|
176
|
-
default: {
|
|
177
|
-
http: rpcUrl ? [rpcUrl] : [],
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
chainType: 'default',
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
const create2Info = {
|
|
17
|
+
const defaultCreate2Info = {
|
|
185
18
|
factory: '0x4e59b44847b379578588920ca78fbf26c0b4956c',
|
|
186
19
|
deployer: '0x3fab184622dc19b6109349b94811493bf2a45362',
|
|
187
20
|
funding: '10000000000000000',
|
|
188
21
|
signedTx:
|
|
189
22
|
'0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222',
|
|
190
23
|
} as const;
|
|
191
|
-
const
|
|
24
|
+
const defaultCreate3Info = {
|
|
192
25
|
factory: '0x000000000004d4f168daE7DB3C610F408eE22F57',
|
|
193
26
|
salt: '0x5361109ca02853ca8e22046b7125306d9ec4ae4cdecc393c567b6be861df3db6',
|
|
194
27
|
bytecode:
|
|
@@ -196,45 +29,82 @@ export function getChainConfigFromUserConfigAndDefaultChainInfo(
|
|
|
196
29
|
proxyBytecode: '0x67363d3d37363d34f03d5260086018f3',
|
|
197
30
|
} as const;
|
|
198
31
|
|
|
199
|
-
const pollingInterval = chainConfig
|
|
32
|
+
const pollingInterval = chainConfig?.pollingInterval || config.defaultPollingInterval;
|
|
200
33
|
|
|
201
34
|
let deterministicDeployment: {
|
|
202
35
|
create2: Create2DeterministicDeploymentInfo;
|
|
203
36
|
create3: Create3DeterministicDeploymentInfo;
|
|
204
37
|
} = {
|
|
205
38
|
create2: (() => {
|
|
206
|
-
const deterministicDeployment = chainConfig
|
|
39
|
+
const deterministicDeployment = chainConfig?.deterministicDeployment;
|
|
207
40
|
if (!deterministicDeployment) {
|
|
208
|
-
return
|
|
41
|
+
return defaultCreate2Info;
|
|
209
42
|
}
|
|
210
43
|
|
|
211
44
|
return 'create2' in deterministicDeployment && deterministicDeployment.create2
|
|
212
45
|
? deterministicDeployment.create2
|
|
213
46
|
: !('create2' in deterministicDeployment) && !('create3' in deterministicDeployment)
|
|
214
47
|
? (deterministicDeployment as Create2DeterministicDeploymentInfo)
|
|
215
|
-
:
|
|
48
|
+
: defaultCreate2Info;
|
|
216
49
|
})(),
|
|
217
50
|
create3:
|
|
218
|
-
chainConfig
|
|
51
|
+
chainConfig?.deterministicDeployment &&
|
|
219
52
|
'create3' in chainConfig.deterministicDeployment &&
|
|
220
53
|
chainConfig.deterministicDeployment.create3
|
|
221
54
|
? chainConfig.deterministicDeployment.create3
|
|
222
|
-
:
|
|
55
|
+
: defaultCreate3Info,
|
|
223
56
|
};
|
|
224
57
|
|
|
225
58
|
const defaultTags: string[] = [];
|
|
226
|
-
if (
|
|
59
|
+
if (chainConfig?.info?.testnet) {
|
|
227
60
|
defaultTags.push('testnet');
|
|
228
61
|
}
|
|
229
62
|
|
|
230
|
-
const properties = chainConfig
|
|
63
|
+
const properties = chainConfig?.properties || config.defaultChainProperties || {};
|
|
64
|
+
|
|
65
|
+
if (!chainConfig?.info) {
|
|
66
|
+
console.error(`chain with id ${id} ${chainConfig ? 'has a chain config but' : ''} has no public info`);
|
|
67
|
+
}
|
|
231
68
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
69
|
+
const rpcUrl = chainConfig?.rpcUrl || chainConfig?.info?.rpcUrls.default.http[0];
|
|
70
|
+
|
|
71
|
+
const defaultChainInfo: ChainInfo = {
|
|
72
|
+
id: id,
|
|
73
|
+
name: 'unknown',
|
|
74
|
+
nativeCurrency: {
|
|
75
|
+
name: 'Unknown Currency',
|
|
76
|
+
symbol: 'UNKNOWN',
|
|
77
|
+
decimals: 18,
|
|
78
|
+
},
|
|
79
|
+
rpcUrls: {
|
|
80
|
+
default: {
|
|
81
|
+
http: rpcUrl ? [rpcUrl] : [],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
chainType: 'default',
|
|
239
85
|
};
|
|
86
|
+
|
|
87
|
+
if (!rpcUrl && provider !== undefined) {
|
|
88
|
+
return {
|
|
89
|
+
info: chainConfig?.info || defaultChainInfo,
|
|
90
|
+
deterministicDeployment,
|
|
91
|
+
pollingInterval,
|
|
92
|
+
properties,
|
|
93
|
+
provider,
|
|
94
|
+
tags: chainConfig?.tags || [...defaultTags],
|
|
95
|
+
autoImpersonate: chainConfig?.autoImpersonate || false,
|
|
96
|
+
};
|
|
97
|
+
} else if (rpcUrl) {
|
|
98
|
+
return {
|
|
99
|
+
info: chainConfig?.info || defaultChainInfo,
|
|
100
|
+
deterministicDeployment,
|
|
101
|
+
pollingInterval,
|
|
102
|
+
properties,
|
|
103
|
+
rpcUrl: rpcUrl,
|
|
104
|
+
tags: chainConfig?.tags || [...defaultTags],
|
|
105
|
+
autoImpersonate: chainConfig?.autoImpersonate || false,
|
|
106
|
+
};
|
|
107
|
+
} else {
|
|
108
|
+
throw new Error(`chain with id ${id} has no rpc url provided nor any provider to use`);
|
|
109
|
+
}
|
|
240
110
|
}
|
package/src/executor/index.ts
CHANGED
|
@@ -16,18 +16,16 @@ import type {
|
|
|
16
16
|
PromptExecutor,
|
|
17
17
|
DeploymentStore,
|
|
18
18
|
ModuleObject,
|
|
19
|
+
ChainInfo,
|
|
19
20
|
} from '@rocketh/core/types';
|
|
20
21
|
import {withEnvironment} from '@rocketh/core/environment';
|
|
21
|
-
|
|
22
|
-
getChainConfigFromUserConfigAndDefaultChainInfo,
|
|
23
|
-
getDefaultChainInfoByName,
|
|
24
|
-
getDefaultChainInfoFromChainId,
|
|
25
|
-
} from '../environment/chains.js';
|
|
22
|
+
|
|
26
23
|
import {JSONRPCHTTPProvider} from 'eip-1193-jsonrpc-provider';
|
|
27
24
|
import {createEnvironment} from '../environment/index.js';
|
|
28
25
|
import {getRoughGasPriceEstimate} from '../utils/eth.js';
|
|
29
26
|
import {formatEther} from 'viem';
|
|
30
27
|
import {logger, spin} from '../internal/logging.js';
|
|
28
|
+
import {getChainConfigFromUserConfig} from '../environment/chains.js';
|
|
31
29
|
|
|
32
30
|
/**
|
|
33
31
|
* Setup function that creates the execute function for deploy scripts. It allow to specify a set of functions that will be available in the environment.
|
|
@@ -132,43 +130,40 @@ export function resolveConfig<
|
|
|
132
130
|
export async function getChainIdForEnvironment(
|
|
133
131
|
config: ResolvedUserConfig,
|
|
134
132
|
environmentName: string,
|
|
135
|
-
|
|
133
|
+
executionParams: ExecutionParams,
|
|
136
134
|
) {
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
const provider = executionParams.provider;
|
|
136
|
+
|
|
137
|
+
let chainId: number | undefined;
|
|
138
|
+
|
|
139
139
|
if (config?.environments?.[environmentName]?.chain) {
|
|
140
|
-
|
|
141
|
-
typeof config.environments[environmentName].chain === 'number'
|
|
142
|
-
? config.environments[environmentName].chain
|
|
143
|
-
: parseInt(config.environments[environmentName].chain);
|
|
144
|
-
if (!isNaN(chainAsNumber)) {
|
|
145
|
-
chainId = chainAsNumber;
|
|
146
|
-
} else {
|
|
147
|
-
const chainFound = getDefaultChainInfoByName(config.environments[environmentName].chain as string);
|
|
148
|
-
if (chainFound) {
|
|
149
|
-
chainId = chainFound.id;
|
|
150
|
-
} else {
|
|
151
|
-
throw new Error(`environment ${environmentName} chain id cannot be found, specify it in the rocketh config`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
} else {
|
|
155
|
-
const chainFound = getDefaultChainInfoByName(environmentName);
|
|
156
|
-
if (chainFound) {
|
|
157
|
-
chainId = chainFound.id;
|
|
158
|
-
} else {
|
|
159
|
-
if (chainIdFromProvider) {
|
|
160
|
-
chainId = chainIdFromProvider;
|
|
161
|
-
} else {
|
|
162
|
-
throw new Error(`environment ${environmentName} chain id cannot be found, specify it in the rocketh config`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
140
|
+
chainId = config.environments[environmentName].chain;
|
|
165
141
|
}
|
|
166
|
-
|
|
142
|
+
|
|
143
|
+
const chainIdFromProvider = provider ? Number(await provider.request({method: 'eth_chainId'})) : undefined;
|
|
144
|
+
if (chainId && chainIdFromProvider && chainIdFromProvider != chainId) {
|
|
167
145
|
console.warn(
|
|
168
146
|
`provider give a different chainId (${chainIdFromProvider}) than the one expected for environment named "${environmentName}" (${chainId})`,
|
|
169
147
|
);
|
|
170
148
|
}
|
|
171
|
-
|
|
149
|
+
const chainIdToReturn = chainIdFromProvider || chainId;
|
|
150
|
+
|
|
151
|
+
if (chainIdToReturn === undefined) {
|
|
152
|
+
throw new Error(
|
|
153
|
+
`Could not find chainId for environment named "${environmentName}" ${provider ? `` : '(no provider)'}`,
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return chainIdToReturn;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export async function getChainIdForExecutionParams(
|
|
161
|
+
config: ResolvedUserConfig,
|
|
162
|
+
executionParams: ExecutionParams,
|
|
163
|
+
): Promise<number> {
|
|
164
|
+
const {name: environmentName} = getEnvironmentName(executionParams);
|
|
165
|
+
|
|
166
|
+
return getChainIdForEnvironment(config, environmentName, executionParams);
|
|
172
167
|
}
|
|
173
168
|
|
|
174
169
|
export function getEnvironmentName(executionParams: ExecutionParams): {name: string; fork: boolean} {
|
|
@@ -194,25 +189,8 @@ export function resolveExecutionParams<Extra extends Record<string, unknown> = R
|
|
|
194
189
|
|
|
195
190
|
// TODO fork chainId resolution option to keep the network being used
|
|
196
191
|
const idToFetch = fork ? 31337 : chainId;
|
|
197
|
-
let chainInfoFound = getDefaultChainInfoByName(environmentName);
|
|
198
|
-
if (!chainInfoFound) {
|
|
199
|
-
const result = getDefaultChainInfoFromChainId(idToFetch);
|
|
200
|
-
chainInfoFound = result.success ? result.chainInfo : undefined;
|
|
201
|
-
if (!result.success && result.error) {
|
|
202
|
-
// logger.warn(`could not find chainInfo by name = "${environmentName}"\n ${result.error}`);
|
|
203
|
-
}
|
|
204
|
-
if (!chainInfoFound) {
|
|
205
|
-
// console.log(`could not find chainInfo by chainId = "${idToFetch}"`);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
192
|
|
|
209
|
-
const
|
|
210
|
-
const chainConfig = getChainConfigFromUserConfigAndDefaultChainInfo(config, {
|
|
211
|
-
id: idToFetch,
|
|
212
|
-
chainInfo: defaultChainInfo,
|
|
213
|
-
canonicalName: environmentName,
|
|
214
|
-
doNotRequireRpcURL: !!executionParameters.provider,
|
|
215
|
-
});
|
|
193
|
+
const chainConfig = getChainConfigFromUserConfig(config, idToFetch, executionParameters.provider);
|
|
216
194
|
|
|
217
195
|
let chainInfo = chainConfig.info;
|
|
218
196
|
const environmentConfig = config?.environments?.[environmentName];
|
|
@@ -251,12 +229,10 @@ export function resolveExecutionParams<Extra extends Record<string, unknown> = R
|
|
|
251
229
|
}
|
|
252
230
|
}
|
|
253
231
|
|
|
254
|
-
// here we force type actualChainConfig.rpcUrl! as string
|
|
255
|
-
// as if provider was not available
|
|
256
|
-
// getChainConfigFromUserConfigAndDefaultChainInfo would throw
|
|
257
232
|
const provider =
|
|
258
|
-
|
|
259
|
-
|
|
233
|
+
'provider' in actualChainConfig
|
|
234
|
+
? actualChainConfig.provider
|
|
235
|
+
: (new JSONRPCHTTPProvider(actualChainConfig.rpcUrl) as EIP1193ProviderWithoutEvents);
|
|
260
236
|
|
|
261
237
|
let saveDeployments = executionParameters.saveDeployments;
|
|
262
238
|
|
|
@@ -275,8 +251,8 @@ export function resolveExecutionParams<Extra extends Record<string, unknown> = R
|
|
|
275
251
|
|
|
276
252
|
// Resolve auto-impersonation flag (priority: params > environment config > global config)
|
|
277
253
|
let autoImpersonate = executionParameters.autoImpersonate;
|
|
278
|
-
if (autoImpersonate === undefined &&
|
|
279
|
-
autoImpersonate =
|
|
254
|
+
if (autoImpersonate === undefined && actualChainConfig.autoImpersonate !== undefined) {
|
|
255
|
+
autoImpersonate = actualChainConfig.autoImpersonate;
|
|
280
256
|
}
|
|
281
257
|
|
|
282
258
|
return {
|
|
@@ -310,7 +286,7 @@ export async function loadEnvironment<
|
|
|
310
286
|
): Promise<Environment<NamedAccounts, Data, UnknownDeployments>> {
|
|
311
287
|
const userConfig = resolveConfig<NamedAccounts, Data>(config, executionParams.config);
|
|
312
288
|
const {name: environmentName, fork} = getEnvironmentName(executionParams);
|
|
313
|
-
const chainId = await getChainIdForEnvironment(userConfig, environmentName, executionParams
|
|
289
|
+
const chainId = await getChainIdForEnvironment(userConfig, environmentName, executionParams);
|
|
314
290
|
const resolvedExecutionParams = resolveExecutionParams(userConfig, executionParams, chainId);
|
|
315
291
|
// console.log(JSON.stringify(resolvedConfig, null, 2));
|
|
316
292
|
const {external, internal} = await createEnvironment<NamedAccounts, Data, UnknownDeployments>(
|
|
@@ -336,7 +312,7 @@ export function createExecutor(deploymentStore: DeploymentStore, promptExecutor:
|
|
|
336
312
|
executionParams = executionParams || {};
|
|
337
313
|
const resolveduserConfig = resolveConfig<NamedAccounts, Data>(userConfig, executionParams.config);
|
|
338
314
|
const {name: environmentName, fork} = getEnvironmentName(executionParams);
|
|
339
|
-
const chainId = await getChainIdForEnvironment(resolveduserConfig, environmentName, executionParams
|
|
315
|
+
const chainId = await getChainIdForEnvironment(resolveduserConfig, environmentName, executionParams);
|
|
340
316
|
const resolvedExecutionParams = resolveExecutionParams(resolveduserConfig, executionParams, chainId);
|
|
341
317
|
return executeDeployScriptModules<NamedAccounts, Data, ArgumentsType>(
|
|
342
318
|
moduleObjects,
|
package/src/index.ts
CHANGED
|
@@ -12,9 +12,4 @@ export {createEnvironment, loadDeployments} from './environment/index.js';
|
|
|
12
12
|
// used by hardhat-deploy and instead of having hardhat-deploy depends on @rocketh/core we export it here as well
|
|
13
13
|
export {enhanceEnvIfNeeded} from '@rocketh/core/environment';
|
|
14
14
|
|
|
15
|
-
export {
|
|
16
|
-
getChainConfigFromUserConfigAndDefaultChainInfo,
|
|
17
|
-
chainByCanonicalName,
|
|
18
|
-
getDefaultChainInfoByName,
|
|
19
|
-
getDefaultChainInfoFromChainId,
|
|
20
|
-
} from './environment/chains.js';
|
|
15
|
+
export {getChainConfigFromUserConfig} from './environment/chains.js';
|