From 21c6d76c11f13d4da8c1d5e7e6526059902d5b1d Mon Sep 17 00:00:00 2001 From: Michael Heuer <20623991+Michael-A-Heuer@users.noreply.github.com> Date: Tue, 23 Apr 2024 16:40:52 +0200 Subject: [PATCH] chore: sync with `osx-plugin-template-hardhat` and `osx-commons` (#13) * feat: change the manifest data json struct * feat: change the script to get the correct params from the manifest data * featL change to ens name * feat: remove the ens domain due to it is not used * feat: update deploy script to get the correct repo address * feat: added IAction to template * feat: bump matchstick version * fix: remove deprecated networks * fix: update the repository in the placeholder * fix: local deploy script problem with `generateRandomName` (#53) * fix: error on local deployment * refactor: move generateName to avoid circular dependency * refactor: metadata encoding * refactor: split upgrade repo script into two (#60) * refactor: renamed file * refactor: extract skip function * refactor: renaming and commenting * style: satisfy linter * chore: maintained guide * refactor: don't alias * fix: wrong import * fix: change the execution order so that reinitialization happens by default * refactor: common steps * doc: subgraph description * fix: remove IAction * refactor: remove IAction (#61) * f: removed IAction from template as is opinonated solution * style: add empty line at EOF --------- Co-authored-by: Michael Heuer <20623991+Michael-A-Heuer@users.noreply.github.com> * chore: refactor helpers (#57) * refactor: delete hashHelpers * style: fix linter * fix: import * build: bump OZ dependency * chore: bump osx-commons-sdk dependency * chore: bumped commons-contracts * chore: maintained changelog * chore: bump osx-commons-sdk version (#62) * chore: author change after AA dissolution * chore: sync with `osx-commons` (#63) * chore: bump osx-commons-sdk version * chore: bump osx-commons * fix: yarn lock --------- Co-authored-by: Claudia Co-authored-by: jordaniza Co-authored-by: Jordan <45881807+jordaniza@users.noreply.github.com> --- packages/contracts/CHANGELOG.md | 1 + packages/contracts/deploy/00_info/01_info.ts | 5 + .../deploy/10_create_repo/11_create_repo.ts | 4 +- .../deploy/20_new_version/23_publish.ts | 19 +- .../deploy/30_upgrade_repo/31_upgrade_repo.ts | 213 ------------- .../30_upgrade_repo/31a_upgrade_repo.ts | 36 +++ .../31b_upgrade_and_reinitialize_repo.ts | 58 ++++ .../deploy/30_upgrade_repo/_common.ts | 106 +++++++ packages/contracts/package.json | 20 +- packages/contracts/src/Admin.sol | 2 +- packages/contracts/src/AdminSetup.sol | 2 +- .../test/10_unit-testing/11_plugin.ts | 21 +- .../test/10_unit-testing/12_plugin-setup.ts | 5 +- .../20_integration-testing/21_deployment.ts | 5 +- .../22_setup-processing.ts | 4 +- .../20_integration-testing/test-helpers.ts | 46 +-- packages/contracts/utils/helpers.ts | 28 +- packages/contracts/yarn.lock | 288 ++---------------- .../manifest/subgraph.placeholder.yaml | 2 +- 19 files changed, 311 insertions(+), 554 deletions(-) delete mode 100644 packages/contracts/deploy/30_upgrade_repo/31_upgrade_repo.ts create mode 100644 packages/contracts/deploy/30_upgrade_repo/31a_upgrade_repo.ts create mode 100644 packages/contracts/deploy/30_upgrade_repo/31b_upgrade_and_reinitialize_repo.ts create mode 100644 packages/contracts/deploy/30_upgrade_repo/_common.ts diff --git a/packages/contracts/CHANGELOG.md b/packages/contracts/CHANGELOG.md index fa2565a3..20203657 100644 --- a/packages/contracts/CHANGELOG.md +++ b/packages/contracts/CHANGELOG.md @@ -13,5 +13,6 @@ and this project adheres to the [Aragon OSx Plugin Versioning Convention](https: ### Changed +- Bumped OpenZepplin to `4.9.6`. - Used `ProxyLib` from `osx-commons-contracts` for the minimal proxy deployment in `AdminSetup`. - Hard-coded the `bytes32 internal constant EXECUTE_PERMISSION_ID` constant in `AdminSetup` until it is available in `PermissionLib`. diff --git a/packages/contracts/deploy/00_info/01_info.ts b/packages/contracts/deploy/00_info/01_info.ts index ade3e9bb..d6f6acaa 100644 --- a/packages/contracts/deploy/00_info/01_info.ts +++ b/packages/contracts/deploy/00_info/01_info.ts @@ -1,3 +1,4 @@ +import {PLUGIN_REPO_ENS_SUBDOMAIN_NAME} from '../../plugin-settings'; import { AragonOSxAsciiArt, getProductionNetworkName, @@ -52,6 +53,10 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { await deployer.getBalance() )} native tokens.` ); + + console.log( + `Chosen PluginRepo ENS subdomain name: '${PLUGIN_REPO_ENS_SUBDOMAIN_NAME}'` + ); }; export default func; diff --git a/packages/contracts/deploy/10_create_repo/11_create_repo.ts b/packages/contracts/deploy/10_create_repo/11_create_repo.ts index b4ed1445..caf42237 100644 --- a/packages/contracts/deploy/10_create_repo/11_create_repo.ts +++ b/packages/contracts/deploy/10_create_repo/11_create_repo.ts @@ -58,8 +58,8 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { // Get the PluginRepo address and deployment block number from the txn and event therein const eventLog = - await findEventTopicLog( - tx, + findEventTopicLog( + await tx.wait(), PluginRepoRegistry__factory.createInterface(), 'PluginRepoRegistered' ); diff --git a/packages/contracts/deploy/20_new_version/23_publish.ts b/packages/contracts/deploy/20_new_version/23_publish.ts index 0dbba782..28020a74 100644 --- a/packages/contracts/deploy/20_new_version/23_publish.ts +++ b/packages/contracts/deploy/20_new_version/23_publish.ts @@ -12,12 +12,9 @@ import { isLocal, pluginEnsDomain, } from '../../utils/helpers'; -import { - PLUGIN_REPO_PERMISSIONS, - toHex, - uploadToIPFS, -} from '@aragon/osx-commons-sdk'; +import {PLUGIN_REPO_PERMISSIONS, uploadToIPFS} from '@aragon/osx-commons-sdk'; import {writeFile} from 'fs/promises'; +import {ethers} from 'hardhat'; import {DeployFunction} from 'hardhat-deploy/types'; import {HardhatRuntimeEnvironment} from 'hardhat/types'; import path from 'path'; @@ -114,8 +111,8 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { .createVersion( VERSION.release, setup.address, - toHex(buildMetadataURI), - toHex(releaseMetadataURI) + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(buildMetadataURI)), + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(releaseMetadataURI)) ); await tx.wait(); @@ -145,8 +142,12 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { createVersion: { _release: VERSION.release, _pluginSetup: setup.address, - _buildMetadata: toHex(buildMetadataURI), - _releaseMetadata: toHex(releaseMetadataURI), + _buildMetadata: ethers.utils.hexlify( + ethers.utils.toUtf8Bytes(buildMetadataURI) + ), + _releaseMetadata: ethers.utils.hexlify( + ethers.utils.toUtf8Bytes(releaseMetadataURI) + ), }, }, ], diff --git a/packages/contracts/deploy/30_upgrade_repo/31_upgrade_repo.ts b/packages/contracts/deploy/30_upgrade_repo/31_upgrade_repo.ts deleted file mode 100644 index d8cf19c8..00000000 --- a/packages/contracts/deploy/30_upgrade_repo/31_upgrade_repo.ts +++ /dev/null @@ -1,213 +0,0 @@ -import { - findPluginRepo, - getProductionNetworkName, - impersonatedManagementDaoSigner, - isLocal, -} from '../../utils/helpers'; -import { - getLatestNetworkDeployment, - getNetworkNameByAlias, -} from '@aragon/osx-commons-configs'; -import { - PLUGIN_REPO_PERMISSIONS, - UnsupportedNetworkError, -} from '@aragon/osx-commons-sdk'; -import {PluginRepo__factory} from '@aragon/osx-ethers'; -import {BytesLike} from 'ethers'; -import {writeFile} from 'fs/promises'; -import {DeployFunction} from 'hardhat-deploy/types'; -import {HardhatRuntimeEnvironment} from 'hardhat/types'; -import path from 'path'; - -type SemVer = [number, number, number]; - -/** - * Upgrades the plugin repo to the latest implementation. - * @param {HardhatRuntimeEnvironment} hre - */ -const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { - const [deployer] = await hre.ethers.getSigners(); - const productionNetworkName: string = getProductionNetworkName(hre); - const network = getNetworkNameByAlias(productionNetworkName); - if (network === null) { - throw new UnsupportedNetworkError(productionNetworkName); - } - const networkDeployments = getLatestNetworkDeployment(network); - if (networkDeployments === null) { - throw `Deployments are not available on network ${network}.`; - } - - // Get PluginRepo - const {pluginRepo, ensDomain} = await findPluginRepo(hre); - if (pluginRepo === null) { - throw `PluginRepo '${ensDomain}' does not exist yet.`; - } - - console.log( - `Upgrading plugin repo '${ensDomain}' (${pluginRepo.address})...` - ); - - // Get the latest `PluginRepo` implementation as the upgrade target - const latestPluginRepoImplementation = PluginRepo__factory.connect( - networkDeployments.PluginRepoBase.address, - deployer - ); - - // Get the current OSX protocol version from the current plugin repo implementation - let current: SemVer; - try { - current = await pluginRepo.protocolVersion(); - } catch { - current = [1, 0, 0]; - } - - // Get the OSX protocol version from the latest plugin repo implementation - const latest: SemVer = await latestPluginRepoImplementation.protocolVersion(); - - console.log( - `Upgrading from current protocol version v${current[0]}.${current[1]}.${current[2]} to the latest version v${latest[0]}.${latest[1]}.${latest[2]}.` - ); - - // NOTE: The following code can be uncommented and `initData` can be filled - // with arguments in case re-initialization of the `PluginRepo` should become necessary. - // Re-initialization will happen through a call to `function initializeFrom(uint8[3] calldata _previousProtocolVersion, bytes calldata _initData)` - // that Aragon might add to the `PluginRepo` contract once it's required. - /* - // Define the `_initData` arguments - const initData: BytesLike[] = []; - // Encode the call to `function initializeFrom(uint8[3] calldata _previousProtocolVersion, bytes calldata _initData)` with `initData` - const initializeFromCalldata = - latestPluginRepoImplementation.interface.encodeFunctionData('initializeFrom', [ - current, - initData, - ]); - */ - const initializeFromCalldata: BytesLike = []; - - const isDeployerUpgrader = await pluginRepo.isGranted( - pluginRepo.address, - deployer.address, - PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID, - [] - ); - - // If this is a local deployment and the deployer doesn't have `UPGRADE_REPO_PERMISSION_ID` permission - // we impersonate the management DAO for integration testing purposes. - const signer = - isDeployerUpgrader || !isLocal(hre) - ? deployer - : await impersonatedManagementDaoSigner(hre); - - // Check if the signer has the permission to upgrade the plugin repo - if ( - await pluginRepo.isGranted( - pluginRepo.address, - signer.address, - PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID, - [] - ) - ) { - // Use `upgradeToAndCall` if the new implementation must be re-initialized by calling - // on the `PluginRepo` proxy. If not, we use `upgradeTo`. - if (initializeFromCalldata.length > 0) { - await pluginRepo.upgradeToAndCall( - latestPluginRepoImplementation.address, - initializeFromCalldata - ); - } else { - await pluginRepo.upgradeTo(latestPluginRepoImplementation.address); - } - } else { - // The deployer does not have `UPGRADE_REPO_PERMISSION_ID` permission and we are not deploying to a production network, - // so we write the data into a file for a management DAO member to create a proposal from it. - const upgradeAction = - initializeFromCalldata.length === 0 - ? { - to: pluginRepo.address, - upgradeTo: { - NewImplementation: latestPluginRepoImplementation.address, - }, - } - : { - to: pluginRepo.address, - upgradeToAndCall: { - NewImplementation: latestPluginRepoImplementation.address, - Data: initializeFromCalldata, - PayableAmount: 0, - }, - }; - const data = { - proposalTitle: `Upgrade the '${ensDomain}' plugin repo`, - proposalSummary: `Upgrades '${ensDomain}' plugin repo at '${pluginRepo.address}',' plugin in the '${ensDomain}' plugin repo.`, - proposalDescription: `TODO: Describe the changes to the 'PluginRepo' implementation.`, - actions: [upgradeAction], - }; - - const path = `./upgradeRepoProposalData-${hre.network.name}.json`; - await writeFile(path, JSON.stringify(data, null, 2)); - console.log( - `Saved data to '${path}'. Use this to create a proposal on the managing DAO calling the 'upgradeTo' or 'upgradeToAndCall' function on the ${ensDomain} plugin repo deployed at ${pluginRepo.address}.` - ); - } -}; -export default func; -func.tags = ['UpgradeRepo']; - -/** - * Skips the plugin repo upgrade if exists in the plugin repo. - * @param {HardhatRuntimeEnvironment} hre - */ -func.skip = async (hre: HardhatRuntimeEnvironment) => { - console.log(`\n🏗️ ${path.basename(__filename)}:`); - - const [deployer] = await hre.ethers.getSigners(); - const productionNetworkName: string = getProductionNetworkName(hre); - const network = getNetworkNameByAlias(productionNetworkName); - if (network === null) { - throw new UnsupportedNetworkError(productionNetworkName); - } - const networkDeployments = getLatestNetworkDeployment(network); - if (networkDeployments === null) { - throw `Deployments are not available on network ${network}.`; - } - - // Get the latest `PluginRepo` implementation as the upgrade target - const latestPluginRepoImplementation = PluginRepo__factory.connect( - networkDeployments.PluginRepoBase.address, - deployer - ); - - const {pluginRepo, ensDomain} = await findPluginRepo(hre); - if (pluginRepo === null) { - throw `PluginRepo '${ensDomain}' does not exist yet.`; - } - - // Compare the current protocol version of the `PluginRepo` - let current: SemVer; - try { - current = await pluginRepo.protocolVersion(); - } catch { - current = [1, 0, 0]; - } - const target: SemVer = await latestPluginRepoImplementation.protocolVersion(); - - // Throw an error if attempting to upgrade to an earlier version - if ( - current[0] > target[0] || - current[1] > target[1] || - current[2] > target[2] - ) { - throw `The plugin repo, currently at 'v${current[0]}.${current[1]}.${current[2]}' cannot be upgraded to the earlier version v${target[0]}.${target[1]}.${target[2]}.`; - } - - // Skip if versions are equal - if (JSON.stringify(current) == JSON.stringify(target)) { - console.log( - `PluginRepo '${ensDomain}' (${pluginRepo.address}) has already been upgraded to - the current protocol version v${target[0]}.${target[1]}.${target[2]}. Skipping upgrade...` - ); - return true; - } - - return false; -}; diff --git a/packages/contracts/deploy/30_upgrade_repo/31a_upgrade_repo.ts b/packages/contracts/deploy/30_upgrade_repo/31a_upgrade_repo.ts new file mode 100644 index 00000000..6e428298 --- /dev/null +++ b/packages/contracts/deploy/30_upgrade_repo/31a_upgrade_repo.ts @@ -0,0 +1,36 @@ +import {fetchData, skipUpgrade} from './_common'; +import {PLUGIN_REPO_PERMISSIONS} from '@aragon/osx-commons-sdk'; +import {DeployFunction} from 'hardhat-deploy/types'; +import {HardhatRuntimeEnvironment} from 'hardhat/types'; + +/** + * Upgrades the plugin repo to the latest implementation. + * This script CAN be called if the contract does not require reinitialization. + * It MUST NOY be called if the contract requires reinitialization, because this + * would leave the proxy unreinitialized. + * @param {HardhatRuntimeEnvironment} hre + */ +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployer, pluginRepo, latestPluginRepoImplementation} = + await fetchData(hre); + + // Check if deployer has the permission to upgrade the plugin repo + if ( + await pluginRepo.isGranted( + pluginRepo.address, + deployer.address, + PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID, + [] + ) + ) { + await pluginRepo.upgradeTo(latestPluginRepoImplementation.address); + } else { + throw Error( + `The new version cannot be published because the deployer ('${deployer.address}') + is lacking the ${PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID} permission.` + ); + } +}; +export default func; +func.tags = ['UpgradeRepo']; +func.skip = skipUpgrade; diff --git a/packages/contracts/deploy/30_upgrade_repo/31b_upgrade_and_reinitialize_repo.ts b/packages/contracts/deploy/30_upgrade_repo/31b_upgrade_and_reinitialize_repo.ts new file mode 100644 index 00000000..640e755a --- /dev/null +++ b/packages/contracts/deploy/30_upgrade_repo/31b_upgrade_and_reinitialize_repo.ts @@ -0,0 +1,58 @@ +import {fetchData, skipUpgrade} from './_common'; +import {PLUGIN_REPO_PERMISSIONS} from '@aragon/osx-commons-sdk'; +import {BytesLike} from 'ethers'; +import {DeployFunction} from 'hardhat-deploy/types'; +import {HardhatRuntimeEnvironment} from 'hardhat/types'; + +/** + * Upgrades the plugin repo to the latest implementation and reinitializes the proxy. + * This script MUST be called if the contract requires reinitialization -- otherwise + * the proxy is left unreinitialized. + * @param {HardhatRuntimeEnvironment} hre + */ +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const {deployer, pluginRepo, latestPluginRepoImplementation, current} = + await fetchData(hre); + + // Define the `_initData` arguments + const initData: BytesLike[] = []; + + // Encode the call to `function initializeFrom(uint8[3] calldata _previousProtocolVersion, bytes calldata _initData)` with `initData`. + const initializeFromCalldata = + latestPluginRepoImplementation.interface.encodeFunctionData( + // Re-initialization will happen through a call to `function initializeFrom(uint8[3] calldata _previousProtocolVersion, bytes calldata _initData)` + // that Aragon will add to the `PluginRepo` contract once it's required. + 'initializeFrom', + [current, initData] + ); + + // Check if deployer has the permission to upgrade the plugin repo + if ( + await pluginRepo.isGranted( + pluginRepo.address, + deployer.address, + PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID, + [] + ) + ) { + // Use `upgradeToAndCall` to reinitialize the new `PluginRepo` implementation after the update. + if (initializeFromCalldata.length > 0) { + await pluginRepo.upgradeToAndCall( + latestPluginRepoImplementation.address, + initializeFromCalldata + ); + } else { + throw Error( + `Initialization data is missing for 'upgradeToAndCall'. Stopping repo upgrade and reinitialization...` + ); + } + } else { + throw Error( + `The new version cannot be published because the deployer ('${deployer.address}') + is lacking the ${PLUGIN_REPO_PERMISSIONS.UPGRADE_REPO_PERMISSION_ID} permission.` + ); + } +}; +export default func; +func.tags = ['UpgradeAndReinitializeRepo']; +func.skip = skipUpgrade; diff --git a/packages/contracts/deploy/30_upgrade_repo/_common.ts b/packages/contracts/deploy/30_upgrade_repo/_common.ts new file mode 100644 index 00000000..f0b1da8b --- /dev/null +++ b/packages/contracts/deploy/30_upgrade_repo/_common.ts @@ -0,0 +1,106 @@ +import {findPluginRepo, getProductionNetworkName} from '../../utils/helpers'; +import { + getLatestNetworkDeployment, + getNetworkNameByAlias, +} from '@aragon/osx-commons-configs'; +import {UnsupportedNetworkError} from '@aragon/osx-commons-sdk'; +import {PluginRepo, PluginRepo__factory} from '@aragon/osx-ethers'; +import {SignerWithAddress} from '@nomiclabs/hardhat-ethers/signers'; +import {HardhatRuntimeEnvironment} from 'hardhat/types'; +import path from 'path'; + +export type SemVer = [number, number, number]; + +type FetchedData = { + deployer: SignerWithAddress; + pluginRepo: PluginRepo; + latestPluginRepoImplementation: PluginRepo; + ensDomain: string; + current: SemVer; + latest: SemVer; +}; + +export async function fetchData( + hre: HardhatRuntimeEnvironment +): Promise { + const [deployer] = await hre.ethers.getSigners(); + const productionNetworkName: string = getProductionNetworkName(hre); + const network = getNetworkNameByAlias(productionNetworkName); + if (network === null) { + throw new UnsupportedNetworkError(productionNetworkName); + } + const networkDeployments = getLatestNetworkDeployment(network); + if (networkDeployments === null) { + throw `Deployments are not available on network ${network}.`; + } + + // Get PluginRepo + const {pluginRepo, ensDomain} = await findPluginRepo(hre); + if (pluginRepo === null) { + throw `PluginRepo '${ensDomain}' does not exist yet.`; + } + + console.log( + `Upgrading plugin repo '${ensDomain}' (${pluginRepo.address})...` + ); + + // Get the latest `PluginRepo` implementation as the upgrade target + const latestPluginRepoImplementation = PluginRepo__factory.connect( + networkDeployments.PluginRepoBase.address, + deployer + ); + + // Get the current OSX protocol version from the current plugin repo implementation + let current: SemVer; + try { + current = await pluginRepo.protocolVersion(); + } catch { + current = [1, 0, 0]; + } + + // Get the OSX protocol version from the latest plugin repo implementation + const latest: SemVer = await latestPluginRepoImplementation.protocolVersion(); + + console.log( + `Upgrading from current protocol version v${current[0]}.${current[1]}.${current[2]} to the latest version v${latest[0]}.${latest[1]}.${latest[2]}.` + ); + + return { + deployer, + pluginRepo, + latestPluginRepoImplementation, + ensDomain, + current, + latest, + }; +} + +/** + * Skips the plugin repo upgrade if the implementation is already up-to-date. + * @param {HardhatRuntimeEnvironment} hre + */ +export const skipUpgrade = async (hre: HardhatRuntimeEnvironment) => { + console.log(`\n🏗️ ${path.basename(__filename)}:`); + + const {ensDomain, pluginRepo, current, latest: target} = await fetchData(hre); + + // Throw an error if attempting to upgrade to an earlier version + if ( + current[0] > target[0] || + current[1] > target[1] || + current[2] > target[2] + ) { + throw `The plugin repo, currently at 'v${current[0]}.${current[1]}.${current[2]}' cannot be upgraded to the earlier version v${target[0]}.${target[1]}.${target[2]}.`; + } + + // Skip if versions are equal + if (JSON.stringify(current) == JSON.stringify(target)) { + console.log( + `PluginRepo '${ensDomain}' (${pluginRepo.address}) has already been upgraded to + the current protocol version v${target[0]}.${target[1]}.${target[2]}. Skipping upgrade...` + ); + return true; + } + + return false; +}; diff --git a/packages/contracts/package.json b/packages/contracts/package.json index e0832a0e..1a6af088 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -14,19 +14,19 @@ "clean": "rimraf ./artifacts ./cache ./coverage ./typechain ./types ./coverage.json && yarn typechain" }, "dependencies": { - "@aragon/osx-commons-contracts": "1.4.0-alpha.3", - "@openzeppelin/contracts": "^4.9.5", - "@openzeppelin/contracts-upgradeable": "^4.9.5" + "@aragon/osx-commons-contracts": "1.4.0-alpha.5", + "@openzeppelin/contracts": "^4.9.6", + "@openzeppelin/contracts-upgradeable": "^4.9.6" }, "devDependencies": { "@aragon/osx-commons-configs": "0.4.0", "@aragon/osx-ethers": "1.4.0-alpha.0", - "@aragon/osx-commons-sdk": "0.0.1-alpha.5", - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/providers": "^5.7.2", + "@aragon/osx-commons-sdk": "0.0.1-alpha.11", + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/providers": "5.7.2", "@nomicfoundation/hardhat-chai-matchers": "^1.0.6", "@nomicfoundation/hardhat-network-helpers": "^1.0.8", "@nomicfoundation/hardhat-toolbox": "^2.0.2", @@ -41,7 +41,7 @@ "chai": "^4.3.7", "cross-env": "^7.0.3", "dotenv": "^16.3.1", - "ethers": "^5.7.2", + "ethers": "5.7.2", "hardhat": "^2.13.1", "hardhat-deploy": "^0.11.26", "hardhat-gas-reporter": "^1.0.9", diff --git a/packages/contracts/src/Admin.sol b/packages/contracts/src/Admin.sol index 4addfd83..7fc65e34 100644 --- a/packages/contracts/src/Admin.sol +++ b/packages/contracts/src/Admin.sol @@ -12,7 +12,7 @@ import {PluginCloneable} from "@aragon/osx-commons-contracts/src/plugin/PluginCl import {IDAO} from "@aragon/osx-commons-contracts/src/dao/IDAO.sol"; /// @title Admin -/// @author Aragon Association - 2022-2023 +/// @author Aragon X - 2022-2023 /// @notice The admin governance plugin giving execution permission on the DAO to a single address. /// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org diff --git a/packages/contracts/src/AdminSetup.sol b/packages/contracts/src/AdminSetup.sol index f8f357c2..7d09c15c 100644 --- a/packages/contracts/src/AdminSetup.sol +++ b/packages/contracts/src/AdminSetup.sol @@ -11,7 +11,7 @@ import {IDAO} from "@aragon/osx-commons-contracts/src/dao/IDAO.sol"; import {Admin} from "./Admin.sol"; /// @title AdminAddressSetup -/// @author Aragon Association - 2022-2023 +/// @author Aragon X - 2022-2023 /// @notice The setup contract of the `Admin` plugin. /// @dev v1.2 (Release 1, Build 2) /// @custom:security-contact sirt@aragon.org diff --git a/packages/contracts/test/10_unit-testing/11_plugin.ts b/packages/contracts/test/10_unit-testing/11_plugin.ts index 8c429ac9..0cf9b5c4 100644 --- a/packages/contracts/test/10_unit-testing/11_plugin.ts +++ b/packages/contracts/test/10_unit-testing/11_plugin.ts @@ -215,7 +215,7 @@ describe(PLUGIN_CONTRACT_NAME, function () { const eventName = plugin.interface.getEvent('ProposalCreated').name; await expect(tx).to.emit(plugin, eventName); - const event = await findEvent(tx, eventName); + const event = findEvent(await tx.wait(), eventName); expect(event.args.proposalId).to.equal(currentExpectedProposalId); expect(event.args.creator).to.equal(alice.address); expect(event.args.metadata).to.equal(dummyMetadata); @@ -293,7 +293,7 @@ describe(PLUGIN_CONTRACT_NAME, function () { const eventName = plugin.interface.getEvent('ProposalCreated').name; await expect(tx).to.emit(plugin, eventName); - const event = await findEvent(tx, eventName); + const event = findEvent(await tx.wait(), eventName); expect(event.args.proposalId).to.equal(nextExpectedProposalId); }); @@ -328,8 +328,8 @@ describe(PLUGIN_CONTRACT_NAME, function () { .connect(alice) .executeProposal(dummyMetadata, dummyActions, allowFailureMap); - const event = await findEventTopicLog( - tx, + const event = findEventTopicLog( + await tx.wait(), dao.interface, dao.interface.getEvent('Executed').name ); @@ -351,8 +351,8 @@ describe(PLUGIN_CONTRACT_NAME, function () { .connect(alice) .executeProposal(dummyMetadata, dummyActions, 0); - const event = await findEventTopicLog( - tx, + const event = findEventTopicLog( + await tx.wait(), dao.interface, dao.interface.getEvent('Executed').name ); @@ -375,10 +375,7 @@ type FixtureResult = { async function fixture(): Promise { const [deployer, alice, bob] = await ethers.getSigners(); - - const dummyMetadata = ethers.utils.hexlify( - ethers.utils.toUtf8Bytes('0x123456789') - ); + const dummyMetadata = '0x12345678'; const dao = await createDaoProxy(deployer, dummyMetadata); const adminPluginImplementation = await new Admin__factory(deployer).deploy(); @@ -395,7 +392,7 @@ async function fixture(): Promise { adminPluginInitdata ); const proxyCreatedEvent1 = await findEvent( - deploymentTx1, + await deploymentTx1.wait(), adminProxyFactory.interface.getEvent('ProxyCreated').name ); const initializedPlugin = Admin__factory.connect( @@ -405,7 +402,7 @@ async function fixture(): Promise { const deploymentTx2 = await adminProxyFactory.deployMinimalProxy([]); const proxyCreatedEvent2 = await findEvent( - deploymentTx2, + await deploymentTx2.wait(), adminProxyFactory.interface.getEvent('ProxyCreated').name ); const uninitializedPlugin = Admin__factory.connect( diff --git a/packages/contracts/test/10_unit-testing/12_plugin-setup.ts b/packages/contracts/test/10_unit-testing/12_plugin-setup.ts index f4e79dfc..97df376a 100644 --- a/packages/contracts/test/10_unit-testing/12_plugin-setup.ts +++ b/packages/contracts/test/10_unit-testing/12_plugin-setup.ts @@ -30,10 +30,7 @@ type FixtureResult = { async function fixture(): Promise { const [deployer, alice, bob] = await ethers.getSigners(); - - const dummyMetadata = ethers.utils.hexlify( - ethers.utils.toUtf8Bytes('0x123456789') - ); + const dummyMetadata = '0x12345678'; const dao = await createDaoProxy(deployer, dummyMetadata); const pluginSetup = await new AdminSetup__factory(deployer).deploy(); diff --git a/packages/contracts/test/20_integration-testing/21_deployment.ts b/packages/contracts/test/20_integration-testing/21_deployment.ts index eb6509e9..cc8c6472 100644 --- a/packages/contracts/test/20_integration-testing/21_deployment.ts +++ b/packages/contracts/test/20_integration-testing/21_deployment.ts @@ -9,7 +9,6 @@ import { PERMISSION_MANAGER_FLAGS, PLUGIN_REPO_PERMISSIONS, UnsupportedNetworkError, - toHex, uploadToIPFS, } from '@aragon/osx-commons-sdk'; import { @@ -82,7 +81,9 @@ describe(`Deployment on network '${productionNetworkName}'`, function () { JSON.stringify(METADATA.build, null, 2) )}`; - expect(results.buildMetadata).to.equal(toHex(buildMetadataURI)); + expect(results.buildMetadata).to.equal( + ethers.utils.hexlify(ethers.utils.toUtf8Bytes(buildMetadataURI)) + ); }); }); }); diff --git a/packages/contracts/test/20_integration-testing/22_setup-processing.ts b/packages/contracts/test/20_integration-testing/22_setup-processing.ts index ec159a88..d98e7ddd 100644 --- a/packages/contracts/test/20_integration-testing/22_setup-processing.ts +++ b/packages/contracts/test/20_integration-testing/22_setup-processing.ts @@ -108,9 +108,7 @@ async function fixture(): Promise { await deployments.fixture(tags); const [deployer, alice, bob] = await ethers.getSigners(); - const dummyMetadata = ethers.utils.hexlify( - ethers.utils.toUtf8Bytes('0x123456789') - ); + const dummyMetadata = '0x12345678'; const dao = await createDaoProxy(deployer, dummyMetadata); const network = getNetworkNameByAlias(productionNetworkName); diff --git a/packages/contracts/test/20_integration-testing/test-helpers.ts b/packages/contracts/test/20_integration-testing/test-helpers.ts index a9bac891..f6c8c166 100644 --- a/packages/contracts/test/20_integration-testing/test-helpers.ts +++ b/packages/contracts/test/20_integration-testing/test-helpers.ts @@ -1,6 +1,5 @@ import {IPlugin, ProxyFactory__factory} from '../../typechain'; import {ProxyCreatedEvent} from '../../typechain/@aragon/osx-commons-contracts/src/utils/deployment/ProxyFactory'; -import {hashHelpers} from '../../utils/helpers'; import { DAO_PERMISSIONS, PLUGIN_SETUP_PROCESSOR_PERMISSIONS, @@ -37,8 +36,8 @@ export async function installPLugin( }); const preparedEvent = - await findEvent( - prepareTx, + findEvent( + await prepareTx.wait(), psp.interface.getEvent('InstallationPrepared').name ); @@ -57,12 +56,17 @@ export async function installPLugin( pluginSetupRef: pluginSetupRef, plugin: plugin, permissions: preparedPermissions, - helpersHash: hashHelpers(preparedEvent.args.preparedSetupData.helpers), + helpersHash: ethers.utils.keccak256( + ethers.utils.defaultAbiCoder.encode( + ['address[]'], + [preparedEvent.args.preparedSetupData.helpers] + ) + ), }); const appliedEvent = - await findEvent( - applyTx, + findEvent( + await applyTx.wait(), psp.interface.getEvent('InstallationApplied').name ); @@ -96,7 +100,7 @@ export async function uninstallPLugin( const preparedEvent = await findEvent( - prepareTx, + await prepareTx.wait(), psp.interface.getEvent('UninstallationPrepared').name ); @@ -117,8 +121,8 @@ export async function uninstallPLugin( }); const appliedEvent = - await findEvent( - applyTx, + findEvent( + await applyTx.wait(), psp.interface.getEvent('UninstallationApplied').name ); @@ -154,8 +158,8 @@ export async function updatePlugin( }, }); const preparedEvent = - await findEvent( - prepareTx, + findEvent( + await prepareTx.wait(), psp.interface.getEvent('UpdatePrepared').name ); @@ -174,13 +178,17 @@ export async function updatePlugin( pluginSetupRef: pluginSetupRefUpdate, initData: preparedEvent.args.initData, permissions: preparedPermissions, - helpersHash: hashHelpers(preparedEvent.args.preparedSetupData.helpers), + helpersHash: ethers.utils.keccak256( + ethers.utils.defaultAbiCoder.encode( + ['address[]'], + [preparedEvent.args.preparedSetupData.helpers] + ) + ), }); - const appliedEvent = - await findEvent( - applyTx, - psp.interface.getEvent('UpdateApplied').name - ); + const appliedEvent = findEvent( + await applyTx.wait(), + psp.interface.getEvent('UpdateApplied').name + ); return {prepareTx, applyTx, preparedEvent, appliedEvent}; } @@ -237,8 +245,8 @@ export async function createDaoProxy( ] ); const tx = await daoProxyFactory.deployUUPSProxy(daoInitData); - const event = await findEvent( - tx, + const event = findEvent( + await tx.wait(), daoProxyFactory.interface.getEvent('ProxyCreated').name ); const dao = DAO__factory.connect(event.args.proxy, deployer); diff --git a/packages/contracts/utils/helpers.ts b/packages/contracts/utils/helpers.ts index 6b13eb8d..d5a74646 100644 --- a/packages/contracts/utils/helpers.ts +++ b/packages/contracts/utils/helpers.ts @@ -4,11 +4,7 @@ import { getLatestNetworkDeployment, getNetworkNameByAlias, } from '@aragon/osx-commons-configs'; -import { - UnsupportedNetworkError, - VersionTag, - findEvent, -} from '@aragon/osx-commons-sdk'; +import {UnsupportedNetworkError, findEvent} from '@aragon/osx-commons-sdk'; import { DAO, DAO__factory, @@ -21,8 +17,7 @@ import { } from '@aragon/osx-ethers'; import {setBalance} from '@nomicfoundation/hardhat-network-helpers'; import {SignerWithAddress} from '@nomiclabs/hardhat-ethers/signers'; -import {BigNumber, ContractTransaction} from 'ethers'; -import {LogDescription, defaultAbiCoder, keccak256} from 'ethers/lib/utils'; +import {BigNumber, ContractTransaction, utils} from 'ethers'; import {ethers} from 'hardhat'; import {HardhatRuntimeEnvironment} from 'hardhat/types'; @@ -168,7 +163,7 @@ export async function impersonatedManagementDaoSigner( } export type EventWithBlockNumber = { - event: LogDescription; + event: utils.LogDescription; blockNumber: number; }; @@ -192,12 +187,8 @@ export async function getPastVersionCreatedEvents( }); } -export function hashHelpers(helpers: string[]) { - return keccak256(defaultAbiCoder.encode(['address[]'], [helpers])); -} - export type LatestVersion = { - versionTag: VersionTag; + versionTag: PluginRepo.VersionStruct; pluginSetupContract: string; releaseMetadata: string; buildMetadata: string; @@ -226,12 +217,11 @@ export async function createVersion( await tx.wait(); - const versionCreatedEvent = - await findEvent( - tx, - pluginRepo.interface.events['VersionCreated(uint8,uint16,address,bytes)'] - .name - ); + const versionCreatedEvent = findEvent( + await tx.wait(), + pluginRepo.interface.events['VersionCreated(uint8,uint16,address,bytes)'] + .name + ); // Check if versionCreatedEvent is not undefined if (versionCreatedEvent) { diff --git a/packages/contracts/yarn.lock b/packages/contracts/yarn.lock index 5b5ad769..a3081915 100644 --- a/packages/contracts/yarn.lock +++ b/packages/contracts/yarn.lock @@ -2,47 +2,34 @@ # yarn lockfile v1 -"@aragon/osx-commons-configs@0.4.0": +"@aragon/osx-commons-configs@0.4.0", "@aragon/osx-commons-configs@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@aragon/osx-commons-configs/-/osx-commons-configs-0.4.0.tgz#5b6ae025de1ccf7f9a135bfbcb0aa822c774acf9" integrity sha512-/2wIQCbv/spMRdOjRXK0RrXG1TK5aMcbD73RvMgMwQwSrKcA1dCntUuSxmTm2W8eEtOzs8E1VPjqZk0cXL4SSQ== dependencies: tslib "^2.6.2" -"@aragon/osx-commons-contracts@1.4.0-alpha.3": - version "1.4.0-alpha.3" - resolved "https://registry.yarnpkg.com/@aragon/osx-commons-contracts/-/osx-commons-contracts-1.4.0-alpha.3.tgz#a199720e225ea1da07303d8609948bb4a926508b" - integrity sha512-9ygB2QhroeMetRQJUNvvVKAdOxN3Yhxx+yqz1F5Euf4U3VlPtU9Ick9hlDrwTPuWd5ITufmWEiDAo5zDy1A99A== +"@aragon/osx-commons-contracts@1.4.0-alpha.5": + version "1.4.0-alpha.5" + resolved "https://registry.yarnpkg.com/@aragon/osx-commons-contracts/-/osx-commons-contracts-1.4.0-alpha.5.tgz#37a28085677c21216628ba0a05f5fe09489eb71c" + integrity sha512-F2JWWxmUNmiJsaXcTDyd6F2GUIgnc313vvWTp/cSmSVkccT2pfMleWqxIi4LIodX3ueFUYfE02rLj8Gjp1jljA== dependencies: - "@openzeppelin/contracts" "4.9.5" - "@openzeppelin/contracts-upgradeable" "4.9.5" + "@openzeppelin/contracts" "4.9.6" + "@openzeppelin/contracts-upgradeable" "4.9.6" -"@aragon/osx-commons-sdk@0.0.1-alpha.5": - version "0.0.1-alpha.5" - resolved "https://registry.yarnpkg.com/@aragon/osx-commons-sdk/-/osx-commons-sdk-0.0.1-alpha.5.tgz#9808e7c6a441af6459f96016abe07812706d97bf" - integrity sha512-GyErC61lMckZyG17BZPgPWMkY3phZGdzZHMP17mUyE6vFhth9at5HKhNBi7bWB0eNkcM9RrQksIWHjmSHbW3ug== +"@aragon/osx-commons-sdk@0.0.1-alpha.11": + version "0.0.1-alpha.11" + resolved "https://registry.yarnpkg.com/@aragon/osx-commons-sdk/-/osx-commons-sdk-0.0.1-alpha.11.tgz#1e3e39aac3351b6649921a5e373a5146b86b2c92" + integrity sha512-/FgTLnS73QY0JxZYQlHwpd2ZuMPkPKdIlci9T4jgH9E4Eyyxh6GX7fJK+HekCcf6oMS5tTZ/Cb3sVyyzoO95iw== dependencies: - "@aragon/osx-ethers" "^1.3.0-rc0.4" - "@aragon/osx-ethers-v1.0.0" "npm:@aragon/osx-ethers@1.2.1" - "@aragon/sdk-ipfs" "^1.1.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/contracts" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/providers" "^5.7.2" - "@ethersproject/wallet" "^5.7.0" - graphql "^16.5.0" - graphql-request "^4.3.0" + "@aragon/osx-commons-configs" "^0.4.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/providers" "5.7.2" ipfs-http-client "^51.0.0" - yup "^1.2.0" - -"@aragon/osx-ethers-v1.0.0@npm:@aragon/osx-ethers@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@aragon/osx-ethers/-/osx-ethers-1.2.1.tgz#a442048137153ed5a3ca4eff3f3927b45a5134b5" - integrity sha512-3Fscq8C9elIktiI6OT7fR5iaAvim+ghU6IUvZF3P/phvWm9roNp/GXAROhA/Vx41NQxeqmfXokgFo6KOWt4drA== - dependencies: - ethers "^5.6.2" "@aragon/osx-ethers@1.4.0-alpha.0": version "1.4.0-alpha.0" @@ -51,23 +38,6 @@ dependencies: ethers "^5.6.2" -"@aragon/osx-ethers@^1.3.0-rc0.4": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@aragon/osx-ethers/-/osx-ethers-1.3.1.tgz#d72decea14cc5c11c55ad6654e97b3380429c1c9" - integrity sha512-6APDAasHrIVmJ0SxUSmWCxusVe46OF3eGZGp8MVD3j4BDJjJ+FIrrjN9ePkTpPja3X8GL6PD00l1WIzW2GZQMQ== - dependencies: - ethers "^5.6.2" - -"@aragon/sdk-ipfs@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@aragon/sdk-ipfs/-/sdk-ipfs-1.1.0.tgz#178ee5ce840ce40b44ba0345dd5068e1b5608f9d" - integrity sha512-2uAh/QPcmaita4AfHYV93lESzAhrmGEZ6CL7pvOH86HTkU6j7LnePvD1ly+x0hxRznTb+zgVgSPPKUn0ArPycw== - dependencies: - "@web-std/fetch" "^4.1.0" - "@web-std/file" "^3.0.2" - "@web-std/form-data" "^3.0.2" - isomorphic-unfetch "^3.1.0" - "@aws-crypto/sha256-js@1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" @@ -853,15 +823,15 @@ table "^6.8.0" undici "^5.14.0" -"@openzeppelin/contracts-upgradeable@4.9.5", "@openzeppelin/contracts-upgradeable@^4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.5.tgz#572b5da102fc9be1d73f34968e0ca56765969812" - integrity sha512-f7L1//4sLlflAN7fVzJLoRedrf5Na3Oal5PZfIq55NFcVZ90EpV1q5xOvL4lFvg3MNICSDr2hH0JUBxwlxcoPg== +"@openzeppelin/contracts-upgradeable@4.9.6", "@openzeppelin/contracts-upgradeable@^4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.6.tgz#38b21708a719da647de4bb0e4802ee235a0d24df" + integrity sha512-m4iHazOsOCv1DgM7eD7GupTJ+NFVujRZt1wzddDPSVGpWdKq1SKkla5htKG7+IS4d2XOCtzkUNwRZ7Vq5aEUMA== -"@openzeppelin/contracts@4.9.5", "@openzeppelin/contracts@^4.9.5": - version "4.9.5" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.5.tgz#1eed23d4844c861a1835b5d33507c1017fa98de8" - integrity sha512-ZK+W5mVhRppff9BE6YdR8CC52C8zAvsVAiWhEtQ5+oNxFE6h1WdeWo+FJSF8KKvtxxVYZ7MTP/5KoVpAU3aSWg== +"@openzeppelin/contracts@4.9.6", "@openzeppelin/contracts@^4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.6.tgz#2a880a24eb19b4f8b25adc2a5095f2aa27f39677" + integrity sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA== "@openzeppelin/defender-base-client@^1.46.0": version "1.54.1" @@ -1261,66 +1231,6 @@ dependencies: "@types/node" "*" -"@web-std/blob@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@web-std/blob/-/blob-3.0.5.tgz#391e652dd3cc370dbb32c828368a3022b4d55c9c" - integrity sha512-Lm03qr0eT3PoLBuhkvFBLf0EFkAsNz/G/AYCzpOdi483aFaVX86b4iQs0OHhzHJfN5C15q17UtDbyABjlzM96A== - dependencies: - "@web-std/stream" "1.0.0" - web-encoding "1.1.5" - -"@web-std/fetch@^4.1.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@web-std/fetch/-/fetch-4.2.1.tgz#692c5545787081217fce3c024708fa8979c21f9c" - integrity sha512-M6sgHDgKegcjuVsq8J6jb/4XvhPGui8uwp3EIoADGXUnBl9vKzKLk9H9iFzrPJ6fSV6zZzFWXPyziBJp9hxzBA== - dependencies: - "@web-std/blob" "^3.0.3" - "@web-std/file" "^3.0.2" - "@web-std/form-data" "^3.0.2" - "@web-std/stream" "^1.0.1" - "@web3-storage/multipart-parser" "^1.0.0" - abort-controller "^3.0.0" - data-uri-to-buffer "^3.0.1" - mrmime "^1.0.0" - -"@web-std/file@^3.0.2": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@web-std/file/-/file-3.0.3.tgz#a29b9164d34155a126d1ab2af5e5867e83c8b098" - integrity sha512-X7YYyvEERBbaDfJeC9lBKC5Q5lIEWYCP1SNftJNwNH/VbFhdHm+3neKOQP+kWEYJmosbDFq+NEUG7+XIvet/Jw== - dependencies: - "@web-std/blob" "^3.0.3" - -"@web-std/form-data@^3.0.2": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@web-std/form-data/-/form-data-3.1.0.tgz#573b40f6296e8bdba31f1bbf2db398f104ef4831" - integrity sha512-WkOrB8rnc2hEK2iVhDl9TFiPMptmxJA1HaIzSdc2/qk3XS4Ny4cCt6/V36U3XmoYKz0Md2YyK2uOZecoZWPAcA== - dependencies: - web-encoding "1.1.5" - -"@web-std/stream@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@web-std/stream/-/stream-1.0.0.tgz#01066f40f536e4329d9b696dc29872f3a14b93c1" - integrity sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ== - dependencies: - web-streams-polyfill "^3.1.1" - -"@web-std/stream@^1.0.1": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@web-std/stream/-/stream-1.0.3.tgz#a1df4d4612990d3607f77ad17d0338c7960bbe2e" - integrity sha512-5MIngxWyq4rQiGoDAC2WhjLuDraW8+ff2LD2et4NRY933K3gL8CHlUXrh8ZZ3dC9A9Xaub8c9sl5exOJE58D9Q== - dependencies: - web-streams-polyfill "^3.1.1" - -"@web3-storage/multipart-parser@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" - integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== - -"@zxing/text-encoding@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" - integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1597,11 +1507,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -1809,7 +1714,7 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4: +call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== @@ -2116,13 +2021,6 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - cross-spawn@^7.0.0, cross-spawn@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2137,11 +2035,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== -data-uri-to-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - data-view-buffer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" @@ -2593,7 +2486,7 @@ ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.4: ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethers@^5.6.2, ethers@^5.7.0, ethers@^5.7.1, ethers@^5.7.2: +ethers@5.7.2, ethers@^5.6.2, ethers@^5.7.0, ethers@^5.7.1, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -2658,11 +2551,6 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -extract-files@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" - integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== - fast-base64-decode@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" @@ -2776,15 +2664,6 @@ form-data@^2.2.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -3064,20 +2943,6 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphql-request@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-4.3.0.tgz#b934e08fcae764aa2cdc697d3c821f046cb5dbf2" - integrity sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow== - dependencies: - cross-fetch "^3.1.5" - extract-files "^9.0.0" - form-data "^3.0.0" - -graphql@^16.5.0: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - handlebars@^4.0.1: version "4.7.8" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" @@ -3525,14 +3390,6 @@ ipfs-utils@^8.1.2, ipfs-utils@^8.1.4: react-native-fetch-api "^2.0.0" stream-to-it "^0.2.2" -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" @@ -3614,13 +3471,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -3698,13 +3548,6 @@ is-typed-array@^1.1.13: dependencies: which-typed-array "^1.1.14" -is-typed-array@^1.1.3: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" @@ -3742,7 +3585,7 @@ iso-url@^1.1.5: resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== -isomorphic-unfetch@^3.0.0, isomorphic-unfetch@^3.1.0: +isomorphic-unfetch@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== @@ -4204,11 +4047,6 @@ module-error@^1.0.1, module-error@^1.0.2: resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -4294,7 +4132,7 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12: +node-fetch@^2.6.0, node-fetch@^2.6.1: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -4557,11 +4395,6 @@ proper-lockfile@^4.1.1: retry "^0.12.0" signal-exit "^3.0.2" -property-expr@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8" - integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== - protobufjs@^6.10.2: version "6.11.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" @@ -5314,11 +5147,6 @@ timeout-abort-controller@^1.1.1: abort-controller "^3.0.0" retimer "^2.0.0" -tiny-case@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03" - integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q== - tmp-promise@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" @@ -5352,11 +5180,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -toposort@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -5443,11 +5266,6 @@ type-fest@^0.7.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - typechain@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" @@ -5606,17 +5424,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.3: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -5632,20 +5439,6 @@ varint@^6.0.0: resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== -web-encoding@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -web-streams-polyfill@^3.1.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" - integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== - web3-utils@^1.3.6: version "1.10.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.3.tgz#f1db99c82549c7d9f8348f04ffe4e0188b449714" @@ -5684,17 +5477,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" @@ -5834,16 +5616,6 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -yup@^1.2.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.3.3.tgz#d2f6020ad1679754c5f8178a29243d5447dead04" - integrity sha512-v8QwZSsHH2K3/G9WSkp6mZKO+hugKT1EmnMqLNUcfu51HU9MDyhlETT/JgtzprnrnQHPWsjc6MUDMBp/l9fNnw== - dependencies: - property-expr "^2.0.5" - tiny-case "^1.0.3" - toposort "^2.0.2" - type-fest "^2.19.0" - zksync-web3@^0.14.3: version "0.14.4" resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.14.4.tgz#0b70a7e1a9d45cc57c0971736079185746d46b1f" diff --git a/packages/subgraph/manifest/subgraph.placeholder.yaml b/packages/subgraph/manifest/subgraph.placeholder.yaml index 1bfd2665..93d0c7fa 100644 --- a/packages/subgraph/manifest/subgraph.placeholder.yaml +++ b/packages/subgraph/manifest/subgraph.placeholder.yaml @@ -1,6 +1,6 @@ {{info}} specVersion: 0.0.2 -description: The Subgraph of the Admin Plugin +description: The schema for the Admin plugin subgraph repository: https://github.com/aragon/admin-plugin schema: file: ./schema.graphql