diff --git a/.github/workflows/artifacts-publish.yml b/.github/workflows/artifacts-publish.yml new file mode 100644 index 00000000..44ab39f0 --- /dev/null +++ b/.github/workflows/artifacts-publish.yml @@ -0,0 +1,21 @@ +name: Artifacts Publish + +on: + push: + tags: + - '*-artifacts' + +jobs: + check_tag: + uses: ./.github/workflows/reusable-check-tag.yml + with: + ref: ${{ github.ref }} + + publish: + needs: [check_tag] + uses: ./.github/workflows/reusable-publish.yml + with: + package: ${{ needs.check_tag.outputs.package }} + version: ${{ needs.check_tag.outputs.version }} + secrets: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 49b59e11..b9ff0afd 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ coverage .coverage_contracts # production -artifacts build cache dist diff --git a/.prettierignore b/.prettierignore index 6c05a035..2d531b49 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,7 +2,6 @@ .coverage_artifacts .coverage_cache .coverage_contracts -artifacts build cache coverage diff --git a/artifacts/.env.example b/artifacts/.env.example new file mode 100644 index 00000000..8131642a --- /dev/null +++ b/artifacts/.env.example @@ -0,0 +1 @@ +ALCHEMY_API_KEY=your_alchemy_api_key diff --git a/artifacts/CHANGELOG.md b/artifacts/CHANGELOG.md new file mode 100644 index 00000000..770dde12 --- /dev/null +++ b/artifacts/CHANGELOG.md @@ -0,0 +1,16 @@ +# Aragon OSx Commons Artifacts + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v0.1.0-alpha.1 + +## Added + +- Add osx's contracts artifacts of version 1.4.0-alpha.1. +- Add admin plugin's contracts artifacts of version 1.2-alpha.1. +- Add multisig plugin's contracts artifacts of version 1.3-alpha.1. +- Add token voting plugin's contracts artifacts of version 1.3-alpha.1. +- Add staged proposal processor plugin's contracts artifacts of version 1.0.0-alpha.1. diff --git a/artifacts/README.md b/artifacts/README.md new file mode 100644 index 00000000..2f7f4eaf --- /dev/null +++ b/artifacts/README.md @@ -0,0 +1,13 @@ +# @aragon/osx-dev-artifacts + +## Installation + + ```bash + npm install @aragon/osx-dev-artifacts + ## or + yarn add @aragon/osx-dev-artifacts + ``` + +## Usage + +Import the needed abis from the package. diff --git a/artifacts/generateAbis.sh b/artifacts/generateAbis.sh new file mode 100644 index 00000000..ddfbebb5 --- /dev/null +++ b/artifacts/generateAbis.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +source .env + +if [ -z "$ALCHEMY_API_KEY" ] +then + echo "ALCHEMY_API_KEY is not set on the .env file, exiting..." + exit -1 +else + export ALCHEMY_API_KEY=$ALCHEMY_API_KEY +fi + + +current_dir=$(pwd) +CLONE_DIR="temp_dir" + +rm -rf $CLONE_DIR +mkdir -p $CLONE_DIR +cd $CLONE_DIR + +# The format is the following: +# repoUrl = branchname&artifactsDirectory&projectType&contractsDirectory + +REPOS=$(cat <=16" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + } + } +} diff --git a/artifacts/package.json b/artifacts/package.json new file mode 100644 index 00000000..294d44c9 --- /dev/null +++ b/artifacts/package.json @@ -0,0 +1,26 @@ +{ + "name": "@aragon/osx-dev-artifacts", + "author": "Aragon X", + "version": "0.1.0-alpha.1", + "license": "AGPL-3.0-or-later", + "description": "The Aragon OSx Solidity contracts ABIs", + "typings": "dist/index.d.ts", + "main": "dist/index.js", + "files": [ + "dist" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "build": "tsc", + "generate": "sh generateAbis.sh" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0 || ^18.0.0" + }, + "devDependencies": { + "typescript": "^5.5.4", + "@wagmi/cli": "^2.1.15" + } +} diff --git a/artifacts/src/abis/admin-plugin-abis.ts b/artifacts/src/abis/admin-plugin-abis.ts new file mode 100644 index 00000000..43d9b109 --- /dev/null +++ b/artifacts/src/abis/admin-plugin-abis.ts @@ -0,0 +1,394 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Admin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const adminAbi = [ + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersRemoved', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'definingContract', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'MembershipContractAnnounced', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'startDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + {name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false}, + {name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalExecuted', + }, + { + type: 'function', + inputs: [], + name: 'EXECUTE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + name: 'executeProposal', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_dao', internalType: 'contract IDAO', type: 'address'}], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_account', internalType: 'address', type: 'address'}], + name: 'isMember', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [ + {name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8'}, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_forwarder', internalType: 'address', type: 'address'}], + name: 'setForwarder', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'trustedForwarder', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AdminSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const adminSetupAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [{name: 'admin', internalType: 'address', type: 'address'}], + name: 'AdminAddressInvalid', + }, + {type: 'error', inputs: [], name: 'NonUpgradeablePlugin'}, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'prepareInstallation', + outputs: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_fromBuild', internalType: 'uint16', type: 'uint16'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: '', internalType: 'bytes', type: 'bytes'}, + { + name: '', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; diff --git a/artifacts/src/abis/index.ts b/artifacts/src/abis/index.ts new file mode 100644 index 00000000..9fe29e2f --- /dev/null +++ b/artifacts/src/abis/index.ts @@ -0,0 +1,5 @@ +export * from './admin-plugin-abis'; +export * from './multisig-plugin-abis'; +export * from './token-voting-plugin-abis'; +export * from './staged-proposal-processor-plugin-abis'; +export * from './osx-abis'; diff --git a/artifacts/src/abis/multisig-plugin-abis.ts b/artifacts/src/abis/multisig-plugin-abis.ts new file mode 100644 index 00000000..5f466eec --- /dev/null +++ b/artifacts/src/abis/multisig-plugin-abis.ts @@ -0,0 +1,837 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IMultisig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iMultisigAbi = [ + { + type: 'function', + inputs: [{name: '_members', internalType: 'address[]', type: 'address[]'}], + name: 'addAddresses', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_tryExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + ], + name: 'canApprove', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'canExecute', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + ], + name: 'hasApproved', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_members', internalType: 'address[]', type: 'address[]'}], + name: 'removeAddresses', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Multisig +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const multisigAbi = [ + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint16', type: 'uint16'}, + {name: 'actual', internalType: 'uint256', type: 'uint256'}, + ], + name: 'AddresslistLengthOutOfBounds', + }, + { + type: 'error', + inputs: [ + {name: 'proposalId', internalType: 'uint256', type: 'uint256'}, + {name: 'sender', internalType: 'address', type: 'address'}, + ], + name: 'ApprovalCastForbidden', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint64', type: 'uint64'}, + {name: 'actual', internalType: 'uint64', type: 'uint64'}, + ], + name: 'DateOutOfBounds', + }, + { + type: 'error', + inputs: [{name: 'member', internalType: 'address', type: 'address'}], + name: 'InvalidAddresslistUpdate', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint16', type: 'uint16'}, + {name: 'actual', internalType: 'uint16', type: 'uint16'}, + ], + name: 'MinApprovalsOutOfBounds', + }, + { + type: 'error', + inputs: [{name: 'sender', internalType: 'address', type: 'address'}], + name: 'ProposalCreationForbidden', + }, + { + type: 'error', + inputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'ProposalExecutionForbidden', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'approver', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Approved', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersRemoved', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'definingContract', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'MembershipContractAnnounced', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'onlyListed', internalType: 'bool', type: 'bool', indexed: false}, + { + name: 'minApprovals', + internalType: 'uint16', + type: 'uint16', + indexed: true, + }, + ], + name: 'MultisigSettingsUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'startDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + {name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false}, + {name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'CREATE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_MULTISIG_SETTINGS_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_members', internalType: 'address[]', type: 'address[]'}], + name: 'addAddresses', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'addresslistLength', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_blockNumber', internalType: 'uint256', type: 'uint256'}], + name: 'addresslistLengthAtBlock', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_tryExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'approve', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + ], + name: 'canApprove', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'canExecute', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + {name: '_approveProposal', internalType: 'bool', type: 'bool'}, + {name: '_tryExecution', internalType: 'bool', type: 'bool'}, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'getProposal', + outputs: [ + {name: 'executed', internalType: 'bool', type: 'bool'}, + {name: 'approvals', internalType: 'uint16', type: 'uint16'}, + { + name: 'parameters', + internalType: 'struct Multisig.ProposalParameters', + type: 'tuple', + components: [ + {name: 'minApprovals', internalType: 'uint16', type: 'uint16'}, + {name: 'snapshotBlock', internalType: 'uint64', type: 'uint64'}, + {name: 'startDate', internalType: 'uint64', type: 'uint64'}, + {name: 'endDate', internalType: 'uint64', type: 'uint64'}, + ], + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: 'allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + ], + name: 'hasApproved', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + {name: '_members', internalType: 'address[]', type: 'address[]'}, + { + name: '_multisigSettings', + internalType: 'struct Multisig.MultisigSettings', + type: 'tuple', + components: [ + {name: 'onlyListed', internalType: 'bool', type: 'bool'}, + {name: 'minApprovals', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_account', internalType: 'address', type: 'address'}], + name: 'isListed', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_account', internalType: 'address', type: 'address'}, + {name: '_blockNumber', internalType: 'uint256', type: 'uint256'}, + ], + name: 'isListedAtBlock', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_account', internalType: 'address', type: 'address'}], + name: 'isMember', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'lastMultisigSettingsChange', + outputs: [{name: '', internalType: 'uint64', type: 'uint64'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'multisigSettings', + outputs: [ + {name: 'onlyListed', internalType: 'bool', type: 'bool'}, + {name: 'minApprovals', internalType: 'uint16', type: 'uint16'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [ + {name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8'}, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_members', internalType: 'address[]', type: 'address[]'}], + name: 'removeAddresses', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_forwarder', internalType: 'address', type: 'address'}], + name: 'setForwarder', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'trustedForwarder', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_multisigSettings', + internalType: 'struct Multisig.MultisigSettings', + type: 'tuple', + components: [ + {name: 'onlyListed', internalType: 'bool', type: 'bool'}, + {name: 'minApprovals', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + name: 'updateMultisigSettings', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MultisigCondition +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const multisigConditionAbi = [ + { + type: 'constructor', + inputs: [{name: '_multisig', internalType: 'address', type: 'address'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isGranted', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MultisigSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const multisigSetupAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [ + {name: 'fromBuild', internalType: 'uint16', type: 'uint16'}, + {name: 'thisBuild', internalType: 'uint16', type: 'uint16'}, + ], + name: 'InvalidUpdatePath', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'prepareInstallation', + outputs: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_currentBuild', internalType: 'uint16', type: 'uint16'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: 'initData', internalType: 'bytes', type: 'bytes'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; diff --git a/artifacts/src/abis/osx-abis.ts b/artifacts/src/abis/osx-abis.ts new file mode 100644 index 00000000..4b20064e --- /dev/null +++ b/artifacts/src/abis/osx-abis.ts @@ -0,0 +1,3362 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CallbackHandler +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const callbackHandlerAbi = [ + { + type: 'error', + inputs: [ + {name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4'}, + {name: 'magicNumber', internalType: 'bytes4', type: 'bytes4'}, + ], + name: 'UnknownCallback', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + {name: 'sig', internalType: 'bytes4', type: 'bytes4', indexed: true}, + {name: 'data', internalType: 'bytes', type: 'bytes', indexed: false}, + ], + name: 'CallbackReceived', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DAO +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [{name: 'index', internalType: 'uint256', type: 'uint256'}], + name: 'ActionFailed', + }, + {type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere'}, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionInterfaceNotSupported', + }, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionNotAContract', + }, + {type: 'error', inputs: [], name: 'FunctionRemoved'}, + {type: 'error', inputs: [], name: 'GrantWithConditionNotSupported'}, + {type: 'error', inputs: [], name: 'InsufficientGas'}, + { + type: 'error', + inputs: [ + {name: 'expected', internalType: 'uint256', type: 'uint256'}, + {name: 'actual', internalType: 'uint256', type: 'uint256'}, + ], + name: 'NativeTokenDepositAmountMismatch', + }, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: 'currentCondition', internalType: 'address', type: 'address'}, + {name: 'newCondition', internalType: 'address', type: 'address'}, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + {type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed'}, + { + type: 'error', + inputs: [ + {name: 'protocolVersion', internalType: 'uint8[3]', type: 'uint8[3]'}, + ], + name: 'ProtocolVersionUpgradeNotSupported', + }, + {type: 'error', inputs: [], name: 'ReentrantCall'}, + {type: 'error', inputs: [], name: 'TooManyActions'}, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'Unauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4'}, + {name: 'magicNumber', internalType: 'bytes4', type: 'bytes4'}, + ], + name: 'UnknownCallback', + }, + {type: 'error', inputs: [], name: 'ZeroAmount'}, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + {name: 'sig', internalType: 'bytes4', type: 'bytes4', indexed: true}, + {name: 'data', internalType: 'bytes', type: 'bytes', indexed: false}, + ], + name: 'CallbackReceived', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'sender', internalType: 'address', type: 'address', indexed: true}, + {name: 'token', internalType: 'address', type: 'address', indexed: true}, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: '_reference', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'Deposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'actor', internalType: 'address', type: 'address', indexed: true}, + { + name: 'callId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'failureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'execResults', + internalType: 'bytes[]', + type: 'bytes[]', + indexed: false, + }, + ], + name: 'Executed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + { + name: 'condition', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false}, + ], + name: 'MetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'sender', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'amount', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'NativeTokenDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'daoURI', internalType: 'string', type: 'string', indexed: false}, + ], + name: 'NewURI', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'Revoked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'interfaceId', + internalType: 'bytes4', + type: 'bytes4', + indexed: false, + }, + { + name: 'callbackSelector', + internalType: 'bytes4', + type: 'bytes4', + indexed: false, + }, + { + name: 'magicNumber', + internalType: 'bytes4', + type: 'bytes4', + indexed: false, + }, + ], + name: 'StandardCallbackRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'forwarder', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'TrustedForwarderSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + {type: 'fallback', stateMutability: 'nonpayable'}, + { + type: 'function', + inputs: [], + name: 'EXECUTE_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'REGISTER_STANDARD_CALLBACK_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'SET_METADATA_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'SET_TRUSTED_FORWARDER_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_DAO_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'VALIDATE_SIGNATURE_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'daoURI', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_token', internalType: 'address', type: 'address'}, + {name: '_amount', internalType: 'uint256', type: 'uint256'}, + {name: '_reference', internalType: 'string', type: 'string'}, + ], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + {name: '_callId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + name: 'execute', + outputs: [ + {name: 'execResults', internalType: 'bytes[]', type: 'bytes[]'}, + {name: 'failureMap', internalType: 'uint256', type: 'uint256'}, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'getTrustedForwarder', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'grant', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'grantWithCondition', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'hasPermission', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + {name: '_initialOwner', internalType: 'address', type: 'address'}, + {name: '_trustedForwarder', internalType: 'address', type: 'address'}, + {name: 'daoURI_', internalType: 'string', type: 'string'}, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: '_previousProtocolVersion', + internalType: 'uint8[3]', + type: 'uint8[3]', + }, + {name: '_initData', internalType: 'bytes', type: 'bytes'}, + ], + name: 'initializeFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isGranted', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_hash', internalType: 'bytes32', type: 'bytes32'}, + {name: '_signature', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isValidSignature', + outputs: [{name: '', internalType: 'bytes4', type: 'bytes4'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}, + {name: '_callbackSelector', internalType: 'bytes4', type: 'bytes4'}, + {name: '_magicNumber', internalType: 'bytes4', type: 'bytes4'}, + ], + name: 'registerStandardCallback', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'revoke', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'newDaoURI', internalType: 'string', type: 'string'}], + name: 'setDaoURI', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_metadata', internalType: 'bytes', type: 'bytes'}], + name: 'setMetadata', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '', internalType: 'address', type: 'address'}], + name: 'setSignatureValidator', + outputs: [], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + {name: '_newTrustedForwarder', internalType: 'address', type: 'address'}, + ], + name: 'setTrustedForwarder', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, + {type: 'receive', stateMutability: 'payable'}, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DAOFactory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoFactoryAbi = [ + { + type: 'constructor', + inputs: [ + { + name: '_registry', + internalType: 'contract DAORegistry', + type: 'address', + }, + { + name: '_pluginSetupProcessor', + internalType: 'contract PluginSetupProcessor', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + }, + {type: 'error', inputs: [], name: 'NoPluginProvided'}, + { + type: 'function', + inputs: [ + { + name: '_daoSettings', + internalType: 'struct DAOFactory.DAOSettings', + type: 'tuple', + components: [ + {name: 'trustedForwarder', internalType: 'address', type: 'address'}, + {name: 'daoURI', internalType: 'string', type: 'string'}, + {name: 'subdomain', internalType: 'string', type: 'string'}, + {name: 'metadata', internalType: 'bytes', type: 'bytes'}, + ], + }, + { + name: '_pluginSettings', + internalType: 'struct DAOFactory.PluginSettings[]', + type: 'tuple[]', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'createDao', + outputs: [ + {name: 'createdDao', internalType: 'contract DAO', type: 'address'}, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'daoBase', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'daoRegistry', + outputs: [ + {name: '', internalType: 'contract DAORegistry', type: 'address'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginSetupProcessor', + outputs: [ + { + name: '', + internalType: 'contract PluginSetupProcessor', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DAORegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoRegistryAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractAlreadyRegistered', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractERC165SupportInvalid', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractInterfaceInvalid', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [{name: 'subdomain', internalType: 'string', type: 'string'}], + name: 'InvalidDaoSubdomain', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'subdomain', + internalType: 'string', + type: 'string', + indexed: false, + }, + ], + name: 'DAORegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'REGISTER_DAO_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRY_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '', internalType: 'address', type: 'address'}], + name: 'entries', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_managingDao', internalType: 'contract IDAO', type: 'address'}, + { + name: '_subdomainRegistrar', + internalType: 'contract ENSSubdomainRegistrar', + type: 'address', + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'dao', internalType: 'contract IDAO', type: 'address'}, + {name: 'creator', internalType: 'address', type: 'address'}, + {name: 'subdomain', internalType: 'string', type: 'string'}, + ], + name: 'register', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'subdomainRegistrar', + outputs: [ + { + name: '', + internalType: 'contract ENSSubdomainRegistrar', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetInterfaceId', + outputs: [{name: '', internalType: 'bytes4', type: 'bytes4'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ENSSubdomainRegistrar +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ensSubdomainRegistrarAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [ + {name: 'subnode', internalType: 'bytes32', type: 'bytes32'}, + {name: 'nodeOwner', internalType: 'address', type: 'address'}, + ], + name: 'AlreadyRegistered', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'node', internalType: 'bytes32', type: 'bytes32'}, + {name: 'resolver', internalType: 'address', type: 'address'}, + ], + name: 'InvalidResolver', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'REGISTER_ENS_SUBDOMAIN_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRAR_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'ens', + outputs: [{name: '', internalType: 'contract ENS', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_managingDao', internalType: 'contract IDAO', type: 'address'}, + {name: '_ens', internalType: 'contract ENS', type: 'address'}, + {name: '_node', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'node', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_label', internalType: 'bytes32', type: 'bytes32'}, + {name: '_targetAddress', internalType: 'address', type: 'address'}, + ], + name: 'registerSubnode', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'resolver', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_resolver', internalType: 'address', type: 'address'}], + name: 'setDefaultResolver', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IEIP4824 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ieip4824Abi = [ + { + type: 'function', + inputs: [], + name: 'daoURI', + outputs: [{name: '_daoURI', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPluginRepo +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPluginRepoAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'release', internalType: 'uint8', type: 'uint8', indexed: false}, + { + name: 'releaseMetadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ReleaseMetadataUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'release', internalType: 'uint8', type: 'uint8', indexed: false}, + {name: 'build', internalType: 'uint16', type: 'uint16', indexed: false}, + { + name: 'pluginSetup', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'buildMetadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'VersionCreated', + }, + { + type: 'function', + inputs: [ + {name: '_release', internalType: 'uint8', type: 'uint8'}, + {name: '_pluginSetupAddress', internalType: 'address', type: 'address'}, + {name: '_buildMetadata', internalType: 'bytes', type: 'bytes'}, + {name: '_releaseMetadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'createVersion', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_release', internalType: 'uint8', type: 'uint8'}, + {name: '_releaseMetadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'updateReleaseMetadata', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// InterfaceBasedRegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const interfaceBasedRegistryAbi = [ + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractAlreadyRegistered', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractERC165SupportInvalid', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractInterfaceInvalid', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRY_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '', internalType: 'address', type: 'address'}], + name: 'entries', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetInterfaceId', + outputs: [{name: '', internalType: 'bytes4', type: 'bytes4'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PermissionManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const permissionManagerAbi = [ + {type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere'}, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionInterfaceNotSupported', + }, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionNotAContract', + }, + {type: 'error', inputs: [], name: 'GrantWithConditionNotSupported'}, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: 'currentCondition', internalType: 'address', type: 'address'}, + {name: 'newCondition', internalType: 'address', type: 'address'}, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + {type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed'}, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'Unauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + { + name: 'condition', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'Revoked', + }, + { + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'grant', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'grantWithCondition', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isGranted', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'revoke', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PlaceholderSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const placeholderSetupAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + {type: 'error', inputs: [], name: 'NonUpgradeablePlugin'}, + {type: 'error', inputs: [], name: 'PlaceholderSetupCannotBeUsed'}, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '', internalType: 'address', type: 'address'}, + {name: '', internalType: 'bytes', type: 'bytes'}, + ], + name: 'prepareInstallation', + outputs: [ + {name: '', internalType: 'address', type: 'address'}, + { + name: '', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + {name: '', internalType: 'address', type: 'address'}, + { + name: '', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: '', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_fromBuild', internalType: 'uint16', type: 'uint16'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: '', internalType: 'bytes', type: 'bytes'}, + { + name: '', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginRepo +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginRepoAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + {type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere'}, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionInterfaceNotSupported', + }, + { + type: 'error', + inputs: [ + { + name: 'condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'ConditionNotAContract', + }, + {type: 'error', inputs: [], name: 'EmptyReleaseMetadata'}, + {type: 'error', inputs: [], name: 'GrantWithConditionNotSupported'}, + {type: 'error', inputs: [], name: 'InvalidPluginSetupInterface'}, + { + type: 'error', + inputs: [ + {name: 'latestRelease', internalType: 'uint8', type: 'uint8'}, + {name: 'newRelease', internalType: 'uint8', type: 'uint8'}, + ], + name: 'InvalidReleaseIncrement', + }, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: 'currentCondition', internalType: 'address', type: 'address'}, + {name: 'newCondition', internalType: 'address', type: 'address'}, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + {type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed'}, + { + type: 'error', + inputs: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + {name: 'pluginSetup', internalType: 'address', type: 'address'}, + ], + name: 'PluginSetupAlreadyInPreviousRelease', + }, + {type: 'error', inputs: [], name: 'ReleaseDoesNotExist'}, + {type: 'error', inputs: [], name: 'ReleaseZeroNotAllowed'}, + { + type: 'error', + inputs: [ + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'Unauthorized', + }, + { + type: 'error', + inputs: [{name: 'versionHash', internalType: 'bytes32', type: 'bytes32'}], + name: 'VersionHashDoesNotExist', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + { + name: 'condition', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'release', internalType: 'uint8', type: 'uint8', indexed: false}, + { + name: 'releaseMetadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'ReleaseMetadataUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + {name: 'here', internalType: 'address', type: 'address', indexed: true}, + {name: 'where', internalType: 'address', type: 'address', indexed: false}, + {name: 'who', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'Revoked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'release', internalType: 'uint8', type: 'uint8', indexed: false}, + {name: 'build', internalType: 'uint16', type: 'uint16', indexed: false}, + { + name: 'pluginSetup', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'buildMetadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'VersionCreated', + }, + { + type: 'function', + inputs: [], + name: 'MAINTAINER_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_REPO_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_release', internalType: 'uint8', type: 'uint8'}], + name: 'buildCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_release', internalType: 'uint8', type: 'uint8'}, + {name: '_pluginSetup', internalType: 'address', type: 'address'}, + {name: '_buildMetadata', internalType: 'bytes', type: 'bytes'}, + {name: '_releaseMetadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'createVersion', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_pluginSetup', internalType: 'address', type: 'address'}], + name: 'getLatestVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + {name: 'pluginSetup', internalType: 'address', type: 'address'}, + {name: 'buildMetadata', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_release', internalType: 'uint8', type: 'uint8'}], + name: 'getLatestVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + {name: 'pluginSetup', internalType: 'address', type: 'address'}, + {name: 'buildMetadata', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_tagHash', internalType: 'bytes32', type: 'bytes32'}], + name: 'getVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + {name: 'pluginSetup', internalType: 'address', type: 'address'}, + {name: 'buildMetadata', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + name: 'getVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + {name: 'pluginSetup', internalType: 'address', type: 'address'}, + {name: 'buildMetadata', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'grant', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_condition', + internalType: 'contract IPermissionCondition', + type: 'address', + }, + ], + name: 'grantWithCondition', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'initialOwner', internalType: 'address', type: 'address'}], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: '_previousProtocolVersion', + internalType: 'uint8[3]', + type: 'uint8[3]', + }, + {name: '_initData', internalType: 'bytes', type: 'bytes'}, + ], + name: 'initializeFrom', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isGranted', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'latestRelease', + outputs: [{name: '', internalType: 'uint8', type: 'uint8'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'revoke', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_release', internalType: 'uint8', type: 'uint8'}, + {name: '_releaseMetadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'updateReleaseMetadata', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginRepoFactory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginRepoFactoryAbi = [ + { + type: 'constructor', + inputs: [ + { + name: '_pluginRepoRegistry', + internalType: 'contract PluginRepoRegistry', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_subdomain', internalType: 'string', type: 'string'}, + {name: '_initialOwner', internalType: 'address', type: 'address'}, + ], + name: 'createPluginRepo', + outputs: [{name: '', internalType: 'contract PluginRepo', type: 'address'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_subdomain', internalType: 'string', type: 'string'}, + {name: '_pluginSetup', internalType: 'address', type: 'address'}, + {name: '_maintainer', internalType: 'address', type: 'address'}, + {name: '_releaseMetadata', internalType: 'bytes', type: 'bytes'}, + {name: '_buildMetadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'createPluginRepoWithFirstVersion', + outputs: [ + { + name: 'pluginRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'pluginRepoBase', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginRepoRegistry', + outputs: [ + {name: '', internalType: 'contract PluginRepoRegistry', type: 'address'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginRepoRegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginRepoRegistryAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractAlreadyRegistered', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractERC165SupportInvalid', + }, + { + type: 'error', + inputs: [{name: 'registrant', internalType: 'address', type: 'address'}], + name: 'ContractInterfaceInvalid', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + {type: 'error', inputs: [], name: 'EmptyPluginRepoSubdomain'}, + { + type: 'error', + inputs: [{name: 'subdomain', internalType: 'string', type: 'string'}], + name: 'InvalidPluginSubdomain', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'subdomain', + internalType: 'string', + type: 'string', + indexed: false, + }, + { + name: 'pluginRepo', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'PluginRepoRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'REGISTER_PLUGIN_REPO_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRY_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '', internalType: 'address', type: 'address'}], + name: 'entries', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + { + name: '_subdomainRegistrar', + internalType: 'contract ENSSubdomainRegistrar', + type: 'address', + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'subdomain', internalType: 'string', type: 'string'}, + {name: 'pluginRepo', internalType: 'address', type: 'address'}, + ], + name: 'registerPluginRepo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'subdomainRegistrar', + outputs: [ + { + name: '', + internalType: 'contract ENSSubdomainRegistrar', + type: 'address', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'targetInterfaceId', + outputs: [{name: '', internalType: 'bytes4', type: 'bytes4'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginSetupProcessor +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginSetupProcessorAbi = [ + { + type: 'constructor', + inputs: [ + { + name: '_repoRegistry', + internalType: 'contract PluginRepoRegistry', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [{name: 'plugin', internalType: 'address', type: 'address'}], + name: 'IPluginNotSupported', + }, + { + type: 'error', + inputs: [ + {name: 'currentAppliedSetupId', internalType: 'bytes32', type: 'bytes32'}, + {name: 'appliedSetupId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'InvalidAppliedSetupId', + }, + { + type: 'error', + inputs: [ + { + name: 'currentVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'newVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + name: 'InvalidUpdateVersion', + }, + {type: 'error', inputs: [], name: 'PluginAlreadyInstalled'}, + { + type: 'error', + inputs: [{name: 'plugin', internalType: 'address', type: 'address'}], + name: 'PluginNonupgradeable', + }, + { + type: 'error', + inputs: [ + {name: 'proxy', internalType: 'address', type: 'address'}, + {name: 'implementation', internalType: 'address', type: 'address'}, + {name: 'initData', internalType: 'bytes', type: 'bytes'}, + ], + name: 'PluginProxyUpgradeFailed', + }, + {type: 'error', inputs: [], name: 'PluginRepoNonexistent'}, + { + type: 'error', + inputs: [ + {name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'SetupAlreadyPrepared', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'caller', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'SetupApplicationUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'SetupNotApplicable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + {name: 'plugin', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'appliedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'InstallationApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'sender', internalType: 'address', type: 'address', indexed: true}, + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + indexed: true, + }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + indexed: false, + }, + {name: 'data', internalType: 'bytes', type: 'bytes', indexed: false}, + { + name: 'plugin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + indexed: false, + }, + ], + name: 'InstallationPrepared', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + {name: 'plugin', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'UninstallationApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'sender', internalType: 'address', type: 'address', indexed: true}, + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + indexed: true, + }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + indexed: false, + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + indexed: false, + }, + ], + name: 'UninstallationPrepared', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + {name: 'plugin', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'appliedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + ], + name: 'UpdateApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'sender', internalType: 'address', type: 'address', indexed: true}, + {name: 'dao', internalType: 'address', type: 'address', indexed: true}, + { + name: 'preparedSetupId', + internalType: 'bytes32', + type: 'bytes32', + indexed: false, + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + indexed: true, + }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + indexed: false, + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + indexed: false, + }, + {name: 'initData', internalType: 'bytes', type: 'bytes', indexed: false}, + ], + name: 'UpdatePrepared', + }, + { + type: 'function', + inputs: [], + name: 'APPLY_INSTALLATION_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'APPLY_UNINSTALLATION_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'APPLY_UPDATE_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyInstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + {name: 'helpersHash', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applyInstallation', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyUninstallationParams', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + name: 'applyUninstallation', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyUpdateParams', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + {name: 'initData', internalType: 'bytes', type: 'bytes'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + {name: 'helpersHash', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + name: 'applyUpdate', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareInstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareInstallation', + outputs: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareUninstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + ], + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareUpdateParams', + type: 'tuple', + components: [ + { + name: 'currentVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'newVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + {name: 'release', internalType: 'uint8', type: 'uint8'}, + {name: 'build', internalType: 'uint16', type: 'uint16'}, + ], + }, + { + name: 'pluginSetupRepo', + internalType: 'contract PluginRepo', + type: 'address', + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: 'initData', internalType: 'bytes', type: 'bytes'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'repoRegistry', + outputs: [ + {name: '', internalType: 'contract PluginRepoRegistry', type: 'address'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + name: 'states', + outputs: [ + {name: 'blockNumber', internalType: 'uint256', type: 'uint256'}, + {name: 'currentAppliedSetupId', internalType: 'bytes32', type: 'bytes32'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'pluginInstallationId', internalType: 'bytes32', type: 'bytes32'}, + {name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'validatePreparedSetupId', + outputs: [], + stateMutability: 'view', + }, +] as const; diff --git a/artifacts/src/abis/staged-proposal-processor-plugin-abis.ts b/artifacts/src/abis/staged-proposal-processor-plugin-abis.ts new file mode 100644 index 00000000..39f7153e --- /dev/null +++ b/artifacts/src/abis/staged-proposal-processor-plugin-abis.ts @@ -0,0 +1,875 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// AlwaysTrueCondition +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const alwaysTrueConditionAbi = [ + { + type: 'function', + inputs: [ + {name: '_where', internalType: 'address', type: 'address'}, + {name: '_who', internalType: 'address', type: 'address'}, + {name: '_permissionId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'isGranted', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Errors +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const errorsAbi = [ + {type: 'error', inputs: [], name: 'CallerNotABody'}, + {type: 'error', inputs: [], name: 'EmptyMetadata'}, + {type: 'error', inputs: [], name: 'InsufficientGas'}, + {type: 'error', inputs: [], name: 'NotPossible'}, + { + type: 'error', + inputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + name: 'ProposalCannotExecute', + }, + {type: 'error', inputs: [], name: 'ProposalNotExists'}, + {type: 'error', inputs: [], name: 'StageCountZero'}, + {type: 'error', inputs: [], name: 'StageDurationAlreadyPassed'}, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// StagedProposalProcessor +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const stagedProposalProcessorAbi = [ + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + {type: 'error', inputs: [], name: 'EmptyMetadata'}, + {type: 'error', inputs: [], name: 'InsufficientGas'}, + {type: 'error', inputs: [], name: 'ProposalNotExists'}, + {type: 'error', inputs: [], name: 'StageCountZero'}, + {type: 'error', inputs: [], name: 'StageDurationAlreadyPassed'}, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'beacon', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'releaseMetadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + ], + name: 'MetadataUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'stageId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalAdvanced', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'startDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + { + name: 'endDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + { + name: 'metadata', + internalType: 'bytes', + type: 'bytes', + indexed: false, + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'bytes32', + type: 'bytes32', + indexed: true, + }, + { + name: 'plugin', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'ProposalResult', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'stages', + internalType: 'struct StagedProposalProcessor.Stage[]', + type: 'tuple[]', + components: [ + { + name: 'plugins', + internalType: 'struct StagedProposalProcessor.Plugin[]', + type: 'tuple[]', + components: [ + { + name: 'pluginAddress', + internalType: 'address', + type: 'address', + }, + {name: 'isManual', internalType: 'bool', type: 'bool'}, + {name: 'allowedBody', internalType: 'address', type: 'address'}, + { + name: 'proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + ], + }, + {name: 'maxAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'minAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'stageDuration', internalType: 'uint64', type: 'uint64'}, + {name: 'approvalThreshold', internalType: 'uint16', type: 'uint16'}, + {name: 'vetoThreshold', internalType: 'uint16', type: 'uint16'}, + ], + indexed: false, + }, + ], + name: 'StagesUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'function', + inputs: [], + name: 'ADVANCE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'CREATE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_METADATA_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_STAGES_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'bytes32', type: 'bytes32'}], + name: 'advanceProposal', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'bytes32', type: 'bytes32'}], + name: 'canProposalAdvance', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getCurrentConfigIndex', + outputs: [{name: '', internalType: 'uint16', type: 'uint16'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getMetadata', + outputs: [{name: '', internalType: 'bytes', type: 'bytes'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'bytes32', type: 'bytes32'}, + {name: '_stageId', internalType: 'uint16', type: 'uint16'}, + { + name: '_proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + {name: '_body', internalType: 'address', type: 'address'}, + ], + name: 'getPluginResult', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'bytes32', type: 'bytes32'}], + name: 'getProposal', + outputs: [ + { + name: '', + internalType: 'struct StagedProposalProcessor.Proposal', + type: 'tuple', + components: [ + {name: 'allowFailureMap', internalType: 'uint256', type: 'uint256'}, + {name: 'creator', internalType: 'address', type: 'address'}, + { + name: 'lastStageTransition', + internalType: 'uint64', + type: 'uint64', + }, + {name: 'metadata', internalType: 'bytes', type: 'bytes'}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: 'currentStage', internalType: 'uint16', type: 'uint16'}, + {name: 'stageConfigIndex', internalType: 'uint16', type: 'uint16'}, + {name: 'executed', internalType: 'bool', type: 'bool'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getStages', + outputs: [ + { + name: '', + internalType: 'struct StagedProposalProcessor.Stage[]', + type: 'tuple[]', + components: [ + { + name: 'plugins', + internalType: 'struct StagedProposalProcessor.Plugin[]', + type: 'tuple[]', + components: [ + { + name: 'pluginAddress', + internalType: 'address', + type: 'address', + }, + {name: 'isManual', internalType: 'bool', type: 'bool'}, + {name: 'allowedBody', internalType: 'address', type: 'address'}, + { + name: 'proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + ], + }, + {name: 'maxAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'minAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'stageDuration', internalType: 'uint64', type: 'uint64'}, + {name: 'approvalThreshold', internalType: 'uint16', type: 'uint16'}, + {name: 'vetoThreshold', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + {name: '_trustedForwarder', internalType: 'address', type: 'address'}, + { + name: '_stages', + internalType: 'struct StagedProposalProcessor.Stage[]', + type: 'tuple[]', + components: [ + { + name: 'plugins', + internalType: 'struct StagedProposalProcessor.Plugin[]', + type: 'tuple[]', + components: [ + { + name: 'pluginAddress', + internalType: 'address', + type: 'address', + }, + {name: 'isManual', internalType: 'bool', type: 'bool'}, + {name: 'allowedBody', internalType: 'address', type: 'address'}, + { + name: 'proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + ], + }, + {name: 'maxAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'minAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'stageDuration', internalType: 'uint64', type: 'uint64'}, + {name: 'approvalThreshold', internalType: 'uint16', type: 'uint16'}, + {name: 'vetoThreshold', internalType: 'uint16', type: 'uint16'}, + ], + }, + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [ + {name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8'}, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + {name: '_tryAdvance', internalType: 'bool', type: 'bool'}, + ], + name: 'reportProposalResult', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'trustedForwarder', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_metadata', internalType: 'bytes', type: 'bytes'}], + name: 'updateMetadata', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: '_stages', + internalType: 'struct StagedProposalProcessor.Stage[]', + type: 'tuple[]', + components: [ + { + name: 'plugins', + internalType: 'struct StagedProposalProcessor.Plugin[]', + type: 'tuple[]', + components: [ + { + name: 'pluginAddress', + internalType: 'address', + type: 'address', + }, + {name: 'isManual', internalType: 'bool', type: 'bool'}, + {name: 'allowedBody', internalType: 'address', type: 'address'}, + { + name: 'proposalType', + internalType: 'enum StagedProposalProcessor.ProposalType', + type: 'uint8', + }, + ], + }, + {name: 'maxAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'minAdvance', internalType: 'uint64', type: 'uint64'}, + {name: 'stageDuration', internalType: 'uint64', type: 'uint64'}, + {name: 'approvalThreshold', internalType: 'uint16', type: 'uint16'}, + {name: 'vetoThreshold', internalType: 'uint16', type: 'uint16'}, + ], + }, + ], + name: 'updateStages', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// StagedProposalProcessorSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const stagedProposalProcessorSetupAbi = [ + {type: 'constructor', inputs: [], stateMutability: 'nonpayable'}, + { + type: 'error', + inputs: [ + {name: 'fromBuild', internalType: 'uint16', type: 'uint16'}, + {name: 'thisBuild', internalType: 'uint16', type: 'uint16'}, + ], + name: 'InvalidUpdatePath', + }, + { + type: 'function', + inputs: [], + name: 'ADVANCE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_STAGES_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'prepareInstallation', + outputs: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_fromBuild', internalType: 'uint16', type: 'uint16'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: '', internalType: 'bytes', type: 'bytes'}, + { + name: '', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + { + name: 'permissionId', + internalType: 'bytes32', + type: 'bytes32', + }, + ], + }, + ], + }, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TrustedForwarder +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const trustedForwarderAbi = [ + {type: 'error', inputs: [], name: 'NotPossible'}, + { + type: 'function', + inputs: [ + {name: '_callId', internalType: 'bytes32', type: 'bytes32'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + name: 'execute', + outputs: [ + {name: 'execResults', internalType: 'bytes[]', type: 'bytes[]'}, + {name: 'failureMap', internalType: 'uint256', type: 'uint256'}, + ], + stateMutability: 'nonpayable', + }, +] as const; diff --git a/artifacts/src/abis/token-voting-plugin-abis.ts b/artifacts/src/abis/token-voting-plugin-abis.ts new file mode 100644 index 00000000..434c9fa2 --- /dev/null +++ b/artifacts/src/abis/token-voting-plugin-abis.ts @@ -0,0 +1,2435 @@ +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GovernanceERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const governanceErc20Abi = [ + { + type: 'constructor', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + {name: '_name', internalType: 'string', type: 'string'}, + {name: '_symbol', internalType: 'string', type: 'string'}, + { + name: '_mintSettings', + internalType: 'struct GovernanceERC20.MintSettings', + type: 'tuple', + components: [ + {name: 'receivers', internalType: 'address[]', type: 'address[]'}, + {name: 'amounts', internalType: 'uint256[]', type: 'uint256[]'}, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'receiversArrayLength', internalType: 'uint256', type: 'uint256'}, + {name: 'amountsArrayLength', internalType: 'uint256', type: 'uint256'}, + ], + name: 'MintSettingsArrayLengthMismatch', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'owner', internalType: 'address', type: 'address', indexed: true}, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + {name: 'value', internalType: 'uint256', type: 'uint256', indexed: false}, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'delegator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fromDelegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'toDelegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'DelegateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'delegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'previousBalance', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newBalance', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DelegateVotesChanged', + }, + {type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged'}, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'from', internalType: 'address', type: 'address', indexed: true}, + {name: 'to', internalType: 'address', type: 'address', indexed: true}, + {name: 'value', internalType: 'uint256', type: 'uint256', indexed: false}, + ], + name: 'Transfer', + }, + { + type: 'function', + inputs: [], + name: 'CLOCK_MODE', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'MINT_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'owner', internalType: 'address', type: 'address'}, + {name: 'spender', internalType: 'address', type: 'address'}, + ], + name: 'allowance', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'approve', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'balanceOf', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'pos', internalType: 'uint32', type: 'uint32'}, + ], + name: 'checkpoints', + outputs: [ + { + name: '', + internalType: 'struct ERC20VotesUpgradeable.Checkpoint', + type: 'tuple', + components: [ + {name: 'fromBlock', internalType: 'uint32', type: 'uint32'}, + {name: 'votes', internalType: 'uint224', type: 'uint224'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'clock', + outputs: [{name: '', internalType: 'uint48', type: 'uint48'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{name: '', internalType: 'uint8', type: 'uint8'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'subtractedValue', internalType: 'uint256', type: 'uint256'}, + ], + name: 'decreaseAllowance', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'delegatee', internalType: 'address', type: 'address'}], + name: 'delegate', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'delegatee', internalType: 'address', type: 'address'}, + {name: 'nonce', internalType: 'uint256', type: 'uint256'}, + {name: 'expiry', internalType: 'uint256', type: 'uint256'}, + {name: 'v', internalType: 'uint8', type: 'uint8'}, + {name: 'r', internalType: 'bytes32', type: 'bytes32'}, + {name: 's', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'delegateBySig', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'delegates', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'eip712Domain', + outputs: [ + {name: 'fields', internalType: 'bytes1', type: 'bytes1'}, + {name: 'name', internalType: 'string', type: 'string'}, + {name: 'version', internalType: 'string', type: 'string'}, + {name: 'chainId', internalType: 'uint256', type: 'uint256'}, + {name: 'verifyingContract', internalType: 'address', type: 'address'}, + {name: 'salt', internalType: 'bytes32', type: 'bytes32'}, + {name: 'extensions', internalType: 'uint256[]', type: 'uint256[]'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'timepoint', internalType: 'uint256', type: 'uint256'}], + name: 'getPastTotalSupply', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'timepoint', internalType: 'uint256', type: 'uint256'}, + ], + name: 'getPastVotes', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'getVotes', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'addedValue', internalType: 'uint256', type: 'uint256'}, + ], + name: 'increaseAllowance', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + {name: '_name', internalType: 'string', type: 'string'}, + {name: '_symbol', internalType: 'string', type: 'string'}, + { + name: '_mintSettings', + internalType: 'struct GovernanceERC20.MintSettings', + type: 'tuple', + components: [ + {name: 'receivers', internalType: 'address[]', type: 'address[]'}, + {name: 'amounts', internalType: 'uint256[]', type: 'uint256[]'}, + ], + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'owner', internalType: 'address', type: 'address'}], + name: 'nonces', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'numCheckpoints', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'owner', internalType: 'address', type: 'address'}, + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'deadline', internalType: 'uint256', type: 'uint256'}, + {name: 'v', internalType: 'uint8', type: 'uint8'}, + {name: 'r', internalType: 'bytes32', type: 'bytes32'}, + {name: 's', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'permit', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'transfer', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'from', internalType: 'address', type: 'address'}, + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'transferFrom', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// GovernanceWrappedERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const governanceWrappedErc20Abi = [ + { + type: 'constructor', + inputs: [ + { + name: '_token', + internalType: 'contract IERC20Upgradeable', + type: 'address', + }, + {name: '_name', internalType: 'string', type: 'string'}, + {name: '_symbol', internalType: 'string', type: 'string'}, + ], + stateMutability: 'nonpayable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'owner', internalType: 'address', type: 'address', indexed: true}, + { + name: 'spender', + internalType: 'address', + type: 'address', + indexed: true, + }, + {name: 'value', internalType: 'uint256', type: 'uint256', indexed: false}, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'delegator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'fromDelegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'toDelegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'DelegateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'delegate', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'previousBalance', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + { + name: 'newBalance', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'DelegateVotesChanged', + }, + {type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged'}, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'from', internalType: 'address', type: 'address', indexed: true}, + {name: 'to', internalType: 'address', type: 'address', indexed: true}, + {name: 'value', internalType: 'uint256', type: 'uint256', indexed: false}, + ], + name: 'Transfer', + }, + { + type: 'function', + inputs: [], + name: 'CLOCK_MODE', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'owner', internalType: 'address', type: 'address'}, + {name: 'spender', internalType: 'address', type: 'address'}, + ], + name: 'allowance', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'approve', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'balanceOf', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'pos', internalType: 'uint32', type: 'uint32'}, + ], + name: 'checkpoints', + outputs: [ + { + name: '', + internalType: 'struct ERC20VotesUpgradeable.Checkpoint', + type: 'tuple', + components: [ + {name: 'fromBlock', internalType: 'uint32', type: 'uint32'}, + {name: 'votes', internalType: 'uint224', type: 'uint224'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'clock', + outputs: [{name: '', internalType: 'uint48', type: 'uint48'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{name: '', internalType: 'uint8', type: 'uint8'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'subtractedValue', internalType: 'uint256', type: 'uint256'}, + ], + name: 'decreaseAllowance', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'delegatee', internalType: 'address', type: 'address'}], + name: 'delegate', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'delegatee', internalType: 'address', type: 'address'}, + {name: 'nonce', internalType: 'uint256', type: 'uint256'}, + {name: 'expiry', internalType: 'uint256', type: 'uint256'}, + {name: 'v', internalType: 'uint8', type: 'uint8'}, + {name: 'r', internalType: 'bytes32', type: 'bytes32'}, + {name: 's', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'delegateBySig', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'delegates', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'depositFor', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'eip712Domain', + outputs: [ + {name: 'fields', internalType: 'bytes1', type: 'bytes1'}, + {name: 'name', internalType: 'string', type: 'string'}, + {name: 'version', internalType: 'string', type: 'string'}, + {name: 'chainId', internalType: 'uint256', type: 'uint256'}, + {name: 'verifyingContract', internalType: 'address', type: 'address'}, + {name: 'salt', internalType: 'bytes32', type: 'bytes32'}, + {name: 'extensions', internalType: 'uint256[]', type: 'uint256[]'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'timepoint', internalType: 'uint256', type: 'uint256'}], + name: 'getPastTotalSupply', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'timepoint', internalType: 'uint256', type: 'uint256'}, + ], + name: 'getPastVotes', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'getVotes', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'addedValue', internalType: 'uint256', type: 'uint256'}, + ], + name: 'increaseAllowance', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + { + name: '_token', + internalType: 'contract IERC20Upgradeable', + type: 'address', + }, + {name: '_name', internalType: 'string', type: 'string'}, + {name: '_symbol', internalType: 'string', type: 'string'}, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'name', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'owner', internalType: 'address', type: 'address'}], + name: 'nonces', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: 'account', internalType: 'address', type: 'address'}], + name: 'numCheckpoints', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'owner', internalType: 'address', type: 'address'}, + {name: 'spender', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'deadline', internalType: 'uint256', type: 'uint256'}, + {name: 'v', internalType: 'uint8', type: 'uint8'}, + {name: 'r', internalType: 'bytes32', type: 'bytes32'}, + {name: 's', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'permit', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{name: '', internalType: 'string', type: 'string'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'transfer', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'from', internalType: 'address', type: 'address'}, + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'transferFrom', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'underlying', + outputs: [ + {name: '', internalType: 'contract IERC20Upgradeable', type: 'address'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'withdrawTo', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20MintableUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20MintableUpgradeableAbi = [ + { + type: 'function', + inputs: [ + {name: '_to', internalType: 'address', type: 'address'}, + {name: '_amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'mint', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IGovernanceWrappedERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iGovernanceWrappedErc20Abi = [ + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'depositFor', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'account', internalType: 'address', type: 'address'}, + {name: 'amount', internalType: 'uint256', type: 'uint256'}, + ], + name: 'withdrawTo', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IMajorityVoting +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iMajorityVotingAbi = [ + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + {name: 'voter', internalType: 'address', type: 'address', indexed: true}, + { + name: 'voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + indexed: false, + }, + { + name: 'votingPower', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'VoteCast', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'canExecute', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + name: 'canVote', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_account', internalType: 'address', type: 'address'}, + ], + name: 'getVoteOption', + outputs: [ + { + name: '', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isMinParticipationReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReachedEarly', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + {name: '_tryEarlyExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'vote', + outputs: [], + stateMutability: 'nonpayable', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MajorityVotingBase +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const majorityVotingBaseAbi = [ + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint64', type: 'uint64'}, + {name: 'actual', internalType: 'uint64', type: 'uint64'}, + ], + name: 'DateOutOfBounds', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint64', type: 'uint64'}, + {name: 'actual', internalType: 'uint64', type: 'uint64'}, + ], + name: 'MinDurationOutOfBounds', + }, + { + type: 'error', + inputs: [{name: 'sender', internalType: 'address', type: 'address'}], + name: 'ProposalCreationForbidden', + }, + { + type: 'error', + inputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'ProposalExecutionForbidden', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint256', type: 'uint256'}, + {name: 'actual', internalType: 'uint256', type: 'uint256'}, + ], + name: 'RatioOutOfBounds', + }, + { + type: 'error', + inputs: [ + {name: 'proposalId', internalType: 'uint256', type: 'uint256'}, + {name: 'account', internalType: 'address', type: 'address'}, + { + name: 'voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + name: 'VoteCastForbidden', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'startDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + {name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false}, + {name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + {name: 'voter', internalType: 'address', type: 'address', indexed: true}, + { + name: 'voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + indexed: false, + }, + { + name: 'votingPower', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'VoteCast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + indexed: false, + }, + { + name: 'supportThreshold', + internalType: 'uint32', + type: 'uint32', + indexed: false, + }, + { + name: 'minParticipation', + internalType: 'uint32', + type: 'uint32', + indexed: false, + }, + { + name: 'minDuration', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + { + name: 'minProposerVotingPower', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'VotingSettingsUpdated', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'canExecute', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_voter', internalType: 'address', type: 'address'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + name: 'canVote', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: 'metadata', internalType: 'bytes', type: 'bytes'}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: 'startDate', internalType: 'uint64', type: 'uint64'}, + {name: 'endDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + {name: '_tryEarlyExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'getProposal', + outputs: [ + {name: 'open', internalType: 'bool', type: 'bool'}, + {name: 'executed', internalType: 'bool', type: 'bool'}, + { + name: 'parameters', + internalType: 'struct MajorityVotingBase.ProposalParameters', + type: 'tuple', + components: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + {name: 'supportThreshold', internalType: 'uint32', type: 'uint32'}, + {name: 'startDate', internalType: 'uint64', type: 'uint64'}, + {name: 'endDate', internalType: 'uint64', type: 'uint64'}, + {name: 'snapshotBlock', internalType: 'uint64', type: 'uint64'}, + {name: 'minVotingPower', internalType: 'uint256', type: 'uint256'}, + ], + }, + { + name: 'tally', + internalType: 'struct MajorityVotingBase.Tally', + type: 'tuple', + components: [ + {name: 'abstain', internalType: 'uint256', type: 'uint256'}, + {name: 'yes', internalType: 'uint256', type: 'uint256'}, + {name: 'no', internalType: 'uint256', type: 'uint256'}, + ], + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: 'allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_voter', internalType: 'address', type: 'address'}, + ], + name: 'getVoteOption', + outputs: [ + { + name: '', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isMinParticipationReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReachedEarly', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minDuration', + outputs: [{name: '', internalType: 'uint64', type: 'uint64'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minProposerVotingPower', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [ + {name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8'}, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_blockNumber', internalType: 'uint256', type: 'uint256'}], + name: 'totalVotingPower', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + {name: 'supportThreshold', internalType: 'uint32', type: 'uint32'}, + {name: 'minParticipation', internalType: 'uint32', type: 'uint32'}, + {name: 'minDuration', internalType: 'uint64', type: 'uint64'}, + { + name: 'minProposerVotingPower', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateVotingSettings', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + {name: '_tryEarlyExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'vote', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'votingMode', + outputs: [ + { + name: '', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + ], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TokenVoting +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tokenVotingAbi = [ + { + type: 'error', + inputs: [ + {name: 'dao', internalType: 'address', type: 'address'}, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint64', type: 'uint64'}, + {name: 'actual', internalType: 'uint64', type: 'uint64'}, + ], + name: 'DateOutOfBounds', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint64', type: 'uint64'}, + {name: 'actual', internalType: 'uint64', type: 'uint64'}, + ], + name: 'MinDurationOutOfBounds', + }, + {type: 'error', inputs: [], name: 'NoVotingPower'}, + { + type: 'error', + inputs: [{name: 'sender', internalType: 'address', type: 'address'}], + name: 'ProposalCreationForbidden', + }, + { + type: 'error', + inputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'ProposalExecutionForbidden', + }, + { + type: 'error', + inputs: [ + {name: 'limit', internalType: 'uint256', type: 'uint256'}, + {name: 'actual', internalType: 'uint256', type: 'uint256'}, + ], + name: 'RatioOutOfBounds', + }, + { + type: 'error', + inputs: [ + {name: 'proposalId', internalType: 'uint256', type: 'uint256'}, + {name: 'account', internalType: 'address', type: 'address'}, + { + name: 'voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + name: 'VoteCastForbidden', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'previousAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + { + name: 'newAdmin', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'beacon', internalType: 'address', type: 'address', indexed: true}, + ], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + {name: 'version', internalType: 'uint8', type: 'uint8', indexed: false}, + ], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'members', + internalType: 'address[]', + type: 'address[]', + indexed: false, + }, + ], + name: 'MembersRemoved', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'definingContract', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'MembershipContractAnnounced', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + { + name: 'creator', + internalType: 'address', + type: 'address', + indexed: true, + }, + { + name: 'startDate', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + {name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false}, + {name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false}, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + indexed: false, + }, + { + name: 'allowFailureMap', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + ], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'implementation', + internalType: 'address', + type: 'address', + indexed: true, + }, + ], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'proposalId', + internalType: 'uint256', + type: 'uint256', + indexed: true, + }, + {name: 'voter', internalType: 'address', type: 'address', indexed: true}, + { + name: 'voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + indexed: false, + }, + { + name: 'votingPower', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'VoteCast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + indexed: false, + }, + { + name: 'supportThreshold', + internalType: 'uint32', + type: 'uint32', + indexed: false, + }, + { + name: 'minParticipation', + internalType: 'uint32', + type: 'uint32', + indexed: false, + }, + { + name: 'minDuration', + internalType: 'uint64', + type: 'uint64', + indexed: false, + }, + { + name: 'minProposerVotingPower', + internalType: 'uint256', + type: 'uint256', + indexed: false, + }, + ], + name: 'VotingSettingsUpdated', + }, + { + type: 'function', + inputs: [], + name: 'CREATE_PROPOSAL_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'canExecute', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_voter', internalType: 'address', type: 'address'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + name: 'canVote', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_metadata', internalType: 'bytes', type: 'bytes'}, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: '_allowFailureMap', internalType: 'uint256', type: 'uint256'}, + {name: '_startDate', internalType: 'uint64', type: 'uint64'}, + {name: '_endDate', internalType: 'uint64', type: 'uint64'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + {name: '_tryEarlyExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'createProposal', + outputs: [{name: 'proposalId', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'dao', + outputs: [{name: '', internalType: 'contract IDAO', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'execute', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'getProposal', + outputs: [ + {name: 'open', internalType: 'bool', type: 'bool'}, + {name: 'executed', internalType: 'bool', type: 'bool'}, + { + name: 'parameters', + internalType: 'struct MajorityVotingBase.ProposalParameters', + type: 'tuple', + components: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + {name: 'supportThreshold', internalType: 'uint32', type: 'uint32'}, + {name: 'startDate', internalType: 'uint64', type: 'uint64'}, + {name: 'endDate', internalType: 'uint64', type: 'uint64'}, + {name: 'snapshotBlock', internalType: 'uint64', type: 'uint64'}, + {name: 'minVotingPower', internalType: 'uint256', type: 'uint256'}, + ], + }, + { + name: 'tally', + internalType: 'struct MajorityVotingBase.Tally', + type: 'tuple', + components: [ + {name: 'abstain', internalType: 'uint256', type: 'uint256'}, + {name: 'yes', internalType: 'uint256', type: 'uint256'}, + {name: 'no', internalType: 'uint256', type: 'uint256'}, + ], + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + {name: 'to', internalType: 'address', type: 'address'}, + {name: 'value', internalType: 'uint256', type: 'uint256'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + {name: 'allowFailureMap', internalType: 'uint256', type: 'uint256'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + {name: '_voter', internalType: 'address', type: 'address'}, + ], + name: 'getVoteOption', + outputs: [ + { + name: '', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'getVotingToken', + outputs: [ + {name: '', internalType: 'contract IVotesUpgradeable', type: 'address'}, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'contract IDAO', type: 'address'}, + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + {name: 'supportThreshold', internalType: 'uint32', type: 'uint32'}, + {name: 'minParticipation', internalType: 'uint32', type: 'uint32'}, + {name: 'minDuration', internalType: 'uint64', type: 'uint64'}, + { + name: 'minProposerVotingPower', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + { + name: '_token', + internalType: 'contract IVotesUpgradeable', + type: 'address', + }, + ], + name: 'initialize', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [{name: '_account', internalType: 'address', type: 'address'}], + name: 'isMember', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isMinParticipationReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReached', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_proposalId', internalType: 'uint256', type: 'uint256'}], + name: 'isSupportThresholdReachedEarly', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minDuration', + outputs: [{name: '', internalType: 'uint64', type: 'uint64'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'minProposerVotingPower', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [ + {name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8'}, + ], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_forwarder', internalType: 'address', type: 'address'}], + name: 'setForwarder', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{name: '', internalType: 'uint32', type: 'uint32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [{name: '_blockNumber', internalType: 'uint256', type: 'uint256'}], + name: 'totalVotingPower', + outputs: [{name: '', internalType: 'uint256', type: 'uint256'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'trustedForwarder', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { + name: 'votingMode', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + {name: 'supportThreshold', internalType: 'uint32', type: 'uint32'}, + {name: 'minParticipation', internalType: 'uint32', type: 'uint32'}, + {name: 'minDuration', internalType: 'uint64', type: 'uint64'}, + { + name: 'minProposerVotingPower', + internalType: 'uint256', + type: 'uint256', + }, + ], + }, + ], + name: 'updateVotingSettings', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + ], + name: 'upgradeTo', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: 'newImplementation', internalType: 'address', type: 'address'}, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'upgradeToAndCall', + outputs: [], + stateMutability: 'payable', + }, + { + type: 'function', + inputs: [ + {name: '_proposalId', internalType: 'uint256', type: 'uint256'}, + { + name: '_voteOption', + internalType: 'enum IMajorityVoting.VoteOption', + type: 'uint8', + }, + {name: '_tryEarlyExecution', internalType: 'bool', type: 'bool'}, + ], + name: 'vote', + outputs: [], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [], + name: 'votingMode', + outputs: [ + { + name: '', + internalType: 'enum MajorityVotingBase.VotingMode', + type: 'uint8', + }, + ], + stateMutability: 'view', + }, +] as const; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TokenVotingSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tokenVotingSetupAbi = [ + { + type: 'constructor', + inputs: [ + { + name: '_governanceERC20Base', + internalType: 'contract GovernanceERC20', + type: 'address', + }, + { + name: '_governanceWrappedERC20Base', + internalType: 'contract GovernanceWrappedERC20', + type: 'address', + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'error', + inputs: [ + {name: 'fromBuild', internalType: 'uint16', type: 'uint16'}, + {name: 'thisBuild', internalType: 'uint16', type: 'uint16'}, + ], + name: 'InvalidUpdatePath', + }, + { + type: 'error', + inputs: [{name: 'token', internalType: 'address', type: 'address'}], + name: 'TokenNotContract', + }, + { + type: 'error', + inputs: [{name: 'token', internalType: 'address', type: 'address'}], + name: 'TokenNotERC20', + }, + { + type: 'error', + inputs: [{name: 'length', internalType: 'uint256', type: 'uint256'}], + name: 'WrongHelpersArrayLength', + }, + { + type: 'function', + inputs: [], + name: 'EXECUTE_PERMISSION_ID', + outputs: [{name: '', internalType: 'bytes32', type: 'bytes32'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'governanceERC20Base', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'governanceWrappedERC20Base', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{name: '', internalType: 'address', type: 'address'}], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_data', internalType: 'bytes', type: 'bytes'}, + ], + name: 'prepareInstallation', + outputs: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'nonpayable', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [ + {name: '_dao', internalType: 'address', type: 'address'}, + {name: '_fromBuild', internalType: 'uint16', type: 'uint16'}, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + {name: 'plugin', internalType: 'address', type: 'address'}, + { + name: 'currentHelpers', + internalType: 'address[]', + type: 'address[]', + }, + {name: 'data', internalType: 'bytes', type: 'bytes'}, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + {name: 'initData', internalType: 'bytes', type: 'bytes'}, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + {name: 'helpers', internalType: 'address[]', type: 'address[]'}, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { + name: 'operation', + internalType: 'enum PermissionLib.Operation', + type: 'uint8', + }, + {name: 'where', internalType: 'address', type: 'address'}, + {name: 'who', internalType: 'address', type: 'address'}, + {name: 'condition', internalType: 'address', type: 'address'}, + {name: 'permissionId', internalType: 'bytes32', type: 'bytes32'}, + ], + }, + ], + }, + ], + stateMutability: 'view', + }, + { + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{name: '', internalType: 'uint8[3]', type: 'uint8[3]'}], + stateMutability: 'pure', + }, + { + type: 'function', + inputs: [{name: '_interfaceId', internalType: 'bytes4', type: 'bytes4'}], + name: 'supportsInterface', + outputs: [{name: '', internalType: 'bool', type: 'bool'}], + stateMutability: 'view', + }, +] as const; diff --git a/artifacts/src/index.ts b/artifacts/src/index.ts new file mode 100644 index 00000000..32efef48 --- /dev/null +++ b/artifacts/src/index.ts @@ -0,0 +1 @@ +export * from './abis'; diff --git a/artifacts/tsconfig.json b/artifacts/tsconfig.json new file mode 100644 index 00000000..0a3c0398 --- /dev/null +++ b/artifacts/tsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs", + "declaration": true, + "outDir": "./dist" + }, + "include": ["src"] +} diff --git a/artifacts/wagmi.foundry.config.ts b/artifacts/wagmi.foundry.config.ts new file mode 100644 index 00000000..1eaad70e --- /dev/null +++ b/artifacts/wagmi.foundry.config.ts @@ -0,0 +1,13 @@ +import {defineConfig} from '@wagmi/cli'; +import {foundry} from '@wagmi/cli/plugins'; + +export default defineConfig({ + // using abi instead of generated to avoid being ignored by git + out: 'generated/abis.ts', + plugins: [ + foundry({ + project: './', + exclude: ['**/test/**', '**/mocks/**'], + }), + ], +}); diff --git a/artifacts/wagmi.hardhat.config.ts b/artifacts/wagmi.hardhat.config.ts new file mode 100644 index 00000000..0ae1fddf --- /dev/null +++ b/artifacts/wagmi.hardhat.config.ts @@ -0,0 +1,14 @@ +import {defineConfig} from '@wagmi/cli'; +import {hardhat} from '@wagmi/cli/plugins'; + +export default defineConfig({ + // using abi instead of generated to avoid being ignored by git + out: 'generated/abis.ts', + plugins: [ + hardhat({ + project: './', + artifacts: 'REPLACE_ARTIFACTS_SOURCE', + exclude: ['**/test/**', '**/mocks/**'], + }), + ], +}); diff --git a/artifacts/yarn.lock b/artifacts/yarn.lock new file mode 100644 index 00000000..f3d9ded4 --- /dev/null +++ b/artifacts/yarn.lock @@ -0,0 +1,776 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@noble/curves@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" + integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/curves@^1.4.0", "@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/hashes@1.4.0", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@scure/base@~1.1.6": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" + integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== + +"@scure/bip32@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== + dependencies: + "@noble/curves" "~1.4.0" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip39@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== + dependencies: + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@wagmi/cli@^2.1.15": + version "2.1.15" + resolved "https://registry.yarnpkg.com/@wagmi/cli/-/cli-2.1.15.tgz#4329070d5a98796416c16ed912fecba06b22b2e4" + integrity sha512-mtTxbuCDRRSd/2tPAklM+4vFOq5E/0zS5OfLE3Ax2KcUWciOnjLJ0m6BAQ6HzqY9YfWo8DXa7UqxzUBkvPYltg== + dependencies: + abitype "^1.0.4" + bundle-require "^4.0.2" + cac "^6.7.14" + change-case "^5.4.4" + chokidar "^3.5.3" + dedent "^0.7.0" + dotenv "^16.3.1" + dotenv-expand "^10.0.0" + esbuild "^0.19.0" + execa "^8.0.1" + fdir "^6.1.1" + find-up "^6.3.0" + fs-extra "^11.2.0" + ora "^6.3.1" + pathe "^1.1.2" + picocolors "^1.0.0" + picomatch "^3.0.0" + prettier "^3.0.3" + viem "2.x" + zod "^3.22.2" + +abitype@1.0.5, abitype@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.5.tgz#29d0daa3eea867ca90f7e4123144c1d1270774b6" + integrity sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bundle-require@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.2.1.tgz#4c450a5807381d20ade987bde8ac391544257919" + integrity sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA== + dependencies: + load-tsconfig "^0.2.3" + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +chalk@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case@^5.4.4: + version "5.4.4" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-5.4.4.tgz#0d52b507d8fb8f204343432381d1a6d7bff97a02" + integrity sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w== + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.6.1: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +dotenv-expand@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" + integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== + +dotenv@^16.3.1: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +esbuild@^0.19.0: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +fdir@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.2.0.tgz#9120f438d566ef3e808ca37864d9dd18e1a4f9b5" + integrity sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.11" + 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== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +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" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-unicode-supported@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isows@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061" + integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +load-tsconfig@^0.2.3: + version "0.2.5" + resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" + integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== + dependencies: + chalk "^5.0.0" + is-unicode-supported "^1.1.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +ora@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6" + integrity sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ== + dependencies: + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + stdin-discarder "^0.1.0" + strip-ansi "^7.0.1" + wcwidth "^1.0.1" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +picocolors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" + integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== + +prettier@^3.0.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +stdin-discarder@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21" + integrity sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ== + dependencies: + bl "^5.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +viem@2.x: + version "2.18.8" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.18.8.tgz#5e65050ddc3bdc0f928c0ca22b33bc720bf36639" + integrity sha512-Fi5d9fd/LBiVtJ5eV2c99yrdt4dJH5Vbkf2JajwCqHYuV4ErSk/sm+L6Ru3rzT67rfRHSOQibTZxByEBua/WLw== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.4.0" + "@noble/hashes" "1.4.0" + "@scure/bip32" "1.4.0" + "@scure/bip39" "1.3.0" + abitype "1.0.5" + isows "1.0.4" + webauthn-p256 "0.0.5" + ws "8.17.1" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webauthn-p256@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.5.tgz#0baebd2ba8a414b21cc09c0d40f9dd0be96a06bd" + integrity sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg== + dependencies: + "@noble/curves" "^1.4.0" + "@noble/hashes" "^1.4.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +yocto-queue@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" + integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + +zod@^3.22.2: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==