Skip to content

Commit

Permalink
Update Defender SDK (#924)
Browse files Browse the repository at this point in the history
  • Loading branch information
ericglau authored Nov 14, 2023
1 parent 55eae39 commit 9078b9d
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 34 deletions.
1 change: 0 additions & 1 deletion .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ jobs:
package:
- core
- plugin-hardhat
- plugin-truffle

runs-on: ubuntu-latest

Expand Down
7 changes: 7 additions & 0 deletions packages/plugin-hardhat/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## Unreleased

- Update Defender SDK. ([#924](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/924))
- Throw error if not using a relayer for deployments, until other types of deployments are supported.

**Note**: OpenZeppelin Defender deployments is in beta and its functionality is subject to change.

## 2.4.0 (2023-11-13)

- Add `createFactoryAddress` option for Defender deployments. ([#920](https://github.com/OpenZeppelin/openzeppelin-upgrades/pull/920))
Expand Down
8 changes: 4 additions & 4 deletions packages/plugin-hardhat/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@
"sinon": "^17.0.0"
},
"dependencies": {
"@openzeppelin/defender-admin-client": "^1.48.0",
"@openzeppelin/defender-base-client": "^1.48.0",
"@openzeppelin/defender-sdk-base-client": "^1.2.0",
"@openzeppelin/defender-sdk-deploy-client": "^1.2.0",
"@openzeppelin/defender-admin-client": "^1.52.0",
"@openzeppelin/defender-base-client": "^1.52.0",
"@openzeppelin/defender-sdk-base-client": "^1.5.0",
"@openzeppelin/defender-sdk-deploy-client": "^1.5.0",
"@openzeppelin/upgrades-core": "^1.30.1",
"chalk": "^4.1.0",
"debug": "^4.1.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/plugin-hardhat/src/defender-v1/propose-upgrade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
isTransparentOrUUPSProxy,
isTransparentProxy,
} from '@openzeppelin/upgrades-core';
import { ProposalResponse } from '@openzeppelin/defender-admin-client';
import { ProposalResponse, CreateProposalRequest } from '@openzeppelin/defender-admin-client';
import { ContractFactory, getCreateAddress, ethers } from 'ethers';
import { HardhatRuntimeEnvironment } from 'hardhat/types';
import { getAdminClient, getNetwork } from './utils';
Expand All @@ -28,7 +28,7 @@ export interface ProposalOptions extends UpgradeOptions {
description?: string;
proxyAdmin?: string;
multisig?: string;
multisigType?: 'Gnosis Safe' | 'Gnosis Multisig' | 'EOA';
multisigType?: CreateProposalRequest['viaType'];
bytecodeVerificationReferenceUrl?: string;
}

Expand Down
23 changes: 17 additions & 6 deletions packages/plugin-hardhat/src/defender/deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,6 @@ type CompilerOutputWithMetadata = CompilerOutputContract & {
metadata?: string;
};

type DeployRequest = DeployContractRequest & {
// TODO: remove this when defender-sdk-deploy-client dependency is updated
createFactoryAddress?: string;
};

export async function defenderDeploy(
hre: HardhatRuntimeEnvironment,
factory: ContractFactory,
Expand All @@ -85,7 +80,7 @@ export async function defenderDeploy(
debug(`Salt: ${opts.salt}`);
}

const deploymentRequest: DeployRequest = {
const deploymentRequest: DeployContractRequest = {
contractName: contractInfo.contractName,
contractPath: contractInfo.sourceName,
network: network,
Expand All @@ -112,6 +107,22 @@ export async function defenderDeploy(
}
}

if (deploymentResponse.address === undefined) {
throw new UpgradesError(
`Deployment response with id ${deploymentResponse.deploymentId} does not include a contract address`,
() =>
'The Hardhat Upgrades plugin is not currently compatible with this type of deployment. Use a relayer for your default deploy approval process in Defender.',
);
}

if (deploymentResponse.txHash === undefined) {
throw new UpgradesError(
`Deployment response with id ${deploymentResponse.deploymentId} does not include a transaction hash`,
() =>
'The Hardhat Upgrades plugin is not currently compatible with this type of deployment. Use a relayer for your default deploy approval process in Defender.',
);
}

const txResponse = (await hre.ethers.provider.getTransaction(deploymentResponse.txHash)) ?? undefined;
const checksumAddress = hre.ethers.getAddress(deploymentResponse.address);
return {
Expand Down
3 changes: 2 additions & 1 deletion packages/plugin-hardhat/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"composite": true,
"outDir": "dist",
"rootDir": "src",
"resolveJsonModule": true
"resolveJsonModule": true,
"skipLibCheck": true,
},
"include": [
"src/**/*"
Expand Down
51 changes: 31 additions & 20 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2393,43 +2393,43 @@
resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.3.tgz#cbef3146bfc570849405f59cba18235da95a252a"
integrity sha512-bQHV8R9Me8IaJoJ2vPG4rXcL7seB7YVuskr4f+f5RyOStSZetwzkWtoqDMl5erkBJy0lDRUnIR2WIkPiC0GJlg==

"@openzeppelin/defender-admin-client@^1.48.0":
version "1.48.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-admin-client/-/defender-admin-client-1.48.0.tgz#acb8d6677a0b1bca463f9017aefaf4b6720123e1"
integrity sha512-MN29JD6jA3PgOxF2tG0aZbMIwOCieYWkK9UbHCq1UzGPrMgGV9NVMUyVdqpv7Ynplwsjp5ZTBDOyttwvTlchHg==
"@openzeppelin/defender-admin-client@^1.52.0":
version "1.52.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-admin-client/-/defender-admin-client-1.52.0.tgz#9788dc839ae1d31c82c57d3e277c1c1ecb149740"
integrity sha512-CKs5mMLL7+nXyugsHaAw0aPfLwFNA+vq7ftuJ3sWUKdbQRZsJ+/189HAwp2/BJC64yUbarEeWqOh3jNpaKRJLw==
dependencies:
"@openzeppelin/defender-base-client" "1.48.0"
"@openzeppelin/defender-base-client" "1.52.0"
axios "^1.4.0"
ethers "^5.7.2"
lodash "^4.17.19"
node-fetch "^2.6.0"

"@openzeppelin/defender-base-client@1.48.0", "@openzeppelin/defender-base-client@^1.48.0":
version "1.48.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-base-client/-/defender-base-client-1.48.0.tgz#9103b1b036db0451b52d7899a277bf24db4c4b06"
integrity sha512-HFO87s010hRrMjyh2xYOCEAkLe21BfIbho7n5/kikA6A1ZgXi7MsEiqnQv1zP4bxMJgxGZ5b3t4tt6fWrakbag==
"@openzeppelin/defender-base-client@1.52.0", "@openzeppelin/defender-base-client@^1.52.0":
version "1.52.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-base-client/-/defender-base-client-1.52.0.tgz#7a000eeba9705c75e6be5de5d32e07d377aed55d"
integrity sha512-VFNu/pjVpAnFKIfuKT1cn9dRpbcO8FO8EAmVZ2XrrAsKXEWDZ3TNBtACxmj7fAu0ad/TzRkb66o5rMts7Fv7jw==
dependencies:
amazon-cognito-identity-js "^6.0.1"
async-retry "^1.3.3"
axios "^1.4.0"
lodash "^4.17.19"
node-fetch "^2.6.0"

"@openzeppelin/defender-sdk-base-client@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.2.0.tgz#4ed527939e3b8f0db1bd8a8b35f39effb795c3c8"
integrity sha512-v/nzOABW4RH4wqVPG8gUICV48eZeO0kf6ZvNsd1aUP4i7NyCPv80gErjtW08SFzR/sTqsDN6PS3D+les8mGXvg==
"@openzeppelin/defender-sdk-base-client@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-base-client/-/defender-sdk-base-client-1.5.0.tgz#82d2b45c84822dfadaba8b7cfe215df7ac3c4bec"
integrity sha512-8aN4sEE15/6LctA14ADr8c6QvEzEXfAtFlxo/Ys0N6UVfp8lRAYqDOpHd4mb8dMfkRzq5izMCuMYgAjC9GFflQ==
dependencies:
amazon-cognito-identity-js "^6.0.1"
amazon-cognito-identity-js "^6.3.6"
async-retry "^1.3.3"

"@openzeppelin/defender-sdk-deploy-client@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.2.0.tgz#76381c8f3c2821ec2856e70d1d562d3fbfe7c88d"
integrity sha512-kUBRKMSQiTZ8urP236L68k5X8Eg1ys2FDYMeuJ22GhXFAC2M1l6OaXNFolFBSzmS5t/x8BkJU6+RCyoCqO2qxg==
"@openzeppelin/defender-sdk-deploy-client@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@openzeppelin/defender-sdk-deploy-client/-/defender-sdk-deploy-client-1.5.0.tgz#b0bdadc0f00a44c49a3f96e85673394f94f99d6c"
integrity sha512-DbE4Rpa90vSN7o5/sim5qzAVVsSWkZBJ+Z9yjkc8qPRheh2dRk6oe2GhVoQfXI/04XwMb2uNvtfU1VAH8AzgaQ==
dependencies:
"@ethersproject/abi" "^5.6.3"
"@openzeppelin/defender-sdk-base-client" "^1.2.0"
"@ethersproject/abi" "^5.7.0"
"@openzeppelin/defender-sdk-base-client" "^1.5.0"
axios "^1.4.0"
lodash "^4.17.21"

Expand Down Expand Up @@ -3636,6 +3636,17 @@ amazon-cognito-identity-js@^6.0.1:
isomorphic-unfetch "^3.0.0"
js-cookie "^2.2.1"

amazon-cognito-identity-js@^6.3.6:
version "6.3.7"
resolved "https://registry.yarnpkg.com/amazon-cognito-identity-js/-/amazon-cognito-identity-js-6.3.7.tgz#65c3d7ee4e0c0a1ffea01927248989c5bd1d1868"
integrity sha512-tSjnM7KyAeOZ7UMah+oOZ6cW4Gf64FFcc7BE2l7MTcp7ekAPrXaCbpcW2xEpH1EiDS4cPcAouHzmCuc2tr72vQ==
dependencies:
"@aws-crypto/sha256-js" "1.2.2"
buffer "4.9.2"
fast-base64-decode "^1.0.0"
isomorphic-unfetch "^3.0.0"
js-cookie "^2.2.1"

ansi-colors@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
Expand Down

0 comments on commit 9078b9d

Please sign in to comment.