From abaf2383b2d51dd4ef37f8cdd5fac1cf4439cc4d Mon Sep 17 00:00:00 2001 From: Rekard0 <5880388+Rekard0@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:11:19 +0200 Subject: [PATCH 1/4] ci: move versioned 1.3.0 back to docs/osx & remove 1.4.0-alpha --- docs/advanced/dao/00-introduction.md | 81 - docs/advanced/dao/01-creation.md | 97 - docs/advanced/dao/02-permissions.md | 20 - docs/advanced/dao/_category_.yml | 5 - docs/advanced/ens.md | 23 - docs/advanced/index.md | 9 - docs/advanced/permissions/_category_.yml | 5 - docs/advanced/permissions/conditions.md | 212 - docs/advanced/permissions/index.md | 139 - docs/advanced/plugin/_category_.yml | 5 - docs/advanced/plugin/governance-plugins.md | 37 - docs/advanced/plugin/metadata.md | 123 - docs/advanced/plugin/overview.md | 76 - docs/advanced/plugin/plugin-setup.md | 41 - docs/advanced/plugin/plugin-types.md | 75 - .../plugin/repositories/_category_.yml | 5 - .../repositories/factory-and-registry.md | 60 - .../plugin/repositories/plugin-repo.md | 59 - .../plugin/security-risk-mitigation.md | 65 - docs/advanced/plugin/versioning.md | 60 - docs/advanced/psp/_category_.yml | 5 - docs/advanced/psp/index.md | 32 - docs/advanced/psp/managing-plugins.md | 75 - .../technical-reference/_category_.yml | 3 - docs/advanced/technical-reference/index.md | 8 - docs/guides/01-get-started.mdx | 10 - docs/guides/dao/_category_.yml | 5 - docs/guides/dao/create-a-dao.md | 9 - docs/guides/dao/upgrading-dao.md | 9 - docs/guides/framework/_category_.yml | 5 - docs/guides/framework/deployemnts.md | 9 - docs/guides/framework/tooling.md | 8 - docs/guides/index.md | 9 - docs/guides/plugin/_category_.yml | 5 - docs/guides/plugin/develop-a-plugin.md | 9 - docs/guides/plugin/install-plugin.md | 9 - docs/guides/plugin/publish-a-plugin.md | 9 - docs/guides/plugin/uninstall-a-plugin.md | 9 - docs/guides/plugin/upgrade-a-plugin.md | 9 - .../osx/00-get-started.mdx | 2 +- .../01-core/01-dao/01-actions.md | 0 .../01-how-it-works/01-core/01-dao/index.md | 0 .../01-core/02-permissions/01-conditions.md | 0 .../01-core/02-permissions/index.md | 0 .../01-core/03-plugins/index.md | 0 .../osx/01-how-it-works/01-core/index.md | 0 .../02-framework/01-dao-creation/index.md | 0 .../01-plugin-repo/01-plugin-repo-creation.md | 0 .../01-plugin-repo/index.md | 0 .../01-security-risk-mitigation.md | 0 .../02-plugin-setup/index.md | 0 .../02-plugin-management/index.md | 0 .../02-framework/03-ens-names.md | 0 .../osx/01-how-it-works/02-framework/index.md | 0 .../osx/01-how-it-works/03-framwork-dao.md | 0 .../osx/01-how-it-works/_category_.yml | 0 .../osx/01-how-it-works/index.md | 0 .../01-dao/01-best-practices.md | 0 .../01-dao/02-action-execution.md | 0 .../01-dao/03-protocol-upgrades.md | 0 .../01-dao/04-managing-plugins/index.md | 0 .../osx/02-how-to-guides/01-dao/index.md | 0 .../01-best-practices.md | 0 .../02-plugin-development/02-plugin-types.md | 0 .../01-initialization.md | 0 .../02-implementation.md | 0 .../03-non-upgradeable-plugin/03-setup.md | 0 .../03-non-upgradeable-plugin/index.md | 0 .../01-initialization.md | 0 .../02-implementation.md | 0 .../04-upgradeable-plugin/03-setup.md | 0 .../04-subsequent-builds.md | 0 .../05-updating-versions.md | 0 .../04-upgradeable-plugin/index.md | 0 .../05-governance-plugins/01-proposals.md | 0 .../05-governance-plugins/02-membership.md | 0 .../05-governance-plugins/index.md | 0 .../06-meta-tx-plugins.md | 0 .../07-publication/01-versioning.md | 0 .../07-publication/02-metadata.md | 0 .../07-publication/index.md | 0 .../02-plugin-development/index.md | 0 .../osx/02-how-to-guides/_category_.yml | 0 .../osx/02-how-to-guides/index.md | 0 .../03-reference-guide}/core/dao/DAO.md | 0 .../03-reference-guide}/core/dao/IEIP4824.md | 0 .../core/permission/PermissionManager.md | 0 .../core/utils/CallbackHandler.md | 0 .../framework/dao/DAOFactory.md | 0 .../framework/dao/DAORegistry.md | 0 .../framework/plugin/repo/IPluginRepo.md | 0 .../framework/plugin/repo/PluginRepo.md | 0 .../plugin/repo/PluginRepoFactory.md | 0 .../plugin/repo/PluginRepoRegistry.md | 0 .../repo/placeholder/PlaceholderSetup.md | 0 .../plugin/setup/PluginSetupProcessor.md | 0 .../setup/PluginSetupProcessorHelpers.md | 0 .../framework/utils/InterfaceBasedRegistry.md | 0 .../framework/utils/RegistryUtils.md | 0 .../framework/utils/ens/ENSMigration.md | 0 .../utils/ens/ENSSubdomainRegistrar.md | 0 .../osx/03-reference-guide/index.md | 0 .../01-examples/01-client/01-create-dao.md | 0 .../01-examples/01-client/02-deposit-eth.md | 0 .../01-examples/01-client/03-deposit-erc20.md | 0 .../01-client/04-deposit-erc721.md | 0 .../01-client/05-deposit-erc1155.md | 0 .../01-examples/01-client/06-get-dao.md | 0 .../01-examples/01-client/07-get-daos.md | 0 .../01-examples/01-client/08-get-balances.md | 0 .../01-examples/01-client/09-get-transfers.md | 0 .../01-examples/01-client/10-set-allowance.md | 0 .../01-examples/01-client/11-pin-metadata.md | 0 .../01-client/12-prepare-installation.md | 0 .../01-client/13-get-protocol-version.md | 0 .../01-client/14-prepare-uninstallation.md | 0 .../01-client/15-prepare-update.md | 0 .../01-client/16-is-plugin-update-valid.md | 0 .../01-client/17-is-plugin-update-proposal.md | 0 .../01-client/18-is-dao-update-valid.md | 0 .../01-client/19-is-dao-update-proposal.md | 0 .../01-client/20-get-plugin-preparations.md | 0 .../osx/04-sdk/01-examples/01-client/index.md | 0 .../02-multisig-client/01-installation.md | 0 .../02-multisig-client/02-create-proposal.md | 0 .../03-create-proposal-with-actions.md | 0 .../02-multisig-client/04-can-approve.md | 0 .../02-multisig-client/05-approve-proposal.md | 0 .../02-multisig-client/06-can-execute.md | 0 .../02-multisig-client/07-execute-proposal.md | 0 .../02-multisig-client/08-get-proposal.md | 0 .../02-multisig-client/09-get-proposals.md | 0 .../10-get-voting-settings.md | 0 .../02-multisig-client/11-get-members.md | 0 .../02-multisig-client/12-pin-metadata.md | 0 .../13-prepare-installation.md | 0 .../02-multisig-client/14-prepare-update.md | 0 .../02-multisig-client/15-is-member.md | 0 .../01-examples/02-multisig-client/index.md | 0 .../03-tokenVoting-client/01-installation.md | 0 .../02-create-proposal.md | 0 .../03-create-proposal-with-actions.md | 0 .../03-tokenVoting-client/04-can-vote.md | 0 .../05-vote-on-proposal.md | 0 .../03-tokenVoting-client/06-can-execute.md | 0 .../07-execute-proposal.md | 0 .../03-tokenVoting-client/08-get-proposal.md | 0 .../03-tokenVoting-client/09-get-proposals.md | 0 .../10-get-voting-settings.md | 0 .../03-tokenVoting-client/11-get-members.md | 0 .../03-tokenVoting-client/12-get-token.md | 0 .../03-tokenVoting-client/13-pin-metadata.md | 0 .../14-prepare-installation.md | 0 .../03-tokenVoting-client/15-wrap-tokens.md | 0 .../03-tokenVoting-client/16-unwrap-tokens.md | 0 .../17-delegate-tokens.md | 0 .../18-undelegate-tokens.md | 0 .../03-tokenVoting-client/19-get-delegate.md | 0 .../20-is-governance-token-compatible.md | 0 .../21-prepare-update.md | 0 .../03-tokenVoting-client/22-is-member.md | 0 .../03-tokenVoting-client/index.md | 0 .../01-installation.md | 0 .../02-create-proposal.md | 0 .../03-create-proposal-with-actions.md | 0 .../04-can-vote.md | 0 .../05-vote-proposal.md | 0 .../06-can-execute.md | 0 .../07-execute-proposal.md | 0 .../08-get-proposal.md | 0 .../09-get-proposals.md | 0 .../10-get-voting-settings.md | 0 .../11-get-members.md | 0 .../12-pin-metadata.md | 0 .../13-prepare-installation.md | 0 .../14-prepare-update.md | 0 .../15-is-member.md | 0 .../04-addresslistVoting-client/index.md | 0 .../05-encoders-decoders/01-find-interface.md | 0 .../02-grant-permission.md | 0 .../03-grant-with-condition.md | 0 .../04-revoke-permissions.md | 0 .../05-register-standard-callback.md | 0 .../05-encoders-decoders/06-withdraw.md | 0 .../07-update-metadata.md | 0 .../05-encoders-decoders/08-set-dao-uri.md | 0 .../09-set-signature-validator.md | 0 .../05-encoders-decoders/10-upgrade-to.md | 0 .../11-upgrade-to-and-call.md | 0 .../12-apply-installation.md | 0 .../12-multisig/01-find-interface.md | 0 .../12-multisig/02-add-addresses.md | 0 .../12-multisig/03-remove-addresses.md | 0 .../12-multisig/04-update-plugin-settings.md | 0 .../05-encoders-decoders/12-multisig/index.md | 0 .../01-find-interface.md | 0 .../13-addresslist-voting/02-add-members.md | 0 .../03-remove-members.md | 0 .../04-update-plugin-settings.md | 0 .../13-addresslist-voting/index.md | 0 .../13-apply-uninstallation.md | 0 .../14-initialize-from.md | 0 .../14-token-voting/01-find-interface.md | 0 .../14-token-voting/02-mint-token.md | 0 .../03-update-plugin-settings.md | 0 .../14-token-voting/index.md | 0 .../05-encoders-decoders/15-apply-update.md | 0 .../05-encoders-decoders/16-dao-update.md | 0 .../01-examples/05-encoders-decoders/index.md | 0 .../osx/04-sdk/01-examples/index.md | 0 .../04-sdk/02-reference-guide/01-client.md | 0 .../04-sdk/02-reference-guide/02-multisig.md | 0 .../02-reference-guide/03-token-voting.md | 0 .../04-addresslist-voting.md | 0 .../osx/04-sdk/02-reference-guide/index.md | 0 .../04-sdk/03-update-security-check/index.md | 0 .../osx/04-sdk/_category_.yml | 0 .../osx/04-sdk/index.md | 0 .../version-1.3.0 => docs}/osx/index.md | 0 docs/overview/concepts/_category_.yml | 5 - docs/overview/concepts/dao.md | 9 - docs/overview/concepts/permission-manager.md | 9 - docs/overview/concepts/plugin.md | 9 - docs/overview/concepts/proposal.md | 9 - docs/overview/overview/_category_.yml | 5 - docs/overview/overview/index.md | 12 - docs/overview/overview/use-cases.md | 7 - docs/support/FAQ.md | 21 - docs/support/best-practices/_category_.yml | 4 - .../best-practices/developing-plugin.md | 32 - docs/support/best-practices/operating-dao.md | 24 - docs/support/glossary.md | 21 - docs/support/index.md | 9 - scripts/prune-subgraph-docs.sh | 38 - sidebars.js | 8 - src/pages/get-started.tsx | 63 - static/subgraph/index.md | 9 - .../schema-introspection-partial.json | 8405 ----------------- .../osx/03-reference-guide/core/dao/DAO.md | 442 - .../03-reference-guide/core/dao/IEIP4824.md | 19 - .../core/permission/PermissionManager.md | 404 - .../core/utils/CallbackHandler.md | 82 - .../framework/dao/DAOFactory.md | 123 - .../framework/dao/DAORegistry.md | 82 - .../framework/plugin/repo/IPluginRepo.md | 35 - .../framework/plugin/repo/PluginRepo.md | 332 - .../plugin/repo/PluginRepoFactory.md | 110 - .../plugin/repo/PluginRepoRegistry.md | 86 - .../repo/placeholder/PlaceholderSetup.md | 52 - .../plugin/setup/PluginSetupProcessor.md | 475 - .../setup/PluginSetupProcessorHelpers.md | 91 - .../framework/utils/InterfaceBasedRegistry.md | 106 - .../framework/utils/RegistryUtils.md | 20 - .../framework/utils/ens/ENSMigration.md | 5 - .../utils/ens/ENSSubdomainRegistrar.md | 137 - .../osx/subgraph/01-query-examples/index.md | 174 - .../version-1.3.0/osx/subgraph/_category_.yml | 3 - .../version-1.3.0/osx/subgraph/index.md | 19 - .../version-1.3.0-sidebars.json | 8 - versions.json | 3 - 260 files changed, 1 insertion(+), 12942 deletions(-) delete mode 100644 docs/advanced/dao/00-introduction.md delete mode 100644 docs/advanced/dao/01-creation.md delete mode 100644 docs/advanced/dao/02-permissions.md delete mode 100644 docs/advanced/dao/_category_.yml delete mode 100644 docs/advanced/ens.md delete mode 100644 docs/advanced/index.md delete mode 100644 docs/advanced/permissions/_category_.yml delete mode 100644 docs/advanced/permissions/conditions.md delete mode 100644 docs/advanced/permissions/index.md delete mode 100644 docs/advanced/plugin/_category_.yml delete mode 100644 docs/advanced/plugin/governance-plugins.md delete mode 100644 docs/advanced/plugin/metadata.md delete mode 100644 docs/advanced/plugin/overview.md delete mode 100644 docs/advanced/plugin/plugin-setup.md delete mode 100644 docs/advanced/plugin/plugin-types.md delete mode 100644 docs/advanced/plugin/repositories/_category_.yml delete mode 100644 docs/advanced/plugin/repositories/factory-and-registry.md delete mode 100644 docs/advanced/plugin/repositories/plugin-repo.md delete mode 100644 docs/advanced/plugin/security-risk-mitigation.md delete mode 100644 docs/advanced/plugin/versioning.md delete mode 100644 docs/advanced/psp/_category_.yml delete mode 100644 docs/advanced/psp/index.md delete mode 100644 docs/advanced/psp/managing-plugins.md delete mode 100644 docs/advanced/technical-reference/_category_.yml delete mode 100644 docs/advanced/technical-reference/index.md delete mode 100644 docs/guides/01-get-started.mdx delete mode 100644 docs/guides/dao/_category_.yml delete mode 100644 docs/guides/dao/create-a-dao.md delete mode 100644 docs/guides/dao/upgrading-dao.md delete mode 100644 docs/guides/framework/_category_.yml delete mode 100644 docs/guides/framework/deployemnts.md delete mode 100644 docs/guides/framework/tooling.md delete mode 100644 docs/guides/index.md delete mode 100644 docs/guides/plugin/_category_.yml delete mode 100644 docs/guides/plugin/develop-a-plugin.md delete mode 100644 docs/guides/plugin/install-plugin.md delete mode 100644 docs/guides/plugin/publish-a-plugin.md delete mode 100644 docs/guides/plugin/uninstall-a-plugin.md delete mode 100644 docs/guides/plugin/upgrade-a-plugin.md rename versioned_docs/version-1.3.0/osx/01-get-started.mdx => docs/osx/00-get-started.mdx (64%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/01-dao/01-actions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/01-dao/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/02-permissions/01-conditions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/02-permissions/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/03-plugins/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/01-core/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/01-dao-creation/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/01-plugin-repo-creation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/01-security-risk-mitigation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/02-plugin-management/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/03-ens-names.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/02-framework/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/03-framwork-dao.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/_category_.yml (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/01-how-it-works/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/01-dao/01-best-practices.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/01-dao/02-action-execution.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/01-dao/03-protocol-upgrades.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/01-dao/04-managing-plugins/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/01-dao/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/01-best-practices.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/02-plugin-types.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/01-initialization.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/02-implementation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/03-setup.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/01-initialization.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/02-implementation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/03-setup.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/04-subsequent-builds.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/05-updating-versions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/01-proposals.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/02-membership.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/06-meta-tx-plugins.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/07-publication/01-versioning.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/07-publication/02-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/07-publication/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/02-plugin-development/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/_category_.yml (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/02-how-to-guides/index.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/core/dao/DAO.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/core/dao/IEIP4824.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/core/permission/PermissionManager.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/core/utils/CallbackHandler.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/dao/DAOFactory.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/dao/DAORegistry.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/repo/IPluginRepo.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/repo/PluginRepo.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/repo/PluginRepoFactory.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/repo/PluginRepoRegistry.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/repo/placeholder/PlaceholderSetup.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/setup/PluginSetupProcessor.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/plugin/setup/PluginSetupProcessorHelpers.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/utils/InterfaceBasedRegistry.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/utils/RegistryUtils.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/utils/ens/ENSMigration.md (100%) rename docs/{advanced/technical-reference => osx/03-reference-guide}/framework/utils/ens/ENSSubdomainRegistrar.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/03-reference-guide/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/01-create-dao.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/02-deposit-eth.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/03-deposit-erc20.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/04-deposit-erc721.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/05-deposit-erc1155.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/06-get-dao.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/07-get-daos.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/08-get-balances.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/09-get-transfers.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/10-set-allowance.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/11-pin-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/12-prepare-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/13-get-protocol-version.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/14-prepare-uninstallation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/15-prepare-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/16-is-plugin-update-valid.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/17-is-plugin-update-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/18-is-dao-update-valid.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/19-is-dao-update-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/20-get-plugin-preparations.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/01-client/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/01-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/02-create-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/03-create-proposal-with-actions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/04-can-approve.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/05-approve-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/06-can-execute.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/07-execute-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/08-get-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/09-get-proposals.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/10-get-voting-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/11-get-members.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/12-pin-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/13-prepare-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/14-prepare-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/15-is-member.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/02-multisig-client/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/01-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/02-create-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/03-create-proposal-with-actions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/04-can-vote.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/05-vote-on-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/06-can-execute.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/07-execute-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/08-get-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/09-get-proposals.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/10-get-voting-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/11-get-members.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/12-get-token.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/13-pin-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/14-prepare-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/15-wrap-tokens.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/16-unwrap-tokens.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/17-delegate-tokens.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/18-undelegate-tokens.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/19-get-delegate.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/20-is-governance-token-compatible.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/21-prepare-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/22-is-member.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/03-tokenVoting-client/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/01-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/02-create-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/03-create-proposal-with-actions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/04-can-vote.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/05-vote-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/06-can-execute.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/07-execute-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/08-get-proposal.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/09-get-proposals.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/10-get-voting-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/11-get-members.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/12-pin-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/13-prepare-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/14-prepare-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/15-is-member.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/04-addresslistVoting-client/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/01-find-interface.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/02-grant-permission.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/03-grant-with-condition.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/04-revoke-permissions.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/05-register-standard-callback.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/06-withdraw.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/07-update-metadata.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/08-set-dao-uri.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/09-set-signature-validator.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/10-upgrade-to.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/11-upgrade-to-and-call.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-apply-installation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/01-find-interface.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/02-add-addresses.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/03-remove-addresses.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/04-update-plugin-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/01-find-interface.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/02-add-members.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/03-remove-members.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/04-update-plugin-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/13-apply-uninstallation.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/14-initialize-from.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/01-find-interface.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/02-mint-token.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/03-update-plugin-settings.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/15-apply-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/16-dao-update.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/05-encoders-decoders/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/01-examples/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/02-reference-guide/01-client.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/02-reference-guide/02-multisig.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/02-reference-guide/03-token-voting.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/02-reference-guide/04-addresslist-voting.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/02-reference-guide/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/03-update-security-check/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/_category_.yml (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/04-sdk/index.md (100%) rename {versioned_docs/version-1.3.0 => docs}/osx/index.md (100%) delete mode 100644 docs/overview/concepts/_category_.yml delete mode 100644 docs/overview/concepts/dao.md delete mode 100644 docs/overview/concepts/permission-manager.md delete mode 100644 docs/overview/concepts/plugin.md delete mode 100644 docs/overview/concepts/proposal.md delete mode 100644 docs/overview/overview/_category_.yml delete mode 100644 docs/overview/overview/index.md delete mode 100644 docs/overview/overview/use-cases.md delete mode 100644 docs/support/FAQ.md delete mode 100644 docs/support/best-practices/_category_.yml delete mode 100644 docs/support/best-practices/developing-plugin.md delete mode 100644 docs/support/best-practices/operating-dao.md delete mode 100644 docs/support/glossary.md delete mode 100644 docs/support/index.md delete mode 100755 scripts/prune-subgraph-docs.sh delete mode 100644 sidebars.js delete mode 100644 src/pages/get-started.tsx delete mode 100644 static/subgraph/index.md delete mode 100644 static/subgraph/schema-introspection-partial.json delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/DAO.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/IEIP4824.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/core/permission/PermissionManager.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/core/utils/CallbackHandler.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAOFactory.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAORegistry.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/RegistryUtils.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSMigration.md delete mode 100644 versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md delete mode 100644 versioned_docs/version-1.3.0/osx/subgraph/01-query-examples/index.md delete mode 100644 versioned_docs/version-1.3.0/osx/subgraph/_category_.yml delete mode 100644 versioned_docs/version-1.3.0/osx/subgraph/index.md delete mode 100644 versioned_sidebars/version-1.3.0-sidebars.json delete mode 100644 versions.json diff --git a/docs/advanced/dao/00-introduction.md b/docs/advanced/dao/00-introduction.md deleted file mode 100644 index a5b32608..00000000 --- a/docs/advanced/dao/00-introduction.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Introduction -sidebar_label: Introduction -sidebar_position: 0 ---- - -## The DAO Contract: The Identity and Basis of Your Organization - -In this section, you will learn about the core functionality of every Aragon OSx DAO. - -The `DAO` contract is the identity and basis of your -organization. It is the address carrying the DAO’s ENS name, metadata, -and holding the funds. Furthermore, it has **six base functionalities** being commonly found in other DAO frameworks in the ecosystem. - -### 1. Execution of Arbitrary Actions - -The most important and basic functionality of your DAO is the **execution of arbitrary actions**, -which allows you to execute the DAO's own functions as well as -interacting with the rest of the world, i.e., calling methods in other -contracts and sending assets to other addresses. - -:::note - -Typically, actions are scheduled in a proposal in a governance [plugin installed to your DAO](/docs/advanced/plugin/overview.md). -::: - -Multiple `Action` structs can be put into one `Action[]` array and executed in a single transaction via the `execute` function. To learn more about actions and advanced features of the DAO executor, visit the [A Deep Dive Into Actions](/1.3.0/osx/how-it-works/core/dao/actions) section. - -### 2. Asset Management - -The DAO provides basic **asset management** functionality to deposit, withdraw, and keep track of - -- native -- [ERC-20 (Token Standard)](https://eips.ethereum.org/EIPS/eip-20), -- [ERC-721 (NFT Standard)](https://eips.ethereum.org/EIPS/eip-721), and -- [ERC-1155 (Multi Token Standard)](https://eips.ethereum.org/EIPS/eip-1155) - -tokens in the treasury. -In the future, more advanced asset management and finance functionality can be added to your DAO in the form of [plugins](/docs/advanced/plugin/overview.md). - -### 3. Upgradeability - -Your DAO contract has the ability to be upgraded to a newer version (see [Upgrade your DAO](/1.3.0/osx/how-to-guides/dao/protocol-upgrades)) -if a new version of Aragon OSx is released in the future. These -upgrades allow your DAO to smoothly transition to a new protocol version -unlocking new features. - -### 4. Callback Handling - -To interact with the DAO, external contracts might require certain callback functions to be present. -Examples are the `onERC721Received` and `onERC1155Received` / `onERC1155BatchReceived` functions required by the [ERC-721 (NFT Standard)](https://eips.ethereum.org/EIPS/eip-721) and [ERC-1155 (Multi Token Standard)](https://eips.ethereum.org/EIPS/eip-1155) tokens. -Our `CallbackHandler` allows to register the required callback responses dynamically so that the DAO contract does not need to be upgraded. - -### 5. Signature Validation - -Currently, -externally owned accounts (EOAs) can sign messages with their -associated private keys, but contracts cannot. -An exemplary use case is a decentralized exchange with an off-chain -order book, where buy/sell orders are signed messages. -To accept such a request, both, the external service provider and caller -need to follow a standard with which the signed message of the caller -can be validated. - -By supporting the [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271) standard, your DAO can validate signatures via its `isValidSignature` function that forwards the call to a signature validator contract. - -### 6. Permission Management - -Lastly, -it is essential that only the right entities (e.g., the DAO itself or -trusted addresses) have permission to use the above-mentioned -functionalities. This is why Aragon OSx DAOs contain a flexible and -battle-tested **permission manager** being able to assign -permissions for the above functionalities to specific addresses. -Although possible, the permissions to execute arbitrary actions or -upgrade the DAO should not be given to EOAs as this poses a security -risk to the organization if the account is compromised or acts -adversarial. Instead, the permissions for the above-mentioned -functionalities are better restricted to the `DAO` contract itself and triggered through governance [plugins](/docs/advanced/plugin/overview.md) that you can install on your DAO. - -To learn more, visit the [Permission Manager](/docs/advanced/permissions/index.md) section. diff --git a/docs/advanced/dao/01-creation.md b/docs/advanced/dao/01-creation.md deleted file mode 100644 index 493817c1..00000000 --- a/docs/advanced/dao/01-creation.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Creation -sidebar_label: Creation -sidebar_position: 1 ---- - -# Dao Creation - -Two framework contracts manage the `DAO` contract creation process: - -- The [`DAOFactory`](docs/osx/reference-guide/framework/dao/DAOFactory). -- The [`DAORegistry`](docs/osx/reference-guide/framework/dao/DAORegistry). - -The `DAOFactory` is the contract that creates and sets up a `DAO` for you. The `DAORegistry` is used by the `DAOFactory` to register the DAOs that are created. Plugins are installed in the DAO by the `PluginSetupProcessor`. - -![Creation Schema](/optimized-svg/advanced/dao/aragon-osx-dao-creation.drawio.svg) - -## `DAOFactory` - -The `DAOFactory` creates and sets up a `DAO` for you in four steps with the `createDao` function. The function requires the `DAOSettings` including: - -- The trusted forwarder address for future [ERC-2771 (Meta Transaction)](https://eips.ethereum.org/EIPS/eip-2771) compatibility that is set to `address(0)` for now -- The ENS name (to be registered under the `dao.eth` domain) -- The [ERC-4824 (Common Interfaces for DAOs)](https://eips.ethereum.org/EIPS/eip-4824) `daoURI` -- Optional metadata - -The DAO also requires an array of `PluginSettings` containing `PluginSetup` and its respective setup data for the plugins to be installed in the DAO. - -When the `createDao` function is called in the `DAOFactory` this triggers a four step process for creating a DAO: - -1. Creates a new DAO by deploying an [ERC-1967](https://eips.ethereum.org/EIPS/eip-1967) proxy pointing to the latest Aragon OSx `DAO` implementation and becomes the initial owner. -2. Registers the new contract in the [`DAORegistry`](/docs/advanced/dao/01-creation.md#daoregistry). -3. Installs the plugins using the `PluginSetupProcessor` (see also the section about [the plugin setup process](/docs/advanced/psp/index.md)). -4. Sets the [native permissions](/docs/advanced/dao/02-permissions.md) of the `DAO` and revokes its own ownership. - -### Plugins - -When calling `createDao` an array of `PluginSettings` are requested. A DAO cannot be created without at least one plugin. The DAO contract works as a permission manager system but it is agnostic to the type of governance that you want to use to manage the DAO. We currently provide two plugins that can be used for governing your DAO: - -- `Multisig` -- `TokenVoting` - -If none of this options meet your requirements you can also build your own governance plugin, check our tutorial on ["How to build a plugin?"](/1.3.0/osx/how-to-guides/plugin-development/) to get started. - -## `DAORegistry` - -The `DAORegistry` is used by the `DAOFactory` and contains the `register` function - -@aragon/framework/dao/DAORegistry.sol - -```solidity -function register( - IDAO dao, - address creator, - string calldata subdomain -) external auth(REGISTER_DAO_PERMISSION_ID); - -``` - -the `register` function requires the `REGISTER_DAO_PERMISSION_ID`, this permission currently held only by the `DAOFactory`. This implies that the only way of creating DAOs that get registered in our `DAORegistry` is via the `createDao` function in the `DaoFactory` contract. - -If the requested ENS `subdomain` name [is valid](/docs/advanced/ens.md) and not taken, the `DAORegistry` registers the subdomain and adds the `DAO` contract address to the `DAORegistry`. -If the `subdomain` parameter is non-empty (not `""`) and still available, the ENS name will be registered. If the registration was successful, an event a `DAORegistered` event is emitted. This event contains the DAO address, the creator address and the subdomain. - -In case you want to verify that you DAO got registered in the `DAORegistry` you can call `entries(address)` and it will return `true` if the DAO is registered - -For more details visit the [`DAORegistry` reference guide entry](/docs/advanced/technical-reference/framework/dao/DAORegistry.md). - -## Events - -When creating a DAO there is two main events that you'll be looking for: - -- `DAORegistered` -- `InstallationApplied` - -When the `createDao` function is called in the `DAORegistry` emits the `DaoRegistered` event. This event contains the DAO address, the creator address and the subdomain. - -```solidity -event DAORegistered( - address indexed dao, - address indexed creator, - string subdomain -); -``` - -The `InstallationApplied` event is emitted when the `PluginSetupProcessor` finishes installing the plugins in the DAO. - -```solidity -event InstallationApplied( - address indexed dao, - address indexed plugin, - bytes32 preparedSetupId, - bytes32 appliedSetupId -); -``` - -There are a set of events emitted by the `DAO` contract itself, you can find more information about them in the [`DAO` reference guide entry](/docs/advanced/technical-reference/core/dao/DAO.md). diff --git a/docs/advanced/dao/02-permissions.md b/docs/advanced/dao/02-permissions.md deleted file mode 100644 index 169df934..00000000 --- a/docs/advanced/dao/02-permissions.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Permissions -sidebar_label: Permissions -sidebar_position: 2 ---- - -# DAO Permissions - -The following functions in the DAO are permissioned: - -| Functions | Permission Identifier | Description | -| --------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | -| `grant`, `grantWithCondition`, `revoke` | `ROOT_PERMISSION_ID` | Required to manage permissions of the DAO and associated plugins. | -| `execute` | `EXECUTE_PERMISSION_ID` | Required to execute arbitrary actions. | -| `_authorizeUpgrade` | `UPGRADE_DAO_PERMISSION_ID` | Required to upgrade the DAO (via the [UUPS](https://eips.ethereum.org/EIPS/eip-1822)). | -| `setMetadata` | `SET_METADATA_PERMISSION_ID` | Required to set the DAO’s metadata and [DAOstar.one DAO URI](https://eips.ethereum.org/EIPS/eip-4824). | -| `setTrustedForwarder` | `SET_TRUSTED_FORWARDER_PERMISSION_ID` | Required to set the DAO’s trusted forwarder for meta transactions. | -| `registerStandardCallback` | `REGISTER_STANDARD_CALLBACK_PERMISSION_ID` | Required to register a standard callback for an [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID. | - -Plugins installed on the DAO might introduce other permissions and associated permission identifiers, these additional permissions are specified by the plugin itself. diff --git a/docs/advanced/dao/_category_.yml b/docs/advanced/dao/_category_.yml deleted file mode 100644 index b845d371..00000000 --- a/docs/advanced/dao/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: DAO -link: null -position: 1 diff --git a/docs/advanced/ens.md b/docs/advanced/ens.md deleted file mode 100644 index 88f12c32..00000000 --- a/docs/advanced/ens.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: ENS -sidebar_label: ENS -sidebar_position: 5 ---- - -## Unique DAO and Plugin Repo Names - -To make DAOs and plugin repositories easily identifiable in the Aragon OSx ecosystem, we assign unique ENS names to them upon registration during the [DAO creation](/docs/advanced/dao/01-creation.md) and [plugin publishing](./plugin/repositories/factory-and-registry.md) processes. - -:::info -You can skip registering an ENS name for your DAO under the `dao.eth` by leaving the [`DAOSettings.subdomain` field](./technical-reference/framework/dao/DAOFactory.md#public-struct-daosettings) empty when calling the [`createDao`](./technical-reference/framework/dao/DAOFactory.md#external-function-createdao) function. -::: - -### Allowed Character Set - -We allow the following characters for the subdomain names: - -- Lowercase letters `a-z` -- Digits `0-9` -- The hyphen `-` - -This way, you can name and share the DAO or plugin repo you have created as `my-cool.dao.eth` or `my-handy.plugin.dao.eth` to make their addresses easily shareable and discoverable on ENS-supporting chains. diff --git a/docs/advanced/index.md b/docs/advanced/index.md deleted file mode 100644 index fdd8688f..00000000 --- a/docs/advanced/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: For Developers -sidebar_label: Introduction -sidebar_position: 0 ---- - -## What to find in this section? - -This section will contain docs. diff --git a/docs/advanced/permissions/_category_.yml b/docs/advanced/permissions/_category_.yml deleted file mode 100644 index a37f1f56..00000000 --- a/docs/advanced/permissions/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: false -collapsed: false -label: Permissions -link: null -position: 4 diff --git a/docs/advanced/permissions/conditions.md b/docs/advanced/permissions/conditions.md deleted file mode 100644 index 0eb8c24e..00000000 --- a/docs/advanced/permissions/conditions.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -title: Permission Conditions -sidebar_label: Permission Conditions -sidebar_position: 1 ---- - -## Permission Conditions - -Permission conditions relay the decision if an authorized call is permitted to another contract. -This contract must inherit from `PermissionCondition` and implement the `IPermissionCondition` interface. - -```solidity title="@aragon/osx/core/permission/IPermissionCondition.sol" -interface IPermissionCondition { - /// @notice This method is used to check if a call is permitted. - /// @param _where The address of the target contract. - /// @param _who The address (EOA or contract) for which the permissions are checked. - /// @param _permissionId The permission identifier. - /// @param _data Optional data passed to the `PermissionCondition` implementation. - /// @return allowed Returns true if the call is permitted. - function isGranted( - address _where, - address _who, - bytes32 _permissionId, - bytes calldata _data - ) external view returns (bool allowed); -} -``` - -By implementing the `isGranted` function, any number of custom conditions can be added to the permission. -These conditions can be based on - -- The specific properties of - - - The caller `who` - - The target `where` - -- The calldata `_data` of the function such as - - - Function signature - - Parameter values - -- General on-chain data such as - - - Timestamps - - Token ownership - - Entries in curated registries - -- off-chain data being made available through oracle services (e.g., [chain.link](https://chain.link/), [witnet.io](https://witnet.io/)) such as - - - Market data - - Weather data - - Scientific data - - Sports data - -The following examples illustrate - -## Examples - -:::caution -The following code examples serve educational purposes and are not intended to be used in production. -::: - -Let’s assume we have an `Example` contract managed by a DAO `_dao` containing a `sendCoins` function allowing you to send an `_amount` to an address `_to` and being permissioned through the `auth` modifier: - -```solidity title="Example.sol" -contract Example is Plugin { - constructor(IDAO _dao) Plugin(_dao) {} - - function sendCoins(address _to, uint256 _amount) external auth(SEND_COINS_PERMISSION_ID) { - // logic to send `_amount` coins to the address `_to`... - } -} -``` - -Let's assume you own the private key to address `0x123456...` and the `Example` contract was deployed to address `0xabcdef...`. -Now, to be able to call the `sendCoins` function, you need to `grant` the `SEND_COINS_PERMISSION_ID` permission to your wallet address (`_who=0x123456...`) for the `Example` contract (`_where=0xabcdef...`). -If this is the case, the function call will succeed, otherwise it will revert. - -We can now add additional constraints to it by using the `grantWithCondition` function. -Below, we show four exemplary conditions for different 4 different use cases that we could attach to the permission. - -### Condition 1: Adding Parameter Constraints - -Let’s imagine that we want to make sure that `_amount` is not more than `1 ETH` without changing the code of `Example` contract. - -We can realize this requirement by deploying a `ParameterConstraintCondition` condition. - -```solidity title="ParameterConstraintCondition.sol" -contract ParameterConstraintCondition is PermissionCondition { - uint256 internal maxValue; - - constructor(uint256 _maxValue) { - maxValue = _maxValue; - } - - function isGranted( - address _where, - address _who, - bytes32 _permissionId, - bytes calldata _data - ) external view returns (bool) { - (_where, _who, _permissionId); // Prevent compiler warnings resulting from unused arguments. - - (address _to, uint256 _amount) = abi.decode(_data, (address, uint256)); - - return _amount <= _maxValue; -} -``` - -Now, after granting the `SEND_COINS_PERMISSION_ID` permission to `_where` and `_who` via the `grantWithCondition` function and pointing to the `ParameterConstraintCondition` condition contract, the `_who` address can only call the `sendCoins` of the `Example` contract deployed at address `_where` successfully if `_amount` is not larger than `_maxValue` stored in the condition contract. - -### Condition 2: Delaying a Call With a Timestamp - -In another use-case, we might want to make sure that the `sendCoins` can only be called after a certain date. This would look as following: - -```solidity title="TimeCondition.sol" -contract TimeCondition is PermissionCondition { - uint256 internal date; - - constructor(uint256 _date) { - date = _date; - } - - function isGranted( - address _where, - address _who, - bytes32 _permissionId, - bytes calldata _data - ) external view returns (bool) { - (_where, _who, _permissionId, _data); // Prevent compiler warnings resulting from unused arguments - - return block.timestamp > date; - } -} -``` - -Here, the permission condition will only allow the call the `_date` specified in the constructor has passed. - -### Condition 3: Using Curated Registries - -In another use-case, we might want to make sure that the `sendCoins` function can only be called by real humans to prevent sybil attacks. For this, let's say we use the [Proof of Humanity (PoH)](https://www.proofofhumanity.id/) registry providing a curated list of humans: - -```solidity title="IProofOfHumanity.sol" -interface IProofOfHumanity { - function isRegistered(address _submissionID) external view returns (bool); -} - -contract ProofOfHumanityCondition is PermissionCondition { - IProofOfHumanity internal registry; - - constructor(IProofOfHumanity _registry) { - registry = _registry; - } - - function isGranted( - address _where, - address _who, - bytes32 _permissionId, - bytes calldata _data - ) external view returns (bool) { - (_where, _permissionId, _data); // Prevent compiler warnings resulting from unused arguments - - return registry.isRegistered(_who); - } -} -``` - -Here, the permission condition will only allow the call if the PoH registry confirms that the `_who` address is registered and belongs to a real human. - -#### Condition 4: Using a Price Oracle - -In another use-case, we might want to make sure that the `sendCoins` function can only be called if the ETH price in USD is above a certain threshold: - - -```solidity title="PriceOracleCondition.sol" -import '@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol'; - -contract PriceOracleCondition is PermissionCondition { - AggregatorV3Interface internal priceFeed; - - // Network: Goerli - // Aggregator: ETH/USD - // Address: 0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e - constructor() { - priceFeed = AggregatorV3Interface( - 0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e - ); - } - - function isGranted( - address _where, - address _who, - bytes32 _permissionId, - bytes calldata _data - ) external view returns (bool) { - (_where, _who, _permissionId, _data); // Prevent compiler warnings resulting from unused arguments - - ( - /*uint80 roundID*/, - int256 price, - /*uint startedAt*/, - /*uint timeStamp*/, - /*uint80 answeredInRound*/ - ) = priceFeed.latestRoundData(); - - return price > 9000 * 10**18; // It's over 9000! - } -} - -Here, we use [a data feed from a Chainlink oracle](https://docs.chain.link/docs/data-feeds/) providing us with the latest ETH/USD price on the Goerli testnet and require that the call is only allowed if the ETH price is over $9000. - -```` diff --git a/docs/advanced/permissions/index.md b/docs/advanced/permissions/index.md deleted file mode 100644 index 3f539093..00000000 --- a/docs/advanced/permissions/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Permission Manager -sidebar_label: Permission Manager -sidebar_position: 0 ---- - -## Managing Your DAO - -Here, you will learn how the permissions in Aragon OSx work, how they can be granted and revoked from wallets and contracts, and how they are managed through the DAO. - -As we mentioned earlier, it is essential that only the right person or contract can execute a certain action. As a developer, you might have seen or used [modifiers such as `onlyOwner`](https://docs.openzeppelin.com/contracts/2.x/api/ownership#Ownable) in contracts. This `onlyOwner` modifier provides basic access control to your contract functions: only the `owner` address is permitted to execute the function to which the modifier is attached. - -In Aragon OSx, we follow the same approach but provide more advanced functionality: -Each `DAO` contract includes a `PermissionManager` contract allowing to flexibly, securely, and collectively manage permissions through the DAO and, thus, govern its actions. -This `PermissionManager`, called `ACL` in previous Aragon OS versions, was one big reason why our protocol never got hacked. -The code and configuration of a DAO specifies which wallets or contracts (`who`) are allowed to call which authorized functions on a target contract (`where`). -Identifiers, permissions, and modifiers link everything together. - -## Permission Manager main functionalities - -### Permission Identifiers - -To differentiate between different permissions, permission **identifiers** are used that you will frequently find at the top of Aragon OSx contracts. They look something like this: - -```solidity title="@aragon/osx/core/dao/DAO.sol" -bytes32 public constant EXECUTE_PERMISSION_ID = keccak256("EXECUTE_PERMISSION"); -``` - -### Aragon Permissions - -A permission specifies an address `who` being allowed to call certain functions on a contract address `where`. In the `PermissionManager` contract, permissions are defined as the concatenation of the word `"PERMISSION"` with the `who` and `where` address, as well as the `bytes32` permission identifier `permissionId`. - -```solidity title="@aragon/osx/core/permission/PermissionManager.sol" -function permissionHash( - address _where, - address _who, - bytes32 _permissionId -) internal pure returns (bytes32) { - return keccak256(abi.encodePacked('PERMISSION', _who, _where, _permissionId)); -} -``` - -This concatenated information is then stored as `keccak256` hashes inside a mapping like this one: - -```solidity title="@aragon/osx/core/permission/PermissionManager.sol" -mapping(bytes32 => address) internal permissionsHashed; -``` - -Here, the `bytes32` keys are the permission hashes and the `address` values are either zero-address flags, such as `ALLOW_FLAG = address(2)` and `UNSET_FLAG = address(0)` indicating if the permission is set, or an actual address pointing to a `PermissionCondition` contract, which is discussed in the next section of this guide. - -### Authorization Modifiers - -Using **authorization modifiers** is how we make functions permissioned. Permissions are associated with functions by adding the `auth` modifier, which includes the permission identifier in the function’s definition header. - -For example, one can call the `execute` function in the DAO when the address making the call has been granted the `EXECUTE_PERMISSION_ID` permission. - -```solidity title="@aragon/osx/core/dao/DAO.sol" -function execute( - bytes32 callId, - Action[] calldata _actions, - uint256 allowFailureMap -) - external - override - auth(address(this), EXECUTE_PERMISSION_ID) - returns (bytes[] memory execResults, uint256 failureMap); -``` - -### Managing Permissions - -To manage permissions, the DAO contract has the `grant`, `revoke` and `grantWithCondition` functions in its public interface. - -#### Granting and Revoking Permissions - -The `grant` and `revoke` functions are the main functions we use to manage permissions. -Both receive the `_permissionId` identifier of the permission and the `_where` and `_who` addresses as arguments. - -```solidity title="@aragon/osx/core/permission/PermissionManager.sol" -function grant( - address _where, - address _who, - bytes32 _permissionId -) external auth(_where, ROOT_PERMISSION_ID); -``` - -To prevent these functions from being called by any address, they are themselves permissioned via the `auth` modifier and require the caller to have the `ROOT_PERMISSION_ID` permission in order to call them. - -:::note -Typically, the `ROOT_PERMISSION_ID` permission is granted only to the `DAO` contract itself. Contracts related to the Aragon infrastructure temporarily require it during the [DAO creation](/docs/advanced/dao/01-creation.md) and [plugin setup ](/docs/advanced/plugin/plugin-setup.md) processes. - -This means, that these functions can only be called through the DAO’s `execute` function that, in turn, requires the calling address to have the `EXECUTE_PERMISSION_ID` permission. - -Typically, the `EXECUTE_PERMISSION_ID` permission is granted to governance contracts (such as a majority voting plugin owned by the DAO or a multi-sig). Accordingly, a proposal is often required to change permissions. -Exceptions are, again, the [DAO creation](/docs/advanced/dao/01-creation.md) and [plugin setup ](/docs/advanced/plugin/plugin-setup.md) processes. -::: - -#### Granting Permission with Conditions - -Aragon OSx supports relaying the authorization of a function call to another contract inheriting from the `IPermissionCondition` interface. This works by granting the permission with the `grantWithCondition` function - -```solidity title="@aragon/osx/core/permission/PermissionManager.sol" -function grantWithCondition( - address _where, - address _who, - bytes32 _permissionId, - PermissionCondition _condition -) external auth(_where, ROOT_PERMISSION_ID) {} -``` - -and specifying the `_condition` contract address. This provides full flexibility to customize the conditions under which the function call is allowed. - -Typically, conditions are written specifically for and installed together with [plugins](/docs/advanced/plugin/overview.md). - -To learn more about this advanced topic and possible applications, visit the [permission conditions](/docs/advanced/permissions/conditions.md) section. - -#### Granting Permission to `ANY_ADDR` - -In combination with conditions, the arguments `_where` and `_who` can be set to `ANY_ADDR = address(type(uint160).max)`. -Granting a permission with `_who: ANY_ADDR` has the effect that any address can now call the function so that it behaves as if the `auth` modifier is not present. -Imagine, for example, you wrote a decentralized service - -```solidity -contract Service { - function use() external auth(USE_PERMISSION_ID); -} -``` - -Calling the `use()` function inside requires the caller to have the `USE_PERMISSION_ID` permission. Now, you want to make this service available to every user without uploading a new contract or requiring every user to ask for the permission. -By granting the `USE_PERMISSION_ID` to `_who: ANY_ADDR` on the contract `_where: serviceAddr` you allow everyone to call the `use()` function and you can add more conditions to it. If you later on decide that you want to be more selective about who is allowed to call it, you can revoke the permission to `ANY_ADDR`. - -Granting a permission with `_where: ANY_ADDR` to a condition has the effect that is granted on every contract. This is useful if you want to give an address `_who` permission over a large set of contracts that would be too costly or too much work to be granted on a per-contract basis. -Imagine, for example, that many instances of the `Service` contract exist, and a user should have the permission to use all of them. By granting the `USE_PERMISSION_ID` with `_where: ANY_ADDR`, to some user `_who: userAddr`, the user has access to all of them. If this should not be possible anymore, you can later revoke the permission. - -However, some restrictions apply. For security reasons, Aragon OSx does not allow you to use both, `_where: ANY_ADDR` and `_who: ANY_ADDR` in the same permission. Furthermore, the permission IDs of [permissions native to the `DAO` Contract](/docs/advanced/dao/02-permissions.md) cannot be used. -Moreover, if a condition is set, we return its `isGranted` result and do not fall back to a more generic one. The condition checks occur in the following order - -1. Condition with specific `_who` and specific `where`. -2. Condition with generic `_who: ANY_ADDR` and specific `_where`. -3. Condition with specific `_where` and generic `_who: ANY_ADDR`. diff --git a/docs/advanced/plugin/_category_.yml b/docs/advanced/plugin/_category_.yml deleted file mode 100644 index 822dc7b8..00000000 --- a/docs/advanced/plugin/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: Plugin -link: null -position: 3 diff --git a/docs/advanced/plugin/governance-plugins.md b/docs/advanced/plugin/governance-plugins.md deleted file mode 100644 index 8ae97a16..00000000 --- a/docs/advanced/plugin/governance-plugins.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Governance Plugins -sidebar_label: Governance Plugins -sidebar_position: 1 ---- - -A DAO can be understood as an arbitrary executor, a system or entity capable of performing a wide range of actions based on permissions it holds. Governance plugins are essential components of your DAO, allowing it to execute actions and manage its operations. - -While a DAO can technically function without a governance plugin by granting the `EXECUTE_PERMISSION_ID` to an EOA, this practice is generally discouraged as it defeats the purpose of decentralized governance. - -### Execute Permission - -The `EXECUTE_PERMISSION_ID` is one of the most critical permissions within your DAO. It allows the entity holding this permission, whether an EOA or a smart contract, to call the DAO's `execute` function. This function is essential for carrying out decisions and actions within the DAO. - -### Governance Plugin - -Governance plugins are characterized by the **ability to execute actions in the DAO** they have been installed on. Accordingly, the `EXECUTE_PERMISSION_ID` is granted to the governance plugin contract upon installation in the DAO. If using Aragon OSx protocol (DAOFactory `createDao` function) at least one plugin installation is required when deploying the DAO. - -```solidity -grant({ - where: installingDao, - who: governancePlugin, - permissionId: EXECUTE_PERMISSION_ID -}); -``` - -Granting this permission to a governance plugin ensures that the plugin can execute proposals and manage operations effectively on behalf of the DAO, upholding the principles of decentralized governance. - -More complex systems using more than one governance plugin are possible with Aragon OSx protocol by properly managing the permissions that relates the plugins and the DAO. - -### Aragon Governance Plugins - -Aragon offers several pre-developed governance plugins that you can use without needing to write your own: - -- [A token-voting plugin](https://github.com/aragon/token-voting-plugin): Results are based on what the majority votes and the vote's weight is determined by how many tokens an account holds. Ex: Alice has 10 tokens, Bob 2, and Alice votes yes, the yes wins. -- [Multisig plugin](https://github.com/aragon/multisig-plugin): A determined set of addresses is able to approve. Once `x` amount of addresses approve (as determined by the plugin settings), then the proposal automatically succeeds. -- [Admin plugin](https://github.com/aragon/admin-plugin): One address can create and immediately execute proposals on the DAO (full control). diff --git a/docs/advanced/plugin/metadata.md b/docs/advanced/plugin/metadata.md deleted file mode 100644 index efb49c4a..00000000 --- a/docs/advanced/plugin/metadata.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Plugin Metadata -sidebar_position: 5 ---- - -## Plugin Metadata Specification - -The plugin metadata is necessary to allow the App frontend to interact with any plugins: - -- Now: generic setup (installation, update, uninstallation) - - Allows the frontend to render the necessary fields for the input being required to setup the plugin (e.g., the list of initial members of the Multisig plugin) -- Future: render a UI in a generic way (buttons, text fields, flows) within the specs of the Open Design System (ODS) (e.g. manage the list of Multisig members or the approval settings) - -Currently, two kinds of metadata exist: - -1. Release metadata -2. Build metadata - -### Release Metadata - -The release metadata is a `.json` file stored on IPFS with its IPFS CID published for each release in the [PluginRepo](/docs/advanced/plugin/repositories/plugin-repo.md) (see also the section about [versioning](/docs/advanced/plugin/versioning.md)). - -The intention is to provide an appealing overview of each releases functionality. -It can be updated with each call to [`createVersion()`](/docs/advanced/technical-reference/framework/plugin/repo/IPluginRepo.md#external-function-createversion) in `IPluginRepo` by the repo maintainer. -It can be replaced at any time with [`updateReleaseMetadata()`](/docs/advanced/technical-reference/framework/plugin/repo/IPluginRepo.md#external-function-updatereleasemetadata) in `IPluginRepo` by the repo maintainer. - -The `release-metadata.json` file consists of the following entries: - -| Key | Type | Description | -| ----------- | ----------- | ---------------------------------------------------------------------------- | -| name | `string` | Name of the plugin (e.g. `"Multisig"`) | -| description | `string` | Description of the plugin release and its functionality. | -| images | UNSPECIFIED | Optional. Contains a series of images advertising the plugins functionality. | - -#### Example - -```json -{ - "name": "Multisig", - "description": "", - "images": {} -} -``` - -### Build Metadata - -The build metadata is a `.json` file stored on IPFS with its IPFS CID published for each build **only once** in the [PluginRepo](/docs/advanced/plugin/repositories/plugin-repo.md) (see also the section about [versioning](/docs/advanced/plugin/versioning.md)). - -The intention is to inform about the changes that were introduced in this build compared to the previous one and give instructions to the App frontend and other users on how to interact with the plugin setup and implementation contract. -It can be published **only once** with the call to [`createVersion()`](../../../03-reference-guide/framework/plugin/repo/IPluginRepo.md#external-function-createversion) in `IPluginRepo` by the repo maintainer. - -| Key | Type | Description | -| ----------- | ----------- | --------------------------------------------------------------------------------------------------------- | -| ui | UNSPECIFIED | A special formatted object containing instructions for the App frontend on how to render the plugin's UI. | -| change | `string` | Description of the code and UI changes compared to the previous build of the same release. | -| pluginSetup | `object` | Optional. Contains a series of images advertising the plugins functionality. | - -Each build metadata contains the following fields: - -- one `"prepareInstallation"` object -- one `"prepareUninstallation"` object -- 0 to N `"prepareUpdate"` objects enumerated from 1 to N+1 - -Each `"prepare..."` object contains: - -| Key | Type | Description | -| ----------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| description | `string` | The description of what this particular setup step is doing and what it requires the input for. | -| inputs | `object[]` | A description of the inputs required for this setup step following the [Solidity JSON ABI](https://docs.ethers.org/v5/api/utils/abi/formats/#abi-formats--solidity) format enriched with an additional `"description"` field for each element. | - -By following the Solidity JSON ABI format for the inputs, we followed an established standard, have support for complex types (tuples, arrays, nested versions of the prior) and allow for future extensibility (such as the human readable description texts that we have added). - -#### Example - -```json -{ - "ui": {}, - "change": "- The ability to create a proposal now depends on the membership status of the current instead of the snapshot block.\n- Added a check ensuring that the initial member list cannot overflow.", - "pluginSetup": { - "prepareInstallation": { - "description": "The information required for the installation.", - "inputs": [ - { - "internalType": "address[]", - "name": "members", - "type": "address[]", - "description": "The addresses of the initial members to be added." - }, - { - "components": [ - { - "internalType": "bool", - "name": "onlyListed", - "type": "bool", - "description": "Whether only listed addresses can create a proposal or not." - }, - { - "internalType": "uint16", - "name": "minApprovals", - "type": "uint16", - "description": "The minimal number of approvals required for a proposal to pass." - } - ], - "internalType": "struct Multisig.MultisigSettings", - "name": "multisigSettings", - "type": "tuple", - "description": "The initial multisig settings." - } - ], - "prepareUpdate": { - "1": { - "description": "No input is required for the update.", - "inputs": [] - } - }, - "prepareUninstallation": { - "description": "No input is required for the uninstallation.", - "inputs": [] - } - } - } -} -``` diff --git a/docs/advanced/plugin/overview.md b/docs/advanced/plugin/overview.md deleted file mode 100644 index 8e3ded8a..00000000 --- a/docs/advanced/plugin/overview.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Overview -sidebar_label: Overview -sidebar_position: 0 ---- - -## Aragon OSx Plugins - -As mentioned earlier, plugins built by Aragon and third-party developers can be added and removed from your DAO to adapt it to your needs. - -The management of these plugins is handled for you by the Aragon OSx protocol so that the process of - -- Releasing new plugins as well as -- Installing, updating, and uninstalling them to your DAO - -becomes as streamlined as possible. - -### What Does a Plugin Consist Of? - -An Aragon OSx Plugin consists of: - -- The `Plugin` contract - - - contains the plugin's implementation logic - -- The `PluginSetup` contract - - - referencing the `Plugin` implementation internally - - containing the instructions needed to install, update, and uninstall the plugin into the DAO - -- A version tag consisting of a - - - Release number - - Build number - -- A metadata URI pointing to a `JSON` file containing the - - - AragonApp frontend information - - Information needed for the setup ABI - -
- -![](/optimized-svg/plugins/plugin-version.drawio.svg) - -

- A schematic depiction of a plugin bundle consisting of a version tag, the plugin setup contract pointing to the plugin implementation contract, and a metadata URI. -

- -
- -### What Does the Plugin Framework Consist Of? - -The Aragon OSx Plugin Framework consists of: - -- The `PluginRepoFactory` contract - - - creates a `PluginRepo` for a plugin - - registers it to the `PluginRepoRegistry` - -- The `PluginRepoRegistry` contract - - - listing all the plugins managed through the Aragon OSx protocol - -- The `PluginRepo` contract - - - versions the releases of a Plugin - -
- -![](/optimized-svg/framework/aragon-os-plugin-framework.drawio.svg) - -

- A schematic depiction of plugins's framework. PluginRepoFactory creates and registers PluginRepo to PluginRepoRegistry. PluginRepo versions PluginSetup processed by PluginSetupProcessor. -

- -
diff --git a/docs/advanced/plugin/plugin-setup.md b/docs/advanced/plugin/plugin-setup.md deleted file mode 100644 index faa607ea..00000000 --- a/docs/advanced/plugin/plugin-setup.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: PluginSetup Contract -sidebar_label: PluginSetup Contract -sidebar_position: 2 ---- - -## The PluginSetup Smart Contract - -The `PluginSetup` contract is written by you, the plugin developer. It contains the instructions needed to install, update, and uninstall the plugin into the DAO. This is done through granting or revoking permissions, enabling plugins to perform actions within the scope of the DAO. - -![Aragon OSx Plugins](/img/plugins/what_is_a_plugin.png) - -Each `PluginSetup` contract is in charge of deploying its respective Plugin instance. These instances are tailored to the specific DAO they are deployed to, with unique parameters set during deployment. - -### Security Considerations - -The `PluginSetup` processing is **security critical** because the permissions it handles are granted to third-party contracts. - -:::caution -Be careful when using `PluginSetup`s not hosted by the Aragon OSx protocol. These setups may not be audited and could grant `EXECUTE_PERMISSION_ID` to malicious entities, giving them full control of your DAO. -::: - -### Responsibilities of PluginSetup - -The [`PluginSetup`](https://github.com/aragon/osx-commons/blob/main/contracts/src/plugin/setup/PluginSetup.sol) is responsible for: - -- Deploying new contracts: Setting up the necessary contracts that the plugin will use. -- Initializing storage variables: Setting initial values for any required storage variables. -- Deprecating/decommissioning outdated contracts: Removing or disabling old helper contracts that are no longer needed. -- Configuring governance settings: Adjusting settings or attributes related to the DAO’s governance. - -### PluginSetup Workflow - -The typical workflow for a PluginSetup contract involves: - -1. **Preparation for Installation**: Gathering and configuring all the necessary components and parameters for the plugin. -2. **Deployment**: Deploying the plugin with the specified parameters. -3. **Permission Handling**: Preparing the granting or revoking permissions as required to ensure the plugin can operate within the DAO. -4. **Update and Uninstallation**: Providing mechanisms to update the plugin to new versions or uninstall it when it’s no longer needed. - -You can review how to build a `PluginSetup` contract [here](TODO). diff --git a/docs/advanced/plugin/plugin-types.md b/docs/advanced/plugin/plugin-types.md deleted file mode 100644 index 02d6a485..00000000 --- a/docs/advanced/plugin/plugin-types.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Plugin Types -sidebar_label: Plugin Types -sidebar_position: 3 ---- - -## The Base Contract for Your Plugin - -Although it is not mandatory to choose one of our interfaces as the base contracts for your plugins, we do offer some options for you to inherit from and speed up development. - -The needs of your plugin determine the type of plugin you may want to choose. This is based on: - -- the need for a plugin's upgradeability -- whether you need it deployed by a specific deployment method -- whether you need it to be compatible with meta transactions - -In this regard, we provide 3 options for base contracts you can choose from: - -- `Plugin` for instantiation via `new` -- `PluginClones` for [minimal proxy pattern (ERC-1167)](https://eips.ethereum.org/EIPS/eip-1167) deployment -- `PluginUUPSUpgradeable` for [UUPS pattern (ERC-1822)](https://eips.ethereum.org/EIPS/eip-1822) deployment - -Let's take a look at what this means for you. - -### Upgradeability & Deployment - -Upgradeability and the deployment method of a plugin contract go hand in hand. The motivation behind upgrading smart contracts is nicely summarized by OpenZeppelin: - -> Smart contracts in Ethereum are immutable by default. Once you create them there is no way to alter them, effectively acting as an unbreakable contract among participants. -> -> However, for some scenarios, it is desirable to be able to modify them [...] -> -> - to fix a bug [...], -> - to add additional features, or simply to -> - change the rules enforced by it. -> -> Here’s what you’d need to do to fix a bug in a contract you cannot upgrade: -> -> 1. Deploy a new version of the contract -> 2. Manually migrate all state from the old one contract to the new one (which can be very expensive in terms of gas fees!) -> 3. Update all contracts that interacted with the old contract to use the address of the new one -> 4. Reach out to all your users and convince them to start using the new deployment (and handle both contracts being used simultaneously, as users are slow to migrate) -> -> _source: [OpenZeppelin: What's in an upgrade](https://docs.openzeppelin.com/learn/upgrading-smart-contracts#whats-in-an-upgrade)_ - -Some key things to keep in mind: - -- With upgradeable smart contracts, you can modify their code while keep using or even extending the storage (see the guide [Writing Upgradeable Contracts](https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable) by OpenZeppelin). -- To enable upgradeable smart contracts (as well as cheap contract clones), the proxy pattern is used. -- Depending on your upgradeability requirements and the deployment method you choose, you can also greatly reduce the gas costs to distribute your plugin. However, the upgradeability and deployment method can introduce caveats during [the plugin setup](/docs/advanced/plugin/plugin-setup.md), especially when updating from an older version to a new one. - -The following table compares the different deployment methods with their benefits and drawbacks: - -| | `new` Instantiation | Minimal Proxy (Clones) | Transparent Proxy | UUPS Proxy | -| -------------- | --------------------------------------------- | ------------------------------------------------- | ------------------------------------------------ | --------------------------------------------- | -| upgradeability | no | no | yes | yes | -| gas costs | high | very low | moderate | low | -| difficulty | low | low | high | high | - -Accordingly, we recommend to use [minimal proxies (ERC-1167)](https://eips.ethereum.org/EIPS/eip-1167) for non-upgradeable and [UUPS proxies (1822)](https://eips.ethereum.org/EIPS/eip-1822) for upgradeable plugin. -To help you with developing and deploying your plugin within the Aragon infrastructure, we provide the following implementation that you can inherit from: - -- `Plugin` for instantiation via `new` -- `PluginClones` for [minimal proxy pattern (ERC-1167)](https://eips.ethereum.org/EIPS/eip-1167) deployment -- `PluginUUPSUpgradeable` for [UUPS pattern (ERC-1822)](https://eips.ethereum.org/EIPS/eip-1822) deployment - -#### Caveats of Non-upgradeable Plugins - -Aragon plugins using the non-upgradeable smart contracts bases (`Plugin`, `PluginCloneable`) can be cheap to deploy (i.e., using clones) but **cannot be updated**. - -Updating, in distinction from upgrading, will call Aragon OSx' internal process for switching from an older plugin version to a newer one. - -:::caution -To switch from an older version of a non-upgradeable contract to a newer one, the underlying contract has to be replaced. In consequence, the state of the older version is not available in the new version anymore, unless it is migrated or has been made publicly accessible in the old version through getter functions. -::: diff --git a/docs/advanced/plugin/repositories/_category_.yml b/docs/advanced/plugin/repositories/_category_.yml deleted file mode 100644 index 7e8e95b1..00000000 --- a/docs/advanced/plugin/repositories/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: Framework -link: null -position: 7 diff --git a/docs/advanced/plugin/repositories/factory-and-registry.md b/docs/advanced/plugin/repositories/factory-and-registry.md deleted file mode 100644 index 6a7a8ed1..00000000 --- a/docs/advanced/plugin/repositories/factory-and-registry.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: PluginRepo Factory and Registry -sidebar_label: Factory and Registry -sidebar_position: 1 ---- - -## Publishing a Plugin: Creating a PluginRepo - -To be available for installation in the Aragon OSx framework, a `PluginRepo` must be created for each plugin. The `PluginRepo` creation process is handled by: - -- The [`PluginRepoFactory`](/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoFactory.md): who creates the `PluginRepo` instance for each plugin to hold all plugin versions -- The [`PluginRepoRegistry`](/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoRegistry.md): who registers the Plugin into the Protocol for DAOs to install. - -### The `PluginRepoFactory` Contract - -The `PluginRepoFactory` is the contract in charge of creating the first version of a plugin. It does this through the `createPluginRepoWithFirstVersion` function which creates a `PluginRepo` instance for the plugin with the first release and first build (`v1.1`). - -```solidity title="@aragon/framework/repo/PluginRepoFactory.sol" -/// @notice Creates and registers a `PluginRepo` with an ENS subdomain and publishes an initial version `1.1`. -/// @param _subdomain The plugin repository subdomain. -/// @param _pluginSetup The plugin factory contract associated with the plugin version. -/// @param _maintainer The plugin maintainer address. -/// @param _releaseMetadata The release metadata URI. -/// @param _buildMetadata The build metadata URI. -/// @dev After the creation of the `PluginRepo` and release of the first version by the factory, ownership is transferred to the `_maintainer` address. -function createPluginRepoWithFirstVersion( - string calldata _subdomain, - address _pluginSetup, - address _maintainer, - bytes memory _releaseMetadata, - bytes memory _buildMetadata -) external returns (PluginRepo pluginRepo); -``` - -It also registers the plugin in the Aragon OSx `PluginRepoRegistry`contract with an [ENS subdomain](/docs/advanced/ens.md) under the `plugin.dao.eth` domain managed by Aragon. - -Additional to the information required by the [`createVersion` function discussed earlier](/docs/advanced/plugin/repositories/plugin-repo.md#the-pluginrepo-contract), it receives: - -- A valid ENS `_subdomain` unique name composed of letters from a-z, all in lower caps, separated by a `-`. For ex: `token-voting-plugin`. -- The address of the plugin repo maintainer who ends up having the `ROOT_PERMISSION_ID`, `MAINTAINER_PERMISSION_ID`, and `UPGRADE_REPO_PERMISSION_ID` permissions. These permissions enable the maintainer to call the internal `PermissionManager`, the `createVersion` and `updateReleaseMetadata` functions as well as upgrading the plugin contract. - -For more details visit the [`PluginRepoFactory` Reference Guide entry](/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoFactory.md). - -### The `PluginRepoRegistry` Contract - -The `PluginRepoRegistry` contract is the central contract listing all the plugins managed through the Aragon OSx protocol. The `PluginRepoFactory` calls on the `PluginRepoRegistry` to register the plugin in the Aragon OSx protocol. - -```solidity title="@aragon/framework/PluginRepoRegistry.sol" -/// @notice Registers a plugin repository with a subdomain and address. -/// @param subdomain The subdomain of the PluginRepo. -/// @param pluginRepo The address of the PluginRepo contract. -function registerPluginRepo( -string calldata subdomain, -address pluginRepo -) external auth(REGISTER_PLUGIN_REPO_PERMISSION_ID) { - ... -} -``` - -For more details visit the [`PluginRepoRegistry` reference guide entry](/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoRegistry.md). diff --git a/docs/advanced/plugin/repositories/plugin-repo.md b/docs/advanced/plugin/repositories/plugin-repo.md deleted file mode 100644 index 5b944427..00000000 --- a/docs/advanced/plugin/repositories/plugin-repo.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Plugin Repositories -sidebar_label: PluginRepo -sidebar_position: 0 ---- - -## What are Plugin Repositories? - -Each plugin has its own Plugin Repository, unique ENS name, and on-chain repository contract, the `PluginRepo`, in which different versions of the plugin are stored for reference using version tags constituted by a **release** and **build** number. - -Different versions might contain: - -- bug fixes -- new features -- breaking changes - -Each `PluginRepo` contract, associated with a specific plugin, is registered in the Aragon OSx [`PluginRepoRegistry`](/docs/advanced/plugin/repositories/factory-and-registry.md#the-pluginreporegistry-contract) and carry their own [ENS name](/docs/advanced/ens.md) that the creator chooses. - -
- -![Schematic depiction of the versioning taking place in the PluginRepoRegistry.](/optimized-svg/plugins/plugin-repo-overview.drawio.svg) - -

- Overview of the plugin versioning and registry in the Aragon OSx protocol. The `PluginRepoRegistry` contract, which is a curated list of ENS named `PluginRepo` contracts, is shown on the left. Each `PluginRepo` contract maintains a list of versions of the `PluginSetup` contract (internally referencing the `Plugin` implementation contract) and the associated UI building blocks as a URI, exemplarily shown on the right. -

- -
- -### The `PluginRepo` Contract - -The `PluginRepo` contract versions the releases of a `Plugin`. The first version of a plugin is always published as release 1 and build 1 (version tag `1.1`). -When you publish the first plugin version, a new plugin repository is automatically created for you by the Aragon OSx protocol, with you as the maintainer. The creation process is described in the [plugin repo creation process](./factory-and-registry.md) section. - -The `PluginRepo` contract is [UUPS upgradeable](https://eips.ethereum.org/EIPS/eip-1822), inherits from the [`PermissionManager`](/docs/advanced/permissions/index.md) and allows the maintainer of the repository to create new versions with the `createVersion` function: - -```solidity title="@aragon/framework/repo/PluginRepo.sol" -/// @notice Creates a new plugin version as the latest build for an existing release number or the first build for a new release number for the provided `PluginSetup` contract address and metadata. -/// @param _release The release number. -/// @param _pluginSetupAddress The address of the plugin setup contract. -/// @param _buildMetadata The build metadata URI. -/// @param _releaseMetadata The release metadata URI. -function createVersion( - uint8 _release, - address _pluginSetup, - bytes calldata _buildMetadata, - bytes calldata _releaseMetadata -) external auth(address(this), MAINTAINER_PERMISSION_ID); -``` - -### Function Arguments: - -1. **`_release`**: The release number to create the build for. If the release number exists already (e.g., release `1`), it is registered as the latest build (e.g., `1.3` if the previous build was `1.2`). If it is a new release number, the build number is `1` (e.g., `2.1`). -2. **\_pluginSetup**: The address of the `PluginSetup` contract internally referencing the implementation contract (to copy, proxy, or clone from it) and taking care of [installing, updating to, and uninstalling](/docs/advanced/plugin/plugin-setup.md#security-considerations) this specific version. -3. **`_buildMetadata`**: URI pointing to a JSON file containing the UI data, setup data, and change description for this specific version. -4. **`_releaseMetadata`**: URI pointing to a JSON file containing the plugin name, description, as well as optional data such as images to be shown in the aragonApp frontend. - -Other functions present in the contract allow you to query previous versions and to update the release metadata. For more details visit the [`PluginRepo` reference guide entry](/docs/advanced/technical-reference/framework/plugin/repo/PluginRepo.md). - -The `PluginRepo` is created for you when you publish the `PluginSetup` contract of your first version to the Aragon OSx protocol, which is explained in the next section: [The Plugin Repo Creation Process](/docs/advanced/plugin/repositories/factory-and-registry.md). diff --git a/docs/advanced/plugin/security-risk-mitigation.md b/docs/advanced/plugin/security-risk-mitigation.md deleted file mode 100644 index 3a189310..00000000 --- a/docs/advanced/plugin/security-risk-mitigation.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Plugin Security and Risks -sidebar_label: Security and Risks -sidebar_position: 6 ---- - -## Risks and Their Mitigation - -Extending the functionality of your DAO in the form of plugins can introduce risks, particularly, if this code comes from unaudited and untrusted sources. - -### Risks - -If a plugin has a bug or vulnerability that can be exploited, this can result in loss of funds or compromise the DAO. - -Besides, standard vulnerabilities such as - -- Re-entrancy -- Default function visibility -- Leaving contracts uninitialized -- Time or oracle manipulation attacks -- Integer overflow & underflow - -that might be carelessly or intentionally caused, a malicious plugin can hide **backdoors** in its code or request **elevated permissions** in the installation, upgrade, or uninstallation process to the attacker. - -#### Backdoors - -- [metamorphic contracts](https://a16zcrypto.com/metamorphic-smart-contract-detector-tool/) (contracts, that can be redeployed with new code to the same address) -- malicious repurposing of storage in an update of an upgradeable plugin contract - - - -#### Permissions - -Examples for elevated permissions, are the [permissions native to the DAO contract](/docs/advanced/dao/02-permissions.md) such as - -- `ROOT_PERMISSION_ID` -- `EXECUTE_PERMISSION_ID` -- `UPGRADE_DAO_PERMISSION_ID` - -That should never be granted to untrusted addresses as they can be used to take control over your DAO. - -Likewise, one must be careful to not lock your DAO accidentally by - -- uninstalling the last governance plugin with `EXECUTE_PERMISSION_ID` permission -- revoking the `ROOT_PERMISSION_ID` permission from itself or -- choosing governance settings and execution criteria that most likely can never be met (e.g., requiring 100% participation for a token vote to pass) - -### Mitigation - -To mitigate the risks mentioned above, proposals requesting the setup of one or multiple plugins must be carefully examined and reviewed by inspecting - -- The implementation contract -- The setup contract, i.e., - - The installation and deployment logic - - The requested permission - - The helper contracts accompanying the plugin -- The UI components, i.e., - - Misleading (re-)naming of input fields, buttons, or other elements - -Generally, we recommend only installing plugins from trusted, verified sources such as those verified by Aragon. - -More information can be found in the How-to guides - -- [Operating your DAO](/1.3.0/osx/how-to-guides/dao/) -- [Developing a Plugin](/1.3.0/osx/how-to-guides/plugin-development/) diff --git a/docs/advanced/plugin/versioning.md b/docs/advanced/plugin/versioning.md deleted file mode 100644 index 0bf389b0..00000000 --- a/docs/advanced/plugin/versioning.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Plugin Versioning -sidebar_position: 4 ---- - -## Aragon OSx versioning system - -The Aragon OSx protocol has an on-chain versioning system built-in, which distinguishes between releases and builds. - -- **Releases** contain breaking changes, which are incompatible with preexisting installations. Updates to a different release are not possible. Instead, you must install the new plugin release and uninstall the old one. -- **Builds** are minor/patch versions within a release, and they are meant for compatible upgrades only (adding a feature or fixing a bug without changing anything else). - -Builds are particularly important for `UUPSUpgradeable` plugins, whereas a non-upgradeable plugin will work off of only releases. - -Given a version tag `RELEASE.BUILD`, we can infer that: - -1. We are doing a `RELEASE` version when we apply breaking changes affecting the interaction with other contracts on the blockchain to: - - - The `Plugin` implementation contract such as the - - - change or removal of storage variables - - removal of external functions - - change of external function headers - -2. We are doing a `BUILD` version when we apply backward compatible changes not affecting the interaction with other contracts on the blockchain to: - - - The `Plugin` implementation contract such as the - - - addition of - - - storage variables - - external functions - - - change of - - - external function bodies - - - addition, change, or removal of - - - internal functions - - constants - - immutables - - events - - errors - - - The `PluginSetup` contract such as - - - addition, change, or removal of - - - input parameters - - helper contracts - - requested permissions - - - The release and build `metadata` URIs such as the - - - change of - - - the plugin setup ABI - - the plugin UI components - - the plugin description diff --git a/docs/advanced/psp/_category_.yml b/docs/advanced/psp/_category_.yml deleted file mode 100644 index 1ac32272..00000000 --- a/docs/advanced/psp/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: PluginSetupProcessor -link: null -position: 3 diff --git a/docs/advanced/psp/index.md b/docs/advanced/psp/index.md deleted file mode 100644 index 62253c2a..00000000 --- a/docs/advanced/psp/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Plugin Setup Processor -sidebar_label: Introduction -sidebar_position: 0 ---- - -## Introduction to Plugin Setup Processor (PSP) - -The Plugin Setup Processor (PSP) is a crucial component of the Aragon OSx framework, facilitating the integration of plugins with DAOs. Created and maintained by Aragon, the PSP is a **non-upgradeable** smart contract that has undergone rigorous audits to ensure transparency and safety. This contract configures the plugins within your DAO, handling the necessary permissions to install, uninstall, or upgrade plugins. - -### Why is the PSP Important? - -Managing plugins is a delicate task that must be approached with utmost caution. The PSP ensures that any changes made to the DAO’s functionality via plugins are secure and transparent. It utilizes a prepared setup from a `PluginSetup` contract to prepare the installation process. Then proceeds to apply the prepared setup granting or revoking permissions as needed to incorporate or remove functionalities within the DAO. -This two step method guarantees that DAO members are aware of the changes being made and can trust the process. - -## Interactions with the PSP - -### During DAO Deployment - -When you deploy your DAO using the `DAOFactory` contract, the PSP is utilized to install the necessary plugins. A DAO requires at least one plugin to function, and the `DAOFactory` expects you to install at least one plugin during the creation process. - -During this process, the `ROOT_PERMISSION_ID` over the DAO is granted to the PSP to allow it to prepare and apply the installation of your requested plugin. Once the plugin is installed, the `ROOT_PERMISSION_ID` is revoked from the PSP. - -### After DAO Deployment - -Once your DAO is deployed, you might want to install additional plugins, or uninstall or upgrade existing ones. In these cases, the PSP comes into play again. Here, you need to prepare the plugin using the `PluginSetup` or calling it from the PSP `prepareInstallation` function, and then have an approved proposal in your DAO to apply the prepared process. - -:::note -For the PSP to grant or revoke permissions within your DAO, it must have the `ROOT_PERMISSION_ID` permission. Therefore, the proposal for applying the plugin installation, uninstallation, or upgrade must include a first action granting `ROOT_PERMISSION_ID` to the PSP and a final action revoking this permission from it. -::: - -For more details on how the two-step process works in Aragon OSx using PSP and `PluginSetup` visit the next section [Managing Plugins](/docs/advanced/psp/managing-plugins.md) diff --git a/docs/advanced/psp/managing-plugins.md b/docs/advanced/psp/managing-plugins.md deleted file mode 100644 index 63cbd74d..00000000 --- a/docs/advanced/psp/managing-plugins.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Managing Plugins -sidebar_label: Managing Plugins -sidebar_position: 1 ---- - -## Two Steps Plugin Install/Uninstall/Upgrade - -**Safety is our top priority in the design of the whole protocol.** We want to make sure that the DAO members know exactly what permissions are granted/revoked to whom before any processing takes place. - -:::note -The following explanation will take as example the installation process, however same principles apply for uninstallation and upgrading processes. -::: - -This is why we see the installation process in two phases: - -1. **Preparation:** Defining the parameters to be set on the new plugin instance and helpers, as well as requesting the permissions needed for it to work properly. The `PluginSetup` contains the setup script where developers can perform any unprivileged operations. These will need a privileged confirmation in the next step. -2. **Application:** The granting or revoking of the plugin's requested permissions (based on the preparation step above). This is a privileged action performed by Aragon's `PluginSetupProcessor` (you can understand it as the "installer"), so that the plugin becomes effectively installed. It gets executed whenever someone with `ROOT` privileges on the DAO applies it (most likely through a proposal). - -The `PluginSetupProcessor` is the Aragon contract in charge of invoking the `prepareInstallation()` function from your plugin's `PluginSetup` contract and use it to prepare the installation and (eventually) apply it once it has been approved by the DAO. - -### What happens during the Plugin Preparation? - -The preparation of a `PluginSetup` contract proceeds as follows: - -1. A DAO builder selects a plugin to install. - -2. The DAO builder defines the parameters and settings that he/she wants for their DAO. The `prepareInstallation` method in the `PluginSetup` contract is called through the `PluginSetupProcessor` (and creates a unique setup ID). - -3. The [`PluginSetup`](https://github.com/aragon/osx/blob/develop/packages/contracts/src/framework/plugin/setup/PluginSetupProcessor.sol) contract deploys all the contracts and gathers addresses and other input arguments required for the installation instructions. - - Because the addresses of all associated contracts are now known, a static permission list can be emitted, hashed, and stored on-chain. - -4. Once the Plugin installation has been prepared, we use it as the parameter of the `applyInstallation()` action. Once encoded, this action is what must be added to the `Action[]` array of the installation proposal. That way, when the proposal passes, the action becomes executable and the plugin can be installed in the DAO using the parameters defined in the prepare installation process. For a plugin to be installed, it needs to be approved by the governance mechanism (plugin) of the organization, passed as the encoded action of a proposal, and executed by a signer. - -:::info -The governance plugin can be a simple majority vote, an optimistic process or an admin governance plugin that does not involve a waiting period. It can be any governance mechanism existing within the DAO which has access to the DAO's `execute` permission. -::: - -This gives the DAO members the opportunity to check which permissions the `PluginSetup` contract request before granting/revoking them. - -Plugin setup proposals must be carefully examined as they can be a potential security risk if the `PluginSetup` contract comes from an untrusted source. To learn more visit the [Security](/docs/advanced/plugin/security-risk-mitigation.md) section. - - - -### What happens during the Preparation Application? - -After this initial preparation transaction, the addresses and permissions related to the plugin become apparent. The members of a governance plugin with permissions can decide if the installation proposal should be accepted or denied. - -Once the proposal has passed, the actions specified in the `Action[]` array can get executed and the `applyInstallation()` action is used to complete the installation of the plugin into the DAO. - -This is processed as follows: - -1. The DAO temporarily grants the `ROOT_PERMISSION` to the `PluginSetupProcessor`. This is needed so that the processor can modify the DAO's permissions settings to set up the plugin. -2. This `Action` calls the `applyInstallation` method in the `PluginSetupProcessor`, containing the list of requested permissions as argument. The permissions hash is compared with the stored hash to make sure that no permission was changed. -3. If the hash is valid, the list is processed, and `PluginSetupProcessor` conducts the requested sequence of `grant`, `grantWithCondition`, and/or `revoke` calls on the owning DAO. 4. Finally, the temporarily granted `ROOT_PERMISSION` to the `PluginSetupProcessor` is revoked. - -:::info -The two-step setup procedure in Aragon OSx is not limited to the setup of only one plugin — you can **setup multiple plugins at once** by first preparing them in a single proposal and then processing the entire setup sequence in one transaction. This is powerful and allows you to **transform your entire DAO in one proposal**, for example, to install a new governance plugin (e.g., a gasless ZK-vote) and finance plugin (e.g., to stream loans to your members), while uninstalling your old ERC20 token vote in one go. -::: - -
- -**a.** ![Schematic depiction of the plugin installation process.](/optimized-svg/plugins/plugin-installation.drawio.svg) -**b.** ![Schematic depiction of the plugin update process.](/optimized-svg/plugins/plugin-update.drawio.svg) -**c.** ![Schematic depiction of the plugin uninstallation process.](/optimized-svg/plugins/plugin-uninstallation.drawio.svg) - -

- Simplified overview of the two-transaction plugin a. installation, b. update, and c. uninstallation process with the involved contracts as rounded rectangles, interactions between them as arrows, and relations as dashed lines. The first and second transaction are distinguished by numbering as well as solid and dotted lines, respectively. -

- -
diff --git a/docs/advanced/technical-reference/_category_.yml b/docs/advanced/technical-reference/_category_.yml deleted file mode 100644 index 883694f3..00000000 --- a/docs/advanced/technical-reference/_category_.yml +++ /dev/null @@ -1,3 +0,0 @@ -collapsible: true -collapsed: true -position: 6 diff --git a/docs/advanced/technical-reference/index.md b/docs/advanced/technical-reference/index.md deleted file mode 100644 index 1ca22ff0..00000000 --- a/docs/advanced/technical-reference/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Technical Reference -sidebar_label: Technical Reference ---- - -## Reference Guide - -This reference is automatically generated from the [Solidity NatSpec comments](https://docs.soliditylang.org/en/develop/natspec-format.html) of the contracts in the [aragon/osx GitHub](https://github.com/aragon/osx) repository. diff --git a/docs/guides/01-get-started.mdx b/docs/guides/01-get-started.mdx deleted file mode 100644 index f77160cf..00000000 --- a/docs/guides/01-get-started.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: '' -sidebar_label: Get Started -sidebar_position: 1 -hide_table_of_contents: true ---- - -import GetStarted from '/src/pages/get-started.tsx'; - - diff --git a/docs/guides/dao/_category_.yml b/docs/guides/dao/_category_.yml deleted file mode 100644 index 262f8a51..00000000 --- a/docs/guides/dao/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: DAO -link: null -position: 2 diff --git a/docs/guides/dao/create-a-dao.md b/docs/guides/dao/create-a-dao.md deleted file mode 100644 index f997c312..00000000 --- a/docs/guides/dao/create-a-dao.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Create a DAO -sidebar_label: Create a DAO -sidebar_position: 0 ---- - -## Create a DAO - -This section will contain docs. diff --git a/docs/guides/dao/upgrading-dao.md b/docs/guides/dao/upgrading-dao.md deleted file mode 100644 index d231b6bf..00000000 --- a/docs/guides/dao/upgrading-dao.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Upgrade a DAO -sidebar_label: Upgrade a DAO -sidebar_position: 1 ---- - -## Upgrade a DAO - -This section will contain docs. diff --git a/docs/guides/framework/_category_.yml b/docs/guides/framework/_category_.yml deleted file mode 100644 index 9bfe1c1e..00000000 --- a/docs/guides/framework/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: Framework -link: null -position: 4 diff --git a/docs/guides/framework/deployemnts.md b/docs/guides/framework/deployemnts.md deleted file mode 100644 index 7dd8e9b4..00000000 --- a/docs/guides/framework/deployemnts.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Deployments -sidebar_label: Deployments -sidebar_position: 2 ---- - -## Deployments - -This section will contain docs. diff --git a/docs/guides/framework/tooling.md b/docs/guides/framework/tooling.md deleted file mode 100644 index 25530a2c..00000000 --- a/docs/guides/framework/tooling.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Tooling -sidebar_label: Tooling ---- - -## Tooling - -This section will contain docs. diff --git a/docs/guides/index.md b/docs/guides/index.md deleted file mode 100644 index f978dbaa..00000000 --- a/docs/guides/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Guides -sidebar_label: Introduction -sidebar_position: 0 ---- - -## Guides - -This section will contain guides. diff --git a/docs/guides/plugin/_category_.yml b/docs/guides/plugin/_category_.yml deleted file mode 100644 index 822dc7b8..00000000 --- a/docs/guides/plugin/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: Plugin -link: null -position: 3 diff --git a/docs/guides/plugin/develop-a-plugin.md b/docs/guides/plugin/develop-a-plugin.md deleted file mode 100644 index 39c153d5..00000000 --- a/docs/guides/plugin/develop-a-plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Develop a Plugin -sidebar_label: Develop a Plugin -sidebar_position: 0 ---- - -## Develop a Plugin - -This section will contain docs. diff --git a/docs/guides/plugin/install-plugin.md b/docs/guides/plugin/install-plugin.md deleted file mode 100644 index 973616f6..00000000 --- a/docs/guides/plugin/install-plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Install a Plugin -sidebar_label: Install a Plugin -sidebar_position: 2 ---- - -## Install a Plugin - -This section will contain docs. diff --git a/docs/guides/plugin/publish-a-plugin.md b/docs/guides/plugin/publish-a-plugin.md deleted file mode 100644 index 716f1bb8..00000000 --- a/docs/guides/plugin/publish-a-plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Publish a Plugin -sidebar_label: Publish a Plugin -sidebar_position: 1 ---- - -## Publish a Plugin - -This section will contain docs. diff --git a/docs/guides/plugin/uninstall-a-plugin.md b/docs/guides/plugin/uninstall-a-plugin.md deleted file mode 100644 index 48f24bf9..00000000 --- a/docs/guides/plugin/uninstall-a-plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Uninstall a Plugin -sidebar_label: Uninstall a Plugin -sidebar_position: 1 ---- - -## Uninstall a Plugin - -This section will contain docs. diff --git a/docs/guides/plugin/upgrade-a-plugin.md b/docs/guides/plugin/upgrade-a-plugin.md deleted file mode 100644 index 5fd39bc7..00000000 --- a/docs/guides/plugin/upgrade-a-plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Upgrade a Plugin -sidebar_label: Upgrade a Plugin -sidebar_position: 1 ---- - -## Upgrade a Plugin - -This section will contain docs. diff --git a/versioned_docs/version-1.3.0/osx/01-get-started.mdx b/docs/osx/00-get-started.mdx similarity index 64% rename from versioned_docs/version-1.3.0/osx/01-get-started.mdx rename to docs/osx/00-get-started.mdx index f77160cf..88e52744 100644 --- a/versioned_docs/version-1.3.0/osx/01-get-started.mdx +++ b/docs/osx/00-get-started.mdx @@ -5,6 +5,6 @@ sidebar_position: 1 hide_table_of_contents: true --- -import GetStarted from '/src/pages/get-started.tsx'; +import GetStarted from '/src/pages/get-started-content.tsx'; diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/01-dao/01-actions.md b/docs/osx/01-how-it-works/01-core/01-dao/01-actions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/01-dao/01-actions.md rename to docs/osx/01-how-it-works/01-core/01-dao/01-actions.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/01-dao/index.md b/docs/osx/01-how-it-works/01-core/01-dao/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/01-dao/index.md rename to docs/osx/01-how-it-works/01-core/01-dao/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/02-permissions/01-conditions.md b/docs/osx/01-how-it-works/01-core/02-permissions/01-conditions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/02-permissions/01-conditions.md rename to docs/osx/01-how-it-works/01-core/02-permissions/01-conditions.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/02-permissions/index.md b/docs/osx/01-how-it-works/01-core/02-permissions/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/02-permissions/index.md rename to docs/osx/01-how-it-works/01-core/02-permissions/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/03-plugins/index.md b/docs/osx/01-how-it-works/01-core/03-plugins/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/03-plugins/index.md rename to docs/osx/01-how-it-works/01-core/03-plugins/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/index.md b/docs/osx/01-how-it-works/01-core/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/01-core/index.md rename to docs/osx/01-how-it-works/01-core/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/01-dao-creation/index.md b/docs/osx/01-how-it-works/02-framework/01-dao-creation/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/01-dao-creation/index.md rename to docs/osx/01-how-it-works/02-framework/01-dao-creation/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/01-plugin-repo-creation.md b/docs/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/01-plugin-repo-creation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/01-plugin-repo-creation.md rename to docs/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/01-plugin-repo-creation.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/index.md b/docs/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/index.md rename to docs/osx/01-how-it-works/02-framework/02-plugin-management/01-plugin-repo/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/01-security-risk-mitigation.md b/docs/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/01-security-risk-mitigation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/01-security-risk-mitigation.md rename to docs/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/01-security-risk-mitigation.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/index.md b/docs/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/index.md rename to docs/osx/01-how-it-works/02-framework/02-plugin-management/02-plugin-setup/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/index.md b/docs/osx/01-how-it-works/02-framework/02-plugin-management/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/02-plugin-management/index.md rename to docs/osx/01-how-it-works/02-framework/02-plugin-management/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/03-ens-names.md b/docs/osx/01-how-it-works/02-framework/03-ens-names.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/03-ens-names.md rename to docs/osx/01-how-it-works/02-framework/03-ens-names.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/index.md b/docs/osx/01-how-it-works/02-framework/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/02-framework/index.md rename to docs/osx/01-how-it-works/02-framework/index.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/03-framwork-dao.md b/docs/osx/01-how-it-works/03-framwork-dao.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/03-framwork-dao.md rename to docs/osx/01-how-it-works/03-framwork-dao.md diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/_category_.yml b/docs/osx/01-how-it-works/_category_.yml similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/_category_.yml rename to docs/osx/01-how-it-works/_category_.yml diff --git a/versioned_docs/version-1.3.0/osx/01-how-it-works/index.md b/docs/osx/01-how-it-works/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/01-how-it-works/index.md rename to docs/osx/01-how-it-works/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/01-best-practices.md b/docs/osx/02-how-to-guides/01-dao/01-best-practices.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/01-best-practices.md rename to docs/osx/02-how-to-guides/01-dao/01-best-practices.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/02-action-execution.md b/docs/osx/02-how-to-guides/01-dao/02-action-execution.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/02-action-execution.md rename to docs/osx/02-how-to-guides/01-dao/02-action-execution.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/03-protocol-upgrades.md b/docs/osx/02-how-to-guides/01-dao/03-protocol-upgrades.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/03-protocol-upgrades.md rename to docs/osx/02-how-to-guides/01-dao/03-protocol-upgrades.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/04-managing-plugins/index.md b/docs/osx/02-how-to-guides/01-dao/04-managing-plugins/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/04-managing-plugins/index.md rename to docs/osx/02-how-to-guides/01-dao/04-managing-plugins/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/index.md b/docs/osx/02-how-to-guides/01-dao/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/01-dao/index.md rename to docs/osx/02-how-to-guides/01-dao/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/01-best-practices.md b/docs/osx/02-how-to-guides/02-plugin-development/01-best-practices.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/01-best-practices.md rename to docs/osx/02-how-to-guides/02-plugin-development/01-best-practices.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/02-plugin-types.md b/docs/osx/02-how-to-guides/02-plugin-development/02-plugin-types.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/02-plugin-types.md rename to docs/osx/02-how-to-guides/02-plugin-development/02-plugin-types.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/01-initialization.md b/docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/01-initialization.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/01-initialization.md rename to docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/01-initialization.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/02-implementation.md b/docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/02-implementation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/02-implementation.md rename to docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/02-implementation.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/03-setup.md b/docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/03-setup.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/03-setup.md rename to docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/03-setup.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/index.md b/docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/index.md rename to docs/osx/02-how-to-guides/02-plugin-development/03-non-upgradeable-plugin/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/01-initialization.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/01-initialization.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/01-initialization.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/01-initialization.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/02-implementation.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/02-implementation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/02-implementation.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/02-implementation.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/03-setup.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/03-setup.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/03-setup.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/03-setup.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/04-subsequent-builds.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/04-subsequent-builds.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/04-subsequent-builds.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/04-subsequent-builds.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/05-updating-versions.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/05-updating-versions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/05-updating-versions.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/05-updating-versions.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/index.md b/docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/index.md rename to docs/osx/02-how-to-guides/02-plugin-development/04-upgradeable-plugin/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/01-proposals.md b/docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/01-proposals.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/01-proposals.md rename to docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/01-proposals.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/02-membership.md b/docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/02-membership.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/02-membership.md rename to docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/02-membership.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/index.md b/docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/index.md rename to docs/osx/02-how-to-guides/02-plugin-development/05-governance-plugins/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/06-meta-tx-plugins.md b/docs/osx/02-how-to-guides/02-plugin-development/06-meta-tx-plugins.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/06-meta-tx-plugins.md rename to docs/osx/02-how-to-guides/02-plugin-development/06-meta-tx-plugins.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/01-versioning.md b/docs/osx/02-how-to-guides/02-plugin-development/07-publication/01-versioning.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/01-versioning.md rename to docs/osx/02-how-to-guides/02-plugin-development/07-publication/01-versioning.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/02-metadata.md b/docs/osx/02-how-to-guides/02-plugin-development/07-publication/02-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/02-metadata.md rename to docs/osx/02-how-to-guides/02-plugin-development/07-publication/02-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/index.md b/docs/osx/02-how-to-guides/02-plugin-development/07-publication/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/07-publication/index.md rename to docs/osx/02-how-to-guides/02-plugin-development/07-publication/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/index.md b/docs/osx/02-how-to-guides/02-plugin-development/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/02-plugin-development/index.md rename to docs/osx/02-how-to-guides/02-plugin-development/index.md diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/_category_.yml b/docs/osx/02-how-to-guides/_category_.yml similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/_category_.yml rename to docs/osx/02-how-to-guides/_category_.yml diff --git a/versioned_docs/version-1.3.0/osx/02-how-to-guides/index.md b/docs/osx/02-how-to-guides/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/02-how-to-guides/index.md rename to docs/osx/02-how-to-guides/index.md diff --git a/docs/advanced/technical-reference/core/dao/DAO.md b/docs/osx/03-reference-guide/core/dao/DAO.md similarity index 100% rename from docs/advanced/technical-reference/core/dao/DAO.md rename to docs/osx/03-reference-guide/core/dao/DAO.md diff --git a/docs/advanced/technical-reference/core/dao/IEIP4824.md b/docs/osx/03-reference-guide/core/dao/IEIP4824.md similarity index 100% rename from docs/advanced/technical-reference/core/dao/IEIP4824.md rename to docs/osx/03-reference-guide/core/dao/IEIP4824.md diff --git a/docs/advanced/technical-reference/core/permission/PermissionManager.md b/docs/osx/03-reference-guide/core/permission/PermissionManager.md similarity index 100% rename from docs/advanced/technical-reference/core/permission/PermissionManager.md rename to docs/osx/03-reference-guide/core/permission/PermissionManager.md diff --git a/docs/advanced/technical-reference/core/utils/CallbackHandler.md b/docs/osx/03-reference-guide/core/utils/CallbackHandler.md similarity index 100% rename from docs/advanced/technical-reference/core/utils/CallbackHandler.md rename to docs/osx/03-reference-guide/core/utils/CallbackHandler.md diff --git a/docs/advanced/technical-reference/framework/dao/DAOFactory.md b/docs/osx/03-reference-guide/framework/dao/DAOFactory.md similarity index 100% rename from docs/advanced/technical-reference/framework/dao/DAOFactory.md rename to docs/osx/03-reference-guide/framework/dao/DAOFactory.md diff --git a/docs/advanced/technical-reference/framework/dao/DAORegistry.md b/docs/osx/03-reference-guide/framework/dao/DAORegistry.md similarity index 100% rename from docs/advanced/technical-reference/framework/dao/DAORegistry.md rename to docs/osx/03-reference-guide/framework/dao/DAORegistry.md diff --git a/docs/advanced/technical-reference/framework/plugin/repo/IPluginRepo.md b/docs/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/repo/IPluginRepo.md rename to docs/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md diff --git a/docs/advanced/technical-reference/framework/plugin/repo/PluginRepo.md b/docs/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/repo/PluginRepo.md rename to docs/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md diff --git a/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoFactory.md b/docs/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/repo/PluginRepoFactory.md rename to docs/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md diff --git a/docs/advanced/technical-reference/framework/plugin/repo/PluginRepoRegistry.md b/docs/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/repo/PluginRepoRegistry.md rename to docs/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md diff --git a/docs/advanced/technical-reference/framework/plugin/repo/placeholder/PlaceholderSetup.md b/docs/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/repo/placeholder/PlaceholderSetup.md rename to docs/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md diff --git a/docs/advanced/technical-reference/framework/plugin/setup/PluginSetupProcessor.md b/docs/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/setup/PluginSetupProcessor.md rename to docs/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md diff --git a/docs/advanced/technical-reference/framework/plugin/setup/PluginSetupProcessorHelpers.md b/docs/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md similarity index 100% rename from docs/advanced/technical-reference/framework/plugin/setup/PluginSetupProcessorHelpers.md rename to docs/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md diff --git a/docs/advanced/technical-reference/framework/utils/InterfaceBasedRegistry.md b/docs/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md similarity index 100% rename from docs/advanced/technical-reference/framework/utils/InterfaceBasedRegistry.md rename to docs/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md diff --git a/docs/advanced/technical-reference/framework/utils/RegistryUtils.md b/docs/osx/03-reference-guide/framework/utils/RegistryUtils.md similarity index 100% rename from docs/advanced/technical-reference/framework/utils/RegistryUtils.md rename to docs/osx/03-reference-guide/framework/utils/RegistryUtils.md diff --git a/docs/advanced/technical-reference/framework/utils/ens/ENSMigration.md b/docs/osx/03-reference-guide/framework/utils/ens/ENSMigration.md similarity index 100% rename from docs/advanced/technical-reference/framework/utils/ens/ENSMigration.md rename to docs/osx/03-reference-guide/framework/utils/ens/ENSMigration.md diff --git a/docs/advanced/technical-reference/framework/utils/ens/ENSSubdomainRegistrar.md b/docs/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md similarity index 100% rename from docs/advanced/technical-reference/framework/utils/ens/ENSSubdomainRegistrar.md rename to docs/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/index.md b/docs/osx/03-reference-guide/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/03-reference-guide/index.md rename to docs/osx/03-reference-guide/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/01-create-dao.md b/docs/osx/04-sdk/01-examples/01-client/01-create-dao.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/01-create-dao.md rename to docs/osx/04-sdk/01-examples/01-client/01-create-dao.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/02-deposit-eth.md b/docs/osx/04-sdk/01-examples/01-client/02-deposit-eth.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/02-deposit-eth.md rename to docs/osx/04-sdk/01-examples/01-client/02-deposit-eth.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/03-deposit-erc20.md b/docs/osx/04-sdk/01-examples/01-client/03-deposit-erc20.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/03-deposit-erc20.md rename to docs/osx/04-sdk/01-examples/01-client/03-deposit-erc20.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/04-deposit-erc721.md b/docs/osx/04-sdk/01-examples/01-client/04-deposit-erc721.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/04-deposit-erc721.md rename to docs/osx/04-sdk/01-examples/01-client/04-deposit-erc721.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/05-deposit-erc1155.md b/docs/osx/04-sdk/01-examples/01-client/05-deposit-erc1155.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/05-deposit-erc1155.md rename to docs/osx/04-sdk/01-examples/01-client/05-deposit-erc1155.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/06-get-dao.md b/docs/osx/04-sdk/01-examples/01-client/06-get-dao.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/06-get-dao.md rename to docs/osx/04-sdk/01-examples/01-client/06-get-dao.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/07-get-daos.md b/docs/osx/04-sdk/01-examples/01-client/07-get-daos.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/07-get-daos.md rename to docs/osx/04-sdk/01-examples/01-client/07-get-daos.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/08-get-balances.md b/docs/osx/04-sdk/01-examples/01-client/08-get-balances.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/08-get-balances.md rename to docs/osx/04-sdk/01-examples/01-client/08-get-balances.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/09-get-transfers.md b/docs/osx/04-sdk/01-examples/01-client/09-get-transfers.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/09-get-transfers.md rename to docs/osx/04-sdk/01-examples/01-client/09-get-transfers.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/10-set-allowance.md b/docs/osx/04-sdk/01-examples/01-client/10-set-allowance.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/10-set-allowance.md rename to docs/osx/04-sdk/01-examples/01-client/10-set-allowance.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/11-pin-metadata.md b/docs/osx/04-sdk/01-examples/01-client/11-pin-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/11-pin-metadata.md rename to docs/osx/04-sdk/01-examples/01-client/11-pin-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/12-prepare-installation.md b/docs/osx/04-sdk/01-examples/01-client/12-prepare-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/12-prepare-installation.md rename to docs/osx/04-sdk/01-examples/01-client/12-prepare-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/13-get-protocol-version.md b/docs/osx/04-sdk/01-examples/01-client/13-get-protocol-version.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/13-get-protocol-version.md rename to docs/osx/04-sdk/01-examples/01-client/13-get-protocol-version.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/14-prepare-uninstallation.md b/docs/osx/04-sdk/01-examples/01-client/14-prepare-uninstallation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/14-prepare-uninstallation.md rename to docs/osx/04-sdk/01-examples/01-client/14-prepare-uninstallation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/15-prepare-update.md b/docs/osx/04-sdk/01-examples/01-client/15-prepare-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/15-prepare-update.md rename to docs/osx/04-sdk/01-examples/01-client/15-prepare-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/16-is-plugin-update-valid.md b/docs/osx/04-sdk/01-examples/01-client/16-is-plugin-update-valid.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/16-is-plugin-update-valid.md rename to docs/osx/04-sdk/01-examples/01-client/16-is-plugin-update-valid.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/17-is-plugin-update-proposal.md b/docs/osx/04-sdk/01-examples/01-client/17-is-plugin-update-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/17-is-plugin-update-proposal.md rename to docs/osx/04-sdk/01-examples/01-client/17-is-plugin-update-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/18-is-dao-update-valid.md b/docs/osx/04-sdk/01-examples/01-client/18-is-dao-update-valid.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/18-is-dao-update-valid.md rename to docs/osx/04-sdk/01-examples/01-client/18-is-dao-update-valid.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/19-is-dao-update-proposal.md b/docs/osx/04-sdk/01-examples/01-client/19-is-dao-update-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/19-is-dao-update-proposal.md rename to docs/osx/04-sdk/01-examples/01-client/19-is-dao-update-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/20-get-plugin-preparations.md b/docs/osx/04-sdk/01-examples/01-client/20-get-plugin-preparations.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/20-get-plugin-preparations.md rename to docs/osx/04-sdk/01-examples/01-client/20-get-plugin-preparations.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/index.md b/docs/osx/04-sdk/01-examples/01-client/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/01-client/index.md rename to docs/osx/04-sdk/01-examples/01-client/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/01-installation.md b/docs/osx/04-sdk/01-examples/02-multisig-client/01-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/01-installation.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/01-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/02-create-proposal.md b/docs/osx/04-sdk/01-examples/02-multisig-client/02-create-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/02-create-proposal.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/02-create-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/03-create-proposal-with-actions.md b/docs/osx/04-sdk/01-examples/02-multisig-client/03-create-proposal-with-actions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/03-create-proposal-with-actions.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/03-create-proposal-with-actions.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/04-can-approve.md b/docs/osx/04-sdk/01-examples/02-multisig-client/04-can-approve.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/04-can-approve.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/04-can-approve.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/05-approve-proposal.md b/docs/osx/04-sdk/01-examples/02-multisig-client/05-approve-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/05-approve-proposal.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/05-approve-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/06-can-execute.md b/docs/osx/04-sdk/01-examples/02-multisig-client/06-can-execute.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/06-can-execute.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/06-can-execute.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/07-execute-proposal.md b/docs/osx/04-sdk/01-examples/02-multisig-client/07-execute-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/07-execute-proposal.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/07-execute-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/08-get-proposal.md b/docs/osx/04-sdk/01-examples/02-multisig-client/08-get-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/08-get-proposal.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/08-get-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/09-get-proposals.md b/docs/osx/04-sdk/01-examples/02-multisig-client/09-get-proposals.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/09-get-proposals.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/09-get-proposals.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/10-get-voting-settings.md b/docs/osx/04-sdk/01-examples/02-multisig-client/10-get-voting-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/10-get-voting-settings.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/10-get-voting-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/11-get-members.md b/docs/osx/04-sdk/01-examples/02-multisig-client/11-get-members.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/11-get-members.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/11-get-members.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/12-pin-metadata.md b/docs/osx/04-sdk/01-examples/02-multisig-client/12-pin-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/12-pin-metadata.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/12-pin-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/13-prepare-installation.md b/docs/osx/04-sdk/01-examples/02-multisig-client/13-prepare-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/13-prepare-installation.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/13-prepare-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/14-prepare-update.md b/docs/osx/04-sdk/01-examples/02-multisig-client/14-prepare-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/14-prepare-update.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/14-prepare-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/15-is-member.md b/docs/osx/04-sdk/01-examples/02-multisig-client/15-is-member.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/15-is-member.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/15-is-member.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/index.md b/docs/osx/04-sdk/01-examples/02-multisig-client/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/02-multisig-client/index.md rename to docs/osx/04-sdk/01-examples/02-multisig-client/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/01-installation.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/01-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/01-installation.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/01-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/02-create-proposal.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/02-create-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/02-create-proposal.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/02-create-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/03-create-proposal-with-actions.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/03-create-proposal-with-actions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/03-create-proposal-with-actions.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/03-create-proposal-with-actions.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/04-can-vote.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/04-can-vote.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/04-can-vote.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/04-can-vote.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/05-vote-on-proposal.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/05-vote-on-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/05-vote-on-proposal.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/05-vote-on-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/06-can-execute.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/06-can-execute.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/06-can-execute.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/06-can-execute.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/07-execute-proposal.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/07-execute-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/07-execute-proposal.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/07-execute-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/08-get-proposal.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/08-get-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/08-get-proposal.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/08-get-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/09-get-proposals.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/09-get-proposals.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/09-get-proposals.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/09-get-proposals.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/10-get-voting-settings.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/10-get-voting-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/10-get-voting-settings.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/10-get-voting-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/11-get-members.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/11-get-members.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/11-get-members.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/11-get-members.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/12-get-token.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/12-get-token.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/12-get-token.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/12-get-token.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/13-pin-metadata.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/13-pin-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/13-pin-metadata.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/13-pin-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/14-prepare-installation.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/14-prepare-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/14-prepare-installation.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/14-prepare-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/15-wrap-tokens.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/15-wrap-tokens.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/15-wrap-tokens.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/15-wrap-tokens.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/16-unwrap-tokens.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/16-unwrap-tokens.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/16-unwrap-tokens.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/16-unwrap-tokens.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/17-delegate-tokens.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/17-delegate-tokens.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/17-delegate-tokens.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/17-delegate-tokens.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/18-undelegate-tokens.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/18-undelegate-tokens.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/18-undelegate-tokens.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/18-undelegate-tokens.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/19-get-delegate.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/19-get-delegate.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/19-get-delegate.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/19-get-delegate.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/20-is-governance-token-compatible.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/20-is-governance-token-compatible.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/20-is-governance-token-compatible.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/20-is-governance-token-compatible.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/21-prepare-update.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/21-prepare-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/21-prepare-update.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/21-prepare-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/22-is-member.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/22-is-member.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/22-is-member.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/22-is-member.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/index.md b/docs/osx/04-sdk/01-examples/03-tokenVoting-client/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/03-tokenVoting-client/index.md rename to docs/osx/04-sdk/01-examples/03-tokenVoting-client/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/01-installation.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/01-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/01-installation.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/01-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/02-create-proposal.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/02-create-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/02-create-proposal.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/02-create-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/03-create-proposal-with-actions.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/03-create-proposal-with-actions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/03-create-proposal-with-actions.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/03-create-proposal-with-actions.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/04-can-vote.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/04-can-vote.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/04-can-vote.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/04-can-vote.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/05-vote-proposal.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/05-vote-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/05-vote-proposal.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/05-vote-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/06-can-execute.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/06-can-execute.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/06-can-execute.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/06-can-execute.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/07-execute-proposal.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/07-execute-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/07-execute-proposal.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/07-execute-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/08-get-proposal.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/08-get-proposal.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/08-get-proposal.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/08-get-proposal.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/09-get-proposals.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/09-get-proposals.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/09-get-proposals.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/09-get-proposals.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/10-get-voting-settings.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/10-get-voting-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/10-get-voting-settings.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/10-get-voting-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/11-get-members.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/11-get-members.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/11-get-members.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/11-get-members.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/12-pin-metadata.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/12-pin-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/12-pin-metadata.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/12-pin-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/13-prepare-installation.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/13-prepare-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/13-prepare-installation.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/13-prepare-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/14-prepare-update.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/14-prepare-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/14-prepare-update.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/14-prepare-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/15-is-member.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/15-is-member.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/15-is-member.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/15-is-member.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/index.md b/docs/osx/04-sdk/01-examples/04-addresslistVoting-client/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/04-addresslistVoting-client/index.md rename to docs/osx/04-sdk/01-examples/04-addresslistVoting-client/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/01-find-interface.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/01-find-interface.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/01-find-interface.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/01-find-interface.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/02-grant-permission.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/02-grant-permission.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/02-grant-permission.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/02-grant-permission.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/03-grant-with-condition.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/03-grant-with-condition.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/03-grant-with-condition.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/03-grant-with-condition.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/04-revoke-permissions.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/04-revoke-permissions.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/04-revoke-permissions.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/04-revoke-permissions.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/05-register-standard-callback.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/05-register-standard-callback.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/05-register-standard-callback.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/05-register-standard-callback.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/06-withdraw.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/06-withdraw.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/06-withdraw.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/06-withdraw.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/07-update-metadata.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/07-update-metadata.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/07-update-metadata.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/07-update-metadata.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/08-set-dao-uri.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/08-set-dao-uri.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/08-set-dao-uri.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/08-set-dao-uri.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/09-set-signature-validator.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/09-set-signature-validator.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/09-set-signature-validator.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/09-set-signature-validator.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/10-upgrade-to.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/10-upgrade-to.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/10-upgrade-to.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/10-upgrade-to.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/11-upgrade-to-and-call.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/11-upgrade-to-and-call.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/11-upgrade-to-and-call.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/11-upgrade-to-and-call.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-apply-installation.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-apply-installation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-apply-installation.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-apply-installation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/01-find-interface.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/01-find-interface.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/01-find-interface.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/01-find-interface.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/02-add-addresses.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/02-add-addresses.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/02-add-addresses.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/02-add-addresses.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/03-remove-addresses.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/03-remove-addresses.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/03-remove-addresses.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/03-remove-addresses.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/04-update-plugin-settings.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/04-update-plugin-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/04-update-plugin-settings.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/04-update-plugin-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/index.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/index.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/12-multisig/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/01-find-interface.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/01-find-interface.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/01-find-interface.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/01-find-interface.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/02-add-members.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/02-add-members.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/02-add-members.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/02-add-members.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/03-remove-members.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/03-remove-members.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/03-remove-members.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/03-remove-members.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/04-update-plugin-settings.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/04-update-plugin-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/04-update-plugin-settings.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/04-update-plugin-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/index.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/index.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-addresslist-voting/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-apply-uninstallation.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/13-apply-uninstallation.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/13-apply-uninstallation.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/13-apply-uninstallation.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-initialize-from.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/14-initialize-from.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-initialize-from.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/14-initialize-from.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/01-find-interface.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/01-find-interface.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/01-find-interface.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/01-find-interface.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/02-mint-token.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/02-mint-token.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/02-mint-token.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/02-mint-token.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/03-update-plugin-settings.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/03-update-plugin-settings.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/03-update-plugin-settings.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/03-update-plugin-settings.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/index.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/index.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/14-token-voting/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/15-apply-update.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/15-apply-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/15-apply-update.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/15-apply-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/16-dao-update.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/16-dao-update.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/16-dao-update.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/16-dao-update.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/index.md b/docs/osx/04-sdk/01-examples/05-encoders-decoders/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/05-encoders-decoders/index.md rename to docs/osx/04-sdk/01-examples/05-encoders-decoders/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/01-examples/index.md b/docs/osx/04-sdk/01-examples/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/01-examples/index.md rename to docs/osx/04-sdk/01-examples/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/01-client.md b/docs/osx/04-sdk/02-reference-guide/01-client.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/01-client.md rename to docs/osx/04-sdk/02-reference-guide/01-client.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/02-multisig.md b/docs/osx/04-sdk/02-reference-guide/02-multisig.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/02-multisig.md rename to docs/osx/04-sdk/02-reference-guide/02-multisig.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/03-token-voting.md b/docs/osx/04-sdk/02-reference-guide/03-token-voting.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/03-token-voting.md rename to docs/osx/04-sdk/02-reference-guide/03-token-voting.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/04-addresslist-voting.md b/docs/osx/04-sdk/02-reference-guide/04-addresslist-voting.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/04-addresslist-voting.md rename to docs/osx/04-sdk/02-reference-guide/04-addresslist-voting.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/index.md b/docs/osx/04-sdk/02-reference-guide/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/02-reference-guide/index.md rename to docs/osx/04-sdk/02-reference-guide/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/03-update-security-check/index.md b/docs/osx/04-sdk/03-update-security-check/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/03-update-security-check/index.md rename to docs/osx/04-sdk/03-update-security-check/index.md diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/_category_.yml b/docs/osx/04-sdk/_category_.yml similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/_category_.yml rename to docs/osx/04-sdk/_category_.yml diff --git a/versioned_docs/version-1.3.0/osx/04-sdk/index.md b/docs/osx/04-sdk/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/04-sdk/index.md rename to docs/osx/04-sdk/index.md diff --git a/versioned_docs/version-1.3.0/osx/index.md b/docs/osx/index.md similarity index 100% rename from versioned_docs/version-1.3.0/osx/index.md rename to docs/osx/index.md diff --git a/docs/overview/concepts/_category_.yml b/docs/overview/concepts/_category_.yml deleted file mode 100644 index 7e09cada..00000000 --- a/docs/overview/concepts/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: Core Concepts -link: null -position: 1 diff --git a/docs/overview/concepts/dao.md b/docs/overview/concepts/dao.md deleted file mode 100644 index cf5db444..00000000 --- a/docs/overview/concepts/dao.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: DAO -sidebar_label: DAO -sidebar_position: 0 ---- - -## DAO - -This section will contain DAO definition. diff --git a/docs/overview/concepts/permission-manager.md b/docs/overview/concepts/permission-manager.md deleted file mode 100644 index 09d449b7..00000000 --- a/docs/overview/concepts/permission-manager.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Permission Manager -sidebar_label: Permission Manager -sidebar_position: 2 ---- - -## Permission Manager - -This section will contain Permission Manager definition. diff --git a/docs/overview/concepts/plugin.md b/docs/overview/concepts/plugin.md deleted file mode 100644 index 57859829..00000000 --- a/docs/overview/concepts/plugin.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Plugin -sidebar_label: Plugin -sidebar_position: 3 ---- - -## Plugin - -This section will contain Plugin definition. diff --git a/docs/overview/concepts/proposal.md b/docs/overview/concepts/proposal.md deleted file mode 100644 index 44d8a142..00000000 --- a/docs/overview/concepts/proposal.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Proposal -sidebar_label: Proposal -sidebar_position: 3 ---- - -## Proposal - -This section will contain Proposal definition. diff --git a/docs/overview/overview/_category_.yml b/docs/overview/overview/_category_.yml deleted file mode 100644 index b986f899..00000000 --- a/docs/overview/overview/_category_.yml +++ /dev/null @@ -1,5 +0,0 @@ -collapsible: true -collapsed: false -label: What is Aragon OSx? -link: null -position: 0 diff --git a/docs/overview/overview/index.md b/docs/overview/overview/index.md deleted file mode 100644 index c4ef6d70..00000000 --- a/docs/overview/overview/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: / -title: What is Aragon OSx? -sidebar_label: Introduction -sidebar_position: 0 ---- - -## Welcome to Aragon OSx's Documentation - -The Aragon OSx protocol is the foundation layer of the new Aragon stack. It allows users to create, manage, and customize DAOs in a way that is lean, adaptable, and secure. - -The Aragon OSx protocol architecture is composed of two key sections: diff --git a/docs/overview/overview/use-cases.md b/docs/overview/overview/use-cases.md deleted file mode 100644 index d24cc28a..00000000 --- a/docs/overview/overview/use-cases.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Use Cases -sidebar_label: Use Cases -sidebar_position: 1 ---- - -## Why using Aragon OSx diff --git a/docs/support/FAQ.md b/docs/support/FAQ.md deleted file mode 100644 index cbcd4c3c..00000000 --- a/docs/support/FAQ.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: FAQ -sidebar_label: FAQ -sidebar_position: 3 ---- - -## - -Aragon FAQ - -### DAO ??? - -This section will contain docs. - -### Plugin ??? - -This section will contain docs. - -### Proposal ??? - -This section will contain docs. diff --git a/docs/support/best-practices/_category_.yml b/docs/support/best-practices/_category_.yml deleted file mode 100644 index b13abad9..00000000 --- a/docs/support/best-practices/_category_.yml +++ /dev/null @@ -1,4 +0,0 @@ -collapsible: false -collapsed: false -label: Best Practices -position: 1 diff --git a/docs/support/best-practices/developing-plugin.md b/docs/support/best-practices/developing-plugin.md deleted file mode 100644 index 696423b0..00000000 --- a/docs/support/best-practices/developing-plugin.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Developing a Plugin -sidebar_label: Developing a Plugin -sidebar_position: 0 ---- - -## Advice for Developing a Plugin - -### DOs 👌 - -- Document your contracts using [NatSpec](https://docs.soliditylang.org/en/v0.8.17/natspec-format.html). -- Test your contracts, e.g., using toolkits such as [hardhat (JS)](https://hardhat.org/hardhat-runner/docs/guides/test-contracts) or [Foundry (Rust)](https://book.getfoundry.sh/forge/tests). -- Use the `auth` modifier to control the access to functions in your plugin instead of `onlyOwner` or similar. -- Write plugins implementations that need minimal permissions on the DAO. -- Write `PluginSetup` contracts that remove all permissions on uninstallation that they requested during installation or updates. -- Plan the lifecycle of your plugin (need for upgrades). -- Follow our [versioning guidelines](../02-plugin-development/07-publication/01-versioning.md). - -### DON'Ts ✋ - -- Leave any contract uninitialized. -- Grant the `ROOT_PERMISSION_ID` permission to anything or anyone. -- Grant with `who: ANY_ADDR` unless you know what you are doing. -- Expect people to grant or revoke any permissions manually during the lifecycle of a plugin. The `PluginSetup` should take this complexity away from the user and after uninstallation, all permissions should be removed. -- Write upgradeable contracts that: - - Repurpose existing storage (in upgradeable plugins). - - Inherit from previous versions as this can mess up the inheritance chain. Instead, write self-contained contracts. - - - - -In the following sections, you will learn about the details about plugin development. diff --git a/docs/support/best-practices/operating-dao.md b/docs/support/best-practices/operating-dao.md deleted file mode 100644 index f3bbe5d0..00000000 --- a/docs/support/best-practices/operating-dao.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Operating a DAO -sidebar_label: Operating a DAO -sidebar_position: 0 ---- - -## Some Advice When Operating your DAO - -### DOs 👌 - -- Make sure that at least one address (typically a governance plugin) has `EXECUTE_PERMISSION_ID` permission so that something can be executed on behalf of the DAO. -- Check every proposal asking to install, update, or uninstall a plugin with utmost care and review. Installation means granting an external contract permissions to do things on behalf of your DAO, so you want to be extra careful about: - - the implementation contract - - the setup contract - - the helper contracts - - the permissions being granted/revoked - -### DON'Ts ✋ - -- Incapacitate your DAO by revoking all `EXECUTE_PERMISSION`. This means your DAO will be blocked and any assets you hold may be locked in forever. This can happen through: - - uninstalling your last governance plugin. - - applying an update to your last governance plugin. -- Don't give permissions to directly call functions from the DAO. Better and safer to use a plugin instead. -- If you're using the Token Voting plugin in your DAO, make sure you don't mint additional tokens without careful consideration. If you mint too many at once, this may lock your DAO, since you will not be able to reach the minimum participation threshold. This happens if there are not enough tokens already on the market to meet the minimum participation percentage and the DAO owns most of the governance tokens. diff --git a/docs/support/glossary.md b/docs/support/glossary.md deleted file mode 100644 index edf93eb1..00000000 --- a/docs/support/glossary.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Glossary -sidebar_label: Glossary -sidebar_position: 2 ---- - -## - -Aragon Glossary - -### DAO - -This section will contain docs. - -### Plugin - -This section will contain docs. - -### Proposal - -This section will contain docs. diff --git a/docs/support/index.md b/docs/support/index.md deleted file mode 100644 index abf855b6..00000000 --- a/docs/support/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Support -sidebar_label: Support -sidebar_position: 0 ---- - -## Overview - -This section will contain docs. diff --git a/scripts/prune-subgraph-docs.sh b/scripts/prune-subgraph-docs.sh deleted file mode 100755 index b6d4ac2b..00000000 --- a/scripts/prune-subgraph-docs.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Function to check if a given line exists in a file -line_exists() { - grep -qF "$1" "$2" -} - -# Add `className: hidden` in 1s line of _category_.yml files -# or `sidebar_class_name: hidden` in 2nd line of .mdx files to hide them from sidebar (added .hidden class in markdown.css) -if ! line_exists "className: hidden" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/directives/_category_.yml"; then - sed -i '1s/^/className: hidden\n/' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/directives/_category_.yml" -fi - -if ! line_exists "className: hidden" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/scalars/_category_.yml"; then - sed -i '1s/^/className: hidden\n/' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/scalars/_category_.yml" -fi - -if ! line_exists "sidebar_class_name: hidden" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/query.mdx"; then - sed -i '2s/^/sidebar_class_name: hidden\n/' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/query.mdx" -fi - -# Add pagination_next/pagination_previous to gracefully skip the previous sidbar hidden pages, to hide them from the -# next/previous page buttons at the bottom of the webpages -if ! line_exists "pagination_prev: osx/subgraph/reference-guide/index" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/enums/permission-operation.mdx"; then - sed -i '2s#^#pagination_prev: osx/subgraph/reference-guide/index\n#' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/enums/permission-operation.mdx" -fi - -if ! line_exists "pagination_next: osx/subgraph/reference-guide/objects/standard-callback" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/plugin-version.mdx"; then - sed -i '2s#^#pagination_next: osx/subgraph/reference-guide/objects/standard-callback\n#' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/plugin-version.mdx" -fi - -if ! line_exists "pagination_prev: osx/subgraph/reference-guide/objects/plugin-version" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/standard-callback.mdx"; then - sed -i '2s#^#pagination_prev: osx/subgraph/reference-guide/objects/plugin-version\n#' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/standard-callback.mdx" -fi - -if ! line_exists "pagination_next: null" "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/transaction-actions-proposal.mdx"; then - sed -i '2s/^/pagination_next: null\n/' "versioned_docs/version-1.3.0/osx/subgraph/reference-guide/objects/transaction-actions-proposal.mdx" -fi diff --git a/sidebars.js b/sidebars.js deleted file mode 100644 index f36421dc..00000000 --- a/sidebars.js +++ /dev/null @@ -1,8 +0,0 @@ -const sidebars = { - osxSidebar: [{type: 'autogenerated', dirName: 'overview'}], - advancedSidebar: [{type: 'autogenerated', dirName: 'advanced'}], - guidesSidebar: [{type: 'autogenerated', dirName: 'guides'}], - supportSidebar: [{type: 'autogenerated', dirName: 'support'}], -}; - -module.exports = sidebars; diff --git a/src/pages/get-started.tsx b/src/pages/get-started.tsx deleted file mode 100644 index 07a12b84..00000000 --- a/src/pages/get-started.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import React from 'react'; -import {HeroHeader} from '../components/HeroHeader'; -import {WelcomeCard} from '../components/WelcomeCard'; -import devTools from '../data/DevTools'; -import styled from 'styled-components'; - -const GetStarted = () => { - return ( - - - - {devTools.map((card, index) => ( - - ))} - - - ); -}; - -const styles = { - heroHeader: { - width: '30%', - }, - title: { - fontSize: '2rem', - fontWeight: 'bold', - marginBottom: '0.2rem', - }, - subtitle: { - fontSize: '1.25rem', - fontWeight: 'normal', - color: 'var(--neutral-700),', - }, -} as const; - -const Container = styled.div.attrs({ - className: 'flex-col flex space-y-12', -})` - width: 100%; - box-sizing: border-box; -`; -const WelcomeCardsWrapper = styled.div.attrs({ - className: 'flex flex-wrap md:flex-row place-content-stretch gap-8', -})``; - -export default GetStarted; diff --git a/static/subgraph/index.md b/static/subgraph/index.md deleted file mode 100644 index d5c0a622..00000000 --- a/static/subgraph/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Reference Guide -sidebar_label: Reference Guide -pagination_next: osx/subgraph/reference-guide/enums/permission-operation ---- - -## Subgraph - -This section contains the auto-generated documentation of the individual entities of our graphql schema. diff --git a/static/subgraph/schema-introspection-partial.json b/static/subgraph/schema-introspection-partial.json deleted file mode 100644 index 710b753b..00000000 --- a/static/subgraph/schema-introspection-partial.json +++ /dev/null @@ -1,8405 +0,0 @@ -{ - "__schema": { - "queryType": { - "name": "Query" - }, - "mutationType": null, - "subscriptionType": null, - "types": [ - { - "kind": "OBJECT", - "name": "Action", - "description": "Actions are represented by solidity struct and executed by the DAO's `execute` function, resulting in an external call.", - "fields": [ - { - "name": "dao", - "description": " The DAO that will `execute` the function. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "data", - "description": " The bytes-encoded function selector and calldata for the call. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "execResult", - "description": " The result obtained from the executed action in `bytes`. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " Concatenation of the proposalID and the index of the action. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The proposal of the DAO containing the action to be executed. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The address to call. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": " The native token value to be sent with the call. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddresslistVotingPlugin", - "description": null, - "fields": [ - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "TODO: attributes should be appended to Plugin once plugin is seperated from Aragon OSx", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "members", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingVoter", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minDuration", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minParticipation", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minProposerVotingPower", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposalCount", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportThreshold", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingMode", - "description": null, - "args": [], - "type": { - "kind": "ENUM", - "name": "VotingMode", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IPlugin", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddresslistVotingProposal", - "description": null, - "fields": [ - { - "name": "abstain", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approvalReached", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "castedVotingPower", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creationBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "earlyExecutable", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSignaling", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minVotingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "no", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "open", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginProposalId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "snapshotBlock", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportThreshold", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalVotingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voters", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingVote", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingMode", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "VotingMode", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "yes", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddresslistVotingVote", - "description": null, - "fields": [ - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "VoterProposal for Many-to-Many", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingProposal", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voteOption", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "VoteOption", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voteReplaced", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voter", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingVoter", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddresslistVotingVoter", - "description": null, - "fields": [ - { - "name": "address", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AddresslistVotingVote", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AdminPlugin", - "description": null, - "fields": [ - { - "name": "administrators", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdministratorAdminPlugin", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "TODO: attributes should be appended to Plugin once plugin is separated from Aragon OSx", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdminProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IPlugin", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AdminProposal", - "description": null, - "fields": [ - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "administrator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Administrator", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdminPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginProposalId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Administrator", - "description": null, - "fields": [ - { - "name": "address", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugins", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdministratorAdminPlugin", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdminProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AdministratorAdminPlugin", - "description": null, - "fields": [ - { - "name": "administrator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Administrator", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "for Many-to-Many", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "AdminPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "BigInt", - "description": " Large integers. Used for Ethereum's `uint32`, `int64`, `uint64`, ..., `uint25`6 types. Note: Everything below `uint32`, such as `int32`, `uint24` or `int8` is represented as `i32`. ", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Boolean", - "description": "The `Boolean` scalar type represents `true` or `false`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Bytes", - "description": " Byte array, represented as a hexadecimal string. Commonly used for Ethereum hashes and addresses. ", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Dao", - "description": null, - "fields": [ - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "balances", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "TokenBalance", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "daoURI", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Permission", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugins", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signatureValidator", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "standardCallbacks", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StandardCallback", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subdomain", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "ERC20Contract", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "transfers", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "TokenTransfer", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "trustedForwarder", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC20Balance", - "description": "The ERC20 Token balances for the DAO.", - "fields": [ - { - "name": "balance", - "description": " The amount of ERC20 tokens held by the DAO. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that holds the ERC20 token. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart contract address and Token Smart contract address. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20) instance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC20Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenBalance", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC20Contract", - "description": "An [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20), of type Token.", - "fields": [ - { - "name": "decimals", - "description": " The number of decimals of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The address of the [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": " The name of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "symbol", - "description": " The symbol of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC20Transfer", - "description": "Transfers of ERC20 token associated with the DAO, including transfers sent to, received by, or intermediated by the DAO (refer to `Enum` `TransferType` for a better understanding of transfers associated with the DAO meaning).", - "fields": [ - { - "name": "amount", - "description": " The amount of ERC20 token transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": " The timestamp of the block including the ERC20 token transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that manages the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "from", - "description": " The Ethereum address from which the ERC20 tokens are being transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of the transfer transaction hash, the log index and the action index. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The associated DAO proposal, if applicable. Using the DAO `deposit` function there's no need for proposal. ", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The Ethereum address receiving the ERC20 tokens. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The ERC20 Smart Contract Token entity involved in the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "txHash", - "description": " The hash of the ERC20 token transfer to track the transaction. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": " The type of transfer (External, Withdraw, Deposit) from the DAO's POV. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TransferType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenTransfer", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC20WrapperContract", - "description": "Wrapped [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20). Used for token voting.", - "fields": [ - { - "name": "decimals", - "description": " The number of decimals of the wrapped token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The address of the [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": " The name of the wrapped token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "symbol", - "description": " The symbol of the wrapped token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "underlyingToken", - "description": " The underlying [ERC20 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-20) this wrapper represents. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC20Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC721Balance", - "description": "The NFT balances of the DAO. Including all Token IDs held by the DAO per [ERC721 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-721).", - "fields": [ - { - "name": "dao", - "description": " The DAO that holds tokens from a [ERC721 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-721). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart Contract address and [ERC721 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-721) address. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The [ERC721 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-721) instance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC721Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenIds", - "description": " The NFTs from one ERC721 Contract held by the DAO. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenBalance", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC721Contract", - "description": "[ERC721 Token Standard](https://eips.ethereum.org/EIPS/eip-721), Non-Fungible Token (NFT), of type Token.", - "fields": [ - { - "name": "id", - "description": " The address of the [ERC721 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-721). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": " The name of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "symbol", - "description": " The symbol of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC721Transfer", - "description": "Transfers of ERC721 token associated with the DAO, including transfers sent to, received by, or intermediated by the DAO (refer to `Enum` `TransferType` for a better understanding of transfers associated with the DAO meaning).", - "fields": [ - { - "name": "createdAt", - "description": " The timestamp of the block including the ERC721 token transfer . ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that manages the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "from", - "description": " The Ethereum address from which the ERC721 token is being transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of the transfer transaction hash, the log index and the action index. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The associated DAO proposal, if applicable. Using the DAO `deposit` function there's no need for proposal. ", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The Ethereum address receiving the ERC721 token. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The ERC721 Smart Contract Token entity involved in the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC721Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenId", - "description": " The ID of the transferred token. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "txHash", - "description": " The hash of the ERC721 token transfer to track the transaction. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": " The type of transfer (External, Withdraw, Deposit) from the DAO's POV. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TransferType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenTransfer", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Balance", - "description": "The ERC1155 Token balances of the DAO. Including all Token IDs and it's amounts held by the DAO per [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155).", - "fields": [ - { - "name": "balances", - "description": " Balance for each token ID from an [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC1155TokenIdBalance", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that holds tokens from a [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart Contract address and [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155) address. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadataUri", - "description": " The URI of the [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155) instance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC1155Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenBalance", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Contract", - "description": "[ERC1155 Multi-Token Standard](https://eips.ethereum.org/EIPS/eip-1155), fungible, non-fungible, and semi-fungible tokens all in one contract,\ntype of Token.", - "fields": [ - { - "name": "id", - "description": " The address of the [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": " The name of the [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "symbol", - "description": " The symbol of the [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155). ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC1155TokenIdBalance", - "description": "The DAO token balance for each token within an [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155)", - "fields": [ - { - "name": "amount", - "description": " The number of tokens held by the DAO per [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155) and token ID. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "balance", - "description": " One to Many relationship linking with ERC1155Balance entity. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC1155Balance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart Contract address, [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155) and token ID. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenId", - "description": " The ID for each different token in an [ERC1155 Token Smart Contract](https://eips.ethereum.org/EIPS/eip-1155) held by the DAO. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Transfer", - "description": "Transfers of ERC1155 token associated with the DAO, including transfers sent to, received by, or intermediated by the DAO (refer to `Enum` `TransferType` for a better understanding of transfers associated with the DAO meaning).", - "fields": [ - { - "name": "amount", - "description": " The amount of transferred tokens. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": " The timestamp of the block including the ERC1155 token transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that manages the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "from", - "description": " The Ethereum address from which the tokens are being transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of the transfer transaction hash, the log index and the action index. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operator", - "description": " The Ethereum address performing the token transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The associated DAO proposal, if applicable. Using the DAO `deposit` function there's no need for proposal. ", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The Ethereum address receiving the tokens. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": " The ERC1155 Smart Contract Token entity involved in the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ERC1155Contract", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenId", - "description": " The ID of the transferred token. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "txHash", - "description": " The hash of the ERC1155 token transfer to track the transaction. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": " The type of transfer (External, Withdraw, Deposit) from the DAO's POV. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TransferType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenTransfer", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "ID", - "description": "The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "IPlugin", - "description": null, - "fields": [ - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "AddresslistVotingPlugin", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AdminPlugin", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MultisigPlugin", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingPlugin", - "ofType": null - } - ] - }, - { - "kind": "INTERFACE", - "name": "IProposal", - "description": null, - "fields": [ - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "AddresslistVotingProposal", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AdminProposal", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MultisigProposal", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingProposal", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TransactionActionsProposal", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MultisigApprover", - "description": null, - "fields": [ - { - "name": "address", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigProposalApprover", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MultisigPlugin", - "description": null, - "fields": [ - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "TODO: attributes should be appended to Plugin once plugin is seperated from Aragon OSx", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "members", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigApprover", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minApprovals", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onlyListed", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposalCount", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IPlugin", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MultisigProposal", - "description": null, - "fields": [ - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approvalReached", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approvals", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approvers", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigProposalApprover", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creationBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSignaling", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minApprovals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginProposalId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "snapshotBlock", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MultisigProposalApprover", - "description": null, - "fields": [ - { - "name": "approver", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigApprover", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "ApproverProposal for Many-to-Many", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MultisigProposal", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NativeBalance", - "description": "The Native token balances of the DAO, representing the amount of the blockchain's native currency\n(e.g., Ether on Ethereum, MATIC on Polygon) held by the DAO.", - "fields": [ - { - "name": "balance", - "description": " The amount of native tokens held by the DAO. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that holds the native tokens", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart contract address and Token Smart contract address. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this native token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenBalance", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NativeTransfer", - "description": "Transfers of Native token associated with the DAO, including transfers sent to, received by, or intermediated by the DAO (refer to `Enum` `TransferType` for a better understanding of transfers associated with the DAO meaning).", - "fields": [ - { - "name": "amount", - "description": " The amount of transferred native tokens . ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": " The timestamp of the native token transfer block. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that manages the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "from", - "description": " The Ethereum address from which the native tokens are being transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of the transfer transaction hash, the log index and the action index (set to 0). Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The associated DAO proposal, if applicable. Using the DAO `deposit` function there's no need for proposal. ", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reference", - "description": " The reference describing the deposit reason. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The Ethereum address receiving the native tokens. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "txHash", - "description": " The hash of the native token transfer to track the transaction. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": " The type of transfer (External, Withdraw, Deposit) from the DAO's POV. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TransferType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TokenTransfer", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Permission", - "description": null, - "fields": [ - { - "name": "actor", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "condition", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginRepo", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "PluginRepo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "where", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "who", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PermissionOperation", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "Grant", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GrantWithCondition", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Revoke", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginInstallation", - "description": null, - "fields": [ - { - "name": "appliedPluginRepo", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "PluginRepo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "appliedPreparation", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "PluginPreparation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "appliedSetupId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "appliedVersion", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "PluginVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IPlugin", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "preparations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginPreparation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PluginPreparationState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginPermission", - "description": null, - "fields": [ - { - "name": "condition", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operation", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PermissionOperation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissionId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginPreparation", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginPreparation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "where", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "who", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginPreparation", - "description": null, - "fields": [ - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "data", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "helpers", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installation", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginPermission", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginRepo", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginRepo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginVersion", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginVersion", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "preparedSetupId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PluginPreparationType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PluginPreparationState", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "InstallationPrepared", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Installed", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UninstallPrepared", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Uninstalled", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UpdatePrepared", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PluginPreparationType", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "Installation", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Uninstallation", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Update", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginRelease", - "description": null, - "fields": [ - { - "name": "builds", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginVersion", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginRepo", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginRepo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "release", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginRepo", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Permission", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "preparations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginPreparation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "releases", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginRelease", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subdomain", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginSetup", - "description": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "versions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginVersion", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PluginVersion", - "description": null, - "fields": [ - { - "name": "build", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginRepo", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginRepo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginSetup", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "PluginSetup", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "preparations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginPreparation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "release", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginRelease", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Query", - "description": " Query type, required to generate introspection query. ", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StandardCallback", - "description": "The supported callback functions for ERC standards registered with [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID and callback function signature.", - "fields": [ - { - "name": "callbackSelector", - "description": " The selector of the registered callback function. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO associated with the supported callback functions. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " Concatenation of the DAO address and the interfaceID. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaceId", - "description": " The interface identifier, as specified in [ERC-165](https://eips.ethereum.org/EIPS/eip-165) (XOR of all function selectors in the interface). ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "magicNumber", - "description": " The magic number registered for the function signature. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Token", - "description": "Interface representing a generic token. Each entity implementing this interface can be queried as Token.", - "fields": [ - { - "name": "id", - "description": " The address of the Token Smart Contract. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": " The name of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "symbol", - "description": " The symbol of the token, mirrored from the smart contract. ", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "ERC20Contract", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC20WrapperContract", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC721Contract", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Contract", - "ofType": null - } - ] - }, - { - "kind": "INTERFACE", - "name": "TokenBalance", - "description": "Balance of the DAO for any kind of token. Each entity implementing this interface can be queried as TokenBalance.", - "fields": [ - { - "name": "dao", - "description": " The DAO that holds the Tokens", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of DAO Smart contract address and Token Smart Contract address. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": " The block timestamp of the last update (transfer) for this token balance. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "ERC20Balance", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC721Balance", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Balance", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "NativeBalance", - "ofType": null - } - ] - }, - { - "kind": "INTERFACE", - "name": "TokenTransfer", - "description": "Interface representing a generic token transfer associated with the DAO. Each entity implementing this interface can be queried as TokenTransfer (refer to `Enum` `TransferType` for a better understanding of transfers associated with the DAO meaning).", - "fields": [ - { - "name": "createdAt", - "description": " The timestamp of the block including transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": " The DAO that manages the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "from", - "description": " The Ethereum address from which the tokens are being transferred. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": " The concatenation of the transfer transaction hash, the log index and the action index. Joined by '_'. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": " The associated DAO proposal, if applicable. Using the DAO `deposit` function there's no need for proposal. ", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "to", - "description": " The Ethereum address receiving the transfer. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "txHash", - "description": " The hash of the transfer to track the transaction. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": " The type of transfer (External, Withdraw, Deposit) from the DAO's POV. ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TransferType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "ERC20Transfer", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC721Transfer", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ERC1155Transfer", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "NativeTransfer", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "TokenVotingMember", - "description": null, - "fields": [ - { - "name": "address", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "balance", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "delegatee", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "TokenVotingMember", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "delegators", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingMember", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingPower", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingPlugin", - "description": null, - "fields": [ - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "TODO: attributes should be appended to Plugins once plugin is separated from Aragon OSx", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PluginInstallation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "members", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingMember", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minDuration", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minParticipation", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minProposerVotingPower", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginAddress", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposalCount", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingProposal", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportThreshold", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "token", - "description": null, - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Token", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingMode", - "description": null, - "args": [], - "type": { - "kind": "ENUM", - "name": "VotingMode", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IPlugin", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingProposal", - "description": null, - "fields": [ - { - "name": "abstain", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "approvalReached", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "castedVotingPower", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creationBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "earlyExecutable", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionBlockNumber", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionDate", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSignaling", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minVotingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "no", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "open", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pluginProposalId", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "snapshotBlock", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportThreshold", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalVotingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voters", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingVote", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingMode", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "VotingMode", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "yes", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingVote", - "description": null, - "fields": [ - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "VoterProposal for Many-to-Many", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposal", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingProposal", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voteOption", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "VoteOption", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voteReplaced", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "voter", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingVoter", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "votingPower", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TokenVotingVoter", - "description": null, - "fields": [ - { - "name": "address", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastUpdated", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "plugin", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingPlugin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "proposals", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TokenVotingVote", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TransactionActionsProposal", - "description": null, - "fields": [ - { - "name": "actions", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Action", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowFailureMap", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dao", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Dao", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executed", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "executionTxHash", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Bytes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "failureMap", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "metadata", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDate", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "BigInt", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "IProposal", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TransferType", - "description": "Classifies the types of transfers from the DAO's point of view.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "Deposit", - "description": "A deposit to the DAO treasury. Using either the DAO `deposit` function or executed by the DAO via proposal calling `transferFrom` as an action to transfer to itself.\nThe DAO must have token approval.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ExternalTransfer", - "description": "When a DAO facilitates a transfer and neither the source nor the destination addresses match the DAO's. The DAO must\nhave token approval to execute the transfer via proposal, acting as an intermediary in the process.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Withdraw", - "description": " A withdrawal form the DAO treasury. Executed by the DAO via proposal calling `transfer`. ", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "VoteOption", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "Abstain", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "No", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "None", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Yes", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "VotingMode", - "description": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "EarlyExecution", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "Standard", - "description": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VoteReplacement", - "description": null, - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRepeatable", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VARIABLE_DEFINITION", - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "args", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "specifiedByURL", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false", - "isDeprecated": false, - "deprecationReason": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - } - ], - "directives": [ - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "isRepeatable": false, - "locations": [ - "ARGUMENT_DEFINITION", - "ENUM_VALUE", - "FIELD_DEFINITION", - "INPUT_FIELD_DEFINITION" - ], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": "\"No longer supported\"", - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "isRepeatable": false, - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "isRepeatable": false, - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - }, - { - "name": "specifiedBy", - "description": "Exposes a URL that specifies the behavior of this scalar.", - "isRepeatable": false, - "locations": ["SCALAR"], - "args": [ - { - "name": "url", - "description": "The URL that specifies the behavior of this scalar.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - } - ] - } - ] - } -} diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/DAO.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/DAO.md deleted file mode 100644 index f3c398e6..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/DAO.md +++ /dev/null @@ -1,442 +0,0 @@ -## Description - -This contract is the entry point to the Aragon DAO framework and provides our users a simple and easy to use public interface. - -Public API of the Aragon DAO framework. - -## Implementation - -### public variable EXECUTE_PERMISSION_ID - -The ID of the permission required to call the `execute` function. - -```solidity -bytes32 EXECUTE_PERMISSION_ID -``` - -### public variable UPGRADE_DAO_PERMISSION_ID - -The ID of the permission required to call the `_authorizeUpgrade` function. - -```solidity -bytes32 UPGRADE_DAO_PERMISSION_ID -``` - -### public variable SET_METADATA_PERMISSION_ID - -The ID of the permission required to call the `setMetadata` function. - -```solidity -bytes32 SET_METADATA_PERMISSION_ID -``` - -### public variable SET_TRUSTED_FORWARDER_PERMISSION_ID - -The ID of the permission required to call the `setTrustedForwarder` function. - -```solidity -bytes32 SET_TRUSTED_FORWARDER_PERMISSION_ID -``` - -### public variable REGISTER_STANDARD_CALLBACK_PERMISSION_ID - -The ID of the permission required to call the `registerStandardCallback` function. - -```solidity -bytes32 REGISTER_STANDARD_CALLBACK_PERMISSION_ID -``` - -### public variable VALIDATE_SIGNATURE_PERMISSION_ID - -The ID of the permission required to validate [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271) signatures. - -```solidity -bytes32 VALIDATE_SIGNATURE_PERMISSION_ID -``` - -### internal variable MAX_ACTIONS - -The internal constant storing the maximal action array length. - -```solidity -uint256 MAX_ACTIONS -``` - -### error ReentrantCall - -Thrown if a call is reentrant. - -```solidity -error ReentrantCall() -``` - -### error TooManyActions - -Thrown if the action array length is larger than `MAX_ACTIONS`. - -```solidity -error TooManyActions() -``` - -### error ActionFailed - -Thrown if action execution has failed. - -```solidity -error ActionFailed(uint256 index) -``` - -| Input | Type | Description | -| :------ | --------- | -------------------------------------------------------- | -| `index` | `uint256` | The index of the action in the action array that failed. | - -### error InsufficientGas - -Thrown if an action has insufficent gas left. - -```solidity -error InsufficientGas() -``` - -### error ZeroAmount - -Thrown if the deposit amount is zero. - -```solidity -error ZeroAmount() -``` - -### error NativeTokenDepositAmountMismatch - -Thrown if there is a mismatch between the expected and actually deposited amount of native tokens. - -```solidity -error NativeTokenDepositAmountMismatch(uint256 expected, uint256 actual) -``` - -| Input | Type | Description | -| :--------- | --------- | ----------------------------------------- | -| `expected` | `uint256` | The expected native token amount. | -| `actual` | `uint256` | The actual native token amount deposited. | - -### error ProtocolVersionUpgradeNotSupported - -Thrown if an upgrade is not supported from a specific protocol version . - -```solidity -error ProtocolVersionUpgradeNotSupported(uint8[3] protocolVersion) -``` - -### error FunctionRemoved - -Thrown when a function is removed but left to not corrupt the interface ID. - -```solidity -error FunctionRemoved() -``` - -### event NewURI - -Emitted when a new DAO URI is set. - -```solidity -event NewURI(string daoURI) -``` - -| Input | Type | Description | -| :------- | -------- | ------------ | -| `daoURI` | `string` | The new URI. | - -### internal modifier nonReentrant - -A modifier to protect a function from calling itself, directly or indirectly (reentrancy). - -```solidity -modifier nonReentrant() -``` - -_Currently, this modifier is only applied to the `execute()` function. If this is used multiple times, private `_beforeNonReentrant()` and `_afterNonReentrant()` functions should be created to prevent code duplication._ - -### public function constructor - -Disables the initializers on the implementation contract to prevent it from being left uninitialized. - -```solidity -constructor() public -``` - -### external function initialize - -Initializes the DAO by - -- setting the reentrancy status variable to `_NOT_ENTERED` -- registering the [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID -- setting the trusted forwarder for meta transactions -- giving the `ROOT_PERMISSION_ID` permission to the initial owner (that should be revoked and transferred to the DAO after setup). - -```solidity -function initialize(bytes _metadata, address _initialOwner, address _trustedForwarder, string daoURI_) external -``` - -| Input | Type | Description | -| :------------------ | --------- | ------------------------------------------------------------------------------------ | -| `_metadata` | `bytes` | IPFS hash that points to all the metadata (logo, description, tags, etc.) of a DAO. | -| `_initialOwner` | `address` | The initial owner of the DAO having the `ROOT_PERMISSION_ID` permission. | -| `_trustedForwarder` | `address` | The trusted forwarder responsible for verifying meta transactions. | -| `daoURI_` | `string` | The DAO URI required to support [ERC-4824](https://eips.ethereum.org/EIPS/eip-4824). | - -_This method is required to support [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)._ - -### external function initializeFrom - -Initializes the DAO after an upgrade from a previous protocol version. - -```solidity -function initializeFrom(uint8[3] _previousProtocolVersion, bytes _initData) external -``` - -| Input | Type | Description | -| :------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `_previousProtocolVersion` | `uint8[3]` | The semantic protocol version number of the previous DAO implementation contract this upgrade is transitioning from. | -| `_initData` | `bytes` | The initialization data to be passed to via `upgradeToAndCall` (see [ERC-1967](https://docs.openzeppelin.com/contracts/4.x/api/proxy#ERC1967Upgrade)). | - -### internal function isPermissionRestrictedForAnyAddr - -Decides if the granting permissionId is restricted when `_who == ANY_ADDR` or `_where == ANY_ADDR`. - -```solidity -function isPermissionRestrictedForAnyAddr(bytes32 _permissionId) internal pure returns (bool) -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------------------- | -| `_permissionId` | `bytes32` | The permission identifier. | -| **Output** | | -| `0` | `bool` | Whether or not the permission is restricted. | - -_By default, every permission is unrestricted and it is the derived contract's responsibility to override it. Note, that the `ROOT_PERMISSION_ID` is included and not required to be set it again._ - -### internal function \_authorizeUpgrade - -Internal method authorizing the upgrade of the contract via the [upgradeability mechanism for UUPS proxies](https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable) (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)). - -```solidity -function _authorizeUpgrade(address) internal virtual -``` - -_The caller must have the `UPGRADE_DAO_PERMISSION_ID` permission._ - -### external function setTrustedForwarder - -Setter for the trusted forwarder verifying the meta transaction. - -```solidity -function setTrustedForwarder(address _newTrustedForwarder) external -``` - -| Input | Type | Description | -| :--------------------- | --------- | ----------- | -| `_newTrustedForwarder` | `address` | | - -### external function getTrustedForwarder - -Getter for the trusted forwarder verifying the meta transaction. - -```solidity -function getTrustedForwarder() external view virtual returns (address) -``` - -| Output | Type | Description | -| ------ | --------- | ------------------------------ | -| `0` | `address` | The trusted forwarder address. | - -### external function hasPermission - -Checks if an address has permission on a contract via a permission identifier and considers if `ANY_ADDRESS` was used in the granting process. - -```solidity -function hasPermission(address _where, address _who, bytes32 _permissionId, bytes _data) external view returns (bool) -``` - -| Input | Type | Description | -| :-------------- | --------- | ----------------------------------------------------------------- | -| `_where` | `address` | The address of the contract. | -| `_who` | `address` | The address of a EOA or contract to give the permissions. | -| `_permissionId` | `bytes32` | The permission identifier. | -| `_data` | `bytes` | The optional data passed to the `PermissionCondition` registered. | -| **Output** | | -| `0` | `bool` | Returns true if the address has permission, false if not. | - -### external function setMetadata - -Updates the DAO metadata (e.g., an IPFS hash). - -```solidity -function setMetadata(bytes _metadata) external -``` - -| Input | Type | Description | -| :---------- | ------- | ----------------------------------------- | -| `_metadata` | `bytes` | The IPFS hash of the new metadata object. | - -### external function execute - -Executes a list of actions. If a zero allow-failure map is provided, a failing action reverts the entire execution. If a non-zero allow-failure map is provided, allowed actions can fail without the entire call being reverted. - -```solidity -function execute(bytes32 _callId, struct IDAO.Action[] _actions, uint256 _allowFailureMap) external returns (bytes[] execResults, uint256 failureMap) -``` - -| Input | Type | Description | -| :----------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `_callId` | `bytes32` | The ID of the call. The definition of the value of `callId` is up to the calling contract and can be used, e.g., as a nonce. | -| `_actions` | `struct IDAO.Action[]` | The array of actions. | -| `_allowFailureMap` | `uint256` | A bitmap allowing execution to succeed, even if individual actions might revert. If the bit at index `i` is 1, the execution succeeds even if the `i`th action reverts. A failure map value of 0 requires every action to not revert. | -| **Output** | | -| `execResults` | `bytes[]` | The array of results obtained from the executed actions in `bytes`. | -| `failureMap` | `uint256` | The resulting failure map containing the actions have actually failed. | - -### external function deposit - -Deposits (native) tokens to the DAO contract with a reference string. - -```solidity -function deposit(address _token, uint256 _amount, string _reference) external payable -``` - -| Input | Type | Description | -| :----------- | --------- | ------------------------------------------------------------------- | -| `_token` | `address` | The address of the token or address(0) in case of the native token. | -| `_amount` | `uint256` | The amount of tokens to deposit. | -| `_reference` | `string` | The reference describing the deposit reason. | - -### external function setSignatureValidator - -Removed function being left here to not corrupt the IDAO interface ID. Any call will revert. - -```solidity -function setSignatureValidator(address) external pure -``` - -_Introduced in v1.0.0. Removed in v1.4.0._ - -### external function isValidSignature - -Checks whether a signature is valid for a provided hash according to [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271). - -```solidity -function isValidSignature(bytes32 _hash, bytes _signature) external view returns (bytes4) -``` - -| Input | Type | Description | -| :----------- | --------- | ------------------------------------------------------------------------------------------------ | -| `_hash` | `bytes32` | The hash of the data to be signed. | -| `_signature` | `bytes` | The signature byte array associated with `_hash`. | -| **Output** | | -| `0` | `bytes4` | Returns the `bytes4` magic value `0x1626ba7e` if the signature is valid and `0xffffffff` if not. | - -_Relays the validation logic determining who is allowed to sign on behalf of the DAO to its permission manager. -Caller specific bypassing can be set direct granting (i.e., `grant({_where: dao, _who: specificErc1271Caller, _permissionId: VALIDATE_SIGNATURE_PERMISSION_ID})`). -Caller specific signature validation logic can be set by granting with a `PermissionCondition` (i.e., `grantWithCondition({_where: dao, _who: specificErc1271Caller, _permissionId: VALIDATE_SIGNATURE_PERMISSION_ID, _condition: yourConditionImplementation})`) -Generic signature validation logic can be set for all calling contracts by granting with a `PermissionCondition` to `PermissionManager.ANY_ADDR()` (i.e., `grantWithCondition({_where: dao, _who: PermissionManager.ANY_ADDR(), _permissionId: VALIDATE_SIGNATURE_PERMISSION_ID, _condition: yourConditionImplementation})`)._ - -### external function receive - -Emits the `NativeTokenDeposited` event to track native token deposits that weren't made via the deposit method. - -```solidity -receive() external payable -``` - -_This call is bound by the gas limitations for `send`/`transfer` calls introduced by [ERC-2929](https://eips.ethereum.org/EIPS/eip-2929). -Gas cost increases in future hard forks might break this function. As an alternative, [ERC-2930](https://eips.ethereum.org/EIPS/eip-2930)-type transactions using access lists can be employed._ - -### external function fallback - -Fallback to handle future versions of the [ERC-165](https://eips.ethereum.org/EIPS/eip-165) standard. - -```solidity -fallback(bytes _input) external returns (bytes) -``` - -| Input | Type | Description | -| :--------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `_input` | `bytes` | An alias being equivalent to `msg.data`. This feature of the fallback function was introduced with the [solidity compiler version 0.7.6](https://github.com/ethereum/solidity/releases/tag/v0.7.6) | -| **Output** | | -| `0` | `bytes` | The magic number registered for the function selector triggering the fallback. | - -### internal function \_setMetadata - -Emits the MetadataSet event if new metadata is set. - -```solidity -function _setMetadata(bytes _metadata) internal -``` - -| Input | Type | Description | -| :---------- | ------- | --------------------------------- | -| `_metadata` | `bytes` | Hash of the IPFS metadata object. | - -### internal function \_setTrustedForwarder - -Sets the trusted forwarder on the DAO and emits the associated event. - -```solidity -function _setTrustedForwarder(address _trustedForwarder) internal -``` - -| Input | Type | Description | -| :------------------ | --------- | ------------------------------ | -| `_trustedForwarder` | `address` | The trusted forwarder address. | - -### external function registerStandardCallback - -Registers an ERC standard having a callback by registering its [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID and callback function signature. - -```solidity -function registerStandardCallback(bytes4 _interfaceId, bytes4 _callbackSelector, bytes4 _magicNumber) external -``` - -| Input | Type | Description | -| :------------------ | -------- | ------------------------------------------------------------- | -| `_interfaceId` | `bytes4` | The ID of the interface. | -| `_callbackSelector` | `bytes4` | The selector of the callback function. | -| `_magicNumber` | `bytes4` | The magic number to be registered for the function signature. | - -### external function daoURI - -A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically hosted or dynamically-generated. - -```solidity -function daoURI() external view returns (string) -``` - -| Output | Type | Description | -| ------ | -------- | ----------- | -| `0` | `string` | | - -### external function setDaoURI - -Updates the set DAO URI to a new value. - -```solidity -function setDaoURI(string newDaoURI) external -``` - -| Input | Type | Description | -| :---------- | -------- | -------------------------- | -| `newDaoURI` | `string` | The new DAO URI to be set. | - -### internal function \_setDaoURI - -Sets the new [ERC-4824](https://eips.ethereum.org/EIPS/eip-4824) DAO URI and emits the associated event. - -```solidity -function _setDaoURI(string daoURI_) internal -``` - -| Input | Type | Description | -| :-------- | -------- | ---------------- | -| `daoURI_` | `string` | The new DAO URI. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/IEIP4824.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/IEIP4824.md deleted file mode 100644 index 1c6cf7e2..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/dao/IEIP4824.md +++ /dev/null @@ -1,19 +0,0 @@ -## Description - -See https://eips.ethereum.org/EIPS/eip-4824 - -## Implementation - -### external function daoURI - -A distinct Uniform Resource Identifier (URI) pointing to a JSON object following the "EIP-4824 DAO JSON-LD Schema". This JSON file splits into four URIs: membersURI, proposalsURI, activityLogURI, and governanceURI. The membersURI should point to a JSON file that conforms to the "EIP-4824 Members JSON-LD Schema". The proposalsURI should point to a JSON file that conforms to the "EIP-4824 Proposals JSON-LD Schema". The activityLogURI should point to a JSON file that conforms to the "EIP-4824 Activity Log JSON-LD Schema". The governanceURI should point to a flatfile, normatively a .md file. Each of the JSON files named above can be statically hosted or dynamically-generated. - -```solidity -function daoURI() external view returns (string _daoURI) -``` - -| Output | Type | Description | -| --------- | -------- | ------------ | -| `_daoURI` | `string` | The DAO URI. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/permission/PermissionManager.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/core/permission/PermissionManager.md deleted file mode 100644 index 9caec23b..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/permission/PermissionManager.md +++ /dev/null @@ -1,404 +0,0 @@ -## Description - -The abstract permission manager used in a DAO, its associated plugins, and other framework-related components. - -## Implementation - -### public variable ROOT_PERMISSION_ID - -The ID of the permission required to call the `grant`, `grantWithCondition`, `revoke`, and `bulk` function. - -```solidity -bytes32 ROOT_PERMISSION_ID -``` - -### internal variable ANY_ADDR - -A special address encoding permissions that are valid for any address `who` or `where`. - -```solidity -address ANY_ADDR -``` - -### internal variable UNSET_FLAG - -A special address encoding if a permissions is not set and therefore not allowed. - -```solidity -address UNSET_FLAG -``` - -### internal variable ALLOW_FLAG - -A special address encoding if a permission is allowed. - -```solidity -address ALLOW_FLAG -``` - -### internal variable permissionsHashed - -A mapping storing permissions as hashes (i.e., `permissionHash(where, who, permissionId)`) and their status encoded by an address (unset, allowed, or redirecting to a `PermissionCondition`). - -```solidity -mapping(bytes32 => address) permissionsHashed -``` - -### error Unauthorized - -Thrown if a call is unauthorized. - -```solidity -error Unauthorized(address where, address who, bytes32 permissionId) -``` - -| Input | Type | Description | -| :------------- | --------- | ----------------------------------------------------- | -| `where` | `address` | The context in which the authorization reverted. | -| `who` | `address` | The address (EOA or contract) missing the permission. | -| `permissionId` | `bytes32` | The permission identifier. | - -### error PermissionAlreadyGrantedForDifferentCondition - -Thrown if a permission has been already granted with a different condition. - -```solidity -error PermissionAlreadyGrantedForDifferentCondition(address where, address who, bytes32 permissionId, address currentCondition, address newCondition) -``` - -| Input | Type | Description | -| :----------------- | --------- | ------------------------------------------------------------------------------- | -| `where` | `address` | The address of the target contract to grant `_who` permission to. | -| `who` | `address` | The address (EOA or contract) to which the permission has already been granted. | -| `permissionId` | `bytes32` | The permission identifier. | -| `currentCondition` | `address` | The current condition set for permissionId. | -| `newCondition` | `address` | The new condition it tries to set for permissionId. | - -_This makes sure that condition on the same permission can not be overwriten by a different condition._ - -### error ConditionNotAContract - -Thrown if a condition address is not a contract. - -```solidity -error ConditionNotAContract(contract IPermissionCondition condition) -``` - -| Input | Type | Description | -| :---------- | ------------------------------- | ----------------------------------- | -| `condition` | `contract IPermissionCondition` | The address that is not a contract. | - -### error ConditionInterfacNotSupported - -Thrown if a condition contract does not support the `IPermissionCondition` interface. - -```solidity -error ConditionInterfacNotSupported(contract IPermissionCondition condition) -``` - -| Input | Type | Description | -| :---------- | ------------------------------- | ----------------------------------- | -| `condition` | `contract IPermissionCondition` | The address that is not a contract. | - -### error PermissionsForAnyAddressDisallowed - -Thrown for `ROOT_PERMISSION_ID` or `EXECUTE_PERMISSION_ID` permission grants where `who` or `where` is `ANY_ADDR`. - -```solidity -error PermissionsForAnyAddressDisallowed() -``` - -### error AnyAddressDisallowedForWhoAndWhere - -Thrown for permission grants where `who` and `where` are both `ANY_ADDR`. - -```solidity -error AnyAddressDisallowedForWhoAndWhere() -``` - -### error GrantWithConditionNotSupported - -Thrown if `Operation.GrantWithCondition` is requested as an operation but the method does not support it. - -```solidity -error GrantWithConditionNotSupported() -``` - -### event Granted - -Emitted when a permission `permission` is granted in the context `here` to the address `_who` for the contract `_where`. - -```solidity -event Granted(bytes32 permissionId, address here, address where, address who, address condition) -``` - -| Input | Type | Description | -| :------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `permissionId` | `bytes32` | The permission identifier. | -| `here` | `address` | The address of the context in which the permission is granted. | -| `where` | `address` | The address of the target contract for which `_who` receives permission. | -| `who` | `address` | The address (EOA or contract) receiving the permission. | -| `condition` | `address` | The address `ALLOW_FLAG` for regular permissions or, alternatively, the `IPermissionCondition` contract implementation to be used. | - -### event Revoked - -Emitted when a permission `permission` is revoked in the context `here` from the address `_who` for the contract `_where`. - -```solidity -event Revoked(bytes32 permissionId, address here, address where, address who) -``` - -| Input | Type | Description | -| :------------- | --------- | --------------------------------------------------------------------- | -| `permissionId` | `bytes32` | The permission identifier. | -| `here` | `address` | The address of the context in which the permission is revoked. | -| `where` | `address` | The address of the target contract for which `_who` loses permission. | -| `who` | `address` | The address (EOA or contract) losing the permission. | - -### internal modifier auth - -A modifier to make functions on inheriting contracts authorized. Permissions to call the function are checked through this permission manager. - -```solidity -modifier auth(bytes32 _permissionId) -``` - -| Input | Type | Description | -| :-------------- | --------- | ---------------------------------------------------------------------------------- | -| `_permissionId` | `bytes32` | The permission identifier required to call the method this modifier is applied to. | - -### internal function \_\_PermissionManager_init - -Initialization method to set the initial owner of the permission manager. - -```solidity -function __PermissionManager_init(address _initialOwner) internal -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------------------- | -| `_initialOwner` | `address` | The initial owner of the permission manager. | - -_The initial owner is granted the `ROOT_PERMISSION_ID` permission._ - -### external function grant - -Grants permission to an address to call methods in a contract guarded by an auth modifier with the specified permission identifier. - -```solidity -function grant(address _where, address _who, bytes32 _permissionId) external virtual -``` - -| Input | Type | Description | -| :-------------- | --------- | ------------------------------------------------------------------------ | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) receiving the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | - -_Requires the `ROOT_PERMISSION_ID` permission. -Note, that granting permissions with `_who` or `_where` equal to `ANY_ADDR` does not replace other permissions with specific `_who` and `_where` addresses that exist in parallel._ - -### external function grantWithCondition - -Grants permission to an address to call methods in a target contract guarded by an auth modifier with the specified permission identifier if the referenced condition permits it. - -```solidity -function grantWithCondition(address _where, address _who, bytes32 _permissionId, contract IPermissionCondition _condition) external virtual -``` - -| Input | Type | Description | -| :-------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) receiving the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | -| `_condition` | `contract IPermissionCondition` | The `PermissionCondition` that will be asked for authorization on calls connected to the specified permission identifier. | - -_Requires the `ROOT_PERMISSION_ID` permission -Note, that granting permissions with `_who` or `_where` equal to `ANY_ADDR` does not replace other permissions with specific `_who` and `_where` addresses that exist in parallel._ - -### external function revoke - -Revokes permission from an address to call methods in a target contract guarded by an auth modifier with the specified permission identifier. - -```solidity -function revoke(address _where, address _who, bytes32 _permissionId) external virtual -``` - -| Input | Type | Description | -| :-------------- | --------- | --------------------------------------------------------------------- | -| `_where` | `address` | The address of the target contract for which `_who` loses permission. | -| `_who` | `address` | The address (EOA or contract) losing the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | - -_Requires the `ROOT_PERMISSION_ID` permission. -Note, that revoking permissions with `_who` or `_where` equal to `ANY_ADDR` does not revoke other permissions with specific `_who` and `_where` addresses that exist in parallel._ - -### external function applySingleTargetPermissions - -Applies an array of permission operations on a single target contracts `_where`. - -```solidity -function applySingleTargetPermissions(address _where, struct PermissionLib.SingleTargetPermission[] items) external virtual -``` - -| Input | Type | Description | -| :------- | ----------------------------------------------- | ------------------------------------------------------------ | -| `_where` | `address` | The address of the single target contract. | -| `items` | `struct PermissionLib.SingleTargetPermission[]` | The array of single-targeted permission operations to apply. | - -### external function applyMultiTargetPermissions - -Applies an array of permission operations on multiple target contracts `items[i].where`. - -```solidity -function applyMultiTargetPermissions(struct PermissionLib.MultiTargetPermission[] _items) external virtual -``` - -| Input | Type | Description | -| :------- | ---------------------------------------------- | ----------------------------------------------------------- | -| `_items` | `struct PermissionLib.MultiTargetPermission[]` | The array of multi-targeted permission operations to apply. | - -### public function isGranted - -Checks if the caller address has permission on the target contract via a permission identifier and relays the answer to a condition contract if this was declared during the granting process. - -```solidity -function isGranted(address _where, address _who, bytes32 _permissionId, bytes _data) public view virtual returns (bool) -``` - -| Input | Type | Description | -| :-------------- | --------- | ---------------------------------------------------------------------------------------------------------- | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) for which the permission is checked. | -| `_permissionId` | `bytes32` | The permission identifier. | -| `_data` | `bytes` | Optional data to be passed to the set `PermissionCondition`. | -| **Output** | | -| `0` | `bool` | Returns true if `_who` has the permissions on the target contract via the specified permission identifier. | - -### internal function \_checkCondition - -Relays the question if caller address has permission on target contract via a permission identifier to a condition contract. -Checks a condition contract by doing an external call via try/catch. - -```solidity -function _checkCondition(address _condition, address _where, address _who, bytes32 _permissionId, bytes _data) internal view virtual returns (bool) -``` - -| Input | Type | Description | -| :-------------- | --------- | --------------------------------------------------------------------------------------------------------------------------- | -| `_condition` | `address` | The condition contract that is called. | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) owning the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | -| `_data` | `bytes` | Optional data to be passed to a referenced `PermissionCondition`. | -| **Output** | | -| `0` | `bool` | Returns `true` if a caller (`_who`) has the permissions on the contract (`_where`) via the specified permission identifier. | - -_If the external call fails, we return `false`._ - -### internal function \_initializePermissionManager - -Grants the `ROOT_PERMISSION_ID` permission to the initial owner during initialization of the permission manager. - -```solidity -function _initializePermissionManager(address _initialOwner) internal -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------------------- | -| `_initialOwner` | `address` | The initial owner of the permission manager. | - -### internal function \_grant - -This method is used in the external `grant` method of the permission manager. - -```solidity -function _grant(address _where, address _who, bytes32 _permissionId) internal virtual -``` - -| Input | Type | Description | -| :-------------- | --------- | ------------------------------------------------------------------------ | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) owning the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | - -_Note, that granting permissions with `_who` or `_where` equal to `ANY_ADDR` does not replace other permissions with specific `_who` and `_where` addresses that exist in parallel._ - -### internal function \_grantWithCondition - -This method is used in the external `grantWithCondition` method of the permission manager. - -```solidity -function _grantWithCondition(address _where, address _who, bytes32 _permissionId, contract IPermissionCondition _condition) internal virtual -``` - -| Input | Type | Description | -| :-------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) owning the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | -| `_condition` | `contract IPermissionCondition` | An address either resolving to a `PermissionCondition` contract address or being the `ALLOW_FLAG` address (`address(2)`). | - -_Note, that granting permissions with `_who` or `_where` equal to `ANY_ADDR` does not replace other permissions with specific `_who` and `_where` addresses that exist in parallel._ - -### internal function \_revoke - -This method is used in the public `revoke` method of the permission manager. - -```solidity -function _revoke(address _where, address _who, bytes32 _permissionId) internal virtual -``` - -| Input | Type | Description | -| :-------------- | --------- | ------------------------------------------------------------------------ | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) owning the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | - -_Note, that revoking permissions with `_who` or `_where` equal to `ANY_ADDR` does not revoke other permissions with specific `_who` and `_where` addresses that might have been granted in parallel._ - -### internal function \_auth - -A private function to be used to check permissions on the permission manager contract (`address(this)`) itself. - -```solidity -function _auth(bytes32 _permissionId) internal view virtual -``` - -| Input | Type | Description | -| :-------------- | --------- | ---------------------------------------------------------------------------------- | -| `_permissionId` | `bytes32` | The permission identifier required to call the method this modifier is applied to. | - -### internal function permissionHash - -Generates the hash for the `permissionsHashed` mapping obtained from the word "PERMISSION", the contract address, the address owning the permission, and the permission identifier. - -```solidity -function permissionHash(address _where, address _who, bytes32 _permissionId) internal pure virtual returns (bytes32) -``` - -| Input | Type | Description | -| :-------------- | --------- | ------------------------------------------------------------------------ | -| `_where` | `address` | The address of the target contract for which `_who` receives permission. | -| `_who` | `address` | The address (EOA or contract) owning the permission. | -| `_permissionId` | `bytes32` | The permission identifier. | -| **Output** | | -| `0` | `bytes32` | The permission hash. | - -### internal function isPermissionRestrictedForAnyAddr - -Decides if the granting permissionId is restricted when `_who == ANY_ADDR` or `_where == ANY_ADDR`. - -```solidity -function isPermissionRestrictedForAnyAddr(bytes32 _permissionId) internal view virtual returns (bool) -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------------------- | -| `_permissionId` | `bytes32` | The permission identifier. | -| **Output** | | -| `0` | `bool` | Whether or not the permission is restricted. | - -_By default, every permission is unrestricted and it is the derived contract's responsibility to override it. Note, that the `ROOT_PERMISSION_ID` is included and not required to be set it again._ - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/utils/CallbackHandler.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/core/utils/CallbackHandler.md deleted file mode 100644 index a127ac67..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/core/utils/CallbackHandler.md +++ /dev/null @@ -1,82 +0,0 @@ -## Description - -This contract handles callbacks by registering a magic number together with the callback function's selector. It provides the `_handleCallback` function that inheriting contracts have to call inside their `fallback()` function (`_handleCallback(msg.callbackSelector, msg.data)`). This allows to adaptively register ERC standards (e.g., [ERC-721](https://eips.ethereum.org/EIPS/eip-721), [ERC-1115](https://eips.ethereum.org/EIPS/eip-1155), or future versions of [ERC-165](https://eips.ethereum.org/EIPS/eip-165)) and returning the required magic numbers for the associated callback functions for the inheriting contract so that it doesn't need to be upgraded. - -This callback handling functionality is intented to be used by executor contracts (i.e., `DAO.sol`). - -## Implementation - -### internal variable callbackMagicNumbers - -A mapping between callback function selectors and magic return numbers. - -```solidity -mapping(bytes4 => bytes4) callbackMagicNumbers -``` - -### internal variable UNREGISTERED_CALLBACK - -The magic number refering to unregistered callbacks. - -```solidity -bytes4 UNREGISTERED_CALLBACK -``` - -### error UnkownCallback - -Thrown if the callback function is not registered. - -```solidity -error UnkownCallback(bytes4 callbackSelector, bytes4 magicNumber) -``` - -| Input | Type | Description | -| :----------------- | -------- | --------------------------------------------------------------------- | -| `callbackSelector` | `bytes4` | The selector of the callback function. | -| `magicNumber` | `bytes4` | The magic number to be registered for the callback function selector. | - -### event CallbackReceived - -Emitted when `_handleCallback` is called. - -```solidity -event CallbackReceived(address sender, bytes4 sig, bytes data) -``` - -| Input | Type | Description | -| :------- | --------- | ------------------------ | -| `sender` | `address` | Who called the callback. | -| `sig` | `bytes4` | The function signature. | -| `data` | `bytes` | The calldata. | - -### internal function \_handleCallback - -Handles callbacks to adaptively support ERC standards. - -```solidity -function _handleCallback(bytes4 _callbackSelector, bytes _data) internal virtual returns (bytes4) -``` - -| Input | Type | Description | -| :------------------ | -------- | ------------------------------------------------------------------------------ | -| `_callbackSelector` | `bytes4` | The function selector of the callback function. | -| `_data` | `bytes` | The calldata. | -| **Output** | | -| `0` | `bytes4` | The magic number registered for the function selector triggering the fallback. | - -_This function is supposed to be called via `_handleCallback(msg.sig, msg.data)` in the `fallback()` function of the inheriting contract._ - -### internal function \_registerCallback - -Registers a magic number for a callback function selector. - -```solidity -function _registerCallback(bytes4 _callbackSelector, bytes4 _magicNumber) internal virtual -``` - -| Input | Type | Description | -| :------------------ | -------- | --------------------------------------------------------------------- | -| `_callbackSelector` | `bytes4` | The selector of the callback function. | -| `_magicNumber` | `bytes4` | The magic number to be registered for the callback function selector. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAOFactory.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAOFactory.md deleted file mode 100644 index 00694cb8..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAOFactory.md +++ /dev/null @@ -1,123 +0,0 @@ -## Description - -This contract is used to create a DAO. - -## Implementation - -### public variable daoBase - -The DAO base contract, to be used for creating new `DAO`s via `createERC1967Proxy` function. - -```solidity -address daoBase -``` - -### public variable daoRegistry - -The DAO registry listing the `DAO` contracts created via this contract. - -```solidity -contract DAORegistry daoRegistry -``` - -### public variable pluginSetupProcessor - -The plugin setup processor for installing plugins on the newly created `DAO`s. - -```solidity -contract PluginSetupProcessor pluginSetupProcessor -``` - -### public struct DAOSettings - -```solidity -struct DAOSettings { - address trustedForwarder; - string daoURI; - string subdomain; - bytes metadata; -} -``` - -### public struct PluginSettings - -```solidity -struct PluginSettings { - struct PluginSetupRef pluginSetupRef; - bytes data; -} -``` - -### error NoPluginProvided - -Thrown if `PluginSettings` array is empty, and no plugin is provided. - -```solidity -error NoPluginProvided() -``` - -### public function constructor - -The constructor setting the registry and plugin setup processor and creating the base contracts for the factory. - -```solidity -constructor(contract DAORegistry _registry, contract PluginSetupProcessor _pluginSetupProcessor) public -``` - -| Input | Type | Description | -| :---------------------- | ------------------------------- | ------------------------------------------------- | -| `_registry` | `contract DAORegistry` | The DAO registry to register the DAO by its name. | -| `_pluginSetupProcessor` | `contract PluginSetupProcessor` | The address of PluginSetupProcessor. | - -### public function supportsInterface - -Checks if this or the parent contract supports an interface by its ID. - -```solidity -function supportsInterface(bytes4 _interfaceId) public view virtual returns (bool) -``` - -| Input | Type | Description | -| :------------- | -------- | --------------------------------------------- | -| `_interfaceId` | `bytes4` | The ID of the interface. | -| **Output** | | -| `0` | `bool` | Returns `true` if the interface is supported. | - -### external function createDao - -Creates a new DAO, registers it on the DAO registry, and installs a list of plugins via the plugin setup processor. - -```solidity -function createDao(struct DAOFactory.DAOSettings _daoSettings, struct DAOFactory.PluginSettings[] _pluginSettings) external returns (contract DAO createdDao) -``` - -| Input | Type | Description | -| :---------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -| `_daoSettings` | `struct DAOFactory.DAOSettings` | The DAO settings to be set during the DAO initialization. | -| `_pluginSettings` | `struct DAOFactory.PluginSettings[]` | The array containing references to plugins and their settings to be installed after the DAO has been created. | - -### internal function \_createDAO - -Deploys a new DAO `ERC1967` proxy, and initialize it with this contract as the intial owner. - -```solidity -function _createDAO(struct DAOFactory.DAOSettings _daoSettings) internal returns (contract DAO dao) -``` - -| Input | Type | Description | -| :------------- | ------------------------------- | -------------------------------------------------------------------- | -| `_daoSettings` | `struct DAOFactory.DAOSettings` | The trusted forwarder, name and metadata hash of the DAO it creates. | - -### internal function \_setDAOPermissions - -Sets the required permissions for the new DAO. - -```solidity -function _setDAOPermissions(contract DAO _dao) internal -``` - -| Input | Type | Description | -| :----- | -------------- | ------------------------------ | -| `_dao` | `contract DAO` | The DAO instance just created. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAORegistry.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAORegistry.md deleted file mode 100644 index 501895ac..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/dao/DAORegistry.md +++ /dev/null @@ -1,82 +0,0 @@ -## Description - -This contract provides the possibility to register a DAO. - -## Implementation - -### public variable REGISTER_DAO_PERMISSION_ID - -The ID of the permission required to call the `register` function. - -```solidity -bytes32 REGISTER_DAO_PERMISSION_ID -``` - -### public variable subdomainRegistrar - -The ENS subdomain registrar registering the DAO subdomains. - -```solidity -contract ENSSubdomainRegistrar subdomainRegistrar -``` - -### error InvalidDaoSubdomain - -Thrown if the DAO subdomain doesn't match the regex `[0-9a-z\-]` - -```solidity -error InvalidDaoSubdomain(string subdomain) -``` - -### event DAORegistered - -Emitted when a new DAO is registered. - -```solidity -event DAORegistered(address dao, address creator, string subdomain) -``` - -| Input | Type | Description | -| :---------- | --------- | -------------------------------- | -| `dao` | `address` | The address of the DAO contract. | -| `creator` | `address` | The address of the creator. | -| `subdomain` | `string` | The DAO subdomain. | - -### public function constructor - -```solidity -constructor() public -``` - -_Used to disallow initializing the implementation contract by an attacker for extra safety._ - -### external function initialize - -Initializes the contract. - -```solidity -function initialize(contract IDAO _managingDao, contract ENSSubdomainRegistrar _subdomainRegistrar) external -``` - -| Input | Type | Description | -| :-------------------- | -------------------------------- | --------------------------------------------------------------------- | -| `_managingDao` | `contract IDAO` | the managing DAO address. | -| `_subdomainRegistrar` | `contract ENSSubdomainRegistrar` | The `ENSSubdomainRegistrar` where `ENS` subdomain will be registered. | - -### external function register - -Registers a DAO by its address. If a non-empty subdomain name is provided that is not taken already, the DAO becomes the owner of the ENS name. - -```solidity -function register(contract IDAO dao, address creator, string subdomain) external -``` - -| Input | Type | Description | -| :---------- | --------------- | -------------------------------- | -| `dao` | `contract IDAO` | The address of the DAO contract. | -| `creator` | `address` | The address of the creator. | -| `subdomain` | `string` | The DAO subdomain. | - -_A subdomain is unique within the Aragon DAO framework and can get stored here._ - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md deleted file mode 100644 index 1b1c2ef3..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/IPluginRepo.md +++ /dev/null @@ -1,35 +0,0 @@ -## Description - -The interface required for a plugin repository. - -## Implementation - -### external function updateReleaseMetadata - -Updates the metadata for release with content `@fromHex(_releaseMetadata)`. - -```solidity -function updateReleaseMetadata(uint8 _release, bytes _releaseMetadata) external -``` - -| Input | Type | Description | -| :----------------- | ------- | ------------------------- | -| `_release` | `uint8` | The release number. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | - -### external function createVersion - -Creates a new plugin version as the latest build for an existing release number or the first build for a new release number for the provided `PluginSetup` contract address and metadata. - -```solidity -function createVersion(uint8 _release, address _pluginSetupAddress, bytes _buildMetadata, bytes _releaseMetadata) external -``` - -| Input | Type | Description | -| :-------------------- | --------- | ----------------------------------------- | -| `_release` | `uint8` | The release number. | -| `_pluginSetupAddress` | `address` | The address of the plugin setup contract. | -| `_buildMetadata` | `bytes` | The build metadata URI. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md deleted file mode 100644 index 4eb16575..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepo.md +++ /dev/null @@ -1,332 +0,0 @@ -## Description - -The plugin repository contract required for managing and publishing different plugin versions within the Aragon DAO framework. - -## Implementation - -### public struct Tag - -```solidity -struct Tag { - uint8 release; - uint16 build; -} -``` - -### public struct Version - -```solidity -struct Version { - struct PluginRepo.Tag tag; - address pluginSetup; - bytes buildMetadata; -} -``` - -### public variable MAINTAINER_PERMISSION_ID - -The ID of the permission required to call the `createVersion` function. - -```solidity -bytes32 MAINTAINER_PERMISSION_ID -``` - -### public variable UPGRADE_REPO_PERMISSION_ID - -The ID of the permission required to call the `createVersion` function. - -```solidity -bytes32 UPGRADE_REPO_PERMISSION_ID -``` - -### internal variable buildsPerRelease - -The mapping between release and build numbers. - -```solidity -mapping(uint8 => uint16) buildsPerRelease -``` - -### internal variable versions - -The mapping between the version hash and the corresponding version information. - -```solidity -mapping(bytes32 => struct PluginRepo.Version) versions -``` - -### internal variable latestTagHashForPluginSetup - -The mapping between the plugin setup address and its corresponding version hash. - -```solidity -mapping(address => bytes32) latestTagHashForPluginSetup -``` - -### public variable latestRelease - -The ID of the latest release. - -```solidity -uint8 latestRelease -``` - -_The maximum release number is 255._ - -### error VersionHashDoesNotExist - -Thrown if a version does not exist. - -```solidity -error VersionHashDoesNotExist(bytes32 versionHash) -``` - -| Input | Type | Description | -| :------------ | --------- | ------------- | -| `versionHash` | `bytes32` | The tag hash. | - -### error InvalidPluginSetupInterface - -Thrown if a plugin setup contract does not inherit from `PluginSetup`. - -```solidity -error InvalidPluginSetupInterface() -``` - -### error ReleaseZeroNotAllowed - -Thrown if a release number is zero. - -```solidity -error ReleaseZeroNotAllowed() -``` - -### error InvalidReleaseIncrement - -Thrown if a release number is incremented by more than one. - -```solidity -error InvalidReleaseIncrement(uint8 latestRelease, uint8 newRelease) -``` - -| Input | Type | Description | -| :-------------- | ------- | -------------------------- | -| `latestRelease` | `uint8` | The latest release number. | -| `newRelease` | `uint8` | The new release number. | - -### error PluginSetupAlreadyInPreviousRelease - -Thrown if the same plugin setup contract exists already in a previous releases. - -```solidity -error PluginSetupAlreadyInPreviousRelease(uint8 release, uint16 build, address pluginSetup) -``` - -| Input | Type | Description | -| :------------ | --------- | -------------------------------------------------------- | -| `release` | `uint8` | The release number of the already existing plugin setup. | -| `build` | `uint16` | The build number of the already existing plugin setup. | -| `pluginSetup` | `address` | The plugin setup contract address. | - -### error EmptyReleaseMetadata - -Thrown if the metadata URI is empty. - -```solidity -error EmptyReleaseMetadata() -``` - -### error ReleaseDoesNotExist - -Thrown if release does not exist. - -```solidity -error ReleaseDoesNotExist() -``` - -### event VersionCreated - -Thrown if the same plugin setup exists in previous releases. - -```solidity -event VersionCreated(uint8 release, uint16 build, address pluginSetup, bytes buildMetadata) -``` - -| Input | Type | Description | -| :-------------- | --------- | ----------------------------------------- | -| `release` | `uint8` | The release number. | -| `build` | `uint16` | The build number. | -| `pluginSetup` | `address` | The address of the plugin setup contract. | -| `buildMetadata` | `bytes` | The build metadata URI. | - -### event ReleaseMetadataUpdated - -Thrown when a release's metadata was updated. - -```solidity -event ReleaseMetadataUpdated(uint8 release, bytes releaseMetadata) -``` - -| Input | Type | Description | -| :---------------- | ------- | ------------------------- | -| `release` | `uint8` | The release number. | -| `releaseMetadata` | `bytes` | The release metadata URI. | - -### public function constructor - -```solidity -constructor() public -``` - -_Used to disallow initializing the implementation contract by an attacker for extra safety._ - -### external function initialize - -Initializes the contract by - -- initializing the permission manager -- granting the `MAINTAINER_PERMISSION_ID` permission to the initial owner. - -```solidity -function initialize(address initialOwner) external -``` - -_This method is required to support [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)._ - -### external function createVersion - -Creates a new plugin version as the latest build for an existing release number or the first build for a new release number for the provided `PluginSetup` contract address and metadata. - -```solidity -function createVersion(uint8 _release, address _pluginSetup, bytes _buildMetadata, bytes _releaseMetadata) external -``` - -| Input | Type | Description | -| :----------------- | --------- | ------------------------- | -| `_release` | `uint8` | The release number. | -| `_pluginSetup` | `address` | | -| `_buildMetadata` | `bytes` | The build metadata URI. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | - -### external function updateReleaseMetadata - -Updates the metadata for release with content `@fromHex(_releaseMetadata)`. - -```solidity -function updateReleaseMetadata(uint8 _release, bytes _releaseMetadata) external -``` - -| Input | Type | Description | -| :----------------- | ------- | ------------------------- | -| `_release` | `uint8` | The release number. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | - -### public function getLatestVersion - -Returns the latest version for a given release number. - -```solidity -function getLatestVersion(uint8 _release) public view returns (struct PluginRepo.Version) -``` - -| Input | Type | Description | -| :--------- | --------------------------- | ----------------------------------- | -| `_release` | `uint8` | The release number. | -| **Output** | | -| `0` | `struct PluginRepo.Version` | The latest version of this release. | - -### public function getLatestVersion - -Returns the latest version for a given plugin setup. - -```solidity -function getLatestVersion(address _pluginSetup) public view returns (struct PluginRepo.Version) -``` - -| Input | Type | Description | -| :------------- | --------------------------- | ---------------------------------------------------- | -| `_pluginSetup` | `address` | The plugin setup address | -| **Output** | | -| `0` | `struct PluginRepo.Version` | The latest version associated with the plugin Setup. | - -### public function getVersion - -Returns the version associated with a tag. - -```solidity -function getVersion(struct PluginRepo.Tag _tag) public view returns (struct PluginRepo.Version) -``` - -| Input | Type | Description | -| :--------- | --------------------------- | ------------------------------------ | -| `_tag` | `struct PluginRepo.Tag` | The version tag. | -| **Output** | | -| `0` | `struct PluginRepo.Version` | The version associated with the tag. | - -### public function getVersion - -Returns the version for a tag hash. - -```solidity -function getVersion(bytes32 _tagHash) public view returns (struct PluginRepo.Version) -``` - -| Input | Type | Description | -| :--------- | --------------------------- | --------------------------------------- | -| `_tagHash` | `bytes32` | The tag hash. | -| **Output** | | -| `0` | `struct PluginRepo.Version` | The version associated with a tag hash. | - -### public function buildCount - -Gets the total number of builds for a given release number. - -```solidity -function buildCount(uint8 _release) public view returns (uint256) -``` - -| Input | Type | Description | -| :--------- | --------- | ------------------------------------- | -| `_release` | `uint8` | The release number. | -| **Output** | | -| `0` | `uint256` | The number of builds of this release. | - -### internal function tagHash - -The hash of the version tag obtained from the packed, bytes-encoded release and build number. - -```solidity -function tagHash(struct PluginRepo.Tag _tag) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :--------- | ----------------------- | --------------------- | -| `_tag` | `struct PluginRepo.Tag` | The version tag. | -| **Output** | | -| `0` | `bytes32` | The version tag hash. | - -### internal function \_authorizeUpgrade - -Internal method authorizing the upgrade of the contract via the [upgradeability mechanism for UUPS proxies](https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable) (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)). - -```solidity -function _authorizeUpgrade(address) internal virtual -``` - -_The caller must have the `UPGRADE_REPO_PERMISSION_ID` permission._ - -### public function supportsInterface - -Checks if this or the parent contract supports an interface by its ID. - -```solidity -function supportsInterface(bytes4 _interfaceId) public view virtual returns (bool) -``` - -| Input | Type | Description | -| :------------- | -------- | --------------------------------------------- | -| `_interfaceId` | `bytes4` | The ID of the interface. | -| **Output** | | -| `0` | `bool` | Returns `true` if the interface is supported. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md deleted file mode 100644 index 684cca2b..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoFactory.md +++ /dev/null @@ -1,110 +0,0 @@ -## Description - -This contract creates `PluginRepo` proxies and registers them on a `PluginRepoRegistry` contract. - -## Implementation - -### public variable pluginRepoRegistry - -The Aragon plugin registry contract. - -```solidity -contract PluginRepoRegistry pluginRepoRegistry -``` - -### public variable pluginRepoBase - -The address of the `PluginRepo` base contract to proxy to.. - -```solidity -address pluginRepoBase -``` - -### public function constructor - -Initializes the addresses of the Aragon plugin registry and `PluginRepo` base contract to proxy to. - -```solidity -constructor(contract PluginRepoRegistry _pluginRepoRegistry) public -``` - -| Input | Type | Description | -| :-------------------- | ----------------------------- | ----------------------------------- | -| `_pluginRepoRegistry` | `contract PluginRepoRegistry` | The aragon plugin registry address. | - -### public function supportsInterface - -Checks if this or the parent contract supports an interface by its ID. - -```solidity -function supportsInterface(bytes4 _interfaceId) public view virtual returns (bool) -``` - -| Input | Type | Description | -| :------------- | -------- | --------------------------------------------- | -| `_interfaceId` | `bytes4` | The ID of the interface. | -| **Output** | | -| `0` | `bool` | Returns `true` if the interface is supported. | - -### external function createPluginRepo - -Creates a plugin repository proxy pointing to the `pluginRepoBase` implementation and registers it in the Aragon plugin registry. - -```solidity -function createPluginRepo(string _subdomain, address _initialOwner) external returns (contract PluginRepo) -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------- | -| `_subdomain` | `string` | The plugin repository subdomain. | -| `_initialOwner` | `address` | The plugin maintainer address. | - -### external function createPluginRepoWithFirstVersion - -Creates and registers a `PluginRepo` with an ENS subdomain and publishes an initial version `1.1`. - -```solidity -function createPluginRepoWithFirstVersion(string _subdomain, address _pluginSetup, address _maintainer, bytes _releaseMetadata, bytes _buildMetadata) external returns (contract PluginRepo pluginRepo) -``` - -| Input | Type | Description | -| :----------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `_subdomain` | `string` | The plugin repository subdomain. | -| `_pluginSetup` | `address` | The plugin factory contract associated with the plugin version. | -| `_maintainer` | `address` | The maintainer of the plugin repo. This address has permission to update metadata, upgrade the repo logic, and manage the repo permissions. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | -| `_buildMetadata` | `bytes` | The build metadata URI. | - -_After the creation of the `PluginRepo` and release of the first version by the factory, ownership is transferred to the `_maintainer` address._ - -### internal function \_setPluginRepoPermissions - -Set the final permissions for the published plugin repository maintainer. All permissions are revoked from the plugin factory and granted to the specified plugin maintainer. - -```solidity -function _setPluginRepoPermissions(contract PluginRepo pluginRepo, address maintainer) internal -``` - -| Input | Type | Description | -| :----------- | --------------------- | -------------------------------------------- | -| `pluginRepo` | `contract PluginRepo` | The plugin repository instance just created. | -| `maintainer` | `address` | The plugin maintainer address. | - -_The plugin maintainer is granted the `MAINTAINER_PERMISSION_ID`, `UPGRADE_REPO_PERMISSION_ID`, and `ROOT_PERMISSION_ID`._ - -### internal function \_createPluginRepo - -Internal method creating a `PluginRepo` via the [ERC-1967](https://eips.ethereum.org/EIPS/eip-1967) proxy pattern from the provided base contract and registering it in the Aragon plugin registry. - -```solidity -function _createPluginRepo(string _subdomain, address _initialOwner) internal returns (contract PluginRepo pluginRepo) -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------------- | -| `_subdomain` | `string` | The plugin repository subdomain. | -| `_initialOwner` | `address` | The initial owner address. | - -_Passing an empty `_subdomain` will cause the transaction to revert._ - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md deleted file mode 100644 index 92031841..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/PluginRepoRegistry.md +++ /dev/null @@ -1,86 +0,0 @@ -## Description - -This contract maintains an address-based registry of plugin repositories in the Aragon App DAO framework. - -## Implementation - -### public variable REGISTER_PLUGIN_REPO_PERMISSION_ID - -The ID of the permission required to call the `register` function. - -```solidity -bytes32 REGISTER_PLUGIN_REPO_PERMISSION_ID -``` - -### public variable subdomainRegistrar - -The ENS subdomain registrar registering the PluginRepo subdomains. - -```solidity -contract ENSSubdomainRegistrar subdomainRegistrar -``` - -### event PluginRepoRegistered - -Emitted if a new plugin repository is registered. - -```solidity -event PluginRepoRegistered(string subdomain, address pluginRepo) -``` - -| Input | Type | Description | -| :----------- | --------- | --------------------------------------- | -| `subdomain` | `string` | The subdomain of the plugin repository. | -| `pluginRepo` | `address` | The address of the plugin repository. | - -### error InvalidPluginSubdomain - -Thrown if the plugin subdomain doesn't match the regex `[0-9a-z\-]` - -```solidity -error InvalidPluginSubdomain(string subdomain) -``` - -### error EmptyPluginRepoSubdomain - -Thrown if the plugin repository subdomain is empty. - -```solidity -error EmptyPluginRepoSubdomain() -``` - -### public function constructor - -```solidity -constructor() public -``` - -_Used to disallow initializing the implementation contract by an attacker for extra safety._ - -### external function initialize - -Initializes the contract by setting calling the `InterfaceBasedRegistry` base class initialize method. - -```solidity -function initialize(contract IDAO _dao, contract ENSSubdomainRegistrar _subdomainRegistrar) external -``` - -| Input | Type | Description | -| :-------------------- | -------------------------------- | --------------------------------------------------------------------- | -| `_dao` | `contract IDAO` | The address of the managing DAO. | -| `_subdomainRegistrar` | `contract ENSSubdomainRegistrar` | The `ENSSubdomainRegistrar` where `ENS` subdomain will be registered. | - -### external function registerPluginRepo - -Registers a plugin repository with a subdomain and address. - -```solidity -function registerPluginRepo(string subdomain, address pluginRepo) external -``` - -| Input | Type | Description | -| :----------- | --------- | --------------------------------------- | -| `subdomain` | `string` | The subdomain of the PluginRepo. | -| `pluginRepo` | `address` | The address of the PluginRepo contract. | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md deleted file mode 100644 index 212ca6cb..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/repo/placeholder/PlaceholderSetup.md +++ /dev/null @@ -1,52 +0,0 @@ -## Description - -A placeholder setup contract for outdated plugin builds. When moving plugin repos to new chains or layers, where only the latest release and build should be available, this placeholder can be used to populate previous builds. - -## Implementation - -### error PlaceholderSetupCannotBeUsed - -Thrown if the dummy is used. - -```solidity -error PlaceholderSetupCannotBeUsed() -``` - -### public function constructor - -```solidity -constructor() public -``` - -### external function prepareInstallation - -Prepares the installation of a plugin. - -```solidity -function prepareInstallation(address, bytes) external pure returns (address, struct IPluginSetup.PreparedSetupData) -``` - -| Input | Type | Description | -| :--------- | --------------------------------------- | ----------- | -| `` | `address` | | -| `` | `bytes` | | -| **Output** | | -| `0` | `address` | | -| `1` | `struct IPluginSetup.PreparedSetupData` | | - -### external function prepareUninstallation - -Prepares the uninstallation of a plugin. - -```solidity -function prepareUninstallation(address, struct IPluginSetup.SetupPayload) external pure returns (struct PermissionLib.MultiTargetPermission[]) -``` - -| Input | Type | Description | -| :--------- | ---------------------------------------------- | ----------- | -| `` | `address` | | -| `` | `struct IPluginSetup.SetupPayload` | | -| **Output** | | -| `0` | `struct PermissionLib.MultiTargetPermission[]` | | - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md deleted file mode 100644 index 0ceda55b..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessor.md +++ /dev/null @@ -1,475 +0,0 @@ -## Description - -This contract processes the preparation and application of plugin setups (installation, update, uninstallation) on behalf of a requesting DAO. - -This contract is temporarily granted the `ROOT_PERMISSION_ID` permission on the applying DAO and therefore is highly security critical. - -## Implementation - -### public variable APPLY_INSTALLATION_PERMISSION_ID - -The ID of the permission required to call the `applyInstallation` function. - -```solidity -bytes32 APPLY_INSTALLATION_PERMISSION_ID -``` - -### public variable APPLY_UPDATE_PERMISSION_ID - -The ID of the permission required to call the `applyUpdate` function. - -```solidity -bytes32 APPLY_UPDATE_PERMISSION_ID -``` - -### public variable APPLY_UNINSTALLATION_PERMISSION_ID - -The ID of the permission required to call the `applyUninstallation` function. - -```solidity -bytes32 APPLY_UNINSTALLATION_PERMISSION_ID -``` - -### public struct PluginState - -```solidity -struct PluginState { - uint256 blockNumber; - bytes32 currentAppliedSetupId; - mapping(bytes32 => uint256) preparedSetupIdToBlockNumber; -} -``` - -### public variable states - -A mapping between the plugin installation ID (obtained from the DAO and plugin address) and the plugin state information. - -```solidity -mapping(bytes32 => struct PluginSetupProcessor.PluginState) states -``` - -_This variable is public on purpose to allow future versions to access and migrate the storage._ - -### public struct PrepareInstallationParams - -```solidity -struct PrepareInstallationParams { - struct PluginSetupRef pluginSetupRef; - bytes data; -} -``` - -### public struct ApplyInstallationParams - -```solidity -struct ApplyInstallationParams { - struct PluginSetupRef pluginSetupRef; - address plugin; - struct PermissionLib.MultiTargetPermission[] permissions; - bytes32 helpersHash; -} -``` - -### public struct PrepareUpdateParams - -```solidity -struct PrepareUpdateParams { - struct PluginRepo.Tag currentVersionTag; - struct PluginRepo.Tag newVersionTag; - contract PluginRepo pluginSetupRepo; - struct IPluginSetup.SetupPayload setupPayload; -} -``` - -### public struct ApplyUpdateParams - -```solidity -struct ApplyUpdateParams { - address plugin; - struct PluginSetupRef pluginSetupRef; - bytes initData; - struct PermissionLib.MultiTargetPermission[] permissions; - bytes32 helpersHash; -} -``` - -### public struct PrepareUninstallationParams - -```solidity -struct PrepareUninstallationParams { - struct PluginSetupRef pluginSetupRef; - struct IPluginSetup.SetupPayload setupPayload; -} -``` - -### public struct ApplyUninstallationParams - -```solidity -struct ApplyUninstallationParams { - address plugin; - struct PluginSetupRef pluginSetupRef; - struct PermissionLib.MultiTargetPermission[] permissions; -} -``` - -### public variable repoRegistry - -The plugin repo registry listing the `PluginRepo` contracts versioning the `PluginSetup` contracts. - -```solidity -contract PluginRepoRegistry repoRegistry -``` - -### error SetupApplicationUnauthorized - -Thrown if a setup is unauthorized and cannot be applied because of a missing permission of the associated DAO. - -```solidity -error SetupApplicationUnauthorized(address dao, address caller, bytes32 permissionId) -``` - -| Input | Type | Description | -| :------------- | --------- | ---------------------------------------------------------------------------------------------- | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `caller` | `address` | The address (EOA or contract) that requested the application of a setup on the associated DAO. | -| `permissionId` | `bytes32` | The permission identifier. | - -_This is thrown if the `APPLY_INSTALLATION_PERMISSION_ID`, `APPLY_UPDATE_PERMISSION_ID`, or APPLY_UNINSTALLATION_PERMISSION_ID is missing._ - -### error PluginNonupgradeable - -Thrown if a plugin is not upgradeable. - -```solidity -error PluginNonupgradeable(address plugin) -``` - -| Input | Type | Description | -| :------- | --------- | ----------------------------------- | -| `plugin` | `address` | The address of the plugin contract. | - -### error PluginProxyUpgradeFailed - -Thrown if the upgrade of an `UUPSUpgradeable` proxy contract (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)) failed. - -```solidity -error PluginProxyUpgradeFailed(address proxy, address implementation, bytes initData) -``` - -| Input | Type | Description | -| :--------------- | --------- | ----------------------------------------------------------------------------------------------- | -| `proxy` | `address` | The address of the proxy. | -| `implementation` | `address` | The address of the implementation contract. | -| `initData` | `bytes` | The initialization data to be passed to the upgradeable plugin contract via `upgradeToAndCall`. | - -### error IPluginNotSupported - -Thrown if a contract does not support the `IPlugin` interface. - -```solidity -error IPluginNotSupported(address plugin) -``` - -| Input | Type | Description | -| :------- | --------- | ---------------------------- | -| `plugin` | `address` | The address of the contract. | - -### error PluginRepoNonexistent - -Thrown if a plugin repository does not exist on the plugin repo registry. - -```solidity -error PluginRepoNonexistent() -``` - -### error SetupAlreadyPrepared - -Thrown if a plugin setup was already prepared indicated by the prepared setup ID. - -```solidity -error SetupAlreadyPrepared(bytes32 preparedSetupId) -``` - -| Input | Type | Description | -| :---------------- | --------- | ---------------------- | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | - -### error SetupNotApplicable - -Thrown if a prepared setup ID is not eligible to be applied. This can happen if another setup has been already applied or if the setup wasn't prepared in the first place. - -```solidity -error SetupNotApplicable(bytes32 preparedSetupId) -``` - -| Input | Type | Description | -| :---------------- | --------- | ---------------------- | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | - -### error InvalidUpdateVersion - -Thrown if the update version is invalid. - -```solidity -error InvalidUpdateVersion(struct PluginRepo.Tag currentVersionTag, struct PluginRepo.Tag newVersionTag) -``` - -| Input | Type | Description | -| :------------------ | ----------------------- | ---------------------------------------------- | -| `currentVersionTag` | `struct PluginRepo.Tag` | The tag of the current version to update from. | -| `newVersionTag` | `struct PluginRepo.Tag` | The tag of the new version to update to. | - -### error PluginAlreadyInstalled - -Thrown if plugin is already installed and one tries to prepare or apply install on it. - -```solidity -error PluginAlreadyInstalled() -``` - -### error InvalidAppliedSetupId - -Thrown if the applied setup ID resulting from the supplied setup payload does not match with the current applied setup ID. - -```solidity -error InvalidAppliedSetupId(bytes32 currentAppliedSetupId, bytes32 appliedSetupId) -``` - -| Input | Type | Description | -| :---------------------- | --------- | ------------------------------------------------------------------------------------ | -| `currentAppliedSetupId` | `bytes32` | The current applied setup ID with which the data in the supplied payload must match. | -| `appliedSetupId` | `bytes32` | The applied setup ID obtained from the data in the supplied setup payload. | - -### event InstallationPrepared - -Emitted with a prepared plugin installation to store data relevant for the application step. - -```solidity -event InstallationPrepared(address sender, address dao, bytes32 preparedSetupId, contract PluginRepo pluginSetupRepo, struct PluginRepo.Tag versionTag, bytes data, address plugin, struct IPluginSetup.PreparedSetupData preparedSetupData) -``` - -| Input | Type | Description | -| :------------------ | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `sender` | `address` | The sender that prepared the plugin installation. | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `preparedSetupId` | `bytes32` | The prepared setup ID obtained from the supplied data. | -| `pluginSetupRepo` | `contract PluginRepo` | The repository storing the `PluginSetup` contracts of all versions of a plugin. | -| `versionTag` | `struct PluginRepo.Tag` | The version tag of the plugin setup of the prepared installation. | -| `data` | `bytes` | The bytes-encoded data containing the input parameters for the preparation as specified in the corresponding ABI on the version's metadata. | -| `plugin` | `address` | The address of the plugin contract. | -| `preparedSetupData` | `struct IPluginSetup.PreparedSetupData` | The deployed plugin's relevant data which consists of helpers and permissions. | - -### event InstallationApplied - -Emitted after a plugin installation was applied. - -```solidity -event InstallationApplied(address dao, address plugin, bytes32 preparedSetupId, bytes32 appliedSetupId) -``` - -| Input | Type | Description | -| :---------------- | --------- | --------------------------------------------------- | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `plugin` | `address` | The address of the plugin contract. | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | -| `appliedSetupId` | `bytes32` | The applied setup ID. | - -### event UpdatePrepared - -Emitted with a prepared plugin update to store data relevant for the application step. - -```solidity -event UpdatePrepared(address sender, address dao, bytes32 preparedSetupId, contract PluginRepo pluginSetupRepo, struct PluginRepo.Tag versionTag, struct IPluginSetup.SetupPayload setupPayload, struct IPluginSetup.PreparedSetupData preparedSetupData, bytes initData) -``` - -| Input | Type | Description | -| :------------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sender` | `address` | The sender that prepared the plugin update. | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | -| `pluginSetupRepo` | `contract PluginRepo` | The repository storing the `PluginSetup` contracts of all versions of a plugin. | -| `versionTag` | `struct PluginRepo.Tag` | The version tag of the plugin setup of the prepared update. | -| `setupPayload` | `struct IPluginSetup.SetupPayload` | The payload containing the plugin and helper contract addresses deployed in a preparation step as well as optional data to be consumed by the plugin setup. | -| `preparedSetupData` | `struct IPluginSetup.PreparedSetupData` | The deployed plugin's relevant data which consists of helpers and permissions. | -| `initData` | `bytes` | The initialization data to be passed to the upgradeable plugin contract. | - -### event UpdateApplied - -Emitted after a plugin update was applied. - -```solidity -event UpdateApplied(address dao, address plugin, bytes32 preparedSetupId, bytes32 appliedSetupId) -``` - -| Input | Type | Description | -| :---------------- | --------- | --------------------------------------------------- | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `plugin` | `address` | The address of the plugin contract. | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | -| `appliedSetupId` | `bytes32` | The applied setup ID. | - -### event UninstallationPrepared - -Emitted with a prepared plugin uninstallation to store data relevant for the application step. - -```solidity -event UninstallationPrepared(address sender, address dao, bytes32 preparedSetupId, contract PluginRepo pluginSetupRepo, struct PluginRepo.Tag versionTag, struct IPluginSetup.SetupPayload setupPayload, struct PermissionLib.MultiTargetPermission[] permissions) -``` - -| Input | Type | Description | -| :---------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sender` | `address` | The sender that prepared the plugin uninstallation. | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | -| `pluginSetupRepo` | `contract PluginRepo` | The repository storing the `PluginSetup` contracts of all versions of a plugin. | -| `versionTag` | `struct PluginRepo.Tag` | The version tag of the plugin to used for install preparation. | -| `setupPayload` | `struct IPluginSetup.SetupPayload` | The payload containing the plugin and helper contract addresses deployed in a preparation step as well as optional data to be consumed by the plugin setup. | -| `permissions` | `struct PermissionLib.MultiTargetPermission[]` | The list of multi-targeted permission operations to be applied to the installing DAO. | - -### event UninstallationApplied - -Emitted after a plugin installation was applied. - -```solidity -event UninstallationApplied(address dao, address plugin, bytes32 preparedSetupId) -``` - -| Input | Type | Description | -| :---------------- | --------- | --------------------------------------------------- | -| `dao` | `address` | The address of the DAO to which the plugin belongs. | -| `plugin` | `address` | The address of the plugin contract. | -| `preparedSetupId` | `bytes32` | The prepared setup ID. | - -### internal modifier canApply - -A modifier to check if a caller has the permission to apply a prepared setup. - -```solidity -modifier canApply(address _dao, bytes32 _permissionId) -``` - -| Input | Type | Description | -| :-------------- | --------- | -------------------------- | -| `_dao` | `address` | The address of the DAO. | -| `_permissionId` | `bytes32` | The permission identifier. | - -### public function constructor - -Constructs the plugin setup processor by setting the associated plugin repo registry. - -```solidity -constructor(contract PluginRepoRegistry _repoRegistry) public -``` - -| Input | Type | Description | -| :-------------- | ----------------------------- | ---------------------------------- | -| `_repoRegistry` | `contract PluginRepoRegistry` | The plugin repo registry contract. | - -### external function prepareInstallation - -Prepares the installation of a plugin. - -```solidity -function prepareInstallation(address _dao, struct PluginSetupProcessor.PrepareInstallationParams _params) external returns (address plugin, struct IPluginSetup.PreparedSetupData preparedSetupData) -``` - -| Input | Type | Description | -| :------------------ | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `_dao` | `address` | The address of the installing DAO. | -| `_params` | `struct PluginSetupProcessor.PrepareInstallationParams` | The struct containing the parameters for the `prepareInstallation` function. | -| **Output** | | -| `plugin` | `address` | The prepared plugin contract address. | -| `preparedSetupData` | `struct IPluginSetup.PreparedSetupData` | The data struct containing the array of helper contracts and permissions that the setup has prepared. | - -### external function applyInstallation - -Applies the permissions of a prepared installation to a DAO. - -```solidity -function applyInstallation(address _dao, struct PluginSetupProcessor.ApplyInstallationParams _params) external -``` - -| Input | Type | Description | -| :-------- | ----------------------------------------------------- | -------------------------------------------------------------------------- | -| `_dao` | `address` | The address of the installing DAO. | -| `_params` | `struct PluginSetupProcessor.ApplyInstallationParams` | The struct containing the parameters for the `applyInstallation` function. | - -### external function prepareUpdate - -Prepares the update of an UUPS upgradeable plugin. - -```solidity -function prepareUpdate(address _dao, struct PluginSetupProcessor.PrepareUpdateParams _params) external returns (bytes initData, struct IPluginSetup.PreparedSetupData preparedSetupData) -``` - -| Input | Type | Description | -| :------------------ | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -| `_dao` | `address` | The address of the DAO For which preparation of update happens. | -| `_params` | `struct PluginSetupProcessor.PrepareUpdateParams` | The struct containing the parameters for the `prepareUpdate` function. | -| **Output** | | -| `initData` | `bytes` | The initialization data to be passed to upgradeable contracts when the update is applied | -| `preparedSetupData` | `struct IPluginSetup.PreparedSetupData` | The data struct containing the array of helper contracts and permissions that the setup has prepared. | - -_The list of `_params.setupPayload.currentHelpers` has to be specified in the same order as they were returned from previous setups preparation steps (the latest `prepareInstallation` or `prepareUpdate` step that has happend) on which the update is prepared for._ - -### external function applyUpdate - -Applies the permissions of a prepared update of an UUPS upgradeable proxy contract to a DAO. - -```solidity -function applyUpdate(address _dao, struct PluginSetupProcessor.ApplyUpdateParams _params) external -``` - -| Input | Type | Description | -| :-------- | ----------------------------------------------- | -------------------------------------------------------------------- | -| `_dao` | `address` | The address of the updating DAO. | -| `_params` | `struct PluginSetupProcessor.ApplyUpdateParams` | The struct containing the parameters for the `applyUpdate` function. | - -### external function prepareUninstallation - -Prepares the uninstallation of a plugin. - -```solidity -function prepareUninstallation(address _dao, struct PluginSetupProcessor.PrepareUninstallationParams _params) external returns (struct PermissionLib.MultiTargetPermission[] permissions) -``` - -| Input | Type | Description | -| :------------ | --------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| `_dao` | `address` | The address of the uninstalling DAO. | -| `_params` | `struct PluginSetupProcessor.PrepareUninstallationParams` | The struct containing the parameters for the `prepareUninstallation` function. | -| **Output** | | -| `permissions` | `struct PermissionLib.MultiTargetPermission[]` | The list of multi-targeted permission operations to be applied to the uninstalling DAO. | - -_The list of `_params.setupPayload.currentHelpers` has to be specified in the same order as they were returned from previous setups preparation steps (the latest `prepareInstallation` or `prepareUpdate` step that has happend) on which the uninstallation was prepared for._ - -### external function applyUninstallation - -Applies the permissions of a prepared uninstallation to a DAO. - -```solidity -function applyUninstallation(address _dao, struct PluginSetupProcessor.ApplyUninstallationParams _params) external -``` - -| Input | Type | Description | -| :-------- | ------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `_dao` | `address` | The address of the DAO. | -| `_params` | `struct PluginSetupProcessor.ApplyUninstallationParams` | The struct containing the parameters for the `applyUninstallation` function. | - -_The list of `_params.setupPayload.currentHelpers` has to be specified in the same order as they were returned from previous setups preparation steps (the latest `prepareInstallation` or `prepareUpdate` step that has happend) on which the uninstallation was prepared for._ - -### public function validatePreparedSetupId - -Validates that a setup ID can be applied for `applyInstallation`, `applyUpdate`, or `applyUninstallation`. - -```solidity -function validatePreparedSetupId(bytes32 pluginInstallationId, bytes32 preparedSetupId) public view -``` - -| Input | Type | Description | -| :--------------------- | --------- | --------------------------------------------------------------------------------------------- | -| `pluginInstallationId` | `bytes32` | The plugin installation ID obtained from the hash of `abi.encode(daoAddress, pluginAddress)`. | -| `preparedSetupId` | `bytes32` | The prepared setup ID to be validated. | - -_If the block number stored in `states[pluginInstallationId].blockNumber` exceeds the one stored in `pluginState.preparedSetupIdToBlockNumber[preparedSetupId]`, the prepared setup with `preparedSetupId` is outdated and not applicable anymore._ - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md deleted file mode 100644 index b656e13e..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/plugin/setup/PluginSetupProcessorHelpers.md +++ /dev/null @@ -1,91 +0,0 @@ -### public struct PluginSetupRef - -```solidity -struct PluginSetupRef { - struct PluginRepo.Tag versionTag; - contract PluginRepo pluginSetupRepo; -} -``` - -### enum PreparationType - -```solidity -enum PreparationType { - None, - Installation, - Update, - Uninstallation -} -``` - -### internal function \_getPluginInstallationId - -Returns an ID for plugin installation by hashing the DAO and plugin address. - -```solidity -function _getPluginInstallationId(address _dao, address _plugin) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :-------- | --------- | -------------------------------------------- | -| `_dao` | `address` | The address of the DAO conducting the setup. | -| `_plugin` | `address` | The plugin address. | - -### internal function \_getPreparedSetupId - -Returns an ID for prepared setup obtained from hashing characterizing elements. - -```solidity -function _getPreparedSetupId(struct PluginSetupRef _pluginSetupRef, bytes32 _permissionsHash, bytes32 _helpersHash, bytes _data, enum PreparationType _preparationType) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :----------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `_pluginSetupRef` | `struct PluginSetupRef` | The reference of the plugin setup containing plugin setup repo and version tag. | -| `_permissionsHash` | `bytes32` | The hash of the permission operations requested by the setup. | -| `_helpersHash` | `bytes32` | The hash of the helper contract addresses. | -| `_data` | `bytes` | The bytes-encoded initialize data for the upgrade that is returned by `prepareUpdate`. | -| `_preparationType` | `enum PreparationType` | The type of preparation the plugin is currently undergoing. Without this, it is possible to call `applyUpdate` even after `applyInstallation` is called. | -| **Output** | | -| `0` | `bytes32` | The prepared setup id. | - -### internal function \_getAppliedSetupId - -Returns an identifier for applied installations. - -```solidity -function _getAppliedSetupId(struct PluginSetupRef _pluginSetupRef, bytes32 _helpersHash) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :---------------- | ----------------------- | ------------------------------------------------------------------------------- | -| `_pluginSetupRef` | `struct PluginSetupRef` | The reference of the plugin setup containing plugin setup repo and version tag. | -| `_helpersHash` | `bytes32` | The hash of the helper contract addresses. | -| **Output** | | -| `0` | `bytes32` | The applied setup id. | - -### internal function hashHelpers - -Returns a hash of an array of helper addresses (contracts or EOAs). - -```solidity -function hashHelpers(address[] _helpers) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :--------- | ----------- | --------------------------------------------------------------- | -| `_helpers` | `address[]` | The array of helper addresses (contracts or EOAs) to be hashed. | - -### internal function hashPermissions - -Returns a hash of an array of multi-targeted permission operations. - -```solidity -function hashPermissions(struct PermissionLib.MultiTargetPermission[] _permissions) internal pure returns (bytes32) -``` - -| Input | Type | Description | -| :------------- | ---------------------------------------------- | ----------------------------------------------------- | -| `_permissions` | `struct PermissionLib.MultiTargetPermission[]` | The array of of multi-targeted permission operations. | -| **Output** | | -| `0` | `bytes32` | The hash of the array of permission operations. | diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md deleted file mode 100644 index 8ba4333a..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/InterfaceBasedRegistry.md +++ /dev/null @@ -1,106 +0,0 @@ -## Description - -An [ERC-165](https://eips.ethereum.org/EIPS/eip-165)-based registry for contracts. - -## Implementation - -### public variable UPGRADE_REGISTRY_PERMISSION_ID - -The ID of the permission required to call the `_authorizeUpgrade` function. - -```solidity -bytes32 UPGRADE_REGISTRY_PERMISSION_ID -``` - -### public variable targetInterfaceId - -The [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID that the target contracts being registered must support. - -```solidity -bytes4 targetInterfaceId -``` - -### public variable entries - -The mapping containing the registry entries returning true for registered contract addresses. - -```solidity -mapping(address => bool) entries -``` - -### error ContractAlreadyRegistered - -Thrown if the contract is already registered. - -```solidity -error ContractAlreadyRegistered(address registrant) -``` - -| Input | Type | Description | -| :----------- | --------- | --------------------------------------------- | -| `registrant` | `address` | The address of the contract to be registered. | - -### error ContractInterfaceInvalid - -Thrown if the contract does not support the required interface. - -```solidity -error ContractInterfaceInvalid(address registrant) -``` - -| Input | Type | Description | -| :----------- | --------- | --------------------------------------------- | -| `registrant` | `address` | The address of the contract to be registered. | - -### error ContractERC165SupportInvalid - -Thrown if the contract does not support ERC165. - -```solidity -error ContractERC165SupportInvalid(address registrant) -``` - -| Input | Type | Description | -| :----------- | --------- | ---------------------------- | -| `registrant` | `address` | The address of the contract. | - -### internal function \_\_InterfaceBasedRegistry_init - -Initializes the component. - -```solidity -function __InterfaceBasedRegistry_init(contract IDAO _managingDao, bytes4 _targetInterfaceId) internal virtual -``` - -| Input | Type | Description | -| :------------------- | --------------- | ----------------------------------------------------------------------------------------------------- | -| `_managingDao` | `contract IDAO` | The interface of the DAO managing the components permissions. | -| `_targetInterfaceId` | `bytes4` | The [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface id of the contracts to be registered. | - -_This is required for the UUPS upgradeability pattern._ - -### internal function \_authorizeUpgrade - -Internal method authorizing the upgrade of the contract via the [upgradeability mechanism for UUPS proxies](https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable) (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)). - -```solidity -function _authorizeUpgrade(address) internal virtual -``` - -_The caller must have the `UPGRADE_REGISTRY_PERMISSION_ID` permission._ - -### internal function \_register - -Register an [ERC-165](https://eips.ethereum.org/EIPS/eip-165) contract address. - -```solidity -function _register(address _registrant) internal -``` - -| Input | Type | Description | -| :------------ | --------- | ----------------------------------------------------------------------------- | -| `_registrant` | `address` | The address of an [ERC-165](https://eips.ethereum.org/EIPS/eip-165) contract. | - -_The managing DAO needs to grant REGISTER_PERMISSION_ID to registrar._ - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/RegistryUtils.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/RegistryUtils.md deleted file mode 100644 index d0461434..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/RegistryUtils.md +++ /dev/null @@ -1,20 +0,0 @@ -### internal function isSubdomainValid - -Validates that a subdomain name is composed only from characters in the allowed character set: - -- the lowercase letters `a-z` -- the digits `0-9` -- the hyphen `-` - -```solidity -function isSubdomainValid(string subDomain) internal pure returns (bool) -``` - -| Input | Type | Description | -| :---------- | -------- | ----------------------------------------------------------------------- | -| `subDomain` | `string` | The name of the DAO. | -| **Output** | | -| `0` | `bool` | `true` if the name is valid or `false` if at least one char is invalid. | - -_This function allows empty (zero-length) subdomains. If this should not be allowed, make sure to add a respective check when using this function in your code. -Aborts on the first invalid char found._ diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSMigration.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSMigration.md deleted file mode 100644 index d862e4b0..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSMigration.md +++ /dev/null @@ -1,5 +0,0 @@ -## Description - -## Implementation - - diff --git a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md b/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md deleted file mode 100644 index 302e4f89..00000000 --- a/versioned_docs/version-1.3.0/osx/03-reference-guide/framework/utils/ens/ENSSubdomainRegistrar.md +++ /dev/null @@ -1,137 +0,0 @@ -## Description - -This contract registers ENS subdomains under a parent domain specified in the initialization process and maintains ownership of the subdomain since only the resolver address is set. This contract must either be the domain node owner or an approved operator of the node owner. The default resolver being used is the one specified in the parent domain. - -## Implementation - -### public variable UPGRADE_REGISTRAR_PERMISSION_ID - -The ID of the permission required to call the `_authorizeUpgrade` function. - -```solidity -bytes32 UPGRADE_REGISTRAR_PERMISSION_ID -``` - -### public variable REGISTER_ENS_SUBDOMAIN_PERMISSION_ID - -The ID of the permission required to call the `registerSubnode` and `setDefaultResolver` function. - -```solidity -bytes32 REGISTER_ENS_SUBDOMAIN_PERMISSION_ID -``` - -### public variable ens - -The ENS registry contract - -```solidity -contract ENS ens -``` - -### public variable node - -The namehash of the domain on which subdomains are registered. - -```solidity -bytes32 node -``` - -### public variable resolver - -The address of the ENS resolver resolving the names to an address. - -```solidity -address resolver -``` - -### error AlreadyRegistered - -Thrown if the subnode is already registered. - -```solidity -error AlreadyRegistered(bytes32 subnode, address nodeOwner) -``` - -| Input | Type | Description | -| :---------- | --------- | ----------------------- | -| `subnode` | `bytes32` | The subnode namehash. | -| `nodeOwner` | `address` | The node owner address. | - -### error InvalidResolver - -Thrown if node's resolver is invalid. - -```solidity -error InvalidResolver(bytes32 node, address resolver) -``` - -| Input | Type | Description | -| :--------- | --------- | -------------------------- | -| `node` | `bytes32` | The node namehash. | -| `resolver` | `address` | The node resolver address. | - -### public function constructor - -```solidity -constructor() public -``` - -_Used to disallow initializing the implementation contract by an attacker for extra safety._ - -### external function initialize - -Initializes the component by - -- checking that the contract is the domain node owner or an approved operator -- initializing the underlying component -- registering the [ERC-165](https://eips.ethereum.org/EIPS/eip-165) interface ID -- setting the ENS contract, the domain node hash, and resolver. - -```solidity -function initialize(contract IDAO _managingDao, contract ENS _ens, bytes32 _node) external -``` - -| Input | Type | Description | -| :------------- | --------------- | --------------------------------------------------------------------------- | -| `_managingDao` | `contract IDAO` | The interface of the DAO managing the components permissions. | -| `_ens` | `contract ENS` | The interface of the ENS registry to be used. | -| `_node` | `bytes32` | The ENS parent domain node under which the subdomains are to be registered. | - -### internal function \_authorizeUpgrade - -Internal method authorizing the upgrade of the contract via the [upgradeability mechanism for UUPS proxies](https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable) (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)). - -```solidity -function _authorizeUpgrade(address) internal virtual -``` - -_The caller must have the `UPGRADE_REGISTRAR_PERMISSION_ID` permission._ - -### external function registerSubnode - -Registers a new subdomain with this registrar as the owner and set the target address in the resolver. - -```solidity -function registerSubnode(bytes32 _label, address _targetAddress) external -``` - -| Input | Type | Description | -| :--------------- | --------- | -------------------------------------------- | -| `_label` | `bytes32` | The labelhash of the subdomain name. | -| `_targetAddress` | `address` | The address to which the subdomain resolves. | - -_It reverts with no message if this contract isn't the owner nor an approved operator for the given node._ - -### external function setDefaultResolver - -Sets the default resolver contract address that the subdomains being registered will use. - -```solidity -function setDefaultResolver(address _resolver) external -``` - -| Input | Type | Description | -| :---------- | --------- | --------------------------------- | -| `_resolver` | `address` | The resolver contract to be used. | - - diff --git a/versioned_docs/version-1.3.0/osx/subgraph/01-query-examples/index.md b/versioned_docs/version-1.3.0/osx/subgraph/01-query-examples/index.md deleted file mode 100644 index cee75c7b..00000000 --- a/versioned_docs/version-1.3.0/osx/subgraph/01-query-examples/index.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: Query Examples -sidebar_label: Query Examples ---- - -## Querying in Subgraph - -This section contains useful queries for interacting with Aragon subgraphs. - -Use these examples as templates to build your own queries and gain insights from the indexed blockchain data. - -## DAO Query - -The following query retrieves details about a specific DAO and its associated plugins. - -```ts -import {gql} from 'graphql-request'; - -export const QueryDao = gql` - query Dao($address: ID!) { - dao(id: $address) { - id - subdomain - metadata - createdAt - plugins { - appliedPreparation { - pluginAddress - } - appliedPluginRepo { - subdomain - } - appliedVersion { - build - release { - release - } - } - } - } - } -`; -``` - -The return - -```json -{ - "data": { - "dao": { - "id": "0x02bbc496bebc9a06c239670cea663c43cead899f", - "subdomain": "test", - "metadata": "ipfs://QmVGCibCLPgqA8eszxQJMzQFcmQAdrkyhTGH6EB5ERivsR", - "createdAt": "1677584087", - "plugins": [ - { - "appliedPreparation": { - "pluginAddress": "0x404f4bbd06e3a42c70297633e440b11bb083d482" - }, - "appliedPluginRepo": { - "subdomain": "multisig" - }, - "appliedVersion": { - "build": 1, - "release": { - "release": 1 - } - } - } - ] - } - } -} -``` - -## Balances Query - -The following query retrieves token balances, including ERC20, ERC721, ERC1155, and native balances. - -```ts -import {gql} from 'graphql-request'; - -export const QueryTokenBalances = gql` - query TokenBalances( - $where: TokenBalance_filter! - $limit: Int! - $skip: Int! - $direction: OrderDirection! - $sortBy: TokenBalance_orderBy! - ) { - tokenBalances( - where: $where - first: $limit - skip: $skip - orderDirection: $direction - orderBy: $sortBy - ) { - lastUpdated - __typename - ... on ERC20Balance { - balance - token { - name - decimals - symbol - id - } - } - ... on ERC721Balance { - token { - name - symbol - id - } - tokenIds - } - ... on NativeBalance { - balance - } - ... on ERC1155Balance { - metadataUri - token { - id - } - balances { - amount - id - tokenId - } - } - } - } -`; -``` - -The return - -```json -{ - "data": { - "tokenBalances": [ - { - "lastUpdated": "1682856167", - "__typename": "ERC20Balance", - "balance": "308999000000000004456448", - "token": { - "name": "VEGAHVB", - "decimals": 18, - "symbol": "VGH", - "id": "0x63677b9f25431e361f15019637533b4228cdc3ef" - } - }, - { - "lastUpdated": "1682856587", - "__typename": "ERC20Balance", - "balance": "499999999999999991611392", - "token": { - "name": "42K", - "decimals": 18, - "symbol": "42K", - "id": "0x7604fb940b31c988405847cc2db7a90938b529fc" - } - }, - { - "lastUpdated": "1697108195", - "__typename": "NativeBalance", - "balance": "2010000000000000" - } - ] - } -} -``` - -To learn more about Aragon Subgraph entities and fields, visit the next section, [Reference Guide](../reference-guide/index.md). diff --git a/versioned_docs/version-1.3.0/osx/subgraph/_category_.yml b/versioned_docs/version-1.3.0/osx/subgraph/_category_.yml deleted file mode 100644 index 8ad5c5ac..00000000 --- a/versioned_docs/version-1.3.0/osx/subgraph/_category_.yml +++ /dev/null @@ -1,3 +0,0 @@ -collapsible: true -collapsed: false -label: Subgraph diff --git a/versioned_docs/version-1.3.0/osx/subgraph/index.md b/versioned_docs/version-1.3.0/osx/subgraph/index.md deleted file mode 100644 index a62a8322..00000000 --- a/versioned_docs/version-1.3.0/osx/subgraph/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Aragon Subgraph -sidebar_label: Introduction -sidebar_position: 6 ---- - -## The On-Chain Information - -Subgraph is a protocol for indexing and querying event data emitted from the smart contracts. - -The Aragon Subgraph stores all DAO-related information, either to help users to manage and interact with their DAOs or to query useful information, such as its treasury information, members, plugins, etc. - -## Playground - -You can use the [Aragon subgraph-satsuma playground](https://subgraph.satsuma-prod.com/aragon/osx-mainnet/playground) for testing. - -### Walkthrough - -This documentation includes some [example queries](./01-query-examples/index.md) to get you familiarized with subgraph protocol and the [Reference Guide](./reference-guide/index.md) generated from the latest version of our `@aragon/osx` [subgraph schema](https://github.com/aragon/osx/blob/develop/packages/subgraph/schema.graphql). diff --git a/versioned_sidebars/version-1.3.0-sidebars.json b/versioned_sidebars/version-1.3.0-sidebars.json deleted file mode 100644 index 6e414a63..00000000 --- a/versioned_sidebars/version-1.3.0-sidebars.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "osxSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] -} diff --git a/versions.json b/versions.json deleted file mode 100644 index 1b35b6f4..00000000 --- a/versions.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "1.3.0" -] From 903b5f2bf985940dbb421d201b3411aeafd2cee1 Mon Sep 17 00:00:00 2001 From: Rekard0 <5880388+Rekard0@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:12:13 +0200 Subject: [PATCH 2/4] feat: add new products, reconfigure, update footer --- docs/governanceAppTemplate/index.md | 9 + docs/governanceUiKit/index.md | 9 + docusaurus.config.js | 171 +++----- package.json | 7 +- sidebars/governanceAppTemplateSidebar.js | 7 + sidebars/governanceUiKitSidebar.js | 7 + sidebars/osxSidebar.js | 7 + src/components/Footer/index.tsx | 36 +- src/css/custom.css | 7 +- src/pages/get-started-content.tsx | 63 +++ yarn.lock | 478 ++--------------------- 11 files changed, 211 insertions(+), 590 deletions(-) create mode 100644 docs/governanceAppTemplate/index.md create mode 100644 docs/governanceUiKit/index.md create mode 100644 sidebars/governanceAppTemplateSidebar.js create mode 100644 sidebars/governanceUiKitSidebar.js create mode 100644 sidebars/osxSidebar.js create mode 100644 src/pages/get-started-content.tsx diff --git a/docs/governanceAppTemplate/index.md b/docs/governanceAppTemplate/index.md new file mode 100644 index 00000000..dfc964ca --- /dev/null +++ b/docs/governanceAppTemplate/index.md @@ -0,0 +1,9 @@ +--- +title: governanceAppTemplate +sidebar_label: Introduction +sidebar_position: 0 +--- + +## governanceAppTemplate + +This section will contain guides. diff --git a/docs/governanceUiKit/index.md b/docs/governanceUiKit/index.md new file mode 100644 index 00000000..f2638bba --- /dev/null +++ b/docs/governanceUiKit/index.md @@ -0,0 +1,9 @@ +--- +title: governanceUiKit +sidebar_label: Introduction +sidebar_position: 0 +--- + +## governanceUiKit + +This section will contain guides. diff --git a/docusaurus.config.js b/docusaurus.config.js index c8000d14..a449c690 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -1,5 +1,4 @@ // @ts-check -// Note: type annotations allow type checking and IDEs autocompletion require('dotenv').config(); const {themes} = require('prism-react-renderer'); const lightCodeTheme = themes.github, @@ -24,17 +23,12 @@ const config = { '@docusaurus/preset-classic', { docs: { - routeBasePath: '/', - sidebarPath: require.resolve('./sidebars.js'), + id: 'default', + path: 'docs/osx', + routeBasePath: '/', // OSx docs as the main entry point + sidebarPath: require.resolve('./sidebars/osxSidebar.js'), remarkPlugins: [math], rehypePlugins: [katex], - includeCurrentVersion: true, - lastVersion: 'current', - versions: { - current: { - label: '1.4.0-alpha', - }, - }, }, theme: { customCss: [ @@ -50,6 +44,51 @@ const config = { ], ], + plugins: [ + // Governance UI Kit Documentation + [ + '@docusaurus/plugin-content-docs', + { + id: 'governanceUiKit', + path: 'docs/governanceUiKit', + routeBasePath: 'governance-ui-kit', + sidebarPath: require.resolve('./sidebars/governanceUiKitSidebar.js'), + includeCurrentVersion: true, + }, + ], + // Governance App Template Documentation + [ + '@docusaurus/plugin-content-docs', + { + id: 'governanceAppTemplate', + path: 'docs/governanceAppTemplate', + routeBasePath: 'governance-app-template', + sidebarPath: require.resolve( + './sidebars/governanceAppTemplateSidebar.js', + ), + includeCurrentVersion: true, + }, + ], + // Search Plugin + [ + require.resolve('@cmfcmf/docusaurus-search-local'), + { + // Options here (default options are fine unless you have specific needs) + }, + ], + // Tailwind Plugin + async function TailwindPlugin(context, options) { + return { + name: 'docusaurus-tailwindcss', + configurePostCss(postcssOptions) { + postcssOptions.plugins.push(require('tailwindcss')); + postcssOptions.plugins.push(require('autoprefixer')); + return postcssOptions; + }, + }; + }, + ], + stylesheets: [ { href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css', @@ -71,32 +110,19 @@ const config = { items: [ { type: 'docSidebar', - position: 'left', sidebarId: 'osxSidebar', - label: 'Overview', - }, - { - type: 'docSidebar', position: 'left', - sidebarId: 'advancedSidebar', - label: 'Advanced', + label: 'Aragon OSx', }, { - type: 'docSidebar', + to: '/governance-ui-kit', // Link to Governance UI Kit documentation + label: 'Governance UI Kit', position: 'left', - sidebarId: 'guidesSidebar', - label: 'Guides', }, { - type: 'docSidebar', + to: '/governance-app-template', // Link to Governance App Template documentation + label: 'Governance App Template', position: 'left', - sidebarId: 'supportSidebar', - label: 'Support', - }, - { - type: 'docsVersionDropdown', - position: 'right', - dropdownActiveClassDisabled: true, }, ], }, @@ -117,48 +143,6 @@ const config = { footer: { style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Tutorial', - to: '/docs/intro', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Stack Overflow', - href: 'https://ethereum.stackexchange.com/search?q=aragon', - }, - { - label: 'Discord', - href: 'https://discord.gg/Wpk36QRdMN', - }, - { - label: 'Twitter', - href: 'https://twitter.com/AragonProject/', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Blog', - to: 'https://blog.aragon.org/', - }, - { - label: 'GitHub', - href: 'https://github.com/aragon', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} Aragon Association, Inc.`, }, colorMode: { defaultMode: 'light', @@ -172,57 +156,12 @@ const config = { announcementBar: { id: 'register_to_dev_newsletter', content: - 'Register to our developer newsletter and get the latest updates on DAO tooling here!', + 'Register to our developer newsletter and get the latest updates on DAO tooling here!', backgroundColor: '#3164fa', textColor: '#fff', isCloseable: true, }, }), - - plugins: [ - [ - require.resolve('@cmfcmf/docusaurus-search-local'), - { - // Options here - }, - ], - [ - '@graphql-markdown/docusaurus', - { - schema: `./static/subgraph/schema-introspection-partial.json`, - rootPath: './versioned_docs/version-1.3.0', - baseURL: 'osx/subgraph/reference-guide', - homepage: './static/subgraph/index.md', - linkRoot: '/1.3.0', - loaders: { - JsonFileLoader: { - module: '@graphql-tools/json-file-loader', - options: { - rootTypes: { - query: '', - subscription: '', - mutation: '', - }, - }, - }, - }, - printTypeOptions: { - useApiGroup: false, - }, - }, - ], - async function TailwindPlugin(context, options) { - return { - name: 'docusaurus-tailwindcss', - configurePostCss(postcssOptions) { - // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require('tailwindcss')); - postcssOptions.plugins.push(require('autoprefixer')); - return postcssOptions; - }, - }; - }, - ], }; module.exports = config; diff --git a/package.json b/package.json index 53346ad1..c7283ff2 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "deploy": "docusaurus deploy", "clear": "docusaurus clear", "serve": "docusaurus serve", - "docs:subgraph": "docusaurus graphql-to-doc && ./scripts/prune-subgraph-docs.sh", - "serve:all-optimized": "yarn && yarn docs:subgraph && yarn optimize-svg && yarn build && yarn serve", + "serve:all-optimized": "yarn && yarn optimize-svg && yarn build && yarn serve", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", "optimize-svg": "svgo -rf ./static/img -o ./static/optimized-svg", @@ -25,8 +24,6 @@ "@docusaurus/plugin-google-gtag": "^3.1.1", "@docusaurus/plugin-google-tag-manager": "^3.1.1", "@docusaurus/preset-classic": "^3.1.1", - "@graphql-markdown/docusaurus": "^1.24.0", - "@graphql-tools/json-file-loader": "^8.0.1", "@mantine/hooks": "^7.5.2", "@mdx-js/react": "^3.0.1", "autoprefixer": "^10.4.7", @@ -34,8 +31,6 @@ "docusaurus-tailwindcss": "^0.1.0", "dotenv": "^16.4.5", "ethers": "^5.6.9", - "graphql": "^16.8.1", - "graphql-config": "^5.0.3", "hast-util-is-element": "3.0.0", "postcss": "^8.4.14", "prism-react-renderer": "^2.3.0", diff --git a/sidebars/governanceAppTemplateSidebar.js b/sidebars/governanceAppTemplateSidebar.js new file mode 100644 index 00000000..466c46cf --- /dev/null +++ b/sidebars/governanceAppTemplateSidebar.js @@ -0,0 +1,7 @@ +// sidebars.js + +const sidebars = { + governanceAppTemplateSidebar: [{type: 'autogenerated', dirName: '.'}], +}; + +module.exports = sidebars; diff --git a/sidebars/governanceUiKitSidebar.js b/sidebars/governanceUiKitSidebar.js new file mode 100644 index 00000000..193f4d57 --- /dev/null +++ b/sidebars/governanceUiKitSidebar.js @@ -0,0 +1,7 @@ +// sidebars.js + +const sidebars = { + governanceUiKitSidebar: [{type: 'autogenerated', dirName: '.'}], +}; + +module.exports = sidebars; diff --git a/sidebars/osxSidebar.js b/sidebars/osxSidebar.js new file mode 100644 index 00000000..34bc8338 --- /dev/null +++ b/sidebars/osxSidebar.js @@ -0,0 +1,7 @@ +// sidebars.js + +const sidebars = { + osxSidebar: [{type: 'autogenerated', dirName: '.'}], +}; + +module.exports = sidebars; diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx index 0740f659..51960d2f 100644 --- a/src/components/Footer/index.tsx +++ b/src/components/Footer/index.tsx @@ -5,35 +5,19 @@ const currentYear = new Date().getFullYear(); const leftLinks = [ { - text: 'Home', - to: '/', - }, - { - text: 'How it works', - to: '/docs/osx/how-it-works', + text: 'Discord', + to: 'https://discord.gg/Wpk36QRdMN', }, { - text: 'Guides', - to: '/docs/osx/how-to-guides', + text: 'Github', + to: 'https://github.com/aragon', }, - { - text: 'Support', - to: 'https://discord.gg/Wpk36QRdMN', - } ]; const rightLinks = [ { text: 'Aragon', to: 'https://aragon.org', - } - // { - // text: 'Terms of service', - // to: 'https://aragon.org', - // }, - // { - // text: 'Privacy', - // to: 'https://aragon.org', - // }, + }, ]; export const Footer = () => { @@ -43,7 +27,12 @@ export const Footer = () => { {leftLinks.map((link, index) => ( - + {link.text} ))} @@ -53,11 +42,10 @@ export const Footer = () => { {rightLinks.map((link, index) => ( - {link.text} + {link.text} ©{currentYear} ))} - © {currentYear} ); diff --git a/src/css/custom.css b/src/css/custom.css index ed66e60e..437de140 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -44,7 +44,7 @@ --warning-color: #e1c75c; --danger-color: #e75268; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); - --ifm-color-background: + --ifm-color-background: ; } @@ -106,8 +106,3 @@ div[class*='announcementBarContent'] a:hover { color: var(--ifm-color-primary-darkest); font-weight: bold; } - -/* Adding custom style to specific documents */ -.docs-doc-id-osx\/get-started .markdown { - max-width: 100%; -} diff --git a/src/pages/get-started-content.tsx b/src/pages/get-started-content.tsx new file mode 100644 index 00000000..07a12b84 --- /dev/null +++ b/src/pages/get-started-content.tsx @@ -0,0 +1,63 @@ +import React from 'react'; +import {HeroHeader} from '../components/HeroHeader'; +import {WelcomeCard} from '../components/WelcomeCard'; +import devTools from '../data/DevTools'; +import styled from 'styled-components'; + +const GetStarted = () => { + return ( + + + + {devTools.map((card, index) => ( + + ))} + + + ); +}; + +const styles = { + heroHeader: { + width: '30%', + }, + title: { + fontSize: '2rem', + fontWeight: 'bold', + marginBottom: '0.2rem', + }, + subtitle: { + fontSize: '1.25rem', + fontWeight: 'normal', + color: 'var(--neutral-700),', + }, +} as const; + +const Container = styled.div.attrs({ + className: 'flex-col flex space-y-12', +})` + width: 100%; + box-sizing: border-box; +`; +const WelcomeCardsWrapper = styled.div.attrs({ + className: 'flex flex-wrap md:flex-row place-content-stretch gap-8', +})``; + +export default GetStarted; diff --git a/yarn.lock b/yarn.lock index b24ad4c9..2f30d829 100644 --- a/yarn.lock +++ b/yarn.lock @@ -315,13 +315,6 @@ react-dropzone "^11.5.1" tailwindcss-fluid-type "^1.3.1" -"@ardatan/sync-fetch@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" - integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== - dependencies: - node-fetch "^2.6.1" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.8.3": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -1929,7 +1922,7 @@ "@docusaurus/theme-search-algolia" "3.1.1" "@docusaurus/types" "3.1.1" -"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -2057,7 +2050,7 @@ js-yaml "^4.1.0" tslib "^2.6.0" -"@docusaurus/utils@3.1.1", "@docusaurus/utils@>=2.0.0": +"@docusaurus/utils@3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.1.1.tgz#e822d14704e4b3bb451ca464a7cc56aea9b55a45" integrity sha512-ZJfJa5cJQtRYtqijsPEnAZoduW6sjAQ7ZCWSZavLcV10Fw0Z3gSaPKA/B4micvj2afRZ4gZxT7KfYqe5H8Cetg== @@ -2466,233 +2459,6 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@graphql-markdown/core@^1.10.0": - version "1.10.0" - resolved "https://registry.yarnpkg.com/@graphql-markdown/core/-/core-1.10.0.tgz#7b5215a7c91356ad6e233e00eb649cc01dd65496" - integrity sha512-kHu2tOfkphHPFhnO8DPTNs3f6f5owhSmZ8yI5oNgkpNGdXIFpnP7EeNIsWQUW7JAc+ADkbhtfr2Ls/dLIbhRFg== - dependencies: - "@graphql-markdown/graphql" "^1.1.1" - "@graphql-markdown/logger" "^1.0.2" - "@graphql-markdown/utils" "^1.6.3" - -"@graphql-markdown/docusaurus@^1.24.0": - version "1.24.0" - resolved "https://registry.yarnpkg.com/@graphql-markdown/docusaurus/-/docusaurus-1.24.0.tgz#de3feb913d6c2d83bbf5cbde017e7243ef3b2f72" - integrity sha512-TEBDfDx65Eypnnbjacs8ncs4QiAjaFku0iYVSS2Zd5xBdNWSR9nAvIW62ucDTqTJozsv9KTPwnKdkw/C5mSnqA== - dependencies: - "@graphql-markdown/core" "^1.10.0" - "@graphql-markdown/logger" "^1.0.2" - "@graphql-markdown/printer-legacy" "^1.8.0" - -"@graphql-markdown/graphql@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@graphql-markdown/graphql/-/graphql-1.1.1.tgz#d43a848c705cecaace296d7884caee300a4b2c92" - integrity sha512-ccivXhaJH8rTTyxF6M/S81s9VlLevdJ+bH0SiGlmI5tBqqAQYh6eIzYaEx+KZNcbf7l58K4QBTxfRDJJeIlUjA== - dependencies: - "@graphql-markdown/utils" "^1.6.3" - "@graphql-tools/load" "8.0.1" - -"@graphql-markdown/logger@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@graphql-markdown/logger/-/logger-1.0.2.tgz#bfd6a106498a9d961e274d5883e28972100d6145" - integrity sha512-FIHGksFN2KqayfNdJTgLdhDXplMwqJafxCr5ytWOMjAlXQTZphhD//eLs7p1HF9Hx13RRCjcRt+FgMv7XINW9g== - -"@graphql-markdown/printer-legacy@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@graphql-markdown/printer-legacy/-/printer-legacy-1.8.0.tgz#4a4518f44110ceaa1cf09ccf746335ba8a8a9fc6" - integrity sha512-CfdGRyEXdcCf0Tc/vUHPhoZv0jntRuvI4CsXV6YnB7k1B8OHtSJuNIVEXoh/Hd5EB9u2lJY7ydp0FjG3tdGUwg== - dependencies: - "@docusaurus/utils" ">=2.0.0" - "@graphql-markdown/graphql" "^1.1.1" - "@graphql-markdown/utils" "^1.6.3" - -"@graphql-markdown/utils@^1.6.3": - version "1.6.3" - resolved "https://registry.yarnpkg.com/@graphql-markdown/utils/-/utils-1.6.3.tgz#25a9b6ab99a36cfb4c728bf78fc2b92f2447d414" - integrity sha512-CzZwB4fcBTDwsUH4u2MnPZxcA37m1zGm8fEyr7UTFFeugT2e4Y7xngIJn8TwqRz0iQJh8YtIhnU/WksYV0u0Qw== - -"@graphql-tools/batch-execute@^9.0.4": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz#11601409c0c33491971fc82592de12390ec58be2" - integrity sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w== - dependencies: - "@graphql-tools/utils" "^10.0.13" - dataloader "^2.2.2" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/delegate@^10.0.4": - version "10.0.4" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.0.4.tgz#7c38240f11e42ec2dd45d0a569ca6433ce4cb8dc" - integrity sha512-WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q== - dependencies: - "@graphql-tools/batch-execute" "^9.0.4" - "@graphql-tools/executor" "^1.2.1" - "@graphql-tools/schema" "^10.0.3" - "@graphql-tools/utils" "^10.0.13" - dataloader "^2.2.2" - tslib "^2.5.0" - -"@graphql-tools/executor-graphql-ws@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.2.tgz#2bf959d2319692460b39400c0fe1515dfbb9f034" - integrity sha512-+9ZK0rychTH1LUv4iZqJ4ESbmULJMTsv3XlFooPUngpxZkk00q6LqHKJRrsLErmQrVaC7cwQCaRBJa0teK17Lg== - dependencies: - "@graphql-tools/utils" "^10.0.13" - "@types/ws" "^8.0.0" - graphql-ws "^5.14.0" - isomorphic-ws "^5.0.0" - tslib "^2.4.0" - ws "^8.13.0" - -"@graphql-tools/executor-http@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.0.9.tgz#87ca8b99a32241eb0cc30a9c500d2672e92d58b7" - integrity sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q== - dependencies: - "@graphql-tools/utils" "^10.0.13" - "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/fetch" "^0.9.0" - extract-files "^11.0.0" - meros "^1.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/executor-legacy-ws@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.6.tgz#4ed311b731db8fd5c99e66a66361afbf9c2109fc" - integrity sha512-lDSxz9VyyquOrvSuCCnld3256Hmd+QI2lkmkEv7d4mdzkxkK4ddAWW1geQiWrQvWmdsmcnGGlZ7gDGbhEExwqg== - dependencies: - "@graphql-tools/utils" "^10.0.13" - "@types/ws" "^8.0.0" - isomorphic-ws "^5.0.0" - tslib "^2.4.0" - ws "^8.15.0" - -"@graphql-tools/executor@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.2.1.tgz#9aa132ac1839679fbd14810f7ad8a65e82c0db44" - integrity sha512-BP5UI1etbNOXmTSt7q4NL1+zsURFgh2pG+Hyt9K/xO0LlsfbSx59L5dHLerqZP7Js0xI6GYqrUQ4m29rUwUHJg== - dependencies: - "@graphql-tools/utils" "^10.0.13" - "@graphql-typed-document-node/core" "3.2.0" - "@repeaterjs/repeater" "^3.0.4" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/graphql-file-loader@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.1.tgz#03869b14cb91d0ef539df8195101279bb2df9c9e" - integrity sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA== - dependencies: - "@graphql-tools/import" "7.0.1" - "@graphql-tools/utils" "^10.0.13" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/import@7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-7.0.1.tgz#4e0d181c63350b1c926ae91b84a4cbaf03713c2c" - integrity sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w== - dependencies: - "@graphql-tools/utils" "^10.0.13" - resolve-from "5.0.0" - tslib "^2.4.0" - -"@graphql-tools/json-file-loader@^8.0.0", "@graphql-tools/json-file-loader@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-8.0.1.tgz#3fcfe869f22d8129a74369da69bf491c0bff7c2d" - integrity sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA== - dependencies: - "@graphql-tools/utils" "^10.0.13" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/load@8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.1.tgz#498f2230448601cb87894b8a93df7867daef69ea" - integrity sha512-qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw== - dependencies: - "@graphql-tools/schema" "^10.0.0" - "@graphql-tools/utils" "^10.0.11" - p-limit "3.1.0" - tslib "^2.4.0" - -"@graphql-tools/load@^8.0.0": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.2.tgz#47d9916bf96dea05df27f11b53812f4327d9b6d2" - integrity sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA== - dependencies: - "@graphql-tools/schema" "^10.0.3" - "@graphql-tools/utils" "^10.0.13" - p-limit "3.1.0" - tslib "^2.4.0" - -"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.3": - version "9.0.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.3.tgz#4d0b467132e6f788b69fab803d31480b8ce4b61a" - integrity sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw== - dependencies: - "@graphql-tools/utils" "^10.0.13" - tslib "^2.4.0" - -"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.3": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.3.tgz#48c14be84cc617c19c4c929258672b6ab01768de" - integrity sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog== - dependencies: - "@graphql-tools/merge" "^9.0.3" - "@graphql-tools/utils" "^10.0.13" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-tools/url-loader@^8.0.0": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.2.tgz#ee8e10a85d82c72662f6bc6bbc7b408510a36ebd" - integrity sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ== - dependencies: - "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/delegate" "^10.0.4" - "@graphql-tools/executor-graphql-ws" "^1.1.2" - "@graphql-tools/executor-http" "^1.0.9" - "@graphql-tools/executor-legacy-ws" "^1.0.6" - "@graphql-tools/utils" "^10.0.13" - "@graphql-tools/wrap" "^10.0.2" - "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.9.0" - isomorphic-ws "^5.0.0" - tslib "^2.4.0" - value-or-promise "^1.0.11" - ws "^8.12.0" - -"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.11", "@graphql-tools/utils@^10.0.13": - version "10.1.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.1.0.tgz#d8c23a8b8636a5df59b14991bf25eae5ac15d314" - integrity sha512-wLPqhgeZ9BZJPRoaQbsDN/CtJDPd/L4qmmtPkjI3NuYJ39x+Eqz1Sh34EAGMuDh+xlOHqBwHczkZUpoK9tvzjw== - dependencies: - "@graphql-typed-document-node/core" "^3.1.1" - cross-inspect "1.0.0" - dset "^3.1.2" - tslib "^2.4.0" - -"@graphql-tools/wrap@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.2.tgz#87f510b5f35db2771e7743bc3d71059ee4adaf09" - integrity sha512-nb/YjBcyF02KBCy3hiyw0nBKIC+qkiDY/tGMCcIe4pM6BPEcnreaPhXA28Rdge7lKtySF4Mhbc86XafFH5bIkQ== - dependencies: - "@graphql-tools/delegate" "^10.0.4" - "@graphql-tools/schema" "^10.0.3" - "@graphql-tools/utils" "^10.0.13" - tslib "^2.4.0" - value-or-promise "^1.0.12" - -"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" - integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== - "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -2826,11 +2592,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@kamilkisiela/fast-url-parser@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz#9d68877a489107411b953c54ea65d0658b515809" - integrity sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew== - "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -3231,11 +2992,6 @@ dependencies: "@babel/runtime" "^7.13.10" -"@repeaterjs/repeater@^3.0.4": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.5.tgz#b77571685410217a548a9c753aa3cdfc215bfc78" - integrity sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA== - "@sideway/address@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" @@ -3926,7 +3682,7 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== -"@types/ws@^8.0.0", "@types/ws@^8.5.5": +"@types/ws@^8.5.5": version "8.5.10" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== @@ -4155,30 +3911,6 @@ "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@whatwg-node/events@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.1.1.tgz#0ca718508249419587e130da26d40e29d99b5356" - integrity sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w== - -"@whatwg-node/fetch@^0.9.0": - version "0.9.17" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.17.tgz#10e4ea2392926c8d41ff57e3156857e885317d3f" - integrity sha512-TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q== - dependencies: - "@whatwg-node/node-fetch" "^0.5.7" - urlpattern-polyfill "^10.0.0" - -"@whatwg-node/node-fetch@^0.5.7": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.5.7.tgz#88d231c4e377354580f317cd5bb719fa1868850d" - integrity sha512-YZA+N3JcW1eh2QRi7o/ij+M07M0dqID73ltgsOEMRyEc2UYVDbyomaih+CWCEZqBIDHw4KMDveXvv4SBZ4TLIw== - dependencies: - "@kamilkisiela/fast-url-parser" "^1.1.4" - "@whatwg-node/events" "^0.1.0" - busboy "^1.6.0" - fast-querystring "^1.1.1" - tslib "^2.3.1" - "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4702,13 +4434,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -5199,7 +4924,7 @@ cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.1.0, cosmiconfig@^8.3.5: +cosmiconfig@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -5209,13 +4934,6 @@ cosmiconfig@^8.1.0, cosmiconfig@^8.3.5: parse-json "^5.2.0" path-type "^4.0.0" -cross-inspect@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.0.tgz#5fda1af759a148594d2d58394a9e21364f6849af" - integrity sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ== - dependencies: - tslib "^2.4.0" - cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -5477,11 +5195,6 @@ csstype@^3.0.2, csstype@^3.0.4: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== -dataloader@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" - integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== - debounce@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" @@ -5770,11 +5483,6 @@ dotenv@^16.4.5: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== -dset@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" - integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== - duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -6284,16 +5992,6 @@ extend@^3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extract-files@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" - integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== - -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -6336,13 +6034,6 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-querystring@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" - integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== - dependencies: - fast-decode-uri-component "^1.0.1" - fast-url-parser@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -6723,7 +6414,7 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" -globby@^11.0.1, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6778,33 +6469,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-config@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-5.0.3.tgz#d9aa2954cf47a927f9cb83cdc4e42ae55d0b321e" - integrity sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ== - dependencies: - "@graphql-tools/graphql-file-loader" "^8.0.0" - "@graphql-tools/json-file-loader" "^8.0.0" - "@graphql-tools/load" "^8.0.0" - "@graphql-tools/merge" "^9.0.0" - "@graphql-tools/url-loader" "^8.0.0" - "@graphql-tools/utils" "^10.0.0" - cosmiconfig "^8.1.0" - jiti "^1.18.2" - minimatch "^4.2.3" - string-env-interpolation "^1.0.1" - tslib "^2.4.0" - -graphql-ws@^5.14.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.15.0.tgz#2db79e1b42468a8363bf5ca6168d076e2f8fdebc" - integrity sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw== - -graphql@^16.8.1: - version "16.8.1" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.8.1.tgz#1930a965bef1170603702acdb68aedd3f3cf6f07" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== - gray-matter@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" @@ -7684,11 +7348,6 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -isomorphic-ws@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - jackspeak@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" @@ -7729,7 +7388,7 @@ jest-worker@^29.1.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jiti@^1.18.2, jiti@^1.19.1, jiti@^1.20.0: +jiti@^1.19.1, jiti@^1.20.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -8320,11 +7979,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -meros@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" - integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -8843,13 +8497,6 @@ minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" - integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== - dependencies: - brace-expansion "^1.1.7" - minimatch@^9.0.1: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -8964,13 +8611,6 @@ node-emoji@^2.1.0: emojilib "^2.4.0" skin-tone "^2.0.0" -node-fetch@^2.6.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -8986,13 +8626,6 @@ node-releases@^2.0.6: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - 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" @@ -9169,13 +8802,6 @@ p-cancelable@^3.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== -p-limit@3.1.0, p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-limit@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -9183,6 +8809,13 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" @@ -10233,6 +9866,14 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" +"react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + react-remove-scroll-bar@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.3.tgz#e291f71b1bb30f5f67f023765b7435f4b2b2cd94" @@ -10577,11 +10218,6 @@ remark-stringify@^11.0.0: mdast-util-to-markdown "^2.0.0" unified "^11.0.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - renderkid@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" @@ -10613,11 +10249,6 @@ resolve-alpn@^1.2.0: resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -resolve-from@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -11140,17 +10771,16 @@ std-env@^3.0.1: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.2.1.tgz#00e260ec3901333537125f81282b9296b00d7304" integrity sha512-D/uYFWkI/31OrnKmXZqGAGK5GbQRPp/BWA1nuITcc6ICblhhuQUPHS5E2GSCVS7Hwhf4ciq8qsATwBUxv+lI6w== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -string-env-interpolation@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" - integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11231,7 +10861,14 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11567,11 +11204,6 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" @@ -11602,7 +11234,7 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.0: +tslib@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -11785,13 +11417,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unixify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" - integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== - dependencies: - normalize-path "^2.1.1" - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -11849,11 +11474,6 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -urlpattern-polyfill@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" - integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== - use-callback-ref@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" @@ -11899,11 +11519,6 @@ value-equal@^1.0.1: resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== -value-or-promise@^1.0.11, value-or-promise@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -11959,11 +11574,6 @@ web-namespaces@^2.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - webpack-bundle-analyzer@^4.9.0: version "4.10.1" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz#84b7473b630a7b8c21c741f81d8fe4593208b454" @@ -12098,14 +11708,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -12200,7 +11802,7 @@ ws@^7.3.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.12.0, ws@^8.13.0, ws@^8.15.0: +ws@^8.13.0: version "8.16.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== From 04a72aa148eca7e7192dcb9b0dcb05bde70d3aa3 Mon Sep 17 00:00:00 2001 From: Rekard0 <5880388+Rekard0@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:18:59 +0200 Subject: [PATCH 3/4] ci: remove subgraph from github flow --- .github/workflows/on_push.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/on_push.yaml b/.github/workflows/on_push.yaml index 1d042b5f..45e2b7bc 100644 --- a/.github/workflows/on_push.yaml +++ b/.github/workflows/on_push.yaml @@ -20,7 +20,5 @@ jobs: run: yarn - name: Optimize SVG images run: yarn optimize-svg - - name: Generate Subgraph Auto-Documentation - run: yarn docs:subgraph - name: Build run: yarn build From 9fbbbaa25ac609d7ffee6470ec0e636d1570e6a7 Mon Sep 17 00:00:00 2001 From: Rekard0 <5880388+Rekard0@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:21:26 +0200 Subject: [PATCH 4/4] ci: remove subgraph from fleek deploy flow --- .github/workflows/publish-on-fleek.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-on-fleek.yaml b/.github/workflows/publish-on-fleek.yaml index 6c2d490e..ebb26fec 100644 --- a/.github/workflows/publish-on-fleek.yaml +++ b/.github/workflows/publish-on-fleek.yaml @@ -28,7 +28,7 @@ jobs: cache: 'yarn' - name: Install and build - run: yarn && yarn docs:subgraph && yarn optimize-svg && yarn build + run: yarn && yarn optimize-svg && yarn build - name: Activate Fleek run: mv fleek_${{ inputs.source_branch }}.json .fleek.json