diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..4687fcf Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore index 769b47c..600e365 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1 @@ -# directories -cache -coverage -node_modules -out - -# files -*.env -*.log -.DS_Store -.pnp.* -lcov.info -yarn.lock - -# broadcasts -!broadcast -broadcast/* -broadcast/*/31337/ +**/node_modules \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index ea5e34f..46d85ac 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,24 +1,24 @@ -[submodule "lib/forge-std"] +[submodule "packages/contracts/lib/forge-std"] branch = "v1" - path = "lib/forge-std" + path = "packages/contracts/lib/forge-std" url = "https://github.com/foundry-rs/forge-std" -[submodule "lib/prb-test"] +[submodule "packages/contracts/lib/prb-test"] branch = "release-v0" - path = "lib/prb-test" + path = "packages/contracts/lib/prb-test" url = "https://github.com/PaulRBerg/prb-test" -[submodule "lib/openzeppelin-contracts"] - path = lib/openzeppelin-contracts +[submodule "packages/contracts/lib/openzeppelin-contracts"] + path = packages/contracts/lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/osx"] - path = lib/osx +[submodule "packages/contracts/lib/osx"] + path = packages/contracts/lib/osx url = https://github.com/aragon/osx -[submodule "lib/openzeppelin-contracts-upgradeable"] +[submodule "packages/contracts/lib/openzeppelin-contracts-upgradeable"] branch = "release-v4.9" - path = lib/openzeppelin-contracts-upgradeable + path = packages/contracts/lib/openzeppelin-contracts-upgradeable url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable -[submodule "lib/ens-contracts"] - path = lib/ens-contracts +[submodule "packages/contracts/lib/ens-contracts"] + path = packages/contracts/lib/ens-contracts url = https://github.com/ensdomains/ens-contracts -[submodule "lib/BokkyPooBahsDateTimeLibrary"] - path = lib/BokkyPooBahsDateTimeLibrary +[submodule "packages/contracts/lib/BokkyPooBahsDateTimeLibrary"] + path = packages/contracts/lib/BokkyPooBahsDateTimeLibrary url = https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary diff --git a/.vscode/settings.json b/.vscode/settings.json index c6fd597..adf5afe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,9 +2,28 @@ "[solidity]": { "editor.defaultFormatter": "NomicFoundation.hardhat-solidity" }, - "[toml]": { - "editor.defaultFormatter": "tamasfe.even-better-toml" - }, "npm.exclude": "**/lib/**", - "solidity.formatter": "forge" -} + "solidity.formatter": "forge", + "conventionalCommits.scopes": [ + "hooks" + ], + "detectedConfig": { + "typescript": false, + "naming": "Pascal Case", + "unit": "rem", + "framework": "nextjs", + "styling": "Tailwind" + }, + "locofyConfig": { + "project_name": "budget2", + "id": "6550a1218cd0bab876c5d4ce", + "framework": "react", + "typescript": true, + "path": "public/", + "componentsPath": "/Users/abuusama/repos/daobox/budget/packages/dapp/components", + "screensPath": "/Users/abuusama/repos/daobox/budget/frontend-v2/pages", + "styling": "Tailwind", + "unit": "rem", + "naming": "Pascal Case" + } +} \ No newline at end of file diff --git a/README.md b/README.md index be6cf28..15c6b20 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,35 @@ +<<<<<<< HEAD

DAOBox - Budget

+======= +# budget2 +>>>>>>> Incoming + +<<<<<<< HEAD

daobox-banner
DAOBox - Budget is an Aragon OSx Plugin that allows the execution of payments bypassing the need for regular voting.

+======= +Note: Please ensure you have installed nodejs + +>>>>>>> Incoming +<<<<<<< HEAD

Github Actions Foundry License: AGPL-3-0 Docs Discord +======= +To preview and run the project on your device: +>>>>>>> Incoming + +<<<<<<< HEAD


@@ -230,3 +246,38 @@ constraints of this system, this is a non-issue: ## License This project is licensed under AGPL-3.0-or-later + +--- + +``` +[submodule "lib/forge-std"] + branch = "v1" + path = "lib/forge-std" + url = "https://github.com/foundry-rs/forge-std" +[submodule "lib/prb-test"] + branch = "release-v0" + path = "lib/prb-test" + url = "https://github.com/PaulRBerg/prb-test" +[submodule "lib/openzeppelin-contracts"] + path = lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/osx"] + path = lib/osx + url = https://github.com/aragon/osx +[submodule "lib/openzeppelin-contracts-upgradeable"] + branch = "release-v4.9" + path = lib/openzeppelin-contracts-upgradeable + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable +[submodule "lib/ens-contracts"] + path = lib/ens-contracts + url = https://github.com/ensdomains/ens-contracts +[submodule "lib/BokkyPooBahsDateTimeLibrary"] + path = lib/BokkyPooBahsDateTimeLibrary + url = https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary +``` +======= +1. Open project folder in Visual Studio Code +2. In the terminal, run `npm install` +3. Run `npm start` to view project in browser + +>>>>>>> Incoming diff --git a/active_contracts.json b/active_contracts.json new file mode 100644 index 0000000..61c7e20 --- /dev/null +++ b/active_contracts.json @@ -0,0 +1,9 @@ +{ + "ens-domain": "budget.plugin.dao.eth", + "goerli": { + "BudgetSetup": "0x636Dc42B54029702ee5bDd39059bF8f75696B1C9", + "BudgetRepo": "0x9b72Af17B8aE55AE2F3C06E46A44D9bEaFb10801", + "dao": "0xce780fea1c950a29769b4f10817a9c51154d12af", + "budget": "0xfea7C89Ae8168f0f0FB9bA053b79C02819eC8C91" + } +} \ No newline at end of file diff --git a/lib/forge-std b/lib/forge-std deleted file mode 160000 index e8a047e..0000000 --- a/lib/forge-std +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e8a047e3f40f13fa37af6fe14e6e06283d9a060e diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts deleted file mode 160000 index 0457042..0000000 --- a/lib/openzeppelin-contracts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0457042d93d9dfd760dbaa06a4d2f1216fdbe297 diff --git a/lib/openzeppelin-contracts-upgradeable b/lib/openzeppelin-contracts-upgradeable deleted file mode 160000 index 12ad9ea..0000000 --- a/lib/openzeppelin-contracts-upgradeable +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 12ad9ea7c8e8e78f6eba9ad71ad156645d3c5b4c diff --git a/lib/osx b/lib/osx deleted file mode 160000 index 1bf1798..0000000 --- a/lib/osx +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1bf17984d1a1b569c3c4b1d86026d87f74f81402 diff --git a/lib/prb-test b/lib/prb-test deleted file mode 160000 index 1e9ead2..0000000 --- a/lib/prb-test +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1e9ead2f7bfaedda3038081c16484b0d7d0b2712 diff --git a/package.json b/package.json index 5bf6c96..49b5322 100644 --- a/package.json +++ b/package.json @@ -1,39 +1,62 @@ { - "name": "@daobox/budget", - "description": "", +<<<<<<< HEAD + "name": "budget-monorepo", "version": "1.0.0", - "author": { - "name": "DAObox", - "url": "https://github.com/DAObox" + "description": "", + "main": "index.js", +======= + "name": "budget2", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^29.5.0", + "@types/node": "^16.11.14", + "@types/react": "^18.0.28", + "@types/react-dom": "^18.0.11", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4", + "typescript": "^4.5.4", + "react-router-dom": "^6.2.1" }, "devDependencies": { - "prettier": "^3.0.0" + "autoprefixer": "^10.4.8", + "postcss": "^8.4.16", + "tailwindcss": "^3.1.8" }, - "keywords": [ - "blockchain", - "ethereum", - "forge", - "foundry", - "smart-contracts", - "solidity", - "aragon", - "osx", - "dao", - "daobox" - ], - "private": true, + +>>>>>>> Incoming "scripts": { - "clean": "rm -rf cache out", - "build": "forge build", - "lint": "pnpm lint:sol && pnpm prettier:check", - "lint:sol": "forge fmt --check && pnpm solhint {script,src,test}/**/*.sol", - "prettier:check": "prettier --check **/*.{json,md,yml} --ignore-path=.prettierignore", - "prettier:write": "prettier --write **/*.{json,md,yml} --ignore-path=.prettierignore", - "test": "forge test -vvv", - "test:coverage": "forge coverage", - "test:coverage:report": "forge coverage --report lcov && genhtml lcov.info --branch-coverage --output-dir coverage" +<<<<<<< HEAD + "test": "echo \"Error: no test specified\" && exit 1" +======= + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + +>>>>>>> Incoming }, - "dependencies": { - "solhint": "^3.6.2" +<<<<<<< HEAD + "keywords": [], + "author": "pythonpete32", + "license": "ISC" +======= + "eslintConfig": { + "root": true + }, + "browserslist": { + "production": [">0.2%", "not dead", "not op_mini all"], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] } + +>>>>>>> Incoming } diff --git a/packages/.DS_Store b/packages/.DS_Store new file mode 100644 index 0000000..44602d9 Binary files /dev/null and b/packages/.DS_Store differ diff --git a/.env.example b/packages/contracts/.env.example similarity index 100% rename from .env.example rename to packages/contracts/.env.example diff --git a/.gitattributes b/packages/contracts/.gitattributes similarity index 100% rename from .gitattributes rename to packages/contracts/.gitattributes diff --git a/packages/contracts/.gitignore b/packages/contracts/.gitignore new file mode 100644 index 0000000..769b47c --- /dev/null +++ b/packages/contracts/.gitignore @@ -0,0 +1,18 @@ +# directories +cache +coverage +node_modules +out + +# files +*.env +*.log +.DS_Store +.pnp.* +lcov.info +yarn.lock + +# broadcasts +!broadcast +broadcast/* +broadcast/*/31337/ diff --git a/.prettierignore b/packages/contracts/.prettierignore similarity index 100% rename from .prettierignore rename to packages/contracts/.prettierignore diff --git a/.prettierrc.yml b/packages/contracts/.prettierrc.yml similarity index 100% rename from .prettierrc.yml rename to packages/contracts/.prettierrc.yml diff --git a/.solhint.json b/packages/contracts/.solhint.json similarity index 100% rename from .solhint.json rename to packages/contracts/.solhint.json diff --git a/foundry.toml b/packages/contracts/foundry.toml similarity index 100% rename from foundry.toml rename to packages/contracts/foundry.toml diff --git a/lib/BokkyPooBahsDateTimeLibrary b/packages/contracts/lib/BokkyPooBahsDateTimeLibrary similarity index 100% rename from lib/BokkyPooBahsDateTimeLibrary rename to packages/contracts/lib/BokkyPooBahsDateTimeLibrary diff --git a/lib/ens-contracts b/packages/contracts/lib/ens-contracts similarity index 100% rename from lib/ens-contracts rename to packages/contracts/lib/ens-contracts diff --git a/packages/contracts/lib/forge-std b/packages/contracts/lib/forge-std new file mode 160000 index 0000000..f73c73d --- /dev/null +++ b/packages/contracts/lib/forge-std @@ -0,0 +1 @@ +Subproject commit f73c73d2018eb6a111f35e4dae7b4f27401e9421 diff --git a/packages/contracts/lib/openzeppelin-contracts b/packages/contracts/lib/openzeppelin-contracts new file mode 160000 index 0000000..fd81a96 --- /dev/null +++ b/packages/contracts/lib/openzeppelin-contracts @@ -0,0 +1 @@ +Subproject commit fd81a96f01cc42ef1c9a5399364968d0e07e9e90 diff --git a/packages/contracts/lib/openzeppelin-contracts-upgradeable b/packages/contracts/lib/openzeppelin-contracts-upgradeable new file mode 160000 index 0000000..3d4c0d5 --- /dev/null +++ b/packages/contracts/lib/openzeppelin-contracts-upgradeable @@ -0,0 +1 @@ +Subproject commit 3d4c0d5741b131c231e558d7a6213392ab3672a5 diff --git a/packages/contracts/lib/osx b/packages/contracts/lib/osx new file mode 160000 index 0000000..c2be413 --- /dev/null +++ b/packages/contracts/lib/osx @@ -0,0 +1 @@ +Subproject commit c2be413a998c2995f4ed36ca648a5fd9b4284e77 diff --git a/packages/contracts/lib/prb-test b/packages/contracts/lib/prb-test new file mode 160000 index 0000000..2ece875 --- /dev/null +++ b/packages/contracts/lib/prb-test @@ -0,0 +1 @@ +Subproject commit 2ece8755d9afe7d66440ef9ca19b8a9dab40164b diff --git a/packages/contracts/out.sol b/packages/contracts/out.sol new file mode 100644 index 0000000..eb5ffd5 --- /dev/null +++ b/packages/contracts/out.sol @@ -0,0 +1,2716 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity >=0.8.17; + +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/UUPSUpgradeable.sol) + +// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol) + +/** + * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified + * proxy whose upgrades are fully controlled by the current implementation. + */ +interface IERC1822ProxiableUpgradeable { + /** + * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation + * address. + * + * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks + * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this + * function revert if invoked through a proxy. + */ + function proxiableUUID() external view returns (bytes32); +} + +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol) + +// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) + +/** + * @dev This is the interface that {BeaconProxy} expects of its beacon. + */ +interface IBeaconUpgradeable { + /** + * @dev Must return an address that can be used as a delegate call target. + * + * {BeaconProxy} will check that this address is a contract. + */ + function implementation() external view returns (address); +} + +// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol) + +/** + * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC. + * + * _Available since v4.8.3._ + */ +interface IERC1967Upgradeable { + /** + * @dev Emitted when the implementation is upgraded. + */ + event Upgraded(address indexed implementation); + + /** + * @dev Emitted when the admin account has changed. + */ + event AdminChanged(address previousAdmin, address newAdmin); + + /** + * @dev Emitted when the beacon is changed. + */ + event BeaconUpgraded(address indexed beacon); +} + +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol) + +/** + * @dev Collection of functions related to the address type + */ +library AddressUpgradeable { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * + * Furthermore, `isContract` will also return true if the target contract within + * the same transaction is already scheduled for destruction by `SELFDESTRUCT`, + * which only has an effect at the end of a transaction. + * ==== + * + * [IMPORTANT] + * ==== + * You shouldn't rely on `isContract` to protect against flash loan attacks! + * + * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets + * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract + * constructor. + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize/address.code.length, which returns 0 + // for contracts in construction, since the code is only stored at the end + // of the constructor execution. + + return account.code.length > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value, + string memory errorMessage + ) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + (bool success, bytes memory returndata) = target.call{value: value}(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data, + string memory errorMessage + ) internal view returns (bytes memory) { + (bool success, bytes memory returndata) = target.staticcall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + (bool success, bytes memory returndata) = target.delegatecall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling + * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. + * + * _Available since v4.8._ + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata, + string memory errorMessage + ) internal view returns (bytes memory) { + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + require(isContract(target), "Address: call to non-contract"); + } + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + /** + * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason or using the provided one. + * + * _Available since v4.3._ + */ + function verifyCallResult( + bool success, + bytes memory returndata, + string memory errorMessage + ) internal pure returns (bytes memory) { + if (success) { + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + function _revert(bytes memory returndata, string memory errorMessage) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } +} + +// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol) +// This file was procedurally generated from scripts/generate/templates/StorageSlot.js. + +/** + * @dev Library for reading and writing primitive types to specific storage slots. + * + * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. + * This library helps with reading and writing to such slots without the need for inline assembly. + * + * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. + * + * Example usage to set ERC1967 implementation slot: + * ```solidity + * contract ERC1967 { + * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + * + * function _getImplementation() internal view returns (address) { + * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; + * } + * + * function _setImplementation(address newImplementation) internal { + * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + * } + * } + * ``` + * + * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ + * _Available since v4.9 for `string`, `bytes`._ + */ +library StorageSlotUpgradeable { + struct AddressSlot { + address value; + } + + struct BooleanSlot { + bool value; + } + + struct Bytes32Slot { + bytes32 value; + } + + struct Uint256Slot { + uint256 value; + } + + struct StringSlot { + string value; + } + + struct BytesSlot { + bytes value; + } + + /** + * @dev Returns an `AddressSlot` with member `value` located at `slot`. + */ + function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BooleanSlot` with member `value` located at `slot`. + */ + function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. + */ + function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `Uint256Slot` with member `value` located at `slot`. + */ + function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `StringSlot` with member `value` located at `slot`. + */ + function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `StringSlot` representation of the string storage pointer `store`. + */ + function getStringSlot(string storage store) internal pure returns (StringSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } + + /** + * @dev Returns an `BytesSlot` with member `value` located at `slot`. + */ + function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := slot + } + } + + /** + * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`. + */ + function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) { + /// @solidity memory-safe-assembly + assembly { + r.slot := store.slot + } + } +} + +// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol) + +/** + * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed + * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an + * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer + * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. + * + * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be + * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in + * case an upgrade adds a module that needs to be initialized. + * + * For example: + * + * [.hljs-theme-light.nopadding] + * ```solidity + * contract MyToken is ERC20Upgradeable { + * function initialize() initializer public { + * __ERC20_init("MyToken", "MTK"); + * } + * } + * + * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { + * function initializeV2() reinitializer(2) public { + * __ERC20Permit_init("MyToken"); + * } + * } + * ``` + * + * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as + * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. + * + * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure + * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. + * + * [CAUTION] + * ==== + * Avoid leaving a contract uninitialized. + * + * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation + * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke + * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: + * + * [.hljs-theme-light.nopadding] + * ``` + * /// @custom:oz-upgrades-unsafe-allow constructor + * constructor() { + * _disableInitializers(); + * } + * ``` + * ==== + */ +abstract contract Initializable { + /** + * @dev Indicates that the contract has been initialized. + * @custom:oz-retyped-from bool + */ + uint8 private _initialized; + + /** + * @dev Indicates that the contract is in the process of being initialized. + */ + bool private _initializing; + + /** + * @dev Triggered when the contract has been initialized or reinitialized. + */ + event Initialized(uint8 version); + + /** + * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, + * `onlyInitializing` functions can be used to initialize parent contracts. + * + * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a + * constructor. + * + * Emits an {Initialized} event. + */ + modifier initializer() { + bool isTopLevelCall = !_initializing; + require( + (isTopLevelCall && _initialized < 1) || (!AddressUpgradeable.isContract(address(this)) && _initialized == 1), + "Initializable: contract is already initialized" + ); + _initialized = 1; + if (isTopLevelCall) { + _initializing = true; + } + _; + if (isTopLevelCall) { + _initializing = false; + emit Initialized(1); + } + } + + /** + * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the + * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be + * used to initialize parent contracts. + * + * A reinitializer may be used after the original initialization step. This is essential to configure modules that + * are added through upgrades and that require initialization. + * + * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` + * cannot be nested. If one is invoked in the context of another, execution will revert. + * + * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in + * a contract, executing them in the right order is up to the developer or operator. + * + * WARNING: setting the version to 255 will prevent any future reinitialization. + * + * Emits an {Initialized} event. + */ + modifier reinitializer(uint8 version) { + require(!_initializing && _initialized < version, "Initializable: contract is already initialized"); + _initialized = version; + _initializing = true; + _; + _initializing = false; + emit Initialized(version); + } + + /** + * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the + * {initializer} and {reinitializer} modifiers, directly or indirectly. + */ + modifier onlyInitializing() { + require(_initializing, "Initializable: contract is not initializing"); + _; + } + + /** + * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. + * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized + * to any version. It is recommended to use this to lock implementation contracts that are designed to be called + * through proxies. + * + * Emits an {Initialized} event the first time it is successfully executed. + */ + function _disableInitializers() internal virtual { + require(!_initializing, "Initializable: contract is initializing"); + if (_initialized != type(uint8).max) { + _initialized = type(uint8).max; + emit Initialized(type(uint8).max); + } + } + + /** + * @dev Returns the highest version that has been initialized. See {reinitializer}. + */ + function _getInitializedVersion() internal view returns (uint8) { + return _initialized; + } + + /** + * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}. + */ + function _isInitializing() internal view returns (bool) { + return _initializing; + } +} + +/** + * @dev This abstract contract provides getters and event emitting update functions for + * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. + * + * _Available since v4.1._ + */ +abstract contract ERC1967UpgradeUpgradeable is Initializable, IERC1967Upgradeable { + function __ERC1967Upgrade_init() internal onlyInitializing { + } + + function __ERC1967Upgrade_init_unchained() internal onlyInitializing { + } + // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 + bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; + + /** + * @dev Storage slot with the address of the current implementation. + * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is + * validated in the constructor. + */ + bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; + + /** + * @dev Returns the current implementation address. + */ + function _getImplementation() internal view returns (address) { + return StorageSlotUpgradeable.getAddressSlot(_IMPLEMENTATION_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 implementation slot. + */ + function _setImplementation(address newImplementation) private { + require(AddressUpgradeable.isContract(newImplementation), "ERC1967: new implementation is not a contract"); + StorageSlotUpgradeable.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; + } + + /** + * @dev Perform implementation upgrade + * + * Emits an {Upgraded} event. + */ + function _upgradeTo(address newImplementation) internal { + _setImplementation(newImplementation); + emit Upgraded(newImplementation); + } + + /** + * @dev Perform implementation upgrade with additional setup call. + * + * Emits an {Upgraded} event. + */ + function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal { + _upgradeTo(newImplementation); + if (data.length > 0 || forceCall) { + AddressUpgradeable.functionDelegateCall(newImplementation, data); + } + } + + /** + * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. + * + * Emits an {Upgraded} event. + */ + function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal { + // Upgrades from old implementations will perform a rollback test. This test requires the new + // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing + // this special case will break upgrade paths from old UUPS implementation to new ones. + if (StorageSlotUpgradeable.getBooleanSlot(_ROLLBACK_SLOT).value) { + _setImplementation(newImplementation); + } else { + try IERC1822ProxiableUpgradeable(newImplementation).proxiableUUID() returns (bytes32 slot) { + require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID"); + } catch { + revert("ERC1967Upgrade: new implementation is not UUPS"); + } + _upgradeToAndCall(newImplementation, data, forceCall); + } + } + + /** + * @dev Storage slot with the admin of the contract. + * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is + * validated in the constructor. + */ + bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; + + /** + * @dev Returns the current admin. + */ + function _getAdmin() internal view returns (address) { + return StorageSlotUpgradeable.getAddressSlot(_ADMIN_SLOT).value; + } + + /** + * @dev Stores a new address in the EIP1967 admin slot. + */ + function _setAdmin(address newAdmin) private { + require(newAdmin != address(0), "ERC1967: new admin is the zero address"); + StorageSlotUpgradeable.getAddressSlot(_ADMIN_SLOT).value = newAdmin; + } + + /** + * @dev Changes the admin of the proxy. + * + * Emits an {AdminChanged} event. + */ + function _changeAdmin(address newAdmin) internal { + emit AdminChanged(_getAdmin(), newAdmin); + _setAdmin(newAdmin); + } + + /** + * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. + * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. + */ + bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; + + /** + * @dev Returns the current beacon. + */ + function _getBeacon() internal view returns (address) { + return StorageSlotUpgradeable.getAddressSlot(_BEACON_SLOT).value; + } + + /** + * @dev Stores a new beacon in the EIP1967 beacon slot. + */ + function _setBeacon(address newBeacon) private { + require(AddressUpgradeable.isContract(newBeacon), "ERC1967: new beacon is not a contract"); + require( + AddressUpgradeable.isContract(IBeaconUpgradeable(newBeacon).implementation()), + "ERC1967: beacon implementation is not a contract" + ); + StorageSlotUpgradeable.getAddressSlot(_BEACON_SLOT).value = newBeacon; + } + + /** + * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does + * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). + * + * Emits a {BeaconUpgraded} event. + */ + function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal { + _setBeacon(newBeacon); + emit BeaconUpgraded(newBeacon); + if (data.length > 0 || forceCall) { + AddressUpgradeable.functionDelegateCall(IBeaconUpgradeable(newBeacon).implementation(), data); + } + } + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[50] private __gap; +} + +/** + * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an + * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. + * + * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is + * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing + * `UUPSUpgradeable` with a custom implementation of upgrades. + * + * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. + * + * _Available since v4.1._ + */ +abstract contract UUPSUpgradeable is Initializable, IERC1822ProxiableUpgradeable, ERC1967UpgradeUpgradeable { + function __UUPSUpgradeable_init() internal onlyInitializing { + } + + function __UUPSUpgradeable_init_unchained() internal onlyInitializing { + } + /// @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment + address private immutable __self = address(this); + + /** + * @dev Check that the execution is being performed through a delegatecall call and that the execution context is + * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case + * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a + * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to + * fail. + */ + modifier onlyProxy() { + require(address(this) != __self, "Function must be called through delegatecall"); + require(_getImplementation() == __self, "Function must be called through active proxy"); + _; + } + + /** + * @dev Check that the execution is not being performed through a delegate call. This allows a function to be + * callable on the implementing contract but not through proxies. + */ + modifier notDelegated() { + require(address(this) == __self, "UUPSUpgradeable: must not be called through delegatecall"); + _; + } + + /** + * @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the + * implementation. It is used to validate the implementation's compatibility when performing an upgrade. + * + * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks + * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this + * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier. + */ + function proxiableUUID() external view virtual override notDelegated returns (bytes32) { + return _IMPLEMENTATION_SLOT; + } + + /** + * @dev Upgrade the implementation of the proxy to `newImplementation`. + * + * Calls {_authorizeUpgrade}. + * + * Emits an {Upgraded} event. + * + * @custom:oz-upgrades-unsafe-allow-reachable delegatecall + */ + function upgradeTo(address newImplementation) public virtual onlyProxy { + _authorizeUpgrade(newImplementation); + _upgradeToAndCallUUPS(newImplementation, new bytes(0), false); + } + + /** + * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call + * encoded in `data`. + * + * Calls {_authorizeUpgrade}. + * + * Emits an {Upgraded} event. + * + * @custom:oz-upgrades-unsafe-allow-reachable delegatecall + */ + function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy { + _authorizeUpgrade(newImplementation); + _upgradeToAndCallUUPS(newImplementation, data, true); + } + + /** + * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by + * {upgradeTo} and {upgradeToAndCall}. + * + * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}. + * + * ```solidity + * function _authorizeUpgrade(address) internal override onlyOwner {} + * ``` + */ + function _authorizeUpgrade(address newImplementation) internal virtual; + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[50] private __gap; +} + +// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) + +// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) + +/** + * @dev Interface of the ERC165 standard, as defined in the + * https://eips.ethereum.org/EIPS/eip-165[EIP]. + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others ({ERC165Checker}). + * + * For an implementation, see {ERC165}. + */ +interface IERC165Upgradeable { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + +/** + * @dev Implementation of the {IERC165} interface. + * + * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check + * for the additional interface id that will be supported. For example: + * + * ```solidity + * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); + * } + * ``` + * + * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. + */ +abstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable { + function __ERC165_init() internal onlyInitializing { + } + + function __ERC165_init_unchained() internal onlyInitializing { + } + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return interfaceId == type(IERC165Upgradeable).interfaceId; + } + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[50] private __gap; +} + +/// @title IProtocolVersion +/// @author Aragon Association - 2022-2023 +/// @notice An interface defining the semantic Aragon OSx protocol version number. +/// @custom:security-contact sirt@aragon.org +interface IProtocolVersion { + /// @notice Returns the semantic Aragon OSx protocol version number that the implementing contract is associated with. + /// @return _version Returns the semantic Aragon OSx protocol version number. + /// @dev This version number is not to be confused with the `release` and `build` numbers found in the `Version.Tag` struct inside the `PluginRepo` contract being used to version plugin setup and associated plugin implementation contracts. + function protocolVersion() external view returns (uint8[3] memory _version); +} + +/// @title ProtocolVersion +/// @author Aragon Association - 2023 +/// @notice An abstract, stateless, non-upgradeable contract providing the current Aragon OSx protocol version number. +/// @dev Do not add any new variables to this contract that would shift down storage in the inheritance chain. +/// @custom:security-contact sirt@aragon.org +abstract contract ProtocolVersion is IProtocolVersion { + // IMPORTANT: Do not add any storage variable, see the above notice. + + /// @inheritdoc IProtocolVersion + function protocolVersion() public pure returns (uint8[3] memory) { + return [1, 4, 0]; + } +} + +/// @title IDAO +/// @author Aragon Association - 2022-2023 +/// @notice The interface required for DAOs within the Aragon App DAO framework. +/// @custom:security-contact sirt@aragon.org +interface IDAO { + /// @notice The action struct to be consumed by the DAO's `execute` function resulting in an external call. + /// @param to The address to call. + /// @param value The native token value to be sent with the call. + /// @param data The bytes-encoded function selector and calldata for the call. + struct Action { + address to; + uint256 value; + bytes data; + } + + /// @notice Checks if an address has permission on a contract via a permission identifier and considers if `ANY_ADDRESS` was used in the granting process. + /// @param _where The address of the contract. + /// @param _who The address of a EOA or contract to give the permissions. + /// @param _permissionId The permission identifier. + /// @param _data The optional data passed to the `PermissionCondition` registered. + /// @return Returns true if the address has permission, false if not. + function hasPermission( + address _where, + address _who, + bytes32 _permissionId, + bytes memory _data + ) external view returns (bool); + + /// @notice Updates the DAO metadata (e.g., an IPFS hash). + /// @param _metadata The IPFS hash of the new metadata object. + function setMetadata(bytes calldata _metadata) external; + + /// @notice Emitted when the DAO metadata is updated. + /// @param metadata The IPFS hash of the new metadata object. + event MetadataSet(bytes metadata); + + /// @notice 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. + /// @param _callId 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. + /// @param _actions The array of actions. + /// @param _allowFailureMap 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. + /// @return The array of results obtained from the executed actions in `bytes`. + /// @return The resulting failure map containing the actions have actually failed. + function execute( + bytes32 _callId, + Action[] memory _actions, + uint256 _allowFailureMap + ) external returns (bytes[] memory, uint256); + + /// @notice Emitted when a proposal is executed. + /// @param actor The address of the caller. + /// @param callId The ID of the call. + /// @param actions The array of actions executed. + /// @param allowFailureMap The allow failure map encoding which actions are allowed to fail. + /// @param failureMap The failure map encoding which actions have failed. + /// @param execResults The array with the results of the executed actions. + /// @dev The value of `callId` is defined by the component/contract calling the execute function. A `Plugin` implementation can use it, for example, as a nonce. + event Executed( + address indexed actor, + bytes32 callId, + Action[] actions, + uint256 allowFailureMap, + uint256 failureMap, + bytes[] execResults + ); + + /// @notice Emitted when a standard callback is registered. + /// @param interfaceId The ID of the interface. + /// @param callbackSelector The selector of the callback function. + /// @param magicNumber The magic number to be registered for the callback function selector. + event StandardCallbackRegistered( + bytes4 interfaceId, + bytes4 callbackSelector, + bytes4 magicNumber + ); + + /// @notice Deposits (native) tokens to the DAO contract with a reference string. + /// @param _token The address of the token or address(0) in case of the native token. + /// @param _amount The amount of tokens to deposit. + /// @param _reference The reference describing the deposit reason. + function deposit(address _token, uint256 _amount, string calldata _reference) external payable; + + /// @notice Emitted when a token deposit has been made to the DAO. + /// @param sender The address of the sender. + /// @param token The address of the deposited token. + /// @param amount The amount of tokens deposited. + /// @param _reference The reference describing the deposit reason. + event Deposited( + address indexed sender, + address indexed token, + uint256 amount, + string _reference + ); + + /// @notice Emitted when a native token deposit has been made to the DAO. + /// @dev This event is intended to be emitted in the `receive` function and is therefore bound by the gas limitations for `send`/`transfer` calls introduced by [ERC-2929](https://eips.ethereum.org/EIPS/eip-2929). + /// @param sender The address of the sender. + /// @param amount The amount of native tokens deposited. + event NativeTokenDeposited(address sender, uint256 amount); + + /// @notice Setter for the trusted forwarder verifying the meta transaction. + /// @param _trustedForwarder The trusted forwarder address. + function setTrustedForwarder(address _trustedForwarder) external; + + /// @notice Getter for the trusted forwarder verifying the meta transaction. + /// @return The trusted forwarder address. + function getTrustedForwarder() external view returns (address); + + /// @notice Emitted when a new TrustedForwarder is set on the DAO. + /// @param forwarder the new forwarder address. + event TrustedForwarderSet(address forwarder); + + /// @notice Checks whether a signature is valid for a provided hash according to [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271). + /// @param _hash The hash of the data to be signed. + /// @param _signature The signature byte array associated with `_hash`. + /// @return Returns the `bytes4` magic value `0x1626ba7e` if the signature is valid and `0xffffffff` if not. + function isValidSignature(bytes32 _hash, bytes memory _signature) external returns (bytes4); + + /// @notice 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. + /// @param _interfaceId The ID of the interface. + /// @param _callbackSelector The selector of the callback function. + /// @param _magicNumber The magic number to be registered for the function signature. + function registerStandardCallback( + bytes4 _interfaceId, + bytes4 _callbackSelector, + bytes4 _magicNumber + ) external; + + /// @notice Removed function being left here to not corrupt the IDAO interface ID. Any call will revert. + /// @dev Introduced in v1.0.0. Removed in v1.4.0. + function setSignatureValidator(address) external; +} + +// OpenZeppelin Contracts v4.4.1 (utils/Context.sol) + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract ContextUpgradeable is Initializable { + function __Context_init() internal onlyInitializing { + } + + function __Context_init_unchained() internal onlyInitializing { + } + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } + + /** + * @dev This empty reserved space is put in place to allow future versions to add new + * variables without shifting down storage in the inheritance chain. + * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps + */ + uint256[50] private __gap; +} + +/// @notice Thrown if a call is unauthorized in the associated DAO. +/// @param dao The associated DAO. +/// @param where The context in which the authorization reverted. +/// @param who The address (EOA or contract) missing the permission. +/// @param permissionId The permission identifier. +error DaoUnauthorized(address dao, address where, address who, bytes32 permissionId); + +/// @notice A free function checking if a caller is granted permissions on a target contract via a permission identifier that redirects the approval to a `PermissionCondition` if this was specified in the setup. +/// @param _where The address of the target contract for which `who` receives permission. +/// @param _who The address (EOA or contract) owning the permission. +/// @param _permissionId The permission identifier. +/// @param _data The optional data passed to the `PermissionCondition` registered. +/// @custom:security-contact sirt@aragon.org +function _auth( + IDAO _dao, + address _where, + address _who, + bytes32 _permissionId, + bytes calldata _data +) view { + if (!_dao.hasPermission(_where, _who, _permissionId, _data)) + revert DaoUnauthorized({ + dao: address(_dao), + where: _where, + who: _who, + permissionId: _permissionId + }); +} + +/// @title DaoAuthorizableUpgradeable +/// @author Aragon Association - 2022-2023 +/// @notice An abstract contract providing a meta-transaction compatible modifier for upgradeable or cloneable contracts to authorize function calls through an associated DAO. +/// @dev Make sure to call `__DaoAuthorizableUpgradeable_init` during initialization of the inheriting contract. +/// @custom:security-contact sirt@aragon.org +abstract contract DaoAuthorizableUpgradeable is ContextUpgradeable { + /// @notice The associated DAO managing the permissions of inheriting contracts. + IDAO private dao_; + + /// @notice Initializes the contract by setting the associated DAO. + /// @param _dao The associated DAO address. + function __DaoAuthorizableUpgradeable_init(IDAO _dao) internal onlyInitializing { + dao_ = _dao; + } + + /// @notice Returns the DAO contract. + /// @return The DAO contract. + function dao() public view returns (IDAO) { + return dao_; + } + + /// @notice A modifier to make functions on inheriting contracts authorized. Permissions to call the function are checked through the associated DAO's permission manager. + /// @param _permissionId The permission identifier required to call the method this modifier is applied to. + modifier auth(bytes32 _permissionId) { + _auth(dao_, address(this), _msgSender(), _permissionId, _msgData()); + _; + } + + /// @notice This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain (see [OpenZeppelin's guide about storage gaps](https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps)). + uint256[49] private __gap; +} + +/// @title IPlugin +/// @author Aragon Association - 2022-2023 +/// @notice An interface defining the traits of a plugin. +/// @custom:security-contact sirt@aragon.org +interface IPlugin { + enum PluginType { + UUPS, + Cloneable, + Constructable + } + + /// @notice Returns the plugin's type + function pluginType() external view returns (PluginType); +} + +/// @title PluginUUPSUpgradeable +/// @author Aragon Association - 2022-2023 +/// @notice An abstract, upgradeable contract to inherit from when creating a plugin being deployed via the UUPS pattern (see [ERC-1822](https://eips.ethereum.org/EIPS/eip-1822)). +/// @custom:security-contact sirt@aragon.org +abstract contract PluginUUPSUpgradeable is + IPlugin, + ERC165Upgradeable, + UUPSUpgradeable, + DaoAuthorizableUpgradeable, + ProtocolVersion +{ + // NOTE: When adding new state variables to the contract, the size of `_gap` has to be adapted below as well. + + /// @notice Disables the initializers on the implementation contract to prevent it from being left uninitialized. + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + /// @inheritdoc IPlugin + function pluginType() public pure override returns (PluginType) { + return PluginType.UUPS; + } + + /// @notice The ID of the permission required to call the `_authorizeUpgrade` function. + bytes32 public constant UPGRADE_PLUGIN_PERMISSION_ID = keccak256("UPGRADE_PLUGIN_PERMISSION"); + + /// @notice Initializes the plugin by storing the associated DAO. + /// @param _dao The DAO contract. + function __PluginUUPSUpgradeable_init(IDAO _dao) internal virtual onlyInitializing { + __DaoAuthorizableUpgradeable_init(_dao); + } + + /// @notice Checks if an interface is supported by this or its parent contract. + /// @param _interfaceId The ID of the interface. + /// @return Returns `true` if the interface is supported. + function supportsInterface(bytes4 _interfaceId) public view virtual override returns (bool) { + return + _interfaceId == type(IPlugin).interfaceId || + _interfaceId == type(IProtocolVersion).interfaceId || + _interfaceId == type(IERC1822ProxiableUpgradeable).interfaceId || + super.supportsInterface(_interfaceId); + } + + /// @notice Returns the address of the implementation contract in the [proxy storage slot](https://eips.ethereum.org/EIPS/eip-1967) slot the [UUPS proxy](https://eips.ethereum.org/EIPS/eip-1822) is pointing to. + /// @return The address of the implementation contract. + function implementation() public view returns (address) { + return _getImplementation(); + } + + /// @notice 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)). + /// @dev The caller must have the `UPGRADE_PLUGIN_PERMISSION_ID` permission. + function _authorizeUpgrade( + address + ) internal virtual override auth(UPGRADE_PLUGIN_PERMISSION_ID) {} + + /// @notice This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain (see [OpenZeppelin's guide about storage gaps](https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps)). + uint256[50] private __gap; +} + +// OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) + +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); + + /** + * @dev Returns the amount of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the amount of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves `amount` tokens from the caller's account to `to`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address to, uint256 amount) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 amount) external returns (bool); + + /** + * @dev Moves `amount` tokens from `from` to `to` using the + * allowance mechanism. `amount` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 amount) external returns (bool); +} + +// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol) + +// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol) + +/** + * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in + * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. + * + * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by + * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't + * need to send a transaction, and thus is not required to hold Ether at all. + */ +interface IERC20Permit { + /** + * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, + * given ``owner``'s signed approval. + * + * IMPORTANT: The same issues {IERC20-approve} has related to transaction + * ordering also apply here. + * + * Emits an {Approval} event. + * + * Requirements: + * + * - `spender` cannot be the zero address. + * - `deadline` must be a timestamp in the future. + * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` + * over the EIP712-formatted function arguments. + * - the signature must use ``owner``'s current nonce (see {nonces}). + * + * For more information on the signature format, see the + * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP + * section]. + */ + function permit( + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) external; + + /** + * @dev Returns the current nonce for `owner`. This value must be + * included whenever a signature is generated for {permit}. + * + * Every successful call to {permit} increases ``owner``'s nonce by one. This + * prevents a signature from being used multiple times. + */ + function nonces(address owner) external view returns (uint256); + + /** + * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. + */ + // solhint-disable-next-line func-name-mixedcase + function DOMAIN_SEPARATOR() external view returns (bytes32); +} + +// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol) + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * + * Furthermore, `isContract` will also return true if the target contract within + * the same transaction is already scheduled for destruction by `SELFDESTRUCT`, + * which only has an effect at the end of a transaction. + * ==== + * + * [IMPORTANT] + * ==== + * You shouldn't rely on `isContract` to protect against flash loan attacks! + * + * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets + * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract + * constructor. + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize/address.code.length, which returns 0 + // for contracts in construction, since the code is only stored at the end + // of the constructor execution. + + return account.code.length > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + (bool success, ) = recipient.call{value: amount}(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain `call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue( + address target, + bytes memory data, + uint256 value, + string memory errorMessage + ) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + (bool success, bytes memory returndata) = target.call{value: value}(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall( + address target, + bytes memory data, + string memory errorMessage + ) internal view returns (bytes memory) { + (bool success, bytes memory returndata) = target.staticcall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall( + address target, + bytes memory data, + string memory errorMessage + ) internal returns (bytes memory) { + (bool success, bytes memory returndata) = target.delegatecall(data); + return verifyCallResultFromTarget(target, success, returndata, errorMessage); + } + + /** + * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling + * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. + * + * _Available since v4.8._ + */ + function verifyCallResultFromTarget( + address target, + bool success, + bytes memory returndata, + string memory errorMessage + ) internal view returns (bytes memory) { + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty + // otherwise we already know that it was a contract + require(isContract(target), "Address: call to non-contract"); + } + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + /** + * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the + * revert reason or using the provided one. + * + * _Available since v4.3._ + */ + function verifyCallResult( + bool success, + bytes memory returndata, + string memory errorMessage + ) internal pure returns (bytes memory) { + if (success) { + return returndata; + } else { + _revert(returndata, errorMessage); + } + } + + function _revert(bytes memory returndata, string memory errorMessage) private pure { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + /// @solidity memory-safe-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } +} + +/** + * @title SafeERC20 + * @dev Wrappers around ERC20 operations that throw on failure (when the token + * contract returns false). Tokens that return no value (and instead revert or + * throw on failure) are also supported, non-reverting calls are assumed to be + * successful. + * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, + * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. + */ +library SafeERC20 { + using Address for address; + + /** + * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeTransfer(IERC20 token, address to, uint256 value) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); + } + + /** + * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the + * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful. + */ + function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { + _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); + } + + /** + * @dev Deprecated. This function has issues similar to the ones found in + * {IERC20-approve}, and its usage is discouraged. + * + * Whenever possible, use {safeIncreaseAllowance} and + * {safeDecreaseAllowance} instead. + */ + function safeApprove(IERC20 token, address spender, uint256 value) internal { + // safeApprove should only be called when setting an initial allowance, + // or when resetting it to zero. To increase and decrease it, use + // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' + require( + (value == 0) || (token.allowance(address(this), spender) == 0), + "SafeERC20: approve from non-zero to non-zero allowance" + ); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); + } + + /** + * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { + uint256 oldAllowance = token.allowance(address(this), spender); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value)); + } + + /** + * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. + */ + function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { + unchecked { + uint256 oldAllowance = token.allowance(address(this), spender); + require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value)); + } + } + + /** + * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value, + * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval + * to be set to zero before setting it to a non-zero value, such as USDT. + */ + function forceApprove(IERC20 token, address spender, uint256 value) internal { + bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value); + + if (!_callOptionalReturnBool(token, approvalCall)) { + _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0)); + _callOptionalReturn(token, approvalCall); + } + } + + /** + * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`. + * Revert on invalid signature. + */ + function safePermit( + IERC20Permit token, + address owner, + address spender, + uint256 value, + uint256 deadline, + uint8 v, + bytes32 r, + bytes32 s + ) internal { + uint256 nonceBefore = token.nonces(owner); + token.permit(owner, spender, value, deadline, v, r, s); + uint256 nonceAfter = token.nonces(owner); + require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed"); + } + + /** + * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement + * on the return value: the return value is optional (but if data is returned, it must not be false). + * @param token The token targeted by the call. + * @param data The call data (encoded using abi.encode or one of its variants). + */ + function _callOptionalReturn(IERC20 token, bytes memory data) private { + // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since + // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that + // the target address contains contract code and also asserts for success in the low-level call. + + bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); + require(returndata.length == 0 || abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); + } + + /** + * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement + * on the return value: the return value is optional (but if data is returned, it must not be false). + * @param token The token targeted by the call. + * @param data The call data (encoded using abi.encode or one of its variants). + * + * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead. + */ + function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) { + // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since + // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false + // and not revert is the subcall reverts. + + (bool success, bytes memory returndata) = address(token).call(data); + return + success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token)); + } +} + +// Formal verification for library and formula: https://twitter.com/Zellic_io/status/1510341868021854209 + +// ---------------------------------------------------------------------------- +// BokkyPooBah's DateTime Library v1.01 +// +// A gas-efficient Solidity date and time library +// +// https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary +// +// Tested date range 1970/01/01 to 2345/12/31 +// +// Conventions: +// Unit | Range | Notes +// :-------- |:-------------:|:----- +// timestamp | >= 0 | Unix timestamp, number of seconds since 1970/01/01 00:00:00 UTC +// year | 1970 ... 2345 | +// month | 1 ... 12 | +// day | 1 ... 31 | +// hour | 0 ... 23 | +// minute | 0 ... 59 | +// second | 0 ... 59 | +// dayOfWeek | 1 ... 7 | 1 = Monday, ..., 7 = Sunday +// +// +// Enjoy. (c) BokkyPooBah / Bok Consulting Pty Ltd 2018-2019. The MIT Licence. +// ---------------------------------------------------------------------------- + +library BokkyPooBahsDateTimeLibrary { + + uint constant SECONDS_PER_DAY = 24 * 60 * 60; + uint constant SECONDS_PER_HOUR = 60 * 60; + uint constant SECONDS_PER_MINUTE = 60; + int constant OFFSET19700101 = 2440588; + + uint constant DOW_MON = 1; + uint constant DOW_TUE = 2; + uint constant DOW_WED = 3; + uint constant DOW_THU = 4; + uint constant DOW_FRI = 5; + uint constant DOW_SAT = 6; + uint constant DOW_SUN = 7; + + // ------------------------------------------------------------------------ + // Calculate the number of days from 1970/01/01 to year/month/day using + // the date conversion algorithm from + // https://aa.usno.navy.mil/faq/JD_formula.html + // and subtracting the offset 2440588 so that 1970/01/01 is day 0 + // + // days = day + // - 32075 + // + 1461 * (year + 4800 + (month - 14) / 12) / 4 + // + 367 * (month - 2 - (month - 14) / 12 * 12) / 12 + // - 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4 + // - offset + // ------------------------------------------------------------------------ + function _daysFromDate(uint year, uint month, uint day) internal pure returns (uint _days) { + require(year >= 1970); + int _year = int(year); + int _month = int(month); + int _day = int(day); + + int __days = _day + - 32075 + + 1461 * (_year + 4800 + (_month - 14) / 12) / 4 + + 367 * (_month - 2 - (_month - 14) / 12 * 12) / 12 + - 3 * ((_year + 4900 + (_month - 14) / 12) / 100) / 4 + - OFFSET19700101; + + _days = uint(__days); + } + + // ------------------------------------------------------------------------ + // Calculate year/month/day from the number of days since 1970/01/01 using + // the date conversion algorithm from + // http://aa.usno.navy.mil/faq/docs/JD_Formula.php + // and adding the offset 2440588 so that 1970/01/01 is day 0 + // + // int L = days + 68569 + offset + // int N = 4 * L / 146097 + // L = L - (146097 * N + 3) / 4 + // year = 4000 * (L + 1) / 1461001 + // L = L - 1461 * year / 4 + 31 + // month = 80 * L / 2447 + // dd = L - 2447 * month / 80 + // L = month / 11 + // month = month + 2 - 12 * L + // year = 100 * (N - 49) + year + L + // ------------------------------------------------------------------------ + function _daysToDate(uint _days) internal pure returns (uint year, uint month, uint day) { + int __days = int(_days); + + int L = __days + 68569 + OFFSET19700101; + int N = 4 * L / 146097; + L = L - (146097 * N + 3) / 4; + int _year = 4000 * (L + 1) / 1461001; + L = L - 1461 * _year / 4 + 31; + int _month = 80 * L / 2447; + int _day = L - 2447 * _month / 80; + L = _month / 11; + _month = _month + 2 - 12 * L; + _year = 100 * (N - 49) + _year + L; + + year = uint(_year); + month = uint(_month); + day = uint(_day); + } + + function timestampFromDate(uint year, uint month, uint day) internal pure returns (uint timestamp) { + timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY; + } + function timestampFromDateTime(uint year, uint month, uint day, uint hour, uint minute, uint second) internal pure returns (uint timestamp) { + timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + hour * SECONDS_PER_HOUR + minute * SECONDS_PER_MINUTE + second; + } + function timestampToDate(uint timestamp) internal pure returns (uint year, uint month, uint day) { + (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY); + } + function timestampToDateTime(uint timestamp) internal pure returns (uint year, uint month, uint day, uint hour, uint minute, uint second) { + (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY); + uint secs = timestamp % SECONDS_PER_DAY; + hour = secs / SECONDS_PER_HOUR; + secs = secs % SECONDS_PER_HOUR; + minute = secs / SECONDS_PER_MINUTE; + second = secs % SECONDS_PER_MINUTE; + } + + function isValidDate(uint year, uint month, uint day) internal pure returns (bool valid) { + if (year >= 1970 && month > 0 && month <= 12) { + uint daysInMonth = _getDaysInMonth(year, month); + if (day > 0 && day <= daysInMonth) { + valid = true; + } + } + } + function isValidDateTime(uint year, uint month, uint day, uint hour, uint minute, uint second) internal pure returns (bool valid) { + if (isValidDate(year, month, day)) { + if (hour < 24 && minute < 60 && second < 60) { + valid = true; + } + } + } + function isLeapYear(uint timestamp) internal pure returns (bool leapYear) { + (uint year,,) = _daysToDate(timestamp / SECONDS_PER_DAY); + leapYear = _isLeapYear(year); + } + function _isLeapYear(uint year) internal pure returns (bool leapYear) { + leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); + } + function isWeekDay(uint timestamp) internal pure returns (bool weekDay) { + weekDay = getDayOfWeek(timestamp) <= DOW_FRI; + } + function isWeekEnd(uint timestamp) internal pure returns (bool weekEnd) { + weekEnd = getDayOfWeek(timestamp) >= DOW_SAT; + } + function getDaysInMonth(uint timestamp) internal pure returns (uint daysInMonth) { + (uint year, uint month,) = _daysToDate(timestamp / SECONDS_PER_DAY); + daysInMonth = _getDaysInMonth(year, month); + } + function _getDaysInMonth(uint year, uint month) internal pure returns (uint daysInMonth) { + if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { + daysInMonth = 31; + } else if (month != 2) { + daysInMonth = 30; + } else { + daysInMonth = _isLeapYear(year) ? 29 : 28; + } + } + // 1 = Monday, 7 = Sunday + function getDayOfWeek(uint timestamp) internal pure returns (uint dayOfWeek) { + uint _days = timestamp / SECONDS_PER_DAY; + dayOfWeek = (_days + 3) % 7 + 1; + } + + function getYear(uint timestamp) internal pure returns (uint year) { + (year,,) = _daysToDate(timestamp / SECONDS_PER_DAY); + } + function getMonth(uint timestamp) internal pure returns (uint month) { + (,month,) = _daysToDate(timestamp / SECONDS_PER_DAY); + } + function getDay(uint timestamp) internal pure returns (uint day) { + (,,day) = _daysToDate(timestamp / SECONDS_PER_DAY); + } + function getHour(uint timestamp) internal pure returns (uint hour) { + uint secs = timestamp % SECONDS_PER_DAY; + hour = secs / SECONDS_PER_HOUR; + } + function getMinute(uint timestamp) internal pure returns (uint minute) { + uint secs = timestamp % SECONDS_PER_HOUR; + minute = secs / SECONDS_PER_MINUTE; + } + function getSecond(uint timestamp) internal pure returns (uint second) { + second = timestamp % SECONDS_PER_MINUTE; + } + + function addYears(uint timestamp, uint _years) internal pure returns (uint newTimestamp) { + (uint year, uint month, uint day) = _daysToDate(timestamp / SECONDS_PER_DAY); + year += _years; + uint daysInMonth = _getDaysInMonth(year, month); + if (day > daysInMonth) { + day = daysInMonth; + } + newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY; + require(newTimestamp >= timestamp); + } + function addMonths(uint timestamp, uint _months) internal pure returns (uint newTimestamp) { + (uint year, uint month, uint day) = _daysToDate(timestamp / SECONDS_PER_DAY); + month += _months; + year += (month - 1) / 12; + month = (month - 1) % 12 + 1; + uint daysInMonth = _getDaysInMonth(year, month); + if (day > daysInMonth) { + day = daysInMonth; + } + newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY; + require(newTimestamp >= timestamp); + } + function addDays(uint timestamp, uint _days) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp + _days * SECONDS_PER_DAY; + require(newTimestamp >= timestamp); + } + function addHours(uint timestamp, uint _hours) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp + _hours * SECONDS_PER_HOUR; + require(newTimestamp >= timestamp); + } + function addMinutes(uint timestamp, uint _minutes) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp + _minutes * SECONDS_PER_MINUTE; + require(newTimestamp >= timestamp); + } + function addSeconds(uint timestamp, uint _seconds) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp + _seconds; + require(newTimestamp >= timestamp); + } + + function subYears(uint timestamp, uint _years) internal pure returns (uint newTimestamp) { + (uint year, uint month, uint day) = _daysToDate(timestamp / SECONDS_PER_DAY); + year -= _years; + uint daysInMonth = _getDaysInMonth(year, month); + if (day > daysInMonth) { + day = daysInMonth; + } + newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY; + require(newTimestamp <= timestamp); + } + function subMonths(uint timestamp, uint _months) internal pure returns (uint newTimestamp) { + (uint year, uint month, uint day) = _daysToDate(timestamp / SECONDS_PER_DAY); + uint yearMonth = year * 12 + (month - 1) - _months; + year = yearMonth / 12; + month = yearMonth % 12 + 1; + uint daysInMonth = _getDaysInMonth(year, month); + if (day > daysInMonth) { + day = daysInMonth; + } + newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + timestamp % SECONDS_PER_DAY; + require(newTimestamp <= timestamp); + } + function subDays(uint timestamp, uint _days) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp - _days * SECONDS_PER_DAY; + require(newTimestamp <= timestamp); + } + function subHours(uint timestamp, uint _hours) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp - _hours * SECONDS_PER_HOUR; + require(newTimestamp <= timestamp); + } + function subMinutes(uint timestamp, uint _minutes) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp - _minutes * SECONDS_PER_MINUTE; + require(newTimestamp <= timestamp); + } + function subSeconds(uint timestamp, uint _seconds) internal pure returns (uint newTimestamp) { + newTimestamp = timestamp - _seconds; + require(newTimestamp <= timestamp); + } + + function diffYears(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _years) { + require(fromTimestamp <= toTimestamp); + (uint fromYear,,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY); + (uint toYear,,) = _daysToDate(toTimestamp / SECONDS_PER_DAY); + _years = toYear - fromYear; + } + function diffMonths(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _months) { + require(fromTimestamp <= toTimestamp); + (uint fromYear, uint fromMonth,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY); + (uint toYear, uint toMonth,) = _daysToDate(toTimestamp / SECONDS_PER_DAY); + _months = toYear * 12 + toMonth - fromYear * 12 - fromMonth; + } + function diffDays(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _days) { + require(fromTimestamp <= toTimestamp); + _days = (toTimestamp - fromTimestamp) / SECONDS_PER_DAY; + } + function diffHours(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _hours) { + require(fromTimestamp <= toTimestamp); + _hours = (toTimestamp - fromTimestamp) / SECONDS_PER_HOUR; + } + function diffMinutes(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _minutes) { + require(fromTimestamp <= toTimestamp); + _minutes = (toTimestamp - fromTimestamp) / SECONDS_PER_MINUTE; + } + function diffSeconds(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _seconds) { + require(fromTimestamp <= toTimestamp); + _seconds = toTimestamp - fromTimestamp; + } +} + +type EncodedTimeShift is bytes6; + +struct TimeShift { + TimeShiftLib.TimeUnit unit; + int40 offset; +} + +function encode(TimeShift memory shift) pure returns (EncodedTimeShift) { + return EncodedTimeShift.wrap(bytes6(abi.encodePacked(uint8(shift.unit), shift.offset))); +} + +function decode(EncodedTimeShift encoded) pure returns (TimeShiftLib.TimeUnit unit, int40 offset) { + uint48 encodedValue = uint48(EncodedTimeShift.unwrap(encoded)); + unit = TimeShiftLib.TimeUnit(uint8(encodedValue >> 40)); + offset = int40(uint40(uint48(encodedValue))); +} + +// Note this is an efficient way to check for inherited time shifts +// Even if an offset is specified, it will be ignored, but it is still +// considered an inherited time shift +function isInherited(EncodedTimeShift encoded) pure returns (bool) { + return EncodedTimeShift.unwrap(encoded) < 0x010000000000; +} + +// Note this is an efficient way to check for non-recurrent time shifts +// Any value lower than 0x070000000000 is a recurrent time shift +function isNonRecurrent(EncodedTimeShift encoded) pure returns (bool) { + return EncodedTimeShift.unwrap(encoded) > 0x06ffffffffff; +} + +using { decode, isInherited, isNonRecurrent } for EncodedTimeShift global; +using { encode } for TimeShift global; + +library TimeShiftLib { + using TimeShiftLib for *; + + enum TimeUnit { + Inherit, + Daily, // 1 + Weekly, // 2 + Monthly, // 3 + Quarterly, // 4 + Semiyearly, // 5 + Yearly, // 6 + NonRecurrent + } + + error InvalidTimeShift(); + + // solhint-disable-next-line code-complexity + function applyShift(uint40 time, EncodedTimeShift shift) internal pure returns (uint40) { + (TimeUnit unit, int40 offset) = shift.decode(); + + if (unit == TimeUnit.NonRecurrent) { + // Ensure offset is positive and in the future + // (We cast to int48 so we don't overflow for any possible uint40 value) + if (int48(offset) > int48(uint48(time))) { + return uint40(offset); + } else { + revert InvalidTimeShift(); + } + } + + uint40 realTime = uint40(int40(time) + offset); + (uint256 y, uint256 m, uint256 d) = realTime.toDate(); + + // Gas opt: split branches for shorter paths and handle the most common cases first + if (uint8(unit) > 3) { + if (unit == TimeUnit.Yearly) { + (y, m, d) = (y + 1, 1, 1); + } else if (unit == TimeUnit.Quarterly) { + (y, m, d) = m < 10 ? (y, (1 + (m - 1) / 3) * 3 + 1, 1) : (y + 1, 1, 1); + } else if (unit == TimeUnit.Semiyearly) { + (y, m, d) = m < 7 ? (y, 7, 1) : (y + 1, 1, 1); + } else { + revert InvalidTimeShift(); + } + } else { + if (unit == TimeUnit.Monthly) { + (y, m, d) = m < 12 ? (y, m + 1, 1) : (y + 1, 1, 1); + } else if (unit == TimeUnit.Weekly) { + (y, m, d) = addDays(y, m, d, 8 - BokkyPooBahsDateTimeLibrary.getDayOfWeek(realTime)); + } else if (unit == TimeUnit.Daily) { + (y, m, d) = addDays(y, m, d, 1); + } else { + revert InvalidTimeShift(); + } + } + + // All time shifts are relative to the beginning of the day UTC before removing the offset + uint256 shiftedTs = BokkyPooBahsDateTimeLibrary.timestampFromDateTime(y, m, d, 0, 0, 0); + return uint40(int40(uint40(shiftedTs)) - offset); + } + + /** + * @dev IT WILL ONLY TRANSITION ONE MONTH IF NECESSARY + */ + function addDays( + uint256 y, + uint256 m, + uint256 d, + uint256 daysToAdd + ) + private + pure + returns (uint256, uint256, uint256) + { + uint256 daysInMonth = BokkyPooBahsDateTimeLibrary._getDaysInMonth(y, m); + uint256 d2 = d + daysToAdd; + + return d2 <= daysInMonth ? (y, m, d2) : m < 12 ? (y, m + 1, d2 - daysInMonth) : (y + 1, 1, d2 - daysInMonth); + } + + function toDate(uint40 timestamp) internal pure returns (uint256 y, uint256 m, uint256 d) { + return BokkyPooBahsDateTimeLibrary._daysToDate(timestamp / 1 days); + } +} + +address constant NATIVE_ASSET = address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); +uint256 constant NO_PARENT_ID = 0; +uint256 constant INHERITED_AMOUNT = 0; +uint40 constant INHERITED_RESET_TIME = 0; +string constant TRANSFER_SIG = "transfer(address,uint256)"; + +/** + * @title Budget + * @author DAOBox (Security@DAOBox.app) + * @notice Budgeting module for efficient spending from an Aragon OSx DAO using allowance chains + * to delegate spending authority + */ +contract Budget is PluginUUPSUpgradeable { + bytes32 public constant ROOT_BUDGET_PERMISSION_ID = keccak256("ROOT_BUDGET_PERMISSION"); + + using TimeShiftLib for uint40; + using SafeERC20 for IERC20; + + struct Allowance { + uint256 parentId; + uint256 amount; + uint256 spent; + address token; + uint40 nextResetTime; + address spender; + EncodedTimeShift recurrency; + bool isDisabled; + } + + mapping(uint256 => Allowance) public allowances; + uint256 public allowancesCount; + uint256 private nonce; + + event AllowanceCreated( + uint256 indexed allowanceId, + uint256 indexed parentAllowanceId, + address indexed spender, + address token, + uint256 amount, + EncodedTimeShift recurrency, + uint40 nextResetTime, + string name + ); + event AllowanceStateChanged(uint256 indexed allowanceId, bool isEnabled); + event AllowanceAmountChanged(uint256 allowanceId, uint256 amount); + event AllowanceSpenderChanged(uint256 allowanceId, address spender); + event AllowanceNameChanged(uint256 allowanceId, string name); + event PaymentExecuted( + uint256 indexed allowanceId, + address indexed actor, + address token, + address indexed to, + uint256 amount, + uint40 nextResetTime, + string description + ); + event MultiPaymentExecuted( + uint256 indexed allowanceId, + address indexed actor, + address token, + address[] tos, + uint256[] amounts, + uint40 nextResetTime, + string description + ); + event AllowanceDebited( + uint256 indexed allowanceId, + address indexed actor, + address token, + uint256 amount, + uint40 nextResetTime, + bytes description + ); + + error UnexistentAllowance(uint256 allowanceId); + error DisabledAllowance(uint256 allowanceId); + error UnauthorizedNotAllowanceAdmin(uint256 allowanceId); + error TokenMismatch(address patentToken, address childToken); + error InheritedAmountNotAllowed(); + error ZeroAmountPayment(); + error BadInput(); + error UnauthorizedPaymentExecution(uint256 allowanceId, address actor); + error Overbudget(uint256 allowanceId, uint256 amount, uint256 remainingBudget); + error PaymentExecutionFailed(uint256 allowanceId, address token, address to, uint256 amount); + error NativeValueMismatch(); + error UnauthorizedNotDao(); + + constructor() { + _disableInitializers(); + } + + /// @notice Initializes the plugin when build 1 is installed. + function initialize(IDAO _dao) external initializer { + __PluginUUPSUpgradeable_init(_dao); + nonce = 0; + } + + //////////////////////////////////////////////////////////////////////////////// + // ALLOWANCE MANAGEMENT + //////////////////////////////////////////////////////////////////////////////// + + /** + * @notice Creates a new allowance giving permission to spend funds from the dao to a given address or addresses + * with a certain role + * @dev Note 1: that child allowances can be greater than the allowed amount of its parent budget and have different + * recurrency + * Note 2: It is possible to create child allowances for allowances that are disabled (either its parent disabled or + * any of its ancestors up to the top-level) + * @param parentAllowanceId ID for the parent allowance (value is 0 for top-level allowances without dependencies) + * @param spender Address or role identifier of the entities authorized to execute payments from this allowance + * @param token Address of the token (must be the same as the parent's token) + * @param amount Amount of token that can be spent per period + * @param recurrency Unit of time for the allowance spent amount to be reset (value is 0 for the allowance to + * inherit its parent's recurrency) + * @param name Name of the allowance being created + * @return allowanceId ID of the allowance created + */ + // solhint-disable-next-line code-complexity + function createAllowance( + uint256 parentAllowanceId, + address spender, + address token, + uint256 amount, + EncodedTimeShift recurrency, + string memory name + ) + public + returns (uint256 allowanceId) + { + uint40 nextResetTime; + + if (spender == address(0) || token == address(0)) { + revert BadInput(); + } + + if (parentAllowanceId == NO_PARENT_ID) { + // Top-level allowances can only be created by the dao + if (_msgSender() != address(dao())) { + revert UnauthorizedNotDao(); + } + + // We don't allow setting inherited amounts on top-level allowances as + // it could be prone to a client-side mistake to send 0 as the amount which will + // create an allowance that allows completely wiping the dao (for the token) + if (amount == INHERITED_AMOUNT) { + revert InheritedAmountNotAllowed(); + } + + // For top-level allowances, recurrency needs to be set and cannot be zero (inherited) + // applyShift reverts with InvalidTimeShift if recurrency is unspecified + // Therefore, nextResetTime is always greater than the current time + nextResetTime = uint40(block.timestamp).applyShift(recurrency); + } else { + // Reverts if parentAllowanceId doesn't exist + Allowance storage parentAllowance = _getAllowance(parentAllowanceId); + + // Not checking whether the parentAllowance is enabled is an explicit decision + // Disabling any allowance in a given allowance chain will result in all its + // children not being able to execute payments + // This allows for disabling a certain allowance to reconfigure the whole tree + // of sub-allowances below it, before enabling it again + + // Sub-allowances can be created by entities authorized to spend from a particular allowance + if (_msgSender() != parentAllowance.spender) { + revert UnauthorizedNotAllowanceAdmin(parentAllowanceId); + } + + if (token != parentAllowance.token) { + revert TokenMismatch(parentAllowance.token, token); + } + // Recurrency can be zero in sub-allowances and is inherited from the parent + if (!recurrency.isInherited()) { + // If recurrency is not inherited, amount cannot be inherited + if (amount == INHERITED_AMOUNT) { + revert InheritedAmountNotAllowed(); + } + + // Will revert with InvalidTimeShift if recurrency is invalid + nextResetTime = uint40(block.timestamp).applyShift(recurrency); + } + } + + // TODO: Check if this is nessaary + // Checks that if it is a role flag, a roles instance has been set and the role exists + // _validateAuthorizedAddress(spender); + + unchecked { + // The index of the first allowance is 1, so NO_PARENT_ID can be 0 (optimization) + allowanceId = ++allowancesCount; + } + + Allowance storage allowance = allowances[allowanceId]; + if (parentAllowanceId != NO_PARENT_ID) { + allowance.parentId = parentAllowanceId; + } + if (nextResetTime != INHERITED_RESET_TIME) { + allowance.recurrency = recurrency; + allowance.nextResetTime = nextResetTime; + } + allowance.spender = spender; + allowance.token = token; + allowance.amount = amount; + + emit AllowanceCreated(allowanceId, parentAllowanceId, spender, token, amount, recurrency, nextResetTime, name); + } + + /** + * @notice Changes the enabled/disabled state of the allowance + * @dev Note: Disabling an allowance will implicitly disable payments from all its descendant allowances + * @param allowanceId ID of the allowance whose state is being changed + * @param isEnabled Whether to enable or disable the allowance + */ + function setAllowanceState(uint256 allowanceId, bool isEnabled) external { + Allowance storage allowance = _getAllowanceAndValidateAdmin(allowanceId); + allowance.isDisabled = !isEnabled; + emit AllowanceStateChanged(allowanceId, isEnabled); + } + + /** + * @notice Changes the amount that an allowance can spend + * @dev Note: It is possible to decrease the amount in an allowance to a smaller amount of what's already been spent + * which will cause the allowance not to be able to execute any more payments until it resets (and the new amount + * will be enforced) + * @param allowanceId ID of the allowance whose amount is being changed + * @param amount New allowance amount to be set + */ + function setAllowanceAmount(uint256 allowanceId, uint256 amount) external { + Allowance storage allowance = _getAllowanceAndValidateAdmin(allowanceId); + + // Same checks for what allowances can have an inherited amount as in the creation + if (amount == INHERITED_AMOUNT && (allowance.parentId == NO_PARENT_ID || !allowance.recurrency.isInherited())) { + revert InheritedAmountNotAllowed(); + } + + allowance.amount = amount; + emit AllowanceAmountChanged(allowanceId, amount); + } + + /** + * @notice Changes the spender of an allowance + * @dev Note: Changing the spender also changes who the admin is for all the sub-allowances + * @param allowanceId ID of the allowance whose spender is being changed + * @param spender New spender account for the allowance + */ + function setAllowanceSpender(uint256 allowanceId, address spender) external { + if (spender == address(0)) { + revert BadInput(); + } + + // _validateAuthorizedAddress(spender); + + Allowance storage allowance = _getAllowanceAndValidateAdmin(allowanceId); + allowance.spender = spender; + emit AllowanceSpenderChanged(allowanceId, spender); + } + + /** + * @notice Changes the name of an allowance + * @dev Note: This has no on-chain side-effects and only emits an event for off-chain consumption + * @param allowanceId ID of the allowance whose name is being changed + * @param name New name for the allowance + */ + function setAllowanceName(uint256 allowanceId, string memory name) external { + _getAllowanceAndValidateAdmin(allowanceId); + emit AllowanceNameChanged(allowanceId, name); + } + + //////////////////////////////////////////////////////////////////////////////// + // PAYMENT EXECUTION + //////////////////////////////////////////////////////////////////////////////// + + /** + * @notice Executes a payment from an allowance + * @param allowanceId ID of the allowance from which the payment is made + * @param to Address that will receive the payment + * @param amount Amount of the allowance's token being sent + * @param description Description of the payment + */ + function executePayment( + uint256 allowanceId, + address to, + uint256 amount, + string memory description + ) + external + returns (uint40 nextResetTime) + { + Allowance storage allowance = _getAllowance(allowanceId); + + if (_msgSender() != allowance.spender) { + revert UnauthorizedPaymentExecution(allowanceId, _msgSender()); + } + + if (amount == 0) { + revert ZeroAmountPayment(); + } + + address token = allowance.token; + + // Make sure the payment is within budget all the way up to its top-level budget + (nextResetTime,) = _checkAndUpdateAllowanceChain(allowanceId, amount, add); + + if (!_performTransfer(token, to, amount)) { + revert PaymentExecutionFailed(allowanceId, token, to, amount); + } + + emit PaymentExecuted(allowanceId, _msgSender(), token, to, amount, nextResetTime, description); + } + + function _checkAndUpdateAllowanceChain( + uint256 allowanceId, + uint256 amount, + function(uint256, uint256) pure returns (uint256) op + ) + internal + returns (uint40 nextResetTime, bool allowanceResets) + { + // Can do 'unsafely' as this function only used when allowanceId always points to an allowance which exists + // (checked through _getAllowance or a parentId which always exists) + Allowance storage allowance = allowances[allowanceId]; + + if (allowance.isDisabled) { + revert DisabledAllowance(allowanceId); + } + + if (allowance.nextResetTime == INHERITED_RESET_TIME) { + // Note that since top-level allowances are not allowed to have an inherited reset time, + // this branch is only ever executed for sub-allowances (which always have a parentId) + (nextResetTime, allowanceResets) = _checkAndUpdateAllowanceChain(allowance.parentId, amount, op); + } else { + nextResetTime = allowance.nextResetTime; + + // Reset time has past, so we need to reset the allowance + if (uint40(block.timestamp) >= nextResetTime) { + EncodedTimeShift recurrency = allowance.recurrency; + // For a non-recurrent allowance, after the reset time has passed, + // the allowance is disabled and cannot be used anymore + if (recurrency.isNonRecurrent()) { + revert DisabledAllowance(allowanceId); + } else { + allowanceResets = true; + nextResetTime = uint40(block.timestamp).applyShift(recurrency); + allowance.nextResetTime = nextResetTime; + } + } + + // Recursively update all parent allowances before checking the amounts (inheritance forces this) + if (allowance.parentId != NO_PARENT_ID) { + _checkAndUpdateAllowanceChain(allowance.parentId, amount, op); + } + } + + if (allowance.amount != INHERITED_AMOUNT) { + uint256 spentAfter = op(allowanceResets ? 0 : allowance.spent, amount); + if (spentAfter > allowance.amount) { + revert Overbudget(allowanceId, amount, allowance.amount - allowance.spent); + } + + allowance.spent = spentAfter; + } + } + + function _performTransfer(address token, address to, uint256 amount) internal returns (bool) { + if (token == NATIVE_ASSET) { + IDAO.Action[] memory actions = new IDAO.Action[](1); + actions[0] = IDAO.Action({ to: to, value: amount, data: "" }); + + (, uint256 failureMap) = + dao().execute({ _callId: bytes32(nonce++), _actions: actions, _allowFailureMap: 0 }); + return failureMap == 0 ? true : false; + } else { + IDAO.Action[] memory actions = new IDAO.Action[](1); + bytes memory transferFunctionData = abi.encodeWithSignature(TRANSFER_SIG, to, amount); + + actions[0] = IDAO.Action({ to: token, value: 0, data: transferFunctionData }); + + (, uint256 failureMap) = + dao().execute({ _callId: bytes32(nonce++), _actions: actions, _allowFailureMap: 0 }); + return failureMap == 0 ? true : false; + } + } + + /** + * @notice Executes multiple payments from an allowance + * @param allowanceId ID of the allowance from which payments are made + * @param tos Addresses that will receive the payment + * @param amounts Amounts of the allowance's token being sent + * @param description Description of the payments + */ + function executeMultiPayment( + uint256 allowanceId, + address[] calldata tos, + uint256[] calldata amounts, + string memory description + ) + external + returns (uint40 nextResetTime) + { + Allowance storage allowance = _getAllowance(allowanceId); + + if (_msgSender() != allowance.spender) { + revert UnauthorizedPaymentExecution(allowanceId, _msgSender()); + } + + uint256 count = tos.length; + if (count == 0 || count != amounts.length) { + revert BadInput(); + } + + uint256 totalAmount = 0; + for (uint256 i = 0; i < count;) { + if (amounts[i] == 0) { + revert ZeroAmountPayment(); + } + + totalAmount += amounts[i]; + + unchecked { + i++; + } + } + + (nextResetTime,) = _checkAndUpdateAllowanceChain(allowanceId, totalAmount, add); + + address token = allowance.token; + + for (uint256 i = 0; i < count; i++) { + if (!_performTransfer(token, tos[i], amounts[i])) { + revert PaymentExecutionFailed(allowanceId, token, tos[i], amounts[i]); + } + } + + emit MultiPaymentExecuted(allowanceId, _msgSender(), token, tos, amounts, nextResetTime, description); + } + + /** + * @notice Deposit funds into dao debiting funds into an allowance. Frequently used to return a payment + * @dev Anyone is allowed to perform this action, independently of whether they could have spent funds in the first + * place + * @param allowanceId ID of the allowance to be debited (along with its ancester tree) + * @param amount Amount being debited + * @param description Description of the debit + */ + function debitAllowance( + uint256 allowanceId, + uint256 amount, + bytes calldata description + ) + external + payable + returns (uint40 nextResetTime) + { + Allowance storage allowance = _getAllowance(allowanceId); + address actor = _msgSender(); + address payable safeAddr = payable(address(dao())); + uint256 balanceDelta = 0; + + // Since funds are going to the dao which is trusted we don't need to follow checks-effects-interactions + // A malicious token could re-enter, but it would only have effects in allowances for that bad token + // And we don't need to worry about 'callbacks' since the dao is always the receiver and shouldn't do it + if (allowance.token != NATIVE_ASSET) { + if (msg.value != 0) { + revert NativeValueMismatch(); + } + + IERC20 token = IERC20(allowance.token); + uint256 prevBalance = token.balanceOf(safeAddr); + token.safeTransferFrom(actor, safeAddr, amount); + balanceDelta = token.balanceOf(safeAddr) - prevBalance; + } else { + if (msg.value != amount) { + revert NativeValueMismatch(); + } + + safeAddr.transfer(amount); + balanceDelta = amount; // For native asset transfers, assume balance delta is the amount + } + + (nextResetTime,) = _checkAndUpdateAllowanceChain(allowanceId, balanceDelta, zeroCappedSub); + + emit AllowanceDebited(allowanceId, actor, allowance.token, amount, nextResetTime, description); + } + + //////////////////////////////////////////////////////////////////////////////// + // INTERNAL FUNCTIONS + //////////////////////////////////////////////////////////////////////////////// + + function _getAllowance(uint256 allowanceId) internal view returns (Allowance storage allowance) { + allowance = allowances[allowanceId]; + + if (allowance.spender == address(0)) { + revert UnexistentAllowance(allowanceId); + } + } + + function _getAllowanceAndValidateAdmin(uint256 allowanceId) internal view returns (Allowance storage allowance) { + allowance = _getAllowance(allowanceId); + if (!_isAdminOnAllowance(allowance, _msgSender())) { + revert UnauthorizedNotAllowanceAdmin(allowance.parentId); + } + } + + function isAdminOnAllowance(uint256 allowanceId, address actor) public view returns (bool) { + return _isAdminOnAllowance(_getAllowance(allowanceId), actor); + } + + function _isAdminOnAllowance(Allowance storage allowance, address actor) internal view returns (bool) { + // Changes to the allowance state can be done by the same entity that could + // create that allowance in the first place (a spender of the parent allowance) + // In the case of top-level allowances, only the dao can enable/disable them + // For child allowances, spenders of the parent can change the state of the child + uint256 parentId = allowance.parentId; + return parentId == NO_PARENT_ID ? actor == address(dao()) : actor == allowances[parentId].spender; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + return a + b; + } + + function zeroCappedSub(uint256 a, uint256 b) internal pure returns (uint256) { + return a > b ? a - b : 0; + } + + /// @notice This empty reserved space is put in place to allow future versions to add new variables without shifting + /// down storage in the inheritance chain (see [OpenZepplins guide about storage + /// gaps](https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps)). + uint256[50] private __gap; +} + diff --git a/packages/contracts/package.json b/packages/contracts/package.json new file mode 100644 index 0000000..5bf6c96 --- /dev/null +++ b/packages/contracts/package.json @@ -0,0 +1,39 @@ +{ + "name": "@daobox/budget", + "description": "", + "version": "1.0.0", + "author": { + "name": "DAObox", + "url": "https://github.com/DAObox" + }, + "devDependencies": { + "prettier": "^3.0.0" + }, + "keywords": [ + "blockchain", + "ethereum", + "forge", + "foundry", + "smart-contracts", + "solidity", + "aragon", + "osx", + "dao", + "daobox" + ], + "private": true, + "scripts": { + "clean": "rm -rf cache out", + "build": "forge build", + "lint": "pnpm lint:sol && pnpm prettier:check", + "lint:sol": "forge fmt --check && pnpm solhint {script,src,test}/**/*.sol", + "prettier:check": "prettier --check **/*.{json,md,yml} --ignore-path=.prettierignore", + "prettier:write": "prettier --write **/*.{json,md,yml} --ignore-path=.prettierignore", + "test": "forge test -vvv", + "test:coverage": "forge coverage", + "test:coverage:report": "forge coverage --report lcov && genhtml lcov.info --branch-coverage --output-dir coverage" + }, + "dependencies": { + "solhint": "^3.6.2" + } +} diff --git a/packages/contracts/pnpm-lock.yaml b/packages/contracts/pnpm-lock.yaml new file mode 100644 index 0000000..464f747 --- /dev/null +++ b/packages/contracts/pnpm-lock.yaml @@ -0,0 +1,468 @@ +lockfileVersion: '6.0' + +dependencies: + solhint: + specifier: ^3.6.2 + version: 3.6.2 + +devDependencies: + prettier: + specifier: ^3.0.0 + version: 3.0.0 + +packages: + + /@babel/code-frame@7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.5 + dev: false + + /@babel/helper-validator-identifier@7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/highlight@7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: false + + /@solidity-parser/parser@0.16.1: + resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + dependencies: + antlr4ts: 0.5.0-alpha.4 + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /antlr4@4.13.0: + resolution: {integrity: sha512-zooUbt+UscjnWyOrsuY/tVFL4rwrAGwOivpQmvmUDE22hy/lUA467Rc1rcixyRwcRUIXFYBwv7+dClDSHdmmew==} + engines: {node: '>=16'} + dev: false + + /antlr4ts@0.5.0-alpha.4: + resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} + dev: false + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /ast-parents@0.0.1: + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + dev: false + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: false + + /cosmiconfig@8.2.0: + resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: false + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: false + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: false + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: false + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: false + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: false + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: false + + /solhint@3.6.2: + resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} + hasBin: true + dependencies: + '@solidity-parser/parser': 0.16.1 + ajv: 6.12.6 + antlr4: 4.13.0 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.2.0 + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.2.4 + js-yaml: 4.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.5.4 + strip-ansi: 6.0.1 + table: 6.8.1 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: false + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: false + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false diff --git a/remappings.txt b/packages/contracts/remappings.txt similarity index 92% rename from remappings.txt rename to packages/contracts/remappings.txt index 8b96bd1..f113f1d 100644 --- a/remappings.txt +++ b/packages/contracts/remappings.txt @@ -2,6 +2,8 @@ forge-std/=lib/forge-std/src/ @aragon/osx/=lib/osx/packages/contracts/src datetime/=lib/BokkyPooBahsDateTimeLibrary/contracts +@ensdomains/ens-contracts/=lib/ens-contracts/ + @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ diff --git a/src/Budget.sol b/packages/contracts/src/Budget.sol similarity index 100% rename from src/Budget.sol rename to packages/contracts/src/Budget.sol diff --git a/src/BudgetSetup.sol b/packages/contracts/src/BudgetSetup.sol similarity index 100% rename from src/BudgetSetup.sol rename to packages/contracts/src/BudgetSetup.sol diff --git a/packages/contracts/src/Migration.sol b/packages/contracts/src/Migration.sol new file mode 100644 index 0000000..1a2dc0e --- /dev/null +++ b/packages/contracts/src/Migration.sol @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: SEE LICENSE IN LICENSE +pragma solidity ^0.8.17; + +import { PluginSetupProcessor } from "@aragon/osx/framework/plugin/setup/PluginSetupProcessor.sol"; + +import { TokenVoting } from "@aragon/osx/plugins/governance/majority-voting/token/TokenVoting.sol"; diff --git a/src/TimeShiftLib.sol b/packages/contracts/src/TimeShiftLib.sol similarity index 100% rename from src/TimeShiftLib.sol rename to packages/contracts/src/TimeShiftLib.sol diff --git a/packages/contracts/src/metadata/build-metadata.json b/packages/contracts/src/metadata/build-metadata.json new file mode 100644 index 0000000..6a4b417 --- /dev/null +++ b/packages/contracts/src/metadata/build-metadata.json @@ -0,0 +1,20 @@ +{ + "ui": {}, + "change": "NA", + "pluginSetup": { + "prepareInstallation": { + "description": "No input is required for the installation.", + "inputs": [] + }, + "prepareUpdate": { + "1": { + "description": "No input is required for the update.", + "inputs": [] + } + }, + "prepareUninstallation": { + "description": "No input is required for the uninstallation.", + "inputs": [] + } + } +} \ No newline at end of file diff --git a/src/metadata/release-metadata.json b/packages/contracts/src/metadata/release-metadata.json similarity index 98% rename from src/metadata/release-metadata.json rename to packages/contracts/src/metadata/release-metadata.json index 804496a..cbdeba1 100644 --- a/src/metadata/release-metadata.json +++ b/packages/contracts/src/metadata/release-metadata.json @@ -2,4 +2,4 @@ "name": "Budget", "description": "Budget is a Plugin for creating nested allowances on an Aragon OSx DAO", "images": {} -} +} \ No newline at end of file diff --git a/test/Budget.t.sol b/packages/contracts/test/Budget.t.sol similarity index 100% rename from test/Budget.t.sol rename to packages/contracts/test/Budget.t.sol diff --git a/test/TimeShiftLib.t.sol b/packages/contracts/test/TimeShiftLib.t.sol similarity index 100% rename from test/TimeShiftLib.t.sol rename to packages/contracts/test/TimeShiftLib.t.sol diff --git a/test/base/TestnetTokenFaucet.sol b/packages/contracts/test/base/TestnetTokenFaucet.sol similarity index 100% rename from test/base/TestnetTokenFaucet.sol rename to packages/contracts/test/base/TestnetTokenFaucet.sol diff --git a/test/base/TribeTest.sol b/packages/contracts/test/base/TribeTest.sol similarity index 100% rename from test/base/TribeTest.sol rename to packages/contracts/test/base/TribeTest.sol diff --git a/packages/dapp/.eslintrc.json b/packages/dapp/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/packages/dapp/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/packages/dapp/.gitignore b/packages/dapp/.gitignore new file mode 100644 index 0000000..8f322f0 --- /dev/null +++ b/packages/dapp/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/packages/dapp/.vscode/settings.json b/packages/dapp/.vscode/settings.json new file mode 100644 index 0000000..3662b37 --- /dev/null +++ b/packages/dapp/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib" +} \ No newline at end of file diff --git a/packages/dapp/LICENSE b/packages/dapp/LICENSE new file mode 100644 index 0000000..7f91f84 --- /dev/null +++ b/packages/dapp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Next UI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/dapp/README.md b/packages/dapp/README.md new file mode 100644 index 0000000..38f323c --- /dev/null +++ b/packages/dapp/README.md @@ -0,0 +1,40 @@ +# Next.js & NextUI Template + +This is a template for creating applications using Next.js 13 (app directory) and NextUI (v2). + +## Technologies Used + +- [Next.js 13](https://nextjs.org/docs/getting-started) +- [NextUI v2](https://nextui.org/) +- [Tailwind CSS](https://tailwindcss.com/) +- [Tailwind Variants](https://tailwind-variants.org) +- [TypeScript](https://www.typescriptlang.org/) +- [Framer Motion](https://www.framer.com/motion/) +- [next-themes](https://github.com/pacocoursey/next-themes) + +## How to Use + + +### Use the template with create-next-app + +To create a new project based on this template using `create-next-app`, run the following command: + +```bash +npx create-next-app -e https://github.com/nextui-org/next-app-template +``` + +### Install dependencies + +```bash +npm install +``` + +### Run the development server + +```bash +npm run dev +``` + +## License + +Licensed under the [MIT license](https://github.com/nextui-org/next-app-template/blob/main/LICENSE). \ No newline at end of file diff --git a/packages/dapp/app/about/layout.tsx b/packages/dapp/app/about/layout.tsx new file mode 100644 index 0000000..d5f6271 --- /dev/null +++ b/packages/dapp/app/about/layout.tsx @@ -0,0 +1,13 @@ +export default function AboutLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+
+ {children} +
+
+ ); +} diff --git a/packages/dapp/app/about/page.tsx b/packages/dapp/app/about/page.tsx new file mode 100644 index 0000000..596ce4f --- /dev/null +++ b/packages/dapp/app/about/page.tsx @@ -0,0 +1,9 @@ +import { title } from "@/components/primitives"; + +export default function AboutPage() { + return ( +
+

About

+
+ ); +} diff --git a/packages/dapp/app/blog/layout.tsx b/packages/dapp/app/blog/layout.tsx new file mode 100644 index 0000000..45deef1 --- /dev/null +++ b/packages/dapp/app/blog/layout.tsx @@ -0,0 +1,13 @@ +export default function BlogLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+
+ {children} +
+
+ ); +} diff --git a/packages/dapp/app/blog/page.tsx b/packages/dapp/app/blog/page.tsx new file mode 100644 index 0000000..05c991d --- /dev/null +++ b/packages/dapp/app/blog/page.tsx @@ -0,0 +1,9 @@ +import { title } from "@/components/primitives"; + +export default function BlogPage() { + return ( +
+

Blog

+
+ ); +} diff --git a/packages/dapp/app/docs/layout.tsx b/packages/dapp/app/docs/layout.tsx new file mode 100644 index 0000000..a2d8b0a --- /dev/null +++ b/packages/dapp/app/docs/layout.tsx @@ -0,0 +1,13 @@ +export default function DocsLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+
+ {children} +
+
+ ); +} diff --git a/packages/dapp/app/docs/page.tsx b/packages/dapp/app/docs/page.tsx new file mode 100644 index 0000000..d10d2f5 --- /dev/null +++ b/packages/dapp/app/docs/page.tsx @@ -0,0 +1,9 @@ +import { title } from "@/components/primitives"; + +export default function DocsPage() { + return ( +
+

Docs

+
+ ); +} diff --git a/packages/dapp/app/error.tsx b/packages/dapp/app/error.tsx new file mode 100644 index 0000000..63b236c --- /dev/null +++ b/packages/dapp/app/error.tsx @@ -0,0 +1,30 @@ +'use client' + +import { useEffect } from 'react' + +export default function Error({ + error, + reset, +}: { + error: Error + reset: () => void +}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+ +
+ ) +} \ No newline at end of file diff --git a/packages/dapp/app/layout.tsx b/packages/dapp/app/layout.tsx new file mode 100644 index 0000000..103a085 --- /dev/null +++ b/packages/dapp/app/layout.tsx @@ -0,0 +1,72 @@ +import "@/styles/globals.css"; +import { Metadata } from "next"; +import { siteConfig } from "@/config/site"; +import { fontSans } from "@/config/fonts"; +import { Providers } from "./providers"; +import { Navbar } from "@/components/navbar"; + +import clsx from "clsx"; +import { BottomNav } from "@/components/bottom-nav"; + +export const metadata: Metadata = { + title: { + default: siteConfig.name, + template: `%s - ${siteConfig.name}`, + }, + description: siteConfig.description, + // themeColor: [ + // { media: "(prefers-color-scheme: light)", color: "white" }, + // { media: "(prefers-color-scheme: dark)", color: "black" }, + // ], + icons: { + icon: "/favicon.ico", + shortcut: "/favicon-16x16.png", + apple: "/apple-touch-icon.png", + }, +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + + + {/* */} + {/*
+ {children} +
*/} + {/* */} + +
+ + + ); +} + +function SplashScreen() { + return ( +
+
+
+ +
+ Welcome to payup mobile app +
+
+
+
+ ); +} diff --git a/packages/dapp/app/page.tsx b/packages/dapp/app/page.tsx new file mode 100644 index 0000000..ec591ed --- /dev/null +++ b/packages/dapp/app/page.tsx @@ -0,0 +1,27 @@ +import { BudgetCard } from "../components/BudgetCard"; + +export default function Home() { + return ( + //
+ // + // + // + // + // + // + //
+ +
+
+ +
+ Welcome to payup mobile app +
+
+
+ ); +} diff --git a/packages/dapp/app/pricing/layout.tsx b/packages/dapp/app/pricing/layout.tsx new file mode 100644 index 0000000..3f931fa --- /dev/null +++ b/packages/dapp/app/pricing/layout.tsx @@ -0,0 +1,13 @@ +export default function PricingLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+
+ {children} +
+
+ ); +} diff --git a/packages/dapp/app/pricing/page.tsx b/packages/dapp/app/pricing/page.tsx new file mode 100644 index 0000000..806aa3c --- /dev/null +++ b/packages/dapp/app/pricing/page.tsx @@ -0,0 +1,9 @@ +import { title } from "@/components/primitives"; + +export default function PricingPage() { + return ( +
+

Pricing

+
+ ); +} diff --git a/packages/dapp/app/providers.tsx b/packages/dapp/app/providers.tsx new file mode 100644 index 0000000..25ecbce --- /dev/null +++ b/packages/dapp/app/providers.tsx @@ -0,0 +1,37 @@ +"use client"; + +import * as React from "react"; +import { NextUIProvider } from "@nextui-org/system"; +import { useRouter } from "next/navigation"; +import { ThemeProvider as NextThemesProvider } from "next-themes"; +import { ThemeProviderProps } from "next-themes/dist/types"; +import { + DynamicContextProvider, + DynamicWagmiConnector, + EthereumWalletConnectors, +} from "@/components/dynamic"; + +export interface ProvidersProps { + children: React.ReactNode; + themeProps?: ThemeProviderProps; +} + +export function Providers({ children, themeProps }: ProvidersProps) { + const router = useRouter(); + + return ( + + + + {children} + + + + ); +} diff --git a/packages/dapp/components/BudgetCard.tsx b/packages/dapp/components/BudgetCard.tsx new file mode 100644 index 0000000..7bfd9a6 --- /dev/null +++ b/packages/dapp/components/BudgetCard.tsx @@ -0,0 +1,71 @@ +"use client"; +import { Card, CardBody, Chip, Avatar, Progress } from "@nextui-org/react"; +import { ClockIcon } from "@/components/icons"; +import { Icon, TokenIcon } from "@/components/tokens/TokenIcon"; +// { +// "parentId": "0", +// "amount": "54349902384089023", +// "spent": "1680", +// "token": "0x7e356025b80B220661c859d134ae12146f73f335", +// "nextResetTime": "Sun Nov 12 2023", +// "spender": "0x47d80912400ef8f8224531EBEB1ce8f2ACf4b75a", +// "recurrency": "1099511627776", +// "isDisabled": false +// } +export function BudgetCard() { + return ( + + +
+ + + +
+ + } + > +

alice.eth

+
+

+ 42069 USDC +

+ +

$7081 spent

+
+
+ } + > + 10/10/23 + +
+
+ +
+
+ ); +} diff --git a/packages/dapp/components/Hero.tsx b/packages/dapp/components/Hero.tsx new file mode 100644 index 0000000..2674e12 --- /dev/null +++ b/packages/dapp/components/Hero.tsx @@ -0,0 +1,16 @@ +"use client"; +import { title, subtitle } from "@/components/primitives"; + +export function Hero() { + return ( +
+

DAOBox 

+

Budgets 

+
+

Scalable Secure Frictionless

+

+ DAO payments without all the votes +

+
+ ); +} diff --git a/packages/dapp/components/bottom-nav.tsx b/packages/dapp/components/bottom-nav.tsx new file mode 100644 index 0000000..71159e7 --- /dev/null +++ b/packages/dapp/components/bottom-nav.tsx @@ -0,0 +1,74 @@ +"use client"; + +import { Button } from "@nextui-org/button"; +import { ClockIcon, HomeIcon, QRCodeIcon } from "./icons"; +import { useDynamicContext } from "./dynamic"; + +/** + * v0 by Vercel. + * @see https://v0.dev/t/iy0yPzxXKCr + */ +export function BottomNav() { + const { setShowAuthFlow } = useDynamicContext(); + + return ( +
+ + + + + +
+ ); +} diff --git a/packages/dapp/components/counter.tsx b/packages/dapp/components/counter.tsx new file mode 100644 index 0000000..90c4ea7 --- /dev/null +++ b/packages/dapp/components/counter.tsx @@ -0,0 +1,14 @@ +"use client"; + +import { useState } from "react"; +import { Button } from "@nextui-org/button"; + +export const Counter = () => { + const [count, setCount] = useState(0); + + return ( + + ); +}; diff --git a/packages/dapp/components/dynamic.ts b/packages/dapp/components/dynamic.ts new file mode 100644 index 0000000..c214590 --- /dev/null +++ b/packages/dapp/components/dynamic.ts @@ -0,0 +1,5 @@ +"use client"; + +export * from "@dynamic-labs/ethereum"; +export * from "@dynamic-labs/sdk-react-core"; +export * from "@dynamic-labs/wagmi-connector"; diff --git a/packages/dapp/components/icons.tsx b/packages/dapp/components/icons.tsx new file mode 100644 index 0000000..74bcb25 --- /dev/null +++ b/packages/dapp/components/icons.tsx @@ -0,0 +1,321 @@ +import * as React from "react"; +import { IconSvgProps } from "@/types"; + +export const Logo: React.FC = ({ + size = 36, + width, + height, + ...props +}) => ( + + + +); + +export const DiscordIcon: React.FC = ({ + size = 24, + width, + height, + ...props +}) => { + return ( + + + + ); +}; + +export const TwitterIcon: React.FC = ({ + size = 24, + width, + height, + ...props +}) => { + return ( + + + + ); +}; + +export const GithubIcon: React.FC = ({ + size = 24, + width, + height, + ...props +}) => { + return ( + + + + ); +}; + +export const MoonFilledIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + +); + +export const SunFilledIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + +); + +export const HomeIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + + + + +); + +export const ClockIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + + + + +); + +export const QRCodeIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + + + + + + + + + + + + + + +); + +export const NotificationIcon = ({ + size, + height, + width, + ...props +}: IconSvgProps) => { + return ( + + + + ); +}; + +export const HeartFilledIcon = ({ + size = 24, + width, + height, + ...props +}: IconSvgProps) => ( + +); + +export const SearchIcon = (props: IconSvgProps) => ( + +); + +export const NextUILogo: React.FC = (props) => { + const { width, height = 40 } = props; + + return ( + + + + + + ); +}; diff --git a/packages/dapp/components/navbar.tsx b/packages/dapp/components/navbar.tsx new file mode 100644 index 0000000..d02778b --- /dev/null +++ b/packages/dapp/components/navbar.tsx @@ -0,0 +1,48 @@ +"use client"; + +import { Navbar as NextUINavbar, NavbarContent } from "@nextui-org/navbar"; +import { Badge, User } from "@nextui-org/react"; + +import { Button } from "@nextui-org/button"; +import NextLink from "next/link"; + +import { NotificationIcon } from "@/components/icons"; +import { useDynamicContext } from "./dynamic"; + +export const Navbar = () => { + const { setShowAuthFlow } = useDynamicContext(); + + return ( + + + + setShowAuthFlow(true)} + name="Aaron Abu Usama" + description="abuusama.eth" + className="transition-transform" + avatarProps={{ + src: "https://d2u8k2ocievbld.cloudfront.net/memojis/male/9.png", + isBordered: true, + radius: "full", + }} + /> + + + + + + + + + + ); +}; diff --git a/packages/dapp/components/primitives.ts b/packages/dapp/components/primitives.ts new file mode 100644 index 0000000..5388287 --- /dev/null +++ b/packages/dapp/components/primitives.ts @@ -0,0 +1,53 @@ +import { tv } from "tailwind-variants"; + +export const title = tv({ + base: "tracking-tight inline font-semibold", + variants: { + color: { + violet: "from-[#FF1CF7] to-[#b249f8]", + yellow: "from-[#FF705B] to-[#FFB457]", + blue: "from-[#5EA2EF] to-[#0072F5]", + cyan: "from-[#00b7fa] to-[#01cfea]", + green: "from-[#6FEE8D] to-[#17c964]", + pink: "from-[#FF72E1] to-[#F54C7A]", + foreground: "dark:from-[#FFFFFF] dark:to-[#4B4B4B]", + }, + size: { + sm: "text-3xl lg:text-4xl", + md: "text-[2.3rem] lg:text-5xl leading-9", + lg: "text-4xl lg:text-6xl", + }, + fullWidth: { + true: "w-full block", + }, + }, + defaultVariants: { + size: "md", + }, + compoundVariants: [ + { + color: [ + "violet", + "yellow", + "blue", + "cyan", + "green", + "pink", + "foreground", + ], + class: "bg-clip-text text-transparent bg-gradient-to-b", + }, + ], +}); + +export const subtitle = tv({ + base: "w-full md:w-1/2 my-2 text-lg lg:text-xl text-default-600 block max-w-full", + variants: { + fullWidth: { + true: "!w-full", + }, + }, + defaultVariants:{ + fullWidth: true + } +}); diff --git a/packages/dapp/components/theme-switch.tsx b/packages/dapp/components/theme-switch.tsx new file mode 100644 index 0000000..6240765 --- /dev/null +++ b/packages/dapp/components/theme-switch.tsx @@ -0,0 +1,77 @@ +"use client"; + +import { FC } from "react"; +import { VisuallyHidden } from "@react-aria/visually-hidden"; +import { SwitchProps, useSwitch } from "@nextui-org/switch"; +import { useTheme } from "next-themes"; +import {useIsSSR} from "@react-aria/ssr"; +import clsx from "clsx"; + +import { SunFilledIcon, MoonFilledIcon } from "@/components/icons"; + +export interface ThemeSwitchProps { + className?: string; + classNames?: SwitchProps["classNames"]; +} + +export const ThemeSwitch: FC = ({ + className, + classNames, +}) => { + const { theme, setTheme } = useTheme(); + const isSSR = useIsSSR(); + + const onChange = () => { + theme === "light" ? setTheme("dark") : setTheme("light"); + }; + + const { + Component, + slots, + isSelected, + getBaseProps, + getInputProps, + getWrapperProps, + } = useSwitch({ + isSelected: theme === "light" || isSSR, + "aria-label": `Switch to ${theme === "light" || isSSR ? "dark" : "light"} mode`, + onChange, + }); + + return ( + + + + +
+ {!isSelected || isSSR ? : } +
+
+ ); +}; diff --git a/packages/dapp/components/tokens/TokenIcon.tsx b/packages/dapp/components/tokens/TokenIcon.tsx new file mode 100644 index 0000000..3996190 --- /dev/null +++ b/packages/dapp/components/tokens/TokenIcon.tsx @@ -0,0 +1,114 @@ +import Image from "next/image"; +import React, { ReactNode, useState } from "react"; + +import Tokens from "./reserveTokens.json"; +import clsx from "clsx"; +const tokens = Tokens.tokens; + +export const getIconBackgroundColor = (symbol?: string): string => { + const symbolLowerCase = symbol?.toLowerCase() as string; + + return symbolLowerCase === "gno" + ? "bg-blue-900" + : symbolLowerCase === "weth" + ? "bg-black" + : symbolLowerCase === "wxdai" + ? "bg-green-700" + : symbolLowerCase === "dai" + ? "bg-yellow-400" + : symbolLowerCase === "xdai" + ? "bg-green-700" + : symbolLowerCase === "usdc" + ? "bg-blue-600" + : symbolLowerCase === "wbtc" + ? "bg-orange-500" + : symbolLowerCase === "usdt" + ? "bg-green-500" + : symbolLowerCase === "link" + ? "bg-blue-600" + : symbolLowerCase === "fox" + ? "bg-gray-800" + : symbolLowerCase === "agve" + ? "bg-white" + : symbolLowerCase === "eure" + ? "bg-blue-500" + : symbolLowerCase === "wsteth" + ? "bg-gray-200" + : symbolLowerCase === "sdai" + ? "bg-green-800" + : "bg-green-600"; +}; + +interface Props { + dimensions?: number; + symbol: string; +} + +export const TokenIcon: React.FC = ({ + dimensions = 18, + symbol, + ...restProps +}) => { + const [error, setError] = useState(false); + const token = tokens.find( + (token) => token.symbol.toLowerCase() === symbol.toLowerCase(), + ); + const tokenImage = token?.logoURI; + const offset = token?.offset ?? 10; + const backgroundColor = getIconBackgroundColor(symbol); + + return ( +
+ {tokenImage && !error ? ( + {symbol} setError(true)} + src={tokenImage} + width={dimensions - offset} + /> + ) : ( +
+ {symbol[0]} +
+ )} +
+ ); +}; + +interface IconProps { + symbol: string; + children: ReactNode; + className?: string; +} +export const Icon: React.FC = ({ symbol, children, className }) => { + const backgroundColorClass = getIconBackgroundColor(symbol); + + return ( +
+ {children} +
+ ); +}; diff --git a/packages/dapp/components/tokens/reserveTokens.json b/packages/dapp/components/tokens/reserveTokens.json new file mode 100644 index 0000000..51d5c15 --- /dev/null +++ b/packages/dapp/components/tokens/reserveTokens.json @@ -0,0 +1,82 @@ +{ + "tokens": [ + { + "symbol": "USDC", + "name": "USD Coin", + "address": "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83", + "decimals": 6, + "chainId": 100, + "logoURI": "/coins/usdc.svg", + "offset": 0, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + }, + { + "symbol": "WETH", + "name": "WETH", + "address": "0x6a023ccd1ff6f2045c3309768ead9e68f978f6e1", + "decimals": 18, + "chainId": 100, + "logoURI": "/coins/eth.svg", + "offset": 60, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + }, + { + "symbol": "wstETH", + "name": "Wrapped liquid staked Ether 2.0 from Mainnet", + "address": "0x6c76971f98945ae98dd7d4dfca8711ebea946ea6", + "decimals": 18, + "chainId": 100, + "logoURI": "/coins/wsteth.svg", + "offset": 22, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + }, + { + "symbol": "USDT", + "name": "Tether USD on xDai", + "address": "0x4ecaba5870353805a9f068101a40e0f32ed605c6", + "decimals": 6, + "chainId": 100, + "logoURI": "/coins/usdt.svg", + "offset": 12, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + }, + { + "symbol": "EURe", + "name": "Monerium EUR emoney", + "address": "0xcB444e90D8198415266c6a2724b7900fb12FC56E", + "decimals": 18, + "chainId": 100, + "logoURI": "/coins/eure.svg", + "offset": 10, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + }, + { + "symbol": "WBTC", + "name": "Wrapped Bitcoin", + "address": "0x8e5bbbb09ed1ebde8674cda39a0c169401db4252", + "decimals": 8, + "chainId": 100, + "logoURI": "/coins/wbtc.svg", + "offset": 0, + "extensions": { + "isNative": false, + "isNativeWrapper": false + } + } + ] +} diff --git a/packages/dapp/config/fonts.ts b/packages/dapp/config/fonts.ts new file mode 100644 index 0000000..b4411e2 --- /dev/null +++ b/packages/dapp/config/fonts.ts @@ -0,0 +1,11 @@ +import { Fira_Code as FontMono, Inter as FontSans } from "next/font/google" + +export const fontSans = FontSans({ + subsets: ["latin"], + variable: "--font-sans", +}) + +export const fontMono = FontMono({ + subsets: ["latin"], + variable: "--font-mono", +}) diff --git a/packages/dapp/config/site.ts b/packages/dapp/config/site.ts new file mode 100644 index 0000000..75f5822 --- /dev/null +++ b/packages/dapp/config/site.ts @@ -0,0 +1,69 @@ +export type SiteConfig = typeof siteConfig; + +export const siteConfig = { + name: "Next.js + NextUI", + description: "Make beautiful websites regardless of your design experience.", + navItems: [ + { + label: "Home", + href: "/", + }, + { + label: "Docs", + href: "/docs", + }, + { + label: "Pricing", + href: "/pricing", + }, + { + label: "Blog", + href: "/blog", + }, + { + label: "About", + href: "/about", + }, + ], + navMenuItems: [ + { + label: "Profile", + href: "/profile", + }, + { + label: "Dashboard", + href: "/dashboard", + }, + { + label: "Projects", + href: "/projects", + }, + { + label: "Team", + href: "/team", + }, + { + label: "Calendar", + href: "/calendar", + }, + { + label: "Settings", + href: "/settings", + }, + { + label: "Help & Feedback", + href: "/help-feedback", + }, + { + label: "Logout", + href: "/logout", + }, + ], + links: { + github: "https://github.com/nextui-org/nextui", + twitter: "https://twitter.com/getnextui", + docs: "https://nextui.org", + discord: "https://discord.gg/9b6yyZKmH4", + sponsor: "https://patreon.com/jrgarciadev", + }, +}; diff --git a/packages/dapp/config/tokens/agaveTokens.ts b/packages/dapp/config/tokens/agaveTokens.ts new file mode 100644 index 0000000..d100897 --- /dev/null +++ b/packages/dapp/config/tokens/agaveTokens.ts @@ -0,0 +1,329 @@ +import nativeToken from '@/public/nativeToken.json' +import protocolTokens from '@/public/protocolTokens.json' +import reserveTokens from '@/public/reserveTokens.json' +import savingsToken from '@/public/savingsToken.json' +import stakeToken from '@/public/stakeToken.json' +import { isSameAddress } from '@/src/utils/isSameAddress' +import { memoize } from '@/src/utils/memoize' +import { Token } from '@/types/token' +import { RequiredFieldsOnly } from '@/types/utils' + +export type AgaveProtocolTokens = { + [reserve: string]: { + ag: string + variableDebt: string + stableDebt: string + strategy: string + oracle: string + symbol: string // added to ease traceability + } +} + +export type AgaveProtocolTokenType = + | 'ag' + | 'variableDebt' + | 'stableDebt' + | 'reserve' + | 'native' + | 'stake' + | 'savings' + +export type TokenWithType = Token & { type: AgaveProtocolTokenType } + +export type TokenInfo = Pick + +type ValidLookupFields = Pick + +export interface IDAgaveTokens { + nativeToken: Token + wrapperToken: Token + reserveTokens: Token[] + protocolTokens: AgaveProtocolTokens + stakeToken: Token + savingsToken: Token + allTokens: TokenWithType[] + allIncentivesTokens: TokenWithType[] + getRelatedTokensByAddress: (tokenAddress: string) => TokenInfo[] + getTokenByAddress: (tokenAddress: string) => TokenWithType + getTokenByFieldAndValue: ( + fieldAndValue: Partial>, + ) => TokenWithType | undefined + getProtocolTokenInfo: (reserveAddress: string, type: AgaveProtocolTokenType) => Token +} + +class AgaveTokens implements IDAgaveTokens { + private _nativeToken: Token = nativeToken.tokens[0] + private _stakeToken: Token = stakeToken.tokens[0] + private _savingsToken: Token = savingsToken.tokens[0] + private _reserveTokens: Token[] = reserveTokens.tokens + private _protocolTokens: AgaveProtocolTokens = protocolTokens.protocolTokens + private _protocolName = 'Agave' + private _validLookupFields: (keyof ValidLookupFields)[] = ['address', 'symbol', 'name'] + + constructor() { + // runtime check to prevent consuming invalid token info + this.allTokens.every(this.isValidTokenInfo) + } + + get nativeToken() { + return this._nativeToken + } + + get stakeToken() { + return this._stakeToken + } + + get savingsToken() { + return this._savingsToken + } + + @memoize() + get wrapperToken() { + const nativeWrapper = this._reserveTokens.find( + ({ extensions: { isNativeWrapper } }) => isNativeWrapper, + ) + + if (!nativeWrapper) { + throw new Error('Native wrapper must be defined') + } + + return nativeWrapper + } + + get reserveTokens() { + return this._reserveTokens + } + + get protocolTokens() { + return this._protocolTokens + } + + @memoize() + get allTokens(): TokenWithType[] { + return [ + { + ...this.nativeToken, + type: 'native', + }, + ...this.reserveTokens.map( + (tokenInfo): TokenWithType => ({ + ...tokenInfo, + type: 'reserve', + }), + ), + { + ...this.savingsToken, + type: 'savings', + }, + { + ...this.stakeToken, + type: 'stake', + }, + ...Object.values(this.reserveTokens).flatMap(({ address }): TokenWithType[] => { + return [ + { ...this.getProtocolTokenInfo(address, 'ag'), type: 'ag' }, + { + ...this.getProtocolTokenInfo(address, 'variableDebt'), + type: 'variableDebt', + }, + { + ...this.getProtocolTokenInfo(address, 'stableDebt'), + type: 'stableDebt', + }, + ] + }), + ] + } + + @memoize() + get allIncentivesTokens(): TokenWithType[] { + return this.allTokens.filter(({ type }) => ['ag', 'variableDebt'].includes(type)) + } + + @memoize() + getRelatedTokensByAddress(tokenAddress: string): TokenInfo[] { + const tokenInfo = this.getTokenByAddress(tokenAddress) + if (tokenInfo.type === 'reserve') { + // discard `oracle`, `strategy`, and `symbol` from protocol tokens + const { oracle, strategy, symbol, ...protocolTokens } = this.getProtocolTokensByReserve( + tokenInfo.address, + ) + return [ + { + address: tokenInfo.address, + symbol: tokenInfo.symbol, + type: tokenInfo.type, + }, + ...Object.values(protocolTokens) + .map(this.getTokenByAddress.bind(this)) + .map(({ address, symbol, type }) => ({ + address, + symbol, + type, + })), + ] + } else { + const reserveToken = this.getReserveTokenByAddress(tokenAddress) + if (!reserveToken) { + throw Error(`Unsupported token: ${tokenAddress}`) + } + + return this.getRelatedTokensByAddress(reserveToken.address) + } + } + + @memoize() + getTokenByAddress(tokenAddress: string): TokenWithType { + const tokenInfo = this.getTokenByFieldAndValue({ address: tokenAddress }) + + if (!tokenInfo) { + throw Error(`Unsupported token: ${tokenAddress}`) + } + + return tokenInfo + } + + @memoize() + getTokenByFieldAndValue(fieldAndValue: Partial>): TokenWithType { + const [field, value] = Object.entries(fieldAndValue)[0] + + if (!field || !value) { + throw new Error('field and value are required') + } + + if (!this._validLookupFields.some((validField) => validField === field)) { + throw new Error(`Invalid field: ${field}`) + } + + let foundToken: TokenWithType | undefined + + if (field === 'address') { + foundToken = this.allTokens.find((token) => isSameAddress(token[field], value)) + } else { + foundToken = this.allTokens.find( + (token) => token[field].toLowerCase() === value.toLowerCase(), + ) + } + + if (!foundToken) { + throw Error(`Unsupported token: ${field} ${value}`) + } + + return foundToken + } + + @memoize() + private getReserveTokenByAddress(tokenAddress: string): Token { + // lookup reserve token by reserve address + const tokenInfo = this._reserveTokens.find((token) => + isSameAddress(token.address, tokenAddress), + ) + + // if not found, lookup reserve token by protocol token address + if (!tokenInfo) { + const foundToken = Object.entries(this._protocolTokens).find( + ([, { ag, stableDebt, variableDebt }]) => { + return ( + isSameAddress(ag, tokenAddress) || + isSameAddress(stableDebt, tokenAddress) || + isSameAddress(variableDebt, tokenAddress) + ) + }, + ) + + if (!foundToken) { + throw Error(`Unsupported token: ${tokenAddress}`) + } + + const [reserveAddress] = foundToken + + return this.getReserveTokenByAddress(reserveAddress) + } + + return tokenInfo + } + + private getProtocolTokensByReserve( + reserveAddress: string, + ): AgaveProtocolTokens['reserveAddress'] { + const foundToken = Object.entries(this._protocolTokens).find(([address]) => + isSameAddress(address, reserveAddress), + ) + + if (!foundToken) { + throw Error(`Unsupported reserveAddress token: ${reserveAddress}`) + } + + const [, protocolTokens] = foundToken + + return protocolTokens + } + + @memoize() + getProtocolTokenInfo(reserveAddress: string, tokenType: AgaveProtocolTokenType): Token { + const tokenInfo = this.getReserveTokenByAddress(reserveAddress) + const protocolTokens = this.getProtocolTokensByReserve(reserveAddress) + switch (tokenType) { + case 'ag': + return { + ...tokenInfo, + address: protocolTokens.ag, + name: `${this._protocolName} interest bearing ${tokenInfo.symbol}`, + symbol: `ag${tokenInfo.symbol}`, + } + case 'variableDebt': + return { + ...tokenInfo, + address: protocolTokens.variableDebt, + name: `${this._protocolName} variable debt bearing ${tokenInfo.symbol}`, + symbol: `variableDebt${tokenInfo.symbol}`, + } + case 'stableDebt': + return { + ...tokenInfo, + address: protocolTokens.stableDebt, + name: `${this._protocolName} stable debt bearing ${tokenInfo.symbol}`, + symbol: `stableDebt${tokenInfo.symbol}`, + } + default: + throw new Error(`Unsupported token type: ${tokenType}`) + } + } + + private isValidTokenInfo(tokenInfo: Token) { + if (tokenInfo.address === undefined) { + throw new Error('Token address is required') + } + + if (tokenInfo.symbol === undefined) { + throw new Error('Token symbol is required') + } + + if (tokenInfo.decimals === undefined) { + throw new Error('Token decimals is required') + } + + if (tokenInfo.name === undefined) { + throw new Error('Token name is required') + } + + if (tokenInfo.logoURI === undefined) { + throw new Error('Token logoURI is required') + } + + if (tokenInfo.chainId === undefined) { + throw new Error('Token chainId is required') + } + + if ( + tokenInfo.extensions.isNative === undefined || + tokenInfo.extensions.isNativeWrapper === undefined + ) { + throw new Error('Token extensions.isNative and extensions.isNativeWrapper are required') + } + + return true + } +} + +export const agaveTokens = new AgaveTokens() diff --git a/packages/dapp/config/tokens/nativeToken.json b/packages/dapp/config/tokens/nativeToken.json new file mode 100644 index 0000000..7ec950e --- /dev/null +++ b/packages/dapp/config/tokens/nativeToken.json @@ -0,0 +1,16 @@ +{ + "tokens": [ + { + "symbol": "XDAI", + "name": "XDAI", + "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + "decimals": 18, + "chainId": 100, + "logoURI": "/coins/xdai.svg", + "extensions": { + "isNative": true, + "isNativeWrapper": false + } + } + ] +} diff --git a/packages/dapp/next.config.js b/packages/dapp/next.config.js new file mode 100644 index 0000000..767719f --- /dev/null +++ b/packages/dapp/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/packages/dapp/package-lock.json b/packages/dapp/package-lock.json new file mode 100644 index 0000000..d2bfe43 --- /dev/null +++ b/packages/dapp/package-lock.json @@ -0,0 +1,5313 @@ +{ + "name": "next-app-template", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "next-app-template", + "version": "0.0.1", + "dependencies": { + "@nextui-org/button": "2.0.26", + "@nextui-org/code": "2.0.24", + "@nextui-org/input": "2.1.16", + "@nextui-org/kbd": "2.0.25", + "@nextui-org/link": "2.0.26", + "@nextui-org/navbar": "2.0.27", + "@nextui-org/snippet": "2.0.30", + "@nextui-org/switch": "2.0.25", + "@nextui-org/system": "2.0.15", + "@nextui-org/theme": "2.1.17", + "@react-aria/ssr": "^3.8.0", + "@react-aria/visually-hidden": "^3.8.6", + "@types/node": "20.5.7", + "@types/react": "18.2.21", + "@types/react-dom": "18.2.7", + "autoprefixer": "10.4.16", + "clsx": "^2.0.0", + "eslint": "8.48.0", + "eslint-config-next": "14.0.2", + "framer-motion": "^10.16.4", + "intl-messageformat": "^10.5.0", + "next": "14.0.2", + "next-themes": "^0.2.1", + "postcss": "8.4.31", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwind-variants": "^0.1.18", + "tailwindcss": "3.3.5", + "typescript": "5.0.4" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz", + "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.3.tgz", + "integrity": "sha512-2Q4hmKQ6CM30mRG/YMdSBW8LXf32BfuOb1FZgG+uVWPC/SQMoiVFz5JaeOukt96v6TZ4ddE+bHCmd611PW38QA==", + "dependencies": { + "@formatjs/intl-localematcher": "0.5.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", + "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.1.tgz", + "integrity": "sha512-ErnXyRdk8AlpGcKskKVYn23aAlWXhI1kt5ek2o3pJwVeMTcrosSESQ8baztdTtJjfQHlB4NBeocfRA5C6DKv2g==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.17.3", + "@formatjs/icu-skeleton-parser": "1.6.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.3.tgz", + "integrity": "sha512-Viggz4Pic7oC4uR8z2VroL8H9boiUTTB0TqEsiRb6DHZv7QEcg1BoVQZBkBdLmvxhBS7nwBNrTdbaiW8GOV58Q==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.17.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.0.tgz", + "integrity": "sha512-K1Xpg/8oyfCMxisJQa/fILoeoeyndcM0wcN8QiNG/uM5OAe1BcO1+2yd0gIboDI2tRJEsUi/sSBEYPbgkIdq4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + }, + "node_modules/@internationalized/date": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.0.tgz", + "integrity": "sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.1.tgz", + "integrity": "sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.4.0.tgz", + "integrity": "sha512-8TvotW3qVDHC4uv/BVoN6Qx0Dm8clHY1/vpH+dh+XRiPW/9NVpKn1P8d1A+WLphWrMwyqyWXI7uWehJPviaeIw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.1.1.tgz", + "integrity": "sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA==", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.2.tgz", + "integrity": "sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.2.tgz", + "integrity": "sha512-APrYFsXfAhnysycqxHcpg6Y4i7Ukp30GzVSZQRKT3OczbzkqGjt33vNhScmgoOXYBU1CfkwgtXmNxdiwv1jKmg==", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.2.tgz", + "integrity": "sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.2.tgz", + "integrity": "sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.2.tgz", + "integrity": "sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.2.tgz", + "integrity": "sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.2.tgz", + "integrity": "sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.2.tgz", + "integrity": "sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.2.tgz", + "integrity": "sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.2.tgz", + "integrity": "sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.2.tgz", + "integrity": "sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nextui-org/aria-utils": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@nextui-org/aria-utils/-/aria-utils-2.0.15.tgz", + "integrity": "sha512-4M4jeJ/ghGaia9064yS+mEZ3sFPH80onmjNGWJZkkZDmUV4R88lNkqe/XYBK1tbxfl4Kxa8jc/ALsZkUkkvR5w==", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/system": "2.0.15", + "@react-aria/utils": "^3.21.1", + "@react-stately/collections": "^3.10.2", + "@react-types/overlays": "^3.8.3", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/button": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/@nextui-org/button/-/button-2.0.26.tgz", + "integrity": "sha512-mDrSII1oneY4omwDdxUhl5oLa3AhoWCchwV/jt7egunnAFie32HbTqfFYGpLGiJw3JMMh3WDUthrI1islVTRKA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/ripple": "2.0.24", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/spinner": "2.0.24", + "@nextui-org/use-aria-button": "2.0.6", + "@react-aria/button": "^3.8.4", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/button": "^3.9.0", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/code": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/code/-/code-2.0.24.tgz", + "integrity": "sha512-Kw/uOQtdytRWY99zMQuGHqMAAGXWBAxHlyMMge1OCckpadCDfX6plPjqoS18SGM0orJ4fox+a1FM8VhnRQ2kQw==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/system-rsc": "2.0.11" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/framer-transitions": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@nextui-org/framer-transitions/-/framer-transitions-2.0.15.tgz", + "integrity": "sha512-UlWMCAFdrq8wKrYFGwc+O4kFhKCkL4L9ZadBkP0PqjmfyAC2gA3ygRbNqtKhFMWeKbBAiC8qQ9aTBEA/+0r/EA==", + "dependencies": { + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/system": "2.0.15" + }, + "peerDependencies": { + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/input": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@nextui-org/input/-/input-2.1.16.tgz", + "integrity": "sha512-nUTlAvsXj5t88ycvQdICxf78/pko6Wznx2OomvYjb3E45eb77twQcWUDhydkJCWIh3b4AhGHSMM6GYxwWUgMDA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-icons": "2.0.6", + "@nextui-org/shared-utils": "2.0.4", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/textfield": "^3.12.2", + "@react-aria/utils": "^3.21.1", + "@react-stately/utils": "^3.8.0", + "@react-types/shared": "^3.21.0", + "@react-types/textfield": "^3.8.1", + "react-textarea-autosize": "^8.5.2" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/kbd": { + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@nextui-org/kbd/-/kbd-2.0.25.tgz", + "integrity": "sha512-cYwbEjp/+/tjtOdmiRy2UHjfBhP3bqd5e+JFTa5sY1HotckUZrCintATyBcg9bPa3iSPUI44M6Cb9e0oAUUeMA==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/system-rsc": "2.0.11", + "@react-aria/utils": "^3.21.1" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/link": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/@nextui-org/link/-/link-2.0.26.tgz", + "integrity": "sha512-X8zX3U5MWfiStOCd45oIZ2YKZG0GoUio6PcMFYjpOPsEG7wV58CuhUSxpyx3QTF8JavVSO/p/cl4Pc9pukVDUg==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-icons": "2.0.6", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/use-aria-link": "2.0.15", + "@react-aria/focus": "^3.14.3", + "@react-aria/link": "^3.6.1", + "@react-aria/utils": "^3.21.1", + "@react-types/link": "^3.5.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/navbar": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/@nextui-org/navbar/-/navbar-2.0.27.tgz", + "integrity": "sha512-iP4Pn4ItQkAW1nbu1Jmrh5l9pMVG43lDxq9rbx6DbLjLnnZOOrE6fURb8uN5NVy3ooV5dF02zKAoxlkE5fN/xw==", + "dependencies": { + "@nextui-org/framer-transitions": "2.0.15", + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/use-aria-toggle-button": "2.0.6", + "@nextui-org/use-scroll-position": "2.0.4", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/overlays": "^3.18.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/toggle": "^3.6.3", + "@react-stately/utils": "^3.8.0", + "react-remove-scroll": "^2.5.6" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/react-rsc-utils": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/react-rsc-utils/-/react-rsc-utils-2.0.10.tgz", + "integrity": "sha512-LNePDEThUF9PAbJW4T8k7EgSfqwlvGku5fIqJ1IA9+OpVy5LqhrUQehjvgXe63N1RupC7Pt+XvaaxkGu9U2FiQ==" + }, + "node_modules/@nextui-org/react-utils": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@nextui-org/react-utils/-/react-utils-2.0.10.tgz", + "integrity": "sha512-bcA+k7ZdcgcK+r/8nrCtbdgHo0SD6jicbazWIokknFwjb97JQ7ooaMwxnLt5E5sswCAv0XeLwybOmrgm7JA5TA==", + "dependencies": { + "@nextui-org/react-rsc-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/ripple": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/ripple/-/ripple-2.0.24.tgz", + "integrity": "sha512-PCvAk9ErhmPX46VRmhsg8yMxw3Qd9LY7BDkRRfIF8KftgRDyOpG2vV8DxvSOxQu1/aqBWkkHNUuEjM/EvSEung==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/shared-icons": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-icons/-/shared-icons-2.0.6.tgz", + "integrity": "sha512-Mw5utPJAclFaeKAZowznEgabI5gdhXrW0iMaMA18Y4zcZRTidAc0WFeGYUlX876NxYLPc1Zk4bZUhQvMe+7uWg==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/shared-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nextui-org/shared-utils/-/shared-utils-2.0.4.tgz", + "integrity": "sha512-Ms7A6UCvo/SZt/9Nmb7cZwHe9fZFw+EPsieTnC1vtpvDNCasxrTB0hj9VWFoYfWOaCzzqxl1AL9maIz/gMvckQ==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/snippet": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/@nextui-org/snippet/-/snippet-2.0.30.tgz", + "integrity": "sha512-8hKxqKpbJIMqFVedzYj90T4td+TkWdOdyYD9+VjywMdezAjsWdr8tqQj7boaMFjVNVSG+Pnw55Pgg/vkpc21aw==", + "dependencies": { + "@nextui-org/button": "2.0.26", + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-icons": "2.0.6", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/tooltip": "2.0.29", + "@nextui-org/use-clipboard": "2.0.4", + "@react-aria/focus": "^3.14.3", + "@react-aria/utils": "^3.21.1" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/spinner": { + "version": "2.0.24", + "resolved": "https://registry.npmjs.org/@nextui-org/spinner/-/spinner-2.0.24.tgz", + "integrity": "sha512-s/q2FmxGPNEqA0ifWfc7xgs5a5D9c3xKkxL3n7jDoRnWo0NPlRsa6QRJGiSL5dHNoUqspRf/lNw2V94Bxk86Pg==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/system-rsc": "2.0.11" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/switch": { + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@nextui-org/switch/-/switch-2.0.25.tgz", + "integrity": "sha512-U7g68eReMSkgG0bBOSdzRLK+npv422YK6WYHpYOSkEBDqGwQ7LCeMRQreT/KxN0QFxIKmafebdLHAbuKc/X+5Q==", + "dependencies": { + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@nextui-org/use-aria-press": "2.0.1", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/switch": "^3.5.6", + "@react-aria/utils": "^3.21.1", + "@react-aria/visually-hidden": "^3.8.6", + "@react-stately/toggle": "^3.6.3", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/system": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@nextui-org/system/-/system-2.0.15.tgz", + "integrity": "sha512-WFDq+Rx6D+gmK1YGEG2RBARPK9EOYonQDt5Tq2tUchzOOqj3kXXcM5Z0F3fudM59eIncLa/tX/ApJSTLry+hsw==", + "dependencies": { + "@nextui-org/system-rsc": "2.0.11", + "@react-aria/i18n": "^3.8.4", + "@react-aria/overlays": "^3.18.1", + "@react-aria/utils": "^3.21.1", + "@react-stately/utils": "^3.8.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/system-rsc": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@nextui-org/system-rsc/-/system-rsc-2.0.11.tgz", + "integrity": "sha512-1QqZ+GM7Ii0rsfSHXS6BBjzKOoLIWwb72nm4h4WgjlMXbRKLZcCQasRHVe5HMSBMvN0JUo7qyGExchfDFl/Ubw==", + "dependencies": { + "clsx": "^1.2.1" + }, + "peerDependencies": { + "@nextui-org/theme": ">=2.1.0", + "react": ">=18", + "tailwind-variants": ">=0.1.13" + } + }, + "node_modules/@nextui-org/system-rsc/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@nextui-org/theme": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/@nextui-org/theme/-/theme-2.1.17.tgz", + "integrity": "sha512-/WeHcMrAcWPGsEVn9M9TnvxKkaYkCocBH9JrDYCEFQoJgleUzHd4nVk7MWtpSOYJXLUzUMY1M9AqAK3jBkw+5g==", + "dependencies": { + "color": "^4.2.3", + "color2k": "^2.0.2", + "deepmerge": "4.3.1", + "flat": "^5.0.2", + "lodash.foreach": "^4.5.0", + "lodash.get": "^4.4.2", + "lodash.kebabcase": "^4.1.1", + "lodash.mapkeys": "^4.6.0", + "lodash.omit": "^4.5.0", + "tailwind-variants": "^0.1.18" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/@nextui-org/tooltip": { + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/@nextui-org/tooltip/-/tooltip-2.0.29.tgz", + "integrity": "sha512-LaFyS5bXhcZFXP9rnh6pTKsYX6siWjzEe5z72FIOyAV2yvv2yhkRiO/mEHKI8moo+/tScW/6muFXsvbEalPefg==", + "dependencies": { + "@nextui-org/aria-utils": "2.0.15", + "@nextui-org/framer-transitions": "2.0.15", + "@nextui-org/react-utils": "2.0.10", + "@nextui-org/shared-utils": "2.0.4", + "@react-aria/interactions": "^3.19.1", + "@react-aria/overlays": "^3.18.1", + "@react-aria/tooltip": "^3.6.4", + "@react-aria/utils": "^3.21.1", + "@react-stately/tooltip": "^3.4.5", + "@react-types/overlays": "^3.8.3", + "@react-types/tooltip": "^3.4.5" + }, + "peerDependencies": { + "@nextui-org/system": ">=2.0.0", + "@nextui-org/theme": ">=2.1.0", + "framer-motion": ">=4.0.0", + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-button": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-button/-/use-aria-button-2.0.6.tgz", + "integrity": "sha512-38DZ3FK/oPZ3sppfM5EtgJ4DITOajNwSKkAMePBmuSZl+bsW7peP8g5JNd9uPOEz3edCOppT60AQSICsYiH3cg==", + "dependencies": { + "@nextui-org/use-aria-press": "2.0.1", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/button": "^3.9.0", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-link": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-link/-/use-aria-link-2.0.15.tgz", + "integrity": "sha512-znzOeTZ10o3O5F2nihi8BR8rAhRHgrRWcEBovV7OqJeFzvTQwsHl9/xy45zBfwJQksBtfcBfQf+GEHXeDwfigA==", + "dependencies": { + "@nextui-org/use-aria-press": "2.0.1", + "@react-aria/focus": "^3.14.3", + "@react-aria/interactions": "^3.19.1", + "@react-aria/utils": "^3.21.1", + "@react-types/link": "^3.5.1", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-press": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-press/-/use-aria-press-2.0.1.tgz", + "integrity": "sha512-T3MjHH5TU9qnkf872GmhcfQK16ITMmMW9zir6xsSsz0w6ay9Y0XTSPrI2zRL6ociFyfJjP840XCLtSx6VBfEBQ==", + "dependencies": { + "@react-aria/interactions": "^3.19.1", + "@react-aria/ssr": "^3.8.0", + "@react-aria/utils": "^3.21.1", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-aria-toggle-button": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nextui-org/use-aria-toggle-button/-/use-aria-toggle-button-2.0.6.tgz", + "integrity": "sha512-6Sjp7a0HQjmboLKNZu9AtZmyHz8+vhqcDwJDYTZjrrna0udxEXG+6C14YZzQxoJcvuaMimr5E8Aq0AxyRAr0MQ==", + "dependencies": { + "@nextui-org/use-aria-button": "2.0.6", + "@react-aria/utils": "^3.21.1", + "@react-stately/toggle": "^3.6.3", + "@react-types/button": "^3.9.0", + "@react-types/shared": "^3.21.0" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nextui-org/use-clipboard/-/use-clipboard-2.0.4.tgz", + "integrity": "sha512-rMcaX0QsolOJ1BQbp1T/FVsSPn2m0Ss4Z+bbdS7eM6EFKtJdVJWlpbrST0/kR2UcW1KWeK27NYmtNPF5+hgZMA==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nextui-org/use-scroll-position": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nextui-org/use-scroll-position/-/use-scroll-position-2.0.4.tgz", + "integrity": "sha512-5ugiHqQ1OptBmujOsJGigbUt/rQ826+8RKYSpBp1uax1eF7TlpigXt6mS1PDsJIyEauHi8rjH5B3weOn1//tug==", + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@react-aria/button": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.9.0.tgz", + "integrity": "sha512-Jri4OCN+4YmpJDPNQvk1DJoskKD9sdTxZaWWWJdAwoSIunZk3IEBXVvRfKzsEAVtI+UJN25zC2kyjXbVPS2XAA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/button": "^3.9.1", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.15.0.tgz", + "integrity": "sha512-nnxRyfqHuAjRwdQ4BpQyZPtGFKZmRU6cnaIb3pqWFCqEyJQensV7MA3TJ4Jhadq67cy1Ji5SYSlr1duBwjoYvw==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/focus/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/form": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.0.0.tgz", + "integrity": "sha512-APeGph9oTO8nro4ZObuy1hk+0hpF/ji9O3odPGhLkzP/HvW2J7NI9pjKJOINfgtYr2yvVUZf/MbTMxPwtAxhaQ==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/form": "^3.0.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.9.0.tgz", + "integrity": "sha512-ebGP/sVG0ZtNF4RNFzs/W01tl7waYpBManh1kKWgA4roDPFt/odkgkDBzKGl+ggBb7TQRHsfUFHuqKsrsMy9TA==", + "dependencies": { + "@internationalized/date": "^3.5.0", + "@internationalized/message": "^3.1.1", + "@internationalized/number": "^3.4.0", + "@internationalized/string": "^3.1.1", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.20.0.tgz", + "integrity": "sha512-JCCEyK2Nb4mEHucrgmqhTHTNAEqhsiM07jJmmY22eikxnCQnsEfdwXyg9cgZLG79D5V7jyqVRqOp2OsG7Qx7kQ==", + "dependencies": { + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/label": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.3.tgz", + "integrity": "sha512-v1zuqbpYyYaPjrBWpceGjMpwP4ne6fLoOXdoIZoKLux2jkAcyIF2kIJFiyYoPQYQJWGRNo7q1oSwamxmng4xJw==", + "dependencies": { + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/link": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.6.2.tgz", + "integrity": "sha512-v9gXgQ3Gev0JOlg2MAXcubDMgX+0BlJ+hTyFYFMuN/4jVBlAe426WKbjg+6MMzxwukWg9C3Q08JzqdFTi4cBng==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/link": "^3.5.2", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.19.0.tgz", + "integrity": "sha512-VN5GkB8+uZ2cfXljBtkqmrsAhBdGoj4un/agH0Qyihi2dazsMeafczSNnqzbpVgB4Zt2UHPJUkKwihgzXRxJJA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/i18n": "^3.9.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/ssr": "^3.9.0", + "@react-aria/utils": "^3.22.0", + "@react-aria/visually-hidden": "^3.8.7", + "@react-stately/overlays": "^3.6.4", + "@react-types/button": "^3.9.1", + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.0.tgz", + "integrity": "sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/switch": { + "version": "3.5.7", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.5.7.tgz", + "integrity": "sha512-zBEsB071zzhQ82RwAA42pFLXHgrpya0OoRAsTO6jHZwiaYMsyqJI2eiXd7F6rqklpgyO6k7jOQklGUuoSJW4pA==", + "dependencies": { + "@react-aria/toggle": "^3.9.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/switch": "^3.5.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/textfield": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.13.0.tgz", + "integrity": "sha512-sUlinDE+k/WhbskyqVOkuffuhiQpjgvp+iGRoralStVgb8Tcb+POxgAlw5jS4tNjdivCb3IjVJemUNJM7xsxxA==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/form": "^3.0.0", + "@react-aria/label": "^3.7.3", + "@react-aria/utils": "^3.22.0", + "@react-stately/form": "^3.0.0", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@react-types/textfield": "^3.9.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/toggle": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.9.0.tgz", + "integrity": "sha512-2YMWYQUEmcoAXtrAE86QXBS9XlmJyV6IFRlMTBNaeLTdH3AmACExgsyU66Tt0sKl6LMDMI376ItMFqAz27BBdQ==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/toggle": "^3.7.0", + "@react-types/checkbox": "^3.6.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/tooltip": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.6.5.tgz", + "integrity": "sha512-hXw4Z8nYLOWz3QOQ807wWZdvDwR3gofsmZhAehg2HPRwdRfCQK+1cjVKeUd9cKCAxs0Cay7dV0oUdilLbCQ2Gg==", + "dependencies": { + "@react-aria/focus": "^3.15.0", + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-stately/tooltip": "^3.4.6", + "@react-types/shared": "^3.22.0", + "@react-types/tooltip": "^3.4.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.22.0.tgz", + "integrity": "sha512-Qi/m65GFFljXA/ayj1m5g3KZdgbZY3jacSSqD5vNUOEGiKsn4OQcsw8RfC2c0SgtLV1hLzsfvFI1OiryPlGCcw==", + "dependencies": { + "@react-aria/ssr": "^3.9.0", + "@react-stately/utils": "^3.9.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0", + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-aria/utils/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.8.7", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.7.tgz", + "integrity": "sha512-OuIGMVQIt7GC43h4x35BgkZid8lhoPu7Xz4TQRP8nvOJWb1lH7ehrRRuGdUsK3y90nwpxTdNdg4DILblg+VaLw==", + "dependencies": { + "@react-aria/interactions": "^3.20.0", + "@react-aria/utils": "^3.22.0", + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/collections": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.10.3.tgz", + "integrity": "sha512-fA28HIApAIz9sNGeOVXZJPgV5Kig6M72KI1t9sUbnRUr9Xq9OMJTR6ElDMXNe0iTeZffRFDOPYyqnX9zkxof6Q==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/form": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.0.0.tgz", + "integrity": "sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==", + "dependencies": { + "@react-types/shared": "^3.22.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.4.tgz", + "integrity": "sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/overlays": "^3.8.4", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/toggle": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.7.0.tgz", + "integrity": "sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g==", + "dependencies": { + "@react-stately/utils": "^3.9.0", + "@react-types/checkbox": "^3.6.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/tooltip": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.4.6.tgz", + "integrity": "sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==", + "dependencies": { + "@react-stately/overlays": "^3.6.4", + "@react-types/tooltip": "^3.4.6", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.9.0.tgz", + "integrity": "sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/button": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.1.tgz", + "integrity": "sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.6.0.tgz", + "integrity": "sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/link": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.5.2.tgz", + "integrity": "sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.4.tgz", + "integrity": "sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/shared": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.22.0.tgz", + "integrity": "sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/switch": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.0.tgz", + "integrity": "sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.9.0.tgz", + "integrity": "sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==", + "dependencies": { + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.4.6.tgz", + "integrity": "sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==", + "dependencies": { + "@react-types/overlays": "^3.8.4", + "@react-types/shared": "^3.22.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", + "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/node": { + "version": "20.5.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", + "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.10", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", + "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" + }, + "node_modules/@types/react": { + "version": "18.2.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", + "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz", + "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", + "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", + "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", + "dependencies": { + "@typescript-eslint/scope-manager": "6.10.0", + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/typescript-estree": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", + "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", + "dependencies": { + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", + "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", + "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", + "dependencies": { + "@typescript-eslint/types": "6.10.0", + "@typescript-eslint/visitor-keys": "6.10.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", + "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", + "dependencies": { + "@typescript-eslint/types": "6.10.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001561", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", + "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color2k": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/color2k/-/color2k-2.0.2.tgz", + "integrity": "sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==" + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.581", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", + "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.48.0.tgz", + "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.48.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.2.tgz", + "integrity": "sha512-CasWThlsyIcg/a+clU6KVOMTieuDhTztsrqvniP6AsRki9v7FnojTa7vKQOYM8QSOsQdZ/aElLD1Y2Oc8/PsIg==", + "dependencies": { + "@next/eslint-plugin-next": "14.0.2", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "10.16.4", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.4.tgz", + "integrity": "sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA==", + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intl-messageformat": { + "version": "10.5.5", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.5.tgz", + "integrity": "sha512-sF+cJCfMn+kGcSeGGRcB1UpBH0/+Ko2KByHj2RpL2qIkRvsrnuDl8zufEkvk+GPosk932C6W1Kq24xWaw+2jDA==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.17.3", + "@formatjs/fast-memoize": "2.2.0", + "@formatjs/icu-messageformat-parser": "2.7.1", + "tslib": "^2.4.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==" + }, + "node_modules/lodash.mapkeys": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapkeys/-/lodash.mapkeys-4.6.0.tgz", + "integrity": "sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/next": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/next/-/next-14.0.2.tgz", + "integrity": "sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg==", + "dependencies": { + "@next/env": "14.0.2", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.31", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.0.2", + "@next/swc-darwin-x64": "14.0.2", + "@next/swc-linux-arm64-gnu": "14.0.2", + "@next/swc-linux-arm64-musl": "14.0.2", + "@next/swc-linux-x64-gnu": "14.0.2", + "@next/swc-linux-x64-musl": "14.0.2", + "@next/swc-win32-arm64-msvc": "14.0.2", + "@next/swc-win32-ia32-msvc": "14.0.2", + "@next/swc-win32-x64-msvc": "14.0.2" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-themes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", + "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "peerDependencies": { + "next": "*", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/next/node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-remove-scroll": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", + "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.4", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", + "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-1.14.0.tgz", + "integrity": "sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwind-variants": { + "version": "0.1.18", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-0.1.18.tgz", + "integrity": "sha512-yoydMYm3FbZRw7wak+E2sqwYv2Uo3YWRqVZR03DGqDGm0ytzDrEnWO/Q/GMHdhaz8adOvycKw/bwCgQFCfmfhg==", + "dependencies": { + "tailwind-merge": "^1.14.0" + }, + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwindcss": "*" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/packages/dapp/package.json b/packages/dapp/package.json new file mode 100644 index 0000000..d8c849d --- /dev/null +++ b/packages/dapp/package.json @@ -0,0 +1,49 @@ +{ + "name": "next-app-template", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@dynamic-labs/ethereum": "^0.19.1", + "@dynamic-labs/sdk-react-core": "^0.19.1", + "@dynamic-labs/wagmi-connector": "^0.19.1", + "@nextui-org/button": "2.0.26", + "@nextui-org/code": "2.0.24", + "@nextui-org/input": "2.1.16", + "@nextui-org/kbd": "2.0.25", + "@nextui-org/link": "2.0.26", + "@nextui-org/navbar": "2.0.27", + "@nextui-org/react": "^2.2.9", + "@nextui-org/snippet": "2.0.30", + "@nextui-org/switch": "2.0.25", + "@nextui-org/system": "2.0.15", + "@nextui-org/theme": "2.1.17", + "@react-aria/ssr": "^3.8.0", + "@react-aria/visually-hidden": "^3.8.6", + "@types/node": "20.5.7", + "@types/react": "18.2.21", + "@types/react-dom": "18.2.7", + "autoprefixer": "10.4.16", + "clsx": "^2.0.0", + "eslint": "8.48.0", + "eslint-config-next": "14.0.2", + "framer-motion": "^10.16.4", + "intl-messageformat": "^10.5.0", + "next": "14.0.2", + "next-themes": "^0.2.1", + "postcss": "8.4.31", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwind-variants": "^0.1.18", + "tailwindcss": "3.3.5", + "typescript": "5.0.4" + }, + "devDependencies": { + "pino-pretty": "^10.2.3" + } +} diff --git a/packages/dapp/postcss.config.js b/packages/dapp/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/packages/dapp/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/dapp/public/coins/agve.svg b/packages/dapp/public/coins/agve.svg new file mode 100644 index 0000000..a0b46ad --- /dev/null +++ b/packages/dapp/public/coins/agve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/dai.svg b/packages/dapp/public/coins/dai.svg new file mode 100644 index 0000000..b484f06 --- /dev/null +++ b/packages/dapp/public/coins/dai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/eth.svg b/packages/dapp/public/coins/eth.svg new file mode 100644 index 0000000..182d547 --- /dev/null +++ b/packages/dapp/public/coins/eth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/eure.svg b/packages/dapp/public/coins/eure.svg new file mode 100644 index 0000000..14f8618 --- /dev/null +++ b/packages/dapp/public/coins/eure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/fox.svg b/packages/dapp/public/coins/fox.svg new file mode 100644 index 0000000..0b33e60 --- /dev/null +++ b/packages/dapp/public/coins/fox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/gno.svg b/packages/dapp/public/coins/gno.svg new file mode 100644 index 0000000..06cb34d --- /dev/null +++ b/packages/dapp/public/coins/gno.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/link.svg b/packages/dapp/public/coins/link.svg new file mode 100644 index 0000000..b28c30b --- /dev/null +++ b/packages/dapp/public/coins/link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/sdai.svg b/packages/dapp/public/coins/sdai.svg new file mode 100644 index 0000000..114a9db --- /dev/null +++ b/packages/dapp/public/coins/sdai.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/dapp/public/coins/usdc.svg b/packages/dapp/public/coins/usdc.svg new file mode 100644 index 0000000..eb615f4 --- /dev/null +++ b/packages/dapp/public/coins/usdc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/usdt.svg b/packages/dapp/public/coins/usdt.svg new file mode 100644 index 0000000..3b2999d --- /dev/null +++ b/packages/dapp/public/coins/usdt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/wbtc.svg b/packages/dapp/public/coins/wbtc.svg new file mode 100644 index 0000000..79b5cc7 --- /dev/null +++ b/packages/dapp/public/coins/wbtc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/wsteth.svg b/packages/dapp/public/coins/wsteth.svg new file mode 100644 index 0000000..33f1f2f --- /dev/null +++ b/packages/dapp/public/coins/wsteth.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/packages/dapp/public/coins/wxdai.svg b/packages/dapp/public/coins/wxdai.svg new file mode 100644 index 0000000..75b90e3 --- /dev/null +++ b/packages/dapp/public/coins/wxdai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/xdai-stake.svg b/packages/dapp/public/coins/xdai-stake.svg new file mode 100644 index 0000000..db23ee3 --- /dev/null +++ b/packages/dapp/public/coins/xdai-stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/coins/xdai.svg b/packages/dapp/public/coins/xdai.svg new file mode 100644 index 0000000..75b90e3 --- /dev/null +++ b/packages/dapp/public/coins/xdai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/favicon.ico b/packages/dapp/public/favicon.ico new file mode 100644 index 0000000..718d6fe Binary files /dev/null and b/packages/dapp/public/favicon.ico differ diff --git a/packages/dapp/public/next.svg b/packages/dapp/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/packages/dapp/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/public/vercel.svg b/packages/dapp/public/vercel.svg new file mode 100644 index 0000000..d2f8422 --- /dev/null +++ b/packages/dapp/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/dapp/styles/globals.css b/packages/dapp/styles/globals.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/packages/dapp/styles/globals.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/packages/dapp/tailwind.config.js b/packages/dapp/tailwind.config.js new file mode 100644 index 0000000..8e57551 --- /dev/null +++ b/packages/dapp/tailwind.config.js @@ -0,0 +1,16 @@ +import {nextui} from '@nextui-org/theme' + +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}', + './node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}' + ], + theme: { + extend: {}, + }, + darkMode: "class", + plugins: [nextui()], +} diff --git a/packages/dapp/tsconfig.json b/packages/dapp/tsconfig.json new file mode 100644 index 0000000..e06a445 --- /dev/null +++ b/packages/dapp/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/dapp/types/index.ts b/packages/dapp/types/index.ts new file mode 100644 index 0000000..1a73f1b --- /dev/null +++ b/packages/dapp/types/index.ts @@ -0,0 +1,5 @@ +import {SVGProps} from "react"; + +export type IconSvgProps = SVGProps & { + size?: number; +}; diff --git a/packages/hooks/.env.example b/packages/hooks/.env.example new file mode 100644 index 0000000..1297f16 --- /dev/null +++ b/packages/hooks/.env.example @@ -0,0 +1,5 @@ +ANVIL_CHAIN_ID=31337 +ANVIL_FORK_URL=https://cloudflare-eth.com +ETHERSCAN_API_KEY= +FORGE_RPC_URL= +VITE_INFURA_API_KEY="" diff --git a/packages/hooks/.gitignore b/packages/hooks/.gitignore new file mode 100644 index 0000000..b62bf08 --- /dev/null +++ b/packages/hooks/.gitignore @@ -0,0 +1,52 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies + +/node_modules +/.pnp +.pnp.js + +# testing + +/coverage + +# vite + +dist +dist-ssr + +# production + +/build + +# misc + +.DS_Store +\*.pem +*.local + +# debug + +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files + +.env +.env\*.local + +# vercel + +.vercel + +# typescript + +\*.tsbuildinfo +next-env.d.ts + +# forge + +out +cache \ No newline at end of file diff --git a/packages/hooks/.gitmodules b/packages/hooks/.gitmodules new file mode 100644 index 0000000..994702e --- /dev/null +++ b/packages/hooks/.gitmodules @@ -0,0 +1,5 @@ +[submodule "contracts/lib/forge-std"] + path = contracts/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "lib/forge-std"] + branch = v1.2.0 diff --git a/packages/hooks/.npmrc b/packages/hooks/.npmrc new file mode 100644 index 0000000..8db3575 --- /dev/null +++ b/packages/hooks/.npmrc @@ -0,0 +1 @@ +strict-peer-dependencies = false \ No newline at end of file diff --git a/packages/hooks/README.md b/packages/hooks/README.md new file mode 100644 index 0000000..e38b1da --- /dev/null +++ b/packages/hooks/README.md @@ -0,0 +1,115 @@ +This is a [wagmi](https://wagmi.sh) + [Foundry](https://book.getfoundry.sh/) + [Vite](https://vitejs.dev/) project bootstrapped with [`create-wagmi`](https://github.com/wagmi-dev/wagmi/tree/main/packages/create-wagmi) + +# Getting Started + +Run `npm run dev` in your terminal, and then open [localhost:5173](http://localhost:5173) in your browser. + +Once the webpage has loaded, changes made to files inside the `src/` directory (e.g. `src/App.tsx`) will automatically update the webpage. + +# Generating ABIs & React Hooks + +This project comes with `@wagmi/cli` built-in, which means you can generate wagmi-compatible (type safe) ABIs & React Hooks straight from the command line. + +To generate ABIs & Hooks, follow the steps below. + +## Install Foundry + +First, you will need to install [Foundry](https://book.getfoundry.sh/getting-started/installation) in order to build your smart contracts. This can be done by running the following command: + +``` +curl -L https://foundry.paradigm.xyz | bash +``` + +## Generate code + +To generate ABIs & React Hooks from your Foundry project (in `./contracts`), you can run: + +``` +npm run wagmi +``` + +This will use the wagmi config (`wagmi.config.ts`) to generate a `src/generated.ts` file which will include your ABIs & Hooks that you can start using in your project. + +[Here is an example](./src/components/Counter.tsx) of where Hooks from the generated file is being used. + +# Deploying Contracts + +To deploy your contracts to a network, you can use Foundry's [Forge](https://book.getfoundry.sh/forge/) – a command-line tool to tests, build, and deploy your smart contracts. + +You can read a more in-depth guide on using Forge to deploy a smart contract [here](https://book.getfoundry.sh/forge/deploying), but we have included a simple script in the `package.json` to get you started. + +Below are the steps to deploying a smart contract to Ethereum Mainnet using Forge: + +## Install Foundry + +Make sure you have Foundry installed & set up. + +[See the above instructions](#install-foundry). + +## Set up environment + +You will first need to set up your `.env` to tell Forge where to deploy your contract. + +Go ahead and open up your `.env` file, and enter the following env vars: + +- `ETHERSCAN_API_KEY`: Your Etherscan API Key. +- `FORGE_RPC_URL`: The RPC URL of the network to deploy to. +- `FORGE_PRIVATE_KEY`: The private key of the wallet you want to deploy from. + +## Deploy contract + +You can now deploy your contract! + +``` +npm run deploy +``` + +# Developing with Anvil (Mainnet Fork) + +Let's combine the above sections and use Anvil alongside our development environment to use our contracts (`./contracts`) against an Ethereum Mainnet fork. + +## Install Foundry + +Make sure you have Foundry installed & set up. + +[See the above instructions](#install-foundry). + +## Start dev server + +Run the command: + +``` +npm run dev:foundry +``` + +This will: + +- Start a Next.js dev server, +- Start the `@wagmi/cli` in [**watch mode**](https://wagmi.sh/cli/commands/generate#options) to listen to changes in our contracts, and instantly generate code, +- Start an Anvil instance (Mainnet Fork) on an RPC URL. + +## Deploy our contract to Anvil + +Now that we have an Anvil instance up and running, let's deploy our smart contract to the Anvil network: + +``` +pnpm run deploy:anvil +``` + +## Start developing + +Now that your contract has been deployed to Anvil, you can start playing around with your contract straight from the web interface! + +Head to [localhost:5173](http://localhost:5173) in your browser, connect your wallet, and try increment the counter on the Foundry chain. + +> Tip: If you import an Anvil private key into your browser wallet (MetaMask, Coinbase Wallet, etc) – you will have 10,000 ETH to play with 😎. The private key is found in the terminal under "Private Keys" when you start up an Anvil instance with `npm run dev:foundry`. + +# Learn more + +To learn more about [Vite](https://vitejs.dev/), [Foundry](https://book.getfoundry.sh/) or [wagmi](https://wagmi.sh), check out the following resources: + +- [Foundry Documentation](https://book.getfoundry.sh/) – learn more about the Foundry stack (Anvil, Forge, etc). +- [wagmi Documentation](https://wagmi.sh) – learn about wagmi Hooks and API. +- [wagmi Examples](https://wagmi.sh/examples/connect-wallet) – a suite of simple examples using wagmi. +- [@wagmi/cli Documentation](https://wagmi.sh/cli) – learn more about the wagmi CLI. +- [Vite Documentation](https://vitejs.dev/) – learn about Vite features and API. diff --git a/packages/hooks/foundry.toml b/packages/hooks/foundry.toml new file mode 100644 index 0000000..ec707e7 --- /dev/null +++ b/packages/hooks/foundry.toml @@ -0,0 +1,8 @@ +[profile.default] +src = 'contracts/src' +test = 'contracts/test' +out = 'contracts/out' +libs = ['contracts/lib'] +solc = '0.8.13' + +# See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/packages/hooks/index.html b/packages/hooks/index.html new file mode 100644 index 0000000..651c332 --- /dev/null +++ b/packages/hooks/index.html @@ -0,0 +1,13 @@ + + + + + + wagmi + + + +
+ + + diff --git a/packages/hooks/package.json b/packages/hooks/package.json new file mode 100644 index 0000000..6f1a293 --- /dev/null +++ b/packages/hooks/package.json @@ -0,0 +1,48 @@ +{ + "name": "hooks", + "version": "0.0.1", + "private": true, + "scripts": { + "anvil": "source .env && anvil --fork-url $ANVIL_FORK_URL --chain-id $ANVIL_CHAIN_ID", + "deploy": "source .env && forge create contracts/src/Counter.sol:Counter --rpc-url $FORGE_RPC_URL --private-key $FORGE_PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY --verify", + "deploy:anvil": "source .env && forge create contracts/src/Counter.sol:Counter --rpc-url http://127.0.0.1:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", + "dev": "npm run wagmi && vite", + "dev:foundry": "npm run dev & wagmi generate --watch & npm run anvil", + "build": "npm run wagmi && tsc && vite build", + "preview": "vite preview", + "wagmi": "wagmi generate" + }, + "dependencies": { + "@aragon/osx-ethers": "1.3.0-rc0.4", + "@aragon/sdk-client": "^1.18.2", + "@aragon/sdk-client-common": "^1.10.0", + "@hookform/resolvers": "^3.3.2", + "@tanstack/react-query": "^5.7.0", + "@tanstack/react-query-devtools": "^5.7.0", + "@wagmi/cli": "^1.0.0", + "buffer": "^6.0.3", + "connectkit": "^1.4.0", + "graphql-request": "^6.1.0", + "process": "^0.11.10", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.48.2", + "util": "^0.12.4", + "viem": "~0.3.36", + "wagmi": "^1.0.6", + "zod": "^3.22.4" + }, + "devDependencies": { + "@types/react": "^18.0.9", + "@types/react-dom": "^18.0.3", + "@vitejs/plugin-react": "^4.0.0", + "autoprefixer": "^10.4.16", + "postcss": "^8.4.31", + "tailwindcss": "^3.3.5", + "typescript": "^5.0.4", + "vite": "^4.3.5" + }, + "prettier": { + "printWidth": 120 + } +} \ No newline at end of file diff --git a/packages/hooks/polyfills.ts b/packages/hooks/polyfills.ts new file mode 100644 index 0000000..57e078c --- /dev/null +++ b/packages/hooks/polyfills.ts @@ -0,0 +1,6 @@ +import { Buffer } from 'buffer' +import process from 'process' + +window.global = window +window.process = process +window.Buffer = Buffer diff --git a/packages/hooks/src/App.tsx b/packages/hooks/src/App.tsx new file mode 100644 index 0000000..12e1c47 --- /dev/null +++ b/packages/hooks/src/App.tsx @@ -0,0 +1,46 @@ +import { useAccount } from "wagmi"; +import { ConnectKitButton } from "connectkit"; + +import { InstallPlugin } from "./budget/InstallPlugin"; +import { NewRootBudget } from "./budget/CreateRootBudget"; +import { BudgetInfo } from "./budget/BudgetInfo"; +import { BudgetSelector } from "./budget/BudgetSelector"; +import { DaoDetails } from "./budget/DaoDetails"; +import { useStore } from "./hooks"; + +export function App() { + const { isConnected } = useAccount(); + const { hasDao, hasBudget } = useStore(); + + return ( + <> +

Budgets Hooks

+ USDC: 0x7e356025b80B220661c859d134ae12146f73f335 +

(DAO): 0x5bb4f8d77a072cdcfdb5e47da248c579e70be597

+ + +
+ {isConnected && hasDao && ( + <> + {!hasBudget ? ( + <> +

no budget found for this DAO

+
+ +
+ + ) : ( + <> + +
+ +
+ +
+ + )} + + )} + + ); +} diff --git a/packages/hooks/src/budget/BudgetInfo.tsx b/packages/hooks/src/budget/BudgetInfo.tsx new file mode 100644 index 0000000..3ef484b --- /dev/null +++ b/packages/hooks/src/budget/BudgetInfo.tsx @@ -0,0 +1,33 @@ +import { useBudgetInfo } from "../hooks/useBudgetInfo"; +import { UsePaymentStatus, usePayment } from "../hooks/usePayment"; +import { stringifyWithBigInt } from "../lib/strings"; + +export function BudgetInfo() { + const { budgetInfo } = useBudgetInfo(); + const { status, executePaymentAsync } = usePayment(); + + const disabled = status === UsePaymentStatus.WaitingForConfirmation || status === UsePaymentStatus.WaitingForSigner; + + const handleExecutePayment = () => { + executePaymentAsync?.({ + amount: 42069n, + budgetId: 6, + description: "testing", + to: "0x47d80912400ef8f8224531EBEB1ce8f2ACf4b75a", + }); + }; + + return ( +
+

Budget Info

+ {budgetInfo && ( +
+
{stringifyWithBigInt(budgetInfo)}
+ +
+ )} +
+ ); +} diff --git a/packages/hooks/src/budget/BudgetSelector.tsx b/packages/hooks/src/budget/BudgetSelector.tsx new file mode 100644 index 0000000..2448007 --- /dev/null +++ b/packages/hooks/src/budget/BudgetSelector.tsx @@ -0,0 +1,24 @@ +import { useBudgetCount } from "../hooks/useBudgetCount"; +import { useStore } from "../hooks"; + +export function BudgetSelector() { + const { setActiveBudget } = useStore(); + const { budgetCount } = useBudgetCount(); + + return ( + <> + {budgetCount ? ( +
+

Budgets

+ {Array.from({ length: Number(budgetCount) }, (_, index) => ( + + ))} +
+ ) : ( +

No Budgets

+ )} + + ); +} diff --git a/packages/hooks/src/budget/CreateRootBudget.tsx b/packages/hooks/src/budget/CreateRootBudget.tsx new file mode 100644 index 0000000..118de12 --- /dev/null +++ b/packages/hooks/src/budget/CreateRootBudget.tsx @@ -0,0 +1,65 @@ +import { NewRootBudgetStatus, useNewRootBudget } from "../hooks/useNewRootBudget"; + +import { ProcessingMessage } from "../components/ProcessingMessage"; +import { useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { TimeUnit } from "../types"; + +import { RootBudgetFormType, rootBudgetSchema } from "../types/schema"; + +export function NewRootBudget() { + const { + register, + handleSubmit, + formState: { errors }, + } = useForm({ + resolver: zodResolver(rootBudgetSchema), + }); + + const { error, newRootBudget, txHash, status } = useNewRootBudget(); + + const isButtonDisabled = + status === NewRootBudgetStatus.WaitingForSigner || status === NewRootBudgetStatus.WaitingForConfirmation; + + const onSubmit = (data: RootBudgetFormType) => { + console.log(data); + + newRootBudget?.(data); + }; + + return ( +
+

New Root Budget

+
+
+ + {errors.spender &&
{errors.spender.message}
} + + + {errors.token &&
{errors.token.message}
} + + + {errors.amount &&
{errors.amount.message}
} + + + {errors.recurrency &&
{errors.recurrency.message}
} + + + {errors.name &&
{errors.name.message}
} + + + {txHash && } + {error &&
Error: {error.message}
} +
+
+
+ ); +} diff --git a/packages/hooks/src/budget/DaoDetails.tsx b/packages/hooks/src/budget/DaoDetails.tsx new file mode 100644 index 0000000..4c3188f --- /dev/null +++ b/packages/hooks/src/budget/DaoDetails.tsx @@ -0,0 +1,40 @@ +import { z } from "zod"; +import { useForm } from "react-hook-form"; +import { zodResolver } from "@hookform/resolvers/zod"; + +import { useLoadDao } from "../hooks/useLoadDao"; +import { EthAddress } from "../types/schema"; + +export function DaoDetails() { + const { loadDao, dao } = useLoadDao(); + + const schema = z.object({ + daoAddress: EthAddress, + }); + + type FormValues = z.infer; + const { + register, + handleSubmit, + formState: { errors }, + } = useForm({ + resolver: zodResolver(schema), + }); + + const onSubmit = (data: FormValues) => { + loadDao(data.daoAddress); + }; + + return ( +
+

DAO Details

+
+ + + {errors.daoAddress &&

{errors.daoAddress.message}

} + + {dao &&
{JSON.stringify(dao, null, 2)}
} +
+
+ ); +} diff --git a/packages/hooks/src/budget/InstallPlugin.tsx b/packages/hooks/src/budget/InstallPlugin.tsx new file mode 100644 index 0000000..e5b1f76 --- /dev/null +++ b/packages/hooks/src/budget/InstallPlugin.tsx @@ -0,0 +1,24 @@ +import { useInstallBudget, useStore } from "../hooks"; +import { ProcessingMessage } from "../components/ProcessingMessage"; +import { InstallBudgetStatus } from "../hooks/useInstallBudget"; + +export function InstallPlugin() { + const { daoAddress, tokenVotingAddress } = useStore(); + const { installPlugin, prepareTxHash, installTxHash, error, status } = useInstallBudget(); + + const isDisabled = status !== InstallBudgetStatus.Idle || !daoAddress || !tokenVotingAddress; + + return ( +
+

Install Budget

+
+ + {prepareTxHash && } + {installTxHash && } + {error &&
Error: {error.message}
} +
+
+ ); +} diff --git a/packages/hooks/src/components/Account.tsx b/packages/hooks/src/components/Account.tsx new file mode 100644 index 0000000..071b5fe --- /dev/null +++ b/packages/hooks/src/components/Account.tsx @@ -0,0 +1,13 @@ +import { useAccount, useEnsName } from 'wagmi' + +export function Account() { + const { address } = useAccount() + const { data: ensName } = useEnsName({ address }) + + return ( +
+ {ensName ?? address} + {ensName ? ` (${address})` : null} +
+ ) +} diff --git a/packages/hooks/src/components/Connect.tsx b/packages/hooks/src/components/Connect.tsx new file mode 100644 index 0000000..6aad518 --- /dev/null +++ b/packages/hooks/src/components/Connect.tsx @@ -0,0 +1,32 @@ +import { BaseError } from 'viem' +import { useAccount, useConnect, useDisconnect } from 'wagmi' + +export function Connect() { + const { connector, isConnected } = useAccount() + const { connect, connectors, error, isLoading, pendingConnector } = + useConnect() + const { disconnect } = useDisconnect() + + return ( +
+
+ {isConnected && ( + + )} + + {connectors + .filter((x) => x.ready && x.id !== connector?.id) + .map((x) => ( + + ))} +
+ + {error &&
{(error as BaseError).shortMessage}
} +
+ ) +} diff --git a/packages/hooks/src/components/NetworkSwitcher.tsx b/packages/hooks/src/components/NetworkSwitcher.tsx new file mode 100644 index 0000000..b0371ee --- /dev/null +++ b/packages/hooks/src/components/NetworkSwitcher.tsx @@ -0,0 +1,34 @@ +import { BaseError } from 'viem' +import { useNetwork, useSwitchNetwork } from 'wagmi' + +export function NetworkSwitcher() { + const { chain } = useNetwork() + const { chains, error, isLoading, pendingChainId, switchNetwork } = + useSwitchNetwork() + + if (!chain) return null + + return ( +
+
+ Connected to {chain?.name ?? chain?.id} + {chain?.unsupported && ' (unsupported)'} +
+ + {switchNetwork && ( +
+ {chains.map((x) => + x.id === chain?.id ? null : ( + + ), + )} +
+ )} + +
{error && (error as BaseError).shortMessage}
+
+ ) +} diff --git a/packages/hooks/src/components/ProcessingMessage.tsx b/packages/hooks/src/components/ProcessingMessage.tsx new file mode 100644 index 0000000..754534a --- /dev/null +++ b/packages/hooks/src/components/ProcessingMessage.tsx @@ -0,0 +1,21 @@ +import { useNetwork, useWaitForTransaction } from "wagmi"; +import { BytesLike } from "../types"; + +export function ProcessingMessage({ hash, name }: { hash?: BytesLike; name: string }) { + const { chain } = useNetwork(); + const etherscan = chain?.blockExplorers?.etherscan; + + const { data, isError, isLoading } = useWaitForTransaction({ hash }); + + let message; + if (isError) message = `Error occurred during ${name} transaction.`; + else if (isLoading) message = `Waiting for ${name} transaction to be mined... `; + else if (data) message = `${name} transaction mined.`; + else message = `Processing ${name} transaction... `; + + return ( + + {message} {etherscan && {etherscan.name}} + + ); +} diff --git a/packages/hooks/src/generated.ts b/packages/hooks/src/generated.ts new file mode 100644 index 0000000..0748f85 --- /dev/null +++ b/packages/hooks/src/generated.ts @@ -0,0 +1,24185 @@ +// Generated by @wagmi/cli@1.0.0 on 11/11/2023 at 9:04:22 PM +import { + useContractRead, + UseContractReadConfig, + useContractWrite, + UseContractWriteConfig, + usePrepareContractWrite, + UsePrepareContractWriteConfig, + useContractEvent, + UseContractEventConfig, +} from 'wagmi' +import { ReadContractResult, WriteContractMode, PrepareWriteContractResult } from 'wagmi/actions' + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Budget +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const budgetABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { type: 'error', inputs: [], name: 'BadInput' }, + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [{ name: 'allowanceId', internalType: 'uint256', type: 'uint256' }], + name: 'DisabledAllowance', + }, + { type: 'error', inputs: [], name: 'InheritedAmountNotAllowed' }, + { type: 'error', inputs: [], name: 'InvalidTimeShift' }, + { type: 'error', inputs: [], name: 'NativeValueMismatch' }, + { + type: 'error', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'remainingBudget', internalType: 'uint256', type: 'uint256' }, + ], + name: 'Overbudget', + }, + { + type: 'error', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'PaymentExecutionFailed', + }, + { + type: 'error', + inputs: [ + { name: 'patentToken', internalType: 'address', type: 'address' }, + { name: 'childToken', internalType: 'address', type: 'address' }, + ], + name: 'TokenMismatch', + }, + { + type: 'error', + inputs: [{ name: 'allowanceId', internalType: 'uint256', type: 'uint256' }], + name: 'UnauthorizedNotAllowanceAdmin', + }, + { type: 'error', inputs: [], name: 'UnauthorizedNotDao' }, + { + type: 'error', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'actor', internalType: 'address', type: 'address' }, + ], + name: 'UnauthorizedPaymentExecution', + }, + { + type: 'error', + inputs: [{ name: 'allowanceId', internalType: 'uint256', type: 'uint256' }], + name: 'UnexistentAllowance', + }, + { type: 'error', inputs: [], name: 'ZeroAmountPayment' }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'AllowanceAmountChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'parentAllowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'recurrency', internalType: 'EncodedTimeShift', type: 'bytes6', indexed: false }, + { name: 'nextResetTime', internalType: 'uint40', type: 'uint40', indexed: false }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'AllowanceCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'nextResetTime', internalType: 'uint40', type: 'uint40', indexed: false }, + { name: 'description', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AllowanceDebited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'AllowanceNameChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'spender', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AllowanceSpenderChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'isEnabled', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'AllowanceStateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: false }, + { name: 'tos', internalType: 'address[]', type: 'address[]', indexed: false }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]', indexed: false }, + { name: 'nextResetTime', internalType: 'uint40', type: 'uint40', indexed: false }, + { name: 'description', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'MultiPaymentExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: false }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'nextResetTime', internalType: 'uint40', type: 'uint40', indexed: false }, + { name: 'description', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'PaymentExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ROOT_BUDGET_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'allowances', + outputs: [ + { name: 'parentId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'spent', internalType: 'uint256', type: 'uint256' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'nextResetTime', internalType: 'uint40', type: 'uint40' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'recurrency', internalType: 'EncodedTimeShift', type: 'bytes6' }, + { name: 'isDisabled', internalType: 'bool', type: 'bool' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'allowancesCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'parentAllowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'token', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'recurrency', internalType: 'EncodedTimeShift', type: 'bytes6' }, + { name: 'name', internalType: 'string', type: 'string' }, + ], + name: 'createAllowance', + outputs: [{ name: 'allowanceId', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'description', internalType: 'bytes', type: 'bytes' }, + ], + name: 'debitAllowance', + outputs: [{ name: 'nextResetTime', internalType: 'uint40', type: 'uint40' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'tos', internalType: 'address[]', type: 'address[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'description', internalType: 'string', type: 'string' }, + ], + name: 'executeMultiPayment', + outputs: [{ name: 'nextResetTime', internalType: 'uint40', type: 'uint40' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'description', internalType: 'string', type: 'string' }, + ], + name: 'executePayment', + outputs: [{ name: 'nextResetTime', internalType: 'uint40', type: 'uint40' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_dao', internalType: 'contract IDAO', type: 'address' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'actor', internalType: 'address', type: 'address' }, + ], + name: 'isAdminOnAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [{ name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'setAllowanceAmount', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'name', internalType: 'string', type: 'string' }, + ], + name: 'setAllowanceName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'setAllowanceSpender', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'allowanceId', internalType: 'uint256', type: 'uint256' }, + { name: 'isEnabled', internalType: 'bool', type: 'bool' }, + ], + name: 'setAllowanceState', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// BudgetSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const budgetSetupABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'prepareInstallation', + outputs: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_currentBuild', internalType: 'uint16', type: 'uint16' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CallbackHandler +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const callbackHandlerABI = [ + { + type: 'error', + inputs: [ + { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'magicNumber', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'UnkownCallback', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: false }, + { name: 'sig', internalType: 'bytes4', type: 'bytes4', indexed: true }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'CallbackReceived', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ContextUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const contextUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DAO +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { type: 'error', inputs: [{ name: 'index', internalType: 'uint256', type: 'uint256' }], name: 'ActionFailed' }, + { type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere' }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionInterfacNotSupported', + }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionNotAContract', + }, + { type: 'error', inputs: [], name: 'FunctionRemoved' }, + { type: 'error', inputs: [], name: 'GrantWithConditionNotSupported' }, + { type: 'error', inputs: [], name: 'InsufficientGas' }, + { + type: 'error', + inputs: [ + { name: 'expected', internalType: 'uint256', type: 'uint256' }, + { name: 'actual', internalType: 'uint256', type: 'uint256' }, + ], + name: 'NativeTokenDepositAmountMismatch', + }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'currentCondition', internalType: 'address', type: 'address' }, + { name: 'newCondition', internalType: 'address', type: 'address' }, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + { type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed' }, + { + type: 'error', + inputs: [{ name: 'protocolVersion', internalType: 'uint8[3]', type: 'uint8[3]' }], + name: 'ProtocolVersionUpgradeNotSupported', + }, + { type: 'error', inputs: [], name: 'ReentrantCall' }, + { type: 'error', inputs: [], name: 'TooManyActions' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'Unauthorized', + }, + { + type: 'error', + inputs: [ + { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4' }, + { name: 'magicNumber', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'UnkownCallback', + }, + { type: 'error', inputs: [], name: 'ZeroAmount' }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: false }, + { name: 'sig', internalType: 'bytes4', type: 'bytes4', indexed: true }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'CallbackReceived', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: true }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: '_reference', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'Deposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'callId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'failureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'execResults', internalType: 'bytes[]', type: 'bytes[]', indexed: false }, + ], + name: 'Executed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + { name: 'condition', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }], + name: 'MetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'NativeTokenDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'daoURI', internalType: 'string', type: 'string', indexed: false }], + name: 'NewURI', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'Revoked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'interfaceId', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'magicNumber', internalType: 'bytes4', type: 'bytes4', indexed: false }, + ], + name: 'StandardCallbackRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'forwarder', internalType: 'address', type: 'address', indexed: false }], + name: 'TrustedForwarderSet', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { stateMutability: 'nonpayable', type: 'fallback' }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'EXECUTE_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REGISTER_STANDARD_CALLBACK_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SET_METADATA_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'SET_TRUSTED_FORWARDER_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_DAO_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'VALIDATE_SIGNATURE_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'daoURI', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_reference', internalType: 'string', type: 'string' }, + ], + name: 'deposit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_callId', internalType: 'bytes32', type: 'bytes32' }, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_allowFailureMap', internalType: 'uint256', type: 'uint256' }, + ], + name: 'execute', + outputs: [ + { name: 'execResults', internalType: 'bytes[]', type: 'bytes[]' }, + { name: 'failureMap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getTrustedForwarder', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'grant', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_condition', internalType: 'contract IPermissionCondition', type: 'address' }, + ], + name: 'grantWithCondition', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'hasPermission', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_metadata', internalType: 'bytes', type: 'bytes' }, + { name: '_initialOwner', internalType: 'address', type: 'address' }, + { name: '_trustedForwarder', internalType: 'address', type: 'address' }, + { name: 'daoURI_', internalType: 'string', type: 'string' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_previousProtocolVersion', internalType: 'uint8[3]', type: 'uint8[3]' }, + { name: '_initData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'initializeFrom', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isValidSignature', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }, + { name: '_callbackSelector', internalType: 'bytes4', type: 'bytes4' }, + { name: '_magicNumber', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'registerStandardCallback', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'revoke', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newDaoURI', internalType: 'string', type: 'string' }], + name: 'setDaoURI', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_metadata', internalType: 'bytes', type: 'bytes' }], + name: 'setMetadata', + outputs: [], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setSignatureValidator', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_newTrustedForwarder', internalType: 'address', type: 'address' }], + name: 'setTrustedForwarder', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DAOMock +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoMockABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: 'initialOwner', internalType: 'address', type: 'address' }], + }, + { type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere' }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionInterfacNotSupported', + }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionNotAContract', + }, + { type: 'error', inputs: [], name: 'GrantWithConditionNotSupported' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'currentCondition', internalType: 'address', type: 'address' }, + { name: 'newCondition', internalType: 'address', type: 'address' }, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + { type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'Unauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: true }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: '_reference', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'Deposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'callId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'failureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'execResults', internalType: 'bytes[]', type: 'bytes[]', indexed: false }, + ], + name: 'Executed', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + { name: 'condition', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }], + name: 'MetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'NativeTokenDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'Revoked', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'interfaceId', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'magicNumber', internalType: 'bytes4', type: 'bytes4', indexed: false }, + ], + name: 'StandardCallbackRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'forwarder', internalType: 'address', type: 'address', indexed: false }], + name: 'TrustedForwarderSet', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'string', type: 'string' }, + ], + name: 'deposit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'callId', internalType: 'bytes32', type: 'bytes32' }, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256' }, + ], + name: 'execute', + outputs: [ + { name: 'execResults', internalType: 'bytes[]', type: 'bytes[]' }, + { name: 'failureMap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'getTrustedForwarder', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'grant', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_condition', internalType: 'contract IPermissionCondition', type: 'address' }, + ], + name: 'grantWithCondition', + outputs: [], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'bytes32', type: 'bytes32' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'hasPermission', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [ + { name: '', internalType: 'bytes32', type: 'bytes32' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isValidSignature', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '', internalType: 'address', type: 'address' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + name: 'pastVotes', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }, + { name: '_callbackSelector', internalType: 'bytes4', type: 'bytes4' }, + { name: '_magicNumber', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'registerStandardCallback', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'revoke', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + name: 'setMetadata', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setSignatureValidator', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setTrustedForwarder', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DaoAuthorizableUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daoAuthorizableUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ENS +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ensABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'operator', internalType: 'address', type: 'address', indexed: true }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'label', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'owner', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'NewOwner', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'resolver', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'NewResolver', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'ttl', internalType: 'uint64', type: 'uint64', indexed: false }, + ], + name: 'NewTTL', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'owner', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'recordExists', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'resolver', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + ], + name: 'setOwner', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'resolver', internalType: 'address', type: 'address' }, + { name: 'ttl', internalType: 'uint64', type: 'uint64' }, + ], + name: 'setRecord', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'resolver', internalType: 'address', type: 'address' }, + ], + name: 'setResolver', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'label', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + ], + name: 'setSubnodeOwner', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'label', internalType: 'bytes32', type: 'bytes32' }, + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'resolver', internalType: 'address', type: 'address' }, + { name: 'ttl', internalType: 'uint64', type: 'uint64' }, + ], + name: 'setSubnodeRecord', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'ttl', internalType: 'uint64', type: 'uint64' }, + ], + name: 'setTTL', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'ttl', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ENSSubdomainRegistrar +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ensSubdomainRegistrarABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'error', + inputs: [ + { name: 'subnode', internalType: 'bytes32', type: 'bytes32' }, + { name: 'nodeOwner', internalType: 'address', type: 'address' }, + ], + name: 'AlreadyRegistered', + }, + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'resolver', internalType: 'address', type: 'address' }, + ], + name: 'InvalidResolver', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REGISTER_ENS_SUBDOMAIN_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRAR_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ens', + outputs: [{ name: '', internalType: 'contract ENS', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_managingDao', internalType: 'contract IDAO', type: 'address' }, + { name: '_ens', internalType: 'contract ENS', type: 'address' }, + { name: '_node', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'node', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_label', internalType: 'bytes32', type: 'bytes32' }, + { name: '_targetAddress', internalType: 'address', type: 'address' }, + ], + name: 'registerSubnode', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'resolver', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_resolver', internalType: 'address', type: 'address' }], + name: 'setDefaultResolver', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC165 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc165ABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC165StorageUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc165StorageUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC165Upgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc165UpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC1967Proxy +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc1967ProxyABI = [ + { + stateMutability: 'payable', + type: 'constructor', + inputs: [ + { name: '_logic', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { stateMutability: 'payable', type: 'fallback' }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC1967Upgrade +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc1967UpgradeABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC1967UpgradeUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc1967UpgradeUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const erc20ABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: 'name_', internalType: 'string', type: 'string' }, + { name: 'symbol_', internalType: 'string', type: 'string' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'decreaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'increaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IABIResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iabiResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'contentType', internalType: 'uint256', type: 'uint256', indexed: true }, + ], + name: 'ABIChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'contentTypes', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ABI', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IAddrResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iAddrResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'a', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AddrChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'addr', + outputs: [{ name: '', internalType: 'address payable', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IAddressResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iAddressResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'coinType', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'newAddress', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AddressChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'coinType', internalType: 'uint256', type: 'uint256' }, + ], + name: 'addr', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IBeacon +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iBeaconABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IBeaconUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iBeaconUpgradeableABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IContentHashResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iContentHashResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'hash', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ContenthashChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'contenthash', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IDAO +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const idaoABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'token', internalType: 'address', type: 'address', indexed: true }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: '_reference', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'Deposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'actor', internalType: 'address', type: 'address', indexed: true }, + { name: 'callId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'failureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'execResults', internalType: 'bytes[]', type: 'bytes[]', indexed: false }, + ], + name: 'Executed', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }], + name: 'MetadataSet', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: false }, + { name: 'amount', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'NativeTokenDeposited', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'interfaceId', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'callbackSelector', internalType: 'bytes4', type: 'bytes4', indexed: false }, + { name: 'magicNumber', internalType: 'bytes4', type: 'bytes4', indexed: false }, + ], + name: 'StandardCallbackRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'forwarder', internalType: 'address', type: 'address', indexed: false }], + name: 'TrustedForwarderSet', + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: '_token', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + { name: '_reference', internalType: 'string', type: 'string' }, + ], + name: 'deposit', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_callId', internalType: 'bytes32', type: 'bytes32' }, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_allowFailureMap', internalType: 'uint256', type: 'uint256' }, + ], + name: 'execute', + outputs: [ + { name: '', internalType: 'bytes[]', type: 'bytes[]' }, + { name: '', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getTrustedForwarder', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'hasPermission', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_hash', internalType: 'bytes32', type: 'bytes32' }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isValidSignature', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }, + { name: '_callbackSelector', internalType: 'bytes4', type: 'bytes4' }, + { name: '_magicNumber', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'registerStandardCallback', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_metadata', internalType: 'bytes', type: 'bytes' }], + name: 'setMetadata', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'setSignatureValidator', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_trustedForwarder', internalType: 'address', type: 'address' }], + name: 'setTrustedForwarder', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IDNSRecordResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const idnsRecordResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'resource', internalType: 'uint16', type: 'uint16', indexed: false }, + { name: 'record', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'DNSRecordChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'resource', internalType: 'uint16', type: 'uint16', indexed: false }, + ], + name: 'DNSRecordDeleted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'name', internalType: 'bytes32', type: 'bytes32' }, + { name: 'resource', internalType: 'uint16', type: 'uint16' }, + ], + name: 'dnsRecord', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IDNSZoneResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const idnsZoneResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'lastzonehash', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'zonehash', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'DNSZonehashChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'zonehash', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IEIP4824 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ieip4824ABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'daoURI', + outputs: [{ name: '_daoURI', internalType: 'string', type: 'string' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1155ReceiverUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1155ReceiverUpgradeableABI = [ + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155BatchReceived', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC1155Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1155Upgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1155UpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'account', internalType: 'address', type: 'address', indexed: true }, + { name: 'operator', internalType: 'address', type: 'address', indexed: true }, + { name: 'approved', internalType: 'bool', type: 'bool', indexed: false }, + ], + name: 'ApprovalForAll', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'operator', internalType: 'address', type: 'address', indexed: true }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]', indexed: false }, + { name: 'values', internalType: 'uint256[]', type: 'uint256[]', indexed: false }, + ], + name: 'TransferBatch', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'operator', internalType: 'address', type: 'address', indexed: true }, + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'TransferSingle', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'value', internalType: 'string', type: 'string', indexed: false }, + { name: 'id', internalType: 'uint256', type: 'uint256', indexed: true }, + ], + name: 'URI', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + ], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'accounts', internalType: 'address[]', type: 'address[]' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + ], + name: 'balanceOfBatch', + outputs: [{ name: '', internalType: 'uint256[]', type: 'uint256[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'operator', internalType: 'address', type: 'address' }, + ], + name: 'isApprovedForAll', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'ids', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'amounts', internalType: 'uint256[]', type: 'uint256[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeBatchTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'id', internalType: 'uint256', type: 'uint256' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'safeTransferFrom', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'approved', internalType: 'bool', type: 'bool' }, + ], + name: 'setApprovalForAll', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1271 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1271ABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'hash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isValidSignature', + outputs: [{ name: 'magicValue', internalType: 'bytes4', type: 'bytes4' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC165 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc165ABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC165Upgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc165UpgradeableABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1967 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1967ABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1967Upgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1967UpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20ABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20Metadata +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20MetadataABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20Permit +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20PermitABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'nonces', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permit', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20PermitUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20PermitUpgradeableABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'DOMAIN_SEPARATOR', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'owner', internalType: 'address', type: 'address' }], + name: 'nonces', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'deadline', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'permit', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC20Upgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc20UpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC721ReceiverUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc721ReceiverUpgradeableABI = [ + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'operator', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'tokenId', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'onERC721Received', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IExtendedResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iExtendedResolverABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'name', internalType: 'bytes', type: 'bytes' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'resolve', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IInterfaceResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iInterfaceResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'interfaceID', internalType: 'bytes4', type: 'bytes4', indexed: true }, + { name: 'implementer', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'InterfaceChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'interfaceID', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'interfaceImplementer', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IMajorityVoting +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iMajorityVotingABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'voter', internalType: 'address', type: 'address', indexed: true }, + { name: 'voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8', indexed: false }, + { name: 'votingPower', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'VoteCast', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'canExecute', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_account', internalType: 'address', type: 'address' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + ], + name: 'canVote', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'execute', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_account', internalType: 'address', type: 'address' }, + ], + name: 'getVoteOption', + outputs: [{ name: '', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isMinParticipationReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReachedEarly', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + { name: '_tryEarlyExecution', internalType: 'bool', type: 'bool' }, + ], + name: 'vote', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IMembership +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iMembershipABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'members', internalType: 'address[]', type: 'address[]', indexed: false }], + name: 'MembersAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'members', internalType: 'address[]', type: 'address[]', indexed: false }], + name: 'MembersRemoved', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'definingContract', internalType: 'address', type: 'address', indexed: true }], + name: 'MembershipContractAnnounced', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_account', internalType: 'address', type: 'address' }], + name: 'isMember', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IMulticall3 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iMulticall3ABI = [ + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'aggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'returnData', internalType: 'bytes[]', type: 'bytes[]' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call3[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'allowFailure', internalType: 'bool', type: 'bool' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'aggregate3', + outputs: [ + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call3Value[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'allowFailure', internalType: 'bool', type: 'bool' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'aggregate3Value', + outputs: [ + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'blockAndAggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getBasefee', + outputs: [{ name: 'basefee', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'blockNumber', internalType: 'uint256', type: 'uint256' }], + name: 'getBlockHash', + outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getBlockNumber', + outputs: [{ name: 'blockNumber', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getChainId', + outputs: [{ name: 'chainid', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getCurrentBlockCoinbase', + outputs: [{ name: 'coinbase', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getCurrentBlockDifficulty', + outputs: [{ name: 'difficulty', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getCurrentBlockGasLimit', + outputs: [{ name: 'gaslimit', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getCurrentBlockTimestamp', + outputs: [{ name: 'timestamp', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'addr', internalType: 'address', type: 'address' }], + name: 'getEthBalance', + outputs: [{ name: 'balance', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getLastBlockHash', + outputs: [{ name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'tryAggregate', + outputs: [ + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'requireSuccess', internalType: 'bool', type: 'bool' }, + { + name: 'calls', + internalType: 'struct IMulticall3.Call[]', + type: 'tuple[]', + components: [ + { name: 'target', internalType: 'address', type: 'address' }, + { name: 'callData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'tryBlockAndAggregate', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'blockHash', internalType: 'bytes32', type: 'bytes32' }, + { + name: 'returnData', + internalType: 'struct IMulticall3.Result[]', + type: 'tuple[]', + components: [ + { name: 'success', internalType: 'bool', type: 'bool' }, + { name: 'returnData', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// INameResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iNameResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'NameChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPermissionCondition +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPermissionConditionABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: 'isPermitted', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPlugin +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPluginABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [{ name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPluginRepo +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPluginRepoABI = [ + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_release', internalType: 'uint8', type: 'uint8' }, + { name: '_pluginSetupAddress', internalType: 'address', type: 'address' }, + { name: '_buildMetadata', internalType: 'bytes', type: 'bytes' }, + { name: '_releaseMetadata', internalType: 'bytes', type: 'bytes' }, + ], + name: 'createVersion', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_release', internalType: 'uint8', type: 'uint8' }, + { name: '_releaseMetadata', internalType: 'bytes', type: 'bytes' }, + ], + name: 'updateReleaseMetadata', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPluginSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPluginSetupABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'prepareInstallation', + outputs: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_currentBuild', internalType: 'uint16', type: 'uint16' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IProposal +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iProposalABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'creator', internalType: 'address', type: 'address', indexed: true }, + { name: 'startDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }], + name: 'ProposalExecuted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IProtocolVersion +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iProtocolVersionABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '_version', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IPubkeyResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iPubkeyResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'x', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'y', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'PubkeyChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'pubkey', + outputs: [ + { name: 'x', internalType: 'bytes32', type: 'bytes32' }, + { name: 'y', internalType: 'bytes32', type: 'bytes32' }, + ], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ITextResolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iTextResolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'indexedKey', internalType: 'string', type: 'string', indexed: true }, + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'value', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'TextChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'key', internalType: 'string', type: 'string' }, + ], + name: 'text', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IVotesUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const iVotesUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'delegator', internalType: 'address', type: 'address', indexed: true }, + { name: 'fromDelegate', internalType: 'address', type: 'address', indexed: true }, + { name: 'toDelegate', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'DelegateChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'delegate', internalType: 'address', type: 'address', indexed: true }, + { name: 'previousBalance', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'newBalance', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'DelegateVotesChanged', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'delegatee', internalType: 'address', type: 'address' }], + name: 'delegate', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'delegatee', internalType: 'address', type: 'address' }, + { name: 'nonce', internalType: 'uint256', type: 'uint256' }, + { name: 'expiry', internalType: 'uint256', type: 'uint256' }, + { name: 'v', internalType: 'uint8', type: 'uint8' }, + { name: 'r', internalType: 'bytes32', type: 'bytes32' }, + { name: 's', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'delegateBySig', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'delegates', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'timepoint', internalType: 'uint256', type: 'uint256' }], + name: 'getPastTotalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'timepoint', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getPastVotes', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'getVotes', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Initializable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const initializableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// InterfaceBasedRegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const interfaceBasedRegistryABI = [ + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractAlreadyRegistered', + }, + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractERC165SupportInvalid', + }, + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractInterfaceInvalid', + }, + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRY_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'entries', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetInterfaceId', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Ownable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ownableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, + { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { stateMutability: 'nonpayable', type: 'function', inputs: [], name: 'renounceOwnership', outputs: [] }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PermissionCondition +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const permissionConditionABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: 'isPermitted', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// MajorityVotingBase +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const majorityVotingBaseABI = [ + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint64', type: 'uint64' }, + { name: 'actual', internalType: 'uint64', type: 'uint64' }, + ], + name: 'DateOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint64', type: 'uint64' }, + { name: 'actual', internalType: 'uint64', type: 'uint64' }, + ], + name: 'MinDurationOutOfBounds', + }, + { + type: 'error', + inputs: [{ name: 'sender', internalType: 'address', type: 'address' }], + name: 'ProposalCreationForbidden', + }, + { + type: 'error', + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'ProposalExecutionForbidden', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { name: 'actual', internalType: 'uint256', type: 'uint256' }, + ], + name: 'RatioOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256' }, + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + ], + name: 'VoteCastForbidden', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'creator', internalType: 'address', type: 'address', indexed: true }, + { name: 'startDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'voter', internalType: 'address', type: 'address', indexed: true }, + { name: 'voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8', indexed: false }, + { name: 'votingPower', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'VoteCast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8', indexed: false }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32', indexed: false }, + { name: 'minParticipation', internalType: 'uint32', type: 'uint32', indexed: false }, + { name: 'minDuration', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'minProposerVotingPower', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'VotingSettingsUpdated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'canExecute', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voter', internalType: 'address', type: 'address' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + ], + name: 'canVote', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_metadata', internalType: 'bytes', type: 'bytes' }, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_allowFailureMap', internalType: 'uint256', type: 'uint256' }, + { name: '_startDate', internalType: 'uint64', type: 'uint64' }, + { name: '_endDate', internalType: 'uint64', type: 'uint64' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + { name: '_tryEarlyExecution', internalType: 'bool', type: 'bool' }, + ], + name: 'createProposal', + outputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'execute', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'getProposal', + outputs: [ + { name: 'open', internalType: 'bool', type: 'bool' }, + { name: 'executed', internalType: 'bool', type: 'bool' }, + { + name: 'parameters', + internalType: 'struct MajorityVotingBase.ProposalParameters', + type: 'tuple', + components: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32' }, + { name: 'startDate', internalType: 'uint64', type: 'uint64' }, + { name: 'endDate', internalType: 'uint64', type: 'uint64' }, + { name: 'snapshotBlock', internalType: 'uint64', type: 'uint64' }, + { name: 'minVotingPower', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'tally', + internalType: 'struct MajorityVotingBase.Tally', + type: 'tuple', + components: [ + { name: 'abstain', internalType: 'uint256', type: 'uint256' }, + { name: 'yes', internalType: 'uint256', type: 'uint256' }, + { name: 'no', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voter', internalType: 'address', type: 'address' }, + ], + name: 'getVoteOption', + outputs: [{ name: '', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isMinParticipationReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReachedEarly', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minDuration', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minProposerVotingPower', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [{ name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_blockNumber', internalType: 'uint256', type: 'uint256' }], + name: 'totalVotingPower', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32' }, + { name: 'minParticipation', internalType: 'uint32', type: 'uint32' }, + { name: 'minDuration', internalType: 'uint64', type: 'uint64' }, + { name: 'minProposerVotingPower', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'updateVotingSettings', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + { name: '_tryEarlyExecution', internalType: 'bool', type: 'bool' }, + ], + name: 'vote', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'votingMode', + outputs: [{ name: '', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PermissionLib +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const permissionLibABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'NO_CONDITION', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PermissionManager +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const permissionManagerABI = [ + { type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere' }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionInterfacNotSupported', + }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionNotAContract', + }, + { type: 'error', inputs: [], name: 'GrantWithConditionNotSupported' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'currentCondition', internalType: 'address', type: 'address' }, + { name: 'newCondition', internalType: 'address', type: 'address' }, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + { type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'Unauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + { name: 'condition', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'Revoked', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'grant', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_condition', internalType: 'contract IPermissionCondition', type: 'address' }, + ], + name: 'grantWithCondition', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'revoke', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginRepo +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginRepoABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { type: 'error', inputs: [], name: 'AnyAddressDisallowedForWhoAndWhere' }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionInterfacNotSupported', + }, + { + type: 'error', + inputs: [{ name: 'condition', internalType: 'contract IPermissionCondition', type: 'address' }], + name: 'ConditionNotAContract', + }, + { type: 'error', inputs: [], name: 'EmptyReleaseMetadata' }, + { type: 'error', inputs: [], name: 'GrantWithConditionNotSupported' }, + { type: 'error', inputs: [], name: 'InvalidPluginSetupInterface' }, + { + type: 'error', + inputs: [ + { name: 'latestRelease', internalType: 'uint8', type: 'uint8' }, + { name: 'newRelease', internalType: 'uint8', type: 'uint8' }, + ], + name: 'InvalidReleaseIncrement', + }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'currentCondition', internalType: 'address', type: 'address' }, + { name: 'newCondition', internalType: 'address', type: 'address' }, + ], + name: 'PermissionAlreadyGrantedForDifferentCondition', + }, + { type: 'error', inputs: [], name: 'PermissionsForAnyAddressDisallowed' }, + { + type: 'error', + inputs: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + { name: 'pluginSetup', internalType: 'address', type: 'address' }, + ], + name: 'PluginSetupAlreadyInPreviousRelease', + }, + { type: 'error', inputs: [], name: 'ReleaseDoesNotExist' }, + { type: 'error', inputs: [], name: 'ReleaseZeroNotAllowed' }, + { + type: 'error', + inputs: [ + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'Unauthorized', + }, + { + type: 'error', + inputs: [{ name: 'versionHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'VersionHashDoesNotExist', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + { name: 'condition', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'Granted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'release', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'releaseMetadata', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ReleaseMetadataUpdated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'here', internalType: 'address', type: 'address', indexed: true }, + { name: 'where', internalType: 'address', type: 'address', indexed: false }, + { name: 'who', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'Revoked', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'release', internalType: 'uint8', type: 'uint8', indexed: false }, + { name: 'build', internalType: 'uint16', type: 'uint16', indexed: false }, + { name: 'pluginSetup', internalType: 'address', type: 'address', indexed: true }, + { name: 'buildMetadata', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'VersionCreated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'MAINTAINER_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'ROOT_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_REPO_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_items', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyMultiTargetPermissions', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { + name: 'items', + internalType: 'struct PermissionLib.SingleTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applySingleTargetPermissions', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_release', internalType: 'uint8', type: 'uint8' }], + name: 'buildCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_release', internalType: 'uint8', type: 'uint8' }, + { name: '_pluginSetup', internalType: 'address', type: 'address' }, + { name: '_buildMetadata', internalType: 'bytes', type: 'bytes' }, + { name: '_releaseMetadata', internalType: 'bytes', type: 'bytes' }, + ], + name: 'createVersion', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_pluginSetup', internalType: 'address', type: 'address' }], + name: 'getLatestVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetup', internalType: 'address', type: 'address' }, + { name: 'buildMetadata', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_release', internalType: 'uint8', type: 'uint8' }], + name: 'getLatestVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetup', internalType: 'address', type: 'address' }, + { name: 'buildMetadata', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_tagHash', internalType: 'bytes32', type: 'bytes32' }], + name: 'getVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetup', internalType: 'address', type: 'address' }, + { name: 'buildMetadata', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { + name: '_tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + ], + name: 'getVersion', + outputs: [ + { + name: '', + internalType: 'struct PluginRepo.Version', + type: 'tuple', + components: [ + { + name: 'tag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetup', internalType: 'address', type: 'address' }, + { name: 'buildMetadata', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'grant', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_condition', internalType: 'contract IPermissionCondition', type: 'address' }, + ], + name: 'grantWithCondition', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'initialOwner', internalType: 'address', type: 'address' }], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'isGranted', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'latestRelease', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_where', internalType: 'address', type: 'address' }, + { name: '_who', internalType: 'address', type: 'address' }, + { name: '_permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'revoke', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_release', internalType: 'uint8', type: 'uint8' }, + { name: '_releaseMetadata', internalType: 'bytes', type: 'bytes' }, + ], + name: 'updateReleaseMetadata', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +export const pluginRepoAddress = '0x9b72Af17B8aE55AE2F3C06E46A44D9bEaFb10801' as const + +export const pluginRepoConfig = { address: pluginRepoAddress, abi: pluginRepoABI } as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginRepoRegistry +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginRepoRegistryABI = [ + { stateMutability: 'nonpayable', type: 'constructor', inputs: [] }, + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractAlreadyRegistered', + }, + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractERC165SupportInvalid', + }, + { + type: 'error', + inputs: [{ name: 'registrant', internalType: 'address', type: 'address' }], + name: 'ContractInterfaceInvalid', + }, + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { type: 'error', inputs: [], name: 'EmptyPluginRepoSubdomain' }, + { + type: 'error', + inputs: [{ name: 'subdomain', internalType: 'string', type: 'string' }], + name: 'InvalidPluginSubdomain', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'subdomain', internalType: 'string', type: 'string', indexed: false }, + { name: 'pluginRepo', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'PluginRepoRegistered', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'REGISTER_PLUGIN_REPO_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_REGISTRY_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'entries', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'contract IDAO', type: 'address' }, + { name: '_subdomainRegistrar', internalType: 'contract ENSSubdomainRegistrar', type: 'address' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'subdomain', internalType: 'string', type: 'string' }, + { name: 'pluginRepo', internalType: 'address', type: 'address' }, + ], + name: 'registerPluginRepo', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'subdomainRegistrar', + outputs: [{ name: '', internalType: 'contract ENSSubdomainRegistrar', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetInterfaceId', + outputs: [{ name: '', internalType: 'bytes4', type: 'bytes4' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginSetup +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginSetupABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'prepareInstallation', + outputs: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { name: '_currentBuild', internalType: 'uint16', type: 'uint16' }, + { + name: '_payload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginSetupProcessor +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginSetupProcessorABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [{ name: '_repoRegistry', internalType: 'contract PluginRepoRegistry', type: 'address' }], + }, + { + type: 'error', + inputs: [{ name: 'plugin', internalType: 'address', type: 'address' }], + name: 'IPluginNotSupported', + }, + { + type: 'error', + inputs: [ + { name: 'currentAppliedSetupId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'appliedSetupId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'InvalidAppliedSetupId', + }, + { + type: 'error', + inputs: [ + { + name: 'currentVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { + name: 'newVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + ], + name: 'InvalidUpdateVersion', + }, + { type: 'error', inputs: [], name: 'PluginAlreadyInstalled' }, + { + type: 'error', + inputs: [{ name: 'plugin', internalType: 'address', type: 'address' }], + name: 'PluginNonupgradeable', + }, + { + type: 'error', + inputs: [ + { name: 'proxy', internalType: 'address', type: 'address' }, + { name: 'implementation', internalType: 'address', type: 'address' }, + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + ], + name: 'PluginProxyUpgradeFailed', + }, + { type: 'error', inputs: [], name: 'PluginRepoNonexistent' }, + { + type: 'error', + inputs: [{ name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32' }], + name: 'SetupAlreadyPrepared', + }, + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'caller', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'SetupApplicationUnauthorized', + }, + { + type: 'error', + inputs: [{ name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32' }], + name: 'SetupNotApplicable', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'plugin', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'appliedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'InstallationApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address', indexed: true }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + indexed: false, + }, + { name: 'data', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'plugin', internalType: 'address', type: 'address', indexed: false }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + indexed: false, + }, + ], + name: 'InstallationPrepared', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'plugin', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'UninstallationApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address', indexed: true }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + indexed: false, + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + indexed: false, + }, + ], + name: 'UninstallationPrepared', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'plugin', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'appliedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'UpdateApplied', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'sender', internalType: 'address', type: 'address', indexed: true }, + { name: 'dao', internalType: 'address', type: 'address', indexed: true }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address', indexed: true }, + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + indexed: false, + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + indexed: false, + }, + { name: 'initData', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'UpdatePrepared', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'APPLY_INSTALLATION_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'APPLY_UNINSTALLATION_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'APPLY_UPDATE_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyInstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + ], + }, + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: 'helpersHash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyInstallation', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyUninstallationParams', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + ], + }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + name: 'applyUninstallation', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.ApplyUpdateParams', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + ], + }, + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { name: 'helpersHash', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + name: 'applyUpdate', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareInstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + ], + }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + name: 'prepareInstallation', + outputs: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareUninstallationParams', + type: 'tuple', + components: [ + { + name: 'pluginSetupRef', + internalType: 'struct PluginSetupRef', + type: 'tuple', + components: [ + { + name: 'versionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + ], + }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + ], + name: 'prepareUninstallation', + outputs: [ + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'address', type: 'address' }, + { + name: '_params', + internalType: 'struct PluginSetupProcessor.PrepareUpdateParams', + type: 'tuple', + components: [ + { + name: 'currentVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { + name: 'newVersionTag', + internalType: 'struct PluginRepo.Tag', + type: 'tuple', + components: [ + { name: 'release', internalType: 'uint8', type: 'uint8' }, + { name: 'build', internalType: 'uint16', type: 'uint16' }, + ], + }, + { name: 'pluginSetupRepo', internalType: 'contract PluginRepo', type: 'address' }, + { + name: 'setupPayload', + internalType: 'struct IPluginSetup.SetupPayload', + type: 'tuple', + components: [ + { name: 'plugin', internalType: 'address', type: 'address' }, + { name: 'currentHelpers', internalType: 'address[]', type: 'address[]' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + ], + }, + ], + name: 'prepareUpdate', + outputs: [ + { name: 'initData', internalType: 'bytes', type: 'bytes' }, + { + name: 'preparedSetupData', + internalType: 'struct IPluginSetup.PreparedSetupData', + type: 'tuple', + components: [ + { name: 'helpers', internalType: 'address[]', type: 'address[]' }, + { + name: 'permissions', + internalType: 'struct PermissionLib.MultiTargetPermission[]', + type: 'tuple[]', + components: [ + { name: 'operation', internalType: 'enum PermissionLib.Operation', type: 'uint8' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'condition', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + ], + }, + ], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'repoRegistry', + outputs: [{ name: '', internalType: 'contract PluginRepoRegistry', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + name: 'states', + outputs: [ + { name: 'blockNumber', internalType: 'uint256', type: 'uint256' }, + { name: 'currentAppliedSetupId', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'pluginInstallationId', internalType: 'bytes32', type: 'bytes32' }, + { name: 'preparedSetupId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'validatePreparedSetupId', + outputs: [], + }, +] as const + +export const pluginSetupProcessorAddress = '0xE8B5d8D66a02CD1b9Bd32a4064D7ABa45F51305e' as const + +export const pluginSetupProcessorConfig = { + address: pluginSetupProcessorAddress, + abi: pluginSetupProcessorABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// PluginUUPSUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const pluginUupsUpgradeableABI = [ + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [{ name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProposalUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const proposalUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'creator', internalType: 'address', type: 'address', indexed: true }, + { name: 'startDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }], + name: 'ProposalExecuted', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// ProtocolVersion +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const protocolVersionABI = [ + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Proxy +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const proxyABI = [ + { stateMutability: 'payable', type: 'fallback' }, + { stateMutability: 'payable', type: 'receive' }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Resolver +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const resolverABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'contentType', internalType: 'uint256', type: 'uint256', indexed: true }, + ], + name: 'ABIChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'a', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AddrChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'coinType', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'newAddress', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'AddressChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'hash', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'ContentChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'hash', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'ContenthashChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'resource', internalType: 'uint16', type: 'uint16', indexed: false }, + { name: 'record', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'DNSRecordChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'resource', internalType: 'uint16', type: 'uint16', indexed: false }, + ], + name: 'DNSRecordDeleted', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'lastzonehash', internalType: 'bytes', type: 'bytes', indexed: false }, + { name: 'zonehash', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'DNSZonehashChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'interfaceID', internalType: 'bytes4', type: 'bytes4', indexed: true }, + { name: 'implementer', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'InterfaceChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'name', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'NameChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'x', internalType: 'bytes32', type: 'bytes32', indexed: false }, + { name: 'y', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'PubkeyChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32', indexed: true }, + { name: 'indexedKey', internalType: 'string', type: 'string', indexed: true }, + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'value', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'TextChanged', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'contentTypes', internalType: 'uint256', type: 'uint256' }, + ], + name: 'ABI', + outputs: [ + { name: '', internalType: 'uint256', type: 'uint256' }, + { name: '', internalType: 'bytes', type: 'bytes' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'addr', + outputs: [{ name: '', internalType: 'address payable', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'coinType', internalType: 'uint256', type: 'uint256' }, + ], + name: 'addr', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'content', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'contenthash', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'name', internalType: 'bytes32', type: 'bytes32' }, + { name: 'resource', internalType: 'uint16', type: 'uint16' }, + ], + name: 'dnsRecord', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'interfaceID', internalType: 'bytes4', type: 'bytes4' }, + ], + name: 'interfaceImplementer', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'data', internalType: 'bytes[]', type: 'bytes[]' }], + name: 'multicall', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'nodehash', internalType: 'bytes32', type: 'bytes32' }, + { name: 'data', internalType: 'bytes[]', type: 'bytes[]' }, + ], + name: 'multicallWithNodeCheck', + outputs: [{ name: 'results', internalType: 'bytes[]', type: 'bytes[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'multihash', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'pubkey', + outputs: [ + { name: 'x', internalType: 'bytes32', type: 'bytes32' }, + { name: 'y', internalType: 'bytes32', type: 'bytes32' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'name', internalType: 'bytes', type: 'bytes' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'resolve', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'contentType', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'setABI', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'coinType', internalType: 'uint256', type: 'uint256' }, + { name: 'a', internalType: 'bytes', type: 'bytes' }, + ], + name: 'setAddr', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'addr', internalType: 'address', type: 'address' }, + ], + name: 'setAddr', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'hash', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setContent', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'hash', internalType: 'bytes', type: 'bytes' }, + ], + name: 'setContenthash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'setDnsrr', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'interfaceID', internalType: 'bytes4', type: 'bytes4' }, + { name: 'implementer', internalType: 'address', type: 'address' }, + ], + name: 'setInterface', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'hash', internalType: 'bytes', type: 'bytes' }, + ], + name: 'setMultihash', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: '_name', internalType: 'string', type: 'string' }, + ], + name: 'setName', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'x', internalType: 'bytes32', type: 'bytes32' }, + { name: 'y', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'setPubkey', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'key', internalType: 'string', type: 'string' }, + { name: 'value', internalType: 'string', type: 'string' }, + ], + name: 'setText', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'node', internalType: 'bytes32', type: 'bytes32' }, + { name: 'key', internalType: 'string', type: 'string' }, + ], + name: 'text', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'node', internalType: 'bytes32', type: 'bytes32' }], + name: 'zonehash', + outputs: [{ name: '', internalType: 'bytes', type: 'bytes' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// StdInvariant +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const stdInvariantABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeArtifacts', + outputs: [{ name: 'excludedArtifacts_', internalType: 'string[]', type: 'string[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeContracts', + outputs: [{ name: 'excludedContracts_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeSenders', + outputs: [{ name: 'excludedSenders_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetArtifactSelectors', + outputs: [ + { + name: 'targetedArtifactSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetArtifacts', + outputs: [{ name: 'targetedArtifacts_', internalType: 'string[]', type: 'string[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetContracts', + outputs: [{ name: 'targetedContracts_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetInterfaces', + outputs: [ + { + name: 'targetedInterfaces_', + internalType: 'struct StdInvariant.FuzzInterface[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'artifacts', internalType: 'string[]', type: 'string[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetSelectors', + outputs: [ + { + name: 'targetedSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetSenders', + outputs: [{ name: 'targetedSenders_', internalType: 'address[]', type: 'address[]' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TestnetERC20 +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const testnetErc20ABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: 'name', internalType: 'string', type: 'string' }, + { name: 'symbol', internalType: 'string', type: 'string' }, + { name: 'decimals_', internalType: 'uint8', type: 'uint8' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'owner', internalType: 'address', type: 'address', indexed: true }, + { name: 'spender', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Approval', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, + { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'OwnershipTransferred', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'from', internalType: 'address', type: 'address', indexed: true }, + { name: 'to', internalType: 'address', type: 'address', indexed: true }, + { name: 'value', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'Transfer', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'owner', internalType: 'address', type: 'address' }, + { name: 'spender', internalType: 'address', type: 'address' }, + ], + name: 'allowance', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'approve', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: 'account', internalType: 'address', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'decimals', + outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'subtractedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'decreaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'spender', internalType: 'address', type: 'address' }, + { name: 'addedValue', internalType: 'uint256', type: 'uint256' }, + ], + name: 'increaseAllowance', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'mint', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'name', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { stateMutability: 'nonpayable', type: 'function', inputs: [], name: 'renounceOwnership', outputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'symbol', + outputs: [{ name: '', internalType: 'string', type: 'string' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transfer', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'transferFrom', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TestnetTokenFaucet +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const testnetTokenFaucetABI = [ + { type: 'error', inputs: [], name: 'TokenDoesNotExist' }, + { type: 'error', inputs: [], name: 'TokenExists' }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousOwner', internalType: 'address', type: 'address', indexed: true }, + { name: 'newOwner', internalType: 'address', type: 'address', indexed: true }, + ], + name: 'OwnershipTransferred', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + name: 'allTokens', + outputs: [ + { name: 'token', internalType: 'contract TestnetERC20', type: 'address' }, + { name: 'symbol', internalType: 'string', type: 'string' }, + ], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'name', internalType: 'string', type: 'string' }, + { name: 'symbol', internalType: 'string', type: 'string' }, + { name: 'decimals', internalType: 'uint8', type: 'uint8' }, + ], + name: 'create', + outputs: [{ name: 'token', internalType: 'contract TestnetERC20', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'token', internalType: 'contract TestnetERC20', type: 'address' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'drip', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: 'symbol', internalType: 'string', type: 'string' }, + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'drip', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'owner', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { stateMutability: 'nonpayable', type: 'function', inputs: [], name: 'renounceOwnership', outputs: [] }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'tokenCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'string', type: 'string' }], + name: 'tokenWithSymbol', + outputs: [{ name: '', internalType: 'contract TestnetERC20', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newOwner', internalType: 'address', type: 'address' }], + name: 'transferOwnership', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TimeShiftLib +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const timeShiftLibABI = [{ type: 'error', inputs: [], name: 'InvalidTimeShift' }] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TokenVoting +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tokenVotingABI = [ + { + type: 'error', + inputs: [ + { name: 'dao', internalType: 'address', type: 'address' }, + { name: 'where', internalType: 'address', type: 'address' }, + { name: 'who', internalType: 'address', type: 'address' }, + { name: 'permissionId', internalType: 'bytes32', type: 'bytes32' }, + ], + name: 'DaoUnauthorized', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint64', type: 'uint64' }, + { name: 'actual', internalType: 'uint64', type: 'uint64' }, + ], + name: 'DateOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint64', type: 'uint64' }, + { name: 'actual', internalType: 'uint64', type: 'uint64' }, + ], + name: 'MinDurationOutOfBounds', + }, + { type: 'error', inputs: [], name: 'NoVotingPower' }, + { + type: 'error', + inputs: [{ name: 'sender', internalType: 'address', type: 'address' }], + name: 'ProposalCreationForbidden', + }, + { + type: 'error', + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'ProposalExecutionForbidden', + }, + { + type: 'error', + inputs: [ + { name: 'limit', internalType: 'uint256', type: 'uint256' }, + { name: 'actual', internalType: 'uint256', type: 'uint256' }, + ], + name: 'RatioOutOfBounds', + }, + { + type: 'error', + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256' }, + { name: 'account', internalType: 'address', type: 'address' }, + { name: 'voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + ], + name: 'VoteCastForbidden', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'members', internalType: 'address[]', type: 'address[]', indexed: false }], + name: 'MembersAdded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'members', internalType: 'address[]', type: 'address[]', indexed: false }], + name: 'MembersRemoved', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'definingContract', internalType: 'address', type: 'address', indexed: true }], + name: 'MembershipContractAnnounced', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'creator', internalType: 'address', type: 'address', indexed: true }, + { name: 'startDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'endDate', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'metadata', internalType: 'bytes', type: 'bytes', indexed: false }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + indexed: false, + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'ProposalCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }], + name: 'ProposalExecuted', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'proposalId', internalType: 'uint256', type: 'uint256', indexed: true }, + { name: 'voter', internalType: 'address', type: 'address', indexed: true }, + { name: 'voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8', indexed: false }, + { name: 'votingPower', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'VoteCast', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8', indexed: false }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32', indexed: false }, + { name: 'minParticipation', internalType: 'uint32', type: 'uint32', indexed: false }, + { name: 'minDuration', internalType: 'uint64', type: 'uint64', indexed: false }, + { name: 'minProposerVotingPower', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'VotingSettingsUpdated', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'UPGRADE_PLUGIN_PERMISSION_ID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'canExecute', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voter', internalType: 'address', type: 'address' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + ], + name: 'canVote', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_metadata', internalType: 'bytes', type: 'bytes' }, + { + name: '_actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: '_allowFailureMap', internalType: 'uint256', type: 'uint256' }, + { name: '_startDate', internalType: 'uint64', type: 'uint64' }, + { name: '_endDate', internalType: 'uint64', type: 'uint64' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + { name: '_tryEarlyExecution', internalType: 'bool', type: 'bool' }, + ], + name: 'createProposal', + outputs: [{ name: 'proposalId', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'dao', + outputs: [{ name: '', internalType: 'contract IDAO', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'execute', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'getProposal', + outputs: [ + { name: 'open', internalType: 'bool', type: 'bool' }, + { name: 'executed', internalType: 'bool', type: 'bool' }, + { + name: 'parameters', + internalType: 'struct MajorityVotingBase.ProposalParameters', + type: 'tuple', + components: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32' }, + { name: 'startDate', internalType: 'uint64', type: 'uint64' }, + { name: 'endDate', internalType: 'uint64', type: 'uint64' }, + { name: 'snapshotBlock', internalType: 'uint64', type: 'uint64' }, + { name: 'minVotingPower', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'tally', + internalType: 'struct MajorityVotingBase.Tally', + type: 'tuple', + components: [ + { name: 'abstain', internalType: 'uint256', type: 'uint256' }, + { name: 'yes', internalType: 'uint256', type: 'uint256' }, + { name: 'no', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + name: 'actions', + internalType: 'struct IDAO.Action[]', + type: 'tuple[]', + components: [ + { name: 'to', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'allowFailureMap', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voter', internalType: 'address', type: 'address' }, + ], + name: 'getVoteOption', + outputs: [{ name: '', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'getVotingToken', + outputs: [{ name: '', internalType: 'contract IVotesUpgradeable', type: 'address' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'implementation', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_dao', internalType: 'contract IDAO', type: 'address' }, + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32' }, + { name: 'minParticipation', internalType: 'uint32', type: 'uint32' }, + { name: 'minDuration', internalType: 'uint64', type: 'uint64' }, + { name: 'minProposerVotingPower', internalType: 'uint256', type: 'uint256' }, + ], + }, + { name: '_token', internalType: 'contract IVotesUpgradeable', type: 'address' }, + ], + name: 'initialize', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_account', internalType: 'address', type: 'address' }], + name: 'isMember', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isMinParticipationReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReached', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_proposalId', internalType: 'uint256', type: 'uint256' }], + name: 'isSupportThresholdReachedEarly', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minDuration', + outputs: [{ name: '', internalType: 'uint64', type: 'uint64' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minParticipation', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'minProposerVotingPower', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'pluginType', + outputs: [{ name: '', internalType: 'enum IPlugin.PluginType', type: 'uint8' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proposalCount', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'pure', + type: 'function', + inputs: [], + name: 'protocolVersion', + outputs: [{ name: '', internalType: 'uint8[3]', type: 'uint8[3]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'supportThreshold', + outputs: [{ name: '', internalType: 'uint32', type: 'uint32' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_interfaceId', internalType: 'bytes4', type: 'bytes4' }], + name: 'supportsInterface', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '_blockNumber', internalType: 'uint256', type: 'uint256' }], + name: 'totalVotingPower', + outputs: [{ name: '', internalType: 'uint256', type: 'uint256' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { + name: '_votingSettings', + internalType: 'struct MajorityVotingBase.VotingSettings', + type: 'tuple', + components: [ + { name: 'votingMode', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }, + { name: 'supportThreshold', internalType: 'uint32', type: 'uint32' }, + { name: 'minParticipation', internalType: 'uint32', type: 'uint32' }, + { name: 'minDuration', internalType: 'uint64', type: 'uint64' }, + { name: 'minProposerVotingPower', internalType: 'uint256', type: 'uint256' }, + ], + }, + ], + name: 'updateVotingSettings', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_proposalId', internalType: 'uint256', type: 'uint256' }, + { name: '_voteOption', internalType: 'enum IMajorityVoting.VoteOption', type: 'uint8' }, + { name: '_tryEarlyExecution', internalType: 'bool', type: 'bool' }, + ], + name: 'vote', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'votingMode', + outputs: [{ name: '', internalType: 'enum MajorityVotingBase.VotingMode', type: 'uint8' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// TribeTest +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const tribeTestABI = [ + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'string', type: 'string', indexed: false }], + name: 'log', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'address', type: 'address', indexed: false }], + name: 'log_address', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'val', internalType: 'uint256[]', type: 'uint256[]', indexed: false }], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'val', internalType: 'int256[]', type: 'int256[]', indexed: false }], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'val', internalType: 'address[]', type: 'address[]', indexed: false }], + name: 'log_array', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'bytes', type: 'bytes', indexed: false }], + name: 'log_bytes', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'bytes32', type: 'bytes32', indexed: false }], + name: 'log_bytes32', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'int256', type: 'int256', indexed: false }], + name: 'log_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'log_named_address', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'uint256[]', type: 'uint256[]', indexed: false }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'int256[]', type: 'int256[]', indexed: false }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'address[]', type: 'address[]', indexed: false }, + ], + name: 'log_named_array', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'bytes', type: 'bytes', indexed: false }, + ], + name: 'log_named_bytes', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'bytes32', type: 'bytes32', indexed: false }, + ], + name: 'log_named_bytes32', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, + { name: 'decimals', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'log_named_decimal_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, + { name: 'decimals', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'log_named_decimal_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'int256', type: 'int256', indexed: false }, + ], + name: 'log_named_int', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'string', type: 'string', indexed: false }, + ], + name: 'log_named_string', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'key', internalType: 'string', type: 'string', indexed: false }, + { name: 'val', internalType: 'uint256', type: 'uint256', indexed: false }, + ], + name: 'log_named_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'string', type: 'string', indexed: false }], + name: 'log_string', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'uint256', type: 'uint256', indexed: false }], + name: 'log_uint', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: '', internalType: 'bytes', type: 'bytes', indexed: false }], + name: 'logs', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'IS_TEST', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeArtifacts', + outputs: [{ name: 'excludedArtifacts_', internalType: 'string[]', type: 'string[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeContracts', + outputs: [{ name: 'excludedContracts_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'excludeSenders', + outputs: [{ name: 'excludedSenders_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [], + name: 'failed', + outputs: [{ name: '', internalType: 'bool', type: 'bool' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetArtifactSelectors', + outputs: [ + { + name: 'targetedArtifactSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetArtifacts', + outputs: [{ name: 'targetedArtifacts_', internalType: 'string[]', type: 'string[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetContracts', + outputs: [{ name: 'targetedContracts_', internalType: 'address[]', type: 'address[]' }], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetInterfaces', + outputs: [ + { + name: 'targetedInterfaces_', + internalType: 'struct StdInvariant.FuzzInterface[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'artifacts', internalType: 'string[]', type: 'string[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetSelectors', + outputs: [ + { + name: 'targetedSelectors_', + internalType: 'struct StdInvariant.FuzzSelector[]', + type: 'tuple[]', + components: [ + { name: 'addr', internalType: 'address', type: 'address' }, + { name: 'selectors', internalType: 'bytes4[]', type: 'bytes4[]' }, + ], + }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'targetSenders', + outputs: [{ name: 'targetedSenders_', internalType: 'address[]', type: 'address[]' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// UUPSUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const uupsUpgradeableABI = [ + { + type: 'event', + anonymous: false, + inputs: [ + { name: 'previousAdmin', internalType: 'address', type: 'address', indexed: false }, + { name: 'newAdmin', internalType: 'address', type: 'address', indexed: false }, + ], + name: 'AdminChanged', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'beacon', internalType: 'address', type: 'address', indexed: true }], + name: 'BeaconUpgraded', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'version', internalType: 'uint8', type: 'uint8', indexed: false }], + name: 'Initialized', + }, + { + type: 'event', + anonymous: false, + inputs: [{ name: 'implementation', internalType: 'address', type: 'address', indexed: true }], + name: 'Upgraded', + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [{ name: 'newImplementation', internalType: 'address', type: 'address' }], + name: 'upgradeTo', + outputs: [], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'newImplementation', internalType: 'address', type: 'address' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + name: 'upgradeToAndCall', + outputs: [], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1822Proxiable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1822ProxiableABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// IERC1822ProxiableUpgradeable +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const ierc1822ProxiableUpgradeableABI = [ + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'proxiableUUID', + outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }], + }, +] as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// React +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__. + */ +export function useBudgetRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: budgetABI, ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"ROOT_BUDGET_PERMISSION_ID"`. + */ +export function useBudgetRootBudgetPermissionId< + TFunctionName extends 'ROOT_BUDGET_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ + abi: budgetABI, + functionName: 'ROOT_BUDGET_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"UPGRADE_PLUGIN_PERMISSION_ID"`. + */ +export function useBudgetUpgradePluginPermissionId< + TFunctionName extends 'UPGRADE_PLUGIN_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ + abi: budgetABI, + functionName: 'UPGRADE_PLUGIN_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"allowances"`. + */ +export function useBudgetAllowances< + TFunctionName extends 'allowances', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'allowances', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"allowancesCount"`. + */ +export function useBudgetAllowancesCount< + TFunctionName extends 'allowancesCount', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'allowancesCount', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"dao"`. + */ +export function useBudgetDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"implementation"`. + */ +export function useBudgetImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"isAdminOnAllowance"`. + */ +export function useBudgetIsAdminOnAllowance< + TFunctionName extends 'isAdminOnAllowance', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'isAdminOnAllowance', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"pluginType"`. + */ +export function useBudgetPluginType< + TFunctionName extends 'pluginType', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'pluginType', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useBudgetProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'protocolVersion', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useBudgetProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'proxiableUUID', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useBudgetSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: budgetABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof budgetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__. + */ +export function useBudgetWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: budgetABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"createAllowance"`. + */ +export function useBudgetCreateAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'createAllowance', + TMode + > & { functionName?: 'createAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'createAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'createAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"debitAllowance"`. + */ +export function useBudgetDebitAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'debitAllowance', + TMode + > & { functionName?: 'debitAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'debitAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'debitAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"executeMultiPayment"`. + */ +export function useBudgetExecuteMultiPayment( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'executeMultiPayment', + TMode + > & { functionName?: 'executeMultiPayment' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'executeMultiPayment' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'executeMultiPayment', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"executePayment"`. + */ +export function useBudgetExecutePayment( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'executePayment', + TMode + > & { functionName?: 'executePayment' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'executePayment' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'executePayment', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"initialize"`. + */ +export function useBudgetInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceAmount"`. + */ +export function useBudgetSetAllowanceAmount( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setAllowanceAmount', + TMode + > & { functionName?: 'setAllowanceAmount' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setAllowanceAmount' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceAmount', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceName"`. + */ +export function useBudgetSetAllowanceName( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setAllowanceName', + TMode + > & { functionName?: 'setAllowanceName' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setAllowanceName' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceName', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceSpender"`. + */ +export function useBudgetSetAllowanceSpender( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setAllowanceSpender', + TMode + > & { functionName?: 'setAllowanceSpender' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setAllowanceSpender' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceSpender', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceState"`. + */ +export function useBudgetSetAllowanceState( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setAllowanceState', + TMode + > & { functionName?: 'setAllowanceState' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setAllowanceState' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceState', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useBudgetUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useBudgetUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: budgetABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__. + */ +export function usePrepareBudgetWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: budgetABI, ...config } as UsePrepareContractWriteConfig< + typeof budgetABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"createAllowance"`. + */ +export function usePrepareBudgetCreateAllowance( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'createAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"debitAllowance"`. + */ +export function usePrepareBudgetDebitAllowance( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'debitAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"executeMultiPayment"`. + */ +export function usePrepareBudgetExecuteMultiPayment( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'executeMultiPayment', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"executePayment"`. + */ +export function usePrepareBudgetExecutePayment( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'executePayment', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareBudgetInitialize( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceAmount"`. + */ +export function usePrepareBudgetSetAllowanceAmount( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceAmount', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceName"`. + */ +export function usePrepareBudgetSetAllowanceName( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceName', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceSpender"`. + */ +export function usePrepareBudgetSetAllowanceSpender( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceSpender', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"setAllowanceState"`. + */ +export function usePrepareBudgetSetAllowanceState( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'setAllowanceState', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareBudgetUpgradeTo( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareBudgetUpgradeToAndCall( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__. + */ +export function useBudgetEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useBudgetAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceAmountChanged"`. + */ +export function useBudgetAllowanceAmountChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceAmountChanged', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceAmountChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceCreated"`. + */ +export function useBudgetAllowanceCreatedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceCreated', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceCreated' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceDebited"`. + */ +export function useBudgetAllowanceDebitedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceDebited', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceDebited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceNameChanged"`. + */ +export function useBudgetAllowanceNameChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceNameChanged', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceNameChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceSpenderChanged"`. + */ +export function useBudgetAllowanceSpenderChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceSpenderChanged', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceSpenderChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"AllowanceStateChanged"`. + */ +export function useBudgetAllowanceStateChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'AllowanceStateChanged', ...config } as UseContractEventConfig< + typeof budgetABI, + 'AllowanceStateChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useBudgetBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof budgetABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"Initialized"`. + */ +export function useBudgetInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof budgetABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"MultiPaymentExecuted"`. + */ +export function useBudgetMultiPaymentExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'MultiPaymentExecuted', ...config } as UseContractEventConfig< + typeof budgetABI, + 'MultiPaymentExecuted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"PaymentExecuted"`. + */ +export function useBudgetPaymentExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'PaymentExecuted', ...config } as UseContractEventConfig< + typeof budgetABI, + 'PaymentExecuted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link budgetABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useBudgetUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: budgetABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof budgetABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetSetupABI}__. + */ +export function useBudgetSetupRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: budgetSetupABI, ...config } as UseContractReadConfig< + typeof budgetSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"implementation"`. + */ +export function useBudgetSetupImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: budgetSetupABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof budgetSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function useBudgetSetupPrepareUninstallation< + TFunctionName extends 'prepareUninstallation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: budgetSetupABI, + functionName: 'prepareUninstallation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useBudgetSetupProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: budgetSetupABI, functionName: 'protocolVersion', ...config } as UseContractReadConfig< + typeof budgetSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useBudgetSetupSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: budgetSetupABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof budgetSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetSetupABI}__. + */ +export function useBudgetSetupWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: budgetSetupABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function useBudgetSetupPrepareInstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareInstallation', + TMode + > & { functionName?: 'prepareInstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareInstallation' + } = {} as any, +) { + return useContractWrite({ + abi: budgetSetupABI, + functionName: 'prepareInstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function useBudgetSetupPrepareUpdate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUpdate', + TMode + > & { functionName?: 'prepareUpdate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUpdate' + } = {} as any, +) { + return useContractWrite({ + abi: budgetSetupABI, + functionName: 'prepareUpdate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetSetupABI}__. + */ +export function usePrepareBudgetSetupWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: budgetSetupABI, ...config } as UsePrepareContractWriteConfig< + typeof budgetSetupABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePrepareBudgetSetupPrepareInstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetSetupABI, + functionName: 'prepareInstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link budgetSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePrepareBudgetSetupPrepareUpdate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: budgetSetupABI, + functionName: 'prepareUpdate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link callbackHandlerABI}__. + */ +export function useCallbackHandlerEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: callbackHandlerABI, ...config } as UseContractEventConfig< + typeof callbackHandlerABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link callbackHandlerABI}__ and `eventName` set to `"CallbackReceived"`. + */ +export function useCallbackHandlerCallbackReceivedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: callbackHandlerABI, + eventName: 'CallbackReceived', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link contextUpgradeableABI}__. + */ +export function useContextUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: contextUpgradeableABI, ...config } as UseContractEventConfig< + typeof contextUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link contextUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useContextUpgradeableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: contextUpgradeableABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof contextUpgradeableABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__. + */ +export function useDaoRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: daoABI, ...config } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"EXECUTE_PERMISSION_ID"`. + */ +export function useDaoExecutePermissionId< + TFunctionName extends 'EXECUTE_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'EXECUTE_PERMISSION_ID', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"REGISTER_STANDARD_CALLBACK_PERMISSION_ID"`. + */ +export function useDaoRegisterStandardCallbackPermissionId< + TFunctionName extends 'REGISTER_STANDARD_CALLBACK_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ + abi: daoABI, + functionName: 'REGISTER_STANDARD_CALLBACK_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"ROOT_PERMISSION_ID"`. + */ +export function useDaoRootPermissionId< + TFunctionName extends 'ROOT_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'ROOT_PERMISSION_ID', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"SET_METADATA_PERMISSION_ID"`. + */ +export function useDaoSetMetadataPermissionId< + TFunctionName extends 'SET_METADATA_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ + abi: daoABI, + functionName: 'SET_METADATA_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"SET_TRUSTED_FORWARDER_PERMISSION_ID"`. + */ +export function useDaoSetTrustedForwarderPermissionId< + TFunctionName extends 'SET_TRUSTED_FORWARDER_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ + abi: daoABI, + functionName: 'SET_TRUSTED_FORWARDER_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"UPGRADE_DAO_PERMISSION_ID"`. + */ +export function useDaoUpgradeDaoPermissionId< + TFunctionName extends 'UPGRADE_DAO_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'UPGRADE_DAO_PERMISSION_ID', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"VALIDATE_SIGNATURE_PERMISSION_ID"`. + */ +export function useDaoValidateSignaturePermissionId< + TFunctionName extends 'VALIDATE_SIGNATURE_PERMISSION_ID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ + abi: daoABI, + functionName: 'VALIDATE_SIGNATURE_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"daoURI"`. + */ +export function useDaoDaoUri< + TFunctionName extends 'daoURI', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'daoURI', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"getTrustedForwarder"`. + */ +export function useDaoGetTrustedForwarder< + TFunctionName extends 'getTrustedForwarder', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'getTrustedForwarder', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"hasPermission"`. + */ +export function useDaoHasPermission< + TFunctionName extends 'hasPermission', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'hasPermission', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"isGranted"`. + */ +export function useDaoIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'isGranted', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"isValidSignature"`. + */ +export function useDaoIsValidSignature< + TFunctionName extends 'isValidSignature', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'isValidSignature', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useDaoProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'protocolVersion', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useDaoProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'proxiableUUID', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setSignatureValidator"`. + */ +export function useDaoSetSignatureValidator< + TFunctionName extends 'setSignatureValidator', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'setSignatureValidator', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useDaoSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: daoABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof daoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__. + */ +export function useDaoWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], TFunctionName, TMode> + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: daoABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function useDaoApplyMultiTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyMultiTargetPermissions', + TMode + > & { functionName?: 'applyMultiTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyMultiTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function useDaoApplySingleTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applySingleTargetPermissions', + TMode + > & { functionName?: 'applySingleTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applySingleTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"deposit"`. + */ +export function useDaoDeposit( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'deposit', + TMode + > & { functionName?: 'deposit' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'deposit' + } = {} as any, +) { + return useContractWrite({ abi: daoABI, functionName: 'deposit', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"execute"`. + */ +export function useDaoExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ abi: daoABI, functionName: 'execute', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"grant"`. + */ +export function useDaoGrant( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], 'grant', TMode> & { + functionName?: 'grant' + } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grant' + } = {} as any, +) { + return useContractWrite({ abi: daoABI, functionName: 'grant', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function useDaoGrantWithCondition( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grantWithCondition', + TMode + > & { functionName?: 'grantWithCondition' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grantWithCondition' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'grantWithCondition', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"initialize"`. + */ +export function useDaoInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"initializeFrom"`. + */ +export function useDaoInitializeFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initializeFrom', + TMode + > & { functionName?: 'initializeFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initializeFrom' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'initializeFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function useDaoRegisterStandardCallback( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'registerStandardCallback', + TMode + > & { functionName?: 'registerStandardCallback' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'registerStandardCallback' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'registerStandardCallback', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"revoke"`. + */ +export function useDaoRevoke( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], 'revoke', TMode> & { + functionName?: 'revoke' + } + : UseContractWriteConfig & { + abi?: never + functionName?: 'revoke' + } = {} as any, +) { + return useContractWrite({ abi: daoABI, functionName: 'revoke', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setDaoURI"`. + */ +export function useDaoSetDaoUri( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setDaoURI', + TMode + > & { functionName?: 'setDaoURI' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setDaoURI' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'setDaoURI', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setMetadata"`. + */ +export function useDaoSetMetadata( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setMetadata', + TMode + > & { functionName?: 'setMetadata' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setMetadata' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'setMetadata', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function useDaoSetTrustedForwarder( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setTrustedForwarder', + TMode + > & { functionName?: 'setTrustedForwarder' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setTrustedForwarder' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'setTrustedForwarder', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useDaoUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useDaoUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: daoABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__. + */ +export function usePrepareDaoWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePrepareDaoApplyMultiTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePrepareDaoApplySingleTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"deposit"`. + */ +export function usePrepareDaoDeposit( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'deposit', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'deposit' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareDaoExecute( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'execute', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'execute' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"grant"`. + */ +export function usePrepareDaoGrant( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'grant', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'grant' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePrepareDaoGrantWithCondition( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'grantWithCondition', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareDaoInitialize( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"initializeFrom"`. + */ +export function usePrepareDaoInitializeFrom( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'initializeFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function usePrepareDaoRegisterStandardCallback( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'registerStandardCallback', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"revoke"`. + */ +export function usePrepareDaoRevoke( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'revoke', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'revoke' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setDaoURI"`. + */ +export function usePrepareDaoSetDaoUri( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'setDaoURI', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'setDaoURI' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setMetadata"`. + */ +export function usePrepareDaoSetMetadata( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'setMetadata', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function usePrepareDaoSetTrustedForwarder( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'setTrustedForwarder', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareDaoUpgradeTo( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoABI, functionName: 'upgradeTo', ...config } as UsePrepareContractWriteConfig< + typeof daoABI, + 'upgradeTo' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareDaoUpgradeToAndCall( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__. + */ +export function useDaoEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: daoABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useDaoAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof daoABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useDaoBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof daoABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"CallbackReceived"`. + */ +export function useDaoCallbackReceivedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'CallbackReceived', ...config } as UseContractEventConfig< + typeof daoABI, + 'CallbackReceived' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Deposited"`. + */ +export function useDaoDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Deposited', ...config } as UseContractEventConfig< + typeof daoABI, + 'Deposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Executed"`. + */ +export function useDaoExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Executed', ...config } as UseContractEventConfig< + typeof daoABI, + 'Executed' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Granted"`. + */ +export function useDaoGrantedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Granted', ...config } as UseContractEventConfig< + typeof daoABI, + 'Granted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Initialized"`. + */ +export function useDaoInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof daoABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"MetadataSet"`. + */ +export function useDaoMetadataSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'MetadataSet', ...config } as UseContractEventConfig< + typeof daoABI, + 'MetadataSet' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"NativeTokenDeposited"`. + */ +export function useDaoNativeTokenDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'NativeTokenDeposited', ...config } as UseContractEventConfig< + typeof daoABI, + 'NativeTokenDeposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"NewURI"`. + */ +export function useDaoNewUriEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'NewURI', ...config } as UseContractEventConfig< + typeof daoABI, + 'NewURI' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Revoked"`. + */ +export function useDaoRevokedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Revoked', ...config } as UseContractEventConfig< + typeof daoABI, + 'Revoked' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"StandardCallbackRegistered"`. + */ +export function useDaoStandardCallbackRegisteredEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'StandardCallbackRegistered', ...config } as UseContractEventConfig< + typeof daoABI, + 'StandardCallbackRegistered' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"TrustedForwarderSet"`. + */ +export function useDaoTrustedForwarderSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'TrustedForwarderSet', ...config } as UseContractEventConfig< + typeof daoABI, + 'TrustedForwarderSet' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useDaoUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof daoABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__. + */ +export function useDaoMockRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: daoMockABI, ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"ROOT_PERMISSION_ID"`. + */ +export function useDaoMockRootPermissionId< + TFunctionName extends 'ROOT_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'ROOT_PERMISSION_ID', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"getTrustedForwarder"`. + */ +export function useDaoMockGetTrustedForwarder< + TFunctionName extends 'getTrustedForwarder', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'getTrustedForwarder', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"hasPermission"`. + */ +export function useDaoMockHasPermission< + TFunctionName extends 'hasPermission', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'hasPermission', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"isGranted"`. + */ +export function useDaoMockIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'isGranted', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"isValidSignature"`. + */ +export function useDaoMockIsValidSignature< + TFunctionName extends 'isValidSignature', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'isValidSignature', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"pastVotes"`. + */ +export function useDaoMockPastVotes< + TFunctionName extends 'pastVotes', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'pastVotes', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useDaoMockTotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: daoMockABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof daoMockABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__. + */ +export function useDaoMockWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: daoMockABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function useDaoMockApplyMultiTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyMultiTargetPermissions', + TMode + > & { functionName?: 'applyMultiTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyMultiTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function useDaoMockApplySingleTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applySingleTargetPermissions', + TMode + > & { functionName?: 'applySingleTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applySingleTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"deposit"`. + */ +export function useDaoMockDeposit( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'deposit', + TMode + > & { functionName?: 'deposit' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'deposit' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'deposit', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"execute"`. + */ +export function useDaoMockExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'execute', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"grant"`. + */ +export function useDaoMockGrant( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grant', + TMode + > & { functionName?: 'grant' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grant' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'grant', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function useDaoMockGrantWithCondition( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grantWithCondition', + TMode + > & { functionName?: 'grantWithCondition' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grantWithCondition' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'grantWithCondition', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function useDaoMockRegisterStandardCallback( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'registerStandardCallback', + TMode + > & { functionName?: 'registerStandardCallback' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'registerStandardCallback' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'registerStandardCallback', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"revoke"`. + */ +export function useDaoMockRevoke( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'revoke', + TMode + > & { functionName?: 'revoke' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'revoke' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'revoke', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setMetadata"`. + */ +export function useDaoMockSetMetadata( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setMetadata', + TMode + > & { functionName?: 'setMetadata' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setMetadata' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'setMetadata', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setSignatureValidator"`. + */ +export function useDaoMockSetSignatureValidator( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setSignatureValidator', + TMode + > & { functionName?: 'setSignatureValidator' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setSignatureValidator' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'setSignatureValidator', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function useDaoMockSetTrustedForwarder( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setTrustedForwarder', + TMode + > & { functionName?: 'setTrustedForwarder' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setTrustedForwarder' + } = {} as any, +) { + return useContractWrite({ + abi: daoMockABI, + functionName: 'setTrustedForwarder', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__. + */ +export function usePrepareDaoMockWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoMockABI, ...config } as UsePrepareContractWriteConfig< + typeof daoMockABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePrepareDaoMockApplyMultiTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePrepareDaoMockApplySingleTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"deposit"`. + */ +export function usePrepareDaoMockDeposit( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'deposit', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareDaoMockExecute( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'execute', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"grant"`. + */ +export function usePrepareDaoMockGrant( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: daoMockABI, functionName: 'grant', ...config } as UsePrepareContractWriteConfig< + typeof daoMockABI, + 'grant' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePrepareDaoMockGrantWithCondition( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'grantWithCondition', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function usePrepareDaoMockRegisterStandardCallback( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'registerStandardCallback', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"revoke"`. + */ +export function usePrepareDaoMockRevoke( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'revoke', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setMetadata"`. + */ +export function usePrepareDaoMockSetMetadata( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'setMetadata', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setSignatureValidator"`. + */ +export function usePrepareDaoMockSetSignatureValidator( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'setSignatureValidator', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link daoMockABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function usePrepareDaoMockSetTrustedForwarder( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: daoMockABI, + functionName: 'setTrustedForwarder', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__. + */ +export function useDaoMockEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"Deposited"`. + */ +export function useDaoMockDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'Deposited', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'Deposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"Executed"`. + */ +export function useDaoMockExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'Executed', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'Executed' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"Granted"`. + */ +export function useDaoMockGrantedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'Granted', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'Granted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"Initialized"`. + */ +export function useDaoMockInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"MetadataSet"`. + */ +export function useDaoMockMetadataSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'MetadataSet', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'MetadataSet' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"NativeTokenDeposited"`. + */ +export function useDaoMockNativeTokenDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'NativeTokenDeposited', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'NativeTokenDeposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"Revoked"`. + */ +export function useDaoMockRevokedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'Revoked', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'Revoked' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"StandardCallbackRegistered"`. + */ +export function useDaoMockStandardCallbackRegisteredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: daoMockABI, + eventName: 'StandardCallbackRegistered', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoMockABI}__ and `eventName` set to `"TrustedForwarderSet"`. + */ +export function useDaoMockTrustedForwarderSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: daoMockABI, eventName: 'TrustedForwarderSet', ...config } as UseContractEventConfig< + typeof daoMockABI, + 'TrustedForwarderSet' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoAuthorizableUpgradeableABI}__. + */ +export function useDaoAuthorizableUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' + > = {} as any, +) { + return useContractRead({ abi: daoAuthorizableUpgradeableABI, ...config } as UseContractReadConfig< + typeof daoAuthorizableUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link daoAuthorizableUpgradeableABI}__ and `functionName` set to `"dao"`. + */ +export function useDaoAuthorizableUpgradeableDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: daoAuthorizableUpgradeableABI, + functionName: 'dao', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoAuthorizableUpgradeableABI}__. + */ +export function useDaoAuthorizableUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: daoAuthorizableUpgradeableABI, ...config } as UseContractEventConfig< + typeof daoAuthorizableUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link daoAuthorizableUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useDaoAuthorizableUpgradeableInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: daoAuthorizableUpgradeableABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__. + */ +export function useEnsRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ensABI, ...config } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"isApprovedForAll"`. + */ +export function useEnsIsApprovedForAll< + TFunctionName extends 'isApprovedForAll', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: ensABI, functionName: 'isApprovedForAll', ...config } as UseContractReadConfig< + typeof ensABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"owner"`. + */ +export function useEnsOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: ensABI, functionName: 'owner', ...config } as UseContractReadConfig< + typeof ensABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"recordExists"`. + */ +export function useEnsRecordExists< + TFunctionName extends 'recordExists', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: ensABI, functionName: 'recordExists', ...config } as UseContractReadConfig< + typeof ensABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"resolver"`. + */ +export function useEnsResolver< + TFunctionName extends 'resolver', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: ensABI, functionName: 'resolver', ...config } as UseContractReadConfig< + typeof ensABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"ttl"`. + */ +export function useEnsTtl>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: ensABI, functionName: 'ttl', ...config } as UseContractReadConfig< + typeof ensABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__. + */ +export function useEnsWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], TFunctionName, TMode> + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: ensABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setApprovalForAll"`. + */ +export function useEnsSetApprovalForAll( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setApprovalForAll', + TMode + > & { functionName?: 'setApprovalForAll' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setApprovalForAll' + } = {} as any, +) { + return useContractWrite({ + abi: ensABI, + functionName: 'setApprovalForAll', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setOwner"`. + */ +export function useEnsSetOwner( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setOwner', + TMode + > & { functionName?: 'setOwner' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setOwner' + } = {} as any, +) { + return useContractWrite({ abi: ensABI, functionName: 'setOwner', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setRecord"`. + */ +export function useEnsSetRecord( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setRecord', + TMode + > & { functionName?: 'setRecord' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setRecord' + } = {} as any, +) { + return useContractWrite({ + abi: ensABI, + functionName: 'setRecord', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setResolver"`. + */ +export function useEnsSetResolver( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setResolver', + TMode + > & { functionName?: 'setResolver' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setResolver' + } = {} as any, +) { + return useContractWrite({ + abi: ensABI, + functionName: 'setResolver', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setSubnodeOwner"`. + */ +export function useEnsSetSubnodeOwner( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setSubnodeOwner', + TMode + > & { functionName?: 'setSubnodeOwner' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setSubnodeOwner' + } = {} as any, +) { + return useContractWrite({ + abi: ensABI, + functionName: 'setSubnodeOwner', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setSubnodeRecord"`. + */ +export function useEnsSetSubnodeRecord( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setSubnodeRecord', + TMode + > & { functionName?: 'setSubnodeRecord' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setSubnodeRecord' + } = {} as any, +) { + return useContractWrite({ + abi: ensABI, + functionName: 'setSubnodeRecord', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setTTL"`. + */ +export function useEnsSetTtl( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], 'setTTL', TMode> & { + functionName?: 'setTTL' + } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setTTL' + } = {} as any, +) { + return useContractWrite({ abi: ensABI, functionName: 'setTTL', ...config } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__. + */ +export function usePrepareEnsWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ensABI, ...config } as UsePrepareContractWriteConfig< + typeof ensABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setApprovalForAll"`. + */ +export function usePrepareEnsSetApprovalForAll( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ensABI, + functionName: 'setApprovalForAll', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setOwner"`. + */ +export function usePrepareEnsSetOwner( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: ensABI, functionName: 'setOwner', ...config } as UsePrepareContractWriteConfig< + typeof ensABI, + 'setOwner' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setRecord"`. + */ +export function usePrepareEnsSetRecord( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: ensABI, functionName: 'setRecord', ...config } as UsePrepareContractWriteConfig< + typeof ensABI, + 'setRecord' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setResolver"`. + */ +export function usePrepareEnsSetResolver( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ensABI, + functionName: 'setResolver', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setSubnodeOwner"`. + */ +export function usePrepareEnsSetSubnodeOwner( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ensABI, + functionName: 'setSubnodeOwner', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setSubnodeRecord"`. + */ +export function usePrepareEnsSetSubnodeRecord( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ensABI, + functionName: 'setSubnodeRecord', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensABI}__ and `functionName` set to `"setTTL"`. + */ +export function usePrepareEnsSetTtl( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: ensABI, functionName: 'setTTL', ...config } as UsePrepareContractWriteConfig< + typeof ensABI, + 'setTTL' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__. + */ +export function useEnsEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ensABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__ and `eventName` set to `"ApprovalForAll"`. + */ +export function useEnsApprovalForAllEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensABI, eventName: 'ApprovalForAll', ...config } as UseContractEventConfig< + typeof ensABI, + 'ApprovalForAll' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__ and `eventName` set to `"NewOwner"`. + */ +export function useEnsNewOwnerEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensABI, eventName: 'NewOwner', ...config } as UseContractEventConfig< + typeof ensABI, + 'NewOwner' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__ and `eventName` set to `"NewResolver"`. + */ +export function useEnsNewResolverEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensABI, eventName: 'NewResolver', ...config } as UseContractEventConfig< + typeof ensABI, + 'NewResolver' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__ and `eventName` set to `"NewTTL"`. + */ +export function useEnsNewTtlEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensABI, eventName: 'NewTTL', ...config } as UseContractEventConfig< + typeof ensABI, + 'NewTTL' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensABI}__ and `eventName` set to `"Transfer"`. + */ +export function useEnsTransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof ensABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__. + */ +export function useEnsSubdomainRegistrarRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ensSubdomainRegistrarABI, ...config } as UseContractReadConfig< + typeof ensSubdomainRegistrarABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"REGISTER_ENS_SUBDOMAIN_PERMISSION_ID"`. + */ +export function useEnsSubdomainRegistrarRegisterEnsSubdomainPermissionId< + TFunctionName extends 'REGISTER_ENS_SUBDOMAIN_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ensSubdomainRegistrarABI, + functionName: 'REGISTER_ENS_SUBDOMAIN_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"UPGRADE_REGISTRAR_PERMISSION_ID"`. + */ +export function useEnsSubdomainRegistrarUpgradeRegistrarPermissionId< + TFunctionName extends 'UPGRADE_REGISTRAR_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ensSubdomainRegistrarABI, + functionName: 'UPGRADE_REGISTRAR_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"dao"`. + */ +export function useEnsSubdomainRegistrarDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ensSubdomainRegistrarABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof ensSubdomainRegistrarABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"ens"`. + */ +export function useEnsSubdomainRegistrarEns< + TFunctionName extends 'ens', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ensSubdomainRegistrarABI, functionName: 'ens', ...config } as UseContractReadConfig< + typeof ensSubdomainRegistrarABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"node"`. + */ +export function useEnsSubdomainRegistrarNode< + TFunctionName extends 'node', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ensSubdomainRegistrarABI, functionName: 'node', ...config } as UseContractReadConfig< + typeof ensSubdomainRegistrarABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useEnsSubdomainRegistrarProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ensSubdomainRegistrarABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useEnsSubdomainRegistrarProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ensSubdomainRegistrarABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"resolver"`. + */ +export function useEnsSubdomainRegistrarResolver< + TFunctionName extends 'resolver', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ensSubdomainRegistrarABI, + functionName: 'resolver', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__. + */ +export function useEnsSubdomainRegistrarWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"initialize"`. + */ +export function useEnsSubdomainRegistrarInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"registerSubnode"`. + */ +export function useEnsSubdomainRegistrarRegisterSubnode( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'registerSubnode', + TMode + > & { functionName?: 'registerSubnode' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'registerSubnode' + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'registerSubnode', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"setDefaultResolver"`. + */ +export function useEnsSubdomainRegistrarSetDefaultResolver( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setDefaultResolver', + TMode + > & { functionName?: 'setDefaultResolver' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setDefaultResolver' + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'setDefaultResolver', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useEnsSubdomainRegistrarUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useEnsSubdomainRegistrarUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__. + */ +export function usePrepareEnsSubdomainRegistrarWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ensSubdomainRegistrarABI, ...config } as UsePrepareContractWriteConfig< + typeof ensSubdomainRegistrarABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareEnsSubdomainRegistrarInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"registerSubnode"`. + */ +export function usePrepareEnsSubdomainRegistrarRegisterSubnode( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'registerSubnode', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"setDefaultResolver"`. + */ +export function usePrepareEnsSubdomainRegistrarSetDefaultResolver( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'setDefaultResolver', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareEnsSubdomainRegistrarUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareEnsSubdomainRegistrarUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ensSubdomainRegistrarABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__. + */ +export function useEnsSubdomainRegistrarEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ensSubdomainRegistrarABI, ...config } as UseContractEventConfig< + typeof ensSubdomainRegistrarABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useEnsSubdomainRegistrarAdminChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: ensSubdomainRegistrarABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useEnsSubdomainRegistrarBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: ensSubdomainRegistrarABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `eventName` set to `"Initialized"`. + */ +export function useEnsSubdomainRegistrarInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: ensSubdomainRegistrarABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ensSubdomainRegistrarABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useEnsSubdomainRegistrarUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ensSubdomainRegistrarABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof ensSubdomainRegistrarABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165ABI}__. + */ +export function useErc165Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: erc165ABI, ...config } as UseContractReadConfig< + typeof erc165ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165ABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useErc165SupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc165ABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof erc165ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165StorageUpgradeableABI}__. + */ +export function useErc165StorageUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' + > = {} as any, +) { + return useContractRead({ abi: erc165StorageUpgradeableABI, ...config } as UseContractReadConfig< + typeof erc165StorageUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165StorageUpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useErc165StorageUpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: erc165StorageUpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc165StorageUpgradeableABI}__. + */ +export function useErc165StorageUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc165StorageUpgradeableABI, ...config } as UseContractEventConfig< + typeof erc165StorageUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc165StorageUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useErc165StorageUpgradeableInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: erc165StorageUpgradeableABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165UpgradeableABI}__. + */ +export function useErc165UpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: erc165UpgradeableABI, ...config } as UseContractReadConfig< + typeof erc165UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc165UpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useErc165UpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: erc165UpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc165UpgradeableABI}__. + */ +export function useErc165UpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc165UpgradeableABI, ...config } as UseContractEventConfig< + typeof erc165UpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc165UpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useErc165UpgradeableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc165UpgradeableABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof erc165UpgradeableABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967ProxyABI}__. + */ +export function useErc1967ProxyEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc1967ProxyABI, ...config } as UseContractEventConfig< + typeof erc1967ProxyABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967ProxyABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useErc1967ProxyAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967ProxyABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof erc1967ProxyABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967ProxyABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useErc1967ProxyBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967ProxyABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof erc1967ProxyABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967ProxyABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useErc1967ProxyUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967ProxyABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof erc1967ProxyABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeABI}__. + */ +export function useErc1967UpgradeEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc1967UpgradeABI, ...config } as UseContractEventConfig< + typeof erc1967UpgradeABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useErc1967UpgradeAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967UpgradeABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof erc1967UpgradeABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useErc1967UpgradeBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967UpgradeABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof erc1967UpgradeABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useErc1967UpgradeUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc1967UpgradeABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof erc1967UpgradeABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeUpgradeableABI}__. + */ +export function useErc1967UpgradeUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc1967UpgradeUpgradeableABI, ...config } as UseContractEventConfig< + typeof erc1967UpgradeUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeUpgradeableABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useErc1967UpgradeUpgradeableAdminChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: erc1967UpgradeUpgradeableABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeUpgradeableABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useErc1967UpgradeUpgradeableBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: erc1967UpgradeUpgradeableABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useErc1967UpgradeUpgradeableInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: erc1967UpgradeUpgradeableABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc1967UpgradeUpgradeableABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useErc1967UpgradeUpgradeableUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: erc1967UpgradeUpgradeableABI, + eventName: 'Upgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__. + */ +export function useErc20Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: erc20ABI, ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"allowance"`. + */ +export function useErc20Allowance< + TFunctionName extends 'allowance', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'allowance', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useErc20BalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"decimals"`. + */ +export function useErc20Decimals< + TFunctionName extends 'decimals', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'decimals', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"name"`. + */ +export function useErc20Name< + TFunctionName extends 'name', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'name', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"symbol"`. + */ +export function useErc20Symbol< + TFunctionName extends 'symbol', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'symbol', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useErc20TotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: erc20ABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof erc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__. + */ +export function useErc20Write( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: erc20ABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"approve"`. + */ +export function useErc20Approve( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'approve', + TMode + > & { functionName?: 'approve' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'approve' + } = {} as any, +) { + return useContractWrite({ + abi: erc20ABI, + functionName: 'approve', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"decreaseAllowance"`. + */ +export function useErc20DecreaseAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'decreaseAllowance', + TMode + > & { functionName?: 'decreaseAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'decreaseAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: erc20ABI, + functionName: 'decreaseAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"increaseAllowance"`. + */ +export function useErc20IncreaseAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'increaseAllowance', + TMode + > & { functionName?: 'increaseAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'increaseAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: erc20ABI, + functionName: 'increaseAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function useErc20Transfer( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transfer', + TMode + > & { functionName?: 'transfer' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transfer' + } = {} as any, +) { + return useContractWrite({ + abi: erc20ABI, + functionName: 'transfer', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function useErc20TransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferFrom', + TMode + > & { functionName?: 'transferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: erc20ABI, + functionName: 'transferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__. + */ +export function usePrepareErc20Write( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: erc20ABI, ...config } as UsePrepareContractWriteConfig< + typeof erc20ABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"approve"`. + */ +export function usePrepareErc20Approve( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: erc20ABI, functionName: 'approve', ...config } as UsePrepareContractWriteConfig< + typeof erc20ABI, + 'approve' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"decreaseAllowance"`. + */ +export function usePrepareErc20DecreaseAllowance( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: erc20ABI, + functionName: 'decreaseAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"increaseAllowance"`. + */ +export function usePrepareErc20IncreaseAllowance( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: erc20ABI, + functionName: 'increaseAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function usePrepareErc20Transfer( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: erc20ABI, + functionName: 'transfer', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link erc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function usePrepareErc20TransferFrom( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: erc20ABI, + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc20ABI}__. + */ +export function useErc20Event( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: erc20ABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc20ABI}__ and `eventName` set to `"Approval"`. + */ +export function useErc20ApprovalEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc20ABI, eventName: 'Approval', ...config } as UseContractEventConfig< + typeof erc20ABI, + 'Approval' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link erc20ABI}__ and `eventName` set to `"Transfer"`. + */ +export function useErc20TransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: erc20ABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof erc20ABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iabiResolverABI}__. + */ +export function useIabiResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iabiResolverABI, ...config } as UseContractReadConfig< + typeof iabiResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iabiResolverABI}__ and `functionName` set to `"ABI"`. + */ +export function useIabiResolverAbi< + TFunctionName extends 'ABI', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iabiResolverABI, functionName: 'ABI', ...config } as UseContractReadConfig< + typeof iabiResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iabiResolverABI}__. + */ +export function useIabiResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iabiResolverABI, ...config } as UseContractEventConfig< + typeof iabiResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iabiResolverABI}__ and `eventName` set to `"ABIChanged"`. + */ +export function useIabiResolverAbiChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iabiResolverABI, eventName: 'ABIChanged', ...config } as UseContractEventConfig< + typeof iabiResolverABI, + 'ABIChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iAddrResolverABI}__. + */ +export function useIAddrResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iAddrResolverABI, ...config } as UseContractReadConfig< + typeof iAddrResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iAddrResolverABI}__ and `functionName` set to `"addr"`. + */ +export function useIAddrResolverAddr< + TFunctionName extends 'addr', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iAddrResolverABI, functionName: 'addr', ...config } as UseContractReadConfig< + typeof iAddrResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iAddrResolverABI}__. + */ +export function useIAddrResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iAddrResolverABI, ...config } as UseContractEventConfig< + typeof iAddrResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iAddrResolverABI}__ and `eventName` set to `"AddrChanged"`. + */ +export function useIAddrResolverAddrChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iAddrResolverABI, eventName: 'AddrChanged', ...config } as UseContractEventConfig< + typeof iAddrResolverABI, + 'AddrChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iAddressResolverABI}__. + */ +export function useIAddressResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iAddressResolverABI, ...config } as UseContractReadConfig< + typeof iAddressResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iAddressResolverABI}__ and `functionName` set to `"addr"`. + */ +export function useIAddressResolverAddr< + TFunctionName extends 'addr', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iAddressResolverABI, functionName: 'addr', ...config } as UseContractReadConfig< + typeof iAddressResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iAddressResolverABI}__. + */ +export function useIAddressResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iAddressResolverABI, ...config } as UseContractEventConfig< + typeof iAddressResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iAddressResolverABI}__ and `eventName` set to `"AddressChanged"`. + */ +export function useIAddressResolverAddressChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: iAddressResolverABI, + eventName: 'AddressChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iBeaconABI}__. + */ +export function useIBeaconRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iBeaconABI, ...config } as UseContractReadConfig< + typeof iBeaconABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iBeaconABI}__ and `functionName` set to `"implementation"`. + */ +export function useIBeaconImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iBeaconABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof iBeaconABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iBeaconUpgradeableABI}__. + */ +export function useIBeaconUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iBeaconUpgradeableABI, ...config } as UseContractReadConfig< + typeof iBeaconUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iBeaconUpgradeableABI}__ and `functionName` set to `"implementation"`. + */ +export function useIBeaconUpgradeableImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iBeaconUpgradeableABI, + functionName: 'implementation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iContentHashResolverABI}__. + */ +export function useIContentHashResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iContentHashResolverABI, ...config } as UseContractReadConfig< + typeof iContentHashResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iContentHashResolverABI}__ and `functionName` set to `"contenthash"`. + */ +export function useIContentHashResolverContenthash< + TFunctionName extends 'contenthash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iContentHashResolverABI, + functionName: 'contenthash', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iContentHashResolverABI}__. + */ +export function useIContentHashResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iContentHashResolverABI, ...config } as UseContractEventConfig< + typeof iContentHashResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iContentHashResolverABI}__ and `eventName` set to `"ContenthashChanged"`. + */ +export function useIContentHashResolverContenthashChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: iContentHashResolverABI, + eventName: 'ContenthashChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idaoABI}__. + */ +export function useIdaoRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: idaoABI, ...config } as UseContractReadConfig< + typeof idaoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"getTrustedForwarder"`. + */ +export function useIdaoGetTrustedForwarder< + TFunctionName extends 'getTrustedForwarder', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: idaoABI, functionName: 'getTrustedForwarder', ...config } as UseContractReadConfig< + typeof idaoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"hasPermission"`. + */ +export function useIdaoHasPermission< + TFunctionName extends 'hasPermission', + TSelectData = ReadContractResult, +>(config: Omit, 'abi' | 'functionName'> = {} as any) { + return useContractRead({ abi: idaoABI, functionName: 'hasPermission', ...config } as UseContractReadConfig< + typeof idaoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__. + */ +export function useIdaoWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig['request']['abi'], TFunctionName, TMode> + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: idaoABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"deposit"`. + */ +export function useIdaoDeposit( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'deposit', + TMode + > & { functionName?: 'deposit' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'deposit' + } = {} as any, +) { + return useContractWrite({ abi: idaoABI, functionName: 'deposit', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"execute"`. + */ +export function useIdaoExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ abi: idaoABI, functionName: 'execute', ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"isValidSignature"`. + */ +export function useIdaoIsValidSignature( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'isValidSignature', + TMode + > & { functionName?: 'isValidSignature' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'isValidSignature' + } = {} as any, +) { + return useContractWrite({ + abi: idaoABI, + functionName: 'isValidSignature', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function useIdaoRegisterStandardCallback( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'registerStandardCallback', + TMode + > & { functionName?: 'registerStandardCallback' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'registerStandardCallback' + } = {} as any, +) { + return useContractWrite({ + abi: idaoABI, + functionName: 'registerStandardCallback', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setMetadata"`. + */ +export function useIdaoSetMetadata( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setMetadata', + TMode + > & { functionName?: 'setMetadata' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setMetadata' + } = {} as any, +) { + return useContractWrite({ + abi: idaoABI, + functionName: 'setMetadata', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setSignatureValidator"`. + */ +export function useIdaoSetSignatureValidator( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setSignatureValidator', + TMode + > & { functionName?: 'setSignatureValidator' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setSignatureValidator' + } = {} as any, +) { + return useContractWrite({ + abi: idaoABI, + functionName: 'setSignatureValidator', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function useIdaoSetTrustedForwarder( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setTrustedForwarder', + TMode + > & { functionName?: 'setTrustedForwarder' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setTrustedForwarder' + } = {} as any, +) { + return useContractWrite({ + abi: idaoABI, + functionName: 'setTrustedForwarder', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__. + */ +export function usePrepareIdaoWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: idaoABI, ...config } as UsePrepareContractWriteConfig< + typeof idaoABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"deposit"`. + */ +export function usePrepareIdaoDeposit( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: idaoABI, functionName: 'deposit', ...config } as UsePrepareContractWriteConfig< + typeof idaoABI, + 'deposit' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareIdaoExecute( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ abi: idaoABI, functionName: 'execute', ...config } as UsePrepareContractWriteConfig< + typeof idaoABI, + 'execute' + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"isValidSignature"`. + */ +export function usePrepareIdaoIsValidSignature( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: idaoABI, + functionName: 'isValidSignature', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"registerStandardCallback"`. + */ +export function usePrepareIdaoRegisterStandardCallback( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: idaoABI, + functionName: 'registerStandardCallback', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setMetadata"`. + */ +export function usePrepareIdaoSetMetadata( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: idaoABI, + functionName: 'setMetadata', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setSignatureValidator"`. + */ +export function usePrepareIdaoSetSignatureValidator( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: idaoABI, + functionName: 'setSignatureValidator', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link idaoABI}__ and `functionName` set to `"setTrustedForwarder"`. + */ +export function usePrepareIdaoSetTrustedForwarder( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: idaoABI, + functionName: 'setTrustedForwarder', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__. + */ +export function useIdaoEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"Deposited"`. + */ +export function useIdaoDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, eventName: 'Deposited', ...config } as UseContractEventConfig< + typeof idaoABI, + 'Deposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"Executed"`. + */ +export function useIdaoExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, eventName: 'Executed', ...config } as UseContractEventConfig< + typeof idaoABI, + 'Executed' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"MetadataSet"`. + */ +export function useIdaoMetadataSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, eventName: 'MetadataSet', ...config } as UseContractEventConfig< + typeof idaoABI, + 'MetadataSet' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"NativeTokenDeposited"`. + */ +export function useIdaoNativeTokenDepositedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, eventName: 'NativeTokenDeposited', ...config } as UseContractEventConfig< + typeof idaoABI, + 'NativeTokenDeposited' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"StandardCallbackRegistered"`. + */ +export function useIdaoStandardCallbackRegisteredEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: idaoABI, + eventName: 'StandardCallbackRegistered', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idaoABI}__ and `eventName` set to `"TrustedForwarderSet"`. + */ +export function useIdaoTrustedForwarderSetEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: idaoABI, eventName: 'TrustedForwarderSet', ...config } as UseContractEventConfig< + typeof idaoABI, + 'TrustedForwarderSet' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idnsRecordResolverABI}__. + */ +export function useIdnsRecordResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: idnsRecordResolverABI, ...config } as UseContractReadConfig< + typeof idnsRecordResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idnsRecordResolverABI}__ and `functionName` set to `"dnsRecord"`. + */ +export function useIdnsRecordResolverDnsRecord< + TFunctionName extends 'dnsRecord', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: idnsRecordResolverABI, functionName: 'dnsRecord', ...config } as UseContractReadConfig< + typeof idnsRecordResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idnsRecordResolverABI}__. + */ +export function useIdnsRecordResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: idnsRecordResolverABI, ...config } as UseContractEventConfig< + typeof idnsRecordResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idnsRecordResolverABI}__ and `eventName` set to `"DNSRecordChanged"`. + */ +export function useIdnsRecordResolverDnsRecordChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: idnsRecordResolverABI, + eventName: 'DNSRecordChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idnsRecordResolverABI}__ and `eventName` set to `"DNSRecordDeleted"`. + */ +export function useIdnsRecordResolverDnsRecordDeletedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: idnsRecordResolverABI, + eventName: 'DNSRecordDeleted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idnsZoneResolverABI}__. + */ +export function useIdnsZoneResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: idnsZoneResolverABI, ...config } as UseContractReadConfig< + typeof idnsZoneResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link idnsZoneResolverABI}__ and `functionName` set to `"zonehash"`. + */ +export function useIdnsZoneResolverZonehash< + TFunctionName extends 'zonehash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: idnsZoneResolverABI, functionName: 'zonehash', ...config } as UseContractReadConfig< + typeof idnsZoneResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idnsZoneResolverABI}__. + */ +export function useIdnsZoneResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: idnsZoneResolverABI, ...config } as UseContractEventConfig< + typeof idnsZoneResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link idnsZoneResolverABI}__ and `eventName` set to `"DNSZonehashChanged"`. + */ +export function useIdnsZoneResolverDnsZonehashChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: idnsZoneResolverABI, + eventName: 'DNSZonehashChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ieip4824ABI}__. + */ +export function useIeip4824Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ieip4824ABI, ...config } as UseContractReadConfig< + typeof ieip4824ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ieip4824ABI}__ and `functionName` set to `"daoURI"`. + */ +export function useIeip4824DaoUri< + TFunctionName extends 'daoURI', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ieip4824ABI, functionName: 'daoURI', ...config } as UseContractReadConfig< + typeof ieip4824ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__. + */ +export function useIerc1155ReceiverUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' + > = {} as any, +) { + return useContractRead({ abi: ierc1155ReceiverUpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc1155ReceiverUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useIerc1155ReceiverUpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1155ReceiverUpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__. + */ +export function useIerc1155ReceiverUpgradeableWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155ReceiverUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__ and `functionName` set to `"onERC1155BatchReceived"`. + */ +export function useIerc1155ReceiverUpgradeableOnErc1155BatchReceived( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'onERC1155BatchReceived', + TMode + > & { functionName?: 'onERC1155BatchReceived' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'onERC1155BatchReceived' + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155ReceiverUpgradeableABI, + functionName: 'onERC1155BatchReceived', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__ and `functionName` set to `"onERC1155Received"`. + */ +export function useIerc1155ReceiverUpgradeableOnErc1155Received( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'onERC1155Received', + TMode + > & { functionName?: 'onERC1155Received' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'onERC1155Received' + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155ReceiverUpgradeableABI, + functionName: 'onERC1155Received', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__. + */ +export function usePrepareIerc1155ReceiverUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc1155ReceiverUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc1155ReceiverUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__ and `functionName` set to `"onERC1155BatchReceived"`. + */ +export function usePrepareIerc1155ReceiverUpgradeableOnErc1155BatchReceived( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc1155ReceiverUpgradeableABI, + functionName: 'onERC1155BatchReceived', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155ReceiverUpgradeableABI}__ and `functionName` set to `"onERC1155Received"`. + */ +export function usePrepareIerc1155ReceiverUpgradeableOnErc1155Received( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc1155ReceiverUpgradeableABI, + functionName: 'onERC1155Received', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155UpgradeableABI}__. + */ +export function useIerc1155UpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc1155UpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc1155UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useIerc1155UpgradeableBalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc1155UpgradeableABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof ierc1155UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"balanceOfBatch"`. + */ +export function useIerc1155UpgradeableBalanceOfBatch< + TFunctionName extends 'balanceOfBatch', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1155UpgradeableABI, + functionName: 'balanceOfBatch', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"isApprovedForAll"`. + */ +export function useIerc1155UpgradeableIsApprovedForAll< + TFunctionName extends 'isApprovedForAll', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1155UpgradeableABI, + functionName: 'isApprovedForAll', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useIerc1155UpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1155UpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__. + */ +export function useIerc1155UpgradeableWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155UpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"safeBatchTransferFrom"`. + */ +export function useIerc1155UpgradeableSafeBatchTransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'safeBatchTransferFrom', + TMode + > & { functionName?: 'safeBatchTransferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'safeBatchTransferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'safeBatchTransferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"safeTransferFrom"`. + */ +export function useIerc1155UpgradeableSafeTransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'safeTransferFrom', + TMode + > & { functionName?: 'safeTransferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'safeTransferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'safeTransferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"setApprovalForAll"`. + */ +export function useIerc1155UpgradeableSetApprovalForAll( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setApprovalForAll', + TMode + > & { functionName?: 'setApprovalForAll' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setApprovalForAll' + } = {} as any, +) { + return useContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'setApprovalForAll', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__. + */ +export function usePrepareIerc1155UpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc1155UpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc1155UpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"safeBatchTransferFrom"`. + */ +export function usePrepareIerc1155UpgradeableSafeBatchTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'safeBatchTransferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"safeTransferFrom"`. + */ +export function usePrepareIerc1155UpgradeableSafeTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'safeTransferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `functionName` set to `"setApprovalForAll"`. + */ +export function usePrepareIerc1155UpgradeableSetApprovalForAll( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc1155UpgradeableABI, + functionName: 'setApprovalForAll', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1155UpgradeableABI}__. + */ +export function useIerc1155UpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc1155UpgradeableABI, ...config } as UseContractEventConfig< + typeof ierc1155UpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `eventName` set to `"ApprovalForAll"`. + */ +export function useIerc1155UpgradeableApprovalForAllEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: ierc1155UpgradeableABI, + eventName: 'ApprovalForAll', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `eventName` set to `"TransferBatch"`. + */ +export function useIerc1155UpgradeableTransferBatchEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: ierc1155UpgradeableABI, + eventName: 'TransferBatch', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `eventName` set to `"TransferSingle"`. + */ +export function useIerc1155UpgradeableTransferSingleEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: ierc1155UpgradeableABI, + eventName: 'TransferSingle', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1155UpgradeableABI}__ and `eventName` set to `"URI"`. + */ +export function useIerc1155UpgradeableUriEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc1155UpgradeableABI, eventName: 'URI', ...config } as UseContractEventConfig< + typeof ierc1155UpgradeableABI, + 'URI' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1271ABI}__. + */ +export function useIerc1271Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc1271ABI, ...config } as UseContractReadConfig< + typeof ierc1271ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1271ABI}__ and `functionName` set to `"isValidSignature"`. + */ +export function useIerc1271IsValidSignature< + TFunctionName extends 'isValidSignature', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc1271ABI, functionName: 'isValidSignature', ...config } as UseContractReadConfig< + typeof ierc1271ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc165ABI}__. + */ +export function useIerc165Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc165ABI, ...config } as UseContractReadConfig< + typeof ierc165ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc165ABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useIerc165SupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc165ABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof ierc165ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc165UpgradeableABI}__. + */ +export function useIerc165UpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc165UpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc165UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc165UpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useIerc165UpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc165UpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967ABI}__. + */ +export function useIerc1967Event( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc1967ABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967ABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useIerc1967AdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc1967ABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof ierc1967ABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967ABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useIerc1967BeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc1967ABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof ierc1967ABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967ABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useIerc1967UpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc1967ABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof ierc1967ABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967UpgradeableABI}__. + */ +export function useIerc1967UpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc1967UpgradeableABI, ...config } as UseContractEventConfig< + typeof ierc1967UpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967UpgradeableABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useIerc1967UpgradeableAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: ierc1967UpgradeableABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967UpgradeableABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useIerc1967UpgradeableBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: ierc1967UpgradeableABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc1967UpgradeableABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useIerc1967UpgradeableUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc1967UpgradeableABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof ierc1967UpgradeableABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20ABI}__. + */ +export function useIerc20Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc20ABI, ...config } as UseContractReadConfig< + typeof ierc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"allowance"`. + */ +export function useIerc20Allowance< + TFunctionName extends 'allowance', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: ierc20ABI, functionName: 'allowance', ...config } as UseContractReadConfig< + typeof ierc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useIerc20BalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: ierc20ABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof ierc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useIerc20TotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return useContractRead({ abi: ierc20ABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof ierc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20ABI}__. + */ +export function useIerc20Write( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: ierc20ABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"approve"`. + */ +export function useIerc20Approve( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'approve', + TMode + > & { functionName?: 'approve' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'approve' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20ABI, + functionName: 'approve', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function useIerc20Transfer( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transfer', + TMode + > & { functionName?: 'transfer' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transfer' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20ABI, + functionName: 'transfer', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function useIerc20TransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferFrom', + TMode + > & { functionName?: 'transferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20ABI, + functionName: 'transferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20ABI}__. + */ +export function usePrepareIerc20Write( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc20ABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc20ABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"approve"`. + */ +export function usePrepareIerc20Approve( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20ABI, + functionName: 'approve', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function usePrepareIerc20Transfer( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20ABI, + functionName: 'transfer', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function usePrepareIerc20TransferFrom( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20ABI, + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20ABI}__. + */ +export function useIerc20Event( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc20ABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20ABI}__ and `eventName` set to `"Approval"`. + */ +export function useIerc20ApprovalEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20ABI, eventName: 'Approval', ...config } as UseContractEventConfig< + typeof ierc20ABI, + 'Approval' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20ABI}__ and `eventName` set to `"Transfer"`. + */ +export function useIerc20TransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20ABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof ierc20ABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__. + */ +export function useIerc20MetadataRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc20MetadataABI, ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"allowance"`. + */ +export function useIerc20MetadataAllowance< + TFunctionName extends 'allowance', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'allowance', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useIerc20MetadataBalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"decimals"`. + */ +export function useIerc20MetadataDecimals< + TFunctionName extends 'decimals', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'decimals', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"name"`. + */ +export function useIerc20MetadataName< + TFunctionName extends 'name', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'name', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"symbol"`. + */ +export function useIerc20MetadataSymbol< + TFunctionName extends 'symbol', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'symbol', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useIerc20MetadataTotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20MetadataABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof ierc20MetadataABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__. + */ +export function useIerc20MetadataWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: ierc20MetadataABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"approve"`. + */ +export function useIerc20MetadataApprove( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'approve', + TMode + > & { functionName?: 'approve' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'approve' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20MetadataABI, + functionName: 'approve', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"transfer"`. + */ +export function useIerc20MetadataTransfer( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transfer', + TMode + > & { functionName?: 'transfer' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transfer' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20MetadataABI, + functionName: 'transfer', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"transferFrom"`. + */ +export function useIerc20MetadataTransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferFrom', + TMode + > & { functionName?: 'transferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20MetadataABI, + functionName: 'transferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__. + */ +export function usePrepareIerc20MetadataWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc20MetadataABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc20MetadataABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"approve"`. + */ +export function usePrepareIerc20MetadataApprove( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20MetadataABI, + functionName: 'approve', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"transfer"`. + */ +export function usePrepareIerc20MetadataTransfer( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20MetadataABI, + functionName: 'transfer', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20MetadataABI}__ and `functionName` set to `"transferFrom"`. + */ +export function usePrepareIerc20MetadataTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20MetadataABI, + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20MetadataABI}__. + */ +export function useIerc20MetadataEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc20MetadataABI, ...config } as UseContractEventConfig< + typeof ierc20MetadataABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20MetadataABI}__ and `eventName` set to `"Approval"`. + */ +export function useIerc20MetadataApprovalEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20MetadataABI, eventName: 'Approval', ...config } as UseContractEventConfig< + typeof ierc20MetadataABI, + 'Approval' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20MetadataABI}__ and `eventName` set to `"Transfer"`. + */ +export function useIerc20MetadataTransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20MetadataABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof ierc20MetadataABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitABI}__. + */ +export function useIerc20PermitRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc20PermitABI, ...config } as UseContractReadConfig< + typeof ierc20PermitABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitABI}__ and `functionName` set to `"DOMAIN_SEPARATOR"`. + */ +export function useIerc20PermitDomainSeparator< + TFunctionName extends 'DOMAIN_SEPARATOR', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20PermitABI, functionName: 'DOMAIN_SEPARATOR', ...config } as UseContractReadConfig< + typeof ierc20PermitABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitABI}__ and `functionName` set to `"nonces"`. + */ +export function useIerc20PermitNonces< + TFunctionName extends 'nonces', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20PermitABI, functionName: 'nonces', ...config } as UseContractReadConfig< + typeof ierc20PermitABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20PermitABI}__. + */ +export function useIerc20PermitWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: ierc20PermitABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20PermitABI}__ and `functionName` set to `"permit"`. + */ +export function useIerc20PermitPermit( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'permit', + TMode + > & { functionName?: 'permit' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'permit' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20PermitABI, + functionName: 'permit', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20PermitABI}__. + */ +export function usePrepareIerc20PermitWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc20PermitABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc20PermitABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20PermitABI}__ and `functionName` set to `"permit"`. + */ +export function usePrepareIerc20PermitPermit( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20PermitABI, + functionName: 'permit', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__. + */ +export function useIerc20PermitUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit, 'abi'> = {} as any, +) { + return useContractRead({ abi: ierc20PermitUpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc20PermitUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__ and `functionName` set to `"DOMAIN_SEPARATOR"`. + */ +export function useIerc20PermitUpgradeableDomainSeparator< + TFunctionName extends 'DOMAIN_SEPARATOR', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc20PermitUpgradeableABI, + functionName: 'DOMAIN_SEPARATOR', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__ and `functionName` set to `"nonces"`. + */ +export function useIerc20PermitUpgradeableNonces< + TFunctionName extends 'nonces', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc20PermitUpgradeableABI, + functionName: 'nonces', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__. + */ +export function useIerc20PermitUpgradeableWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ierc20PermitUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__ and `functionName` set to `"permit"`. + */ +export function useIerc20PermitUpgradeablePermit( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'permit', + TMode + > & { functionName?: 'permit' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'permit' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20PermitUpgradeableABI, + functionName: 'permit', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__. + */ +export function usePrepareIerc20PermitUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc20PermitUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc20PermitUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20PermitUpgradeableABI}__ and `functionName` set to `"permit"`. + */ +export function usePrepareIerc20PermitUpgradeablePermit( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20PermitUpgradeableABI, + functionName: 'permit', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20UpgradeableABI}__. + */ +export function useIerc20UpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc20UpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc20UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"allowance"`. + */ +export function useIerc20UpgradeableAllowance< + TFunctionName extends 'allowance', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20UpgradeableABI, functionName: 'allowance', ...config } as UseContractReadConfig< + typeof ierc20UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useIerc20UpgradeableBalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20UpgradeableABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof ierc20UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useIerc20UpgradeableTotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ierc20UpgradeableABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof ierc20UpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__. + */ +export function useIerc20UpgradeableWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ierc20UpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"approve"`. + */ +export function useIerc20UpgradeableApprove( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'approve', + TMode + > & { functionName?: 'approve' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'approve' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'approve', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"transfer"`. + */ +export function useIerc20UpgradeableTransfer( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transfer', + TMode + > & { functionName?: 'transfer' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transfer' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'transfer', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"transferFrom"`. + */ +export function useIerc20UpgradeableTransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferFrom', + TMode + > & { functionName?: 'transferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'transferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__. + */ +export function usePrepareIerc20UpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc20UpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc20UpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"approve"`. + */ +export function usePrepareIerc20UpgradeableApprove( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'approve', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"transfer"`. + */ +export function usePrepareIerc20UpgradeableTransfer( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'transfer', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `functionName` set to `"transferFrom"`. + */ +export function usePrepareIerc20UpgradeableTransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc20UpgradeableABI, + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20UpgradeableABI}__. + */ +export function useIerc20UpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ierc20UpgradeableABI, ...config } as UseContractEventConfig< + typeof ierc20UpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `eventName` set to `"Approval"`. + */ +export function useIerc20UpgradeableApprovalEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20UpgradeableABI, eventName: 'Approval', ...config } as UseContractEventConfig< + typeof ierc20UpgradeableABI, + 'Approval' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ierc20UpgradeableABI}__ and `eventName` set to `"Transfer"`. + */ +export function useIerc20UpgradeableTransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ierc20UpgradeableABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof ierc20UpgradeableABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc721ReceiverUpgradeableABI}__. + */ +export function useIerc721ReceiverUpgradeableWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: ierc721ReceiverUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ierc721ReceiverUpgradeableABI}__ and `functionName` set to `"onERC721Received"`. + */ +export function useIerc721ReceiverUpgradeableOnErc721Received( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'onERC721Received', + TMode + > & { functionName?: 'onERC721Received' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'onERC721Received' + } = {} as any, +) { + return useContractWrite({ + abi: ierc721ReceiverUpgradeableABI, + functionName: 'onERC721Received', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc721ReceiverUpgradeableABI}__. + */ +export function usePrepareIerc721ReceiverUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ierc721ReceiverUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof ierc721ReceiverUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ierc721ReceiverUpgradeableABI}__ and `functionName` set to `"onERC721Received"`. + */ +export function usePrepareIerc721ReceiverUpgradeableOnErc721Received( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ierc721ReceiverUpgradeableABI, + functionName: 'onERC721Received', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iExtendedResolverABI}__. + */ +export function useIExtendedResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iExtendedResolverABI, ...config } as UseContractReadConfig< + typeof iExtendedResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iExtendedResolverABI}__ and `functionName` set to `"resolve"`. + */ +export function useIExtendedResolverResolve< + TFunctionName extends 'resolve', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iExtendedResolverABI, functionName: 'resolve', ...config } as UseContractReadConfig< + typeof iExtendedResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iInterfaceResolverABI}__. + */ +export function useIInterfaceResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iInterfaceResolverABI, ...config } as UseContractReadConfig< + typeof iInterfaceResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iInterfaceResolverABI}__ and `functionName` set to `"interfaceImplementer"`. + */ +export function useIInterfaceResolverInterfaceImplementer< + TFunctionName extends 'interfaceImplementer', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iInterfaceResolverABI, + functionName: 'interfaceImplementer', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iInterfaceResolverABI}__. + */ +export function useIInterfaceResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iInterfaceResolverABI, ...config } as UseContractEventConfig< + typeof iInterfaceResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iInterfaceResolverABI}__ and `eventName` set to `"InterfaceChanged"`. + */ +export function useIInterfaceResolverInterfaceChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: iInterfaceResolverABI, + eventName: 'InterfaceChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__. + */ +export function useIMajorityVotingRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iMajorityVotingABI, ...config } as UseContractReadConfig< + typeof iMajorityVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"canExecute"`. + */ +export function useIMajorityVotingCanExecute< + TFunctionName extends 'canExecute', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMajorityVotingABI, functionName: 'canExecute', ...config } as UseContractReadConfig< + typeof iMajorityVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"canVote"`. + */ +export function useIMajorityVotingCanVote< + TFunctionName extends 'canVote', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMajorityVotingABI, functionName: 'canVote', ...config } as UseContractReadConfig< + typeof iMajorityVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"getVoteOption"`. + */ +export function useIMajorityVotingGetVoteOption< + TFunctionName extends 'getVoteOption', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMajorityVotingABI, functionName: 'getVoteOption', ...config } as UseContractReadConfig< + typeof iMajorityVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"isMinParticipationReached"`. + */ +export function useIMajorityVotingIsMinParticipationReached< + TFunctionName extends 'isMinParticipationReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMajorityVotingABI, + functionName: 'isMinParticipationReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"isSupportThresholdReached"`. + */ +export function useIMajorityVotingIsSupportThresholdReached< + TFunctionName extends 'isSupportThresholdReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMajorityVotingABI, + functionName: 'isSupportThresholdReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"isSupportThresholdReachedEarly"`. + */ +export function useIMajorityVotingIsSupportThresholdReachedEarly< + TFunctionName extends 'isSupportThresholdReachedEarly', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMajorityVotingABI, + functionName: 'isSupportThresholdReachedEarly', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"minParticipation"`. + */ +export function useIMajorityVotingMinParticipation< + TFunctionName extends 'minParticipation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMajorityVotingABI, + functionName: 'minParticipation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"supportThreshold"`. + */ +export function useIMajorityVotingSupportThreshold< + TFunctionName extends 'supportThreshold', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMajorityVotingABI, + functionName: 'supportThreshold', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__. + */ +export function useIMajorityVotingWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: iMajorityVotingABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"execute"`. + */ +export function useIMajorityVotingExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ + abi: iMajorityVotingABI, + functionName: 'execute', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"vote"`. + */ +export function useIMajorityVotingVote( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'vote', + TMode + > & { functionName?: 'vote' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'vote' + } = {} as any, +) { + return useContractWrite({ + abi: iMajorityVotingABI, + functionName: 'vote', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__. + */ +export function usePrepareIMajorityVotingWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: iMajorityVotingABI, ...config } as UsePrepareContractWriteConfig< + typeof iMajorityVotingABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareIMajorityVotingExecute( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: iMajorityVotingABI, + functionName: 'execute', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMajorityVotingABI}__ and `functionName` set to `"vote"`. + */ +export function usePrepareIMajorityVotingVote( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: iMajorityVotingABI, + functionName: 'vote', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMajorityVotingABI}__. + */ +export function useIMajorityVotingEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iMajorityVotingABI, ...config } as UseContractEventConfig< + typeof iMajorityVotingABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMajorityVotingABI}__ and `eventName` set to `"VoteCast"`. + */ +export function useIMajorityVotingVoteCastEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iMajorityVotingABI, eventName: 'VoteCast', ...config } as UseContractEventConfig< + typeof iMajorityVotingABI, + 'VoteCast' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMembershipABI}__. + */ +export function useIMembershipRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iMembershipABI, ...config } as UseContractReadConfig< + typeof iMembershipABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMembershipABI}__ and `functionName` set to `"isMember"`. + */ +export function useIMembershipIsMember< + TFunctionName extends 'isMember', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMembershipABI, functionName: 'isMember', ...config } as UseContractReadConfig< + typeof iMembershipABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMembershipABI}__. + */ +export function useIMembershipEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iMembershipABI, ...config } as UseContractEventConfig< + typeof iMembershipABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMembershipABI}__ and `eventName` set to `"MembersAdded"`. + */ +export function useIMembershipMembersAddedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iMembershipABI, eventName: 'MembersAdded', ...config } as UseContractEventConfig< + typeof iMembershipABI, + 'MembersAdded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMembershipABI}__ and `eventName` set to `"MembersRemoved"`. + */ +export function useIMembershipMembersRemovedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iMembershipABI, eventName: 'MembersRemoved', ...config } as UseContractEventConfig< + typeof iMembershipABI, + 'MembersRemoved' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iMembershipABI}__ and `eventName` set to `"MembershipContractAnnounced"`. + */ +export function useIMembershipMembershipContractAnnouncedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: iMembershipABI, + eventName: 'MembershipContractAnnounced', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__. + */ +export function useIMulticall3Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iMulticall3ABI, ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getBasefee"`. + */ +export function useIMulticall3GetBasefee< + TFunctionName extends 'getBasefee', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getBasefee', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getBlockHash"`. + */ +export function useIMulticall3GetBlockHash< + TFunctionName extends 'getBlockHash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getBlockHash', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getBlockNumber"`. + */ +export function useIMulticall3GetBlockNumber< + TFunctionName extends 'getBlockNumber', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getBlockNumber', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getChainId"`. + */ +export function useIMulticall3GetChainId< + TFunctionName extends 'getChainId', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getChainId', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getCurrentBlockCoinbase"`. + */ +export function useIMulticall3GetCurrentBlockCoinbase< + TFunctionName extends 'getCurrentBlockCoinbase', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMulticall3ABI, + functionName: 'getCurrentBlockCoinbase', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getCurrentBlockDifficulty"`. + */ +export function useIMulticall3GetCurrentBlockDifficulty< + TFunctionName extends 'getCurrentBlockDifficulty', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMulticall3ABI, + functionName: 'getCurrentBlockDifficulty', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getCurrentBlockGasLimit"`. + */ +export function useIMulticall3GetCurrentBlockGasLimit< + TFunctionName extends 'getCurrentBlockGasLimit', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMulticall3ABI, + functionName: 'getCurrentBlockGasLimit', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getCurrentBlockTimestamp"`. + */ +export function useIMulticall3GetCurrentBlockTimestamp< + TFunctionName extends 'getCurrentBlockTimestamp', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iMulticall3ABI, + functionName: 'getCurrentBlockTimestamp', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getEthBalance"`. + */ +export function useIMulticall3GetEthBalance< + TFunctionName extends 'getEthBalance', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getEthBalance', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"getLastBlockHash"`. + */ +export function useIMulticall3GetLastBlockHash< + TFunctionName extends 'getLastBlockHash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iMulticall3ABI, functionName: 'getLastBlockHash', ...config } as UseContractReadConfig< + typeof iMulticall3ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__. + */ +export function useIMulticall3Write( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: iMulticall3ABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate"`. + */ +export function useIMulticall3Aggregate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'aggregate', + TMode + > & { functionName?: 'aggregate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'aggregate' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate3"`. + */ +export function useIMulticall3Aggregate3( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'aggregate3', + TMode + > & { functionName?: 'aggregate3' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'aggregate3' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate3', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate3Value"`. + */ +export function useIMulticall3Aggregate3Value( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'aggregate3Value', + TMode + > & { functionName?: 'aggregate3Value' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'aggregate3Value' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate3Value', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"blockAndAggregate"`. + */ +export function useIMulticall3BlockAndAggregate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'blockAndAggregate', + TMode + > & { functionName?: 'blockAndAggregate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'blockAndAggregate' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'blockAndAggregate', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"tryAggregate"`. + */ +export function useIMulticall3TryAggregate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'tryAggregate', + TMode + > & { functionName?: 'tryAggregate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'tryAggregate' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'tryAggregate', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"tryBlockAndAggregate"`. + */ +export function useIMulticall3TryBlockAndAggregate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'tryBlockAndAggregate', + TMode + > & { functionName?: 'tryBlockAndAggregate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'tryBlockAndAggregate' + } = {} as any, +) { + return useContractWrite({ + abi: iMulticall3ABI, + functionName: 'tryBlockAndAggregate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__. + */ +export function usePrepareIMulticall3Write( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: iMulticall3ABI, ...config } as UsePrepareContractWriteConfig< + typeof iMulticall3ABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate"`. + */ +export function usePrepareIMulticall3Aggregate( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate3"`. + */ +export function usePrepareIMulticall3Aggregate3( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate3', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"aggregate3Value"`. + */ +export function usePrepareIMulticall3Aggregate3Value( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'aggregate3Value', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"blockAndAggregate"`. + */ +export function usePrepareIMulticall3BlockAndAggregate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'blockAndAggregate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"tryAggregate"`. + */ +export function usePrepareIMulticall3TryAggregate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'tryAggregate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iMulticall3ABI}__ and `functionName` set to `"tryBlockAndAggregate"`. + */ +export function usePrepareIMulticall3TryBlockAndAggregate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iMulticall3ABI, + functionName: 'tryBlockAndAggregate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iNameResolverABI}__. + */ +export function useINameResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iNameResolverABI, ...config } as UseContractReadConfig< + typeof iNameResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iNameResolverABI}__ and `functionName` set to `"name"`. + */ +export function useINameResolverName< + TFunctionName extends 'name', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iNameResolverABI, functionName: 'name', ...config } as UseContractReadConfig< + typeof iNameResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iNameResolverABI}__. + */ +export function useINameResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iNameResolverABI, ...config } as UseContractEventConfig< + typeof iNameResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iNameResolverABI}__ and `eventName` set to `"NameChanged"`. + */ +export function useINameResolverNameChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iNameResolverABI, eventName: 'NameChanged', ...config } as UseContractEventConfig< + typeof iNameResolverABI, + 'NameChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPermissionConditionABI}__. + */ +export function useIPermissionConditionRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iPermissionConditionABI, ...config } as UseContractReadConfig< + typeof iPermissionConditionABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPermissionConditionABI}__ and `functionName` set to `"isGranted"`. + */ +export function useIPermissionConditionIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iPermissionConditionABI, + functionName: 'isGranted', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPluginABI}__. + */ +export function useIPluginRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iPluginABI, ...config } as UseContractReadConfig< + typeof iPluginABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPluginABI}__ and `functionName` set to `"pluginType"`. + */ +export function useIPluginPluginType< + TFunctionName extends 'pluginType', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iPluginABI, functionName: 'pluginType', ...config } as UseContractReadConfig< + typeof iPluginABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__. + */ +export function useIPluginRepoWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: iPluginRepoABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__ and `functionName` set to `"createVersion"`. + */ +export function useIPluginRepoCreateVersion( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'createVersion', + TMode + > & { functionName?: 'createVersion' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'createVersion' + } = {} as any, +) { + return useContractWrite({ + abi: iPluginRepoABI, + functionName: 'createVersion', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__ and `functionName` set to `"updateReleaseMetadata"`. + */ +export function useIPluginRepoUpdateReleaseMetadata( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'updateReleaseMetadata', + TMode + > & { functionName?: 'updateReleaseMetadata' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'updateReleaseMetadata' + } = {} as any, +) { + return useContractWrite({ + abi: iPluginRepoABI, + functionName: 'updateReleaseMetadata', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__. + */ +export function usePrepareIPluginRepoWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: iPluginRepoABI, ...config } as UsePrepareContractWriteConfig< + typeof iPluginRepoABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__ and `functionName` set to `"createVersion"`. + */ +export function usePrepareIPluginRepoCreateVersion( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iPluginRepoABI, + functionName: 'createVersion', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginRepoABI}__ and `functionName` set to `"updateReleaseMetadata"`. + */ +export function usePrepareIPluginRepoUpdateReleaseMetadata( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iPluginRepoABI, + functionName: 'updateReleaseMetadata', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPluginSetupABI}__. + */ +export function useIPluginSetupRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iPluginSetupABI, ...config } as UseContractReadConfig< + typeof iPluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"implementation"`. + */ +export function useIPluginSetupImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iPluginSetupABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof iPluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__. + */ +export function useIPluginSetupWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: iPluginSetupABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function useIPluginSetupPrepareInstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareInstallation', + TMode + > & { functionName?: 'prepareInstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareInstallation' + } = {} as any, +) { + return useContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareInstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function useIPluginSetupPrepareUninstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUninstallation', + TMode + > & { functionName?: 'prepareUninstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUninstallation' + } = {} as any, +) { + return useContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareUninstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function useIPluginSetupPrepareUpdate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUpdate', + TMode + > & { functionName?: 'prepareUpdate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUpdate' + } = {} as any, +) { + return useContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareUpdate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__. + */ +export function usePrepareIPluginSetupWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: iPluginSetupABI, ...config } as UsePrepareContractWriteConfig< + typeof iPluginSetupABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePrepareIPluginSetupPrepareInstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareInstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function usePrepareIPluginSetupPrepareUninstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareUninstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iPluginSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePrepareIPluginSetupPrepareUpdate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iPluginSetupABI, + functionName: 'prepareUpdate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iProposalABI}__. + */ +export function useIProposalRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iProposalABI, ...config } as UseContractReadConfig< + typeof iProposalABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iProposalABI}__ and `functionName` set to `"proposalCount"`. + */ +export function useIProposalProposalCount< + TFunctionName extends 'proposalCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iProposalABI, functionName: 'proposalCount', ...config } as UseContractReadConfig< + typeof iProposalABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iProposalABI}__. + */ +export function useIProposalEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iProposalABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iProposalABI}__ and `eventName` set to `"ProposalCreated"`. + */ +export function useIProposalProposalCreatedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iProposalABI, eventName: 'ProposalCreated', ...config } as UseContractEventConfig< + typeof iProposalABI, + 'ProposalCreated' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iProposalABI}__ and `eventName` set to `"ProposalExecuted"`. + */ +export function useIProposalProposalExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iProposalABI, eventName: 'ProposalExecuted', ...config } as UseContractEventConfig< + typeof iProposalABI, + 'ProposalExecuted' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iProtocolVersionABI}__. + */ +export function useIProtocolVersionRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iProtocolVersionABI, ...config } as UseContractReadConfig< + typeof iProtocolVersionABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iProtocolVersionABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useIProtocolVersionProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iProtocolVersionABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPubkeyResolverABI}__. + */ +export function useIPubkeyResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iPubkeyResolverABI, ...config } as UseContractReadConfig< + typeof iPubkeyResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iPubkeyResolverABI}__ and `functionName` set to `"pubkey"`. + */ +export function useIPubkeyResolverPubkey< + TFunctionName extends 'pubkey', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iPubkeyResolverABI, functionName: 'pubkey', ...config } as UseContractReadConfig< + typeof iPubkeyResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iPubkeyResolverABI}__. + */ +export function useIPubkeyResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iPubkeyResolverABI, ...config } as UseContractEventConfig< + typeof iPubkeyResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iPubkeyResolverABI}__ and `eventName` set to `"PubkeyChanged"`. + */ +export function useIPubkeyResolverPubkeyChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iPubkeyResolverABI, eventName: 'PubkeyChanged', ...config } as UseContractEventConfig< + typeof iPubkeyResolverABI, + 'PubkeyChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iTextResolverABI}__. + */ +export function useITextResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iTextResolverABI, ...config } as UseContractReadConfig< + typeof iTextResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iTextResolverABI}__ and `functionName` set to `"text"`. + */ +export function useITextResolverText< + TFunctionName extends 'text', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iTextResolverABI, functionName: 'text', ...config } as UseContractReadConfig< + typeof iTextResolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iTextResolverABI}__. + */ +export function useITextResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iTextResolverABI, ...config } as UseContractEventConfig< + typeof iTextResolverABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iTextResolverABI}__ and `eventName` set to `"TextChanged"`. + */ +export function useITextResolverTextChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: iTextResolverABI, eventName: 'TextChanged', ...config } as UseContractEventConfig< + typeof iTextResolverABI, + 'TextChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iVotesUpgradeableABI}__. + */ +export function useIVotesUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: iVotesUpgradeableABI, ...config } as UseContractReadConfig< + typeof iVotesUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"delegates"`. + */ +export function useIVotesUpgradeableDelegates< + TFunctionName extends 'delegates', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iVotesUpgradeableABI, functionName: 'delegates', ...config } as UseContractReadConfig< + typeof iVotesUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"getPastTotalSupply"`. + */ +export function useIVotesUpgradeableGetPastTotalSupply< + TFunctionName extends 'getPastTotalSupply', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iVotesUpgradeableABI, + functionName: 'getPastTotalSupply', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"getPastVotes"`. + */ +export function useIVotesUpgradeableGetPastVotes< + TFunctionName extends 'getPastVotes', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: iVotesUpgradeableABI, + functionName: 'getPastVotes', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"getVotes"`. + */ +export function useIVotesUpgradeableGetVotes< + TFunctionName extends 'getVotes', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: iVotesUpgradeableABI, functionName: 'getVotes', ...config } as UseContractReadConfig< + typeof iVotesUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__. + */ +export function useIVotesUpgradeableWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: iVotesUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"delegate"`. + */ +export function useIVotesUpgradeableDelegate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'delegate', + TMode + > & { functionName?: 'delegate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'delegate' + } = {} as any, +) { + return useContractWrite({ + abi: iVotesUpgradeableABI, + functionName: 'delegate', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"delegateBySig"`. + */ +export function useIVotesUpgradeableDelegateBySig( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'delegateBySig', + TMode + > & { functionName?: 'delegateBySig' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'delegateBySig' + } = {} as any, +) { + return useContractWrite({ + abi: iVotesUpgradeableABI, + functionName: 'delegateBySig', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__. + */ +export function usePrepareIVotesUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: iVotesUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof iVotesUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"delegate"`. + */ +export function usePrepareIVotesUpgradeableDelegate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iVotesUpgradeableABI, + functionName: 'delegate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `functionName` set to `"delegateBySig"`. + */ +export function usePrepareIVotesUpgradeableDelegateBySig( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: iVotesUpgradeableABI, + functionName: 'delegateBySig', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iVotesUpgradeableABI}__. + */ +export function useIVotesUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: iVotesUpgradeableABI, ...config } as UseContractEventConfig< + typeof iVotesUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `eventName` set to `"DelegateChanged"`. + */ +export function useIVotesUpgradeableDelegateChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: iVotesUpgradeableABI, + eventName: 'DelegateChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link iVotesUpgradeableABI}__ and `eventName` set to `"DelegateVotesChanged"`. + */ +export function useIVotesUpgradeableDelegateVotesChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: iVotesUpgradeableABI, + eventName: 'DelegateVotesChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link initializableABI}__. + */ +export function useInitializableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: initializableABI, ...config } as UseContractEventConfig< + typeof initializableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link initializableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useInitializableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: initializableABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof initializableABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__. + */ +export function useInterfaceBasedRegistryRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit, 'abi'> = {} as any, +) { + return useContractRead({ abi: interfaceBasedRegistryABI, ...config } as UseContractReadConfig< + typeof interfaceBasedRegistryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"UPGRADE_REGISTRY_PERMISSION_ID"`. + */ +export function useInterfaceBasedRegistryUpgradeRegistryPermissionId< + TFunctionName extends 'UPGRADE_REGISTRY_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: interfaceBasedRegistryABI, + functionName: 'UPGRADE_REGISTRY_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"dao"`. + */ +export function useInterfaceBasedRegistryDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: interfaceBasedRegistryABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof interfaceBasedRegistryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"entries"`. + */ +export function useInterfaceBasedRegistryEntries< + TFunctionName extends 'entries', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: interfaceBasedRegistryABI, + functionName: 'entries', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useInterfaceBasedRegistryProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: interfaceBasedRegistryABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"targetInterfaceId"`. + */ +export function useInterfaceBasedRegistryTargetInterfaceId< + TFunctionName extends 'targetInterfaceId', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: interfaceBasedRegistryABI, + functionName: 'targetInterfaceId', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__. + */ +export function useInterfaceBasedRegistryWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: interfaceBasedRegistryABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useInterfaceBasedRegistryUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: interfaceBasedRegistryABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useInterfaceBasedRegistryUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: interfaceBasedRegistryABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__. + */ +export function usePrepareInterfaceBasedRegistryWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: interfaceBasedRegistryABI, ...config } as UsePrepareContractWriteConfig< + typeof interfaceBasedRegistryABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareInterfaceBasedRegistryUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: interfaceBasedRegistryABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareInterfaceBasedRegistryUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: interfaceBasedRegistryABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link interfaceBasedRegistryABI}__. + */ +export function useInterfaceBasedRegistryEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: interfaceBasedRegistryABI, ...config } as UseContractEventConfig< + typeof interfaceBasedRegistryABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useInterfaceBasedRegistryAdminChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: interfaceBasedRegistryABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useInterfaceBasedRegistryBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: interfaceBasedRegistryABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `eventName` set to `"Initialized"`. + */ +export function useInterfaceBasedRegistryInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: interfaceBasedRegistryABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link interfaceBasedRegistryABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useInterfaceBasedRegistryUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: interfaceBasedRegistryABI, + eventName: 'Upgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ownableABI}__. + */ +export function useOwnableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ownableABI, ...config } as UseContractReadConfig< + typeof ownableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ownableABI}__ and `functionName` set to `"owner"`. + */ +export function useOwnableOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: ownableABI, functionName: 'owner', ...config } as UseContractReadConfig< + typeof ownableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ownableABI}__. + */ +export function useOwnableWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: ownableABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ownableABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function useOwnableRenounceOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'renounceOwnership', + TMode + > & { functionName?: 'renounceOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'renounceOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: ownableABI, + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link ownableABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function useOwnableTransferOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferOwnership', + TMode + > & { functionName?: 'transferOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: ownableABI, + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ownableABI}__. + */ +export function usePrepareOwnableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: ownableABI, ...config } as UsePrepareContractWriteConfig< + typeof ownableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ownableABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function usePrepareOwnableRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ownableABI, + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link ownableABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function usePrepareOwnableTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: ownableABI, + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ownableABI}__. + */ +export function useOwnableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: ownableABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link ownableABI}__ and `eventName` set to `"OwnershipTransferred"`. + */ +export function useOwnableOwnershipTransferredEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: ownableABI, eventName: 'OwnershipTransferred', ...config } as UseContractEventConfig< + typeof ownableABI, + 'OwnershipTransferred' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionConditionABI}__. + */ +export function usePermissionConditionRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: permissionConditionABI, ...config } as UseContractReadConfig< + typeof permissionConditionABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionConditionABI}__ and `functionName` set to `"isGranted"`. + */ +export function usePermissionConditionIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: permissionConditionABI, functionName: 'isGranted', ...config } as UseContractReadConfig< + typeof permissionConditionABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionConditionABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePermissionConditionProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: permissionConditionABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionConditionABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function usePermissionConditionSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: permissionConditionABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__. + */ +export function useMajorityVotingBaseRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: majorityVotingBaseABI, ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"UPDATE_VOTING_SETTINGS_PERMISSION_ID"`. + */ +export function useMajorityVotingBaseUpdateVotingSettingsPermissionId< + TFunctionName extends 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"UPGRADE_PLUGIN_PERMISSION_ID"`. + */ +export function useMajorityVotingBaseUpgradePluginPermissionId< + TFunctionName extends 'UPGRADE_PLUGIN_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'UPGRADE_PLUGIN_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"canExecute"`. + */ +export function useMajorityVotingBaseCanExecute< + TFunctionName extends 'canExecute', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: majorityVotingBaseABI, functionName: 'canExecute', ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"canVote"`. + */ +export function useMajorityVotingBaseCanVote< + TFunctionName extends 'canVote', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: majorityVotingBaseABI, functionName: 'canVote', ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"dao"`. + */ +export function useMajorityVotingBaseDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: majorityVotingBaseABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"getProposal"`. + */ +export function useMajorityVotingBaseGetProposal< + TFunctionName extends 'getProposal', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'getProposal', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"getVoteOption"`. + */ +export function useMajorityVotingBaseGetVoteOption< + TFunctionName extends 'getVoteOption', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'getVoteOption', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"implementation"`. + */ +export function useMajorityVotingBaseImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'implementation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"isMinParticipationReached"`. + */ +export function useMajorityVotingBaseIsMinParticipationReached< + TFunctionName extends 'isMinParticipationReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'isMinParticipationReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"isSupportThresholdReached"`. + */ +export function useMajorityVotingBaseIsSupportThresholdReached< + TFunctionName extends 'isSupportThresholdReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'isSupportThresholdReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"isSupportThresholdReachedEarly"`. + */ +export function useMajorityVotingBaseIsSupportThresholdReachedEarly< + TFunctionName extends 'isSupportThresholdReachedEarly', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'isSupportThresholdReachedEarly', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"minDuration"`. + */ +export function useMajorityVotingBaseMinDuration< + TFunctionName extends 'minDuration', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'minDuration', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"minParticipation"`. + */ +export function useMajorityVotingBaseMinParticipation< + TFunctionName extends 'minParticipation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'minParticipation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"minProposerVotingPower"`. + */ +export function useMajorityVotingBaseMinProposerVotingPower< + TFunctionName extends 'minProposerVotingPower', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'minProposerVotingPower', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"pluginType"`. + */ +export function useMajorityVotingBasePluginType< + TFunctionName extends 'pluginType', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: majorityVotingBaseABI, functionName: 'pluginType', ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"proposalCount"`. + */ +export function useMajorityVotingBaseProposalCount< + TFunctionName extends 'proposalCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'proposalCount', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useMajorityVotingBaseProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useMajorityVotingBaseProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"supportThreshold"`. + */ +export function useMajorityVotingBaseSupportThreshold< + TFunctionName extends 'supportThreshold', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'supportThreshold', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useMajorityVotingBaseSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"totalVotingPower"`. + */ +export function useMajorityVotingBaseTotalVotingPower< + TFunctionName extends 'totalVotingPower', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: majorityVotingBaseABI, + functionName: 'totalVotingPower', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"votingMode"`. + */ +export function useMajorityVotingBaseVotingMode< + TFunctionName extends 'votingMode', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: majorityVotingBaseABI, functionName: 'votingMode', ...config } as UseContractReadConfig< + typeof majorityVotingBaseABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__. + */ +export function useMajorityVotingBaseWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"createProposal"`. + */ +export function useMajorityVotingBaseCreateProposal( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'createProposal', + TMode + > & { functionName?: 'createProposal' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'createProposal' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'createProposal', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"execute"`. + */ +export function useMajorityVotingBaseExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'execute', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"updateVotingSettings"`. + */ +export function useMajorityVotingBaseUpdateVotingSettings( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'updateVotingSettings', + TMode + > & { functionName?: 'updateVotingSettings' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'updateVotingSettings' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'updateVotingSettings', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useMajorityVotingBaseUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useMajorityVotingBaseUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"vote"`. + */ +export function useMajorityVotingBaseVote( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'vote', + TMode + > & { functionName?: 'vote' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'vote' + } = {} as any, +) { + return useContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'vote', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__. + */ +export function usePrepareMajorityVotingBaseWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: majorityVotingBaseABI, ...config } as UsePrepareContractWriteConfig< + typeof majorityVotingBaseABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"createProposal"`. + */ +export function usePrepareMajorityVotingBaseCreateProposal( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'createProposal', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareMajorityVotingBaseExecute( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'execute', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"updateVotingSettings"`. + */ +export function usePrepareMajorityVotingBaseUpdateVotingSettings( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'updateVotingSettings', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareMajorityVotingBaseUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareMajorityVotingBaseUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `functionName` set to `"vote"`. + */ +export function usePrepareMajorityVotingBaseVote( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: majorityVotingBaseABI, + functionName: 'vote', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__. + */ +export function useMajorityVotingBaseEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: majorityVotingBaseABI, ...config } as UseContractEventConfig< + typeof majorityVotingBaseABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useMajorityVotingBaseAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: majorityVotingBaseABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useMajorityVotingBaseBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: majorityVotingBaseABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"Initialized"`. + */ +export function useMajorityVotingBaseInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: majorityVotingBaseABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof majorityVotingBaseABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"ProposalCreated"`. + */ +export function useMajorityVotingBaseProposalCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: majorityVotingBaseABI, + eventName: 'ProposalCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"ProposalExecuted"`. + */ +export function useMajorityVotingBaseProposalExecutedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: majorityVotingBaseABI, + eventName: 'ProposalExecuted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useMajorityVotingBaseUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: majorityVotingBaseABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof majorityVotingBaseABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"VoteCast"`. + */ +export function useMajorityVotingBaseVoteCastEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: majorityVotingBaseABI, eventName: 'VoteCast', ...config } as UseContractEventConfig< + typeof majorityVotingBaseABI, + 'VoteCast' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link majorityVotingBaseABI}__ and `eventName` set to `"VotingSettingsUpdated"`. + */ +export function useMajorityVotingBaseVotingSettingsUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: majorityVotingBaseABI, + eventName: 'VotingSettingsUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionLibABI}__. + */ +export function usePermissionLibRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: permissionLibABI, ...config } as UseContractReadConfig< + typeof permissionLibABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionLibABI}__ and `functionName` set to `"NO_CONDITION"`. + */ +export function usePermissionLibNoCondition< + TFunctionName extends 'NO_CONDITION', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: permissionLibABI, functionName: 'NO_CONDITION', ...config } as UseContractReadConfig< + typeof permissionLibABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionManagerABI}__. + */ +export function usePermissionManagerRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: permissionManagerABI, ...config } as UseContractReadConfig< + typeof permissionManagerABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"ROOT_PERMISSION_ID"`. + */ +export function usePermissionManagerRootPermissionId< + TFunctionName extends 'ROOT_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: permissionManagerABI, + functionName: 'ROOT_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"isGranted"`. + */ +export function usePermissionManagerIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: permissionManagerABI, functionName: 'isGranted', ...config } as UseContractReadConfig< + typeof permissionManagerABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__. + */ +export function usePermissionManagerWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePermissionManagerApplyMultiTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyMultiTargetPermissions', + TMode + > & { functionName?: 'applyMultiTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyMultiTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePermissionManagerApplySingleTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applySingleTargetPermissions', + TMode + > & { functionName?: 'applySingleTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applySingleTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"grant"`. + */ +export function usePermissionManagerGrant( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grant', + TMode + > & { functionName?: 'grant' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grant' + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + functionName: 'grant', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePermissionManagerGrantWithCondition( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grantWithCondition', + TMode + > & { functionName?: 'grantWithCondition' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grantWithCondition' + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + functionName: 'grantWithCondition', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"revoke"`. + */ +export function usePermissionManagerRevoke( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'revoke', + TMode + > & { functionName?: 'revoke' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'revoke' + } = {} as any, +) { + return useContractWrite({ + abi: permissionManagerABI, + functionName: 'revoke', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__. + */ +export function usePreparePermissionManagerWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: permissionManagerABI, ...config } as UsePrepareContractWriteConfig< + typeof permissionManagerABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePreparePermissionManagerApplyMultiTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: permissionManagerABI, + functionName: 'applyMultiTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePreparePermissionManagerApplySingleTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: permissionManagerABI, + functionName: 'applySingleTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"grant"`. + */ +export function usePreparePermissionManagerGrant( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: permissionManagerABI, + functionName: 'grant', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePreparePermissionManagerGrantWithCondition( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: permissionManagerABI, + functionName: 'grantWithCondition', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link permissionManagerABI}__ and `functionName` set to `"revoke"`. + */ +export function usePreparePermissionManagerRevoke( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: permissionManagerABI, + functionName: 'revoke', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link permissionManagerABI}__. + */ +export function usePermissionManagerEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: permissionManagerABI, ...config } as UseContractEventConfig< + typeof permissionManagerABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link permissionManagerABI}__ and `eventName` set to `"Granted"`. + */ +export function usePermissionManagerGrantedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: permissionManagerABI, eventName: 'Granted', ...config } as UseContractEventConfig< + typeof permissionManagerABI, + 'Granted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link permissionManagerABI}__ and `eventName` set to `"Initialized"`. + */ +export function usePermissionManagerInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: permissionManagerABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof permissionManagerABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link permissionManagerABI}__ and `eventName` set to `"Revoked"`. + */ +export function usePermissionManagerRevokedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: permissionManagerABI, eventName: 'Revoked', ...config } as UseContractEventConfig< + typeof permissionManagerABI, + 'Revoked' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__. + */ +export function usePluginRepoRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit, 'abi' | 'address'> = {} as any, +) { + return useContractRead({ abi: pluginRepoABI, address: pluginRepoAddress, ...config } as UseContractReadConfig< + typeof pluginRepoABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"MAINTAINER_PERMISSION_ID"`. + */ +export function usePluginRepoMaintainerPermissionId< + TFunctionName extends 'MAINTAINER_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'MAINTAINER_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"ROOT_PERMISSION_ID"`. + */ +export function usePluginRepoRootPermissionId< + TFunctionName extends 'ROOT_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'ROOT_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"UPGRADE_REPO_PERMISSION_ID"`. + */ +export function usePluginRepoUpgradeRepoPermissionId< + TFunctionName extends 'UPGRADE_REPO_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'UPGRADE_REPO_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"buildCount"`. + */ +export function usePluginRepoBuildCount< + TFunctionName extends 'buildCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'buildCount', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"getLatestVersion"`. + */ +export function usePluginRepoGetLatestVersion< + TFunctionName extends 'getLatestVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'getLatestVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"getVersion"`. + */ +export function usePluginRepoGetVersion< + TFunctionName extends 'getVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'getVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"isGranted"`. + */ +export function usePluginRepoIsGranted< + TFunctionName extends 'isGranted', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'isGranted', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"latestRelease"`. + */ +export function usePluginRepoLatestRelease< + TFunctionName extends 'latestRelease', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'latestRelease', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePluginRepoProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function usePluginRepoProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function usePluginRepoSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__. + */ +export function usePluginRepoWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePluginRepoApplyMultiTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyMultiTargetPermissions', + TMode + > & { functionName?: 'applyMultiTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyMultiTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'applyMultiTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePluginRepoApplySingleTargetPermissions( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applySingleTargetPermissions', + TMode + > & { functionName?: 'applySingleTargetPermissions' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applySingleTargetPermissions' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'applySingleTargetPermissions', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"createVersion"`. + */ +export function usePluginRepoCreateVersion( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'createVersion', + TMode + > & { functionName?: 'createVersion' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'createVersion' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'createVersion', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"grant"`. + */ +export function usePluginRepoGrant( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grant', + TMode + > & { functionName?: 'grant' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grant' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'grant', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePluginRepoGrantWithCondition( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'grantWithCondition', + TMode + > & { functionName?: 'grantWithCondition' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'grantWithCondition' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'grantWithCondition', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"initialize"`. + */ +export function usePluginRepoInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"revoke"`. + */ +export function usePluginRepoRevoke( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'revoke', + TMode + > & { functionName?: 'revoke' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'revoke' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'revoke', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"updateReleaseMetadata"`. + */ +export function usePluginRepoUpdateReleaseMetadata( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'updateReleaseMetadata', + TMode + > & { functionName?: 'updateReleaseMetadata' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'updateReleaseMetadata' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'updateReleaseMetadata', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePluginRepoUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePluginRepoUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__. + */ +export function usePreparePluginRepoWrite( + config: Omit, 'abi' | 'address'> = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"applyMultiTargetPermissions"`. + */ +export function usePreparePluginRepoApplyMultiTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'applyMultiTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"applySingleTargetPermissions"`. + */ +export function usePreparePluginRepoApplySingleTargetPermissions( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'applySingleTargetPermissions', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"createVersion"`. + */ +export function usePreparePluginRepoCreateVersion( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'createVersion', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"grant"`. + */ +export function usePreparePluginRepoGrant( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'grant', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"grantWithCondition"`. + */ +export function usePreparePluginRepoGrantWithCondition( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'grantWithCondition', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"initialize"`. + */ +export function usePreparePluginRepoInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"revoke"`. + */ +export function usePreparePluginRepoRevoke( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'revoke', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"updateReleaseMetadata"`. + */ +export function usePreparePluginRepoUpdateReleaseMetadata( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'updateReleaseMetadata', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePreparePluginRepoUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePreparePluginRepoUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoABI, + address: pluginRepoAddress, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__. + */ +export function usePluginRepoEvent( + config: Omit, 'abi' | 'address'> = {} as any, +) { + return useContractEvent({ abi: pluginRepoABI, address: pluginRepoAddress, ...config } as UseContractEventConfig< + typeof pluginRepoABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function usePluginRepoAdminChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function usePluginRepoBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"Granted"`. + */ +export function usePluginRepoGrantedEvent( + config: Omit, 'abi' | 'address' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'Granted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"Initialized"`. + */ +export function usePluginRepoInitializedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"ReleaseMetadataUpdated"`. + */ +export function usePluginRepoReleaseMetadataUpdatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'ReleaseMetadataUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"Revoked"`. + */ +export function usePluginRepoRevokedEvent( + config: Omit, 'abi' | 'address' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'Revoked', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"Upgraded"`. + */ +export function usePluginRepoUpgradedEvent( + config: Omit, 'abi' | 'address' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'Upgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoABI}__ and `eventName` set to `"VersionCreated"`. + */ +export function usePluginRepoVersionCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoABI, + address: pluginRepoAddress, + eventName: 'VersionCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__. + */ +export function usePluginRepoRegistryRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: pluginRepoRegistryABI, ...config } as UseContractReadConfig< + typeof pluginRepoRegistryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"REGISTER_PLUGIN_REPO_PERMISSION_ID"`. + */ +export function usePluginRepoRegistryRegisterPluginRepoPermissionId< + TFunctionName extends 'REGISTER_PLUGIN_REPO_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'REGISTER_PLUGIN_REPO_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"UPGRADE_REGISTRY_PERMISSION_ID"`. + */ +export function usePluginRepoRegistryUpgradeRegistryPermissionId< + TFunctionName extends 'UPGRADE_REGISTRY_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'UPGRADE_REGISTRY_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"dao"`. + */ +export function usePluginRepoRegistryDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginRepoRegistryABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof pluginRepoRegistryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"entries"`. + */ +export function usePluginRepoRegistryEntries< + TFunctionName extends 'entries', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginRepoRegistryABI, functionName: 'entries', ...config } as UseContractReadConfig< + typeof pluginRepoRegistryABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePluginRepoRegistryProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function usePluginRepoRegistryProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"subdomainRegistrar"`. + */ +export function usePluginRepoRegistrySubdomainRegistrar< + TFunctionName extends 'subdomainRegistrar', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'subdomainRegistrar', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"targetInterfaceId"`. + */ +export function usePluginRepoRegistryTargetInterfaceId< + TFunctionName extends 'targetInterfaceId', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginRepoRegistryABI, + functionName: 'targetInterfaceId', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__. + */ +export function usePluginRepoRegistryWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoRegistryABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"initialize"`. + */ +export function usePluginRepoRegistryInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"registerPluginRepo"`. + */ +export function usePluginRepoRegistryRegisterPluginRepo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'registerPluginRepo', + TMode + > & { functionName?: 'registerPluginRepo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'registerPluginRepo' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'registerPluginRepo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePluginRepoRegistryUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePluginRepoRegistryUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__. + */ +export function usePreparePluginRepoRegistryWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: pluginRepoRegistryABI, ...config } as UsePrepareContractWriteConfig< + typeof pluginRepoRegistryABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"initialize"`. + */ +export function usePreparePluginRepoRegistryInitialize( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"registerPluginRepo"`. + */ +export function usePreparePluginRepoRegistryRegisterPluginRepo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'registerPluginRepo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePreparePluginRepoRegistryUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePreparePluginRepoRegistryUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginRepoRegistryABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__. + */ +export function usePluginRepoRegistryEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: pluginRepoRegistryABI, ...config } as UseContractEventConfig< + typeof pluginRepoRegistryABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function usePluginRepoRegistryAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginRepoRegistryABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function usePluginRepoRegistryBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginRepoRegistryABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `eventName` set to `"Initialized"`. + */ +export function usePluginRepoRegistryInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: pluginRepoRegistryABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof pluginRepoRegistryABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `eventName` set to `"PluginRepoRegistered"`. + */ +export function usePluginRepoRegistryPluginRepoRegisteredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginRepoRegistryABI, + eventName: 'PluginRepoRegistered', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginRepoRegistryABI}__ and `eventName` set to `"Upgraded"`. + */ +export function usePluginRepoRegistryUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: pluginRepoRegistryABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof pluginRepoRegistryABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupABI}__. + */ +export function usePluginSetupRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: pluginSetupABI, ...config } as UseContractReadConfig< + typeof pluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"implementation"`. + */ +export function usePluginSetupImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginSetupABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof pluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePluginSetupProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginSetupABI, functionName: 'protocolVersion', ...config } as UseContractReadConfig< + typeof pluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function usePluginSetupSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginSetupABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof pluginSetupABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupABI}__. + */ +export function usePluginSetupWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: pluginSetupABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePluginSetupPrepareInstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareInstallation', + TMode + > & { functionName?: 'prepareInstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareInstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareInstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function usePluginSetupPrepareUninstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUninstallation', + TMode + > & { functionName?: 'prepareUninstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUninstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareUninstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePluginSetupPrepareUpdate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUpdate', + TMode + > & { functionName?: 'prepareUpdate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUpdate' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareUpdate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupABI}__. + */ +export function usePreparePluginSetupWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: pluginSetupABI, ...config } as UsePrepareContractWriteConfig< + typeof pluginSetupABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePreparePluginSetupPrepareInstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareInstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function usePreparePluginSetupPrepareUninstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareUninstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePreparePluginSetupPrepareUpdate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupABI, + functionName: 'prepareUpdate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__. + */ +export function usePluginSetupProcessorRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"APPLY_INSTALLATION_PERMISSION_ID"`. + */ +export function usePluginSetupProcessorApplyInstallationPermissionId< + TFunctionName extends 'APPLY_INSTALLATION_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'APPLY_INSTALLATION_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"APPLY_UNINSTALLATION_PERMISSION_ID"`. + */ +export function usePluginSetupProcessorApplyUninstallationPermissionId< + TFunctionName extends 'APPLY_UNINSTALLATION_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'APPLY_UNINSTALLATION_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"APPLY_UPDATE_PERMISSION_ID"`. + */ +export function usePluginSetupProcessorApplyUpdatePermissionId< + TFunctionName extends 'APPLY_UPDATE_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'APPLY_UPDATE_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePluginSetupProcessorProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"repoRegistry"`. + */ +export function usePluginSetupProcessorRepoRegistry< + TFunctionName extends 'repoRegistry', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'repoRegistry', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"states"`. + */ +export function usePluginSetupProcessorStates< + TFunctionName extends 'states', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'states', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"validatePreparedSetupId"`. + */ +export function usePluginSetupProcessorValidatePreparedSetupId< + TFunctionName extends 'validatePreparedSetupId', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'validatePreparedSetupId', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__. + */ +export function usePluginSetupProcessorWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyInstallation"`. + */ +export function usePluginSetupProcessorApplyInstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyInstallation', + TMode + > & { functionName?: 'applyInstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyInstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyInstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyUninstallation"`. + */ +export function usePluginSetupProcessorApplyUninstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyUninstallation', + TMode + > & { functionName?: 'applyUninstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyUninstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyUninstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyUpdate"`. + */ +export function usePluginSetupProcessorApplyUpdate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'applyUpdate', + TMode + > & { functionName?: 'applyUpdate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'applyUpdate' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyUpdate', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePluginSetupProcessorPrepareInstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareInstallation', + TMode + > & { functionName?: 'prepareInstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareInstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareInstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function usePluginSetupProcessorPrepareUninstallation( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUninstallation', + TMode + > & { functionName?: 'prepareUninstallation' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUninstallation' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareUninstallation', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePluginSetupProcessorPrepareUpdate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'prepareUpdate', + TMode + > & { functionName?: 'prepareUpdate' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'prepareUpdate' + } = {} as any, +) { + return useContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareUpdate', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__. + */ +export function usePreparePluginSetupProcessorWrite( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyInstallation"`. + */ +export function usePreparePluginSetupProcessorApplyInstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyInstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyUninstallation"`. + */ +export function usePreparePluginSetupProcessorApplyUninstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyUninstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"applyUpdate"`. + */ +export function usePreparePluginSetupProcessorApplyUpdate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'applyUpdate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareInstallation"`. + */ +export function usePreparePluginSetupProcessorPrepareInstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareInstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareUninstallation"`. + */ +export function usePreparePluginSetupProcessorPrepareUninstallation( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareUninstallation', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `functionName` set to `"prepareUpdate"`. + */ +export function usePreparePluginSetupProcessorPrepareUpdate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'address' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + functionName: 'prepareUpdate', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__. + */ +export function usePluginSetupProcessorEvent( + config: Omit, 'abi' | 'address'> = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"InstallationApplied"`. + */ +export function usePluginSetupProcessorInstallationAppliedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'InstallationApplied', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"InstallationPrepared"`. + */ +export function usePluginSetupProcessorInstallationPreparedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'InstallationPrepared', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"UninstallationApplied"`. + */ +export function usePluginSetupProcessorUninstallationAppliedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'UninstallationApplied', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"UninstallationPrepared"`. + */ +export function usePluginSetupProcessorUninstallationPreparedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'UninstallationPrepared', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"UpdateApplied"`. + */ +export function usePluginSetupProcessorUpdateAppliedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'UpdateApplied', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginSetupProcessorABI}__ and `eventName` set to `"UpdatePrepared"`. + */ +export function usePluginSetupProcessorUpdatePreparedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'address' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginSetupProcessorABI, + address: pluginSetupProcessorAddress, + eventName: 'UpdatePrepared', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__. + */ +export function usePluginUupsUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: pluginUupsUpgradeableABI, ...config } as UseContractReadConfig< + typeof pluginUupsUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"UPGRADE_PLUGIN_PERMISSION_ID"`. + */ +export function usePluginUupsUpgradeableUpgradePluginPermissionId< + TFunctionName extends 'UPGRADE_PLUGIN_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'UPGRADE_PLUGIN_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"dao"`. + */ +export function usePluginUupsUpgradeableDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: pluginUupsUpgradeableABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof pluginUupsUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"implementation"`. + */ +export function usePluginUupsUpgradeableImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'implementation', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"pluginType"`. + */ +export function usePluginUupsUpgradeablePluginType< + TFunctionName extends 'pluginType', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'pluginType', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function usePluginUupsUpgradeableProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function usePluginUupsUpgradeableProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function usePluginUupsUpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: pluginUupsUpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__. + */ +export function usePluginUupsUpgradeableWrite< + TFunctionName extends string, + TMode extends WriteContractMode = undefined, +>( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: pluginUupsUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePluginUupsUpgradeableUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: pluginUupsUpgradeableABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePluginUupsUpgradeableUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: pluginUupsUpgradeableABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__. + */ +export function usePreparePluginUupsUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: pluginUupsUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof pluginUupsUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePreparePluginUupsUpgradeableUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginUupsUpgradeableABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePreparePluginUupsUpgradeableUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: pluginUupsUpgradeableABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__. + */ +export function usePluginUupsUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: pluginUupsUpgradeableABI, ...config } as UseContractEventConfig< + typeof pluginUupsUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function usePluginUupsUpgradeableAdminChangedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginUupsUpgradeableABI, + eventName: 'AdminChanged', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function usePluginUupsUpgradeableBeaconUpgradedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: pluginUupsUpgradeableABI, + eventName: 'BeaconUpgraded', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function usePluginUupsUpgradeableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: pluginUupsUpgradeableABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link pluginUupsUpgradeableABI}__ and `eventName` set to `"Upgraded"`. + */ +export function usePluginUupsUpgradeableUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: pluginUupsUpgradeableABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof pluginUupsUpgradeableABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proposalUpgradeableABI}__. + */ +export function useProposalUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: proposalUpgradeableABI, ...config } as UseContractReadConfig< + typeof proposalUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proposalUpgradeableABI}__ and `functionName` set to `"proposalCount"`. + */ +export function useProposalUpgradeableProposalCount< + TFunctionName extends 'proposalCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: proposalUpgradeableABI, + functionName: 'proposalCount', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link proposalUpgradeableABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useProposalUpgradeableSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: proposalUpgradeableABI, + functionName: 'supportsInterface', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proposalUpgradeableABI}__. + */ +export function useProposalUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: proposalUpgradeableABI, ...config } as UseContractEventConfig< + typeof proposalUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proposalUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useProposalUpgradeableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: proposalUpgradeableABI, + eventName: 'Initialized', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proposalUpgradeableABI}__ and `eventName` set to `"ProposalCreated"`. + */ +export function useProposalUpgradeableProposalCreatedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: proposalUpgradeableABI, + eventName: 'ProposalCreated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link proposalUpgradeableABI}__ and `eventName` set to `"ProposalExecuted"`. + */ +export function useProposalUpgradeableProposalExecutedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: proposalUpgradeableABI, + eventName: 'ProposalExecuted', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link protocolVersionABI}__. + */ +export function useProtocolVersionRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: protocolVersionABI, ...config } as UseContractReadConfig< + typeof protocolVersionABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link protocolVersionABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useProtocolVersionProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: protocolVersionABI, + functionName: 'protocolVersion', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__. + */ +export function useResolverRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: resolverABI, ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"ABI"`. + */ +export function useResolverAbi< + TFunctionName extends 'ABI', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'ABI', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"addr"`. + */ +export function useResolverAddr< + TFunctionName extends 'addr', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'addr', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"content"`. + */ +export function useResolverContent< + TFunctionName extends 'content', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'content', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"contenthash"`. + */ +export function useResolverContenthash< + TFunctionName extends 'contenthash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'contenthash', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"dnsRecord"`. + */ +export function useResolverDnsRecord< + TFunctionName extends 'dnsRecord', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'dnsRecord', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"interfaceImplementer"`. + */ +export function useResolverInterfaceImplementer< + TFunctionName extends 'interfaceImplementer', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'interfaceImplementer', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"multihash"`. + */ +export function useResolverMultihash< + TFunctionName extends 'multihash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'multihash', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"name"`. + */ +export function useResolverName< + TFunctionName extends 'name', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'name', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"pubkey"`. + */ +export function useResolverPubkey< + TFunctionName extends 'pubkey', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'pubkey', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"resolve"`. + */ +export function useResolverResolve< + TFunctionName extends 'resolve', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'resolve', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useResolverSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"text"`. + */ +export function useResolverText< + TFunctionName extends 'text', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'text', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"zonehash"`. + */ +export function useResolverZonehash< + TFunctionName extends 'zonehash', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: resolverABI, functionName: 'zonehash', ...config } as UseContractReadConfig< + typeof resolverABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__. + */ +export function useResolverWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: resolverABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"multicall"`. + */ +export function useResolverMulticall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'multicall', + TMode + > & { functionName?: 'multicall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'multicall' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'multicall', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"multicallWithNodeCheck"`. + */ +export function useResolverMulticallWithNodeCheck( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'multicallWithNodeCheck', + TMode + > & { functionName?: 'multicallWithNodeCheck' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'multicallWithNodeCheck' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'multicallWithNodeCheck', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setABI"`. + */ +export function useResolverSetAbi( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setABI', + TMode + > & { functionName?: 'setABI' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setABI' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setABI', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setAddr"`. + */ +export function useResolverSetAddr( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setAddr', + TMode + > & { functionName?: 'setAddr' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setAddr' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setAddr', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setContent"`. + */ +export function useResolverSetContent( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setContent', + TMode + > & { functionName?: 'setContent' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setContent' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setContent', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setContenthash"`. + */ +export function useResolverSetContenthash( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setContenthash', + TMode + > & { functionName?: 'setContenthash' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setContenthash' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setContenthash', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setDnsrr"`. + */ +export function useResolverSetDnsrr( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setDnsrr', + TMode + > & { functionName?: 'setDnsrr' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setDnsrr' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setDnsrr', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setInterface"`. + */ +export function useResolverSetInterface( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setInterface', + TMode + > & { functionName?: 'setInterface' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setInterface' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setInterface', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setMultihash"`. + */ +export function useResolverSetMultihash( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setMultihash', + TMode + > & { functionName?: 'setMultihash' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setMultihash' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setMultihash', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setName"`. + */ +export function useResolverSetName( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setName', + TMode + > & { functionName?: 'setName' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setName' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setName', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setPubkey"`. + */ +export function useResolverSetPubkey( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setPubkey', + TMode + > & { functionName?: 'setPubkey' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setPubkey' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setPubkey', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setText"`. + */ +export function useResolverSetText( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'setText', + TMode + > & { functionName?: 'setText' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'setText' + } = {} as any, +) { + return useContractWrite({ + abi: resolverABI, + functionName: 'setText', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__. + */ +export function usePrepareResolverWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: resolverABI, ...config } as UsePrepareContractWriteConfig< + typeof resolverABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"multicall"`. + */ +export function usePrepareResolverMulticall( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'multicall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"multicallWithNodeCheck"`. + */ +export function usePrepareResolverMulticallWithNodeCheck( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'multicallWithNodeCheck', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setABI"`. + */ +export function usePrepareResolverSetAbi( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setABI', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setAddr"`. + */ +export function usePrepareResolverSetAddr( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setAddr', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setContent"`. + */ +export function usePrepareResolverSetContent( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setContent', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setContenthash"`. + */ +export function usePrepareResolverSetContenthash( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setContenthash', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setDnsrr"`. + */ +export function usePrepareResolverSetDnsrr( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setDnsrr', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setInterface"`. + */ +export function usePrepareResolverSetInterface( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setInterface', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setMultihash"`. + */ +export function usePrepareResolverSetMultihash( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setMultihash', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setName"`. + */ +export function usePrepareResolverSetName( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setName', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setPubkey"`. + */ +export function usePrepareResolverSetPubkey( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setPubkey', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link resolverABI}__ and `functionName` set to `"setText"`. + */ +export function usePrepareResolverSetText( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: resolverABI, + functionName: 'setText', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__. + */ +export function useResolverEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"ABIChanged"`. + */ +export function useResolverAbiChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'ABIChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'ABIChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"AddrChanged"`. + */ +export function useResolverAddrChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'AddrChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'AddrChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"AddressChanged"`. + */ +export function useResolverAddressChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'AddressChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'AddressChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"ContentChanged"`. + */ +export function useResolverContentChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'ContentChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'ContentChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"ContenthashChanged"`. + */ +export function useResolverContenthashChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'ContenthashChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'ContenthashChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"DNSRecordChanged"`. + */ +export function useResolverDnsRecordChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'DNSRecordChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'DNSRecordChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"DNSRecordDeleted"`. + */ +export function useResolverDnsRecordDeletedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'DNSRecordDeleted', ...config } as UseContractEventConfig< + typeof resolverABI, + 'DNSRecordDeleted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"DNSZonehashChanged"`. + */ +export function useResolverDnsZonehashChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'DNSZonehashChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'DNSZonehashChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"InterfaceChanged"`. + */ +export function useResolverInterfaceChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'InterfaceChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'InterfaceChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"NameChanged"`. + */ +export function useResolverNameChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'NameChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'NameChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"PubkeyChanged"`. + */ +export function useResolverPubkeyChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'PubkeyChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'PubkeyChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link resolverABI}__ and `eventName` set to `"TextChanged"`. + */ +export function useResolverTextChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: resolverABI, eventName: 'TextChanged', ...config } as UseContractEventConfig< + typeof resolverABI, + 'TextChanged' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__. + */ +export function useStdInvariantRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: stdInvariantABI, ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"excludeArtifacts"`. + */ +export function useStdInvariantExcludeArtifacts< + TFunctionName extends 'excludeArtifacts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'excludeArtifacts', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"excludeContracts"`. + */ +export function useStdInvariantExcludeContracts< + TFunctionName extends 'excludeContracts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'excludeContracts', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"excludeSenders"`. + */ +export function useStdInvariantExcludeSenders< + TFunctionName extends 'excludeSenders', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'excludeSenders', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetArtifactSelectors"`. + */ +export function useStdInvariantTargetArtifactSelectors< + TFunctionName extends 'targetArtifactSelectors', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: stdInvariantABI, + functionName: 'targetArtifactSelectors', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetArtifacts"`. + */ +export function useStdInvariantTargetArtifacts< + TFunctionName extends 'targetArtifacts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'targetArtifacts', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetContracts"`. + */ +export function useStdInvariantTargetContracts< + TFunctionName extends 'targetContracts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'targetContracts', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetInterfaces"`. + */ +export function useStdInvariantTargetInterfaces< + TFunctionName extends 'targetInterfaces', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'targetInterfaces', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetSelectors"`. + */ +export function useStdInvariantTargetSelectors< + TFunctionName extends 'targetSelectors', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'targetSelectors', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link stdInvariantABI}__ and `functionName` set to `"targetSenders"`. + */ +export function useStdInvariantTargetSenders< + TFunctionName extends 'targetSenders', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: stdInvariantABI, functionName: 'targetSenders', ...config } as UseContractReadConfig< + typeof stdInvariantABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__. + */ +export function useTestnetErc20Read< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: testnetErc20ABI, ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"allowance"`. + */ +export function useTestnetErc20Allowance< + TFunctionName extends 'allowance', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'allowance', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"balanceOf"`. + */ +export function useTestnetErc20BalanceOf< + TFunctionName extends 'balanceOf', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'balanceOf', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"decimals"`. + */ +export function useTestnetErc20Decimals< + TFunctionName extends 'decimals', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'decimals', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"name"`. + */ +export function useTestnetErc20Name< + TFunctionName extends 'name', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'name', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"owner"`. + */ +export function useTestnetErc20Owner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'owner', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"symbol"`. + */ +export function useTestnetErc20Symbol< + TFunctionName extends 'symbol', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'symbol', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"totalSupply"`. + */ +export function useTestnetErc20TotalSupply< + TFunctionName extends 'totalSupply', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetErc20ABI, functionName: 'totalSupply', ...config } as UseContractReadConfig< + typeof testnetErc20ABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__. + */ +export function useTestnetErc20Write( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: testnetErc20ABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"approve"`. + */ +export function useTestnetErc20Approve( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'approve', + TMode + > & { functionName?: 'approve' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'approve' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'approve', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"decreaseAllowance"`. + */ +export function useTestnetErc20DecreaseAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'decreaseAllowance', + TMode + > & { functionName?: 'decreaseAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'decreaseAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'decreaseAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"increaseAllowance"`. + */ +export function useTestnetErc20IncreaseAllowance( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'increaseAllowance', + TMode + > & { functionName?: 'increaseAllowance' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'increaseAllowance' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'increaseAllowance', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"mint"`. + */ +export function useTestnetErc20Mint( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'mint', + TMode + > & { functionName?: 'mint' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'mint' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'mint', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function useTestnetErc20RenounceOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'renounceOwnership', + TMode + > & { functionName?: 'renounceOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'renounceOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function useTestnetErc20Transfer( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transfer', + TMode + > & { functionName?: 'transfer' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transfer' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'transfer', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function useTestnetErc20TransferFrom( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferFrom', + TMode + > & { functionName?: 'transferFrom' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferFrom' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'transferFrom', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function useTestnetErc20TransferOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferOwnership', + TMode + > & { functionName?: 'transferOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: testnetErc20ABI, + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__. + */ +export function usePrepareTestnetErc20Write( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: testnetErc20ABI, ...config } as UsePrepareContractWriteConfig< + typeof testnetErc20ABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"approve"`. + */ +export function usePrepareTestnetErc20Approve( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'approve', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"decreaseAllowance"`. + */ +export function usePrepareTestnetErc20DecreaseAllowance( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'decreaseAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"increaseAllowance"`. + */ +export function usePrepareTestnetErc20IncreaseAllowance( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'increaseAllowance', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"mint"`. + */ +export function usePrepareTestnetErc20Mint( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'mint', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function usePrepareTestnetErc20RenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transfer"`. + */ +export function usePrepareTestnetErc20Transfer( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'transfer', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transferFrom"`. + */ +export function usePrepareTestnetErc20TransferFrom( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'transferFrom', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetErc20ABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function usePrepareTestnetErc20TransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetErc20ABI, + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetErc20ABI}__. + */ +export function useTestnetErc20Event( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: testnetErc20ABI, ...config } as UseContractEventConfig< + typeof testnetErc20ABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetErc20ABI}__ and `eventName` set to `"Approval"`. + */ +export function useTestnetErc20ApprovalEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: testnetErc20ABI, eventName: 'Approval', ...config } as UseContractEventConfig< + typeof testnetErc20ABI, + 'Approval' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetErc20ABI}__ and `eventName` set to `"OwnershipTransferred"`. + */ +export function useTestnetErc20OwnershipTransferredEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: testnetErc20ABI, + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetErc20ABI}__ and `eventName` set to `"Transfer"`. + */ +export function useTestnetErc20TransferEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: testnetErc20ABI, eventName: 'Transfer', ...config } as UseContractEventConfig< + typeof testnetErc20ABI, + 'Transfer' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetTokenFaucetABI}__. + */ +export function useTestnetTokenFaucetRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: testnetTokenFaucetABI, ...config } as UseContractReadConfig< + typeof testnetTokenFaucetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"allTokens"`. + */ +export function useTestnetTokenFaucetAllTokens< + TFunctionName extends 'allTokens', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetTokenFaucetABI, functionName: 'allTokens', ...config } as UseContractReadConfig< + typeof testnetTokenFaucetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"owner"`. + */ +export function useTestnetTokenFaucetOwner< + TFunctionName extends 'owner', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetTokenFaucetABI, functionName: 'owner', ...config } as UseContractReadConfig< + typeof testnetTokenFaucetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"tokenCount"`. + */ +export function useTestnetTokenFaucetTokenCount< + TFunctionName extends 'tokenCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: testnetTokenFaucetABI, functionName: 'tokenCount', ...config } as UseContractReadConfig< + typeof testnetTokenFaucetABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"tokenWithSymbol"`. + */ +export function useTestnetTokenFaucetTokenWithSymbol< + TFunctionName extends 'tokenWithSymbol', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: testnetTokenFaucetABI, + functionName: 'tokenWithSymbol', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__. + */ +export function useTestnetTokenFaucetWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: testnetTokenFaucetABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"create"`. + */ +export function useTestnetTokenFaucetCreate( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'create', + TMode + > & { functionName?: 'create' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'create' + } = {} as any, +) { + return useContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'create', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"drip"`. + */ +export function useTestnetTokenFaucetDrip( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'drip', + TMode + > & { functionName?: 'drip' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'drip' + } = {} as any, +) { + return useContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'drip', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function useTestnetTokenFaucetRenounceOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'renounceOwnership', + TMode + > & { functionName?: 'renounceOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'renounceOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'renounceOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function useTestnetTokenFaucetTransferOwnership( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'transferOwnership', + TMode + > & { functionName?: 'transferOwnership' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'transferOwnership' + } = {} as any, +) { + return useContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'transferOwnership', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__. + */ +export function usePrepareTestnetTokenFaucetWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: testnetTokenFaucetABI, ...config } as UsePrepareContractWriteConfig< + typeof testnetTokenFaucetABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"create"`. + */ +export function usePrepareTestnetTokenFaucetCreate( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'create', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"drip"`. + */ +export function usePrepareTestnetTokenFaucetDrip( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'drip', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"renounceOwnership"`. + */ +export function usePrepareTestnetTokenFaucetRenounceOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'renounceOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `functionName` set to `"transferOwnership"`. + */ +export function usePrepareTestnetTokenFaucetTransferOwnership( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: testnetTokenFaucetABI, + functionName: 'transferOwnership', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetTokenFaucetABI}__. + */ +export function useTestnetTokenFaucetEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: testnetTokenFaucetABI, ...config } as UseContractEventConfig< + typeof testnetTokenFaucetABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link testnetTokenFaucetABI}__ and `eventName` set to `"OwnershipTransferred"`. + */ +export function useTestnetTokenFaucetOwnershipTransferredEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: testnetTokenFaucetABI, + eventName: 'OwnershipTransferred', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__. + */ +export function useTokenVotingRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: tokenVotingABI, ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"UPDATE_VOTING_SETTINGS_PERMISSION_ID"`. + */ +export function useTokenVotingUpdateVotingSettingsPermissionId< + TFunctionName extends 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'UPDATE_VOTING_SETTINGS_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"UPGRADE_PLUGIN_PERMISSION_ID"`. + */ +export function useTokenVotingUpgradePluginPermissionId< + TFunctionName extends 'UPGRADE_PLUGIN_PERMISSION_ID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'UPGRADE_PLUGIN_PERMISSION_ID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"canExecute"`. + */ +export function useTokenVotingCanExecute< + TFunctionName extends 'canExecute', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'canExecute', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"canVote"`. + */ +export function useTokenVotingCanVote< + TFunctionName extends 'canVote', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'canVote', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"dao"`. + */ +export function useTokenVotingDao< + TFunctionName extends 'dao', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'dao', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"getProposal"`. + */ +export function useTokenVotingGetProposal< + TFunctionName extends 'getProposal', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'getProposal', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"getVoteOption"`. + */ +export function useTokenVotingGetVoteOption< + TFunctionName extends 'getVoteOption', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'getVoteOption', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"getVotingToken"`. + */ +export function useTokenVotingGetVotingToken< + TFunctionName extends 'getVotingToken', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'getVotingToken', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"implementation"`. + */ +export function useTokenVotingImplementation< + TFunctionName extends 'implementation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'implementation', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"isMember"`. + */ +export function useTokenVotingIsMember< + TFunctionName extends 'isMember', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'isMember', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"isMinParticipationReached"`. + */ +export function useTokenVotingIsMinParticipationReached< + TFunctionName extends 'isMinParticipationReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'isMinParticipationReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"isSupportThresholdReached"`. + */ +export function useTokenVotingIsSupportThresholdReached< + TFunctionName extends 'isSupportThresholdReached', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'isSupportThresholdReached', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"isSupportThresholdReachedEarly"`. + */ +export function useTokenVotingIsSupportThresholdReachedEarly< + TFunctionName extends 'isSupportThresholdReachedEarly', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'isSupportThresholdReachedEarly', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"minDuration"`. + */ +export function useTokenVotingMinDuration< + TFunctionName extends 'minDuration', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'minDuration', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"minParticipation"`. + */ +export function useTokenVotingMinParticipation< + TFunctionName extends 'minParticipation', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'minParticipation', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"minProposerVotingPower"`. + */ +export function useTokenVotingMinProposerVotingPower< + TFunctionName extends 'minProposerVotingPower', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tokenVotingABI, + functionName: 'minProposerVotingPower', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"pluginType"`. + */ +export function useTokenVotingPluginType< + TFunctionName extends 'pluginType', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'pluginType', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"proposalCount"`. + */ +export function useTokenVotingProposalCount< + TFunctionName extends 'proposalCount', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'proposalCount', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"protocolVersion"`. + */ +export function useTokenVotingProtocolVersion< + TFunctionName extends 'protocolVersion', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'protocolVersion', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useTokenVotingProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'proxiableUUID', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"supportThreshold"`. + */ +export function useTokenVotingSupportThreshold< + TFunctionName extends 'supportThreshold', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'supportThreshold', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"supportsInterface"`. + */ +export function useTokenVotingSupportsInterface< + TFunctionName extends 'supportsInterface', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'supportsInterface', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"totalVotingPower"`. + */ +export function useTokenVotingTotalVotingPower< + TFunctionName extends 'totalVotingPower', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'totalVotingPower', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"votingMode"`. + */ +export function useTokenVotingVotingMode< + TFunctionName extends 'votingMode', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tokenVotingABI, functionName: 'votingMode', ...config } as UseContractReadConfig< + typeof tokenVotingABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__. + */ +export function useTokenVotingWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: tokenVotingABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"createProposal"`. + */ +export function useTokenVotingCreateProposal( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'createProposal', + TMode + > & { functionName?: 'createProposal' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'createProposal' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'createProposal', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"execute"`. + */ +export function useTokenVotingExecute( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'execute', + TMode + > & { functionName?: 'execute' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'execute' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'execute', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"initialize"`. + */ +export function useTokenVotingInitialize( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'initialize', + TMode + > & { functionName?: 'initialize' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'initialize' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'initialize', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"updateVotingSettings"`. + */ +export function useTokenVotingUpdateVotingSettings( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'updateVotingSettings', + TMode + > & { functionName?: 'updateVotingSettings' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'updateVotingSettings' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'updateVotingSettings', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useTokenVotingUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useTokenVotingUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"vote"`. + */ +export function useTokenVotingVote( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'vote', + TMode + > & { functionName?: 'vote' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'vote' + } = {} as any, +) { + return useContractWrite({ + abi: tokenVotingABI, + functionName: 'vote', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__. + */ +export function usePrepareTokenVotingWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: tokenVotingABI, ...config } as UsePrepareContractWriteConfig< + typeof tokenVotingABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"createProposal"`. + */ +export function usePrepareTokenVotingCreateProposal( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'createProposal', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"execute"`. + */ +export function usePrepareTokenVotingExecute( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'execute', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"initialize"`. + */ +export function usePrepareTokenVotingInitialize( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'initialize', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"updateVotingSettings"`. + */ +export function usePrepareTokenVotingUpdateVotingSettings( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'updateVotingSettings', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareTokenVotingUpgradeTo( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareTokenVotingUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tokenVotingABI}__ and `functionName` set to `"vote"`. + */ +export function usePrepareTokenVotingVote( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: tokenVotingABI, + functionName: 'vote', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__. + */ +export function useTokenVotingEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, ...config } as UseContractEventConfig< + typeof tokenVotingABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useTokenVotingAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useTokenVotingBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"Initialized"`. + */ +export function useTokenVotingInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"MembersAdded"`. + */ +export function useTokenVotingMembersAddedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'MembersAdded', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'MembersAdded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"MembersRemoved"`. + */ +export function useTokenVotingMembersRemovedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'MembersRemoved', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'MembersRemoved' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"MembershipContractAnnounced"`. + */ +export function useTokenVotingMembershipContractAnnouncedEvent( + config: Omit< + UseContractEventConfig, + 'abi' | 'eventName' + > = {} as any, +) { + return useContractEvent({ + abi: tokenVotingABI, + eventName: 'MembershipContractAnnounced', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"ProposalCreated"`. + */ +export function useTokenVotingProposalCreatedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'ProposalCreated', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'ProposalCreated' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"ProposalExecuted"`. + */ +export function useTokenVotingProposalExecutedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'ProposalExecuted', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'ProposalExecuted' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useTokenVotingUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"VoteCast"`. + */ +export function useTokenVotingVoteCastEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tokenVotingABI, eventName: 'VoteCast', ...config } as UseContractEventConfig< + typeof tokenVotingABI, + 'VoteCast' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tokenVotingABI}__ and `eventName` set to `"VotingSettingsUpdated"`. + */ +export function useTokenVotingVotingSettingsUpdatedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: tokenVotingABI, + eventName: 'VotingSettingsUpdated', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__. + */ +export function useTribeTestRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: tribeTestABI, ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"IS_TEST"`. + */ +export function useTribeTestIsTest< + TFunctionName extends 'IS_TEST', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'IS_TEST', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"excludeArtifacts"`. + */ +export function useTribeTestExcludeArtifacts< + TFunctionName extends 'excludeArtifacts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'excludeArtifacts', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"excludeContracts"`. + */ +export function useTribeTestExcludeContracts< + TFunctionName extends 'excludeContracts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'excludeContracts', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"excludeSenders"`. + */ +export function useTribeTestExcludeSenders< + TFunctionName extends 'excludeSenders', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'excludeSenders', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetArtifactSelectors"`. + */ +export function useTribeTestTargetArtifactSelectors< + TFunctionName extends 'targetArtifactSelectors', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: tribeTestABI, + functionName: 'targetArtifactSelectors', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetArtifacts"`. + */ +export function useTribeTestTargetArtifacts< + TFunctionName extends 'targetArtifacts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'targetArtifacts', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetContracts"`. + */ +export function useTribeTestTargetContracts< + TFunctionName extends 'targetContracts', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'targetContracts', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetInterfaces"`. + */ +export function useTribeTestTargetInterfaces< + TFunctionName extends 'targetInterfaces', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'targetInterfaces', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetSelectors"`. + */ +export function useTribeTestTargetSelectors< + TFunctionName extends 'targetSelectors', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'targetSelectors', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"targetSenders"`. + */ +export function useTribeTestTargetSenders< + TFunctionName extends 'targetSenders', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: tribeTestABI, functionName: 'targetSenders', ...config } as UseContractReadConfig< + typeof tribeTestABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tribeTestABI}__. + */ +export function useTribeTestWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ abi: tribeTestABI, ...config } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"failed"`. + */ +export function useTribeTestFailed( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'failed', + TMode + > & { functionName?: 'failed' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'failed' + } = {} as any, +) { + return useContractWrite({ + abi: tribeTestABI, + functionName: 'failed', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tribeTestABI}__. + */ +export function usePrepareTribeTestWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: tribeTestABI, ...config } as UsePrepareContractWriteConfig< + typeof tribeTestABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link tribeTestABI}__ and `functionName` set to `"failed"`. + */ +export function usePrepareTribeTestFailed( + config: Omit, 'abi' | 'functionName'> = {} as any, +) { + return usePrepareContractWrite({ + abi: tribeTestABI, + functionName: 'failed', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__. + */ +export function useTribeTestEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, ...config } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log"`. + */ +export function useTribeTestLogEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_address"`. + */ +export function useTribeTestLogAddressEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_address', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_address' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_array"`. + */ +export function useTribeTestLogArrayEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_array', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_array' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_bytes"`. + */ +export function useTribeTestLogBytesEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_bytes', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_bytes' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_bytes32"`. + */ +export function useTribeTestLogBytes32Event( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_bytes32', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_bytes32' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_int"`. + */ +export function useTribeTestLogIntEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_int', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_int' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_address"`. + */ +export function useTribeTestLogNamedAddressEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_address', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_address' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_array"`. + */ +export function useTribeTestLogNamedArrayEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_array', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_array' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_bytes"`. + */ +export function useTribeTestLogNamedBytesEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_bytes', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_bytes' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_bytes32"`. + */ +export function useTribeTestLogNamedBytes32Event( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_bytes32', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_bytes32' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_decimal_int"`. + */ +export function useTribeTestLogNamedDecimalIntEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: tribeTestABI, + eventName: 'log_named_decimal_int', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_decimal_uint"`. + */ +export function useTribeTestLogNamedDecimalUintEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ + abi: tribeTestABI, + eventName: 'log_named_decimal_uint', + ...config, + } as UseContractEventConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_int"`. + */ +export function useTribeTestLogNamedIntEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_int', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_int' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_string"`. + */ +export function useTribeTestLogNamedStringEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_string', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_string' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_named_uint"`. + */ +export function useTribeTestLogNamedUintEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_named_uint', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_named_uint' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_string"`. + */ +export function useTribeTestLogStringEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_string', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_string' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"log_uint"`. + */ +export function useTribeTestLogUintEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'log_uint', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'log_uint' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link tribeTestABI}__ and `eventName` set to `"logs"`. + */ +export function useTribeTestLogsEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: tribeTestABI, eventName: 'logs', ...config } as UseContractEventConfig< + typeof tribeTestABI, + 'logs' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link uupsUpgradeableABI}__. + */ +export function useUupsUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: uupsUpgradeableABI, ...config } as UseContractReadConfig< + typeof uupsUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useUupsUpgradeableProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ abi: uupsUpgradeableABI, functionName: 'proxiableUUID', ...config } as UseContractReadConfig< + typeof uupsUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__. + */ +export function useUupsUpgradeableWrite( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + TFunctionName, + TMode + > + : UseContractWriteConfig & { + abi?: never + } = {} as any, +) { + return useContractWrite({ + abi: uupsUpgradeableABI, + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function useUupsUpgradeableUpgradeTo( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeTo', + TMode + > & { functionName?: 'upgradeTo' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeTo' + } = {} as any, +) { + return useContractWrite({ + abi: uupsUpgradeableABI, + functionName: 'upgradeTo', + ...config, + } as any) +} + +/** + * Wraps __{@link useContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function useUupsUpgradeableUpgradeToAndCall( + config: TMode extends 'prepared' + ? UseContractWriteConfig< + PrepareWriteContractResult['request']['abi'], + 'upgradeToAndCall', + TMode + > & { functionName?: 'upgradeToAndCall' } + : UseContractWriteConfig & { + abi?: never + functionName?: 'upgradeToAndCall' + } = {} as any, +) { + return useContractWrite({ + abi: uupsUpgradeableABI, + functionName: 'upgradeToAndCall', + ...config, + } as any) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__. + */ +export function usePrepareUupsUpgradeableWrite( + config: Omit, 'abi'> = {} as any, +) { + return usePrepareContractWrite({ abi: uupsUpgradeableABI, ...config } as UsePrepareContractWriteConfig< + typeof uupsUpgradeableABI, + TFunctionName + >) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `functionName` set to `"upgradeTo"`. + */ +export function usePrepareUupsUpgradeableUpgradeTo( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: uupsUpgradeableABI, + functionName: 'upgradeTo', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link usePrepareContractWrite}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `functionName` set to `"upgradeToAndCall"`. + */ +export function usePrepareUupsUpgradeableUpgradeToAndCall( + config: Omit< + UsePrepareContractWriteConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return usePrepareContractWrite({ + abi: uupsUpgradeableABI, + functionName: 'upgradeToAndCall', + ...config, + } as UsePrepareContractWriteConfig) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link uupsUpgradeableABI}__. + */ +export function useUupsUpgradeableEvent( + config: Omit, 'abi'> = {} as any, +) { + return useContractEvent({ abi: uupsUpgradeableABI, ...config } as UseContractEventConfig< + typeof uupsUpgradeableABI, + TEventName + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `eventName` set to `"AdminChanged"`. + */ +export function useUupsUpgradeableAdminChangedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: uupsUpgradeableABI, eventName: 'AdminChanged', ...config } as UseContractEventConfig< + typeof uupsUpgradeableABI, + 'AdminChanged' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `eventName` set to `"BeaconUpgraded"`. + */ +export function useUupsUpgradeableBeaconUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: uupsUpgradeableABI, eventName: 'BeaconUpgraded', ...config } as UseContractEventConfig< + typeof uupsUpgradeableABI, + 'BeaconUpgraded' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `eventName` set to `"Initialized"`. + */ +export function useUupsUpgradeableInitializedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: uupsUpgradeableABI, eventName: 'Initialized', ...config } as UseContractEventConfig< + typeof uupsUpgradeableABI, + 'Initialized' + >) +} + +/** + * Wraps __{@link useContractEvent}__ with `abi` set to __{@link uupsUpgradeableABI}__ and `eventName` set to `"Upgraded"`. + */ +export function useUupsUpgradeableUpgradedEvent( + config: Omit, 'abi' | 'eventName'> = {} as any, +) { + return useContractEvent({ abi: uupsUpgradeableABI, eventName: 'Upgraded', ...config } as UseContractEventConfig< + typeof uupsUpgradeableABI, + 'Upgraded' + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1822ProxiableABI}__. + */ +export function useIerc1822ProxiableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>(config: Omit, 'abi'> = {} as any) { + return useContractRead({ abi: ierc1822ProxiableABI, ...config } as UseContractReadConfig< + typeof ierc1822ProxiableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1822ProxiableABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useIerc1822ProxiableProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1822ProxiableABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1822ProxiableUpgradeableABI}__. + */ +export function useIerc1822ProxiableUpgradeableRead< + TFunctionName extends string, + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' + > = {} as any, +) { + return useContractRead({ abi: ierc1822ProxiableUpgradeableABI, ...config } as UseContractReadConfig< + typeof ierc1822ProxiableUpgradeableABI, + TFunctionName, + TSelectData + >) +} + +/** + * Wraps __{@link useContractRead}__ with `abi` set to __{@link ierc1822ProxiableUpgradeableABI}__ and `functionName` set to `"proxiableUUID"`. + */ +export function useIerc1822ProxiableUpgradeableProxiableUuid< + TFunctionName extends 'proxiableUUID', + TSelectData = ReadContractResult, +>( + config: Omit< + UseContractReadConfig, + 'abi' | 'functionName' + > = {} as any, +) { + return useContractRead({ + abi: ierc1822ProxiableUpgradeableABI, + functionName: 'proxiableUUID', + ...config, + } as UseContractReadConfig) +} diff --git a/packages/hooks/src/hooks/index.ts b/packages/hooks/src/hooks/index.ts new file mode 100644 index 0000000..cc15865 --- /dev/null +++ b/packages/hooks/src/hooks/index.ts @@ -0,0 +1,9 @@ +export { GlobalStateContext, GlobalStateProvider, useStore } from "./useStore"; +export { useBudgetCount } from "./useBudgetCount"; +export { useBudgetInfo } from "./useBudgetInfo"; +export { useLoadDao } from "./useLoadDao"; +export { useGetPlugin } from "./useGetPlugin"; +export { useInstallBudget } from "./useInstallBudget"; +export { useInstallProposal } from "./useInstallProposal"; +export { useNewRootBudget } from "./useNewRootBudget"; +export { usePrepareInstall } from "./usePrepareInstall"; diff --git a/packages/hooks/src/hooks/useBudgetCount.ts b/packages/hooks/src/hooks/useBudgetCount.ts new file mode 100644 index 0000000..fab1977 --- /dev/null +++ b/packages/hooks/src/hooks/useBudgetCount.ts @@ -0,0 +1,15 @@ +import { useContractRead } from "wagmi"; +import { budgetABI } from "../generated"; +import { useStore } from "."; + +export function useBudgetCount(watch = true) { + const { budgetAddress } = useStore(); + const { data: budgetCount, ...rest } = useContractRead({ + address: budgetAddress!, + abi: budgetABI, + functionName: "allowancesCount", + watch, + enabled: !!budgetAddress, + }); + return { budgetCount, ...rest }; +} diff --git a/packages/hooks/src/hooks/useBudgetInfo.ts b/packages/hooks/src/hooks/useBudgetInfo.ts new file mode 100644 index 0000000..39ff401 --- /dev/null +++ b/packages/hooks/src/hooks/useBudgetInfo.ts @@ -0,0 +1,40 @@ +import { useContractRead } from "wagmi"; +import { budgetABI } from "../generated"; +import { useStore } from "."; +import { BudgetInfo, BytesLike } from "../types"; + +export function useBudgetInfo({ budgetId }: { budgetId?: string | bigint | number | undefined } = {}) { + const { budgetAddress, activeBudget } = useStore(); + const budget = budgetId ?? activeBudget; + const { + data: budgetInfo, + error, + isLoading, + refetch, + } = useContractRead({ + address: budgetAddress!, + abi: budgetABI, + functionName: "allowances", + args: [budget ? BigInt(budget!) : 0n], + enabled: !!(budget && budgetAddress), + }); + return { budgetInfo: budgetInfo ? parseBudgetInfo(budgetInfo) : undefined, error, isLoading, refetch }; +} + +function parseBudgetInfo( + budgetInfoArray: readonly [bigint, bigint, bigint, BytesLike, number, BytesLike, BytesLike, boolean] | undefined, +): BudgetInfo | undefined { + if (!budgetInfoArray) return undefined; + const [parentId, amount, spent, token, nextResetTime, spender, recurrency, isDisabled] = budgetInfoArray; + + return { + parentId: BigInt(parentId), + amount: BigInt(amount), + spent: BigInt(spent), + token: token as string, + nextResetTime: new Date(Number(nextResetTime) * 1000).toDateString(), + spender: spender as string, + recurrency: BigInt(recurrency), + isDisabled: isDisabled as boolean, + }; +} diff --git a/packages/hooks/src/hooks/useGetPlugin.ts b/packages/hooks/src/hooks/useGetPlugin.ts new file mode 100644 index 0000000..bcbe5f2 --- /dev/null +++ b/packages/hooks/src/hooks/useGetPlugin.ts @@ -0,0 +1,61 @@ +import { useQuery } from "@tanstack/react-query"; +import { request, gql } from "graphql-request"; +import { useStore } from "."; +import { subgraph } from "../lib/constants"; +import { BytesLike } from "../types"; + +const getPlugins = async ({ daoAddress, subgraph }: { daoAddress: BytesLike; subgraph: string }): Promise => { + const query = gql` + query GetInstalledPlugins($daoAddress: ID!) { + dao(id: $daoAddress) { + plugins(where: { state: Installed }) { + appliedPreparation { + pluginAddress + } + appliedPluginRepo { + subdomain + } + } + } + } + `; + + const data = await request(subgraph, query, { daoAddress }); + return data; +}; + +interface Plugin { + appliedPreparation: { + pluginAddress: string; + }; + appliedPluginRepo: { + subdomain: string; + }; +} + +interface DaoData { + dao: { + plugins: Plugin[]; + }; +} + +export const useGetPlugin = (subdomain: string) => { + const { daoAddress } = useStore(); + const { data: plugin, ...rest } = useQuery({ + queryKey: ["plugin", daoAddress, subdomain], + queryFn: () => getPlugins({ daoAddress: daoAddress!, subgraph }), + select(data) { + const pluginWithSubdomain = data.dao.plugins.find( + (plugin) => plugin.appliedPluginRepo.subdomain === subdomain.toLowerCase(), + ); + return pluginWithSubdomain + ? { + pluginAddress: pluginWithSubdomain.appliedPreparation.pluginAddress as BytesLike, + subdomain: pluginWithSubdomain.appliedPluginRepo.subdomain, + } + : null; + }, + enabled: !!(daoAddress && subgraph && subdomain), + }); + return { plugin, ...rest }; +}; diff --git a/packages/hooks/src/hooks/useInstallBudget.ts b/packages/hooks/src/hooks/useInstallBudget.ts new file mode 100644 index 0000000..52b7e57 --- /dev/null +++ b/packages/hooks/src/hooks/useInstallBudget.ts @@ -0,0 +1,95 @@ +import { useEffect, useState } from "react"; +import { useInstallProposal, usePrepareInstall } from "."; + +export enum InstallBudgetStatus { + WaitingForSigner = "Waiting for Signer...", + WaitingForPreperationConfirmation = "Waiting for confirmation...", + WaitingForInstallConfirmation = "Waiting for Install confirmation...", + BudgetInstalled = "Budget Installed", + Error = "Error", + Idle = "Install Budget", +} + +export function useInstallBudget() { + const [isHookLoading, setIsHookLoading] = useState(false); + const { + prepareTxHash, + txReceipt: prepareTxReceipt, + error: prepareError, + isLoading: isPrepareLoading, + installAction, + plugin, + prepareInstallationAsync, + } = usePrepareInstall(); + + const { + error: installError, + installProposalAsync, + installTxHash, + isLoading: isInstallLoading, + txReceipt: installTxReceipt, + } = useInstallProposal({ + installAction, + enabled: !!prepareTxReceipt, + }); + + // call installProposalAsync when prepareTxReceipt is ready + useEffect(() => { + if (prepareTxReceipt && installProposalAsync) installProposalAsync(); + }, [prepareTxReceipt, installProposalAsync]); + + // set loading to false when installTxReceipt is ready + useEffect(() => { + if (installTxReceipt || prepareError || installError) { + setIsHookLoading(false); + } + }, [installTxReceipt]); + + async function installPlugin() { + setIsHookLoading(true); + try { + await prepareInstallationAsync?.(); + } catch (error) { + throw error; + } finally { + setIsHookLoading(false); + } + } + + const error = prepareError || installError; + const isLoading = isHookLoading || isPrepareLoading || isInstallLoading; + + let status: InstallBudgetStatus; + switch (true) { + case isLoading && !prepareTxHash && !installTxHash: + status = InstallBudgetStatus.WaitingForSigner; + break; + case isLoading && !!prepareTxHash && !prepareTxReceipt: + status = InstallBudgetStatus.WaitingForPreperationConfirmation; + case isLoading && !!prepareTxReceipt && !installTxHash: + status = InstallBudgetStatus.WaitingForSigner; + break; + case isLoading && !!installTxHash && !installTxReceipt: + status = InstallBudgetStatus.WaitingForInstallConfirmation; + break; + case !!installTxReceipt: + status = InstallBudgetStatus.BudgetInstalled; + case !!error: + status = InstallBudgetStatus.Error; + break; + default: + status = InstallBudgetStatus.Idle; + } + + return { + status, + installPlugin, + plugin, + prepareTxHash, + prepareTxReceipt, + installTxHash, + installTxReceipt, + error, + isLoading: isHookLoading || isPrepareLoading || isInstallLoading, + }; +} diff --git a/packages/hooks/src/hooks/useInstallProposal.ts b/packages/hooks/src/hooks/useInstallProposal.ts new file mode 100644 index 0000000..b8b1f2e --- /dev/null +++ b/packages/hooks/src/hooks/useInstallProposal.ts @@ -0,0 +1,90 @@ +import { useContractWrite, usePrepareContractWrite, useWaitForTransaction } from "wagmi"; +import { tokenVotingABI } from "../generated"; +import { DAO__factory } from "@aragon/osx-ethers"; +import { keccak256, stringToBytes } from "viem"; +import { Permissions, VoteValues } from "@aragon/sdk-client"; +import { BytesLike, DAOAction } from "../types"; +import { pluginSetupProcessorAddress } from "../lib/constants"; +import { useStore } from "."; + +export function useInstallProposal({ + voteMetadata = "0x00", + installAction, + enabled = true, +}: { + voteMetadata?: BytesLike; + installAction: DAOAction; + enabled?: boolean; +}) { + const { daoAddress, tokenVotingAddress } = useStore(); + + const daoInterface = DAO__factory.createInterface(); + + const grantPSPRoot = { + to: daoAddress as BytesLike, + value: 0n, + data: daoInterface.encodeFunctionData("grant", [ + daoAddress!, + pluginSetupProcessorAddress, + keccak256(stringToBytes(Permissions.ROOT_PERMISSION)), + ]) as BytesLike, + }; + + const revokePSPRoot = { + to: daoAddress as BytesLike, + value: 0n, + data: daoInterface.encodeFunctionData("revoke", [ + daoAddress!, + pluginSetupProcessorAddress, + keccak256(stringToBytes(Permissions.ROOT_PERMISSION)), + ]) as BytesLike, + }; + + const { config } = usePrepareContractWrite({ + address: tokenVotingAddress!, + abi: tokenVotingABI, + functionName: "createProposal", + args: [ + voteMetadata, + [grantPSPRoot, installAction, revokePSPRoot], + 0n, + 0n, + 0n, + VoteValues.YES, + true, // try and execute immediately + ], + enabled: !!(daoAddress && installAction && tokenVotingAddress && pluginSetupProcessorAddress && enabled), + }); + + console.log({ + daoAddress: !!daoAddress, + installAction: !!installAction, + tokenVotingAddress: !!tokenVotingAddress, + pluginSetupProcessorAddress: !!pluginSetupProcessorAddress, + enabled, + }); + + const { + data: installTxHash, + write: installProposal, + writeAsync: installProposalAsync, + error, + isLoading, + } = useContractWrite(config); + const { + data: txReceipt, + error: txError, + isLoading: isTxLoading, + } = useWaitForTransaction({ + hash: installTxHash?.hash, + }); + + return { + installProposal, + installProposalAsync, + error: error || txError, + isLoading: isLoading || isTxLoading, + installTxHash, + txReceipt, + }; +} diff --git a/packages/hooks/src/hooks/useIsTokenVotingMember.ts b/packages/hooks/src/hooks/useIsTokenVotingMember.ts new file mode 100644 index 0000000..f35343e --- /dev/null +++ b/packages/hooks/src/hooks/useIsTokenVotingMember.ts @@ -0,0 +1,33 @@ +import request, { gql } from "graphql-request"; +import { BytesLike } from "../types"; +import { useQuery } from "@tanstack/react-query"; +import { subgraph } from "../lib/constants"; +import { useStore } from "./useStore"; +import { useBlockNumber } from "wagmi"; + +export const QueryTokenVotingIsMember = gql` + query TokenVotingIsMember($id: ID!, $block: Block_height) { + tokenVotingMember(id: $id, block: $block) { + id + } + } +`; + +export const useIsTokenVotingMember = ({ address }: { address: BytesLike | undefined }) => { + const { data: blockNumber } = useBlockNumber(); + const { tokenVotingAddress } = useStore(); + console.log({ blockNumber, tokenVotingAddress, address }); + + const { data: isMember } = useQuery({ + queryKey: ["tokenVotingMember", address, blockNumber?.toString()], + queryFn: async () => + request(subgraph, QueryTokenVotingIsMember, { + id: `${tokenVotingAddress?.toLocaleLowerCase()}_${address?.toLowerCase()}`, + blockNumber: { number: blockNumber?.toString() }, + }), + enabled: !!(address && blockNumber && tokenVotingAddress), + }); + + console.log({ isMember }); + return !!isMember; +}; diff --git a/packages/hooks/src/hooks/useLoadDao.ts b/packages/hooks/src/hooks/useLoadDao.ts new file mode 100644 index 0000000..301dd2a --- /dev/null +++ b/packages/hooks/src/hooks/useLoadDao.ts @@ -0,0 +1,63 @@ +import { useQuery } from "@tanstack/react-query"; +import { request, gql } from "graphql-request"; +import { useGetPlugin, useStore } from "."; +import { subgraph } from "../lib/constants"; +import { BytesLike } from "../types"; +import { useEffect } from "react"; + +const getDao = async ({ daoAddress, subgraph }: { daoAddress: BytesLike; subgraph: string }): Promise => { + const query = gql` + query Dao($daoAddress: ID!) { + dao(id: $daoAddress) { + id + subdomain + metadata + createdAt + } + } + `; + + const data = await request(subgraph, query, { daoAddress }); + return data; +}; + +export interface DaoData { + dao: { + id: BytesLike; + subdomain: string; + metadata: string; + createdAt: string; + }; +} + +export function useLoadDao() { + const { daoAddress } = useStore(); + const { setDaoAddress, setBudgetAddress, setTokenVotingAddress } = useStore(); + const { plugin: Budget } = useGetPlugin("budget"); + const { plugin: TokenVoting } = useGetPlugin("token-voting"); + + const { data: dao, ...rest } = useQuery({ + queryKey: ["dao", daoAddress], + queryFn: () => getDao({ daoAddress: daoAddress!, subgraph }), + select: (data) => { + return { + daoAddress: data.dao.id, + subdomain: `${data.dao.subdomain}.dao.eth`, + metadata: data.dao.metadata, + createdAt: new Date(Number(data.dao.createdAt) * 1000).toLocaleString(), // Convert Unix timestamp to JavaScript Date + }; + }, + enabled: !!(daoAddress && subgraph), // Only run this query if we have a daoAddress and subgraph + }); + + useEffect(() => { + if (Budget) { + setBudgetAddress(Budget.pluginAddress); + } + if (TokenVoting) { + setTokenVotingAddress(TokenVoting.pluginAddress); + } + }, [Budget, TokenVoting]); + + return { loadDao: (dao: BytesLike) => setDaoAddress(dao), dao, ...rest }; +} diff --git a/packages/hooks/src/hooks/useNewRootBudget.ts b/packages/hooks/src/hooks/useNewRootBudget.ts new file mode 100644 index 0000000..77a2a0a --- /dev/null +++ b/packages/hooks/src/hooks/useNewRootBudget.ts @@ -0,0 +1,123 @@ +import { useContractWrite, useWaitForTransaction } from "wagmi"; +import { budgetABI, tokenVotingABI } from "../generated"; +import { BytesLike, DAOAction, TimeUnit } from "../types"; +import { VoteValues } from "@aragon/sdk-client"; +import { encodeFunctionData } from "viem"; +import { useStore } from "./useStore"; + +export interface IEncodeRootBudgetVoteData { + spender: BytesLike; + token: BytesLike; + amount: bigint; + recurrency: TimeUnit; + name: string; + voteMetadata?: BytesLike; +} + +export enum NewRootBudgetStatus { + WaitingForSigner = "Waiting for Signer...", + WaitingForConfirmation = "Waiting for confirmation...", + NewBudgetCreated = "New Budget Created", + Error = "Error", + Idle = "Create New Budget", +} + +type EncodeVoteReturnType = + | Readonly< + [ + `0x${string}`, + Readonly<{ + to: `0x${string}`; + value: bigint; + data: `0x${string}`; + }>[], + bigint, + bigint, + bigint, + number, + boolean, + ] + > + | undefined; + +export function useNewRootBudget() { + const { tokenVotingAddress, budgetAddress } = useStore(); + + function encodeRootBudgetVote({ + spender, + token, + amount, + recurrency, + name, + voteMetadata = "0x00", + }: IEncodeRootBudgetVoteData): EncodeVoteReturnType { + if (!budgetAddress) return undefined; + const action: Array = [ + { + to: budgetAddress, + value: 0n, + data: encodeFunctionData({ + abi: budgetABI, + functionName: "createAllowance", + args: [0n, spender, token, amount, recurrency, name], + }), + }, + ]; + return [ + voteMetadata, + action, + 0n, // no failures allowed + 0n, // first start date + 0n, // no end date + VoteValues.YES, // creator vote yes + true, // try and execute immediately + ]; + } + + const { + data: tx, + error, + isLoading, + write, + writeAsync, + } = useContractWrite({ address: tokenVotingAddress, abi: tokenVotingABI, functionName: "createProposal" }); + + const newRootBudget = (data: IEncodeRootBudgetVoteData) => write({ args: encodeRootBudgetVote(data) }); + const newRootBudgetAsync = (data: IEncodeRootBudgetVoteData) => writeAsync({ args: encodeRootBudgetVote(data) }); + + const { + data: txReceipt, + error: txError, + isLoading: isTxLoading, + } = useWaitForTransaction({ + hash: tx?.hash, + }); + + let status: NewRootBudgetStatus; + switch (true) { + case (isLoading || isTxLoading) && !tx?.hash: + status = NewRootBudgetStatus.WaitingForSigner; + break; + case (isLoading || isTxLoading) && !!tx?.hash && !txReceipt: + status = NewRootBudgetStatus.WaitingForConfirmation; + break; + case !!txReceipt: + status = NewRootBudgetStatus.NewBudgetCreated; + break; + case !!error: + status = NewRootBudgetStatus.Error; + break; + default: + status = NewRootBudgetStatus.Idle; + } + + return { + status, + txHash: tx?.hash, + txReceipt, + error: error || txError, + isLoading: isLoading || isTxLoading, + newRootBudget: !!(tokenVotingAddress && budgetAddress) ? newRootBudget : undefined, + newRootBudgetAsync: !!(tokenVotingAddress && budgetAddress) ? newRootBudgetAsync : undefined, + }; +} diff --git a/packages/hooks/src/hooks/usePayment.ts b/packages/hooks/src/hooks/usePayment.ts new file mode 100644 index 0000000..02a5e37 --- /dev/null +++ b/packages/hooks/src/hooks/usePayment.ts @@ -0,0 +1,81 @@ +import { useContractWrite, useWaitForTransaction } from "wagmi"; +import { BytesLike } from "../types"; +import { useStore } from "./useStore"; +import { budgetABI } from "../generated"; + +export interface IUsePayment { + budgetId: string | number | bigint; + to: BytesLike; + amount: string | number | bigint; + description: string; +} + +export enum UsePaymentStatus { + WaitingForSigner = "Waiting for Signer...", + WaitingForConfirmation = "Waiting for confirmation...", + PaymentExecuted = "Payment Executed", + Error = "Error", + Idle = "Exewcute Payment", +} + +export function usePayment() { + const { budgetAddress } = useStore(); + + const { + data: tx, + write, + writeAsync, + isLoading: isWriteLoading, + isError: isWriteError, + error: writeError, + } = useContractWrite({ + address: budgetAddress!, + abi: budgetABI, + functionName: "executePayment", + }); + + const { + data: txReceipt, + error: txError, + isLoading: isTxLoading, + } = useWaitForTransaction({ + hash: tx?.hash, + }); + + const isLoading = isWriteLoading || isTxLoading; + const isError = isWriteError || txError; + const error = writeError || txError; + + let status: UsePaymentStatus; + switch (true) { + case isLoading && !tx?.hash: + status = UsePaymentStatus.WaitingForSigner; + break; + case isLoading && !!tx?.hash && !txReceipt: + status = UsePaymentStatus.WaitingForConfirmation; + break; + case !!txReceipt: + status = UsePaymentStatus.PaymentExecuted; + break; + case isError: + status = UsePaymentStatus.Error; + break; + default: + status = UsePaymentStatus.Idle; + } + + const executePayment = ({ budgetId, to, amount, description }: IUsePayment) => + write({ args: [BigInt(budgetId), to, BigInt(amount), description] }); + const executePaymentAsync = ({ budgetId, to, amount, description }: IUsePayment) => + write({ args: [BigInt(budgetId), to, BigInt(amount), description] }); + + return { + status, + txHash: tx?.hash, + txReceipt, + error, + isLoading, + executePayment: !!budgetAddress ? executePayment : undefined, + executePaymentAsync: !!budgetAddress ? executePaymentAsync : undefined, + }; +} diff --git a/packages/hooks/src/hooks/usePrepareInstall.ts b/packages/hooks/src/hooks/usePrepareInstall.ts new file mode 100644 index 0000000..bc022d8 --- /dev/null +++ b/packages/hooks/src/hooks/usePrepareInstall.ts @@ -0,0 +1,73 @@ +import { useContractWrite, usePrepareContractWrite, useWaitForTransaction } from "wagmi"; +import { pluginSetupProcessorABI } from "../generated"; +import { PluginSetupProcessor, PluginSetupProcessor__factory } from "@aragon/osx-ethers"; +import { zeroAddress, keccak256, encodeAbiParameters } from "viem"; +import { budgetRepoAddress, pluginSetupProcessorAddress } from "../lib/constants"; +import { useStore } from "."; +import { BytesLike } from "../types"; + +export function usePrepareInstall(enabled = true) { + const { daoAddress } = useStore(); + const pluginSetupRef = { + versionTag: { release: 1, build: 1 }, + pluginSetupRepo: budgetRepoAddress, + }; + + const { config: prepareInsallConfig, data: prepareData } = usePrepareContractWrite({ + address: pluginSetupProcessorAddress, + abi: pluginSetupProcessorABI, + functionName: "prepareInstallation", + args: [daoAddress!, { pluginSetupRef, data: zeroAddress }], + chainId: 5, + enabled: !!(daoAddress && budgetRepoAddress && pluginSetupProcessorAddress && enabled), + }); + + const { + data: prepareTxHash, + write: prepareInstallation, + writeAsync: prepareInstallationAsync, + error, + isLoading, + } = useContractWrite(prepareInsallConfig); + const { + data: txReceipt, + error: txError, + isLoading: isTxLoading, + } = useWaitForTransaction({ + hash: prepareTxHash?.hash, + }); + + const plugin = prepareData?.result[0]; + const permissions = + prepareData?.result[1].permissions.map((p: any) => { + return { ...p, condition: zeroAddress }; + }) ?? []; + + const applyInstallationParams: PluginSetupProcessor.ApplyInstallationParamsStruct = { + permissions, + plugin: plugin ?? zeroAddress, + pluginSetupRef, + helpersHash: keccak256(encodeAbiParameters([{ name: "addresses", type: "address[]" }], [[]])), + }; + + const installAction = { + to: pluginSetupProcessorAddress, + value: 0n, + data: PluginSetupProcessor__factory.createInterface().encodeFunctionData("applyInstallation", [ + daoAddress!, + applyInstallationParams, + ]) as BytesLike, + }; + + return { + prepareInstallation, + prepareInstallationAsync, + error: error || txError, + isLoading: isLoading || isTxLoading, + plugin, + permissions, + installAction, + prepareTxHash, + txReceipt, + }; +} diff --git a/packages/hooks/src/hooks/useStore.tsx b/packages/hooks/src/hooks/useStore.tsx new file mode 100644 index 0000000..9db1558 --- /dev/null +++ b/packages/hooks/src/hooks/useStore.tsx @@ -0,0 +1,87 @@ +import { FC, PropsWithChildren, createContext, useContext, useReducer } from "react"; +import { BytesLike } from "../types"; + +interface GlobalState { + daoAddress: BytesLike | undefined; + tokenVotingAddress: BytesLike | undefined; + budgetAddress: BytesLike | undefined | null; + activeBudget: string | undefined; +} + +type Action = + | { type: "SET_DAO_ADDRESS"; payload: BytesLike } + | { type: "SET_TOKEN_VOTING_ADDRESS"; payload: BytesLike } + | { type: "SET_BUDGET_ADDRESS"; payload: BytesLike } + | { type: "SET_ACTIVE_BUDGET"; payload: string }; + +const globalStateReducer = (state: GlobalState, action: Action): GlobalState => { + switch (action.type) { + case "SET_DAO_ADDRESS": + return { ...state, daoAddress: action.payload }; + case "SET_TOKEN_VOTING_ADDRESS": + return { ...state, tokenVotingAddress: action.payload }; + case "SET_BUDGET_ADDRESS": + return { ...state, budgetAddress: action.payload }; + case "SET_ACTIVE_BUDGET": + return { ...state, activeBudget: action.payload }; + default: + return state; + } +}; + +interface GlobalStateContextType extends GlobalState { + dispatch: React.Dispatch; + setDaoAddress: (address: BytesLike) => void; + setTokenVotingAddress: (address: BytesLike) => void; + setBudgetAddress: (address: BytesLike) => void; + setActiveBudget: (budget: string) => void; + hasVoting: boolean; + hasBudget: boolean; + hasDao: boolean; +} + +export const GlobalStateContext = createContext(undefined); + +export const GlobalStateProvider: FC> = ({ children }) => { + const [state, dispatch] = useReducer(globalStateReducer, { + daoAddress: undefined, + tokenVotingAddress: undefined, + budgetAddress: undefined, + activeBudget: undefined, + }); + + const setDaoAddress = (address: BytesLike) => dispatch({ type: "SET_DAO_ADDRESS", payload: address }); + const setTokenVotingAddress = (address: BytesLike) => + dispatch({ type: "SET_TOKEN_VOTING_ADDRESS", payload: address }); + const setBudgetAddress = (address: BytesLike) => dispatch({ type: "SET_BUDGET_ADDRESS", payload: address }); + const setActiveBudget = (budget: string) => dispatch({ type: "SET_ACTIVE_BUDGET", payload: budget }); + + const hasVoting = Boolean(state.daoAddress); + const hasBudget = Boolean(state.budgetAddress); + const hasDao = Boolean(state.daoAddress); + + return ( + + {children} + + ); +}; + +export const useStore = (): GlobalStateContextType => { + const context = useContext(GlobalStateContext); + if (!context) throw new Error("useStore must be used within a GlobalStateProvider"); + + return context; +}; diff --git a/packages/hooks/src/lib/constants.ts b/packages/hooks/src/lib/constants.ts new file mode 100644 index 0000000..7344d29 --- /dev/null +++ b/packages/hooks/src/lib/constants.ts @@ -0,0 +1,5 @@ +import { BytesLike } from "../types"; + +export const subgraph = "https://subgraph.satsuma-prod.com/qHR2wGfc5RLi6/aragon/osx-goerli/version/v1.3.1/api"; +export const budgetRepoAddress: BytesLike = "0x9b72Af17B8aE55AE2F3C06E46A44D9bEaFb10801"; +export const pluginSetupProcessorAddress: BytesLike = "0xE8B5d8D66a02CD1b9Bd32a4064D7ABa45F51305e"; diff --git a/packages/hooks/src/lib/strings.ts b/packages/hooks/src/lib/strings.ts new file mode 100644 index 0000000..2c559f4 --- /dev/null +++ b/packages/hooks/src/lib/strings.ts @@ -0,0 +1,20 @@ +export function hexToBytes(inputHexString: string): Uint8Array { + let hexString = inputHexString; + if (!hexString) return new Uint8Array(); + else if (!/^(0x)?[0-9a-fA-F]*$/.test(hexString)) { + throw new Error("Invalid hex string"); + } else if (hexString.length % 2 !== 0) { + throw new Error("The hex string has an odd length"); + } + + hexString = hexString.startsWith("0x") ? hexString.substring(2) : hexString; + const bytes: number[] = []; + for (let i = 0; i < hexString.length; i += 2) { + bytes.push(parseInt(hexString.substring(i, i + 2), 16)); + } + return Uint8Array.from(bytes); +} + +export function stringifyWithBigInt(obj: any) { + return JSON.stringify(obj, (_, v) => (typeof v === "bigint" ? v.toString() : v), 2); +} diff --git a/packages/hooks/src/main.tsx b/packages/hooks/src/main.tsx new file mode 100644 index 0000000..4b592c7 --- /dev/null +++ b/packages/hooks/src/main.tsx @@ -0,0 +1,27 @@ +import * as React from "react"; +import * as ReactDOM from "react-dom/client"; +import { WagmiConfig } from "wagmi"; +import { ConnectKitProvider } from "connectkit"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; + +import { App } from "./App"; +import { config } from "./wagmi"; +const queryClient = new QueryClient(); + +import { GlobalStateProvider } from "./hooks/useStore"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + + + + + + + + + + + , +); diff --git a/packages/hooks/src/types/index.ts b/packages/hooks/src/types/index.ts new file mode 100644 index 0000000..692c632 --- /dev/null +++ b/packages/hooks/src/types/index.ts @@ -0,0 +1,29 @@ +export type BytesLike = `0x${string}`; + +export interface DAOAction { + to: BytesLike; + value: bigint; + data: BytesLike; +} + +export enum TimeUnit { + Inherit = "0x000000000000", + Daily = "0x010000000000", + Weekly = "0x020000000000", + Monthly = "0x030000000000", + Quarterly = "0x040000000000", + Semiyearly = "0x050000000000", + Yearly = "0x060000000000", + NonRecurrent = "0x070000000000", +} + +export interface BudgetInfo { + parentId: bigint; + amount: bigint; + spent: bigint; + token: string; + nextResetTime: string; + spender: string; + recurrency: bigint; + isDisabled: boolean; +} diff --git a/packages/hooks/src/types/schema.ts b/packages/hooks/src/types/schema.ts new file mode 100644 index 0000000..41d13c8 --- /dev/null +++ b/packages/hooks/src/types/schema.ts @@ -0,0 +1,17 @@ +import { isAddress } from "viem"; +import { z } from "zod"; +import { BytesLike, TimeUnit } from "."; + +export const EthAddress = z.string().refine((value) => isAddress(value), { + message: "Value must be a valid Ethereum address", +}) as unknown as z.ZodType; + +export const rootBudgetSchema = z.object({ + spender: EthAddress, + token: EthAddress, + amount: z.string().transform((value) => BigInt(value)), + recurrency: z.nativeEnum(TimeUnit), + name: z.string(), + // voteMetadata: EthAddress, +}); +export type RootBudgetFormType = z.infer; diff --git a/packages/hooks/src/vite-env.d.ts b/packages/hooks/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/hooks/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/hooks/src/wagmi.ts b/packages/hooks/src/wagmi.ts new file mode 100644 index 0000000..d7fb0e3 --- /dev/null +++ b/packages/hooks/src/wagmi.ts @@ -0,0 +1,15 @@ +import { getDefaultConfig } from "connectkit"; +import { createConfig } from "wagmi"; +import { foundry, polygonMumbai, goerli } from "wagmi/chains"; + +const walletConnectProjectId = "aa6a384ec72128564c94d1be7f81534d"; + +export const config = createConfig( + getDefaultConfig({ + autoConnect: true, + appName: "My wagmi + ConnectKit App", + walletConnectProjectId, + infuraId: import.meta.env.VITE_INFURA_API_KEY!, + chains: [goerli, foundry], + }) +); diff --git a/packages/hooks/tsconfig.json b/packages/hooks/tsconfig.json new file mode 100644 index 0000000..792e511 --- /dev/null +++ b/packages/hooks/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "allowJs": false, + "allowSyntheticDefaultImports": true, + "esModuleInterop": false, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "react-jsx", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "module": "ESNext", + "moduleResolution": "Node", + "noEmit": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "useDefineForClassFields": true + }, + "include": ["./src"] +} diff --git a/packages/hooks/vite.config.ts b/packages/hooks/vite.config.ts new file mode 100644 index 0000000..1cad8a4 --- /dev/null +++ b/packages/hooks/vite.config.ts @@ -0,0 +1,16 @@ +import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite' + +// https://vitejs.dev/config/ +export default defineConfig({ + define: { + global: 'globalThis', + }, + resolve: { + alias: { + process: 'process/browser', + util: 'util', + }, + }, + plugins: [react()], +}) diff --git a/packages/hooks/wagmi.config.ts b/packages/hooks/wagmi.config.ts new file mode 100644 index 0000000..f233b91 --- /dev/null +++ b/packages/hooks/wagmi.config.ts @@ -0,0 +1,17 @@ +import { defineConfig } from "@wagmi/cli"; +import { foundry, react } from "@wagmi/cli/plugins"; +import { budgetRepoAddress, pluginSetupProcessorAddress } from "./src/lib/constants"; + +export default defineConfig({ + out: "src/generated.ts", + plugins: [ + foundry({ + deployments: { + PluginRepo: budgetRepoAddress, + PluginSetupProcessor: pluginSetupProcessorAddress, + }, + project: "../contracts", + }), + react(), + ], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 464f747..93e69f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,468 +1,11102 @@ lockfileVersion: '6.0' -dependencies: - solhint: - specifier: ^3.6.2 - version: 3.6.2 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + packages/contracts: + dependencies: + solhint: + specifier: ^3.6.2 + version: 3.6.2 + devDependencies: + prettier: + specifier: ^3.0.0 + version: 3.0.0 + + packages/dapp: + dependencies: + '@dynamic-labs/ethereum': + specifier: ^0.19.1 + version: 0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9) + '@dynamic-labs/sdk-react-core': + specifier: ^0.19.1 + version: 0.19.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9) + '@dynamic-labs/wagmi-connector': + specifier: ^0.19.1 + version: 0.19.1(@dynamic-labs/sdk-react-core@0.19.1)(@dynamic-labs/types@0.19.1)(@wagmi/core@1.4.6)(react@18.2.0)(viem@1.18.9)(wagmi@1.4.6) + '@nextui-org/button': + specifier: 2.0.26 + version: 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/code': + specifier: 2.0.24 + version: 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/input': + specifier: 2.1.16 + version: 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/kbd': + specifier: 2.0.25 + version: 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/link': + specifier: 2.0.26 + version: 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/navbar': + specifier: 2.0.27 + version: 2.0.27(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react': + specifier: ^2.2.9 + version: 2.2.9(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18)(tailwindcss@3.3.5) + '@nextui-org/snippet': + specifier: 2.0.30 + version: 2.0.30(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/switch': + specifier: 2.0.25 + version: 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/system': + specifier: 2.0.15 + version: 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': + specifier: 2.1.17 + version: 2.1.17(tailwindcss@3.3.5) + '@react-aria/ssr': + specifier: ^3.8.0 + version: 3.9.0(react@18.2.0) + '@react-aria/visually-hidden': + specifier: ^3.8.6 + version: 3.8.7(react@18.2.0) + '@types/node': + specifier: 20.5.7 + version: 20.5.7 + '@types/react': + specifier: 18.2.21 + version: 18.2.21 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.16 + version: 10.4.16(postcss@8.4.31) + clsx: + specifier: ^2.0.0 + version: 2.0.0 + eslint: + specifier: 8.48.0 + version: 8.48.0 + eslint-config-next: + specifier: 14.0.2 + version: 14.0.2(eslint@8.48.0)(typescript@5.0.4) + framer-motion: + specifier: ^10.16.4 + version: 10.16.4(react-dom@18.2.0)(react@18.2.0) + intl-messageformat: + specifier: ^10.5.0 + version: 10.5.5 + next: + specifier: 14.0.2 + version: 14.0.2(react-dom@18.2.0)(react@18.2.0) + next-themes: + specifier: ^0.2.1 + version: 0.2.1(next@14.0.2)(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.31 + version: 8.4.31 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwind-variants: + specifier: ^0.1.18 + version: 0.1.18(tailwindcss@3.3.5) + tailwindcss: + specifier: 3.3.5 + version: 3.3.5 + typescript: + specifier: 5.0.4 + version: 5.0.4 + devDependencies: + pino-pretty: + specifier: ^10.2.3 + version: 10.2.3 + + packages/hooks: + dependencies: + '@aragon/osx-ethers': + specifier: 1.3.0-rc0.4 + version: 1.3.0-rc0.4 + '@aragon/sdk-client': + specifier: ^1.18.2 + version: 1.18.2 + '@aragon/sdk-client-common': + specifier: ^1.10.0 + version: 1.10.0 + '@hookform/resolvers': + specifier: ^3.3.2 + version: 3.3.2(react-hook-form@7.48.2) + '@tanstack/react-query': + specifier: ^5.7.0 + version: 5.7.0(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query-devtools': + specifier: ^5.7.0 + version: 5.7.0(@tanstack/react-query@5.7.0)(react-dom@18.2.0)(react@18.2.0) + '@wagmi/cli': + specifier: ^1.0.0 + version: 1.0.0(typescript@5.2.2)(wagmi@1.0.6) + buffer: + specifier: ^6.0.3 + version: 6.0.3 + connectkit: + specifier: ^1.4.0 + version: 1.4.0(@babel/core@7.23.2)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(viem@0.3.36)(wagmi@1.0.6) + graphql-request: + specifier: ^6.1.0 + version: 6.1.0(graphql@16.8.1) + process: + specifier: ^0.11.10 + version: 0.11.10 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-hook-form: + specifier: ^7.48.2 + version: 7.48.2(react@18.2.0) + util: + specifier: ^0.12.4 + version: 0.12.4 + viem: + specifier: ~0.3.36 + version: 0.3.36(typescript@5.2.2)(zod@3.22.4) + wagmi: + specifier: ^1.0.6 + version: 1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4) + zod: + specifier: ^3.22.4 + version: 3.22.4 + devDependencies: + '@types/react': + specifier: ^18.0.9 + version: 18.2.34 + '@types/react-dom': + specifier: ^18.0.3 + version: 18.2.14 + '@vitejs/plugin-react': + specifier: ^4.0.0 + version: 4.0.3(vite@4.3.5) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.31) + postcss: + specifier: ^8.4.31 + version: 8.4.31 + tailwindcss: + specifier: ^3.3.5 + version: 3.3.5 + typescript: + specifier: ^5.0.4 + version: 5.2.2 + vite: + specifier: ^4.3.5 + version: 4.3.5 + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: false + + /@adraffy/ens-normalize@1.9.0: + resolution: {integrity: sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==} + dev: false + + /@adraffy/ens-normalize@1.9.4: + resolution: {integrity: sha512-UK0bHA7hh9cR39V+4gl2/NnBBjoXIxkuWAPCaY4X7fbH4L/azIi7ilWOCjMUYfpJgraLUAqkRi2BqrjME8Rynw==} + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@aragon/osx-ethers@1.2.1: + resolution: {integrity: sha512-3Fscq8C9elIktiI6OT7fR5iaAvim+ghU6IUvZF3P/phvWm9roNp/GXAROhA/Vx41NQxeqmfXokgFo6KOWt4drA==} + dependencies: + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@aragon/osx-ethers@1.3.0-rc0.4: + resolution: {integrity: sha512-FDuF6LC1OLnjFK4C8+P4Wf0sORrrUQ/JtUAxL5ABVtBD8JpyyhtdWGDiv/yWIooLyC2l8aqbDLPuiYWhw1DjEQ==} + dependencies: + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@aragon/sdk-client-common@1.10.0: + resolution: {integrity: sha512-nWkTPA1Tzk2ULcf0lGbwyalZJkhKUnYN4cd4xQiwnEwvy6traYaw9HRB2sNUlEFgPrLIKIkgjGS9diZjXXW0xQ==} + engines: {node: '>=16'} + dependencies: + '@aragon/osx-ethers': 1.3.0-rc0.4 + '@aragon/osx-ethers-v1.0.0': /@aragon/osx-ethers@1.2.1 + '@aragon/sdk-ipfs': 1.1.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/wallet': 5.7.0 + graphql: 16.8.1 + graphql-request: 4.3.0(graphql@16.8.1) + yup: 1.3.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@aragon/sdk-client@1.18.2: + resolution: {integrity: sha512-ULzfJ0JrWYYUuD0f9E9wB7JBW3+D7O90ISbY8OSPfshpVB32YYzwefntWszqklVDSHewoAlGr2R/wobvO0nFCQ==} + engines: {node: '>=16'} + dependencies: + '@aragon/osx-ethers': 1.3.0-rc0.4 + '@aragon/sdk-client-common': 1.10.0 + '@aragon/sdk-ipfs': 1.1.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/wallet': 5.7.0 + '@openzeppelin/contracts': 4.9.3 + '@openzeppelin/contracts-upgradeable': 4.9.3 + graphql: 16.8.1 + graphql-request: 4.3.0(graphql@16.8.1) + yup: 1.3.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@aragon/sdk-ipfs@1.1.0: + resolution: {integrity: sha512-2uAh/QPcmaita4AfHYV93lESzAhrmGEZ6CL7pvOH86HTkU6j7LnePvD1ly+x0hxRznTb+zgVgSPPKUn0ArPycw==} + engines: {node: '>=16'} + dependencies: + '@web-std/fetch': 4.2.1 + '@web-std/file': 3.0.3 + '@web-std/form-data': 3.1.0 + isomorphic-unfetch: 3.1.0 + transitivePeerDependencies: + - encoding + dev: false + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + + /@babel/compat-data@7.23.2: + resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2(supports-color@5.5.0) + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: false + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.2 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + + /@babel/helpers@7.23.2: + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.2(supports-color@5.5.0) + '@babel/types': 7.23.0 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2): + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.2 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + + /@babel/traverse@7.23.2(supports-color@5.5.0): + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@coinbase/wallet-sdk@3.7.2: + resolution: {integrity: sha512-lIGvXMsgpsQWci/XOMQIJ2nIZ8JUy/L+bvC0wkRaYarr0YylwpXrJ2gRM3hCXPS477pkyO7N/kSiAoRgEXUdJQ==} + engines: {node: '>= 10.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + '@solana/web3.js': 1.87.3 + bind-decorator: 1.0.11 + bn.js: 5.2.1 + buffer: 6.0.3 + clsx: 1.2.1 + eth-block-tracker: 6.1.0 + eth-json-rpc-filters: 5.1.0 + eth-rpc-errors: 4.0.2 + json-rpc-engine: 6.1.0 + keccak: 3.0.4 + preact: 10.18.2 + qs: 6.11.2 + rxjs: 6.6.7 + sha.js: 2.4.11 + stream-browserify: 3.0.0 + util: 0.12.4 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + dev: false + + /@dynamic-labs/ethereum@0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9): + resolution: {integrity: sha512-asfiqGB3TiheyXUKn4Q+qm6FOMx9SbP0EElUE0P45YKoybT6jAoonXFqrl/zQMj8nVC9MQu+TnO/EnInNkC+Yw==} + peerDependencies: + viem: ^1.1.0 + dependencies: + '@coinbase/wallet-sdk': 3.7.2 + '@dynamic-labs/rpc-providers': 0.19.1(viem@1.18.9) + '@dynamic-labs/turnkey': 0.19.1(@dynamic-labs/logger@0.19.1)(eventemitter3@5.0.1)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9) + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@dynamic-labs/utils': 0.19.1(viem@1.18.9) + '@dynamic-labs/wallet-book': 0.19.1(react-dom@18.2.0)(react@18.2.0) + '@dynamic-labs/wallet-connector-core': 0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/rpc-providers@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(@dynamic-labs/utils@0.19.1)(@dynamic-labs/wallet-book@0.19.1)(eventemitter3@5.0.1) + '@walletconnect/client': 1.8.0 + '@walletconnect/ethereum-provider': 1.8.0 + '@walletconnect/universal-provider': 2.10.1 + buffer: 6.0.3 + eventemitter3: 5.0.1 + stream: 0.0.2 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - '@dynamic-labs/logger' + - '@dynamic-labs/sdk-api' + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - react + - react-dom + - supports-color + - utf-8-validate + dev: false + + /@dynamic-labs/iconic@0.1.37(react@18.2.0): + resolution: {integrity: sha512-q1PdVgbgD4QAvAORydM7LocI/q2POKlKD1Vu7zgrYK08AjjHHuXRF2nAv0FPJyVs93WN8lzJS5Fnq2D7AtSZtQ==} + peerDependencies: + react: ^17.0.2 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /@dynamic-labs/logger@0.19.1: + resolution: {integrity: sha512-GzoUrZMVWLJ++FlmAHIFrMGf95erOoP7qlZe/3OJt17evHoPxRPN+Lneig/UxoSEoFOqc/F/AyB+c6029RhGoQ==} + dev: false + + /@dynamic-labs/multi-wallet@0.19.1(@dynamic-labs/logger@0.19.1)(eventemitter3@5.0.1)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9): + resolution: {integrity: sha512-jUrU5Yxc4lwJIpfSr8y3UhGuKq6jP8cYiVF490tfEav1K0sdYq6N0CMupll5eDoZXb15HdpRHu7owLdNaKMBig==} + peerDependencies: + viem: ^1.1.0 + dependencies: + '@dynamic-labs/rpc-providers': 0.19.1(viem@1.18.9) + '@dynamic-labs/sdk-api': 0.0.292 + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@dynamic-labs/utils': 0.19.1(viem@1.18.9) + '@dynamic-labs/wallet-book': 0.19.1(react-dom@18.2.0)(react@18.2.0) + '@dynamic-labs/wallet-connector-core': 0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/rpc-providers@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(@dynamic-labs/utils@0.19.1)(@dynamic-labs/wallet-book@0.19.1)(eventemitter3@5.0.1) + tslib: 2.4.1 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - '@dynamic-labs/logger' + - bufferutil + - encoding + - eventemitter3 + - react + - react-dom + - utf-8-validate + dev: false + + /@dynamic-labs/rpc-providers@0.19.1(viem@1.18.9): + resolution: {integrity: sha512-dRGrAsnu1tcyg83BbvxucHw4T6QkZsJ6QJi4UB8rwoC371fMIeM7qZYzeF45OZKHcQaLcOBDC55Rjf+K44qafQ==} + peerDependencies: + viem: ^1.1.0 + dependencies: + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@solana/web3.js': 1.70.1 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@dynamic-labs/sdk-api@0.0.292: + resolution: {integrity: sha512-7UAt/KVNws0C1E5/N9yNRvxvYJ/ec5VV+k0f9dCtmQ63XRfgwM5ZXaTe2KlezE5KqJcgEAkXp67llomh6ImfcA==} + dev: false + + /@dynamic-labs/sdk-react-core@0.19.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9): + resolution: {integrity: sha512-zcaqJjEtQJiJtPJ+Ie/ylgVptfL0pQUielIFOVjHYSCTFBmKXN1H5i6LbWKx6hUklVKPqxWxAHG2hDy1vz9Scw==} + peerDependencies: + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + viem: ^1.1.0 + dependencies: + '@dynamic-labs/iconic': 0.1.37(react@18.2.0) + '@dynamic-labs/logger': 0.19.1 + '@dynamic-labs/multi-wallet': 0.19.1(@dynamic-labs/logger@0.19.1)(eventemitter3@5.0.1)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9) + '@dynamic-labs/rpc-providers': 0.19.1(viem@1.18.9) + '@dynamic-labs/sdk-api': 0.0.292 + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@dynamic-labs/utils': 0.19.1(viem@1.18.9) + '@dynamic-labs/wallet-book': 0.19.1(react-dom@18.2.0)(react@18.2.0) + '@dynamic-labs/wallet-connector-core': 0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/rpc-providers@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(@dynamic-labs/utils@0.19.1)(@dynamic-labs/wallet-book@0.19.1)(eventemitter3@5.0.1) + '@hcaptcha/react-hcaptcha': 1.4.4(react-dom@18.2.0)(react@18.2.0) + country-list: 2.3.0 + eventemitter3: 5.0.1 + formik: 2.2.9(react@18.2.0) + i18next: 23.7.3 + qrcode: 1.5.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-focus-lock: 2.9.2(@types/react@18.2.21)(react@18.2.0) + react-i18next: 13.4.0(i18next@23.7.3)(react-dom@18.2.0)(react@18.2.0) + viem: 1.18.9(typescript@5.0.4) + yup: 0.32.11 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - encoding + - react-native + - utf-8-validate + dev: false + + /@dynamic-labs/turnkey@0.19.1(@dynamic-labs/logger@0.19.1)(eventemitter3@5.0.1)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9): + resolution: {integrity: sha512-lLPymdyhjrylK6ywINlZPsj6N4JUtIWpvWTNe0YuP1k/UwsP99gt4EFYt43SujvNPuUQ2JqXGWrOuy6XQ2oZnQ==} + peerDependencies: + viem: ^1.1.0 + dependencies: + '@dynamic-labs/rpc-providers': 0.19.1(viem@1.18.9) + '@dynamic-labs/sdk-api': 0.0.292 + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@dynamic-labs/utils': 0.19.1(viem@1.18.9) + '@dynamic-labs/wallet-book': 0.19.1(react-dom@18.2.0)(react@18.2.0) + '@dynamic-labs/wallet-connector-core': 0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/rpc-providers@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(@dynamic-labs/utils@0.19.1)(@dynamic-labs/wallet-book@0.19.1)(eventemitter3@5.0.1) + '@turnkey/http': 1.3.0 + '@turnkey/viem': 0.2.7(viem@1.18.9) + '@turnkey/webauthn-stamper': 0.1.0 + tldts: 6.0.19 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - '@dynamic-labs/logger' + - bufferutil + - encoding + - eventemitter3 + - react + - react-dom + - utf-8-validate + dev: false + + /@dynamic-labs/types@0.19.1(viem@1.18.9): + resolution: {integrity: sha512-wk0AapjSTzoqL/H1ZyY0Ur/cTnCfTG3b4/i4GLcWx/su4l/3si8n7ZJqt1it8MwuqDZP6cdAe7CmGNPEsxRF1A==} + peerDependencies: + viem: ^1.1.0 + dependencies: + '@dynamic-labs/sdk-api': 0.0.292 + viem: 1.18.9(typescript@5.0.4) + dev: false + + /@dynamic-labs/utils@0.19.1(viem@1.18.9): + resolution: {integrity: sha512-WkWh4ETpVZ2qygLima0sT3SaECwMufe0WlLjUHeegoAZ9lHu18Loty62pyvhtPK8unV1ABGMhv9DZ2vztgi52g==} + peerDependencies: + viem: ^1.5.3 + dependencies: + '@dynamic-labs/logger': 0.19.1 + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + viem: 1.18.9(typescript@5.0.4) + dev: false + + /@dynamic-labs/wagmi-connector@0.19.1(@dynamic-labs/sdk-react-core@0.19.1)(@dynamic-labs/types@0.19.1)(@wagmi/core@1.4.6)(react@18.2.0)(viem@1.18.9)(wagmi@1.4.6): + resolution: {integrity: sha512-hIN32+q/xXR1k6WknFp0HqbVVUbnP2eJr3vgXrGpQUnkeMFiYB0xmR/olV1APoy8vComtCt8Assh68+EZ5g6dA==} + peerDependencies: + '@dynamic-labs/sdk-react-core': 0.19.1 + '@dynamic-labs/types': 0.19.1 + '@wagmi/core': ^1.3.0 + react: ^17.0.2 || ^18.0.0 + viem: ^1.1.0 + wagmi: ^1.2.0 + dependencies: + '@dynamic-labs/sdk-react-core': 0.19.1(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(viem@1.18.9) + '@dynamic-labs/types': 0.19.1(viem@1.18.9) + '@wagmi/core': 1.4.6(@types/react@18.2.21)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9) + react: 18.2.0 + viem: 1.18.9(typescript@5.0.4) + wagmi: 1.4.6(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9) + dev: false + + /@dynamic-labs/wallet-book@0.19.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TtAostc4HoesJ3PAD8Fpxpt6nQIqCSd19hQPPELH3Ly4W6lcmnrU4UF1QPMvNvmnQNmLv9uKLgzducrU2450tw==} + peerDependencies: + react: ^17.0.2 || ^18.0.0 + react-dom: ^17.0.2 || ^18.0.0 + dependencies: + '@dynamic-labs/logger': 0.19.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + zod: 3.22.4 + dev: false + + /@dynamic-labs/wallet-connector-core@0.19.1(@dynamic-labs/logger@0.19.1)(@dynamic-labs/rpc-providers@0.19.1)(@dynamic-labs/sdk-api@0.0.292)(@dynamic-labs/utils@0.19.1)(@dynamic-labs/wallet-book@0.19.1)(eventemitter3@5.0.1): + resolution: {integrity: sha512-oAEmqXQVdad+I5WR59iN+bFHS6o8ZWxHeClY1FSHkWaxMHCVmhFkdgI+MNa6YzT10E1FtPUSL8nKmccmyM2RdA==} + peerDependencies: + '@dynamic-labs/logger': 0.19.1 + '@dynamic-labs/rpc-providers': 0.19.1 + '@dynamic-labs/sdk-api': 0.0.292 + '@dynamic-labs/utils': 0.19.1 + '@dynamic-labs/wallet-book': 0.19.1 + eventemitter3: 5.0.1 + dependencies: + '@dynamic-labs/logger': 0.19.1 + '@dynamic-labs/rpc-providers': 0.19.1(viem@1.18.9) + '@dynamic-labs/sdk-api': 0.0.292 + '@dynamic-labs/utils': 0.19.1(viem@1.18.9) + '@dynamic-labs/wallet-book': 0.19.1(react-dom@18.2.0)(react@18.2.0) + eventemitter3: 5.0.1 + dev: false + + /@emotion/is-prop-valid@0.8.8: + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + requiresBuild: true + dependencies: + '@emotion/memoize': 0.7.4 + dev: false + optional: true + + /@emotion/is-prop-valid@1.2.1: + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + + /@emotion/memoize@0.7.4: + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + requiresBuild: true + dev: false + optional: true + + /@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + dev: false + + /@emotion/stylis@0.8.5: + resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} + dev: false + + /@emotion/unitless@0.7.5: + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + dev: false + + /@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.15.13: + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64@0.15.13: + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.48.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@5.5.0) + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@eslint/js@8.48.0: + resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@ethersproject/abi@5.7.0: + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + + /@ethersproject/abstract-provider@5.7.0: + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + dev: false + + /@ethersproject/abstract-signer@5.7.0: + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + dev: false + + /@ethersproject/address@5.7.0: + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + dev: false + + /@ethersproject/base64@5.7.0: + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + dependencies: + '@ethersproject/bytes': 5.7.0 + dev: false + + /@ethersproject/basex@5.7.0: + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/properties': 5.7.0 + dev: false + + /@ethersproject/bignumber@5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + dev: false + + /@ethersproject/bytes@5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + dependencies: + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/constants@5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + dev: false + + /@ethersproject/contracts@5.7.0: + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + dev: false + + /@ethersproject/hash@5.7.0: + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + + /@ethersproject/hdnode@5.7.0: + resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + dev: false + + /@ethersproject/json-wallets@5.7.0: + resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + dev: false + + /@ethersproject/keccak256@5.7.0: + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + dev: false + + /@ethersproject/logger@5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + dev: false + + /@ethersproject/networks@5.7.1: + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + dependencies: + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/pbkdf2@5.7.0: + resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/sha2': 5.7.0 + dev: false + + /@ethersproject/properties@5.7.0: + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + dependencies: + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/providers@5.7.2: + resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + bech32: 1.1.4 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@ethersproject/random@5.7.0: + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/rlp@5.7.0: + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/sha2@5.7.0: + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + dev: false + + /@ethersproject/signing-key@5.7.0: + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + dev: false + + /@ethersproject/solidity@5.7.0: + resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + + /@ethersproject/strings@5.7.0: + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/transactions@5.7.0: + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + dev: false + + /@ethersproject/units@5.7.0: + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + dev: false + + /@ethersproject/wallet@5.7.0: + resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + dev: false + + /@ethersproject/web@5.7.1: + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + + /@ethersproject/wordlists@5.7.0: + resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + dev: false + + /@formatjs/ecma402-abstract@1.17.3: + resolution: {integrity: sha512-2Q4hmKQ6CM30mRG/YMdSBW8LXf32BfuOb1FZgG+uVWPC/SQMoiVFz5JaeOukt96v6TZ4ddE+bHCmd611PW38QA==} + dependencies: + '@formatjs/intl-localematcher': 0.5.0 + tslib: 2.6.2 + dev: false + + /@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} + dependencies: + tslib: 2.6.2 + dev: false + + /@formatjs/icu-messageformat-parser@2.7.1: + resolution: {integrity: sha512-ErnXyRdk8AlpGcKskKVYn23aAlWXhI1kt5ek2o3pJwVeMTcrosSESQ8baztdTtJjfQHlB4NBeocfRA5C6DKv2g==} + dependencies: + '@formatjs/ecma402-abstract': 1.17.3 + '@formatjs/icu-skeleton-parser': 1.6.3 + tslib: 2.6.2 + dev: false + + /@formatjs/icu-skeleton-parser@1.6.3: + resolution: {integrity: sha512-Viggz4Pic7oC4uR8z2VroL8H9boiUTTB0TqEsiRb6DHZv7QEcg1BoVQZBkBdLmvxhBS7nwBNrTdbaiW8GOV58Q==} + dependencies: + '@formatjs/ecma402-abstract': 1.17.3 + tslib: 2.6.2 + dev: false + + /@formatjs/intl-localematcher@0.5.0: + resolution: {integrity: sha512-K1Xpg/8oyfCMxisJQa/fILoeoeyndcM0wcN8QiNG/uM5OAe1BcO1+2yd0gIboDI2tRJEsUi/sSBEYPbgkIdq4A==} + dependencies: + tslib: 2.6.2 + dev: false + + /@graphql-typed-document-node/core@3.2.0(graphql@16.8.1): + resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + graphql: 16.8.1 + dev: false + + /@hcaptcha/react-hcaptcha@1.4.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Aen217LDnf5ywbPSwBG5CsoqBLIHIAS9lhj3zQjXJuO13doQ6/ubkCWNuY8jmwYLefoFt3V3MrZmCdKDaFoTuQ==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@hookform/resolvers@3.3.2(react-hook-form@7.48.2): + resolution: {integrity: sha512-Tw+GGPnBp+5DOsSg4ek3LCPgkBOuOgS5DsDV7qsWNH9LZc433kgsWICjlsh2J9p04H2K66hsXPPb9qn9ILdUtA==} + peerDependencies: + react-hook-form: ^7.0.0 + dependencies: + react-hook-form: 7.48.2(react@18.2.0) + dev: false + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4(supports-color@5.5.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: false + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: false + + /@internationalized/date@3.5.0: + resolution: {integrity: sha512-nw0Q+oRkizBWMioseI8+2TeUPEyopJVz5YxoYVzR0W1v+2YytiYah7s/ot35F149q/xAg4F1gT/6eTd+tsUpFQ==} + dependencies: + '@swc/helpers': 0.5.3 + dev: false + + /@internationalized/message@3.1.1: + resolution: {integrity: sha512-ZgHxf5HAPIaR0th+w0RUD62yF6vxitjlprSxmLJ1tam7FOekqRSDELMg4Cr/DdszG5YLsp5BG3FgHgqquQZbqw==} + dependencies: + '@swc/helpers': 0.5.3 + intl-messageformat: 10.5.5 + dev: false + + /@internationalized/number@3.4.0: + resolution: {integrity: sha512-8TvotW3qVDHC4uv/BVoN6Qx0Dm8clHY1/vpH+dh+XRiPW/9NVpKn1P8d1A+WLphWrMwyqyWXI7uWehJPviaeIw==} + dependencies: + '@swc/helpers': 0.5.3 + dev: false + + /@internationalized/string@3.1.1: + resolution: {integrity: sha512-fvSr6YRoVPgONiVIUhgCmIAlifMVCeej/snPZVzbzRPxGpHl3o1GRe+d/qh92D8KhgOciruDUH8I5mjdfdjzfA==} + dependencies: + '@swc/helpers': 0.5.3 + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@json-rpc-tools/provider@1.7.6: + resolution: {integrity: sha512-z7D3xvJ33UfCGv77n40lbzOYjZKVM3k2+5cV7xS8G6SCvKTzMkhkUYuD/qzQUNT4cG/lv0e9mRToweEEVLVVmA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/utils': 1.7.6 + axios: 0.21.4 + safe-json-utils: 1.1.1 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + /@json-rpc-tools/types@1.7.6: + resolution: {integrity: sha512-nDSqmyRNEqEK9TZHtM15uNnDljczhCUdBmRhpNZ95bIPKEDQ+nTDmGMFd2lLin3upc5h2VVVd9tkTDdbXUhDIQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + keyvaluestorage-interface: 1.0.0 + dev: false + + /@json-rpc-tools/utils@1.7.6: + resolution: {integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/types': 1.7.6 + '@pedrouid/environment': 1.0.1 + dev: false + + /@ledgerhq/connect-kit-loader@1.1.2: + resolution: {integrity: sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A==} + dev: false + + /@lit-labs/ssr-dom-shim@1.1.2: + resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} + dev: false + + /@lit/reactive-element@1.6.3: + resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.2 + dev: false + + /@metamask/safe-event-emitter@2.0.0: + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + dev: false + + /@metamask/utils@3.6.0: + resolution: {integrity: sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@types/debug': 4.1.10 + debug: 4.3.4(supports-color@5.5.0) + semver: 7.5.4 + superstruct: 1.0.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@motionone/animation@10.16.3: + resolution: {integrity: sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==} + dependencies: + '@motionone/easing': 10.16.3 + '@motionone/types': 10.16.3 + '@motionone/utils': 10.16.3 + tslib: 2.6.2 + dev: false + + /@motionone/dom@10.12.0: + resolution: {integrity: sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==} + dependencies: + '@motionone/animation': 10.16.3 + '@motionone/generators': 10.16.4 + '@motionone/types': 10.16.3 + '@motionone/utils': 10.16.3 + hey-listen: 1.0.8 + tslib: 2.6.2 + dev: false + + /@motionone/dom@10.16.4: + resolution: {integrity: sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==} + dependencies: + '@motionone/animation': 10.16.3 + '@motionone/generators': 10.16.4 + '@motionone/types': 10.16.3 + '@motionone/utils': 10.16.3 + hey-listen: 1.0.8 + tslib: 2.6.2 + dev: false + + /@motionone/easing@10.16.3: + resolution: {integrity: sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==} + dependencies: + '@motionone/utils': 10.16.3 + tslib: 2.6.2 + dev: false + + /@motionone/generators@10.16.4: + resolution: {integrity: sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==} + dependencies: + '@motionone/types': 10.16.3 + '@motionone/utils': 10.16.3 + tslib: 2.6.2 + dev: false + + /@motionone/svelte@10.16.4: + resolution: {integrity: sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==} + dependencies: + '@motionone/dom': 10.16.4 + tslib: 2.6.2 + dev: false + + /@motionone/types@10.16.3: + resolution: {integrity: sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==} + dev: false + + /@motionone/utils@10.16.3: + resolution: {integrity: sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==} + dependencies: + '@motionone/types': 10.16.3 + hey-listen: 1.0.8 + tslib: 2.6.2 + dev: false + + /@motionone/vue@10.16.4: + resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==} + dependencies: + '@motionone/dom': 10.16.4 + tslib: 2.6.2 + dev: false + + /@next/env@14.0.2: + resolution: {integrity: sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA==} + dev: false + + /@next/eslint-plugin-next@14.0.2: + resolution: {integrity: sha512-APrYFsXfAhnysycqxHcpg6Y4i7Ukp30GzVSZQRKT3OczbzkqGjt33vNhScmgoOXYBU1CfkwgtXmNxdiwv1jKmg==} + dependencies: + glob: 7.1.7 + dev: false + + /@next/swc-darwin-arm64@14.0.2: + resolution: {integrity: sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@14.0.2: + resolution: {integrity: sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@14.0.2: + resolution: {integrity: sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@14.0.2: + resolution: {integrity: sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@14.0.2: + resolution: {integrity: sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@14.0.2: + resolution: {integrity: sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@14.0.2: + resolution: {integrity: sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@14.0.2: + resolution: {integrity: sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@14.0.2: + resolution: {integrity: sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@nextui-org/accordion@2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-WzD7sscL+4K0TFyUutTn1AhU0wcS68TqNCTNv7KgON6ODdwieydilMxAyXvwo3RgXeWG+8BbdxJC/6W+/iLBTg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/divider': 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-accordion': 2.0.2(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/button': 3.9.0(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tree': 3.7.4(react@18.2.0) + '@react-types/accordion': 3.0.0-alpha.17(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/aria-utils@2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-4M4jeJ/ghGaia9064yS+mEZ3sFPH80onmjNGWJZkkZDmUV4R88lNkqe/XYBK1tbxfl4Kxa8jc/ALsZkUkkvR5w==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-rsc-utils': 2.0.10 + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@nextui-org/theme' + - tailwind-variants + dev: false + + /@nextui-org/autocomplete@2.0.9(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-ViPXrZnP35k7LF+TBA4w8nqu0OEj9p1z9Rt7rwrACmY2VmDGY6h6a6nDCMjhuTVXptftRvzxfIPsIyzBYqxb0g==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/button': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/input': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/listbox': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/popover': 2.1.14(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/scroll-shadow': 2.1.12(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/spinner': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@react-aria/combobox': 3.8.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/combobox': 3.8.0(react@18.2.0) + '@react-types/combobox': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/avatar@2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3QUn8v61iNvAYogUbEDVnhDjBK6WBxxFYLp95a0H52zN0p2LHXe+UNwdGZYFo5QNWx6CHGH3vh2AHlLLy3WFSQ==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-image': 2.0.4(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/badge@2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-FA3XgqEbyKWepMXqMZg7D+1IRf7flrb2LzFvTbkmsbvWQ4yYz1LqJXZ/HDmoCydvh2pOnc+1zPK3BpB7vGrrwA==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/breadcrumbs@2.0.4(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SAE0+QRgA7vxUHPL65TKz3MRj7u2mbSwk8Eifkwo6hPcF0d34zv2QDupTGyphIjoGCSrQHFIq/CPAkXyaOXZxw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/breadcrumbs': 3.5.8(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/breadcrumbs': 3.7.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/button@2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-mDrSII1oneY4omwDdxUhl5oLa3AhoWCchwV/jt7egunnAFie32HbTqfFYGpLGiJw3JMMh3WDUthrI1islVTRKA==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/ripple': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/spinner': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@react-aria/button': 3.9.0(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/card@2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-16uAS0i6+EO+u8aqtmaCXatjovsyuTq51JwCLBlB67OldfgXoYcYl3GaE2VoZdEwxVu1G/qypDfXv29k46nZuA==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/ripple': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@react-aria/button': 3.9.0(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/checkbox@2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-X6WkwPbZlDvioEcXF6HhKH21wD6OK+3+FSroKkzMPQLJrj2KYUIYGbiuw9rT9aCtdjbT+6HUCv+FA8/cBQr7cA==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/checkbox': 3.12.0(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/checkbox': 3.6.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/chip@2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-hfVSaq5JWzGn97s3K2Ac/xOopHWelaUW3eus0O0wns/6+NCI0QUjgwNt2bAQSNvnE6vjvYLJTqGG/jFHyFJjOg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/code@2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-Kw/uOQtdytRWY99zMQuGHqMAAGXWBAxHlyMMge1OCckpadCDfX6plPjqoS18SGM0orJ4fox+a1FM8VhnRQ2kQw==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/divider@2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-yEvHqYlhNBwmF68pfjJKdzC8gVQtL+txxD5COBGF9uFyfxA5hVw2D6GmYgOH514bxrFBuWOLcQX6gyljgcN3bA==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-rsc-utils': 2.0.10 + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/dropdown@2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-3KINNvC7Cz+deQltCM8gaB7iJCfU4Qsp1fwnoy1wUEjeZhEtPOPR59oTyqT+gPaPIisP1+LLOfcqRl4jNQoVXw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/menu': 2.0.17(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/popover': 2.1.14(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/menu': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/framer-transitions@2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-UlWMCAFdrq8wKrYFGwc+O4kFhKCkL4L9ZadBkP0PqjmfyAC2gA3ygRbNqtKhFMWeKbBAiC8qQ9aTBEA/+0r/EA==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@nextui-org/theme' + - tailwind-variants + dev: false + + /@nextui-org/image@2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bps5D5ki7PoLldb8wcJEf6C4EUFZm3PocLytNaGa7dNxFfaCOD78So+kq+K+0IRusK3yn94K8r31qMvpI3Gg2Q==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-image': 2.0.4(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/input@2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nUTlAvsXj5t88ycvQdICxf78/pko6Wznx2OomvYjb3E45eb77twQcWUDhydkJCWIh3b4AhGHSMM6GYxwWUgMDA==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/textfield': 3.13.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/textfield': 3.9.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-textarea-autosize: 8.5.3(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@nextui-org/kbd@2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-cYwbEjp/+/tjtOdmiRy2UHjfBhP3bqd5e+JFTa5sY1HotckUZrCintATyBcg9bPa3iSPUI44M6Cb9e0oAUUeMA==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/utils': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/link@2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-X8zX3U5MWfiStOCd45oIZ2YKZG0GoUio6PcMFYjpOPsEG7wV58CuhUSxpyx3QTF8JavVSO/p/cl4Pc9pukVDUg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-link': 2.0.15(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/link': 3.6.2(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/link': 3.5.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/listbox@2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-5PmUCoHFgAr+1nAU3IlqPFTgyHo7zsTcNeja4wcErD/KseCF2h7Uk5OqUX5hQDN9B9fZuGjPrkG4yoK/6pqcUQ==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/divider': 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@nextui-org/use-is-mobile': 2.0.6(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/listbox': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/menu@2.0.17(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-qr/BPDbBvg5tpAZZLkLx8eNnvYwJYM3Q72fmRYbzwmG3upNtdjln0QYxSwPXUz7RYqTKEFWc9JPxq2pgPM15Wg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/divider': 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@nextui-org/use-is-mobile': 2.0.6(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/menu': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-stately/tree': 3.7.4(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/modal@2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-unfP0EMF3FDg5CkRqou03s4/BopWbaBTeVIMZeA2A1WF5teHUOmpLdp44Z1KOoWB1RVMDVd4JeoauNHNhJMp0g==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@nextui-org/use-aria-modal-overlay': 2.0.6(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/use-disclosure': 2.0.6(react@18.2.0) + '@react-aria/dialog': 3.5.8(react-dom@18.2.0)(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/navbar@2.0.27(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-iP4Pn4ItQkAW1nbu1Jmrh5l9pMVG43lDxq9rbx6DbLjLnnZOOrE6fURb8uN5NVy3ooV5dF02zKAoxlkE5fN/xw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-toggle-button': 2.0.6(react@18.2.0) + '@nextui-org/use-scroll-position': 2.0.4(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/pagination@2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OVpkpXqUKRuMRIcYESBAL95d3pqZ17SKAyNINMiJ/DwWnrzJu/LXGmFwTuYRoBdqHFlm7guGqZbHmAkcS/Fgow==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@nextui-org/use-pagination': 2.0.4(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.0.10 + dev: false + + /@nextui-org/popover@2.1.14(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-fqqktFQ/chIBS9Y3MghL6KX6qAy3hodtXUDchnxLa1GL+oi6TCBLUjo+wgI5EMJrTTbqo/eFLui/Ks00JfCj+A==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/button': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@react-aria/dialog': 3.5.8(react-dom@18.2.0)(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/progress@2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-RPVsFCF8COFClS/8PqEepzryhDFtIcJGQLu/P+qAr7jIDlXizXaBDrp0X34GVtQsapNeE9ExxX9Kt+QIspuHHQ==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-is-mounted': 2.0.4(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/progress': 3.4.8(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/progress': 3.5.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/radio@2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vRX0ppM5Tlzu0HoqTG6LdmQnMjk8RRl66BH1+QaosvZRXA1iIdA3BduqQYqn5ZZHBBlJ2u9QzaD3lTAlWIHvNg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/radio': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/radio': 3.10.0(react@18.2.0) + '@react-types/radio': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/react-rsc-utils@2.0.10: + resolution: {integrity: sha512-LNePDEThUF9PAbJW4T8k7EgSfqwlvGku5fIqJ1IA9+OpVy5LqhrUQehjvgXe63N1RupC7Pt+XvaaxkGu9U2FiQ==} + dev: false + + /@nextui-org/react-utils@2.0.10(react@18.2.0): + resolution: {integrity: sha512-bcA+k7ZdcgcK+r/8nrCtbdgHo0SD6jicbazWIokknFwjb97JQ7ooaMwxnLt5E5sswCAv0XeLwybOmrgm7JA5TA==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/react-rsc-utils': 2.0.10 + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/react@2.2.9(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18)(tailwindcss@3.3.5): + resolution: {integrity: sha512-QHkUQTxI9sYoVjrvTpYm5K68pMDRqD13+DVzdsrkJuETGhbvE2c2CCGc4on9EwXC3JsOxuP/OyqaAmOIuHhYkA==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/accordion': 2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/autocomplete': 2.0.9(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/avatar': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/badge': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/breadcrumbs': 2.0.4(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/button': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/card': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/checkbox': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/chip': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/code': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/divider': 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/dropdown': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/image': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/input': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/kbd': 2.0.25(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/link': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/listbox': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/menu': 2.0.17(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/modal': 2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/navbar': 2.0.27(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/pagination': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/popover': 2.1.14(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/progress': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/radio': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/ripple': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/scroll-shadow': 2.1.12(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/select': 2.1.20(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/skeleton': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/slider': 2.2.5(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/snippet': 2.0.30(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/spacer': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/spinner': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/switch': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/table': 2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/tabs': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/tooltip': 2.0.29(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/user': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + - tailwindcss + dev: false + + /@nextui-org/ripple@2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PCvAk9ErhmPX46VRmhsg8yMxw3Qd9LY7BDkRRfIF8KftgRDyOpG2vV8DxvSOxQu1/aqBWkkHNUuEjM/EvSEung==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/scroll-shadow@2.1.12(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-uxT8D+WCWeBy4xaFDfqVpBgjjHZUwydXsX5HhbzZCBir/1eRG5GMnUES3w98DSwcUVadG64gAVsyGW4HmSZw1Q==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-data-scroll-overflow': 2.1.2(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/select@2.1.20(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-GCO9uzyYnFIdJTqIe6aDe2NnYlclcdYfZnECFAze/R2MW0jpoysk5ysGBDjVDmZis6tLu+BOFXJbIlYEi+LoUQ==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/listbox': 2.1.16(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/popover': 2.1.14(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(@types/react@18.2.21)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/scroll-shadow': 2.1.12(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/spinner': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@nextui-org/use-aria-multiselect': 2.1.3(react-dom@18.2.0)(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - tailwind-variants + dev: false + + /@nextui-org/shared-icons@2.0.6(react@18.2.0): + resolution: {integrity: sha512-Mw5utPJAclFaeKAZowznEgabI5gdhXrW0iMaMA18Y4zcZRTidAc0WFeGYUlX876NxYLPc1Zk4bZUhQvMe+7uWg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/shared-utils@2.0.4(react@18.2.0): + resolution: {integrity: sha512-Ms7A6UCvo/SZt/9Nmb7cZwHe9fZFw+EPsieTnC1vtpvDNCasxrTB0hj9VWFoYfWOaCzzqxl1AL9maIz/gMvckQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/skeleton@2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-bsb+lYugSfQV3RHrEHLbHhkkeslaxybnnT4z485Y/GBYTENOiHIOnWFWntfxCbjZ6vCewGlfgnphj6zeqlk20g==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/slider@2.2.5(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-dC6HHMmtn2WvxDmbY/Dq51XJjQ7cAnjZsuYVIvhwIiCLDG8QnEIhmYN0DQp/6oeZsCHnyMHC4DmtgOiJL0eXrQ==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/tooltip': 2.0.29(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/slider': 3.7.3(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/slider': 3.4.5(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - framer-motion + - tailwind-variants + dev: false + + /@nextui-org/snippet@2.0.30(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-8hKxqKpbJIMqFVedzYj90T4td+TkWdOdyYD9+VjywMdezAjsWdr8tqQj7boaMFjVNVSG+Pnw55Pgg/vkpc21aw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/button': 2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/tooltip': 2.0.29(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/use-clipboard': 2.0.4(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/spacer@2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-bLnhPRnoyHQXhLneHjbRqZNxJWMFOBYOZkuX83uy59/FFUY07BcoNsb2s80tN3GoVxsaZ2jB6NxxVbaCJwoPog==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/spinner@2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-s/q2FmxGPNEqA0ifWfc7xgs5a5D9c3xKkxL3n7jDoRnWo0NPlRsa6QRJGiSL5dHNoUqspRf/lNw2V94Bxk86Pg==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/switch@2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-U7g68eReMSkgG0bBOSdzRLK+npv422YK6WYHpYOSkEBDqGwQ7LCeMRQreT/KxN0QFxIKmafebdLHAbuKc/X+5Q==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/switch': 3.5.7(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/system-rsc@2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-1QqZ+GM7Ii0rsfSHXS6BBjzKOoLIWwb72nm4h4WgjlMXbRKLZcCQasRHVe5HMSBMvN0JUo7qyGExchfDFl/Ubw==} + peerDependencies: + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + tailwind-variants: '>=0.1.13' + dependencies: + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + clsx: 1.2.1 + react: 18.2.0 + tailwind-variants: 0.1.18(tailwindcss@3.3.5) + dev: false + + /@nextui-org/system@2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-WFDq+Rx6D+gmK1YGEG2RBARPK9EOYonQDt5Tq2tUchzOOqj3kXXcM5Z0F3fudM59eIncLa/tX/ApJSTLry+hsw==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/system-rsc': 2.0.11(@nextui-org/theme@2.1.17)(react@18.2.0)(tailwind-variants@0.1.18) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@nextui-org/theme' + - tailwind-variants + dev: false + + /@nextui-org/table@2.0.28(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-qH/7jdV5+tiMDDvBfMrUZN4jamds0FsL5Ak+ighoKIUYRFTSXOroi+63ZzzAh/mZAsUALCPPcfbXt4r4aBFDzg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/checkbox': 2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-icons': 2.0.6(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/spacer': 2.0.24(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/table': 3.13.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/table': 3.11.3(react@18.2.0) + '@react-stately/virtualizer': 3.6.5(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/table': 3.9.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/tabs@2.0.26(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-GjERgBYUAY1KD4GqNVy0cRi6GyQnf62q0ddcN4je3sEM6rsq3PygEXhkN5pxxFPacoYM/UE6rBswHSKlbjJjgw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@nextui-org/use-is-mounted': 2.0.4(react@18.2.0) + '@nextui-org/use-update-effect': 2.0.4(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/tabs': 3.8.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tabs': 3.6.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tabs': 3.3.4(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.0.10 + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/theme@2.1.17(tailwindcss@3.3.5): + resolution: {integrity: sha512-/WeHcMrAcWPGsEVn9M9TnvxKkaYkCocBH9JrDYCEFQoJgleUzHd4nVk7MWtpSOYJXLUzUMY1M9AqAK3jBkw+5g==} + peerDependencies: + tailwindcss: '*' + dependencies: + color: 4.2.3 + color2k: 2.0.2 + deepmerge: 4.3.1 + flat: 5.0.2 + lodash.foreach: 4.5.0 + lodash.get: 4.4.2 + lodash.kebabcase: 4.1.1 + lodash.mapkeys: 4.6.0 + lodash.omit: 4.5.0 + tailwind-variants: 0.1.18(tailwindcss@3.3.5) + tailwindcss: 3.3.5 + dev: false + + /@nextui-org/tooltip@2.0.29(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18): + resolution: {integrity: sha512-LaFyS5bXhcZFXP9rnh6pTKsYX6siWjzEe5z72FIOyAV2yvv2yhkRiO/mEHKI8moo+/tScW/6muFXsvbEalPefg==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/aria-utils': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/framer-transitions': 2.0.15(@nextui-org/theme@2.1.17)(framer-motion@10.16.4)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/tooltip': 3.6.5(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tooltip': 3.4.6(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/tooltip': 3.4.6(react@18.2.0) + framer-motion: 10.16.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - tailwind-variants + dev: false + + /@nextui-org/use-aria-accordion@2.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ebYr4CdvWifuTM/yyhQLKCa7aUqbVrWyR0SB6VNCGDID/kvRUW52puWnY9k24xdwY0cKbW3JRciKtQkrokRQwg==} + peerDependencies: + react: '>=18' + dependencies: + '@react-aria/button': 3.9.0(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tree': 3.7.4(react@18.2.0) + '@react-types/accordion': 3.0.0-alpha.17(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + transitivePeerDependencies: + - react-dom + dev: false + + /@nextui-org/use-aria-button@2.0.6(react@18.2.0): + resolution: {integrity: sha512-38DZ3FK/oPZ3sppfM5EtgJ4DITOajNwSKkAMePBmuSZl+bsW7peP8g5JNd9uPOEz3edCOppT60AQSICsYiH3cg==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-aria-link@2.0.15(react@18.2.0): + resolution: {integrity: sha512-znzOeTZ10o3O5F2nihi8BR8rAhRHgrRWcEBovV7OqJeFzvTQwsHl9/xy45zBfwJQksBtfcBfQf+GEHXeDwfigA==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-aria-press': 2.0.1(react@18.2.0) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/link': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-aria-modal-overlay@2.0.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JfhXvH2RObWpHeLmxdIBDPF2SDzV4SqBvEh01yRvg/EuZ3HDRfCnTDh+5HD0ziUVdk/kWuy/hZLX59sMX7QHWA==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/use-aria-multiselect@2.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OM1lj2jdl0Q2Zme/ds6qyT4IIGsBJSGNjvkM6pEnpdyoej/HwTKsSEpEFTDGJ5t9J9DWWCEt3hz0uJxOPnZ66Q==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/listbox': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/menu': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/select': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@nextui-org/use-aria-press@2.0.1(react@18.2.0): + resolution: {integrity: sha512-T3MjHH5TU9qnkf872GmhcfQK16ITMmMW9zir6xsSsz0w6ay9Y0XTSPrI2zRL6ociFyfJjP840XCLtSx6VBfEBQ==} + peerDependencies: + react: '>=18' + dependencies: + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/ssr': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-aria-toggle-button@2.0.6(react@18.2.0): + resolution: {integrity: sha512-6Sjp7a0HQjmboLKNZu9AtZmyHz8+vhqcDwJDYTZjrrna0udxEXG+6C14YZzQxoJcvuaMimr5E8Aq0AxyRAr0MQ==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-aria-button': 2.0.6(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-callback-ref@2.0.4(react@18.2.0): + resolution: {integrity: sha512-GF50SzOFU/R0gQT1TmjbEUiS8CQ87qiV5Rp/TD5pqys1xprVgGLUUNQzlh+YDS2JHNu5FGlZc4sJKhtf2xF5aw==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-safe-layout-effect': 2.0.4(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-clipboard@2.0.4(react@18.2.0): + resolution: {integrity: sha512-rMcaX0QsolOJ1BQbp1T/FVsSPn2m0Ss4Z+bbdS7eM6EFKtJdVJWlpbrST0/kR2UcW1KWeK27NYmtNPF5+hgZMA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/use-data-scroll-overflow@2.1.2(react@18.2.0): + resolution: {integrity: sha512-3h9QX+dWkfqnqciQc2KeeR67e77hobjefNHGBTDuB4LhJSJ180ToZH09SQNHaUmKRLTU/RABjGWXxdbORI0r6g==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-disclosure@2.0.6(react@18.2.0): + resolution: {integrity: sha512-pazzLsAGKjUD4cMVySTivItmIgpsfIf4baP/02K0Xc8tbFAH4K1n7cUnEEjs+MTXy1Bprvz3pfAHDGZRDI1yYg==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-callback-ref': 2.0.4(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-image@2.0.4(react@18.2.0): + resolution: {integrity: sha512-tomOkrhlhTA45qA/MLh1YmiWVGgJ2KeM0qBSLP1ikVcppc/e9UtkIJjHIGdNCnHZTjoPEh53HzyJeUMlYUM9uw==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/use-safe-layout-effect': 2.0.4(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-is-mobile@2.0.6(react@18.2.0): + resolution: {integrity: sha512-HeglWUoq6Ln8P5n6s1SZvBRatLYMKsiXQM7Mk2l+6jFByzZh3VWtZ05xmuX8te/1rGmeUxjeXtW6x+F7/f/JoA==} + peerDependencies: + react: '>=18' + dependencies: + '@react-aria/ssr': 3.9.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-is-mounted@2.0.4(react@18.2.0): + resolution: {integrity: sha512-NSQwQjg8+k02GVov9cDwtAdop1Cr90eDgB0MAdvu7QCMgfBZjy88IdQnx3Yo7bG4wP45xC0vLjqDBanaK+11hw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/use-pagination@2.0.4(react@18.2.0): + resolution: {integrity: sha512-EETHzhh+LW8u2bm93LkUABbu0pIoWBCeY8hmvgjhhNMkILuwZNGYnp9tdF2rcS2P4KDlHQkIQcoiOGrGMqBUaQ==} + peerDependencies: + react: '>=18' + dependencies: + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + react: 18.2.0 + dev: false + + /@nextui-org/use-safe-layout-effect@2.0.4(react@18.2.0): + resolution: {integrity: sha512-K7ppEhTfzdVOzbgKaNFEBi4HwRfQ8j+kRBQqsU5yo8bSM+5uv8OUy/mjpEf4i02PUDIBmsgJC4En9S537DXrwg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/use-scroll-position@2.0.4(react@18.2.0): + resolution: {integrity: sha512-5ugiHqQ1OptBmujOsJGigbUt/rQ826+8RKYSpBp1uax1eF7TlpigXt6mS1PDsJIyEauHi8rjH5B3weOn1//tug==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/use-update-effect@2.0.4(react@18.2.0): + resolution: {integrity: sha512-HycSl9Eopmy3ypZQxXVR7eov2D0q0zcgldgbIPvlKExbj8OInaIImc9zLMI9oQgfmg/YdvLeFSrfwc5BPrIvlg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@nextui-org/user@2.0.25(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ykh65O0ynJBlstlZowM8KrX6zv/VLfDgYX892Dk0goLwU8gcSILPZE7yGIBZi1XsNN7mE3dmTp/APLFDbkzzXw==} + peerDependencies: + '@nextui-org/system': '>=2.0.0' + '@nextui-org/theme': '>=2.1.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@nextui-org/avatar': 2.0.24(@nextui-org/system@2.0.15)(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0) + '@nextui-org/react-utils': 2.0.10(react@18.2.0) + '@nextui-org/shared-utils': 2.0.4(react@18.2.0) + '@nextui-org/system': 2.0.15(@nextui-org/theme@2.1.17)(react-dom@18.2.0)(react@18.2.0)(tailwind-variants@0.1.18) + '@nextui-org/theme': 2.1.17(tailwindcss@3.3.5) + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@noble/curves@1.0.0: + resolution: {integrity: sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==} + dependencies: + '@noble/hashes': 1.3.0 + dev: false + + /@noble/curves@1.2.0: + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} + dependencies: + '@noble/hashes': 1.3.2 + dev: false + + /@noble/ed25519@1.7.3: + resolution: {integrity: sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==} + dev: false + + /@noble/hashes@1.3.0: + resolution: {integrity: sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==} + dev: false + + /@noble/hashes@1.3.2: + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} + dev: false + + /@noble/secp256k1@1.7.1: + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@openzeppelin/contracts-upgradeable@4.9.3: + resolution: {integrity: sha512-jjaHAVRMrE4UuZNfDwjlLGDxTHWIOwTJS2ldnc278a0gevfXfPr8hxKEVBGFBE96kl2G3VHDZhUimw/+G3TG2A==} + dev: false + + /@openzeppelin/contracts@4.9.3: + resolution: {integrity: sha512-He3LieZ1pP2TNt5JbkPA4PNT9WC3gOTOlDcFGJW4Le4QKqwmiNJCRt44APfxMxvq7OugU/cqYuPcSBzOw38DAg==} + dev: false + + /@pedrouid/environment@1.0.1: + resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} + dev: false + + /@react-aria/breadcrumbs@3.5.8(react@18.2.0): + resolution: {integrity: sha512-jeek23igeqXct7S3ShW2jtFUc5g3fS9ZEBZkF64FWBrwfCiaZwb8TcKkK/xFw36/q5mxEt+seNiqnNzvsICJuQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/link': 3.6.2(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/breadcrumbs': 3.7.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/button@3.9.0(react@18.2.0): + resolution: {integrity: sha512-Jri4OCN+4YmpJDPNQvk1DJoskKD9sdTxZaWWWJdAwoSIunZk3IEBXVvRfKzsEAVtI+UJN25zC2kyjXbVPS2XAA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/checkbox@3.12.0(react@18.2.0): + resolution: {integrity: sha512-CyFZoI+z9hhyB3wb7IBsZxE30vXfYO2vSyET16zlkJ4qiFMqMiVLE4ekq034MHltCdpAczgP5yfKgNnJOmj7vQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/form': 3.0.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/toggle': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/checkbox': 3.6.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/combobox@3.8.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lInzzZrH4vFlxmvDpXgQRkkREm7YIx258IRpQqll8Bny2vKMmZoF06zWMbcHP0CjFqYxExQeTjSYx0OTRRxkCQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/listbox': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/menu': 3.11.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/textfield': 3.13.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/combobox': 3.8.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/combobox': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/dialog@3.5.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KIc1FORdHhZ3bWom4qHO0hmlL4e5Hup6N25EY8HP5I7Ftv9EBBGaO5grtxZ2fX8kiCJNI4y+k67ZZ71wKJvMiA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/dialog': 3.5.7(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/focus@3.15.0(react@18.2.0): + resolution: {integrity: sha512-nnxRyfqHuAjRwdQ4BpQyZPtGFKZmRU6cnaIb3pqWFCqEyJQensV7MA3TJ4Jhadq67cy1Ji5SYSlr1duBwjoYvw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + clsx: 1.2.1 + react: 18.2.0 + dev: false + + /@react-aria/form@3.0.0(react@18.2.0): + resolution: {integrity: sha512-APeGph9oTO8nro4ZObuy1hk+0hpF/ji9O3odPGhLkzP/HvW2J7NI9pjKJOINfgtYr2yvVUZf/MbTMxPwtAxhaQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/grid@3.8.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0p+Bbs9rpQeOy8b75DamlzVPKylBoe/z0XwkeeTChHP2TK3TwPXh6J5EmisQx6K8zsb3iZULQRcP4QibvnMbrg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/grid': 3.8.3(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-stately/virtualizer': 3.6.5(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/i18n@3.9.0(react@18.2.0): + resolution: {integrity: sha512-ebGP/sVG0ZtNF4RNFzs/W01tl7waYpBManh1kKWgA4roDPFt/odkgkDBzKGl+ggBb7TQRHsfUFHuqKsrsMy9TA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@internationalized/date': 3.5.0 + '@internationalized/message': 3.1.1 + '@internationalized/number': 3.4.0 + '@internationalized/string': 3.1.1 + '@react-aria/ssr': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/interactions@3.20.0(react@18.2.0): + resolution: {integrity: sha512-JCCEyK2Nb4mEHucrgmqhTHTNAEqhsiM07jJmmY22eikxnCQnsEfdwXyg9cgZLG79D5V7jyqVRqOp2OsG7Qx7kQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/label@3.7.3(react@18.2.0): + resolution: {integrity: sha512-v1zuqbpYyYaPjrBWpceGjMpwP4ne6fLoOXdoIZoKLux2jkAcyIF2kIJFiyYoPQYQJWGRNo7q1oSwamxmng4xJw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/link@3.6.2(react@18.2.0): + resolution: {integrity: sha512-v9gXgQ3Gev0JOlg2MAXcubDMgX+0BlJ+hTyFYFMuN/4jVBlAe426WKbjg+6MMzxwukWg9C3Q08JzqdFTi4cBng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/link': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/listbox@3.11.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FXdoqYLUTJn16OxodyS518PIcwzFkCfW5bxQepoy88NDMGtqp6u8fvEPpAoZbomvw/pV9MuEaMAw9qLyfkD4DA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-types/listbox': 3.4.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/live-announcer@3.3.1: + resolution: {integrity: sha512-hsc77U7S16trM86d+peqJCOCQ7/smO1cybgdpOuzXyiwcHQw8RQ4GrXrS37P4Ux/44E9nMZkOwATQRT2aK8+Ew==} + dependencies: + '@swc/helpers': 0.5.3 + dev: false + + /@react-aria/menu@3.11.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-I4R5FOvRtwIQW+0naXav5giZBp935X2tXB2xBg/cSAYDXgfLmFPLHkyPbO77hR6FwazfFfJoKdn0pVcRox3lrQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/overlays': 3.19.0(react-dom@18.2.0)(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-stately/tree': 3.7.4(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/overlays@3.19.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VN5GkB8+uZ2cfXljBtkqmrsAhBdGoj4un/agH0Qyihi2dazsMeafczSNnqzbpVgB4Zt2UHPJUkKwihgzXRxJJA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/ssr': 3.9.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/button': 3.9.1(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/progress@3.4.8(react@18.2.0): + resolution: {integrity: sha512-Nah3aj5BNRa0+urQZimzb0vuKQK7lsc8BrUwJuHTwGRBSWUjCADExrJYdhDIR/nLUV2TCmAQl+GJtTgbEEj0DQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/progress': 3.5.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/radio@3.9.0(react@18.2.0): + resolution: {integrity: sha512-kr3+OQ1YU/3mURZfCsYaQmJ/c15qOm8uScaDRC39qz97bLNASakQqMImIaS+GluPKx1PEW3y2ErAgLplH28zZw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/form': 3.0.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/radio': 3.10.0(react@18.2.0) + '@react-types/radio': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/selection@3.17.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AXXY3eOIWnITabMn6c0bpLPXkSX7040LOZU+7pQgtZJwDdZorLuKw4i7WS5i71LcV71ywG4mtqc9mOb/GfhUbg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/slider@3.7.3(react@18.2.0): + resolution: {integrity: sha512-AbrTD9UzMn0CwxFjOhJHz2ms2zdJlBL3XnbvqkpsmpXUl0u8WT1QAEaMnS5+792gnSGZs/ARDmse53o+IO8wTA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/slider': 3.4.5(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/slider': 3.7.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/ssr@3.9.0(react@18.2.0): + resolution: {integrity: sha512-Bz6BqP6ZorCme9tSWHZVmmY+s7AU8l6Vl2NUYmBzezD//fVHHfFo4lFBn5tBuAaJEm3AuCLaJQ6H2qhxNSb7zg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/switch@3.5.7(react@18.2.0): + resolution: {integrity: sha512-zBEsB071zzhQ82RwAA42pFLXHgrpya0OoRAsTO6jHZwiaYMsyqJI2eiXd7F6rqklpgyO6k7jOQklGUuoSJW4pA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/toggle': 3.9.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/switch': 3.5.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/table@3.13.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bJgMx2SZ8SFmTosbv6k1lZ1a0Yw3f8tzWhpIQodCaMHhtI7izA6YqDNx47NeBNYpVm9DFfAoWbb79HFJ+OKIJA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/grid': 3.8.5(react-dom@18.2.0)(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/live-announcer': 3.3.1 + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-aria/visually-hidden': 3.8.7(react@18.2.0) + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/flags': 3.0.0 + '@react-stately/table': 3.11.3(react@18.2.0) + '@react-stately/virtualizer': 3.6.5(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/table': 3.9.1(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/tabs@3.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-zDfeEEyJmcnH9TFvJECWIrJpxX4SmREFV1/P8hN6ZUJPYoeiGMXYYFvjcRb1r3LN8XKlbwR37AQ3Cn1/yhrUwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/i18n': 3.9.0(react@18.2.0) + '@react-aria/selection': 3.17.2(react-dom@18.2.0)(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tabs': 3.6.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tabs': 3.3.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@react-aria/textfield@3.13.0(react@18.2.0): + resolution: {integrity: sha512-sUlinDE+k/WhbskyqVOkuffuhiQpjgvp+iGRoralStVgb8Tcb+POxgAlw5jS4tNjdivCb3IjVJemUNJM7xsxxA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/form': 3.0.0(react@18.2.0) + '@react-aria/label': 3.7.3(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/textfield': 3.9.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/toggle@3.9.0(react@18.2.0): + resolution: {integrity: sha512-2YMWYQUEmcoAXtrAE86QXBS9XlmJyV6IFRlMTBNaeLTdH3AmACExgsyU66Tt0sKl6LMDMI376ItMFqAz27BBdQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/toggle': 3.7.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/tooltip@3.6.5(react@18.2.0): + resolution: {integrity: sha512-hXw4Z8nYLOWz3QOQ807wWZdvDwR3gofsmZhAehg2HPRwdRfCQK+1cjVKeUd9cKCAxs0Cay7dV0oUdilLbCQ2Gg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/focus': 3.15.0(react@18.2.0) + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-stately/tooltip': 3.4.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tooltip': 3.4.6(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-aria/utils@3.22.0(react@18.2.0): + resolution: {integrity: sha512-Qi/m65GFFljXA/ayj1m5g3KZdgbZY3jacSSqD5vNUOEGiKsn4OQcsw8RfC2c0SgtLV1hLzsfvFI1OiryPlGCcw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/ssr': 3.9.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + clsx: 1.2.1 + react: 18.2.0 + dev: false + + /@react-aria/visually-hidden@3.8.7(react@18.2.0): + resolution: {integrity: sha512-OuIGMVQIt7GC43h4x35BgkZid8lhoPu7Xz4TQRP8nvOJWb1lH7ehrRRuGdUsK3y90nwpxTdNdg4DILblg+VaLw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/interactions': 3.20.0(react@18.2.0) + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/checkbox@3.6.0(react@18.2.0): + resolution: {integrity: sha512-e1ChMwGovcOEDcdizqXDT6eDZixIMiPQOzNV5wPQ91SlGaIry9b0lQnK18tHg3yv2iiS6Ipj96cGBUKLJqQ+cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/collections@3.10.3(react@18.2.0): + resolution: {integrity: sha512-fA28HIApAIz9sNGeOVXZJPgV5Kig6M72KI1t9sUbnRUr9Xq9OMJTR6ElDMXNe0iTeZffRFDOPYyqnX9zkxof6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/combobox@3.8.0(react@18.2.0): + resolution: {integrity: sha512-F74Avf7+8ruRqEB+3Lh6/C5jXc3ESJbRf9ovUxhmNAzBGeFKesPn5HpEpo87C+3OukGb+/Buvi3Rhib9+HVBKA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-stately/select': 3.6.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/combobox': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/flags@3.0.0: + resolution: {integrity: sha512-e3i2ItHbIa0eEwmSXAnPdD7K8syW76JjGe8ENxwFJPW/H1Pu9RJfjkCb/Mq0WSPN/TpxBb54+I9TgrGhbCoZ9w==} + dependencies: + '@swc/helpers': 0.4.36 + dev: false + + /@react-stately/form@3.0.0(react@18.2.0): + resolution: {integrity: sha512-C8wkfFmtx1escizibhdka5JvTy9/Vp173CS9cakjvWTmnjYYC1nOlzwp7BsYWTgerCFbRY/BU/Cf/bJDxPiUKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/grid@3.8.3(react@18.2.0): + resolution: {integrity: sha512-JceGSJcuO6Zv+Aq5s2NZvmbMjdPjTtGNQR9kTgXKC/pOfM6FJ58bJiOmEllyN6oawqh4Ey8Xdqk9NuW4l2ctuw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/list@3.10.1(react@18.2.0): + resolution: {integrity: sha512-iVarLMd7FmMT0H20dRWsFOHHX5+c4gK51AXP2BSr1VtDSfbL4dgaGgu7IaAMVc/rO0au1e1tPM2hutiIFvPcnA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/menu@3.5.7(react@18.2.0): + resolution: {integrity: sha512-bzTmAqzcMNatvyruWlvOdZSmMhz3+mkdxtqaZzYHq+DpR6ka57lIRj8dBnZWQGwV3RypMZfz+X6aIX4kruGVbw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/menu': 3.9.6(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/overlays@3.6.4(react@18.2.0): + resolution: {integrity: sha512-tHEaoAGpE9dSnsskqLPVKum59yGteoSqsniTopodM+miQozbpPlSjdiQnzGLroy5Afx5OZYClE616muNHUILXA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/overlays': 3.8.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/radio@3.10.0(react@18.2.0): + resolution: {integrity: sha512-d8IgZtUq/4vhE7YhyBVg1QdVoFS0caIcvPumXqtp/5vlDgpUsVy9jSeWtbk0H4FyUcmJlQhRcTylKB9THXY1YQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/radio': 3.6.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/select@3.6.0(react@18.2.0): + resolution: {integrity: sha512-GvSE4DXmcvdRNUc+ciPU7gedt7LfRO8FFFIzhB/bCQhUlK6/xihUPrGXayzqxLeTQKttMH323LuYFKfwpJRhsA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/form': 3.0.0(react@18.2.0) + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-stately/menu': 3.5.7(react@18.2.0) + '@react-types/select': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/selection@3.14.1(react@18.2.0): + resolution: {integrity: sha512-96/CerrB6yH4Ad9FkzBzyVerSPjcIj1NBTWTFHo1N+oHECvyGsDxZl7Y4LQR++teFK66FhX5KjCJQGae4IZd6A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/slider@3.4.5(react@18.2.0): + resolution: {integrity: sha512-lJPZC8seYbnZDqAlZm3/QC95I5iluG8ouwkPMmvtWCz1baayV/jJtfxA/74zR7Vcob9Fe7O57g8Edhz/hv9xOQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/slider': 3.7.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/table@3.11.3(react@18.2.0): + resolution: {integrity: sha512-r0rzSKbtMG4tjFpCGtXb8p6hOuek03c6rheJE88z4I/ujZ5EmEO6Ps8q0JMNEDCY2qigvKM+ODisMBeZCEkIJg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/flags': 3.0.0 + '@react-stately/grid': 3.8.3(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/table': 3.9.1(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/tabs@3.6.2(react@18.2.0): + resolution: {integrity: sha512-f+U4D1FAVfVVcNRbtKIv4GrO37CLFClYQlXx9zIuSXjHsviapVD2IQSyAmpKo/CbgXhYRMdGwENZdOsmF/Ns7g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/list': 3.10.1(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@react-types/tabs': 3.3.4(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/toggle@3.7.0(react@18.2.0): + resolution: {integrity: sha512-TRksHkCJk/Xogq4181g3CYgJf+EfsJCqX5UZDSw1Z1Kgpvonjmdf6FAfQfCh9QR2OuXUL6hOLUDVLte5OPI+5g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/checkbox': 3.6.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/tooltip@3.4.6(react@18.2.0): + resolution: {integrity: sha512-uL93bmsXf+OOgpKLPEKfpDH4z+MK2CuqlqVxx7rshN0vjWOSoezE5nzwgee90+RpDrLNNNWTNa7n+NkDRpI1jA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/overlays': 3.6.4(react@18.2.0) + '@react-types/tooltip': 3.4.6(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/tree@3.7.4(react@18.2.0): + resolution: {integrity: sha512-0yvVODBS8WnSivLFX5ccEjCl2NA/8lbEt1E48wVcY1xcXgISNpw5MSGK5jC6YrtJPIqVolQIkNSbMreXGBktIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-stately/collections': 3.10.3(react@18.2.0) + '@react-stately/selection': 3.14.1(react@18.2.0) + '@react-stately/utils': 3.9.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/utils@3.9.0(react@18.2.0): + resolution: {integrity: sha512-yPKFY1F88HxuZ15BG2qwAYxtpE4HnIU0Ofi4CuBE0xC6I8mwo4OQjDzi+DZjxQngM9D6AeTTD6F1V8gkozA0Gw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-stately/virtualizer@3.6.5(react@18.2.0): + resolution: {integrity: sha512-v0cZeNCGPMeo3LP4UrGuDo3Xpq7ufNaZyGObgSvdrIW49qK5F02kczcKy6NKg+QfOgC/+Nc9Tof/2S8dcxDrCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-aria/utils': 3.22.0(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + '@swc/helpers': 0.5.3 + react: 18.2.0 + dev: false + + /@react-types/accordion@3.0.0-alpha.17(react@18.2.0): + resolution: {integrity: sha512-Wsp31bYRu9wy4zAAV2W8FLvVGFF3Vk/JKn2MxqhzaSHwHBw/dfgJTvRRUW+OmBgnqVN97ur893TP9A3odpoZEg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/breadcrumbs@3.7.2(react@18.2.0): + resolution: {integrity: sha512-esl6RucDW2CNMsApJxNYfMtDaUcfLlwKMPH/loYsOBbKxGl2HsgVLMcdpjEkTRs2HCTNCbBXWpeU8AY77t+bsw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/link': 3.5.2(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/button@3.9.1(react@18.2.0): + resolution: {integrity: sha512-bf9iTar3PtqnyV9rA+wyFyrskZKhwmOuOd/ifYIjPs56YNVXWH5Wfqj6Dx3xdFBgtKx8mEVQxVhoX+WkHX+rtw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/checkbox@3.6.0(react@18.2.0): + resolution: {integrity: sha512-vgbuJzQpVCNT5AZWV0OozXCnihqrXxoZKfJFIw0xro47pT2sn3t5UC4RA9wfjDGMoK4frw1K/4HQLsQIOsPBkw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/combobox@3.9.0(react@18.2.0): + resolution: {integrity: sha512-VAQWM2jrIWROgcTKxj4k37WWpK/1zRjj1HfGeuenAQyOQwImqDwCHx5YxQR1GiUEFne4v1yXe2khT0T5Kt2vDg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/dialog@3.5.7(react@18.2.0): + resolution: {integrity: sha512-geYoqAyQaTLG43AaXdMUVqZXYgkSifrD9cF7lR2kPAT0uGFv0YREi6ieU+aui8XJ83EW0xcxP+EPWd2YkN4D4w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/grid@3.2.3(react@18.2.0): + resolution: {integrity: sha512-GQM4RDmYhstcYZ0Odjq+xUwh1fhLmRebG6qMM8OXHTPQ77nhl3wc1UTGRhZm6mzEionplSRx4GCpEMEHMJIU0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/link@3.5.2(react@18.2.0): + resolution: {integrity: sha512-/s51/WejmpLiyxOgP89s4txgxYoGaPe8pVDItVo1h4+BhU1Puyvgv/Jx8t9dPvo6LUXbraaN+SgKk/QDxaiirw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/listbox@3.4.6(react@18.2.0): + resolution: {integrity: sha512-XOQvrTqNh5WIPDvKiWiep8T07RAsMfjAXTjDbnjxVlKACUXkcwpts9kFaLnJ9LJRFt6DwItfP+WMkzvmx63/NQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/menu@3.9.6(react@18.2.0): + resolution: {integrity: sha512-w/RbFInOf4nNayQDv5c2L8IMJbcFOkBhsT3xvvpTy+CHvJcQdjggwaV1sRiw7eF/PwB81k2CwigmidUzHJhKDg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/overlays@3.8.4(react@18.2.0): + resolution: {integrity: sha512-pfgNlQnbF6RB/R2oSxyqAP3Uzz0xE/k5q4n5gUeCDNLjY5qxFHGE8xniZZ503nZYw6VBa9XMN1efDOKQyeiO0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/progress@3.5.1(react@18.2.0): + resolution: {integrity: sha512-CqsUjczUK/SfuFzDcajBBaXRTW0D3G9S/yqLDj9e8E0ii+lGDLt1PHj24t1J7E88U2rVYqmM9VL4NHTt8o3IYA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/radio@3.6.0(react@18.2.0): + resolution: {integrity: sha512-VOZzegxxZS55gHRVyWu278Q4y/rEQGiAVQCUqi25GmpbMe4MlHrzg16c76RiZMUK9PPoyv+XNUgAaPmxebkn7g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/select@3.9.0(react@18.2.0): + resolution: {integrity: sha512-0nalGmcoma4jreICLSJae/uKAuMiVyWgqWjGrGiUGGcdDchH4limKVEqNDaBwLvxVT6NB5LLsaipCTCAEEl4Rg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/shared@3.22.0(react@18.2.0): + resolution: {integrity: sha512-yVOekZWbtSmmiThGEIARbBpnmUIuePFlLyctjvCbgJgGhz8JnEJOipLQ/a4anaWfzAgzSceQP8j/K+VOOePleA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /@react-types/slider@3.7.0(react@18.2.0): + resolution: {integrity: sha512-uyQXUVFfqc9SPUW0LZLMan2n232F/OflRafiHXz9viLFa9tVOupVa7GhASRAoHojwkjoJ1LjFlPih7g5dOZ0/Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/switch@3.5.0(react@18.2.0): + resolution: {integrity: sha512-/wNmUGjk69bP6t5k2QkAdrNN5Eb9Rz4dOyp0pCPmoeE+5haW6sV5NmtkvWX1NSc4DQz1xL/a5b+A0vxPCP22Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/table@3.9.1(react@18.2.0): + resolution: {integrity: sha512-3e+Oouw9jGqNDg+JRg7v7fgPqDZd6DtST9S/UPp81f32ntnQ8Wsu7S/J4eyLHu5CVQDqcHkf4xPeeXBgPx4qmw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/grid': 3.2.3(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/tabs@3.3.4(react@18.2.0): + resolution: {integrity: sha512-4mCTtFrwMRypyGTZCvNYVT9CkknexO/UYvqwDm2jMYb8JgjRvxnomu776Yh7uyiYKWyql2upm20jqasEOm620w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/textfield@3.9.0(react@18.2.0): + resolution: {integrity: sha512-D/DiwzsfkwlAg3uv8hoIfwju+zhB/hWDEdTvxQbPkntDr0kmN/QfI17NMSzbOBCInC4ABX87ViXLGxr940ykGA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@react-types/tooltip@3.4.6(react@18.2.0): + resolution: {integrity: sha512-RaZewdER7ZcsNL99RhVHs8kSLyzIBkwc0W6eFZrxST2MD9J5GzkVWRhIiqtFOd5U1aYnxdJ6woq72Ef+le6Vfw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + dependencies: + '@react-types/overlays': 3.8.4(react@18.2.0) + '@react-types/shared': 3.22.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@rushstack/eslint-patch@1.5.1: + resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} + dev: false + + /@safe-global/safe-apps-provider@0.15.2: + resolution: {integrity: sha512-BaoGAuY7h6jLBL7P+M6b7hd+1QfTv8uMyNF3udhiNUwA0XwfzH2ePQB13IEV3Mn7wdcIMEEUDS5kHbtAsj60qQ==} + dependencies: + '@safe-global/safe-apps-sdk': 7.9.0 + events: 3.3.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@safe-global/safe-apps-provider@0.17.1(typescript@5.0.4): + resolution: {integrity: sha512-lYfRqrbbK1aKU1/UGkYWc/X7PgySYcumXKc5FB2uuwAs2Ghj8uETuW5BrwPqyjBknRxutFbTv+gth/JzjxAhdQ==} + dependencies: + '@safe-global/safe-apps-sdk': 8.0.0(typescript@5.0.4) + events: 3.3.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + + /@safe-global/safe-apps-sdk@7.11.0: + resolution: {integrity: sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.13.2 + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@safe-global/safe-apps-sdk@7.9.0: + resolution: {integrity: sha512-S2EI+JL8ocSgE3uGNaDZCzKmwfhtxXZFDUP76vN0FeaY35itFMyi8F0Vhxu0XnZm3yLzJE3tp5px6GhuQFLU6w==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.13.2 + ethers: 5.7.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@safe-global/safe-apps-sdk@8.0.0(typescript@5.0.4): + resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.13.2 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + + /@safe-global/safe-apps-sdk@8.1.0(typescript@5.0.4): + resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==} + dependencies: + '@safe-global/safe-gateway-typescript-sdk': 3.13.2 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + + /@safe-global/safe-gateway-typescript-sdk@3.13.2: + resolution: {integrity: sha512-kGlJecJHBzGrGTq/yhLANh56t+Zur6Ubpt+/w03ARX1poDb4TM8vKU3iV8tuYpk359PPWp+Qvjnqb9oW2YQcYw==} + engines: {node: '>=16'} + dev: false + + /@scure/base@1.1.3: + resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} + dev: false + + /@scure/bip32@1.3.0: + resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==} + dependencies: + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@scure/bip32@1.3.2: + resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} + dependencies: + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@scure/bip39@1.2.0: + resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==} + dependencies: + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@scure/bip39@1.2.1: + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + dependencies: + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.3 + dev: false + + /@solana/buffer-layout@4.0.1: + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + dependencies: + buffer: 6.0.3 + dev: false + + /@solana/web3.js@1.70.1: + resolution: {integrity: sha512-AnaqCF1cJ3w7d0yhvLGAKAcRI+n5o+ursQihhoTe4cUh8/9d4gbT73SoHYElS7e67OtAgLmSfbcC5hcOAgdvnQ==} + engines: {node: '>=12.20.0'} + dependencies: + '@babel/runtime': 7.23.2 + '@noble/ed25519': 1.7.3 + '@noble/hashes': 1.3.2 + '@noble/secp256k1': 1.7.1 + '@solana/buffer-layout': 4.0.1 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.1 + fast-stable-stringify: 1.0.0 + jayson: 3.7.0 + node-fetch: 2.7.0 + rpc-websockets: 7.6.2 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@solana/web3.js@1.87.3: + resolution: {integrity: sha512-WGLzTZpi00vP443qGK3gL+LZXQJwaWkh6bzNXYpMTCAH2Z102y3YbPWOoQzJUeRSZWSXKh7MFkA3vDMFlMvGZQ==} + dependencies: + '@babel/runtime': 7.23.2 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.0 + node-fetch: 2.7.0 + rpc-websockets: 7.6.2 + superstruct: 0.14.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@solidity-parser/parser@0.16.1: + resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + dependencies: + antlr4ts: 0.5.0-alpha.4 + dev: false + + /@stablelib/aead@1.0.1: + resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} + dev: false + + /@stablelib/binary@1.0.1: + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} + dependencies: + '@stablelib/int': 1.0.1 + dev: false + + /@stablelib/bytes@1.0.1: + resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} + dev: false + + /@stablelib/chacha20poly1305@1.0.1: + resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} + dependencies: + '@stablelib/aead': 1.0.1 + '@stablelib/binary': 1.0.1 + '@stablelib/chacha': 1.0.1 + '@stablelib/constant-time': 1.0.1 + '@stablelib/poly1305': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/chacha@1.0.1: + resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/constant-time@1.0.1: + resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} + dev: false + + /@stablelib/ed25519@1.0.3: + resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} + dependencies: + '@stablelib/random': 1.0.2 + '@stablelib/sha512': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/hash@1.0.1: + resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} + dev: false + + /@stablelib/hkdf@1.0.1: + resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} + dependencies: + '@stablelib/hash': 1.0.1 + '@stablelib/hmac': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/hmac@1.0.1: + resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/int@1.0.1: + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + dev: false + + /@stablelib/keyagreement@1.0.1: + resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} + dependencies: + '@stablelib/bytes': 1.0.1 + dev: false + + /@stablelib/poly1305@1.0.1: + resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} + dependencies: + '@stablelib/constant-time': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/random@1.0.2: + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/sha256@1.0.1: + resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/sha512@1.0.1: + resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} + dependencies: + '@stablelib/binary': 1.0.1 + '@stablelib/hash': 1.0.1 + '@stablelib/wipe': 1.0.1 + dev: false + + /@stablelib/wipe@1.0.1: + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + dev: false + + /@stablelib/x25519@1.0.3: + resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} + dependencies: + '@stablelib/keyagreement': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/wipe': 1.0.1 + dev: false + + /@swc/helpers@0.4.14: + resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} + dependencies: + tslib: 2.6.2 + dev: false + + /@swc/helpers@0.4.36: + resolution: {integrity: sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q==} + dependencies: + legacy-swc-helpers: /@swc/helpers@0.4.14 + tslib: 2.6.2 + dev: false + + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + dependencies: + tslib: 2.6.2 + dev: false + + /@swc/helpers@0.5.3: + resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} + dependencies: + tslib: 2.6.2 + dev: false + + /@tanstack/query-core@4.36.1: + resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} + dev: false + + /@tanstack/query-core@5.4.3: + resolution: {integrity: sha512-fnI9ORjcuLGm1sNrKatKIosRQUpuqcD4SV7RqRSVmj8JSicX2aoMyKryHEBpVQvf6N4PaBVgBxQomjsbsGPssQ==} + dev: false + + /@tanstack/query-devtools@5.4.2: + resolution: {integrity: sha512-EXdaMXi8CxZuMp97J5mq6wy1RduOfoWFv5vtA1U+hyqb8Wst6M8kkkjDSdFvGZIRpYY4K8mKLlEFHNUZDG5dtw==} + dev: false + + /@tanstack/query-persist-client-core@4.36.1: + resolution: {integrity: sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg==} + dependencies: + '@tanstack/query-core': 4.36.1 + dev: false + + /@tanstack/query-sync-storage-persister@4.36.1: + resolution: {integrity: sha512-yMEt5hWe2+1eclf1agMtXHnPIkxEida0lYWkfdhR8U6KXk/lO4Vca6piJmhKI85t0NHlx3l/z6zX+t/Fn5O9NA==} + dependencies: + '@tanstack/query-persist-client-core': 4.36.1 + dev: false + + /@tanstack/react-query-devtools@5.7.0(@tanstack/react-query@5.7.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UASSDywXWavqOjaTQ9sF4RG51miqtxo7LUr1/fvrek6o+GlUxF5TS+cIOy/lYdSMFtkuaVTb0LNW3OLEuFwOPw==} + peerDependencies: + '@tanstack/react-query': ^5.7.0 + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@tanstack/query-devtools': 5.4.2 + '@tanstack/react-query': 5.7.0(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@tanstack/react-query-persist-client@4.36.1(@tanstack/react-query@4.36.1): + resolution: {integrity: sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ==} + peerDependencies: + '@tanstack/react-query': ^4.36.1 + dependencies: + '@tanstack/query-persist-client-core': 4.36.1 + '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) + dev: false + + /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 4.36.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@tanstack/react-query@5.7.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-f6F9OdW4MC0bwlYPXop114ngkkZtg650TeJpR2/ME9q/iJ/59dg2+LoGHEdHk2w1mNAdiuiPFYzCcl2WNkFiiw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 5.4.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@turnkey/api-key-stamper@0.1.1: + resolution: {integrity: sha512-qs8fmWFiAhh7fAByx7j9/2F0VRe/qD7Yq3hi4FwD+jLU0CXdE+aim1cmJpAFFPKF1PBmPs6jh4XBODE40eqEEg==} + engines: {node: '>=16.0.0'} + dev: false + + /@turnkey/http@1.3.0: + resolution: {integrity: sha512-vl/z3GSRY5ZvjHvb7gpfyq8HXj630yYViHqtstTRtGCv1QaNxgsDzZ/ECkN8fWiJJj/4SUiiKw6jSeHL0jTAew==} + engines: {node: '>=16.0.0'} + dependencies: + '@turnkey/api-key-stamper': 0.1.1 + '@turnkey/webauthn-stamper': 0.2.0 + cross-fetch: 3.1.8 + transitivePeerDependencies: + - encoding + dev: false + + /@turnkey/http@2.1.0: + resolution: {integrity: sha512-v5xlSKKuTYPRG1WswPbYD/Jrb9oF6+ulscI7gO/D28S6vq/al6THMp3XYa+DxF9aoVM+UIaTmx51K/PBECbV2Q==} + engines: {node: '>=16.0.0'} + dependencies: + '@turnkey/api-key-stamper': 0.1.1 + '@turnkey/webauthn-stamper': 0.2.0 + cross-fetch: 3.1.8 + transitivePeerDependencies: + - encoding + dev: false + + /@turnkey/viem@0.2.7(viem@1.18.9): + resolution: {integrity: sha512-G75Lso0ldX1XBKpTsZ/9lcGH03o04A3b4JXHg4DM8cdJb8JzgUPGyqgQg+vN/FAqE6e7QgxADkZNtx70Kdm+HA==} + engines: {node: '>=18.0.0'} + peerDependencies: + viem: ^1.16.6 + dependencies: + '@turnkey/api-key-stamper': 0.1.1 + '@turnkey/http': 2.1.0 + cross-fetch: 4.0.0 + typescript: 5.2.2 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - encoding + dev: false + + /@turnkey/webauthn-stamper@0.1.0: + resolution: {integrity: sha512-o3ostyv+xVAMn0CGeQLsPFo9InX99+5Qa25QiyvOWGFQXPvkcQoFX9LUg49vu/0juQKZ6cuFTzPjWWlmHSS/yA==} + engines: {node: '>=16.0.0'} + dev: false + + /@turnkey/webauthn-stamper@0.2.0: + resolution: {integrity: sha512-BoHucuoTTmvqJzqSZs6XsLHSu1rwelSHUFBDlUfYX/QzK9BpkaxMxamOxk92OLpRb6qRUngrCQeS/jPHlWgQow==} + engines: {node: '>=16.0.0'} + dependencies: + buffer: 6.0.3 + dev: false + + /@types/connect@3.4.37: + resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} + dependencies: + '@types/node': 20.5.7 + dev: false + + /@types/debug@4.1.10: + resolution: {integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==} + dependencies: + '@types/ms': 0.7.33 + dev: false + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false + + /@types/lodash@4.14.201: + resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} + dev: false + + /@types/ms@0.7.33: + resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} + dev: false + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + dev: false + + /@types/node@20.5.7: + resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} + dev: false + + /@types/prop-types@15.7.9: + resolution: {integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==} + + /@types/react-dom@18.2.14: + resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==} + dependencies: + '@types/react': 18.2.21 + dev: true + + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.21 + dev: false + + /@types/react@18.2.21: + resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==} + dependencies: + '@types/prop-types': 15.7.9 + '@types/scheduler': 0.16.5 + csstype: 3.1.2 + + /@types/react@18.2.34: + resolution: {integrity: sha512-U6eW/alrRk37FU/MS2RYMjx0Va2JGIVXELTODaTIYgvWGCV4Y4TfTUzG8DdmpDNIT0Xpj/R7GfyHOJJrDttcvg==} + dependencies: + '@types/prop-types': 15.7.9 + '@types/scheduler': 0.16.5 + csstype: 3.1.2 + + /@types/scheduler@0.16.5: + resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==} + + /@types/trusted-types@2.0.5: + resolution: {integrity: sha512-I3pkr8j/6tmQtKV/ZzHtuaqYSQvyjGRKH4go60Rr0IDLlFxuRT5V32uvB1mecM5G1EVAUyF/4r4QZ1GHgz+mxA==} + dev: false + + /@types/ws@7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + dependencies: + '@types/node': 20.5.7 + dev: false + + /@typescript-eslint/parser@6.10.0(eslint@8.48.0)(typescript@5.0.4): + resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.10.0 + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.0.4) + '@typescript-eslint/visitor-keys': 6.10.0 + debug: 4.3.4(supports-color@5.5.0) + eslint: 8.48.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@6.10.0: + resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 + dev: false + + /@typescript-eslint/types@6.10.0: + resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: false + + /@typescript-eslint/typescript-estree@6.10.0(typescript@5.0.4): + resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.10.0 + '@typescript-eslint/visitor-keys': 6.10.0 + debug: 4.3.4(supports-color@5.5.0) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/visitor-keys@6.10.0: + resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.10.0 + eslint-visitor-keys: 3.4.3 + dev: false + + /@vitejs/plugin-react@4.0.3(vite@4.3.5): + resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': 7.23.2 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.2) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2) + react-refresh: 0.14.0 + vite: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@wagmi/chains@0.2.16(typescript@5.2.2): + resolution: {integrity: sha512-rkWaI2PxCnbD8G07ZZff5QXftnSkYL0h5f4DkHCG3fGYYr/ZDvmCL4bMae7j7A9sAif1csPPBmbCzHp3R5ogCQ==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + + /@wagmi/chains@0.2.22(typescript@5.2.2): + resolution: {integrity: sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + + /@wagmi/chains@0.2.25(typescript@5.2.2): + resolution: {integrity: sha512-Gah0bgR+14navwxi7xTL2oFB8YgK4qoBPye1b8ucccIwF3Z8Zg1u2gVTDFAyPT4lyB+ZVqwYKs3Y/IkFNG5O4Q==} + peerDependencies: + typescript: '>=4.9.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + typescript: 5.2.2 + dev: false + + /@wagmi/cli@1.0.0(typescript@5.2.2)(wagmi@1.0.6): + resolution: {integrity: sha512-f8qf7UOI/dF6nV2cLAmjm+WRLnDiPiUgSYzay2e10XvBuzVP8o604BRz7AttRuqQRxbiDWu2sYnRULYrHrV6fg==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + '@wagmi/core': '>=1.0.0-next.0' + typescript: '>=4.9.4' + wagmi: '>=1.0.0-next.0' + peerDependenciesMeta: + '@wagmi/core': + optional: true + typescript: + optional: true + wagmi: + optional: true + dependencies: + '@wagmi/chains': 0.2.22(typescript@5.2.2) + abitype: 0.8.11(typescript@5.2.2)(zod@3.22.4) + abort-controller: 3.0.0 + bundle-require: 3.1.2(esbuild@0.15.13) + cac: 6.7.14 + change-case: 4.1.2 + chokidar: 3.5.3 + dedent: 0.7.0 + detect-package-manager: 2.0.1 + dotenv: 16.3.1 + dotenv-expand: 10.0.0 + esbuild: 0.15.13 + execa: 6.1.0 + find-up: 6.3.0 + fs-extra: 10.1.0 + globby: 13.2.2 + node-fetch: 3.3.2 + ora: 6.3.1 + pathe: 1.1.1 + picocolors: 1.0.0 + prettier: 2.8.8 + typescript: 5.2.2 + viem: 0.3.36(typescript@5.2.2)(zod@3.22.4) + wagmi: 1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4) + zod: 3.22.4 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@wagmi/connectors@1.0.5(@wagmi/chains@0.2.25)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4): + resolution: {integrity: sha512-fsnaeRv1/9Ec0n2J2W0JVUV3dvv9FoiCPCiY0I1MVJxadPn9x9h9/x69NyVsx+kUdhohKUNCbPlD3lrGg5c/Fg==} + peerDependencies: + '@wagmi/chains': '>=0.2.25' + typescript: '>=4.9.4' + viem: ~0.3.35 + peerDependenciesMeta: + '@wagmi/chains': + optional: true + typescript: + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.7.2 + '@ledgerhq/connect-kit-loader': 1.1.2 + '@safe-global/safe-apps-provider': 0.15.2 + '@safe-global/safe-apps-sdk': 7.11.0 + '@wagmi/chains': 0.2.25(typescript@5.2.2) + '@walletconnect/ethereum-provider': 2.7.4(@web3modal/standalone@2.4.3) + '@walletconnect/legacy-provider': 2.0.0 + '@web3modal/standalone': 2.4.3(react@18.2.0) + abitype: 0.8.1(typescript@5.2.2)(zod@3.22.4) + eventemitter3: 4.0.7 + typescript: 5.2.2 + viem: 0.3.36(typescript@5.2.2)(zod@3.22.4) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: false + + /@wagmi/connectors@3.1.4(@types/react@18.2.21)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9): + resolution: {integrity: sha512-DrYPXByoP9o+xko9R6whKz1cjaJ7HZ+9P27WkW7bhYUWU/sPeDZAvWiLmPwNAhQy8U7A/teAxyUtbExaOdc8zw==} + peerDependencies: + typescript: '>=5.0.4' + viem: '>=0.3.35' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@coinbase/wallet-sdk': 3.7.2 + '@ledgerhq/connect-kit-loader': 1.1.2 + '@safe-global/safe-apps-provider': 0.17.1(typescript@5.0.4) + '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.0.4) + '@walletconnect/ethereum-provider': 2.10.2(@walletconnect/modal@2.6.2) + '@walletconnect/legacy-provider': 2.0.0 + '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) + '@walletconnect/utils': 2.10.2 + abitype: 0.8.7(typescript@5.0.4) + eventemitter3: 4.0.7 + typescript: 5.0.4 + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - '@types/react' + - bufferutil + - encoding + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: false + + /@wagmi/core@1.0.6(@types/react@18.2.34)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4): + resolution: {integrity: sha512-OYcHXS2s76CgN+kOzA1EgxvmkN+yZxjb+0PeBqdRyClnajPJ69MmVRKkWgZdLDdy2JIthPyT7mIrbW1VW+mw7w==} + peerDependencies: + typescript: '>=4.9.4' + viem: ~0.3.35 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@wagmi/chains': 0.2.25(typescript@5.2.2) + '@wagmi/connectors': 1.0.5(@wagmi/chains@0.2.25)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4) + abitype: 0.8.1(typescript@5.2.2)(zod@3.22.4) + eventemitter3: 4.0.7 + typescript: 5.2.2 + viem: 0.3.36(typescript@5.2.2)(zod@3.22.4) + zustand: 4.4.6(@types/react@18.2.34)(react@18.2.0) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - '@types/react' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: false + + /@wagmi/core@1.4.6(@types/react@18.2.21)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9): + resolution: {integrity: sha512-6SYcRZulzVNXCZ77EtJ7WfqirmMR+Svb5H/3Lqh0sDGwuW9kdH9G3hBDLf8LMJ1ImiWFsSDR5cl2qo7ZreYllA==} + peerDependencies: + typescript: '>=5.0.4' + viem: '>=0.3.35' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@wagmi/connectors': 3.1.4(@types/react@18.2.21)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9) + abitype: 0.8.7(typescript@5.0.4) + eventemitter3: 4.0.7 + typescript: 5.0.4 + viem: 1.18.9(typescript@5.0.4) + zustand: 4.4.6(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - '@types/react' + - bufferutil + - encoding + - immer + - lokijs + - react + - supports-color + - utf-8-validate + - zod + dev: false + + /@walletconnect/browser-utils@1.8.0: + resolution: {integrity: sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==} + dependencies: + '@walletconnect/safe-json': 1.0.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/window-getters': 1.0.0 + '@walletconnect/window-metadata': 1.0.0 + detect-browser: 5.2.0 + dev: false + + /@walletconnect/client@1.8.0: + resolution: {integrity: sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/core': 1.8.0 + '@walletconnect/iso-crypto': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/core@1.8.0: + resolution: {integrity: sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==} + dependencies: + '@walletconnect/socket-transport': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/core@2.10.1: + resolution: {integrity: sha512-WAoXfmj+Zy5q48TnrKUjmHXJCBahzKwbul+noepRZf7JDtUAZ9IOWpUjg+UPRbfK5EiWZ0TF42S6SXidf7EHoQ==} + dependencies: + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.13 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.1 + '@walletconnect/utils': 2.10.1 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/core@2.10.2: + resolution: {integrity: sha512-JQz/xp3SLEpTeRQctdck2ugSBVEpMxoSE+lFi2voJkZop1hv6P+uqr6E4PzjFluAjeAnKlT1xvra0aFWjPWVcw==} + dependencies: + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.13 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.2 + '@walletconnect/utils': 2.10.2 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/core@2.7.4: + resolution: {integrity: sha512-nDJJZALZJI8l8JvjwZE4UmUzDzQBnTTJlQa/rc5MoGYtir0hfsQEl3sPkPcXbkkW5q+cHiynXsDcgM4740fmNQ==} + dependencies: + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/jsonrpc-ws-connection': 1.0.13 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.4 + '@walletconnect/utils': 2.7.4 + events: 3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/crypto@1.0.3: + resolution: {integrity: sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + '@walletconnect/randombytes': 1.0.3 + aes-js: 3.1.2 + hash.js: 1.1.7 + tslib: 1.14.1 + dev: false + + /@walletconnect/encoding@1.0.2: + resolution: {integrity: sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag==} + dependencies: + is-typedarray: 1.0.0 + tslib: 1.14.1 + typedarray-to-buffer: 3.1.5 + dev: false + + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/ethereum-provider@1.8.0: + resolution: {integrity: sha512-Nq9m+oo5P0F+njsROHw9KMWdoc/8iGHYzQdkjJN/1C7DtsqFRg5k5a3hd9rzCLpbPsOC1q8Z5lRs6JQgDvPm6Q==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/client': 1.8.0 + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/signer-connection': 1.8.0 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + eip1193-provider: 1.0.1 + eventemitter3: 4.0.7 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - utf-8-validate + dev: false + + /@walletconnect/ethereum-provider@2.10.2(@walletconnect/modal@2.6.2): + resolution: {integrity: sha512-QMYFZ6+rVq2CJLdIPdKK0j1Qm66UA27oQU5V2SrL8EVwl7wFfm0Bq7fnL+qAWeDpn612dNeNErpk/ROa1zWlWg==} + peerDependencies: + '@walletconnect/modal': '>=2' + peerDependenciesMeta: + '@walletconnect/modal': + optional: true + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0) + '@walletconnect/sign-client': 2.10.2 + '@walletconnect/types': 2.10.2 + '@walletconnect/universal-provider': 2.10.2 + '@walletconnect/utils': 2.10.2 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/ethereum-provider@2.7.4(@web3modal/standalone@2.4.3): + resolution: {integrity: sha512-R5hcByY9zIsvyTHFUS+3xqtzs2REezED4tZFyXk0snJjWlnlL2EdeHaCjr5n+SIZDin4CMj1EAFC0ZrM4KoA4Q==} + peerDependencies: + '@web3modal/standalone': '>=2' + peerDependenciesMeta: + '@web3modal/standalone': + optional: true + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/sign-client': 2.7.4 + '@walletconnect/types': 2.7.4 + '@walletconnect/universal-provider': 2.7.4 + '@walletconnect/utils': 2.7.4 + '@web3modal/standalone': 2.4.3(react@18.2.0) + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/events@1.0.1: + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/heartbeat@1.2.1: + resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/time': 1.0.2 + tslib: 1.14.1 + dev: false + + /@walletconnect/iso-crypto@1.8.0: + resolution: {integrity: sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==} + dependencies: + '@walletconnect/crypto': 1.0.3 + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + dev: false + + /@walletconnect/jsonrpc-http-connection@1.0.7: + resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + cross-fetch: 3.1.8 + tslib: 1.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /@walletconnect/jsonrpc-provider@1.0.13: + resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + tslib: 1.14.1 + dev: false + + /@walletconnect/jsonrpc-types@1.0.3: + resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} + dependencies: + keyvaluestorage-interface: 1.0.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/jsonrpc-utils@1.0.8: + resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} + dependencies: + '@walletconnect/environment': 1.0.1 + '@walletconnect/jsonrpc-types': 1.0.3 + tslib: 1.14.1 + dev: false + + /@walletconnect/jsonrpc-ws-connection@1.0.13: + resolution: {integrity: sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==} + dependencies: + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/safe-json': 1.0.2 + events: 3.3.0 + tslib: 1.14.1 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/keyvaluestorage@1.0.2: + resolution: {integrity: sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==} + peerDependencies: + '@react-native-async-storage/async-storage': 1.x + lokijs: 1.x + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true + lokijs: + optional: true + dependencies: + safe-json-utils: 1.1.1 + tslib: 1.14.1 + dev: false + + /@walletconnect/legacy-client@2.0.0: + resolution: {integrity: sha512-v5L7rYk9loVnfvUf0mF+76bUPFaU5/Vh7mzL6/950CD/yoGdzYZ3Kj+L7mkC6HPMEGeQsBP1+sqBuiVGZ/aODA==} + dependencies: + '@walletconnect/crypto': 1.0.3 + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 6.14.1 + dev: false + + /@walletconnect/legacy-modal@2.0.0: + resolution: {integrity: sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q==} + dependencies: + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + copy-to-clipboard: 3.3.3 + preact: 10.18.2 + qrcode: 1.5.3 + dev: false + + /@walletconnect/legacy-provider@2.0.0: + resolution: {integrity: sha512-A8xPebMI1A+50HbWwTpFCbwP7G+1NGKdTKyg8BUUg3h3Y9JucpC1W6w/x0v1Xw7qFEqQnz74LoIN/A3ytH9xrQ==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/legacy-client': 2.0.0 + '@walletconnect/legacy-modal': 2.0.0 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/legacy-utils': 2.0.0 + transitivePeerDependencies: + - encoding + dev: false + + /@walletconnect/legacy-types@2.0.0: + resolution: {integrity: sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + dev: false + + /@walletconnect/legacy-utils@2.0.0: + resolution: {integrity: sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/legacy-types': 2.0.0 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 6.14.1 + dev: false + + /@walletconnect/logger@2.0.1: + resolution: {integrity: sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==} + dependencies: + pino: 7.11.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/mobile-registry@1.4.0: + resolution: {integrity: sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==} + deprecated: 'Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry' + dev: false + + /@walletconnect/modal-core@2.6.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==} + dependencies: + valtio: 1.11.2(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react + dev: false + + /@walletconnect/modal-ui@2.6.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==} + dependencies: + '@walletconnect/modal-core': 2.6.2(@types/react@18.2.21)(react@18.2.0) + lit: 2.8.0 + motion: 10.16.2 + qrcode: 1.5.3 + transitivePeerDependencies: + - '@types/react' + - react + dev: false + + /@walletconnect/modal@2.6.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==} + dependencies: + '@walletconnect/modal-core': 2.6.2(@types/react@18.2.21)(react@18.2.0) + '@walletconnect/modal-ui': 2.6.2(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react + dev: false + + /@walletconnect/qrcode-modal@1.8.0: + resolution: {integrity: sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dependencies: + '@walletconnect/browser-utils': 1.8.0 + '@walletconnect/mobile-registry': 1.4.0 + '@walletconnect/types': 1.8.0 + copy-to-clipboard: 3.3.3 + preact: 10.4.1 + qrcode: 1.4.4 + dev: false + + /@walletconnect/randombytes@1.0.3: + resolution: {integrity: sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==} + dependencies: + '@walletconnect/encoding': 1.0.2 + '@walletconnect/environment': 1.0.1 + randombytes: 2.1.0 + tslib: 1.14.1 + dev: false + + /@walletconnect/relay-api@1.0.9: + resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} + dependencies: + '@walletconnect/jsonrpc-types': 1.0.3 + tslib: 1.14.1 + dev: false + + /@walletconnect/relay-auth@1.0.4: + resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} + dependencies: + '@stablelib/ed25519': 1.0.3 + '@stablelib/random': 1.0.2 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + tslib: 1.14.1 + uint8arrays: 3.1.1 + dev: false + + /@walletconnect/safe-json@1.0.0: + resolution: {integrity: sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==} + dev: false + + /@walletconnect/safe-json@1.0.2: + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/sign-client@2.10.1: + resolution: {integrity: sha512-iG3eJGi1yXeG3xGeVSSMf8wDFyx239B0prLQfy1uYDtYFb2ynnH/09oqAZyKn96W5nfQzUgM2Mz157PVdloH3Q==} + dependencies: + '@walletconnect/core': 2.10.1 + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.1 + '@walletconnect/utils': 2.10.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/sign-client@2.10.2: + resolution: {integrity: sha512-vviSLV3f92I0bReX+OLr1HmbH0uIzYEQQFd1MzIfDk9PkfFT/LLAHhUnDaIAMkIdippqDcJia+5QEtT4JihL3Q==} + dependencies: + '@walletconnect/core': 2.10.2 + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.2 + '@walletconnect/utils': 2.10.2 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/sign-client@2.7.4: + resolution: {integrity: sha512-hZoCB51GB4u32yxzYnxp8dpzXgo6E7ZWUVOgnihmoMPjgJahPtvB/Ip9jYxI3fuV+ZPQYNlxQgEvR9X+2fLz+g==} + dependencies: + '@walletconnect/core': 2.7.4 + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.4 + '@walletconnect/utils': 2.7.4 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/signer-connection@1.8.0: + resolution: {integrity: sha512-+YAaTAP52MWZJ2wWnqKClKCPlPHBo6reURFe0cWidLADh9mi/kPWGALZ5AENK22zpem1bbKV466rF5Rzvu0ehA==} + dependencies: + '@walletconnect/client': 1.8.0 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/qrcode-modal': 1.8.0 + '@walletconnect/types': 1.8.0 + eventemitter3: 4.0.7 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/socket-transport@1.8.0: + resolution: {integrity: sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==} + dependencies: + '@walletconnect/types': 1.8.0 + '@walletconnect/utils': 1.8.0 + ws: 7.5.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@walletconnect/time@1.0.2: + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/types@1.8.0: + resolution: {integrity: sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg==} + deprecated: 'WalletConnect''s v1 SDKs are now deprecated. Please upgrade to a v2 SDK. For details see: https://docs.walletconnect.com/' + dev: false + + /@walletconnect/types@2.10.1: + resolution: {integrity: sha512-7pccAhajQdiH2kYywjE1XI64IqRI+4ioyGy0wvz8d0UFQ/DSG3MLKR8jHf5aTOafQQ/HRLz6xvlzN4a7gIVkUQ==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/types@2.10.2: + resolution: {integrity: sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/types@2.7.4: + resolution: {integrity: sha512-Nagfz8DqLxf0UlVd7xopgBX60EJp1xUEq7J30ALlTbWqEhCHuLK/qPk5vGdJ9Q6+ZDpTW9ShLq1DNf+5nVpVDQ==} + dependencies: + '@walletconnect/events': 1.0.1 + '@walletconnect/heartbeat': 1.2.1 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/keyvaluestorage': 1.0.2 + '@walletconnect/logger': 2.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/universal-provider@2.10.1: + resolution: {integrity: sha512-81QxTH/X4dRoYCz0U9iOrBYOcj7N897ONcB57wsGhEkV7Rc9htmWJq2CzeOuxvVZ+pNZkE+/aw9LrhizO1Ltxg==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/sign-client': 2.10.1 + '@walletconnect/types': 2.10.1 + '@walletconnect/utils': 2.10.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/universal-provider@2.10.2: + resolution: {integrity: sha512-wFgI0LbQ3D56sgaUMsgOHCM5m8WLxiC71BGuCKQfApgsbNMVKugYVy2zWHyUyi8sqTQHI+uSaVpDev4UHq9LEw==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/sign-client': 2.10.2 + '@walletconnect/types': 2.10.2 + '@walletconnect/utils': 2.10.2 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - encoding + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/universal-provider@2.7.4: + resolution: {integrity: sha512-suH3o5LpTX7hlx5lU98oLdEM0Ws5ZysjQ4Zr6EWIK1DVT8EDdWbw49ggJSW9IYRLQ2xG22jDvmTIdFAexYOgng==} + dependencies: + '@walletconnect/jsonrpc-http-connection': 1.0.7 + '@walletconnect/jsonrpc-provider': 1.0.13 + '@walletconnect/jsonrpc-types': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/logger': 2.0.1 + '@walletconnect/sign-client': 2.7.4 + '@walletconnect/types': 2.7.4 + '@walletconnect/utils': 2.7.4 + eip1193-provider: 1.0.1 + events: 3.3.0 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - bufferutil + - debug + - encoding + - lokijs + - utf-8-validate + dev: false + + /@walletconnect/utils@1.8.0: + resolution: {integrity: sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==} + dependencies: + '@walletconnect/browser-utils': 1.8.0 + '@walletconnect/encoding': 1.0.2 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/types': 1.8.0 + bn.js: 4.11.8 + js-sha3: 0.8.0 + query-string: 6.13.5 + dev: false + + /@walletconnect/utils@2.10.1: + resolution: {integrity: sha512-DM0dKgm9O58l7VqJEyV2OVv16XRePhDAReI23let6WdW1dSpw/Y/A89Lp99ZJOjLm2FxyblMRF3YRaZtHwBffw==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.1 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/utils@2.10.2: + resolution: {integrity: sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.10.2 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/utils@2.7.4: + resolution: {integrity: sha512-2WEeKB9h/FQvyNmIBYwLtjdLm3Oo55EwtJoxkC00SA7xjf8jYxZ8q2y4P/CJP8oO5ruxBK5Ft0smKvPHXsE58Q==} + dependencies: + '@stablelib/chacha20poly1305': 1.0.1 + '@stablelib/hkdf': 1.0.1 + '@stablelib/random': 1.0.2 + '@stablelib/sha256': 1.0.1 + '@stablelib/x25519': 1.0.3 + '@walletconnect/jsonrpc-utils': 1.0.8 + '@walletconnect/relay-api': 1.0.9 + '@walletconnect/safe-json': 1.0.2 + '@walletconnect/time': 1.0.2 + '@walletconnect/types': 2.7.4 + '@walletconnect/window-getters': 1.0.1 + '@walletconnect/window-metadata': 1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: 3.1.1 + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - lokijs + dev: false + + /@walletconnect/window-getters@1.0.0: + resolution: {integrity: sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA==} + dev: false + + /@walletconnect/window-getters@1.0.1: + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} + dependencies: + tslib: 1.14.1 + dev: false + + /@walletconnect/window-metadata@1.0.0: + resolution: {integrity: sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==} + dependencies: + '@walletconnect/window-getters': 1.0.1 + dev: false + + /@walletconnect/window-metadata@1.0.1: + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} + dependencies: + '@walletconnect/window-getters': 1.0.1 + tslib: 1.14.1 + dev: false + + /@web-std/blob@3.0.5: + resolution: {integrity: sha512-Lm03qr0eT3PoLBuhkvFBLf0EFkAsNz/G/AYCzpOdi483aFaVX86b4iQs0OHhzHJfN5C15q17UtDbyABjlzM96A==} + dependencies: + '@web-std/stream': 1.0.0 + web-encoding: 1.1.5 + dev: false + + /@web-std/fetch@4.2.1: + resolution: {integrity: sha512-M6sgHDgKegcjuVsq8J6jb/4XvhPGui8uwp3EIoADGXUnBl9vKzKLk9H9iFzrPJ6fSV6zZzFWXPyziBJp9hxzBA==} + engines: {node: ^10.17 || >=12.3} + dependencies: + '@web-std/blob': 3.0.5 + '@web-std/file': 3.0.3 + '@web-std/form-data': 3.1.0 + '@web-std/stream': 1.0.3 + '@web3-storage/multipart-parser': 1.0.0 + abort-controller: 3.0.0 + data-uri-to-buffer: 3.0.1 + mrmime: 1.0.1 + dev: false + + /@web-std/file@3.0.3: + resolution: {integrity: sha512-X7YYyvEERBbaDfJeC9lBKC5Q5lIEWYCP1SNftJNwNH/VbFhdHm+3neKOQP+kWEYJmosbDFq+NEUG7+XIvet/Jw==} + dependencies: + '@web-std/blob': 3.0.5 + dev: false + + /@web-std/form-data@3.1.0: + resolution: {integrity: sha512-WkOrB8rnc2hEK2iVhDl9TFiPMptmxJA1HaIzSdc2/qk3XS4Ny4cCt6/V36U3XmoYKz0Md2YyK2uOZecoZWPAcA==} + dependencies: + web-encoding: 1.1.5 + dev: false + + /@web-std/stream@1.0.0: + resolution: {integrity: sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==} + dependencies: + web-streams-polyfill: 3.2.1 + dev: false + + /@web-std/stream@1.0.3: + resolution: {integrity: sha512-5MIngxWyq4rQiGoDAC2WhjLuDraW8+ff2LD2et4NRY933K3gL8CHlUXrh8ZZ3dC9A9Xaub8c9sl5exOJE58D9Q==} + dependencies: + web-streams-polyfill: 3.2.1 + dev: false + + /@web3-storage/multipart-parser@1.0.0: + resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} + dev: false + + /@web3modal/core@2.4.3(react@18.2.0): + resolution: {integrity: sha512-7Z/sDe9RIYQ2k9ITcxgEa/u7FvlI76vcVVZn9UY4ISivefqrH4JAS3GX4JmVNUUlovwuiZdyqBv4llAQOMK6Rg==} + dependencies: + buffer: 6.0.3 + valtio: 1.10.5(react@18.2.0) + transitivePeerDependencies: + - react + dev: false + + /@web3modal/standalone@2.4.3(react@18.2.0): + resolution: {integrity: sha512-5ATXBoa4GGm+TIUSsKWsfWCJunv1XevOizpgTFhqyeGgRDmWhqsz9UIPzH/1mk+g0iJ/xqMKs5F6v9D2QeKxag==} + deprecated: This package has been deprecated in favor of @walletconnect/modal. Please read more at https://docs.walletconnect.com + dependencies: + '@web3modal/core': 2.4.3(react@18.2.0) + '@web3modal/ui': 2.4.3(react@18.2.0) + transitivePeerDependencies: + - react + dev: false + + /@web3modal/ui@2.4.3(react@18.2.0): + resolution: {integrity: sha512-J989p8CdtEhI9gZHf/rZ/WFqYlrAHWw9GmAhFoiNODwjAp0BoG/uoaPiijJMchXdngihZOjLGCQwDXU16DHiKg==} + dependencies: + '@web3modal/core': 2.4.3(react@18.2.0) + lit: 2.7.5 + motion: 10.16.2 + qrcode: 1.5.3 + transitivePeerDependencies: + - react + dev: false + + /@zxing/text-encoding@0.9.0: + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + requiresBuild: true + dev: false + optional: true + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: false + + /abitype@0.8.1(typescript@5.2.2)(zod@3.22.4): + resolution: {integrity: sha512-n8Di6AWb3i7HnEkBvecU6pG0a5nj5YwMvdAIwPLsQK95ulRy/XS113s/RXvSfTX1iOQJYFrEO3/q4SMWu7OwTA==} + peerDependencies: + typescript: '>=4.9.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.2.2 + zod: 3.22.4 + dev: false + + /abitype@0.8.11(typescript@5.2.2)(zod@3.22.4): + resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.2.2 + zod: 3.22.4 + dev: false + + /abitype@0.8.2(typescript@5.2.2)(zod@3.22.4): + resolution: {integrity: sha512-B1ViNMGpfx/qjVQi0RTc2HEFHuR9uoCoTEkwELT5Y7pBPtBbctYijz9BK6+Kd0hQ3S70FhYTO2dWWk0QNUEXMA==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.2.2 + zod: 3.22.4 + dev: false + + /abitype@0.8.7(typescript@5.0.4): + resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + dependencies: + typescript: 5.0.4 + dev: false + + /abitype@0.9.8(typescript@5.0.4): + resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.0.4 + dev: false + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + dev: false + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + dev: false + + /aes-js@3.1.2: + resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==} + dev: false + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: false + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: false + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: false + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: false + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: false + + /antlr4@4.13.1: + resolution: {integrity: sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==} + engines: {node: '>=16'} + dev: false + + /antlr4ts@0.5.0-alpha.4: + resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: false + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: false + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: false + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: false + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: false + + /ast-parents@0.0.1: + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + dev: false + + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: false + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: false + + /async-mutex@0.2.6: + resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} + dependencies: + tslib: 2.6.2 + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: false + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001561 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: false + + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: false + + /axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + dependencies: + follow-redirects: 1.15.3 + transitivePeerDependencies: + - debug + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: false + + /babel-plugin-styled-components@2.1.4(@babel/core@7.23.2)(styled-components@5.3.11): + resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} + peerDependencies: + styled-components: '>= 2' + dependencies: + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) + lodash: 4.17.21 + picomatch: 2.3.1 + styled-components: 5.3.11(@babel/core@7.23.2)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + dev: false + + /bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + bindings: 1.5.0 + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /bind-decorator@1.0.11: + resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} + dev: false + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + dependencies: + file-uri-to-path: 1.0.0 + dev: false + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /bn.js@4.11.8: + resolution: {integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==} + dev: false + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + dev: false + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + dev: false + + /borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + dev: false + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001561 + electron-to-chromium: 1.4.576 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + + /bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + dependencies: + base-x: 3.0.9 + dev: false + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: false + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /buffer@6.0.1: + resolution: {integrity: sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.6.1 + dev: false + + /bundle-require@3.1.2(esbuild@0.15.13): + resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.13' + dependencies: + esbuild: 0.15.13 + load-tsconfig: 0.2.5 + dev: false + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: false + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: false + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: false + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: false + + /camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + dev: false + + /caniuse-lite@1.0.30001561: + resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: false + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: false + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: false + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.6.2 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: false + + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + engines: {node: '>=6'} + dev: false + + /client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + dev: false + + /cliui@5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + dev: false + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: false + + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + + /clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: false + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false + + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: false + + /color2k@2.0.2: + resolution: {integrity: sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==} + dev: false + + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + dev: false + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: false + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: false + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + /compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /connectkit@1.4.0(@babel/core@7.23.2)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0)(viem@0.3.36)(wagmi@1.0.6): + resolution: {integrity: sha512-gRfcb/7BDX4uKc3qghjVlV5rd3jfkivqSsUG5vywZYy4nSHE4q4NeHsgJTTC8WnNTWxfOz02oP8J2dCaeCHLNw==} + engines: {node: '>=12.4'} + peerDependencies: + react: 17.x || 18.x + react-dom: 17.x || 18.x + viem: ~0.3.19 + wagmi: ^1.0.0 + dependencies: + buffer: 6.0.3 + detect-browser: 5.3.0 + framer-motion: 6.5.1(react-dom@18.2.0)(react@18.2.0) + qrcode: 1.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-state: 1.1.5(react-dom@18.2.0)(react@18.2.0) + react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0) + resize-observer-polyfill: 1.5.1 + styled-components: 5.3.11(@babel/core@7.23.2)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0) + viem: 0.3.36(typescript@5.2.2)(zod@3.22.4) + wagmi: 1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4) + transitivePeerDependencies: + - '@babel/core' + - react-is + dev: false + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case: 2.0.2 + dev: false + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: false + + /country-list@2.3.0: + resolution: {integrity: sha512-qZk66RlmQm7fQjMYWku1AyjlKPogjPEorAZJG88owPExoPV8EsyCcuFLvO2afTXHEhi9liVOoyd+5A6ZS5QwaA==} + dev: false + + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: false + + /css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + dev: false + + /css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false + + /data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + dev: false + + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dev: false + + /dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dev: true + + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: false + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: false + + /debug@4.3.4(supports-color@5.5.0): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 5.5.0 + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: false + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: false + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: false + + /deepmerge@2.2.1: + resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==} + engines: {node: '>=0.10.0'} + dev: false + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: false + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: false + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: false + + /delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /detect-browser@5.2.0: + resolution: {integrity: sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==} + dev: false + + /detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + dev: false + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /detect-package-manager@2.0.1: + resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: false + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: false + + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + dev: false + + /dotenv@16.3.1: + resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + engines: {node: '>=12'} + dev: false + + /duplexify@4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 3.6.2 + stream-shift: 1.0.1 + dev: false + + /eip1193-provider@1.0.1: + resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + '@json-rpc-tools/provider': 1.7.6 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + /electron-to-chromium@1.4.576: + resolution: {integrity: sha512-yXsZyXJfAqzWk1WKryr0Wl0MN2D47xodPvEEwlVePBnhU5E7raevLQR+E6b9JAD3GfL/7MbAL9ZtWQQPcLx7wA==} + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /emitter-component@1.1.1: + resolution: {integrity: sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ==} + dev: false + + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: false + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false + + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: false + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: false + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: false + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: false + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + dev: false + + /es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + dependencies: + es6-promise: 4.2.8 + dev: false + + /esbuild-android-64@0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /esbuild-android-arm64@0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-64@0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /esbuild-darwin-arm64@0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-64@0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-freebsd-arm64@0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-32@0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-64@0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm64@0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-arm@0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-mips64le@0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-ppc64le@0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-riscv64@0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-linux-s390x@0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /esbuild-netbsd-64@0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-openbsd-64@0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /esbuild-sunos-64@0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-32@0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-64@0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild-windows-arm64@0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /esbuild@0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.13 + '@esbuild/linux-loong64': 0.15.13 + esbuild-android-64: 0.15.13 + esbuild-android-arm64: 0.15.13 + esbuild-darwin-64: 0.15.13 + esbuild-darwin-arm64: 0.15.13 + esbuild-freebsd-64: 0.15.13 + esbuild-freebsd-arm64: 0.15.13 + esbuild-linux-32: 0.15.13 + esbuild-linux-64: 0.15.13 + esbuild-linux-arm: 0.15.13 + esbuild-linux-arm64: 0.15.13 + esbuild-linux-mips64le: 0.15.13 + esbuild-linux-ppc64le: 0.15.13 + esbuild-linux-riscv64: 0.15.13 + esbuild-linux-s390x: 0.15.13 + esbuild-netbsd-64: 0.15.13 + esbuild-openbsd-64: 0.15.13 + esbuild-sunos-64: 0.15.13 + esbuild-windows-32: 0.15.13 + esbuild-windows-64: 0.15.13 + esbuild-windows-arm64: 0.15.13 + dev: false + + /esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: false + + /eslint-config-next@14.0.2(eslint@8.48.0)(typescript@5.0.4): + resolution: {integrity: sha512-CasWThlsyIcg/a+clU6KVOMTieuDhTztsrqvniP6AsRki9v7FnojTa7vKQOYM8QSOsQdZ/aElLD1Y2Oc8/PsIg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 14.0.2 + '@rushstack/eslint-patch': 1.5.1 + '@typescript-eslint/parser': 6.10.0(eslint@8.48.0)(typescript@5.0.4) + eslint: 8.48.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.48.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.48.0) + eslint-plugin-react: 7.33.2(eslint@8.48.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0) + typescript: 5.0.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.48.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4(supports-color@5.5.0) + enhanced-resolve: 5.15.0 + eslint: 8.48.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.10.0(eslint@8.48.0)(typescript@5.0.4) + debug: 3.2.7 + eslint: 8.48.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.48.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0): + resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.10.0(eslint@8.48.0)(typescript@5.0.4) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.48.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.48.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: false + + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.48.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.2 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.15 + eslint: 8.48.0 + hasown: 2.0.0 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.48.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.48.0 + dev: false + + /eslint-plugin-react@7.33.2(eslint@8.48.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.48.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: false + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint@8.48.0: + resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.48.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@5.5.0) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.23.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: false + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + dev: false + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: false + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: false + + /eth-block-tracker@6.1.0: + resolution: {integrity: sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + '@metamask/utils': 3.6.0 + json-rpc-random-id: 1.0.1 + pify: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /eth-json-rpc-filters@5.1.0: + resolution: {integrity: sha512-fos+9xmoa1A2Ytsc9eYof17r81BjdJOUcGcgZn4K/tKdCCTb+a8ytEtwlu1op5qsXFDlgGmstTELFrDEc89qEQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + async-mutex: 0.2.6 + eth-query: 2.1.2 + json-rpc-engine: 6.1.0 + pify: 5.0.0 + dev: false + + /eth-query@2.1.2: + resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} + dependencies: + json-rpc-random-id: 1.0.1 + xtend: 4.0.2 + dev: false + + /eth-rpc-errors@4.0.2: + resolution: {integrity: sha512-n+Re6Gu8XGyfFy1it0AwbD1x0MUzspQs0D5UiPs1fFPCr6WAwZM+vbIhXheBFrpgosqN9bs5PqlB4Q61U/QytQ==} + dependencies: + fast-safe-stringify: 2.1.1 + dev: false + + /ethers@5.7.2: + resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/units': 5.7.0 + '@ethersproject/wallet': 5.7.0 + '@ethersproject/web': 5.7.1 + '@ethersproject/wordlists': 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: false + + /execa@6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: false + + /extract-files@9.0.0: + resolution: {integrity: sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==} + engines: {node: ^10.17.0 || ^12.0.0 || >= 13.7.0} + dev: false + + /eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + dev: false + + /fast-copy@3.0.1: + resolution: {integrity: sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==} + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: false + + /fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false + + /fast-redact@3.3.0: + resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} + engines: {node: '>=6'} + dev: false + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + + /fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: false + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.1.1 + dev: false + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + dev: false + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + dev: false + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: false + + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + dev: false + + /flat-cache@3.1.1: + resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} + engines: {node: '>=12.0.0'} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: false + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: false + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: false + + /focus-lock@0.11.6: + resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.2 + dev: false + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: false + + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: false + + /formik@2.2.9(react@18.2.0): + resolution: {integrity: sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==} + peerDependencies: + react: '>=16.8.0' + dependencies: + deepmerge: 2.2.1 + hoist-non-react-statics: 3.3.2 + lodash: 4.17.21 + lodash-es: 4.17.21 + react: 18.2.0 + react-fast-compare: 2.0.4 + tiny-warning: 1.0.3 + tslib: 1.14.1 + dev: false + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + /framer-motion@10.16.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-p9V9nGomS3m6/CALXqv6nFGMuFOxbWsmaOrdmhyQimMIlLl3LC7h7l86wge/Js/8cRu5ktutS/zlzgR7eBOtFA==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tslib: 2.6.2 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framer-motion@6.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} + peerDependencies: + react: '>=16.8 || ^17.0.0 || ^18.0.0' + react-dom: '>=16.8 || ^17.0.0 || ^18.0.0' + dependencies: + '@motionone/dom': 10.12.0 + framesync: 6.0.1 + hey-listen: 1.0.8 + popmotion: 11.0.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + style-value-types: 5.0.0 + tslib: 2.6.2 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framesync@6.0.1: + resolution: {integrity: sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==} + dependencies: + tslib: 2.6.2 + dev: false + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: false + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: false + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: false + + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: false + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: false + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.1 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: false + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: false + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false + + /graphql-request@4.3.0(graphql@16.8.1): + resolution: {integrity: sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow==} + peerDependencies: + graphql: 14 - 16 + dependencies: + cross-fetch: 3.1.8 + extract-files: 9.0.0 + form-data: 3.0.1 + graphql: 16.8.1 + transitivePeerDependencies: + - encoding + dev: false + + /graphql-request@6.1.0(graphql@16.8.1): + resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==} + peerDependencies: + graphql: 14 - 16 + dependencies: + '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) + cross-fetch: 3.1.8 + graphql: 16.8.1 + transitivePeerDependencies: + - encoding + dev: false + + /graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + dev: false + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: false + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: false + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: false + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.6.2 + dev: false + + /help-me@4.2.0: + resolution: {integrity: sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==} + dependencies: + glob: 8.1.0 + readable-stream: 3.6.2 + dev: true + + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /html-parse-stringify@3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + dependencies: + void-elements: 3.1.0 + dev: false + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: false + + /human-signals@3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: false + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.2 + dev: false + + /i18next@23.7.3: + resolution: {integrity: sha512-XetHM9UCk5oeeIcE2hu6Os16mq/zPHi8v/janExQjbFtx4ndNg9ye5OyAz+f5aYums8A1WcnXa7QikaEjyELPg==} + dependencies: + '@babel/runtime': 7.23.2 + dev: false + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: false + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: false + + /intl-messageformat@10.5.5: + resolution: {integrity: sha512-sF+cJCfMn+kGcSeGGRcB1UpBH0/+Ko2KByHj2RpL2qIkRvsrnuDl8zufEkvk+GPosk932C6W1Kq24xWaw+2jDA==} + dependencies: + '@formatjs/ecma402-abstract': 1.17.3 + '@formatjs/fast-memoize': 2.2.0 + '@formatjs/icu-messageformat-parser': 2.7.1 + tslib: 2.6.2 + dev: false + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: false + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.5 + dev: false + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: false + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: false + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: false + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: false + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: false + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: false + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: false + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: false + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: false + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: false + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false + + /isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + dependencies: + node-fetch: 2.7.0 + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + dev: false + + /isomorphic-ws@4.0.1(ws@7.5.9): + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + dependencies: + ws: 7.5.9 + dev: false + + /isomorphic-ws@5.0.0(ws@8.12.0): + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.12.0 + dev: false + + /isows@1.0.3(ws@8.13.0): + resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} + peerDependencies: + ws: '*' + dependencies: + ws: 8.13.0 + dev: false + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: false + + /jayson@3.7.0: + resolution: {integrity: sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@types/connect': 3.4.37 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.9) + json-stringify-safe: 5.0.1 + lodash: 4.17.21 + uuid: 8.3.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /jayson@4.1.0: + resolution: {integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@types/connect': 3.4.37 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.9) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + + /js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} + dependencies: + '@metamask/safe-event-emitter': 2.0.0 + eth-rpc-errors: 4.0.2 + dev: false + + /json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: false + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: false + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: false + + /keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.6.1 + readable-stream: 3.6.2 + dev: false + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: false + + /keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + dev: false + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: false + + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.22 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /lit-element@3.3.3: + resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit/reactive-element': 1.6.3 + lit-html: 2.8.0 + dev: false + + /lit-html@2.8.0: + resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} + dependencies: + '@types/trusted-types': 2.0.5 + dev: false + + /lit@2.7.5: + resolution: {integrity: sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==} + dependencies: + '@lit/reactive-element': 1.6.3 + lit-element: 3.3.3 + lit-html: 2.8.0 + dev: false + + /lit@2.8.0: + resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} + dependencies: + '@lit/reactive-element': 1.6.3 + lit-element: 3.3.3 + lit-html: 2.8.0 + dev: false + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: false + + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: 6.0.0 + dev: false + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + dev: false + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: false + + /lodash.mapkeys@4.6.0: + resolution: {integrity: sha512-0Al+hxpYvONWtg+ZqHpa/GaVzxuN3V7Xeo2p+bY06EaK/n+Y9R7nBePPN2o1LxmL0TWQSwP8LYZ008/hc9JzhA==} + dev: false + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false + + /lodash.omit@4.5.0: + resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} + dev: false + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: false + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: false + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: false + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: false + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: false + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: false + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /motion@10.16.2: + resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==} + dependencies: + '@motionone/animation': 10.16.3 + '@motionone/dom': 10.16.4 + '@motionone/svelte': 10.16.4 + '@motionone/types': 10.16.3 + '@motionone/utils': 10.16.3 + '@motionone/vue': 10.16.4 + dev: false + + /mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + dev: false + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /nanoclone@0.2.1: + resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false + + /next-themes@0.2.1(next@14.0.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} + peerDependencies: + next: '*' + react: '*' + react-dom: '*' + dependencies: + next: 14.0.2(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /next@14.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 14.0.2 + '@swc/helpers': 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001561 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + optionalDependencies: + '@next/swc-darwin-arm64': 14.0.2 + '@next/swc-darwin-x64': 14.0.2 + '@next/swc-linux-arm64-gnu': 14.0.2 + '@next/swc-linux-arm64-musl': 14.0.2 + '@next/swc-linux-x64-gnu': 14.0.2 + '@next/swc-linux-x64-musl': 14.0.2 + '@next/swc-win32-arm64-msvc': 14.0.2 + '@next/swc-win32-ia32-msvc': 14.0.2 + '@next/swc-win32-x64-msvc': 14.0.2 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: false + + /node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + dev: false + + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: false + + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + + /node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: false + + /node-gyp-build@4.6.1: + resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} + hasBin: true + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: false + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + dev: false + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + dev: false + + /on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: false + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: false + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: false + + /ora@6.3.1: + resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.1 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + strip-ansi: 7.1.0 + wcwidth: 1.0.1 + dev: false + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: false + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: false + + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: 4.0.0 + dev: false + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: false + + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: false + + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: false + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: false + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: false + + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: false + + /pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} + dependencies: + duplexify: 4.1.2 + split2: 4.2.0 + dev: false + + /pino-abstract-transport@1.1.0: + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + dependencies: + readable-stream: 4.4.2 + split2: 4.2.0 + dev: true + + /pino-pretty@10.2.3: + resolution: {integrity: sha512-4jfIUc8TC1GPUfDyMSlW1STeORqkoxec71yhxIpLDQapUu8WOuoz2TTCoidrIssyz78LZC69whBMPIKCMbi3cw==} + hasBin: true + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.1 + fast-safe-stringify: 2.1.1 + help-me: 4.2.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.1.0 + pump: 3.0.0 + readable-stream: 4.4.2 + secure-json-parse: 2.7.0 + sonic-boom: 3.7.0 + strip-json-comments: 3.1.1 + dev: true + + /pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + dev: false + + /pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.3.0 + on-exit-leak-free: 0.2.0 + pino-abstract-transport: 0.5.0 + pino-std-serializers: 4.0.0 + process-warning: 1.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.1.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 2.8.0 + thread-stream: 0.15.2 + dev: false + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: false + + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: false + + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: false + + /popmotion@11.0.3: + resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + dependencies: + framesync: 6.0.1 + hey-listen: 1.0.8 + style-value-types: 5.0.0 + tslib: 2.6.2 + dev: false + + /postcss-import@15.1.0(postcss@8.4.31): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + /postcss-js@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.31 + + /postcss-load-config@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.31 + yaml: 2.3.4 + + /postcss-nested@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /preact@10.18.2: + resolution: {integrity: sha512-X/K43vocUHDg0XhWVmTTMbec4LT/iBMh+csCEqJk+pJqegaXsvjdqN80ZZ3L+93azWCnWCZ+WGwYb8SplxeNjA==} + dev: false + + /preact@10.4.1: + resolution: {integrity: sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: false + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + requiresBuild: true + dev: false + + /prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + dev: false + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + dev: false + + /proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + dev: false + + /qrcode@1.4.4: + resolution: {integrity: sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==} + engines: {node: '>=4'} + hasBin: true + dependencies: + buffer: 5.7.1 + buffer-alloc: 1.2.0 + buffer-from: 1.1.2 + dijkstrajs: 1.0.3 + isarray: 2.0.5 + pngjs: 3.4.0 + yargs: 13.3.2 + dev: false + + /qrcode@1.5.1: + resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: false + + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: false + + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: false + + /query-string@6.13.5: + resolution: {integrity: sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: false + + /query-string@6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: false + + /query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} + dependencies: + decode-uri-component: 0.2.2 + filter-obj: 1.1.0 + split-on-first: 1.1.0 + strict-uri-encode: 2.0.0 + dev: false + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: false + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /react-clientside-effect@1.2.6(react@18.2.0): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-fast-compare@2.0.4: + resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} + dev: false + + /react-focus-lock@2.9.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-5JfrsOKyA5Zn3h958mk7bAcfphr24jPoMoznJ8vaJF6fUrPQ8zrtEd3ILLOK8P5jvGxdMd96OxWNjDzATfR2qw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.2 + '@types/react': 18.2.21 + focus-lock: 0.11.6 + prop-types: 15.8.1 + react: 18.2.0 + react-clientside-effect: 1.2.6(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.21)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.21)(react@18.2.0) + dev: false + + /react-hook-form@7.48.2(react@18.2.0): + resolution: {integrity: sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + + /react-i18next@13.4.0(i18next@23.7.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sZlTQEVK5dQuvq8AaIuj2OKviPqEskcBZdcHrsaoNGLv/uVCqUBfKYvJg9vcVeVqlxjJyYQ6A7LIHl4k7kkD3w==} + peerDependencies: + i18next: '>= 23.2.3' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@babel/runtime': 7.23.2 + html-parse-stringify: 3.0.1 + i18next: 23.7.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-remove-scroll-bar@2.3.4(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.21 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0) + tslib: 2.6.2 + dev: false + + /react-remove-scroll@2.5.7(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.21 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.21)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.0(@types/react@18.2.21)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.21)(react@18.2.0) + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.21 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-textarea-autosize@8.5.3(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.2 + react: 18.2.0 + use-composed-ref: 1.3.0(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.21)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /react-transition-state@1.1.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-use-measure@2.1.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} + peerDependencies: + react: '>=16.13' + react-dom: '>=16.13' + dependencies: + debounce: 1.2.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readable-stream@4.4.2: + resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: false + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: false + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: false + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: false + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.1.6 + dev: false + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rpc-websockets@7.6.2: + resolution: {integrity: sha512-+M1fOYMPxvOQDHbSItkD/an4fRwPZ1Nft1zv48G84S0TyChG2A1GXmjWkbs3o2NxW+q36H9nM2uLo5yojTrPaA==} + dependencies: + '@babel/runtime': 7.23.2 + eventemitter3: 4.0.7 + uuid: 8.3.2 + ws: 8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + dev: false + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: false + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-json-utils@1.1.1: + resolution: {integrity: sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==} + dev: false + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: false + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /scroll-into-view-if-needed@3.0.10: + resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + dependencies: + compute-scroll-into-view: 3.1.0 + dev: false + + /scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + dev: false + + /secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + upper-case-first: 2.0.2 + dev: false + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: false + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: false + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: false + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: false + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: false + + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: false + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: false -devDependencies: - prettier: - specifier: ^3.0.0 - version: 3.0.0 + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: false -packages: + /solhint@3.6.2: + resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} + hasBin: true + dependencies: + '@solidity-parser/parser': 0.16.1 + ajv: 6.12.6 + antlr4: 4.13.1 + ast-parents: 0.0.1 + chalk: 4.1.2 + commander: 10.0.1 + cosmiconfig: 8.3.6 + fast-diff: 1.3.0 + glob: 8.1.0 + ignore: 5.2.4 + js-yaml: 4.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + semver: 7.5.4 + strip-ansi: 6.0.1 + table: 6.8.1 + text-table: 0.2.0 + optionalDependencies: + prettier: 2.8.8 + transitivePeerDependencies: + - typescript + dev: false - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} - engines: {node: '>=6.9.0'} + /sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} dependencies: - '@babel/highlight': 7.22.5 + atomic-sleep: 1.0.0 dev: false - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} - engines: {node: '>=6.9.0'} + /sonic-boom@3.7.0: + resolution: {integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} dev: false - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} - engines: {node: '>=6.9.0'} + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: - '@babel/helper-validator-identifier': 7.22.5 - chalk: 2.4.2 - js-tokens: 4.0.0 + bl: 5.1.0 dev: false - /@solidity-parser/parser@0.16.1: - resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} dependencies: - antlr4ts: 0.5.0-alpha.4 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: false - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + /stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + dev: false + + /stream@0.0.2: + resolution: {integrity: sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==} dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 + emitter-component: 1.1.1 dev: false - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + + /strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + dev: false + + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 dev: false - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 dev: false - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: - color-convert: 1.9.3 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 dev: false - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: false + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: - color-convert: 2.0.1 + ansi-regex: 5.0.1 dev: false - /antlr4@4.13.0: - resolution: {integrity: sha512-zooUbt+UscjnWyOrsuY/tVFL4rwrAGwOivpQmvmUDE22hy/lUA467Rc1rcixyRwcRUIXFYBwv7+dClDSHdmmew==} - engines: {node: '>=16'} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 dev: false - /antlr4ts@0.5.0-alpha.4: - resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} dev: false - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} dev: false - /ast-parents@0.0.1: - resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} dev: false - /astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + + /style-value-types@5.0.0: + resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} + dependencies: + hey-listen: 1.0.8 + tslib: 2.6.2 dev: false - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /styled-components@5.3.11(@babel/core@7.23.2)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + react-is: '>= 16.8.0' + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/traverse': 7.23.2(supports-color@5.5.0) + '@emotion/is-prop-valid': 1.2.1 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.1.4(@babel/core@7.23.2)(styled-components@5.3.11) + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + shallowequal: 1.1.0 + supports-color: 5.5.0 + transitivePeerDependencies: + - '@babel/core' dev: false - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true dependencies: - balanced-match: 1.0.2 + client-only: 0.0.1 + react: 18.2.0 dev: false - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + /superstruct@0.14.2: + resolution: {integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==} + dev: false + + /superstruct@1.0.3: + resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} + engines: {node: '>=14.0.0'} + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: false + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + + /tailwind-merge@1.14.0: + resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} + dev: false + + /tailwind-variants@0.1.18(tailwindcss@3.3.5): + resolution: {integrity: sha512-yoydMYm3FbZRw7wak+E2sqwYv2Uo3YWRqVZR03DGqDGm0ytzDrEnWO/Q/GMHdhaz8adOvycKw/bwCgQFCfmfhg==} + engines: {node: '>=16.x', pnpm: '>=7.x'} + peerDependencies: + tailwindcss: '*' + dependencies: + tailwind-merge: 1.14.0 + tailwindcss: 3.3.5 + dev: false + + /tailwindcss@3.3.5: + resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-import: 15.1.0(postcss@8.4.31) + postcss-js: 4.0.1(postcss@8.4.31) + postcss-load-config: 4.0.1(postcss@8.4.31) + postcss-nested: 6.0.1(postcss@8.4.31) + postcss-selector-parser: 6.0.13 + resolve: 1.22.8 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} dev: false - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + /text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + + /thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} + dependencies: + real-require: 0.1.0 + dev: false + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: false + + /tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + dev: false + + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + + /tldts-core@6.0.19: + resolution: {integrity: sha512-kdLllt2VRzBx6SfvUpPc89Gnm/fuH+DG0WgNFVhs6udnk9uadUPpmwtzczyXTUCE1Pmh8e0wtzRkyEn3WhdpXg==} + dev: false + + /tldts@6.0.19: + resolution: {integrity: sha512-uVGeVYgntRF3E1XRJTEOy/O+SMBINhZddOqKnWVQMXBPP7WL2VSHXw/nuThhnjPKyIbUTH8kCVUswZwjCj6e5g==} + hasBin: true + dependencies: + tldts-core: 6.0.19 + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + is-number: 7.0.0 + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} dev: false - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + /toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + dev: false + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false + + /ts-api-utils@1.0.3(typescript@5.0.4): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.0.4 + dev: false + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tslib@2.4.1: + resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: false + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: false + + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 dev: false - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} dependencies: - color-name: 1.1.3 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 dev: false - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: false + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: false + + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 + dev: false + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: false + + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} + hasBin: true + + /uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} + dependencies: + multiformats: 9.9.0 + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + dev: false + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: false + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: - color-name: 1.1.4 - dev: false + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.6.2 dev: false - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.6.2 dev: false - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 dev: false - /cosmiconfig@8.2.0: - resolution: {integrity: sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==} - engines: {node: '>=14'} + /use-callback-ref@1.3.0(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 + '@types/react': 18.2.21 + react: 18.2.0 + tslib: 2.6.2 dev: false - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + /use-composed-ref@1.3.0(react@18.2.0): + resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 dev: false - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: - is-arrayish: 0.2.1 + '@types/react': 18.2.21 + react: 18.2.0 dev: false - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + /use-latest@1.2.1(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.21 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.21)(react@18.2.0) dev: false - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + /use-sidecar@1.1.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.21 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 dev: false - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 dev: false - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + /utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true + dependencies: + node-gyp-build: 4.6.1 dev: false - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + /util@0.12.4: + resolution: {integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==} dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.12 + safe-buffer: 5.2.1 + which-typed-array: 1.1.13 dev: false - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true dev: false - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + /valtio@1.10.5(react@18.2.0): + resolution: {integrity: sha512-jTp0k63VXf4r5hPoaC6a6LCG4POkVSh629WLi1+d5PlajLsbynTMd7qAgEiOSPxzoX5iNvbN7iZ/k/g29wrNiQ==} + engines: {node: '>=12.20.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + dependencies: + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} + /valtio@1.11.2(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.21 + proxy-compare: 2.5.1 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + /viem@0.3.36(typescript@5.2.2)(zod@3.22.4): + resolution: {integrity: sha512-8wgZyG+Zty6b9ztM5+/1xBZBl/z1/YFtQJZqrvSOUnbrIL7u786XeZXDPyoY6zbR0HTt14k5ATsEPnXnCyDhtg==} dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 0.2.16(typescript@5.2.2) + abitype: 0.8.2(typescript@5.2.2)(zod@3.22.4) + isomorphic-ws: 5.0.0(ws@8.12.0) + ws: 8.12.0 + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod dev: false - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + /viem@1.18.9(typescript@5.0.4): + resolution: {integrity: sha512-eAXtoTwAFA3YEgjTYMb5ZTQrDC0UPx5qyZ4sv90TirVKepcM9mBPksTkC1SSWya0UdxhBmhEBL/CiYMjmGCTWg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: - once: 1.4.0 - wrappy: 1.0.2 + '@adraffy/ens-normalize': 1.9.4 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + abitype: 0.9.8(typescript@5.0.4) + isows: 1.0.3(ws@8.13.0) + typescript: 5.0.4 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod dev: false - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /vite@4.3.5: + resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.19 + postcss: 8.4.31 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} dev: false - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /wagmi@1.0.6(@types/react@18.2.34)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4): + resolution: {integrity: sha512-lagpdFyms43+80wwHPElXhW8QXZSH/nKesfcuFdhA3iCQ9cCksj8xrMoEcmuno3zrUaN85X5bn72QgKQNfOYNQ==} + peerDependencies: + react: '>=17.0.0' + typescript: '>=4.9.4' + viem: ~0.3.35 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@tanstack/query-sync-storage-persister': 4.36.1 + '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1) + '@wagmi/core': 1.0.6(@types/react@18.2.34)(react@18.2.0)(typescript@5.2.2)(viem@0.3.36)(zod@3.22.4) + abitype: 0.8.1(typescript@5.2.2)(zod@3.22.4) + react: 18.2.0 + typescript: 5.2.2 + use-sync-external-store: 1.2.0(react@18.2.0) + viem: 0.3.36(typescript@5.2.2)(zod@3.22.4) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - '@types/react' + - bufferutil + - debug + - encoding + - immer + - lokijs + - react-dom + - react-native + - supports-color + - utf-8-validate + - zod dev: false - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + /wagmi@1.4.6(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9): + resolution: {integrity: sha512-A5Kryru0QT8E+dpkw83uDbfuGgyR1GdGzay2TALI7sf2kqVair8N0DuCj7ohrCStLRY1oAibXWGolRrmce4psg==} + peerDependencies: + react: '>=17.0.0' + typescript: '>=5.0.4' + viem: '>=0.3.35' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@tanstack/query-sync-storage-persister': 4.36.1 + '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0) + '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1) + '@wagmi/core': 1.4.6(@types/react@18.2.21)(react@18.2.0)(typescript@5.0.4)(viem@1.18.9) + abitype: 0.8.7(typescript@5.0.4) + react: 18.2.0 + typescript: 5.0.4 + use-sync-external-store: 1.2.0(react@18.2.0) + viem: 1.18.9(typescript@5.0.4) + transitivePeerDependencies: + - '@react-native-async-storage/async-storage' + - '@types/react' + - bufferutil + - encoding + - immer + - lokijs + - react-dom + - react-native + - supports-color + - utf-8-validate + - zod dev: false - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 dev: false - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: - argparse: 2.0.1 + defaults: 1.0.4 dev: false - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + /web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + dependencies: + util: 0.12.4 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 dev: false - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} dev: false - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 dev: false - /lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 dev: false - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 dev: false - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: - yallist: 4.0.0 + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 dev: false - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} dependencies: - brace-expansion: 2.0.1 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 dev: false - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: - wrappy: 1.0.2 + isexe: 2.0.0 dev: false - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + /wrap-ansi@5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} engines: {node: '>=6'} dependencies: - callsites: 3.1.0 + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 dev: false - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 dev: false - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: false + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} + /ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dev: false - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - requiresBuild: true + /ws@7.5.3: + resolution: {integrity: sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dev: false - optional: true - - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} - engines: {node: '>=14'} - hasBin: true - dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} - engines: {node: '>=6'} + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dev: false - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + /ws@8.12.0: + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dev: false - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dev: false - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + /ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dependencies: - lru-cache: 6.0.0 + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 dev: false - /slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} dev: false - /solhint@3.6.2: - resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} - hasBin: true - dependencies: - '@solidity-parser/parser': 0.16.1 - ajv: 6.12.6 - antlr4: 4.13.0 - ast-parents: 0.0.1 - chalk: 4.1.2 - commander: 10.0.1 - cosmiconfig: 8.2.0 - fast-diff: 1.3.0 - glob: 8.1.0 - ignore: 5.2.4 - js-yaml: 4.1.0 - lodash: 4.17.21 - pluralize: 8.0.0 - semver: 7.5.4 - strip-ansi: 6.0.1 - table: 6.8.1 - text-table: 0.2.0 - optionalDependencies: - prettier: 2.8.8 + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: false - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + + /yargs-parser@13.1.2: + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} dependencies: - ansi-regex: 5.0.1 + camelcase: 5.3.1 + decamelize: 1.2.0 dev: false - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: - has-flag: 3.0.0 + camelcase: 5.3.1 + decamelize: 1.2.0 dev: false - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + /yargs@13.3.2: + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} dependencies: - has-flag: 4.0.0 + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 13.1.2 dev: false - /table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 string-width: 4.2.3 - strip-ansi: 6.0.1 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 dev: false - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: false + + /yup@0.32.11: + resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} + engines: {node: '>=10'} dependencies: - punycode: 2.3.0 + '@babel/runtime': 7.23.2 + '@types/lodash': 4.14.201 + lodash: 4.17.21 + lodash-es: 4.17.21 + nanoclone: 0.2.1 + property-expr: 2.0.6 + toposort: 2.0.2 dev: false - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /yup@1.3.2: + resolution: {integrity: sha512-6KCM971iQtJ+/KUaHdrhVr2LDkfhBtFPRnsG1P8F4q3uUVQ2RfEM9xekpha9aA4GXWJevjM10eDcPQ1FfWlmaQ==} + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 dev: false - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + /zustand@4.4.6(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.21 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /zustand@4.4.6(@types/react@18.2.34)(react@18.2.0): + resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.34 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..35b0b96 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "packages/*" + # - '!packages/contratcs/.gitmodules' diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..f014837 --- /dev/null +++ b/public/index.html @@ -0,0 +1,15 @@ + + + + + + + + + budget2 + + + +
+ + diff --git a/public/undefined.png b/public/undefined.png new file mode 100644 index 0000000..8c09f40 --- /dev/null +++ b/public/undefined.png @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/undefined1.png b/public/undefined1.png new file mode 100644 index 0000000..acd4a1e --- /dev/null +++ b/public/undefined1.png @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..8229b52 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,52 @@ +import { + Routes, + Route, + useNavigationType, + useLocation, +} from "react-router-dom"; +import SplashScreen01 from "./pages/SplashScreen01"; +import { useEffect } from "react"; + +function App() { + const action = useNavigationType(); + const location = useLocation(); + const pathname = location.pathname; + + useEffect(() => { + if (action !== "POP") { + window.scrollTo(0, 0); + } + }, [action, pathname]); + + useEffect(() => { + let title = ""; + let metaDescription = ""; + + switch (pathname) { + case "/": + title = ""; + metaDescription = ""; + break; + } + + if (title) { + document.title = title; + } + + if (metaDescription) { + const metaDescriptionTag: HTMLMetaElement | null = document.querySelector( + 'head > meta[name="description"]', + ); + if (metaDescriptionTag) { + metaDescriptionTag.content = metaDescription; + } + } + }, [pathname]); + + return ( + + } /> + + ); +} +export default App; diff --git a/src/components/LogoIcon.tsx b/src/components/LogoIcon.tsx new file mode 100644 index 0000000..1b22261 --- /dev/null +++ b/src/components/LogoIcon.tsx @@ -0,0 +1,13 @@ +import { FunctionComponent } from "react"; + +const LogoIcon: FunctionComponent = () => { + return ( + + ); +}; + +export default LogoIcon; diff --git a/src/components/RectangleComponent.tsx b/src/components/RectangleComponent.tsx new file mode 100644 index 0000000..63fd1b7 --- /dev/null +++ b/src/components/RectangleComponent.tsx @@ -0,0 +1,9 @@ +import { FunctionComponent } from "react"; + +const RectangleComponent: FunctionComponent = () => { + return ( +
+ ); +}; + +export default RectangleComponent; diff --git a/src/components/WelcomeToPayup.tsx b/src/components/WelcomeToPayup.tsx new file mode 100644 index 0000000..b23956f --- /dev/null +++ b/src/components/WelcomeToPayup.tsx @@ -0,0 +1,11 @@ +import { FunctionComponent } from "react"; + +const WelcomeToPayup: FunctionComponent = () => { + return ( +
+ Welcome to payup mobile app +
+ ); +}; + +export default WelcomeToPayup; diff --git a/src/global.css b/src/global.css new file mode 100644 index 0000000..3d64d9f --- /dev/null +++ b/src/global.css @@ -0,0 +1,15 @@ +@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap"); +@tailwind base; +@tailwind components; +@tailwind utilities; +html { + font-size: 18; +} +body { + @apply leading-[normal] m-0; +} +*, +::before, +::after { + border-width: 0; +} diff --git a/src/index.tsx b/src/index.tsx new file mode 100644 index 0000000..67bb280 --- /dev/null +++ b/src/index.tsx @@ -0,0 +1,20 @@ +import React from "react"; +import { createRoot } from "react-dom/client"; +import App from "./App"; +import reportWebVitals from "./reportWebVitals"; +import { BrowserRouter } from "react-router-dom"; +import "./global.css"; + +const container = document.getElementById("root"); +const root = createRoot(container!); + +root.render( + + + , +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/src/metadata/build-metadata.json b/src/metadata/build-metadata.json deleted file mode 100644 index b9c3e98..0000000 --- a/src/metadata/build-metadata.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "ui": {}, - "change": "NA", - "pluginSetup": { - "prepareInstallation": { - "description": "No input is required for the update.", - "inputs": [], - "prepareUpdate": { - "1": { - "description": "No input is required for the update.", - "inputs": [] - } - }, - "prepareUninstallation": { - "description": "No input is required for the uninstallation.", - "inputs": [] - } - } - } -} diff --git a/src/pages/SplashScreen01.tsx b/src/pages/SplashScreen01.tsx new file mode 100644 index 0000000..5378e88 --- /dev/null +++ b/src/pages/SplashScreen01.tsx @@ -0,0 +1,25 @@ +import { FunctionComponent } from "react"; +import RectangleComponent from "../components/RectangleComponent"; +import LogoIcon from "../components/LogoIcon"; +import WelcomeToPayup from "../components/WelcomeToPayup"; + +const SplashScreen01: FunctionComponent = () => { + return ( +
+
+ + +
+
+ + +
+
+ ); +}; + +export default SplashScreen01; diff --git a/src/reportWebVitals.tsx b/src/reportWebVitals.tsx new file mode 100644 index 0000000..5fa3583 --- /dev/null +++ b/src/reportWebVitals.tsx @@ -0,0 +1,15 @@ +import { ReportHandler } from "web-vitals"; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 0000000..1fb927a --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,7 @@ +declare module "*.css" { + interface IClassNames { + [className: string]: string; + } + const classNames: IClassNames; + export = classNames; +} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..1f8ffc7 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,21 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ["./src/**/*.{js,jsx,ts,tsx}"], + theme: { + extend: { + colors: { + white: "#fff", + gray: "#101010", + }, + fontFamily: { + poppins: "Poppins", + }, + }, + fontSize: { + sm: "0.78rem", + }, + }, + corePlugins: { + preflight: false, + }, +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9d379a3 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +}