hardhat-deploy 0.9.2 → 0.9.6
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 +24 -0
- package/README.md +13 -12
- package/dist/src/etherscan.d.ts.map +1 -1
- package/dist/src/etherscan.js +6 -0
- package/dist/src/etherscan.js.map +1 -1
- package/dist/src/helpers.d.ts.map +1 -1
- package/dist/src/helpers.js +129 -32
- package/dist/src/helpers.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -1
- package/src/etherscan.ts +6 -0
- package/src/helpers.ts +248 -47
- package/types.ts +7 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# hardhat-deploy
|
|
2
2
|
|
|
3
|
+
## 0.9.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- if deployment's tx is not found, error out to prevent redeployment by mistake
|
|
8
|
+
|
|
9
|
+
## 0.9.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- add etherscan for avalanche
|
|
14
|
+
|
|
15
|
+
## 0.9.4
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- add arbitrum testnet etherscan + add missing deps
|
|
20
|
+
|
|
21
|
+
## 0.9.3
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- fix deterministic function for proxies
|
|
26
|
+
|
|
3
27
|
## 0.9.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -35,6 +35,7 @@ _A [Hardhat](https://hardhat.org) Plugin For Replicable Deployments And Easy Tes
|
|
|
35
35
|
- [`deploy`](#deploy)
|
|
36
36
|
- [`companionNetworks`](#companionnetworks)
|
|
37
37
|
- [**3. extra hardhat.config paths' options**](#3-extra-hardhatconfig-paths-options)
|
|
38
|
+
- [**4. deterministicDeployment (ability to specify a deployment factory)**](#4-deterministicdeployment-ability-to-specify-a-deployment-factory)
|
|
38
39
|
- [Importing deployment from other projects (with truffle support)](#importing-deployment-from-other-projects-with-truffle-support)
|
|
39
40
|
- [Access to Artifacts (non-deployed contract code and abi)](#access-to-artifacts-non-deployed-contract-code-and-abi)
|
|
40
41
|
- [How to Deploy Contracts](#how-to-deploy-contracts)
|
|
@@ -647,7 +648,6 @@ Using the `deterministicDeployment` it is possible to define a different setup f
|
|
|
647
648
|
|
|
648
649
|
The information can be defined either as an object
|
|
649
650
|
|
|
650
|
-
|
|
651
651
|
```js
|
|
652
652
|
{
|
|
653
653
|
deterministicDeployment: {
|
|
@@ -661,18 +661,18 @@ The information can be defined either as an object
|
|
|
661
661
|
}
|
|
662
662
|
```
|
|
663
663
|
|
|
664
|
-
or as an function that returns the information for the deterministic deployment
|
|
664
|
+
or as an function that returns the information for the deterministic deployment
|
|
665
665
|
|
|
666
666
|
```js
|
|
667
667
|
{
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
668
|
+
deterministicDeployment: (network: string) => {
|
|
669
|
+
return {
|
|
670
|
+
factory: '<factory_address>',
|
|
671
|
+
deployer: '<deployer_address>',
|
|
672
|
+
funding: '<required_funding_in_wei>',
|
|
673
|
+
signedTx: '<raw_signed_tx>',
|
|
674
|
+
};
|
|
675
|
+
};
|
|
676
676
|
}
|
|
677
677
|
```
|
|
678
678
|
|
|
@@ -841,6 +841,7 @@ export interface DeploymentsExtension {
|
|
|
841
841
|
options: Create2DeployOptions
|
|
842
842
|
): Promise<{
|
|
843
843
|
address: Address;
|
|
844
|
+
implementationAddress?: Address;
|
|
844
845
|
deploy(): Promise<DeployResult>;
|
|
845
846
|
}>;
|
|
846
847
|
fetchIfDifferent( // return true if new compiled code is different than deployed contract
|
|
@@ -1160,8 +1161,8 @@ it matches:
|
|
|
1160
1161
|
|
|
1161
1162
|
- `EIP173ProxyWithReceive`: Same as above except that the proxy contains a receive hook to accept empty ETH payment.
|
|
1162
1163
|
|
|
1163
|
-
- `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (
|
|
1164
|
-
When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an intermediarry contract for administration. This can be configured via the `viaAdminContract` option
|
|
1164
|
+
- `OpenZeppelinTransparentProxy`: Use Openzeppelin Transparent Proxy (copied from openzeppelin repo, see code [here](solc_0.7/openzeppelin/proxy/TransparentUpgradeableProxy.sol))
|
|
1165
|
+
When this option is chosen, the `DefaultProxyAdmin` is also used as admin since Transparent Proxy kind of need an intermediarry contract for administration. This can be configured via the `viaAdminContract` option. Note that the DefaultProxyAdmin is slightly different than the one used by openzeppelin as it allow you to set a different owner than msg.sender on first deploy, something openzeppelin version do not allow, see : https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2639
|
|
1165
1166
|
|
|
1166
1167
|
- `OptimizedTransparentProxy`: This contract is similar to above, except that it is optimized to not require storage read for the admin on every call.
|
|
1167
1168
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AA6FxD,wBAAsB,aAAa,CACjC,GAAG,EAAE,yBAAyB,EAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE;IACP,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AA6FxD,wBAAsB,aAAa,CACjC,GAAG,EAAE,yBAAyB,EAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE;IACP,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GACA,OAAO,CAAC,IAAI,CAAC,CA2Uf"}
|
package/dist/src/etherscan.js
CHANGED
|
@@ -149,6 +149,12 @@ async function submitSources(hre, solcInputsPath, config) {
|
|
|
149
149
|
case '42161':
|
|
150
150
|
host = 'https://api.arbiscan.io';
|
|
151
151
|
break;
|
|
152
|
+
case '421611':
|
|
153
|
+
host = 'https://api-testnet.arbiscan.io';
|
|
154
|
+
break;
|
|
155
|
+
case '43114':
|
|
156
|
+
host = 'https://api.snowtrace.io';
|
|
157
|
+
break;
|
|
152
158
|
default:
|
|
153
159
|
return logError(`Network with chainId: ${chainId} not supported`);
|
|
154
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/etherscan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAGL,oBAAoB,EAKpB,OAAO,EAKP,oBAAoB,EAMrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAelD,OAAO,EAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA2KxD,wBAAgB,UAAU,CACxB,iBAAiB,EAAE,kBAAkB,EACrC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAChD,cAAc,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAChC,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,EAClB,cAAc,EAAE,MAAM,OAAO,EAC7B,WAAW,EAAE,CACX,UAAU,EAAE,mBAAmB,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,GAAG,KACP,OAAO,CAAC,mBAAmB,CAAC,EACjC,WAAW,EAAE,MAAM,OAAO,CAAC;IACzB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,SAAS,GAAG,SAAS,CAAC;CAC7C,CAAC,EACF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAC3B;IACD,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE;QACL,2BAA2B,EAAE,CAC3B,UAAU,EAAE;YACV,CAAC,MAAM,EAAE,MAAM,GAAG;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,UAAU,CAAC,EAAE,GAAG,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM,CAAC;oBACb,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAClB,YAAY,CAAC,EAAE,MAAM,CAAC;oBACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC;oBACjB,EAAE,EAAE,MAAM,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC;oBACb,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBACV,CAAC,EAAE,MAAM,CAAC;oBAEV,OAAO,EAAE,MAAM,CAAC;iBACjB,CAAC;aACH,CAAC;SACH,EACD,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GAAG,SAAS,KAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;CACH,CA63EA;AAMD,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAoBlB"}
|
package/dist/src/helpers.js
CHANGED
|
@@ -353,34 +353,89 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
|
|
|
353
353
|
}
|
|
354
354
|
async function deterministic(name, options) {
|
|
355
355
|
options = Object.assign({}, options); // ensure no change
|
|
356
|
-
// TODO refactor to share that code:
|
|
357
|
-
const args = options.args ? [...options.args] : [];
|
|
358
356
|
await init();
|
|
359
|
-
const
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
357
|
+
const deployFunction = () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true }));
|
|
358
|
+
if (options.proxy) {
|
|
359
|
+
/* eslint-disable prefer-const */
|
|
360
|
+
let { viaAdminContract, proxyAdminDeployed, proxyAdminName, proxyAdminContract, owner, proxyAdmin, currentProxyAdminOwner, artifact, implementationArgs, implementationName, implementationOptions, proxyName, proxyContract, mergedABI, updateMethod, updateArgs, } = await _getProxyInfo(name, options);
|
|
361
|
+
/* eslint-enable prefer-const */
|
|
362
|
+
const { address: implementationAddress } = await deterministic(implementationName, Object.assign(Object.assign({}, implementationOptions), { salt: options.salt }));
|
|
363
|
+
const implementationContract = new contracts_1.Contract(implementationAddress, artifact.abi);
|
|
364
|
+
let data = '0x';
|
|
365
|
+
if (updateMethod) {
|
|
366
|
+
updateArgs = updateArgs || [];
|
|
367
|
+
if (!implementationContract[updateMethod]) {
|
|
368
|
+
throw new Error(`contract need to implement function ${updateMethod}`);
|
|
369
|
+
}
|
|
370
|
+
const txData = await implementationContract.populateTransaction[updateMethod](...updateArgs);
|
|
371
|
+
data = txData.data || '0x';
|
|
372
|
+
}
|
|
373
|
+
if (viaAdminContract) {
|
|
374
|
+
if (!proxyAdminName) {
|
|
375
|
+
throw new Error(`no proxy admin name even though viaAdminContract is not undefined`);
|
|
376
|
+
}
|
|
377
|
+
if (!proxyAdminDeployed) {
|
|
378
|
+
const { address: proxyAdminAddress } = await deterministic(proxyAdminName, {
|
|
379
|
+
from: options.from,
|
|
380
|
+
autoMine: options.autoMine,
|
|
381
|
+
estimateGasExtra: options.estimateGasExtra,
|
|
382
|
+
estimatedGasLimit: options.estimatedGasLimit,
|
|
383
|
+
gasPrice: options.gasPrice,
|
|
384
|
+
maxFeePerGas: options.maxFeePerGas,
|
|
385
|
+
maxPriorityFeePerGas: options.maxPriorityFeePerGas,
|
|
386
|
+
log: options.log,
|
|
387
|
+
contract: proxyAdminContract,
|
|
388
|
+
salt: options.salt,
|
|
389
|
+
skipIfAlreadyDeployed: true,
|
|
390
|
+
args: [owner],
|
|
391
|
+
waitConfirmations: options.waitConfirmations,
|
|
392
|
+
});
|
|
393
|
+
proxyAdmin = proxyAdminAddress;
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
proxyAdmin = proxyAdminDeployed.address;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
const proxyOptions = Object.assign({}, options); // ensure no change
|
|
400
|
+
delete proxyOptions.proxy;
|
|
401
|
+
delete proxyOptions.libraries;
|
|
402
|
+
proxyOptions.contract = proxyContract;
|
|
403
|
+
proxyOptions.args = [implementationAddress, proxyAdmin, data];
|
|
404
|
+
const { address: proxyAddress } = await deterministic(proxyName, Object.assign(Object.assign({}, proxyOptions), { salt: options.salt }));
|
|
377
405
|
return {
|
|
378
|
-
address:
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
deploy: () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true })),
|
|
406
|
+
address: proxyAddress,
|
|
407
|
+
implementationAddress,
|
|
408
|
+
deploy: deployFunction,
|
|
382
409
|
};
|
|
383
410
|
}
|
|
411
|
+
else {
|
|
412
|
+
const args = options.args ? [...options.args] : [];
|
|
413
|
+
const { ethersSigner, unknown, address: from } = getFrom(options.from);
|
|
414
|
+
const artifactInfo = await getArtifactFromOptions(name, options);
|
|
415
|
+
const { artifact } = artifactInfo;
|
|
416
|
+
const abi = artifact.abi;
|
|
417
|
+
const byteCode = linkLibraries(artifact, options.libraries);
|
|
418
|
+
const factory = new contracts_1.ContractFactory(abi, byteCode, ethersSigner);
|
|
419
|
+
const numArguments = factory.interface.deploy.inputs.length;
|
|
420
|
+
if (args.length !== numArguments) {
|
|
421
|
+
throw new Error(`expected ${numArguments} constructor arguments, got ${args.length}`);
|
|
422
|
+
}
|
|
423
|
+
const unsignedTx = factory.getDeployTransaction(...args);
|
|
424
|
+
if (unknown) {
|
|
425
|
+
throw new errors_1.UnknownSignerError(Object.assign({ from }, JSON.parse(JSON.stringify(unsignedTx))));
|
|
426
|
+
}
|
|
427
|
+
if (typeof unsignedTx.data !== 'string') {
|
|
428
|
+
throw new Error('unsigned tx data as bytes not supported');
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
return {
|
|
432
|
+
address: getCreate2Address(await deploymentManager.getDeterministicDeploymentFactoryAddress(), options.salt
|
|
433
|
+
? (0, bytes_1.hexlify)((0, bytes_1.zeroPad)(options.salt, 32))
|
|
434
|
+
: '0x0000000000000000000000000000000000000000000000000000000000000000', unsignedTx.data),
|
|
435
|
+
deploy: () => deploy(name, Object.assign(Object.assign({}, options), { deterministicDeployment: options.salt || true })),
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
}
|
|
384
439
|
}
|
|
385
440
|
function getDeployment(name) {
|
|
386
441
|
return partialExtension.get(name);
|
|
@@ -429,11 +484,14 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
|
|
|
429
484
|
return { differences: false, address: undefined }; // TODO check receipt, see below
|
|
430
485
|
}
|
|
431
486
|
// TODO transactionReceipt + check for status
|
|
487
|
+
let transactionDetailsAvailable = false;
|
|
432
488
|
let transaction;
|
|
433
489
|
if (deployment.receipt) {
|
|
490
|
+
transactionDetailsAvailable = !!deployment.receipt.transactionHash;
|
|
434
491
|
transaction = await provider.getTransaction(deployment.receipt.transactionHash);
|
|
435
492
|
}
|
|
436
493
|
else if (deployment.transactionHash) {
|
|
494
|
+
transactionDetailsAvailable = true;
|
|
437
495
|
transaction = await provider.getTransaction(deployment.transactionHash);
|
|
438
496
|
}
|
|
439
497
|
if (transaction) {
|
|
@@ -449,6 +507,15 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
|
|
|
449
507
|
}
|
|
450
508
|
return { differences: false, address: deployment.address };
|
|
451
509
|
}
|
|
510
|
+
else {
|
|
511
|
+
if (transactionDetailsAvailable) {
|
|
512
|
+
throw new Error(`cannot get the transaction for ${name}'s previous deployment, please check your node synced status.`);
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
console.error(`no transaction details found for ${name}'s previous deployment, if the deployment is t be discarded, please delete the file`);
|
|
516
|
+
return { differences: false, address: deployment.address };
|
|
517
|
+
}
|
|
518
|
+
}
|
|
452
519
|
}
|
|
453
520
|
return { differences: true, address: undefined };
|
|
454
521
|
}
|
|
@@ -528,8 +595,7 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
|
|
|
528
595
|
}
|
|
529
596
|
}
|
|
530
597
|
}
|
|
531
|
-
|
|
532
|
-
async function _deployViaEIP173Proxy(name, options) {
|
|
598
|
+
async function _getProxyInfo(name, options) {
|
|
533
599
|
var _a, _b;
|
|
534
600
|
const oldDeployment = await getDeploymentOrNUll(name);
|
|
535
601
|
let updateMethod;
|
|
@@ -604,10 +670,6 @@ function addHelpers(deploymentManager, partialExtension, network, getArtifact, s
|
|
|
604
670
|
else if (typeof options.proxy === 'string') {
|
|
605
671
|
updateMethod = options.proxy;
|
|
606
672
|
}
|
|
607
|
-
const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
|
|
608
|
-
if (deployResult) {
|
|
609
|
-
return deployResult;
|
|
610
|
-
}
|
|
611
673
|
const proxyName = name + '_Proxy';
|
|
612
674
|
const { address: owner } = getProxyOwner(options);
|
|
613
675
|
const { address: from } = getFrom(options.from);
|
|
@@ -671,9 +733,10 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
671
733
|
updateArgs = implementationArgs;
|
|
672
734
|
}
|
|
673
735
|
let proxyAdminName;
|
|
674
|
-
|
|
736
|
+
const proxyAdmin = owner;
|
|
675
737
|
let currentProxyAdminOwner;
|
|
676
738
|
let proxyAdminDeployed;
|
|
739
|
+
let proxyAdminContract;
|
|
677
740
|
if (viaAdminContract) {
|
|
678
741
|
let proxyAdminArtifactNameOrContract;
|
|
679
742
|
if (typeof viaAdminContract === 'string') {
|
|
@@ -687,7 +750,6 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
687
750
|
}
|
|
688
751
|
proxyAdminArtifactNameOrContract = viaAdminContract.artifact;
|
|
689
752
|
}
|
|
690
|
-
let proxyAdminContract;
|
|
691
753
|
if (typeof proxyAdminArtifactNameOrContract === 'string') {
|
|
692
754
|
try {
|
|
693
755
|
proxyAdminContract = await partialExtension.getExtendedArtifact(proxyAdminArtifactNameOrContract);
|
|
@@ -705,6 +767,41 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
705
767
|
else {
|
|
706
768
|
proxyAdminContract = proxyAdminArtifactNameOrContract;
|
|
707
769
|
}
|
|
770
|
+
}
|
|
771
|
+
return {
|
|
772
|
+
proxyName,
|
|
773
|
+
proxyContract,
|
|
774
|
+
mergedABI,
|
|
775
|
+
viaAdminContract,
|
|
776
|
+
proxyAdminDeployed,
|
|
777
|
+
proxyAdminName,
|
|
778
|
+
proxyAdminContract,
|
|
779
|
+
owner,
|
|
780
|
+
proxyAdmin,
|
|
781
|
+
currentProxyAdminOwner,
|
|
782
|
+
artifact,
|
|
783
|
+
implementationArgs,
|
|
784
|
+
implementationName,
|
|
785
|
+
implementationOptions,
|
|
786
|
+
oldDeployment,
|
|
787
|
+
updateMethod,
|
|
788
|
+
updateArgs,
|
|
789
|
+
upgradeIndex,
|
|
790
|
+
};
|
|
791
|
+
}
|
|
792
|
+
// TODO rename
|
|
793
|
+
async function _deployViaEIP173Proxy(name, options) {
|
|
794
|
+
/* eslint-disable prefer-const */
|
|
795
|
+
let { oldDeployment, updateMethod, updateArgs, upgradeIndex, viaAdminContract, proxyAdminDeployed, proxyAdminName, proxyAdminContract, owner, proxyAdmin, currentProxyAdminOwner, artifact, implementationArgs, implementationName, implementationOptions, proxyName, proxyContract, mergedABI, } = await _getProxyInfo(name, options);
|
|
796
|
+
/* eslint-enable prefer-const */
|
|
797
|
+
const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
|
|
798
|
+
if (deployResult) {
|
|
799
|
+
return deployResult;
|
|
800
|
+
}
|
|
801
|
+
if (viaAdminContract) {
|
|
802
|
+
if (!proxyAdminName) {
|
|
803
|
+
throw new Error(`no proxy admin name even though viaAdminContract is not undefined`);
|
|
804
|
+
}
|
|
708
805
|
if (!proxyAdminDeployed) {
|
|
709
806
|
proxyAdminDeployed = await _deployOne(proxyAdminName, {
|
|
710
807
|
from: options.from,
|
package/dist/src/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -164,6 +164,7 @@ export interface DeploymentsExtension {
|
|
|
164
164
|
deterministic(// return the determinsitic address as well as a function to deploy the contract, can pass the `salt` field in the option to use different salt
|
|
165
165
|
name: string, options: Create2DeployOptions): Promise<{
|
|
166
166
|
address: Address;
|
|
167
|
+
implementationAddress?: Address;
|
|
167
168
|
deploy(): Promise<DeployResult>;
|
|
168
169
|
}>;
|
|
169
170
|
fetchIfDifferent(// return true if new compiled code is different than deployed contract
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAA+B;AAC/B,gCAA8B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAA+B;AAC/B,gCAA8B;AAyR9B,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iDAAG,CAAA;IACH,yDAAO,CAAA;IACP,uDAAM,CAAA;AACR,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hardhat-deploy",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.6",
|
|
4
4
|
"description": "Hardhat Plugin For Replicable Deployments And Tests",
|
|
5
5
|
"repository": "github:wighawag/hardhat-deploy",
|
|
6
6
|
"author": "wighawag",
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"@ethersproject/address": "^5.4.0",
|
|
68
68
|
"@ethersproject/bignumber": "^5.4.1",
|
|
69
69
|
"@ethersproject/bytes": "^5.4.0",
|
|
70
|
+
"@ethersproject/constants": "^5.4.0",
|
|
70
71
|
"@ethersproject/contracts": "^5.4.1",
|
|
71
72
|
"@ethersproject/providers": "^5.4.4",
|
|
72
73
|
"@ethersproject/solidity": "^5.4.0",
|
package/src/etherscan.ts
CHANGED
|
@@ -163,6 +163,12 @@ export async function submitSources(
|
|
|
163
163
|
case '42161':
|
|
164
164
|
host = 'https://api.arbiscan.io'
|
|
165
165
|
break;
|
|
166
|
+
case '421611':
|
|
167
|
+
host = 'https://api-testnet.arbiscan.io'
|
|
168
|
+
break;
|
|
169
|
+
case '43114':
|
|
170
|
+
host = 'https://api.snowtrace.io'
|
|
171
|
+
break;
|
|
166
172
|
default:
|
|
167
173
|
return logError(`Network with chainId: ${chainId} not supported`);
|
|
168
174
|
}
|
package/src/helpers.ts
CHANGED
|
@@ -35,6 +35,7 @@ import {
|
|
|
35
35
|
FacetCutAction,
|
|
36
36
|
Facet,
|
|
37
37
|
ArtifactData,
|
|
38
|
+
ABI,
|
|
38
39
|
} from '../types';
|
|
39
40
|
import {PartialExtension} from './internal/types';
|
|
40
41
|
import {UnknownSignerError} from './errors';
|
|
@@ -399,15 +400,19 @@ export function addHelpers(
|
|
|
399
400
|
hardwareWallet,
|
|
400
401
|
unknown,
|
|
401
402
|
} = getFrom(options.from);
|
|
402
|
-
const create2DeployerAddress =
|
|
403
|
+
const create2DeployerAddress =
|
|
404
|
+
await deploymentManager.getDeterministicDeploymentFactoryAddress();
|
|
403
405
|
const code = await provider.getCode(create2DeployerAddress);
|
|
404
406
|
if (code === '0x') {
|
|
405
|
-
const senderAddress =
|
|
407
|
+
const senderAddress =
|
|
408
|
+
await deploymentManager.getDeterministicDeploymentFactoryDeployer();
|
|
406
409
|
|
|
407
410
|
// TODO: calculate required funds
|
|
408
411
|
const txRequest = {
|
|
409
412
|
to: senderAddress,
|
|
410
|
-
value: (
|
|
413
|
+
value: (
|
|
414
|
+
await deploymentManager.getDeterministicDeploymentFactoryFunding()
|
|
415
|
+
).toHexString(),
|
|
411
416
|
gasPrice: options.gasPrice,
|
|
412
417
|
maxFeePerGas: options.maxFeePerGas,
|
|
413
418
|
maxPriorityFeePerGas: options.maxPriorityFeePerGas,
|
|
@@ -637,53 +642,154 @@ export function addHelpers(
|
|
|
637
642
|
options: Create2DeployOptions
|
|
638
643
|
): Promise<{
|
|
639
644
|
address: Address;
|
|
645
|
+
implementationAddress?: Address;
|
|
640
646
|
deploy: () => Promise<DeployResult>;
|
|
641
647
|
}> {
|
|
642
648
|
options = {...options}; // ensure no change
|
|
643
|
-
// TODO refactor to share that code:
|
|
644
|
-
const args: any[] = options.args ? [...options.args] : [];
|
|
645
649
|
await init();
|
|
646
|
-
const {ethersSigner, unknown, address: from} = getFrom(options.from);
|
|
647
650
|
|
|
648
|
-
const
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
651
|
+
const deployFunction = () =>
|
|
652
|
+
deploy(name, {
|
|
653
|
+
...options,
|
|
654
|
+
deterministicDeployment: options.salt || true,
|
|
655
|
+
});
|
|
656
|
+
if (options.proxy) {
|
|
657
|
+
/* eslint-disable prefer-const */
|
|
658
|
+
let {
|
|
659
|
+
viaAdminContract,
|
|
660
|
+
proxyAdminDeployed,
|
|
661
|
+
proxyAdminName,
|
|
662
|
+
proxyAdminContract,
|
|
663
|
+
owner,
|
|
664
|
+
proxyAdmin,
|
|
665
|
+
currentProxyAdminOwner,
|
|
666
|
+
artifact,
|
|
667
|
+
implementationArgs,
|
|
668
|
+
implementationName,
|
|
669
|
+
implementationOptions,
|
|
670
|
+
proxyName,
|
|
671
|
+
proxyContract,
|
|
672
|
+
mergedABI,
|
|
673
|
+
updateMethod,
|
|
674
|
+
updateArgs,
|
|
675
|
+
} = await _getProxyInfo(name, options);
|
|
676
|
+
/* eslint-enable prefer-const */
|
|
677
|
+
|
|
678
|
+
const {address: implementationAddress} = await deterministic(
|
|
679
|
+
implementationName,
|
|
680
|
+
{...implementationOptions, salt: options.salt}
|
|
681
|
+
);
|
|
653
682
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
`expected ${numArguments} constructor arguments, got ${args.length}`
|
|
683
|
+
const implementationContract = new Contract(
|
|
684
|
+
implementationAddress,
|
|
685
|
+
artifact.abi
|
|
658
686
|
);
|
|
659
|
-
}
|
|
660
687
|
|
|
661
|
-
|
|
688
|
+
let data = '0x';
|
|
689
|
+
if (updateMethod) {
|
|
690
|
+
updateArgs = updateArgs || [];
|
|
691
|
+
if (!implementationContract[updateMethod]) {
|
|
692
|
+
throw new Error(
|
|
693
|
+
`contract need to implement function ${updateMethod}`
|
|
694
|
+
);
|
|
695
|
+
}
|
|
696
|
+
const txData = await implementationContract.populateTransaction[
|
|
697
|
+
updateMethod
|
|
698
|
+
](...updateArgs);
|
|
699
|
+
data = txData.data || '0x';
|
|
700
|
+
}
|
|
662
701
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
702
|
+
if (viaAdminContract) {
|
|
703
|
+
if (!proxyAdminName) {
|
|
704
|
+
throw new Error(
|
|
705
|
+
`no proxy admin name even though viaAdminContract is not undefined`
|
|
706
|
+
);
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
if (!proxyAdminDeployed) {
|
|
710
|
+
const {address: proxyAdminAddress} = await deterministic(
|
|
711
|
+
proxyAdminName,
|
|
712
|
+
{
|
|
713
|
+
from: options.from,
|
|
714
|
+
autoMine: options.autoMine,
|
|
715
|
+
estimateGasExtra: options.estimateGasExtra,
|
|
716
|
+
estimatedGasLimit: options.estimatedGasLimit,
|
|
717
|
+
gasPrice: options.gasPrice,
|
|
718
|
+
maxFeePerGas: options.maxFeePerGas,
|
|
719
|
+
maxPriorityFeePerGas: options.maxPriorityFeePerGas,
|
|
720
|
+
log: options.log,
|
|
721
|
+
contract: proxyAdminContract,
|
|
722
|
+
salt: options.salt,
|
|
723
|
+
skipIfAlreadyDeployed: true,
|
|
724
|
+
args: [owner],
|
|
725
|
+
waitConfirmations: options.waitConfirmations,
|
|
726
|
+
}
|
|
727
|
+
);
|
|
728
|
+
proxyAdmin = proxyAdminAddress;
|
|
729
|
+
} else {
|
|
730
|
+
proxyAdmin = proxyAdminDeployed.address;
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
const proxyOptions = {...options}; // ensure no change
|
|
735
|
+
delete proxyOptions.proxy;
|
|
736
|
+
delete proxyOptions.libraries;
|
|
737
|
+
proxyOptions.contract = proxyContract;
|
|
738
|
+
proxyOptions.args = [implementationAddress, proxyAdmin, data];
|
|
739
|
+
const {address: proxyAddress} = await deterministic(proxyName, {
|
|
740
|
+
...proxyOptions,
|
|
741
|
+
salt: options.salt,
|
|
667
742
|
});
|
|
668
|
-
}
|
|
669
743
|
|
|
670
|
-
if (typeof unsignedTx.data !== 'string') {
|
|
671
|
-
throw new Error('unsigned tx data as bytes not supported');
|
|
672
|
-
} else {
|
|
673
744
|
return {
|
|
674
|
-
address:
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
? hexlify(zeroPad(options.salt, 32))
|
|
678
|
-
: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
679
|
-
unsignedTx.data
|
|
680
|
-
),
|
|
681
|
-
deploy: () =>
|
|
682
|
-
deploy(name, {
|
|
683
|
-
...options,
|
|
684
|
-
deterministicDeployment: options.salt || true,
|
|
685
|
-
}),
|
|
745
|
+
address: proxyAddress,
|
|
746
|
+
implementationAddress,
|
|
747
|
+
deploy: deployFunction,
|
|
686
748
|
};
|
|
749
|
+
} else {
|
|
750
|
+
const args: any[] = options.args ? [...options.args] : [];
|
|
751
|
+
const {ethersSigner, unknown, address: from} = getFrom(options.from);
|
|
752
|
+
|
|
753
|
+
const artifactInfo = await getArtifactFromOptions(name, options);
|
|
754
|
+
const {artifact} = artifactInfo;
|
|
755
|
+
const abi = artifact.abi;
|
|
756
|
+
const byteCode = linkLibraries(artifact, options.libraries);
|
|
757
|
+
const factory = new ContractFactory(abi, byteCode, ethersSigner);
|
|
758
|
+
|
|
759
|
+
const numArguments = factory.interface.deploy.inputs.length;
|
|
760
|
+
if (args.length !== numArguments) {
|
|
761
|
+
throw new Error(
|
|
762
|
+
`expected ${numArguments} constructor arguments, got ${args.length}`
|
|
763
|
+
);
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
const unsignedTx = factory.getDeployTransaction(...args);
|
|
767
|
+
|
|
768
|
+
if (unknown) {
|
|
769
|
+
throw new UnknownSignerError({
|
|
770
|
+
from,
|
|
771
|
+
...JSON.parse(JSON.stringify(unsignedTx)),
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
if (typeof unsignedTx.data !== 'string') {
|
|
776
|
+
throw new Error('unsigned tx data as bytes not supported');
|
|
777
|
+
} else {
|
|
778
|
+
return {
|
|
779
|
+
address: getCreate2Address(
|
|
780
|
+
await deploymentManager.getDeterministicDeploymentFactoryAddress(),
|
|
781
|
+
options.salt
|
|
782
|
+
? hexlify(zeroPad(options.salt, 32))
|
|
783
|
+
: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
784
|
+
unsignedTx.data
|
|
785
|
+
),
|
|
786
|
+
deploy: () =>
|
|
787
|
+
deploy(name, {
|
|
788
|
+
...options,
|
|
789
|
+
deterministicDeployment: options.salt || true,
|
|
790
|
+
}),
|
|
791
|
+
};
|
|
792
|
+
}
|
|
687
793
|
}
|
|
688
794
|
}
|
|
689
795
|
|
|
@@ -725,7 +831,8 @@ export function addHelpers(
|
|
|
725
831
|
typeof options.deterministicDeployment === 'string'
|
|
726
832
|
? hexlify(zeroPad(options.deterministicDeployment, 32))
|
|
727
833
|
: '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
728
|
-
const create2DeployerAddress =
|
|
834
|
+
const create2DeployerAddress =
|
|
835
|
+
await deploymentManager.getDeterministicDeploymentFactoryAddress();
|
|
729
836
|
const create2Address = getCreate2Address(
|
|
730
837
|
create2DeployerAddress,
|
|
731
838
|
create2Salt,
|
|
@@ -747,12 +854,15 @@ export function addHelpers(
|
|
|
747
854
|
return {differences: false, address: undefined}; // TODO check receipt, see below
|
|
748
855
|
}
|
|
749
856
|
// TODO transactionReceipt + check for status
|
|
857
|
+
let transactionDetailsAvailable = false;
|
|
750
858
|
let transaction;
|
|
751
859
|
if (deployment.receipt) {
|
|
860
|
+
transactionDetailsAvailable = !!deployment.receipt.transactionHash;
|
|
752
861
|
transaction = await provider.getTransaction(
|
|
753
862
|
deployment.receipt.transactionHash
|
|
754
863
|
);
|
|
755
864
|
} else if (deployment.transactionHash) {
|
|
865
|
+
transactionDetailsAvailable = true;
|
|
756
866
|
transaction = await provider.getTransaction(deployment.transactionHash);
|
|
757
867
|
}
|
|
758
868
|
|
|
@@ -769,6 +879,17 @@ export function addHelpers(
|
|
|
769
879
|
return {differences: true, address: deployment.address};
|
|
770
880
|
}
|
|
771
881
|
return {differences: false, address: deployment.address};
|
|
882
|
+
} else {
|
|
883
|
+
if (transactionDetailsAvailable) {
|
|
884
|
+
throw new Error(
|
|
885
|
+
`cannot get the transaction for ${name}'s previous deployment, please check your node synced status.`
|
|
886
|
+
);
|
|
887
|
+
} else {
|
|
888
|
+
console.error(
|
|
889
|
+
`no transaction details found for ${name}'s previous deployment, if the deployment is t be discarded, please delete the file`
|
|
890
|
+
);
|
|
891
|
+
return {differences: false, address: deployment.address};
|
|
892
|
+
}
|
|
772
893
|
}
|
|
773
894
|
}
|
|
774
895
|
return {differences: true, address: undefined};
|
|
@@ -893,11 +1014,32 @@ export function addHelpers(
|
|
|
893
1014
|
}
|
|
894
1015
|
}
|
|
895
1016
|
|
|
896
|
-
|
|
897
|
-
async function _deployViaEIP173Proxy(
|
|
1017
|
+
async function _getProxyInfo(
|
|
898
1018
|
name: string,
|
|
899
1019
|
options: DeployOptions
|
|
900
|
-
): Promise<
|
|
1020
|
+
): Promise<{
|
|
1021
|
+
viaAdminContract:
|
|
1022
|
+
| string
|
|
1023
|
+
| {name: string; artifact?: string | ArtifactData}
|
|
1024
|
+
| undefined;
|
|
1025
|
+
proxyAdminName: string | undefined;
|
|
1026
|
+
proxyAdminDeployed: Deployment | undefined;
|
|
1027
|
+
proxyAdmin: string;
|
|
1028
|
+
proxyAdminContract: ExtendedArtifact | undefined;
|
|
1029
|
+
owner: string;
|
|
1030
|
+
currentProxyAdminOwner: string | undefined;
|
|
1031
|
+
artifact: ExtendedArtifact;
|
|
1032
|
+
implementationArgs: any[];
|
|
1033
|
+
implementationName: string;
|
|
1034
|
+
implementationOptions: DeployOptions;
|
|
1035
|
+
mergedABI: ABI;
|
|
1036
|
+
proxyName: string;
|
|
1037
|
+
proxyContract: ExtendedArtifact;
|
|
1038
|
+
oldDeployment: Deployment | null;
|
|
1039
|
+
updateMethod: string | undefined;
|
|
1040
|
+
updateArgs: any[];
|
|
1041
|
+
upgradeIndex: number | undefined;
|
|
1042
|
+
}> {
|
|
901
1043
|
const oldDeployment = await getDeploymentOrNUll(name);
|
|
902
1044
|
let updateMethod: string | undefined;
|
|
903
1045
|
let updateArgs: any[] | undefined;
|
|
@@ -982,10 +1124,7 @@ export function addHelpers(
|
|
|
982
1124
|
} else if (typeof options.proxy === 'string') {
|
|
983
1125
|
updateMethod = options.proxy;
|
|
984
1126
|
}
|
|
985
|
-
|
|
986
|
-
if (deployResult) {
|
|
987
|
-
return deployResult;
|
|
988
|
-
}
|
|
1127
|
+
|
|
989
1128
|
const proxyName = name + '_Proxy';
|
|
990
1129
|
const {address: owner} = getProxyOwner(options);
|
|
991
1130
|
const {address: from} = getFrom(options.from);
|
|
@@ -1078,9 +1217,10 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
1078
1217
|
}
|
|
1079
1218
|
|
|
1080
1219
|
let proxyAdminName: string | undefined;
|
|
1081
|
-
|
|
1220
|
+
const proxyAdmin = owner;
|
|
1082
1221
|
let currentProxyAdminOwner: string | undefined;
|
|
1083
1222
|
let proxyAdminDeployed: Deployment | undefined;
|
|
1223
|
+
let proxyAdminContract: ExtendedArtifact | undefined;
|
|
1084
1224
|
if (viaAdminContract) {
|
|
1085
1225
|
let proxyAdminArtifactNameOrContract: string | ArtifactData | undefined;
|
|
1086
1226
|
if (typeof viaAdminContract === 'string') {
|
|
@@ -1094,7 +1234,6 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
1094
1234
|
proxyAdminArtifactNameOrContract = viaAdminContract.artifact;
|
|
1095
1235
|
}
|
|
1096
1236
|
|
|
1097
|
-
let proxyAdminContract: ExtendedArtifact | undefined;
|
|
1098
1237
|
if (typeof proxyAdminArtifactNameOrContract === 'string') {
|
|
1099
1238
|
try {
|
|
1100
1239
|
proxyAdminContract = await partialExtension.getExtendedArtifact(
|
|
@@ -1114,7 +1253,69 @@ Note that in this case, the contract deployment will not behave the same if depl
|
|
|
1114
1253
|
} else {
|
|
1115
1254
|
proxyAdminContract = proxyAdminArtifactNameOrContract;
|
|
1116
1255
|
}
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
return {
|
|
1259
|
+
proxyName,
|
|
1260
|
+
proxyContract,
|
|
1261
|
+
mergedABI,
|
|
1262
|
+
viaAdminContract,
|
|
1263
|
+
proxyAdminDeployed,
|
|
1264
|
+
proxyAdminName,
|
|
1265
|
+
proxyAdminContract,
|
|
1266
|
+
owner,
|
|
1267
|
+
proxyAdmin,
|
|
1268
|
+
currentProxyAdminOwner,
|
|
1269
|
+
artifact,
|
|
1270
|
+
implementationArgs,
|
|
1271
|
+
implementationName,
|
|
1272
|
+
implementationOptions,
|
|
1273
|
+
oldDeployment,
|
|
1274
|
+
updateMethod,
|
|
1275
|
+
updateArgs,
|
|
1276
|
+
upgradeIndex,
|
|
1277
|
+
};
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
// TODO rename
|
|
1281
|
+
async function _deployViaEIP173Proxy(
|
|
1282
|
+
name: string,
|
|
1283
|
+
options: DeployOptions
|
|
1284
|
+
): Promise<DeployResult> {
|
|
1285
|
+
/* eslint-disable prefer-const */
|
|
1286
|
+
let {
|
|
1287
|
+
oldDeployment,
|
|
1288
|
+
updateMethod,
|
|
1289
|
+
updateArgs,
|
|
1290
|
+
upgradeIndex,
|
|
1291
|
+
viaAdminContract,
|
|
1292
|
+
proxyAdminDeployed,
|
|
1293
|
+
proxyAdminName,
|
|
1294
|
+
proxyAdminContract,
|
|
1295
|
+
owner,
|
|
1296
|
+
proxyAdmin,
|
|
1297
|
+
currentProxyAdminOwner,
|
|
1298
|
+
artifact,
|
|
1299
|
+
implementationArgs,
|
|
1300
|
+
implementationName,
|
|
1301
|
+
implementationOptions,
|
|
1302
|
+
proxyName,
|
|
1303
|
+
proxyContract,
|
|
1304
|
+
mergedABI,
|
|
1305
|
+
} = await _getProxyInfo(name, options);
|
|
1306
|
+
/* eslint-enable prefer-const */
|
|
1117
1307
|
|
|
1308
|
+
const deployResult = _checkUpgradeIndex(oldDeployment, upgradeIndex);
|
|
1309
|
+
if (deployResult) {
|
|
1310
|
+
return deployResult;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
if (viaAdminContract) {
|
|
1314
|
+
if (!proxyAdminName) {
|
|
1315
|
+
throw new Error(
|
|
1316
|
+
`no proxy admin name even though viaAdminContract is not undefined`
|
|
1317
|
+
);
|
|
1318
|
+
}
|
|
1118
1319
|
if (!proxyAdminDeployed) {
|
|
1119
1320
|
proxyAdminDeployed = await _deployOne(proxyAdminName, {
|
|
1120
1321
|
from: options.from,
|
package/types.ts
CHANGED
|
@@ -165,7 +165,7 @@ export interface TxOptions extends CallOptions {
|
|
|
165
165
|
autoMine?: boolean;
|
|
166
166
|
estimatedGasLimit?: string | number | BigNumber;
|
|
167
167
|
estimateGasExtra?: string | number | BigNumber;
|
|
168
|
-
waitConfirmations?: number
|
|
168
|
+
waitConfirmations?: number;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
export interface Execute extends TxOptions {
|
|
@@ -203,6 +203,7 @@ export interface DeploymentsExtension {
|
|
|
203
203
|
options: Create2DeployOptions
|
|
204
204
|
): Promise<{
|
|
205
205
|
address: Address;
|
|
206
|
+
implementationAddress?: Address;
|
|
206
207
|
deploy(): Promise<DeployResult>;
|
|
207
208
|
}>;
|
|
208
209
|
fetchIfDifferent( // return true if new compiled code is different than deployed contract
|
|
@@ -351,8 +352,8 @@ export interface Deployment {
|
|
|
351
352
|
}
|
|
352
353
|
|
|
353
354
|
export interface DeterministicDeploymentInfo {
|
|
354
|
-
factory: string
|
|
355
|
-
deployer: string
|
|
356
|
-
funding: string
|
|
357
|
-
signedTx: string
|
|
358
|
-
}
|
|
355
|
+
factory: string;
|
|
356
|
+
deployer: string;
|
|
357
|
+
funding: string;
|
|
358
|
+
signedTx: string;
|
|
359
|
+
}
|