hardhat-deploy 2.0.0-next.0 → 2.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/helpers.d.ts +9 -0
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +136 -0
- package/dist/esm/helpers.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/helpers.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EdrNetworkUserConfig, NetworkUserConfig, SensitiveString } from 'hardhat/types/config';
|
|
1
2
|
import { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
|
|
2
3
|
import { Environment, ProvidedContext, UnknownArtifacts, UnresolvedUnknownNamedAccounts } from 'rocketh';
|
|
3
4
|
export declare function loadEnvironmentFromHardhat<Artifacts extends UnknownArtifacts = UnknownArtifacts, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts>({ hre, context }: {
|
|
@@ -6,4 +7,12 @@ export declare function loadEnvironmentFromHardhat<Artifacts extends UnknownArti
|
|
|
6
7
|
}, options?: {
|
|
7
8
|
useChainIdOfForkedNetwork?: boolean;
|
|
8
9
|
}): Promise<Environment>;
|
|
10
|
+
export declare function getRPC(networkName: string): string | SensitiveString | undefined;
|
|
11
|
+
export declare function getMnemonic(networkName?: string): string | SensitiveString;
|
|
12
|
+
export declare function getAccounts(networkName?: string): {
|
|
13
|
+
mnemonic: string | SensitiveString;
|
|
14
|
+
};
|
|
15
|
+
export declare function addNetworksFromEnv(networks?: Record<string, EdrNetworkUserConfig>): Record<string, NetworkUserConfig>;
|
|
16
|
+
export declare function populateNetworksFromEnv(networks: Record<string, Omit<NetworkUserConfig, 'accounts' | 'url'>>): Record<string, NetworkUserConfig>;
|
|
17
|
+
export declare function addForkConfiguration(networks: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
|
|
9
18
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,oBAAoB,EAGpB,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,8BAA8B,EAAkB,MAAM,SAAS,CAAC;AAExH,wBAAsB,0BAA0B,CAC/C,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,EACrD,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EAErF,EAAC,GAAG,EAAE,OAAO,EAAC,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;CAAC,EACrG,OAAO,CAAC,EAAE;IACT,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC,GACC,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CA0BhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAiB1E;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAEtF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBrH;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC,GACnE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAkBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAmDnH"}
|
package/dist/esm/helpers.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configVariable } from 'hardhat/config';
|
|
1
2
|
import { loadEnvironment } from 'rocketh';
|
|
2
3
|
export async function loadEnvironmentFromHardhat({ hre, context }, options) {
|
|
3
4
|
const connection = await hre.network.connect();
|
|
@@ -67,4 +68,139 @@ export async function loadEnvironmentFromHardhat({ hre, context }, options) {
|
|
|
67
68
|
}, context || { artifacts: {} } // TODO
|
|
68
69
|
);
|
|
69
70
|
}
|
|
71
|
+
export function getRPC(networkName) {
|
|
72
|
+
const variableName = 'ETH_NODE_URI_' + networkName;
|
|
73
|
+
let uri = process.env[variableName];
|
|
74
|
+
if (uri === 'SECRET') {
|
|
75
|
+
return configVariable(variableName);
|
|
76
|
+
}
|
|
77
|
+
if (uri && uri !== '') {
|
|
78
|
+
return uri;
|
|
79
|
+
}
|
|
80
|
+
uri = process.env.ETH_NODE_URI;
|
|
81
|
+
if (uri) {
|
|
82
|
+
uri = uri.replace('{{networkName}}', networkName);
|
|
83
|
+
}
|
|
84
|
+
if (!uri || uri === '') {
|
|
85
|
+
if (networkName === 'localhost') {
|
|
86
|
+
return 'http://localhost:8545';
|
|
87
|
+
}
|
|
88
|
+
return uri;
|
|
89
|
+
// throw new Error(`no uri specified or for network ${networkName}`);
|
|
90
|
+
}
|
|
91
|
+
if (uri.indexOf('{{') >= 0) {
|
|
92
|
+
throw new Error(`invalid uri or network not supported by node provider : ${uri}`);
|
|
93
|
+
}
|
|
94
|
+
return uri;
|
|
95
|
+
}
|
|
96
|
+
export function getMnemonic(networkName) {
|
|
97
|
+
if (networkName) {
|
|
98
|
+
const variableName = 'MNEMONIC_' + networkName;
|
|
99
|
+
const mnemonic = process.env[variableName];
|
|
100
|
+
if (mnemonic === 'SECRET') {
|
|
101
|
+
return configVariable(variableName);
|
|
102
|
+
}
|
|
103
|
+
if (mnemonic && mnemonic !== '') {
|
|
104
|
+
return mnemonic;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const mnemonic = process.env.MNEMONIC;
|
|
108
|
+
if (!mnemonic || mnemonic === '') {
|
|
109
|
+
return 'test test test test test test test test test test test junk';
|
|
110
|
+
}
|
|
111
|
+
return mnemonic;
|
|
112
|
+
}
|
|
113
|
+
export function getAccounts(networkName) {
|
|
114
|
+
return { mnemonic: getMnemonic(networkName) };
|
|
115
|
+
}
|
|
116
|
+
export function addNetworksFromEnv(networks) {
|
|
117
|
+
const newNetworks = networks ? { ...networks } : {};
|
|
118
|
+
const allEnv = Object.keys(process.env);
|
|
119
|
+
for (const envKey of allEnv) {
|
|
120
|
+
if (envKey.startsWith(`ETH_NODE_URI_`) && envKey.length > `ETH_NODE_URI_`.length) {
|
|
121
|
+
const networkName = envKey.slice(`ETH_NODE_URI_`.length);
|
|
122
|
+
const url = getRPC(networkName);
|
|
123
|
+
if (!newNetworks[networkName]) {
|
|
124
|
+
if (url) {
|
|
125
|
+
newNetworks[networkName] = {
|
|
126
|
+
type: 'http',
|
|
127
|
+
url,
|
|
128
|
+
accounts: getAccounts(networkName),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.error(`no url for network ${networkName}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
console.error(`duplicated network ${networkName}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return newNetworks;
|
|
141
|
+
}
|
|
142
|
+
export function populateNetworksFromEnv(networks) {
|
|
143
|
+
const newNetworks = {};
|
|
144
|
+
for (const networkName of Object.keys(networks)) {
|
|
145
|
+
if (networkName === 'hardhat') {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const url = getRPC(networkName);
|
|
149
|
+
if (url) {
|
|
150
|
+
newNetworks[networkName] = {
|
|
151
|
+
...networks[networkName],
|
|
152
|
+
url,
|
|
153
|
+
accounts: getAccounts(networkName),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.error(`no url for network ${networkName}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return newNetworks;
|
|
161
|
+
}
|
|
162
|
+
export function addForkConfiguration(networks) {
|
|
163
|
+
const currentNetworkName = process.env.HARDHAT_FORK;
|
|
164
|
+
let forkURL;
|
|
165
|
+
let hardhatAccounts;
|
|
166
|
+
if (currentNetworkName &&
|
|
167
|
+
currentNetworkName !== 'hardhat' &&
|
|
168
|
+
currentNetworkName !== 'edr' &&
|
|
169
|
+
currentNetworkName !== 'memory') {
|
|
170
|
+
const currentNetwork = networks[currentNetworkName];
|
|
171
|
+
if (currentNetwork) {
|
|
172
|
+
if (currentNetwork.type === 'http') {
|
|
173
|
+
forkURL = currentNetwork.url;
|
|
174
|
+
if (currentNetwork.accounts &&
|
|
175
|
+
typeof currentNetwork.accounts === 'object' &&
|
|
176
|
+
'mnemonic' in currentNetwork.accounts) {
|
|
177
|
+
hardhatAccounts = currentNetwork.accounts;
|
|
178
|
+
}
|
|
179
|
+
// else if (currentNetwork.accounts && Array.isArray(currentNetwork.accounts)) {
|
|
180
|
+
// hardhatAccounts = currentNetwork.accounts.map((v) => ({
|
|
181
|
+
// balance: '10000000000000000000000',
|
|
182
|
+
// privateKey: v,
|
|
183
|
+
// }));
|
|
184
|
+
// }
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const existingHardhat = networks.hardhat.type === 'edr' ? networks.hardhat : { type: 'edr', chainType: 'l1' };
|
|
189
|
+
const newNetworks = {
|
|
190
|
+
...populateNetworksFromEnv(networks),
|
|
191
|
+
hardhat: {
|
|
192
|
+
...existingHardhat,
|
|
193
|
+
...{
|
|
194
|
+
accounts: hardhatAccounts || existingHardhat?.accounts,
|
|
195
|
+
forking: forkURL
|
|
196
|
+
? {
|
|
197
|
+
url: forkURL,
|
|
198
|
+
blockNumber: process.env.HARDHAT_FORK_NUMBER ? parseInt(process.env.HARDHAT_FORK_NUMBER) : undefined,
|
|
199
|
+
}
|
|
200
|
+
: undefined,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
return newNetworks;
|
|
205
|
+
}
|
|
70
206
|
//# sourceMappingURL=helpers.js.map
|
package/dist/esm/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|