diff --git a/.changeset/big-lemons-teach.md b/.changeset/big-lemons-teach.md new file mode 100644 index 00000000..24efe760 --- /dev/null +++ b/.changeset/big-lemons-teach.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': patch +--- + +improved documentation generation for mkdocs compatible markdown outputs diff --git a/.changeset/cuddly-swans-allow.md b/.changeset/cuddly-swans-allow.md new file mode 100644 index 00000000..8a3e3495 --- /dev/null +++ b/.changeset/cuddly-swans-allow.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': minor +--- + +eslint major verison change diff --git a/.changeset/fuzzy-roses-mate.md b/.changeset/fuzzy-roses-mate.md new file mode 100644 index 00000000..ba73e3ca --- /dev/null +++ b/.changeset/fuzzy-roses-mate.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': minor +--- + +Updated readme diff --git a/.changeset/lucky-poems-grow.md b/.changeset/lucky-poems-grow.md new file mode 100644 index 00000000..344b93ed --- /dev/null +++ b/.changeset/lucky-poems-grow.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': minor +--- + +moved eds as dependency diff --git a/.changeset/selfish-cars-study.md b/.changeset/selfish-cars-study.md new file mode 100644 index 00000000..4de9bf27 --- /dev/null +++ b/.changeset/selfish-cars-study.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': patch +--- + +doc generation template improvements diff --git a/.changeset/silly-seahorses-tickle.md b/.changeset/silly-seahorses-tickle.md new file mode 100644 index 00000000..aad8d37d --- /dev/null +++ b/.changeset/silly-seahorses-tickle.md @@ -0,0 +1,30 @@ +--- +'rankify-contracts': minor +--- + +## Addition of Ethereum Distribution System (EDS) + +- **Feature**: Integrated the Ethereum Distribution System (EDS) for distributing Rankify contracts. +- **Description**: Rankify contracts are now distributed via the Ethereum Distribution System, enhancing the efficiency and security of the distribution process. + +## Redesign of Contracts + +- **Feature**: Redesigned contracts to work seamlessly as part of the Ethereum Distribution System. +- **Description**: The contracts have been restructured and optimized to ensure compatibility and smooth operation within the EDS framework. This redesign includes: + - Improved contract architecture for better integration with EDS. + - Enhanced security measures to protect against potential vulnerabilities. + - Optimized performance to handle the distribution process more efficiently. + +## Impact + +- **Users**: + - Can create new subjects that are called Meritocratic Autonomous Organizations (MAOs). + - Will benefit from a more secure and efficient distribution process. +- **Developers**: Developers will need to familiarize themselves with the new contract architecture and EDS integration. +- **Operations**: The distribution process will be streamlined, reducing the potential for errors and improving overall system reliability. + +## Next Steps + +- **Documentation**: Update the documentation to include details on the new EDS integration and contract redesign. +- **Testing**: Conduct thorough testing to ensure the new system operates as expected. +- **Deployment**: Plan and execute the deployment of the updated contracts and distribution system. diff --git a/.changeset/ten-hats-watch.md b/.changeset/ten-hats-watch.md new file mode 100644 index 00000000..151eb816 --- /dev/null +++ b/.changeset/ten-hats-watch.md @@ -0,0 +1,5 @@ +--- +'rankify-contracts': minor +--- + +Created new playbook scenario 'gameCreated' and some general playbooks refactors diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 13fb58d0..00000000 --- a/.eslintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "env": { - "es2022": true, - "browser": true, - "node": true, - "mocha": true - }, - "extends": [ - "eslint:recommended", - "plugin:promise/recommended", - "prettier" // eslint-config-prettier - ], - "plugins": ["promise"], - "ignorePatterns": ["docs/templates/", "node_modules/"], - "globals": { - "artifacts": "readonly", - "contract": "readonly", - "assert": "readonly", - "web3": "readonly" - }, - "rules": { - "no-unused-vars": "off" - } -} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..e6266ae8 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,15 @@ +# These are supported funding model platforms + +github: @peeramid-labs +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +polar: # Replace with a single Polar username +buy_me_a_coffee: # Replace with a single Buy Me a Coffee username +thanks_dev: # Replace with a single thanks.dev username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 18bf828e..f0a3638c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,8 +1,11 @@ name: CI -on: +on: pull_request: branches: [main,staging] types: [opened, reopened, labeled, synchronize] +env: + FORK_RPC_URL: ${{ secrets.FORK_RPC_URL }} + NODE_ENV: 'TEST' jobs: lint: runs-on: ubuntu-latest @@ -22,3 +25,4 @@ jobs: - name: Running tests run: pnpm test:parallel + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5d74674e..f457308e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,8 @@ on: concurrency: ${{ github.workflow }}-${{ github.ref }} permissions: {} +env: + FORK_RPC_URL: ${{ secrets.FORK_RPC_URL }} jobs: release: permissions: diff --git a/.gitignore b/.gitignore index 9a97a2b5..3a269d7f 100644 --- a/.gitignore +++ b/.gitignore @@ -273,3 +273,6 @@ types bin/ /deployments/localhost/ /deployments/hardhat/ + +abi/ +docs/contracts/ \ No newline at end of file diff --git a/README.md b/README.md index 22b7d147..875504ef 100644 --- a/README.md +++ b/README.md @@ -1,83 +1,116 @@ -# Rankify smart contracts -![rankToken_resize](https://github.com/rankify-it/contracts/assets/61459744/82d4496e-7e46-47ee-8f2f-2fca6d3c30b8) +### Installation +1. Clone the repository: + + ```sh + git clone https://github.com/rankify-it/contracts.git + cd contracts + ``` -## What is it about? +2. Install dependencies: -This is a gamified implementation of "Continious voting" protocol where participants assumed to engage over large periouds of time in a series of rounds and even diffenrent instances. Final goal being - to allow creating ladder where winners are ultemately selected for their ability to propose best ideas, that their group accepts in a blind voting/proposal cycle and which is averaged over large number of rounds, and, frankly - can be played indefinately. + ```sh + pnpm install + ``` -### Manifesto +3. Setup environment variables -Think of today governance systems and how projects are extremely dependent on a centralized authority of core develoepers, organizations - on their creators etc. This happens because de-facto way how governing happens is still based on principles of leadership that are defined in same rules as thousands years ago. -In a modern technology world there are ways to improve such systems and processes. We are able to build more robust, sustainable and lasting collectives by basing them on algorithms. Hence in this project - it is a **social experiment** on finding such a system that would proove it's effectiveness and would be hence in demand by any institution from family-friends to larger enterprise or DAOs. + ```sh + mkdir .secrets + cp dev.env.sample .secrets/dev.env + vi .secrets/dev.env + ``` -#### Assumptions -In this manifesto we assume that **More effective governance systems are possible**, that eventually **effeciveness is the key for adoption** and that this is the only way for **DAOs** to see large scale adoption. It is asserted also that Distributed-Ledger technology is de-facto graal for building such a system, because this allows to build trust and verify trust in trully trustless enviroments. +4. Compile the smart contracts: -#### Building better world -All contents of this work are related primarly towards allowing growth of not just Ethereum ecosystem. Belive in better world for everyone and that this Application can become a worlds first mass-adopted system. Hence requirements are put as follows: it must be **simple** to use, **require as less wallet actions as possible**, **fun and easy** and even allow **vote-to-earn** mechanisms in some cases. + ```sh + pnpm hardhat compile + ``` -### How it works? +5. Deploy the smart contracts: + ```sh + pnpm hardhat deploy --network --tags + ``` -#### Ideally (not everything is yet implemented): -There will be DAO who custodies the Governance Technology Research & Development; It will act as custodian for a **InstanceFactory** that is able to emit new Instances contracts. Each **instance** has its **subject**, that is being voted on, and a game settings such as max/min players, time per turn etc; -For each such instance, at least one **Rank Token** will be deployed from same factory as well; This is an ERC1155 extension that allows to level up tokens as well as some extended functionality which we will touch on later. This token acts as a representation of **rank** of the bearer for a particular voting subject of the **instance**. **Token id** - represents rank level; In order to get higher level rank tokens players need to have previous rank token in their possesion; This creates a ladder, where you need to either win a lot of games. Optionally making the rank tokens **tradable** enables users for **vote-to-earn** mechanism, where they could potentially sell their high-ranking token to somone who wants to have a "social lift". This is a subject to explore as tokenazible "lobbying". +## Available Distributions -To allow maximum participation, DAO will create games that can be joined by **anyone** who can fulfill basic payment requirement, however **game creators** are able to impose additional requirements, such as betting, locking, possesing as start, or paying game creator - to make games more exciting and also to allow scoping access to a particular game. +We are using [Ethereum Distribution System](https://github.com/peeramid-labs/eds) to enable users to deploy their own infrastructure in transparent and decentralized way. -Hence player can play a game of "best music" with his friends, but if he later on wants to proove his musical taste capacity somewhere in the world - he can show the rank of the token, therefore justifying his level. Furthermore such mechanisms can be explored as "burning reputation" in exchange for goods or services. Which might sound wierd, but if we give it a thought - werent we doing this some times in our lives? +In order to be out of box compatible with the interfaces & notifications of the Rankify platform, any deployment should should be done from the Peeramid Labs Distributor contract ([PeeramidLabsDistributor.sol](./src/distributors/PeeramidLabsDistributor.sol)). -The fact that there can be multiple such games also creates ability to get a **multidimensional** pattern of players competences. +Specific address for distributor deployment can be found in the [deployments](./deployments) folder. -And as a **byproduct** we are getting lists, sorted by highest score, that represent best ideas of some particular group over set of rounds. +### Meritocratic Autonomous Organization (MAO) -It's worth of noting that important concept for such a system is to ensure not just voting privacy, but also proposing privacy, together with emposing some rules (since there are subjects - at least subject must be followed). Which is untrivial task and so far the implementation falls-back to using web2 servers that will run as **Game Masters** to ensure proposer/voter semi-privacy (after round is over we will publish accounts) and proposal moderation. This is short-medium term solution -**ZK-Proofs** and eventually **FHE** and/or **TEE** should as a long term goal allow us to have fully trustless setup where we will achieve at least Full verification of data integrity or at best case - full encapsulation of data from any 3rd party viewer. +[MAODistribution.sol](./src/distributions/MAODistribution.sol) is used to create a new Meritocratic Autonomous Organization (MAO). -#### What do we have today -We can create a game, and simple dApp for that; Factory still to be implemented, as well as DAO contract and ZKProofs/Signature workflows; +This deployment will create following infrastructure: +- [RankToken](./src/tokens/RankToken.sol) - ERC1155 token used to represent the ranks in the MAO. +- [Governance token](./src/tokens/DistributableGovernanceERC20.sol) - ERC20 token used to represent the governance in the MAO. +- [ACID Distribution](./src/distributions/ArguableVotingTournament.sol) - Arguable Voting Tournament contract used to distribute governance tokens. +- [Aragon OSx DAO](https://aragon.org/) - Aragon DAO used as wrapped smart account that represents the MAO. +- [Aragon Token Voting Plugin](https://github.com/aragon/token-voting-plugin) - Aragon plugin used to vote on proposals within the DAO. -### Who will use it -For blockchain-native people this can be used as extension to any DAO system. You could determine subjects of competence (i.e. financial or technical topics) and multiply DAO participant weights against their Rank Token. +#### How to instantiate -However worth mentioning that this is going to be a first really end-user blockchain app, that is really able to change everyday life of regular people by playing such games and gradually learning way of blockchain governances. +In order to instantiate the MAO distribution, you don't need to deploy a thing. You just need to call the `instantiate` function of the the [PeeramidLabsDistributor.sol](./src/distributors/PeeramidLabsDistributor.sol) contract and specify proper distribution Id and arguments. -## Contracts +```ts +import { MAODistribution } from 'rankify-contracts/types'; +const distributorArguments: MAODistribution.DistributorArgumentsStruct = { + DAOSEttings: { + daoURI: 'https://example.com/dao', + subdomain: 'example', + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + tokenName: 'tokenName', + tokenSymbol: 'tokenSymbol', + }, + ACIDSettings: { + RankTokenContractURI: 'https://example.com/rank', + gamePrice: 1, + joinGamePrice: 1, + maxPlayersSize: 16, + maxTurns: 1, + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + minPlayersSize: 4, + paymentToken: rankify.address, + rankTokenURI: 'https://example.com/rank', + timePerTurn: 1, + timeToJoin: 1, + voteCredits: 14, + }, +}; +const data = ethers.utils.defaultAbiCoder.encode( + [ + 'tuple(tuple(string daoURI, string subdomain, bytes metadata, string tokenName, string tokenSymbol) DAOSEttings, tuple(uint256 timePerTurn, uint256 maxPlayersSize, uint256 minPlayersSize, uint256 timeToJoin, uint256 maxTurns, uint256 voteCredits, uint256 gamePrice, address paymentToken, uint256 joinGamePrice, string metadata, string rankTokenURI, string RankTokenContractURI) ACIDSettings)', + ], + [distributorArguments], +); +const distributorsDistId = process.env.DISTRIBUTOR_DIST_ID; +const tx = await distributorContract.instantiate(distributorsDistId, data); +``` -### RankifyInstance -It is a diamond contract that consit of -- [RankifyInstanceMainFacet.sol](https://github.com/rankify-it/contracts/tree/main/src/facets/RankifyInstanceMainFacet.sol) - main functionality availible to players and for read operations -- [RankifyInstanceGameMastersFacet.sol](https://github.com/rankify-it/contracts/tree/main/src/facets/RankifyInstanceGameMastersFacet.sol) - game master access only methods -- [RankifyInstanceGameOwnersFacet.sol](https://github.com/rankify-it/contracts/tree/main/src/facets/RankifyInstanceGameOwnersFacet.sol) - game owner access only -- [RankifyInstanceRequirementsFacet.sol](https://github.com/rankify-it/contracts/tree/main/src/facets/RankifyInstanceRequirementsFacet.sol) - requirements module additional functionality -- [IRankifyInstanceCommons.sol](https://github.com/rankify-it/contracts/tree/main/src/interfaces/IRankifyInstanceCommons.sol) - some common structures shared across facets and libraries +In order to get `distributorsDistId` you can call `getDistributions` at `PeeramidLabsDistributor` contract and look for. We will host a public API to get the list of distributions soon. -On the background these facets refer to a libraries that implement storage and logic, main to note are: -- [LibTurnBasedGame.sol](https://github.com/rankify-it/contracts/tree/main/src/libraries/LibTurnBasedGame.sol) - generalized functionality of a turn based game (welcome to reuse for your project :) ) -- [LibQuadraticVoting.sol](https://github.com/rankify-it/contracts/tree/main/src/libraries/LibQuadraticVoting.sol) - generalized functionality of quadradtic voting for case of multiple proposals/proposers and pre-defined vote credits -- [LibRankify.sol](https://github.com/rankify-it/contracts/tree/main/src/libraries/LibRankify.sol) - game instance functionality itself -- [LibCoinVending.sol](https://github.com/rankify-it/contracts/tree/main/src/libraries/LibCoinVending.sol) - Library that manages requirements, funds/refunds and adds ability to lock/bet/pay/burn when game reaches certain conditions +### ACID distribution -### Rank token -It's an extension of ERC1155 that adds following functionality: -- [IRankToken.sol](https://github.com/rankify-it/contracts/tree/main/src/interfaces/IRankToken.sol) - adds ability to level up tokens, set up a instance who it is connected to for emitting new tokens and ability to find accoount rank level -- [CompositeERC1155.sol](https://github.com/rankify-it/contracts/tree/main/src/abstracts/CompositeERC1155.sol) - adds ability to compose multiple rank tokens tokens in one. This we need to provide ability to create games that represent a "vector" of different "dimensions" -- [LockableERC1155.sol](https://github.com/rankify-it/contracts/tree/main/src/abstracts/LockableERC1155.sol) - adds ability to lock tokens without changing their owner. This allows to correctly display owners rank even if he is in the game, or if he composed his token in a composite - -### [Rankify token ](https://github.com/rankify-it/contracts/tree/main/src/tokens/rankify.sol) -It is just an ERC20 token, it will be owned by governing organization and will be emitted to control quotas for joining games (you will need to pay this token to join the game) - - -### Smart contract security model - -From a high level overview there is splitt of highly complex and sophisticated **RankifyInstance** from actual assets - **Rank tokens**, this is a primary reason why they are not encapsulated under one proxy. Diamond Proxy is needed for GameInstance because of planned upgrades for ZKP privacy and other improvements, and also because of size constraints on EVM bytecode. - -While all this, the DAO and Rankify Token contracts will be kept as simple as possible and isolated from depending on these contracts (at least until they are well established and battle tested) +[ArguableVotingTournament.sol](./src/distributions/ArguableVotingTournament.sol) is used to distribute governance tokens to the participants of the MAO by conducting autonomous competence identification tournaments. +This distribution deploys the Diamond Proxy that contains the following facets: +- [EIP712InspectorFacet](./src/facets/EIP712InspectorFacet.sol) - Facet that contains the main logic of the distribution. +- [RankifyInstanceMainFacet](./src/facets//RankifyInstanceMainFacet.sol) - Facet that contains the main logic of the distribution. +- [RankifyGameMastersFacetFacet](./src/facets/RankifyInstanceGameMastersFacet.sol) - Facet that contains the main logic of the distribution. +- [RankifyInstanceGameOwnersFacet](./src/facets/RankifyInstanceGameOwnersFacet.sol) - Facet that contains the ownable logic of the distribution. (NB this will be deprecated) +- [RankifyInstanceRequirementsFacet](./src/facets/RankifyInstanceRequirementsFacet.sol) - Facet that contains the requirements logic of the distribution. +To understand how it works further please refer to [docs.rankify.it](https://docs.rankify.it/governance) or ask us a question in [Discord](https://discord.gg/EddGgGUuWC) +## Contributing +We welcome contributions to improve the Rankify smart contracts. Please fork the repository and submit a pull request. +## License +This project is licensed under the MIT License. diff --git a/abi/@aragon/osx/core/dao/IDAO.sol/IDAO.json b/abi/@aragon/osx/core/dao/IDAO.sol/IDAO.json deleted file mode 100644 index 4b326850..00000000 --- a/abi/@aragon/osx/core/dao/IDAO.sol/IDAO.json +++ /dev/null @@ -1,383 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_reference", - "type": "string" - } - ], - "name": "Deposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "actor", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "callId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "indexed": false, - "internalType": "struct IDAO.Action[]", - "name": "actions", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "allowFailureMap", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "failureMap", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes[]", - "name": "execResults", - "type": "bytes[]" - } - ], - "name": "Executed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - } - ], - "name": "MetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "NativeTokenDeposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "signatureValidator", - "type": "address" - } - ], - "name": "SignatureValidatorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "callbackSelector", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "magicNumber", - "type": "bytes4" - } - ], - "name": "StandardCallbackRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "forwarder", - "type": "address" - } - ], - "name": "TrustedForwarderSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "string", - "name": "_reference", - "type": "string" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_callId", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "internalType": "struct IDAO.Action[]", - "name": "_actions", - "type": "tuple[]" - }, - { - "internalType": "uint256", - "name": "_allowFailureMap", - "type": "uint256" - } - ], - "name": "execute", - "outputs": [ - { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getTrustedForwarder", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_where", - "type": "address" - }, - { - "internalType": "address", - "name": "_who", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_permissionId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "hasPermission", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - }, - { - "internalType": "bytes4", - "name": "_callbackSelector", - "type": "bytes4" - }, - { - "internalType": "bytes4", - "name": "_magicNumber", - "type": "bytes4" - } - ], - "name": "registerStandardCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_metadata", - "type": "bytes" - } - ], - "name": "setMetadata", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_signatureValidator", - "type": "address" - } - ], - "name": "setSignatureValidator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_trustedForwarder", - "type": "address" - } - ], - "name": "setTrustedForwarder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@aragon/osx/core/plugin/IPlugin.sol/IPlugin.json b/abi/@aragon/osx/core/plugin/IPlugin.sol/IPlugin.json deleted file mode 100644 index 4fd5fb80..00000000 --- a/abi/@aragon/osx/core/plugin/IPlugin.sol/IPlugin.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "inputs": [], - "name": "pluginType", - "outputs": [ - { - "internalType": "enum IPlugin.PluginType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@aragon/osx/core/plugin/Plugin.sol/Plugin.json b/abi/@aragon/osx/core/plugin/Plugin.sol/Plugin.json deleted file mode 100644 index 429edcf7..00000000 --- a/abi/@aragon/osx/core/plugin/Plugin.sol/Plugin.json +++ /dev/null @@ -1,47 +0,0 @@ -[ - { - "inputs": [], - "name": "dao", - "outputs": [ - { - "internalType": "contract IDAO", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pluginType", - "outputs": [ - { - "internalType": "enum IPlugin.PluginType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@aragon/osx/core/plugin/dao-authorizable/DaoAuthorizable.sol/DaoAuthorizable.json b/abi/@aragon/osx/core/plugin/dao-authorizable/DaoAuthorizable.sol/DaoAuthorizable.json deleted file mode 100644 index 34f3b6d8..00000000 --- a/abi/@aragon/osx/core/plugin/dao-authorizable/DaoAuthorizable.sol/DaoAuthorizable.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "inputs": [], - "name": "dao", - "outputs": [ - { - "internalType": "contract IDAO", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/abi/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index d281aea3..00000000 --- a/abi/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.json b/abi/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.json deleted file mode 100644 index bebcf03b..00000000 --- a/abi/@openzeppelin/contracts/interfaces/IERC1271.sol/IERC1271.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "magicValue", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index f2d2b1dc..00000000 --- a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index d2e35dd4..00000000 --- a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 719d8f9c..00000000 --- a/abi/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json b/abi/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json deleted file mode 100644 index daca616b..00000000 --- a/abi/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +++ /dev/null @@ -1,416 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json b/abi/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json deleted file mode 100644 index 37d5ec72..00000000 --- a/abi/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +++ /dev/null @@ -1,295 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json b/abi/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json deleted file mode 100644 index 66694c4e..00000000 --- a/abi/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +++ /dev/null @@ -1,99 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol/ERC1155Burnable.json b/abi/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol/ERC1155Burnable.json deleted file mode 100644 index 91766d2d..00000000 --- a/abi/@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol/ERC1155Burnable.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "burnBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json b/abi/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json deleted file mode 100644 index 676059a5..00000000 --- a/abi/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +++ /dev/null @@ -1,314 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/abi/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 048513c1..00000000 --- a/abi/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/abi/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 018d9662..00000000 --- a/abi/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,185 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json b/abi/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json deleted file mode 100644 index 59f1c944..00000000 --- a/abi/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +++ /dev/null @@ -1,341 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/abi/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 5b642374..00000000 --- a/abi/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1,224 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/abi/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index e79889b0..00000000 --- a/abi/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,435 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/abi/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 6baf2dc9..00000000 --- a/abi/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,287 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/abi/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index 2505d333..00000000 --- a/abi/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,36 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json b/abi/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json deleted file mode 100644 index 677b0af0..00000000 --- a/abi/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol/ERC721Burnable.json +++ /dev/null @@ -1,448 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/abi/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 71c33c8e..00000000 --- a/abi/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.json b/abi/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.json deleted file mode 100644 index ef4740cf..00000000 --- a/abi/@openzeppelin/contracts/utils/ReentrancyGuard.sol/ReentrancyGuard.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/abi/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 4793f6ae..00000000 --- a/abi/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "StringsInsufficientHexLength", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json b/abi/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json deleted file mode 100644 index 618c81ce..00000000 --- a/abi/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +++ /dev/null @@ -1,29 +0,0 @@ -[ - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - } -] diff --git a/abi/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/abi/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index 53fa0007..00000000 --- a/abi/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/abi/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index 53fa0007..00000000 --- a/abi/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/abi/@openzeppelin/contracts/utils/math/Math.sol/Math.json deleted file mode 100644 index e75de3c8..00000000 --- a/abi/@openzeppelin/contracts/utils/math/Math.sol/Math.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "inputs": [], - "name": "MathOverflowedMulDiv", - "type": "error" - } -] diff --git a/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/MultipassDiamond.json b/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/MultipassDiamond.json deleted file mode 100644 index 3f0daa9f..00000000 --- a/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/MultipassDiamond.json +++ /dev/null @@ -1,1268 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainActivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "DomainChangesAreLive", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newFee", - "type": "uint256" - } - ], - "name": "DomainFeeChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "NewDomainName", - "type": "bytes32" - } - ], - "name": "DomainNameChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "DomainTTLChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newAmount", - "type": "uint256" - } - ], - "name": "FreeRegistrationsChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "InitializedDomain", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "discount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "freeNumber", - "type": "uint256" - } - ], - "name": "ReferralProgramChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "refferrer", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "Referred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "NewRecord", - "type": "tuple" - } - ], - "name": "Registered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - } - ], - "name": "RegistrarChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": true, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "oldName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "UserRecordModified", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "changesQeueCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "fundsWithdawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "name": "nameDeleted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "activateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "name": "changeFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrations", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "changeReferralProgram", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "newRegistrar", - "type": "address" - } - ], - "name": "changeRegistrar", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "deactivateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "deleteName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getContractState", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "getDomainState", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint24", - "name": "ttl", - "type": "uint24" - }, - { - "internalType": "uint256", - "name": "registerSize", - "type": "uint256" - } - ], - "internalType": "struct LibMultipass.Domain", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getDomainStateByIdx", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint24", - "name": "ttl", - "type": "uint24" - }, - { - "internalType": "uint256", - "name": "registerSize", - "type": "uint256" - } - ], - "internalType": "struct LibMultipass.Domain", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "getModifyPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "initializeDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "newName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - } - ], - "name": "modifyUserName", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "referrer", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "referralCode", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "resolveRecord", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "withrawFunds", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "currentChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "inspectEIP712Hashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "_CACHED_DOMAIN_SEPARATOR", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_CACHED_CHAIN_ID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_CACHED_THIS", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_HASHED_NAME", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_HASHED_VERSION", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_TYPE_HASH", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_functionSelector", - "type": "bytes4" - } - ], - "name": "facetAddress", - "outputs": [ - { - "internalType": "address", - "name": "facetAddress_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetAddresses", - "outputs": [ - { - "internalType": "address[]", - "name": "facetAddresses_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_facet", - "type": "address" - } - ], - "name": "facetFunctionSelectors", - "outputs": [ - { - "internalType": "bytes4[]", - "name": "facetFunctionSelectors_", - "type": "bytes4[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facets", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondLoupe.Facet[]", - "name": "facets_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/RankifyDiamondInstance.json b/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/RankifyDiamondInstance.json deleted file mode 100644 index 4a9ac0eb..00000000 --- a/abi/hardhat-diamond-abi/HardhatDiamondABI.sol/RankifyDiamondInstance.json +++ /dev/null @@ -1,1924 +0,0 @@ -[ - { - "inputs": [], - "name": "currentChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "inspectEIP712Hashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "_CACHED_DOMAIN_SEPARATOR", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_CACHED_CHAIN_ID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_CACHED_THIS", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_HASHED_NAME", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_HASHED_VERSION", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_TYPE_HASH", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - } - ], - "name": "GameOver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "LastTurn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "OverTime", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "string", - "name": "proposalHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposal", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "score", - "type": "uint256" - } - ], - "name": "ProposalScore", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "commitmentHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposalEncryptedByGM", - "type": "string" - } - ], - "name": "ProposalSubmitted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "string[]", - "name": "newProposals", - "type": "string[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "proposerIndicies", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[][]", - "name": "votes", - "type": "uint256[][]" - } - ], - "name": "TurnEnded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "votesHidden", - "type": "string" - } - ], - "name": "VoteSubmitted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256[][]", - "name": "votes", - "type": "uint256[][]" - }, - { - "internalType": "string[]", - "name": "newProposals", - "type": "string[]" - }, - { - "internalType": "uint256[]", - "name": "proposerIndicies", - "type": "uint256[]" - } - ], - "name": "endTurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "encryptedProposal", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "commitmentHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "proposer", - "type": "address" - } - ], - "internalType": "struct RankifyInstanceGameMastersFacet.ProposalParams", - "name": "proposalData", - "type": "tuple" - } - ], - "name": "submitProposal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "encryptedVotes", - "type": "string" - }, - { - "internalType": "address", - "name": "voter", - "type": "address" - } - ], - "name": "submitVote", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "setGamePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "setJoinGamePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMaxPlayersSize", - "type": "uint256" - } - ], - "name": "setMaxPlayersSize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMaxTurns", - "type": "uint256" - } - ], - "name": "setMaxTurns", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMinPlayersSize", - "type": "uint256" - } - ], - "name": "setMinPlayersSize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newRankToken", - "type": "address" - } - ], - "name": "setRankTokenAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newTimePerTurn", - "type": "uint256" - } - ], - "name": "setTimePerTurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newTimeToJoin", - "type": "uint256" - } - ], - "name": "setTimeToJoin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "participant", - "type": "address" - } - ], - "name": "PlayerJoined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "PlayerLeft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameid", - "type": "uint256" - } - ], - "name": "RegistrationOpen", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "gm", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "rank", - "type": "uint256" - } - ], - "name": "gameCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "canEndTurn", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "canStartGame", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "cancelGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "additionalRanks", - "type": "address[]" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "gameCreator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getContractState", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "gamePrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gamePaymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "joinGamePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numGames", - "type": "uint256" - }, - { - "internalType": "address", - "name": "rankTokenAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "contractInitialized", - "type": "bool" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "voteCredits", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxQuadraticPoints", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minQuadraticPositons", - "type": "uint256" - } - ], - "internalType": "struct LibQuadraticVoting.qVotingStruct", - "name": "voting", - "type": "tuple" - } - ], - "internalType": "struct IRankifyInstanceCommons.RInstanceSettings", - "name": "BestOfState", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "timePerTurn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPlayersSize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minPlayersSize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeToJoin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTurns", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numWinners", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "voteCredits", - "type": "uint256" - }, - { - "internalType": "string", - "name": "subject", - "type": "string" - } - ], - "internalType": "struct LibTBG.GameSettings", - "name": "TBGSEttings", - "type": "tuple" - } - ], - "internalType": "struct IRankifyInstanceCommons.RInstanceState", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getGM", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getGameRank", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayerVotedArray", - "outputs": [ - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "getPlayersGame", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayersMoved", - "outputs": [ - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getTurn", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isGameOver", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isLastTurn", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isOvertime", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "isPlayerTurnComplete", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isRegistrationOpen", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "joinGame", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "leaveGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "openRegistration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "startGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - }, - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "contractRequirement", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.configSmartRequirement[]", - "name": "contracts", - "type": "tuple[]" - } - ], - "indexed": false, - "internalType": "struct LibCoinVending.ConfigPosition", - "name": "config", - "type": "tuple" - } - ], - "name": "RequirementsConfigured", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getJoinRequirements", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "timesRefunded", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timesReleased", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timesFunded", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "contractAddresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "contractIds", - "type": "uint256[]" - }, - { - "internalType": "enum LibCoinVending.ContractTypes[]", - "name": "contractTypes", - "type": "uint8[]" - }, - { - "internalType": "bool", - "name": "_isConfigured", - "type": "bool" - } - ], - "internalType": "struct LibCoinVending.ConditionReturn", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - } - ], - "name": "getJoinRequirementsByToken", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - }, - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "contractRequirement", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.configSmartRequirement[]", - "name": "contracts", - "type": "tuple[]" - } - ], - "internalType": "struct LibCoinVending.ConfigPosition", - "name": "config", - "type": "tuple" - } - ], - "name": "setJoinRequirements", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_functionSelector", - "type": "bytes4" - } - ], - "name": "facetAddress", - "outputs": [ - { - "internalType": "address", - "name": "facetAddress_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetAddresses", - "outputs": [ - { - "internalType": "address[]", - "name": "facetAddresses_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_facet", - "type": "address" - } - ], - "name": "facetFunctionSelectors", - "outputs": [ - { - "internalType": "bytes4[]", - "name": "facetFunctionSelectors_", - "type": "bytes4[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facets", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondLoupe.Facet[]", - "name": "facets_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/abstracts/CompositeERC1155.sol/CompositeERC1155.json b/abi/src/abstracts/CompositeERC1155.sol/CompositeERC1155.json deleted file mode 100644 index 36a7cd56..00000000 --- a/abi/src/abstracts/CompositeERC1155.sol/CompositeERC1155.json +++ /dev/null @@ -1,600 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "decompose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getComponents", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unlockedBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/abstracts/IInstallerPlugin.sol/IInstallerPlugin.json b/abi/src/abstracts/IInstallerPlugin.sol/IInstallerPlugin.json deleted file mode 100644 index 9ba5ea93..00000000 --- a/abi/src/abstracts/IInstallerPlugin.sol/IInstallerPlugin.json +++ /dev/null @@ -1,355 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "repository", - "type": "address" - } - ], - "name": "InvalidRepository", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "has", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "needs", - "type": "tuple" - } - ], - "name": "InvalidVersion", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "NotAnInstance", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "indexed": true, - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "Instantiated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "Removed", - "type": "event" - }, - { - "inputs": [], - "name": "dao", - "outputs": [ - { - "internalType": "contract IDAO", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "internalType": "address[]", - "name": "instaneContracts", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "getSourceControl", - "outputs": [ - { - "internalType": "contract ISourceController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "instanceCheck", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "instanceVersion", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "instantiate", - "outputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - }, - { - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "instantiateExact", - "outputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pluginType", - "outputs": [ - { - "internalType": "enum IPlugin.PluginType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "remove", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "tryInstanceId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/abstracts/LockableERC1155.sol/LockableERC1155.json b/abi/src/abstracts/LockableERC1155.sol/LockableERC1155.json deleted file mode 100644 index d1af17bf..00000000 --- a/abi/src/abstracts/LockableERC1155.sol/LockableERC1155.json +++ /dev/null @@ -1,536 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unlockedBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/facets/DNSFacet.sol/DNSFacet.json b/abi/src/facets/DNSFacet.sol/DNSFacet.json deleted file mode 100644 index deaf48f5..00000000 --- a/abi/src/facets/DNSFacet.sol/DNSFacet.json +++ /dev/null @@ -1,1077 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainActivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "DomainChangesAreLive", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newFee", - "type": "uint256" - } - ], - "name": "DomainFeeChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "NewDomainName", - "type": "bytes32" - } - ], - "name": "DomainNameChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "DomainTTLChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newAmount", - "type": "uint256" - } - ], - "name": "FreeRegistrationsChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "InitializedDomain", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "discount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "freeNumber", - "type": "uint256" - } - ], - "name": "ReferralProgramChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "refferrer", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "Referred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "NewRecord", - "type": "tuple" - } - ], - "name": "Registered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - } - ], - "name": "RegistrarChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": true, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "oldName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "UserRecordModified", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "changesQeueCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "fundsWithdawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "name": "nameDeleted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "activateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "name": "changeFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrations", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "changeReferralProgram", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "newRegistrar", - "type": "address" - } - ], - "name": "changeRegistrar", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "deactivateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "deleteName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getContractState", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "getDomainState", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint24", - "name": "ttl", - "type": "uint24" - }, - { - "internalType": "uint256", - "name": "registerSize", - "type": "uint256" - } - ], - "internalType": "struct LibMultipass.Domain", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getDomainStateByIdx", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint24", - "name": "ttl", - "type": "uint24" - }, - { - "internalType": "uint256", - "name": "registerSize", - "type": "uint256" - } - ], - "internalType": "struct LibMultipass.Domain", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "getModifyPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "initializeDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "newName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - } - ], - "name": "modifyUserName", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "referrer", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "referralCode", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "resolveRecord", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "withrawFunds", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/facets/EIP712InspectorFacet.sol/EIP712InspectorFacet.json b/abi/src/facets/EIP712InspectorFacet.sol/EIP712InspectorFacet.json deleted file mode 100644 index 5d546d9b..00000000 --- a/abi/src/facets/EIP712InspectorFacet.sol/EIP712InspectorFacet.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "inputs": [], - "name": "currentChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "inspectEIP712Hashes", - "outputs": [ - { - "internalType": "bytes32", - "name": "_CACHED_DOMAIN_SEPARATOR", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_CACHED_CHAIN_ID", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_CACHED_THIS", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_HASHED_NAME", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_HASHED_VERSION", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_TYPE_HASH", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/facets/RankifyInstanceGameMastersFacet.sol/RankifyInstanceGameMastersFacet.json b/abi/src/facets/RankifyInstanceGameMastersFacet.sol/RankifyInstanceGameMastersFacet.json deleted file mode 100644 index c90a6b14..00000000 --- a/abi/src/facets/RankifyInstanceGameMastersFacet.sol/RankifyInstanceGameMastersFacet.json +++ /dev/null @@ -1,293 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - } - ], - "name": "GameOver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "LastTurn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "OverTime", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "string", - "name": "proposalHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposal", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "score", - "type": "uint256" - } - ], - "name": "ProposalScore", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "commitmentHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposalEncryptedByGM", - "type": "string" - } - ], - "name": "ProposalSubmitted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "string[]", - "name": "newProposals", - "type": "string[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "proposerIndicies", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[][]", - "name": "votes", - "type": "uint256[][]" - } - ], - "name": "TurnEnded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "votesHidden", - "type": "string" - } - ], - "name": "VoteSubmitted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256[][]", - "name": "votes", - "type": "uint256[][]" - }, - { - "internalType": "string[]", - "name": "newProposals", - "type": "string[]" - }, - { - "internalType": "uint256[]", - "name": "proposerIndicies", - "type": "uint256[]" - } - ], - "name": "endTurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "encryptedProposal", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "commitmentHash", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "proposer", - "type": "address" - } - ], - "internalType": "struct RankifyInstanceGameMastersFacet.ProposalParams", - "name": "proposalData", - "type": "tuple" - } - ], - "name": "submitProposal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "string", - "name": "encryptedVotes", - "type": "string" - }, - { - "internalType": "address", - "name": "voter", - "type": "address" - } - ], - "name": "submitVote", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/facets/RankifyInstanceGameOwnersFacet.sol/RankifyInstanceGameOwnersFacet.json b/abi/src/facets/RankifyInstanceGameOwnersFacet.sol/RankifyInstanceGameOwnersFacet.json deleted file mode 100644 index e567a8af..00000000 --- a/abi/src/facets/RankifyInstanceGameOwnersFacet.sol/RankifyInstanceGameOwnersFacet.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "setGamePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } - ], - "name": "setJoinGamePrice", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMaxPlayersSize", - "type": "uint256" - } - ], - "name": "setMaxPlayersSize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMaxTurns", - "type": "uint256" - } - ], - "name": "setMaxTurns", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newMinPlayersSize", - "type": "uint256" - } - ], - "name": "setMinPlayersSize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newRankToken", - "type": "address" - } - ], - "name": "setRankTokenAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newTimePerTurn", - "type": "uint256" - } - ], - "name": "setTimePerTurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newTimeToJoin", - "type": "uint256" - } - ], - "name": "setTimeToJoin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/facets/RankifyInstanceMainFacet.sol/RankifyInstanceMainFacet.json b/abi/src/facets/RankifyInstanceMainFacet.sol/RankifyInstanceMainFacet.json deleted file mode 100644 index b8d48206..00000000 --- a/abi/src/facets/RankifyInstanceMainFacet.sol/RankifyInstanceMainFacet.json +++ /dev/null @@ -1,796 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "participant", - "type": "address" - } - ], - "name": "PlayerJoined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "PlayerLeft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameid", - "type": "uint256" - } - ], - "name": "RegistrationOpen", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "gm", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "rank", - "type": "uint256" - } - ], - "name": "gameCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "canEndTurn", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "canStartGame", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "cancelGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "gameMaster", - "type": "address" - }, - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gameRank", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "additionalRanks", - "type": "address[]" - } - ], - "name": "createGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "gameCreator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getContractState", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "gamePrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gamePaymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "joinGamePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numGames", - "type": "uint256" - }, - { - "internalType": "address", - "name": "rankTokenAddress", - "type": "address" - }, - { - "internalType": "bool", - "name": "contractInitialized", - "type": "bool" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "voteCredits", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxQuadraticPoints", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minQuadraticPositons", - "type": "uint256" - } - ], - "internalType": "struct LibQuadraticVoting.qVotingStruct", - "name": "voting", - "type": "tuple" - } - ], - "internalType": "struct IRankifyInstanceCommons.RInstanceSettings", - "name": "BestOfState", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "timePerTurn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPlayersSize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minPlayersSize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timeToJoin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTurns", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numWinners", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "voteCredits", - "type": "uint256" - }, - { - "internalType": "string", - "name": "subject", - "type": "string" - } - ], - "internalType": "struct LibTBG.GameSettings", - "name": "TBGSEttings", - "type": "tuple" - } - ], - "internalType": "struct IRankifyInstanceCommons.RInstanceState", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getGM", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getGameRank", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayerVotedArray", - "outputs": [ - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayers", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "getPlayersGame", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getPlayersMoved", - "outputs": [ - { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getTurn", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isGameOver", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isLastTurn", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isOvertime", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "isPlayerTurnComplete", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "isRegistrationOpen", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "joinGame", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "leaveGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "openRegistration", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "startGame", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/facets/RankifyInstanceRequirementsFacet.sol/RankifyInstanceRequirementsFacet.json b/abi/src/facets/RankifyInstanceRequirementsFacet.sol/RankifyInstanceRequirementsFacet.json deleted file mode 100644 index e75d5145..00000000 --- a/abi/src/facets/RankifyInstanceRequirementsFacet.sol/RankifyInstanceRequirementsFacet.json +++ /dev/null @@ -1,544 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - }, - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "contractRequirement", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.configSmartRequirement[]", - "name": "contracts", - "type": "tuple[]" - } - ], - "indexed": false, - "internalType": "struct LibCoinVending.ConfigPosition", - "name": "config", - "type": "tuple" - } - ], - "name": "RequirementsConfigured", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "getJoinRequirements", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "internalType": "uint256", - "name": "timesRefunded", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timesReleased", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "timesFunded", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "contractAddresses", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "contractIds", - "type": "uint256[]" - }, - { - "internalType": "enum LibCoinVending.ContractTypes[]", - "name": "contractTypes", - "type": "uint8[]" - }, - { - "internalType": "bool", - "name": "_isConfigured", - "type": "bool" - } - ], - "internalType": "struct LibCoinVending.ConditionReturn", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - } - ], - "name": "getJoinRequirementsByToken", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - }, - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "contractRequirement", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.configSmartRequirement[]", - "name": "contracts", - "type": "tuple[]" - } - ], - "internalType": "struct LibCoinVending.ConfigPosition", - "name": "config", - "type": "tuple" - } - ], - "name": "setJoinRequirements", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/initializers/DiamondInit.sol/DiamondInit.json b/abi/src/initializers/DiamondInit.sol/DiamondInit.json deleted file mode 100644 index dcbf256b..00000000 --- a/abi/src/initializers/DiamondInit.sol/DiamondInit.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "inputs": [], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/initializers/MultipassInit.sol/MultipassInit.json b/abi/src/initializers/MultipassInit.sol/MultipassInit.json deleted file mode 100644 index 26dfdb2e..00000000 --- a/abi/src/initializers/MultipassInit.sol/MultipassInit.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/initializers/RankifyInstanceInit.sol/RankifyInstanceInit.json b/abi/src/initializers/RankifyInstanceInit.sol/RankifyInstanceInit.json deleted file mode 100644 index 67d1de1a..00000000 --- a/abi/src/initializers/RankifyInstanceInit.sol/RankifyInstanceInit.json +++ /dev/null @@ -1,87 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "timePerTurn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxPlayersSize", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minPlayersSize", - "type": "uint256" - }, - { - "internalType": "address", - "name": "rankTokenAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "timeToJoin", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gamePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "joinGamePrice", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTurns", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numWinners", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "voteCredits", - "type": "uint256" - }, - { - "internalType": "string", - "name": "subject", - "type": "string" - }, - { - "internalType": "address", - "name": "rankifyToken", - "type": "address" - } - ], - "internalType": "struct RankifyInstanceInit.contractInitializer", - "name": "initializer", - "type": "tuple" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/initializers/RankifyInstanceMigration.sol/RankifyInstanceMigration.json b/abi/src/initializers/RankifyInstanceMigration.sol/RankifyInstanceMigration.json deleted file mode 100644 index dcbf256b..00000000 --- a/abi/src/initializers/RankifyInstanceMigration.sol/RankifyInstanceMigration.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "inputs": [], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/interfaces/IERC1155Receiver.sol/IERC1155Receiver.json b/abi/src/interfaces/IERC1155Receiver.sol/IERC1155Receiver.json deleted file mode 100644 index 8d9459d7..00000000 --- a/abi/src/interfaces/IERC1155Receiver.sol/IERC1155Receiver.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/interfaces/ILockableERC1155.sol/ILockableERC1155.json b/abi/src/interfaces/ILockableERC1155.sol/ILockableERC1155.json deleted file mode 100644 index c5322412..00000000 --- a/abi/src/interfaces/ILockableERC1155.sol/ILockableERC1155.json +++ /dev/null @@ -1,415 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unlockedBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/interfaces/IMultipass.sol/IMultipass.json b/abi/src/interfaces/IMultipass.sol/IMultipass.json deleted file mode 100644 index eb566f0e..00000000 --- a/abi/src/interfaces/IMultipass.sol/IMultipass.json +++ /dev/null @@ -1,1011 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainActivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "DomainChangesAreLive", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "DomainDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newFee", - "type": "uint256" - } - ], - "name": "DomainFeeChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "NewDomainName", - "type": "bytes32" - } - ], - "name": "DomainNameChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "DomainTTLChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "domainIndex", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "newAmount", - "type": "uint256" - } - ], - "name": "FreeRegistrationsChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "InitializedDomain", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "reward", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "discount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "freeNumber", - "type": "uint256" - } - ], - "name": "ReferralProgramChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "refferrer", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "Referred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": false, - "internalType": "struct LibMultipass.Record", - "name": "NewRecord", - "type": "tuple" - } - ], - "name": "Registered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "registrar", - "type": "address" - } - ], - "name": "RegistrarChangeRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "indexed": true, - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "oldName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "UserRecordModified", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32[]", - "name": "changes", - "type": "bytes32[]" - } - ], - "name": "changesQeueCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "fundsWithdawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "name": "nameDeleted", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "activateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "name": "changeFee", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "referrerFeeShare", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrations", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "changeReferralProgram", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "newRegistrar", - "type": "address" - } - ], - "name": "changeRegistrar", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "deactivateDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "deleteName", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getContractState", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "name": "getDomainState", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint24", - "name": "ttl", - "type": "uint24" - }, - { - "internalType": "uint256", - "name": "registerSize", - "type": "uint256" - } - ], - "internalType": "struct LibMultipass.Domain", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "getModifyPrice", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registrar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "freeRegistrationsNumber", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "referrerReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "referralDiscount", - "type": "uint256" - } - ], - "name": "initializeDomain", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "newName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - } - ], - "name": "modifyUserName", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "newRecord", - "type": "tuple" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "registrarSignature", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "signatureDeadline", - "type": "uint256" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "referrer", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "referralCode", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "targetDomain", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.NameQuery", - "name": "query", - "type": "tuple" - } - ], - "name": "resolveRecord", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - }, - { - "components": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "uint96", - "name": "nonce", - "type": "uint96" - }, - { - "internalType": "bytes32", - "name": "domainName", - "type": "bytes32" - } - ], - "internalType": "struct LibMultipass.Record", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "withrawFunds", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/interfaces/IRankToken.sol/IRankToken.json b/abi/src/interfaces/IRankToken.sol/IRankToken.json deleted file mode 100644 index e5b7aa3c..00000000 --- a/abi/src/interfaces/IRankToken.sol/IRankToken.json +++ /dev/null @@ -1,497 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newRankingInstance", - "type": "address" - } - ], - "name": "RankingInstanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "batchMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRankingInstance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "poolId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unlockedBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/interfaces/IRankifyInstanceCommons.sol/IRankifyInstanceCommons.json b/abi/src/interfaces/IRankifyInstanceCommons.sol/IRankifyInstanceCommons.json deleted file mode 100644 index ad7b404a..00000000 --- a/abi/src/interfaces/IRankifyInstanceCommons.sol/IRankifyInstanceCommons.json +++ /dev/null @@ -1,110 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "participant", - "type": "address" - } - ], - "name": "PlayerJoined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "PlayerLeft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameid", - "type": "uint256" - } - ], - "name": "RegistrationOpen", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "gm", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "rank", - "type": "uint256" - } - ], - "name": "gameCreated", - "type": "event" - } -] diff --git a/abi/src/interfaces/eds/IDistributon.sol/IDistributon.json b/abi/src/interfaces/eds/IDistributon.sol/IDistributon.json deleted file mode 100644 index f52c38fc..00000000 --- a/abi/src/interfaces/eds/IDistributon.sol/IDistributon.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement", - "name": "requirement", - "type": "tuple" - } - ], - "name": "InvalidVersion", - "type": "error" - }, - { - "inputs": [], - "name": "getDistribution", - "outputs": [ - { - "components": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement[]", - "name": "requiredSources", - "type": "tuple[]" - }, - { - "internalType": "bytes4[][]", - "name": "initializerFnSelectors", - "type": "bytes4[][]" - } - ], - "internalType": "struct Distribution", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDistributionId", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/interfaces/eds/IInstantiator.sol/IInstantiator.json b/abi/src/interfaces/eds/IInstantiator.sol/IInstantiator.json deleted file mode 100644 index 62243565..00000000 --- a/abi/src/interfaces/eds/IInstantiator.sol/IInstantiator.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "repository", - "type": "address" - } - ], - "name": "InvalidRepository", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "has", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "needs", - "type": "tuple" - } - ], - "name": "InvalidVersion", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "NotAnInstance", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "indexed": true, - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "Instantiated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "Removed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "internalType": "address[]", - "name": "instaneContracts", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "getSourceControl", - "outputs": [ - { - "internalType": "contract ISourceController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "instanceCheck", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "instanceVersion", - "outputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "instantiate", - "outputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "version", - "type": "tuple" - }, - { - "internalType": "bytes[][]", - "name": "args", - "type": "bytes[][]" - } - ], - "name": "instantiateExact", - "outputs": [ - { - "internalType": "uint256", - "name": "instanceId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "remove", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instance", - "type": "address" - } - ], - "name": "tryInstanceId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/interfaces/eds/IRepository.sol/IRepository.json b/abi/src/interfaces/eds/IRepository.sol/IRepository.json deleted file mode 100644 index d3c690ef..00000000 --- a/abi/src/interfaces/eds/IRepository.sol/IRepository.json +++ /dev/null @@ -1,417 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - } - ], - "name": "AlreadyInPreviousRelease", - "type": "error" - }, - { - "inputs": [], - "name": "EmptyReleaseMetadata", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "latestRelease", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "newRelease", - "type": "uint8" - } - ], - "name": "InvalidReleaseIncrement", - "type": "error" - }, - { - "inputs": [], - "name": "ReleaseDoesNotExist", - "type": "error" - }, - { - "inputs": [], - "name": "ReleaseZeroNotAllowed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "versionHash", - "type": "bytes32" - } - ], - "name": "VersionHashDoesNotExist", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "releaseMetadata", - "type": "bytes" - } - ], - "name": "ReleaseMetadataUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "build", - "type": "uint16" - }, - { - "indexed": true, - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - } - ], - "name": "VersionCreated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - } - ], - "name": "buildCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "releaseMetadata", - "type": "bytes" - } - ], - "name": "createVersion", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "source", - "type": "address" - } - ], - "name": "getLatestVersion", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "tag", - "type": "tuple" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "enum SourceTypes", - "name": "sourceType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - } - ], - "internalType": "struct Version", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - } - ], - "name": "getLatestVersion", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "tag", - "type": "tuple" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "enum SourceTypes", - "name": "sourceType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - } - ], - "internalType": "struct Version", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "tagHash", - "type": "bytes32" - } - ], - "name": "getVersion", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "tag", - "type": "tuple" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "enum SourceTypes", - "name": "sourceType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - } - ], - "internalType": "struct Version", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "tag", - "type": "tuple" - } - ], - "name": "getVersion", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "tag", - "type": "tuple" - }, - { - "internalType": "address", - "name": "source", - "type": "address" - }, - { - "internalType": "enum SourceTypes", - "name": "sourceType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "buildMetadata", - "type": "bytes" - } - ], - "internalType": "struct Version", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "latestRelease", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "releaseMetadata", - "type": "bytes" - } - ], - "name": "updateReleaseMetadata", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/interfaces/eds/ISourceController.sol/ISourceController.json b/abi/src/interfaces/eds/ISourceController.sol/ISourceController.json deleted file mode 100644 index 37cafc1f..00000000 --- a/abi/src/interfaces/eds/ISourceController.sol/ISourceController.json +++ /dev/null @@ -1,357 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "indexed": false, - "internalType": "struct VersionRequirement", - "name": "versionRequired", - "type": "tuple" - } - ], - "name": "RepositoryAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "indexed": false, - "internalType": "struct VersionRequirement", - "name": "versionRequired", - "type": "tuple" - } - ], - "name": "VersionRequirementSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IRepository[]", - "name": "repositories", - "type": "address[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement[]", - "name": "requirements", - "type": "tuple[]" - } - ], - "name": "addBatchDistributors", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement", - "name": "versionRequired", - "type": "tuple" - } - ], - "name": "addDistributor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDistributors", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - } - ], - "name": "getVersionRequired", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "distributor", - "type": "address" - } - ], - "name": "isDistributor", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository[]", - "name": "repositories", - "type": "address[]" - } - ], - "name": "removeBatchDistributors", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - } - ], - "name": "removeDistributor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository[]", - "name": "repositories", - "type": "address[]" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement[]", - "name": "requirements", - "type": "tuple[]" - } - ], - "name": "setBatchVersionRequirements", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IRepository", - "name": "repository", - "type": "address" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "release", - "type": "uint8" - }, - { - "internalType": "uint16", - "name": "build", - "type": "uint16" - } - ], - "internalType": "struct Tag", - "name": "baseVersion", - "type": "tuple" - }, - { - "internalType": "enum VersionRequirementTypes", - "name": "requirementType", - "type": "uint8" - } - ], - "internalType": "struct VersionRequirement", - "name": "versionRequired", - "type": "tuple" - } - ], - "name": "setVersionRequirement", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/mocks/MockERC1155.sol/MockERC1155.json b/abi/src/mocks/MockERC1155.sol/MockERC1155.json deleted file mode 100644 index 699471b5..00000000 --- a/abi/src/mocks/MockERC1155.sol/MockERC1155.json +++ /dev/null @@ -1,631 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "uri_", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "batchMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "burnBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "levelUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "poolId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/mocks/MockERC20.sol/MockERC20.json b/abi/src/mocks/MockERC20.sol/MockERC20.json deleted file mode 100644 index 21fd99df..00000000 --- a/abi/src/mocks/MockERC20.sol/MockERC20.json +++ /dev/null @@ -1,454 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/mocks/MockERC721.sol/MockERC721.json b/abi/src/mocks/MockERC721.sol/MockERC721.json deleted file mode 100644 index 6650c0bf..00000000 --- a/abi/src/mocks/MockERC721.sol/MockERC721.json +++ /dev/null @@ -1,615 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getLastTokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "levelUp", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mintNext", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/mocks/MockVendingMachine.sol/MockVendingMachine.json b/abi/src/mocks/MockVendingMachine.sol/MockVendingMachine.json deleted file mode 100644 index 1851d449..00000000 --- a/abi/src/mocks/MockVendingMachine.sol/MockVendingMachine.json +++ /dev/null @@ -1,399 +0,0 @@ -[ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ReentrancyGuardReentrantCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "position", - "type": "bytes32" - }, - { - "components": [ - { - "components": [ - { - "internalType": "uint256", - "name": "have", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lock", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "burn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "pay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bet", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.NumericCondition", - "name": "ethValues", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "contractId", - "type": "uint256" - }, - { - "internalType": "enum LibCoinVending.ContractTypes", - "name": "contractType", - "type": "uint8" - }, - { - "components": [ - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "have", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "lock", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "burn", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "pay", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct LibCoinVending.TransactionProperties", - "name": "bet", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.ContractCondition", - "name": "contractRequirement", - "type": "tuple" - } - ], - "internalType": "struct LibCoinVending.configSmartRequirement[]", - "name": "contracts", - "type": "tuple[]" - } - ], - "internalType": "struct LibCoinVending.ConfigPosition", - "name": "configuration", - "type": "tuple" - } - ], - "name": "createPosition", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_positionName", - "type": "bytes32" - } - ], - "name": "fund", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "participants", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_positionName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "refund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_positionName", - "type": "bytes32" - } - ], - "name": "refundBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_positionName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "payee", - "type": "address" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "release", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_positionName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "payee", - "type": "address" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "releaseAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/mocks/RankifyInstanceEventMock.sol/RankifyInstanceEventMock.json b/abi/src/mocks/RankifyInstanceEventMock.sol/RankifyInstanceEventMock.json deleted file mode 100644 index cba5a531..00000000 --- a/abi/src/mocks/RankifyInstanceEventMock.sol/RankifyInstanceEventMock.json +++ /dev/null @@ -1,327 +0,0 @@ -[ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": true, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - } - ], - "name": "GameOver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "GameStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "LastTurn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - } - ], - "name": "OverTime", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "participant", - "type": "address" - } - ], - "name": "PlayerJoined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - } - ], - "name": "PlayerLeft", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "string", - "name": "proposalHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposal", - "type": "string" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "score", - "type": "uint256" - } - ], - "name": "ProposalScore", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "commitmentHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "proposalEncryptedByGM", - "type": "string" - } - ], - "name": "ProposalSubmitted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameid", - "type": "uint256" - } - ], - "name": "RegistrationOpen", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "players", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "scores", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "string[]", - "name": "newProposals", - "type": "string[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "proposerIndicies", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[][]", - "name": "votes", - "type": "uint256[][]" - } - ], - "name": "TurnEnded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "turn", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "player", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "votesHidden", - "type": "string" - } - ], - "name": "VoteSubmitted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "gameId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "gm", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "rank", - "type": "uint256" - } - ], - "name": "gameCreated", - "type": "event" - }, - { - "inputs": [], - "name": "fireAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/tokens/RankToken.sol/RankToken.json b/abi/src/tokens/RankToken.sol/RankToken.json deleted file mode 100644 index f7689da1..00000000 --- a/abi/src/tokens/RankToken.sol/RankToken.json +++ /dev/null @@ -1,876 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "string", - "name": "uri_", - "type": "string" - }, - { - "internalType": "address", - "name": "owner_", - "type": "address" - }, - { - "internalType": "string", - "name": "cURI", - "type": "string" - }, - { - "internalType": "uint256", - "name": "levelUpThreshold", - "type": "uint256" - }, - { - "internalType": "address[]", - "name": "components", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "componentWeights", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newRankingInstance", - "type": "address" - } - ], - "name": "RankingInstanceUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TokensUnlocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "batchMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "contractURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "decompose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getComponents", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getRankingInstance", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "level", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "rank", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setContractURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "uri_", - "type": "string" - } - ], - "name": "setURI", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "topRank", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unlockedBalanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newRankingInstance", - "type": "address" - } - ], - "name": "updateRankingInstance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/tokens/Rankify.sol/Rankify.json b/abi/src/tokens/Rankify.sol/Rankify.json deleted file mode 100644 index af7f6e55..00000000 --- a/abi/src/tokens/Rankify.sol/Rankify.json +++ /dev/null @@ -1,444 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/Diamond.sol/Diamond.json b/abi/src/vendor/Diamond.sol/Diamond.json deleted file mode 100644 index 5d77534a..00000000 --- a/abi/src/vendor/Diamond.sol/Diamond.json +++ /dev/null @@ -1,87 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "address", - "name": "_contractOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "_diamondCutFacet", - "type": "address" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "indexed": false, - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "DiamondCut", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "stateMutability": "payable", - "type": "receive" - } -] diff --git a/abi/src/vendor/facets/DiamondCutFacet.sol/DiamondCutFacet.json b/abi/src/vendor/facets/DiamondCutFacet.sol/DiamondCutFacet.json deleted file mode 100644 index 84f646b3..00000000 --- a/abi/src/vendor/facets/DiamondCutFacet.sol/DiamondCutFacet.json +++ /dev/null @@ -1,84 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "indexed": false, - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "DiamondCut", - "type": "event" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "diamondCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/facets/DiamondLoupeFacet.sol/DiamondLoupeFacet.json b/abi/src/vendor/facets/DiamondLoupeFacet.sol/DiamondLoupeFacet.json deleted file mode 100644 index a512a345..00000000 --- a/abi/src/vendor/facets/DiamondLoupeFacet.sol/DiamondLoupeFacet.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_functionSelector", - "type": "bytes4" - } - ], - "name": "facetAddress", - "outputs": [ - { - "internalType": "address", - "name": "facetAddress_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetAddresses", - "outputs": [ - { - "internalType": "address[]", - "name": "facetAddresses_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_facet", - "type": "address" - } - ], - "name": "facetFunctionSelectors", - "outputs": [ - { - "internalType": "bytes4[]", - "name": "facetFunctionSelectors_", - "type": "bytes4[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facets", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondLoupe.Facet[]", - "name": "facets_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/vendor/facets/OwnershipFacet.sol/OwnershipFacet.json b/abi/src/vendor/facets/OwnershipFacet.sol/OwnershipFacet.json deleted file mode 100644 index 73ddfa90..00000000 --- a/abi/src/vendor/facets/OwnershipFacet.sol/OwnershipFacet.json +++ /dev/null @@ -1,47 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/facets/Test1Facet.sol/Test1Facet.json b/abi/src/vendor/facets/Test1Facet.sol/Test1Facet.json deleted file mode 100644 index a85e28b9..00000000 --- a/abi/src/vendor/facets/Test1Facet.sol/Test1Facet.json +++ /dev/null @@ -1,174 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "something", - "type": "address" - } - ], - "name": "TestEvent", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_interfaceID", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func1", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func10", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func11", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func12", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func13", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func14", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func15", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func16", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func17", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func18", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func19", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func2", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func3", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func4", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func5", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func6", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func7", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func8", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test1Func9", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/facets/Test2Facet.sol/Test2Facet.json b/abi/src/vendor/facets/Test2Facet.sol/Test2Facet.json deleted file mode 100644 index d81a1d80..00000000 --- a/abi/src/vendor/facets/Test2Facet.sol/Test2Facet.json +++ /dev/null @@ -1,142 +0,0 @@ -[ - { - "inputs": [], - "name": "test2Func1", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func10", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func11", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func12", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func13", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func14", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func15", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func16", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func17", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func18", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func19", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func2", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func20", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func3", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func4", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func5", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func6", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func7", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func8", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "test2Func9", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/interfaces/IDiamondCut.sol/IDiamondCut.json b/abi/src/vendor/interfaces/IDiamondCut.sol/IDiamondCut.json deleted file mode 100644 index f424e031..00000000 --- a/abi/src/vendor/interfaces/IDiamondCut.sol/IDiamondCut.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "diamondCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json b/abi/src/vendor/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json deleted file mode 100644 index 57ddec38..00000000 --- a/abi/src/vendor/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +++ /dev/null @@ -1,78 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "_functionSelector", - "type": "bytes4" - } - ], - "name": "facetAddress", - "outputs": [ - { - "internalType": "address", - "name": "facetAddress_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facetAddresses", - "outputs": [ - { - "internalType": "address[]", - "name": "facetAddresses_", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_facet", - "type": "address" - } - ], - "name": "facetFunctionSelectors", - "outputs": [ - { - "internalType": "bytes4[]", - "name": "facetFunctionSelectors_", - "type": "bytes4[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "facets", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "internalType": "struct IDiamondLoupe.Facet[]", - "name": "facets_", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/vendor/interfaces/IERC165.sol/IERC165.json b/abi/src/vendor/interfaces/IERC165.sol/IERC165.json deleted file mode 100644 index 53fa0007..00000000 --- a/abi/src/vendor/interfaces/IERC165.sol/IERC165.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } -] diff --git a/abi/src/vendor/interfaces/IERC173.sol/IERC173.json b/abi/src/vendor/interfaces/IERC173.sol/IERC173.json deleted file mode 100644 index 4904a033..00000000 --- a/abi/src/vendor/interfaces/IERC173.sol/IERC173.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/abi/src/vendor/libraries/LibDiamond.sol/LibDiamond.json b/abi/src/vendor/libraries/LibDiamond.sol/LibDiamond.json deleted file mode 100644 index 7af8f797..00000000 --- a/abi/src/vendor/libraries/LibDiamond.sol/LibDiamond.json +++ /dev/null @@ -1,63 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "facetAddress", - "type": "address" - }, - { - "internalType": "enum IDiamondCut.FacetCutAction", - "name": "action", - "type": "uint8" - }, - { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } - ], - "indexed": false, - "internalType": "struct IDiamondCut.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } - ], - "name": "DiamondCut", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - } -] diff --git a/deploy/01_deployRankToken.ts b/deploy/01_deployRankToken.ts deleted file mode 100644 index a2b78f8c..00000000 --- a/deploy/01_deployRankToken.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import { DeployFunction } from 'hardhat-deploy/types'; -import { ethers } from 'hardhat'; -import path from 'path'; -const ASSETS_PREFIX = 'https://assets.vote4best.app/'; -const contractURI = ASSETS_PREFIX + 'musicRankToken.json'; -const tURI = path.join(ASSETS_PREFIX, 'rank'); - -const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { - const { deployments, getNamedAccounts } = hre; - const { deploy } = deployments; - - const { deployer } = await getNamedAccounts(); - let URI: string, ContractURI: string; - - URI = tURI; - ContractURI = contractURI; - const owner = process.env.DAO_CONTRACT_ADDRESS || deployer; - - const result = await deploy('RankToken', { - from: deployer, - args: [URI, owner, ContractURI, ethers.BigNumber.from(3), [], []], - skipIfAlreadyDeployed: true, - }); - console.log('deployed rank token at', result.address); -}; - -export default func; -func.tags = ['rank_token', 'rankify']; diff --git a/deploy/02_deployRankify.ts b/deploy/02_deployRankify.ts index c69b5e3b..f4f53396 100644 --- a/deploy/02_deployRankify.ts +++ b/deploy/02_deployRankify.ts @@ -15,4 +15,4 @@ const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { }; export default func; -func.tags = ['rankify_token', 'rankify']; +func.tags = ['rankify']; diff --git a/deploy/03_deployGame.ts b/deploy/03_deployGame.ts deleted file mode 100644 index 5c456e07..00000000 --- a/deploy/03_deployGame.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import { DeployFunction } from 'hardhat-deploy/types'; -import { - RANKIFY_INSTANCE_CONTRACT_NAME, - RANKIFY_INSTANCE_CONTRACT_VERSION, - RInstance_TIME_PER_TURN, - RInstance_MAX_PLAYERS, - RInstance_MIN_PLAYERS, - RInstance_MAX_TURNS, - RInstance_TIME_TO_JOIN, - RInstance_GAME_PRICE, - RInstance_JOIN_GAME_PRICE, - RInstance_NUM_WINNERS, - RInstance_VOTE_CREDITS, - RInstance_SUBJECT, -} from '../test/utils'; -import { ethers } from 'hardhat'; -import { RankifyInstanceInit } from '../types/src/initializers/RankifyInstanceInit'; -import { RankToken } from '../types/src/tokens/RankToken'; -import { RankifyDiamondInstance } from '../types/hardhat-diamond-abi/HardhatDiamondABI.sol'; -import { getProcessEnv } from '../scripts/libraries/utils'; -import { Rankify } from '../types'; -const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { - const { deployments, getNamedAccounts } = hre; - const { deploy, diamond, getOrNull } = deployments; - const { deployer, owner } = await getNamedAccounts(); - if (process.env.NODE_ENV !== 'TEST') { - if (!process.env.RANKIFY_INSTANCE_CONTRACT_VERSION || !process.env.RANKIFY_INSTANCE_CONTRACT_NAME) - throw new Error('EIP712 intializer args not set'); - } - - const rankTokenDeployment = await deployments.get('RankToken'); - const rankifyTokenDeployment = await deployments.get('Rankify'); - const rankToken = new ethers.Contract( - rankTokenDeployment.address, - rankTokenDeployment.abi, - hre.ethers.provider.getSigner(deployer), - ) as RankToken; - console.log('rankifyToken', rankifyTokenDeployment.address); - const rankifyToken = new ethers.Contract( - rankifyTokenDeployment.address, - rankifyTokenDeployment.abi, - hre.ethers.provider.getSigner(deployer), - ) as Rankify; - - if (!rankToken) throw new Error('rank token not deployed'); - - console.log('Deploying rankify instance under enviroment', process.env.NODE_ENV === 'TEST' ? 'TEST' : 'PROD'); - - const settings: RankifyInstanceInit.ContractInitializerStruct = - process.env.NODE_ENV === 'TEST' - ? { - timePerTurn: RInstance_TIME_PER_TURN, - maxTurns: RInstance_MAX_TURNS, - maxPlayersSize: RInstance_MAX_PLAYERS, - minPlayersSize: RInstance_MIN_PLAYERS, - rankTokenAddress: rankToken.address, - timeToJoin: RInstance_TIME_TO_JOIN, - gamePrice: RInstance_GAME_PRICE, - joinGamePrice: RInstance_JOIN_GAME_PRICE, - numWinners: RInstance_NUM_WINNERS, - voteCredits: RInstance_VOTE_CREDITS, - subject: RInstance_SUBJECT, - rankifyToken: rankifyToken.address, - } - : { - timePerTurn: getProcessEnv(false, 'TIME_PER_TURN'), - maxTurns: getProcessEnv(false, 'MAX_TURNS'), - maxPlayersSize: getProcessEnv(false, 'MAX_PLAYERS'), - minPlayersSize: getProcessEnv(false, 'MIN_PLAYERS'), - rankTokenAddress: rankToken.address, - timeToJoin: getProcessEnv(false, 'TIME_TO_JOIN'), - gamePrice: ethers.utils.parseEther(getProcessEnv(false, 'GAME_PRICE_ETH')), - joinGamePrice: ethers.utils.parseEther(getProcessEnv(false, 'JOIN_GAME_PRICE_ETH')), - numWinners: getProcessEnv(false, 'NUM_WINNERS'), - voteCredits: getProcessEnv(false, 'VOTE_CREDITS'), - subject: getProcessEnv(false, 'SUBJECT'), - rankifyToken: rankifyToken.address, - }; - - const deployment = await diamond.deploy('RankifyInstance', { - log: true, - from: deployer, - owner: deployer, - - facets: [ - 'RankifyInstanceMainFacet', - 'RankifyInstanceGameMastersFacet', - 'RankifyInstanceRequirementsFacet', - 'EIP712InspectorFacet', - 'RankifyInstanceInit', - 'RankifyInstanceGameOwnersFacet', - ], - execute: { - methodName: 'init', - args: [ - process.env.NODE_ENV === 'TEST' ? RANKIFY_INSTANCE_CONTRACT_NAME : process.env.RANKIFY_INSTANCE_CONTRACT_NAME, - process.env.NODE_ENV === 'TEST' - ? RANKIFY_INSTANCE_CONTRACT_VERSION - : process.env.RANKIFY_INSTANCE_CONTRACT_VERSION, - settings, - ], - }, - }); - const rankifyInstance = (await ethers.getContractAt(deployment.abi, deployment.address)) as RankifyDiamondInstance; - await rankifyInstance.connect(await hre.ethers.getSigner(deployer)).transferOwnership(owner); - const rankingInstance = await rankToken.getRankingInstance(); - if (rankingInstance !== deployment.address) { - await rankToken.updateRankingInstance(deployment.address); - } -}; - -func.tags = ['rankify_game', 'rankify']; -func.dependencies = ['rank_token', 'rankify_token']; -export default func; diff --git a/deploy/04_upgradeGame.ts b/deploy/04_upgradeGame.ts deleted file mode 100644 index cc85c105..00000000 --- a/deploy/04_upgradeGame.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import { DeployFunction } from 'hardhat-deploy/types'; - -const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { - const { deployments, getNamedAccounts } = hre; - const { diamond } = deployments; - - const { owner } = await getNamedAccounts(); - - const deployment = await diamond.deploy('RankifyInstance', { - log: true, - from: owner, - owner: owner, - execute: { - methodName: 'init', - args: [], - }, - facets: [ - 'EIP712InspectorFacet', - 'RankifyInstanceMainFacet', - 'RankifyInstanceRequirementsFacet', - 'RankifyInstanceGameMastersFacet', - 'RankifyInstanceGameOwnersFacet', - 'RankifyInstanceMigration', - ], - }); -}; - -func.tags = ['upgrade_game']; -func.skip = () => Promise.resolve(process.env.NODE_ENV === 'TEST'); -export default func; diff --git a/deploy/06_deoployMultipass.ts b/deploy/06_deoployMultipass.ts index 16c33ea7..c0c692d6 100644 --- a/deploy/06_deoployMultipass.ts +++ b/deploy/06_deoployMultipass.ts @@ -6,7 +6,7 @@ import { ethers } from 'hardhat'; import { MultipassDiamond } from '../types'; const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { const { deployments, getNamedAccounts } = hre; - const { deploy, diamond } = deployments; + const { diamond } = deployments; const { deployer, owner } = await getNamedAccounts(); const deployment = await diamond.deploy('Multipass', { diff --git a/deploy/07_codeIndex.ts b/deploy/07_codeIndex.ts deleted file mode 100644 index 5c40f59b..00000000 --- a/deploy/07_codeIndex.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { HardhatRuntimeEnvironment } from 'hardhat/types'; -import { DeployFunction } from 'hardhat-deploy/types'; - - - - -const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { - const { deployments, getNamedAccounts } = hre; - const { deploy } = deployments; - - const { deployer } = await getNamedAccounts(); - const bigIntValue = BigInt('32093041992771041886105036204868453160172577249982933515490170998396430950365'); - // Convert to a hexadecimal string - const hexValue = "0x" + bigIntValue.toString(16); -// console.log(hexValue); - const result = await deploy('CodeIndex', { - deterministicDeployment: hexValue, - from: deployer, - skipIfAlreadyDeployed: true, - }); - console.log('CodeIndex deployed at', result.address); - -}; - -export default func; -func.tags = ['code_index', 'rankify']; diff --git a/deploy/distributor.ts b/deploy/distributor.ts new file mode 100644 index 00000000..641aec82 --- /dev/null +++ b/deploy/distributor.ts @@ -0,0 +1,19 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { DeployFunction } from 'hardhat-deploy/types'; + + +const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts } = hre; + const { deployer, owner } = await getNamedAccounts(); + + const { deploy } = deployments; + + await deploy('PeeramidLabsDistributor', { + from: deployer, + args: [owner], + skipIfAlreadyDeployed: true, + }); +}; + +func.tags = ['distributor']; +export default func; diff --git a/deploy/mao.ts b/deploy/mao.ts new file mode 100644 index 00000000..bcce024f --- /dev/null +++ b/deploy/mao.ts @@ -0,0 +1,164 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { DeployFunction } from 'hardhat-deploy/types'; +import { ethers, hardhatArguments } from 'hardhat'; +import { LibSemver } from '../types/src/distributions/MAO.sol/MAODistribution'; +import { activeContractsList } from '@aragon/osx-ethers'; +import { CodeIndex } from '@peeramid-labs/eds/types'; +import CodeIndexAbi from '@peeramid-labs/eds/abi/src/CodeIndex.sol/CodeIndex.json'; +import { MintSettingsStruct } from '../types/src/tokens/DistributableGovernanceERC20.sol/DistributableGovernanceERC20'; +const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + + const { deployments, getNamedAccounts } = hre; + const { deploy } = deployments; + const network: keyof typeof activeContractsList = + process.env.NODE_ENV === 'TEST' ? 'arbitrum' : (hardhatArguments.network as keyof typeof activeContractsList); + if (process.env.NODE_ENV !== 'TEST') { + console.log('network', network, process.env.NODE_ENV); + } + if (!network) throw new Error('Network not provided'); + const { deployer } = await getNamedAccounts(); + + const codeIndexContract = (await ethers.getContractAt( + CodeIndexAbi, + '0xc0D31d398c5ee86C5f8a23FA253ee8a586dA03Ce', + )) as CodeIndex; + + let _tokenVotingPluginRepo = activeContractsList[network]['token-voting-repo']; + let _daoFactory = activeContractsList[network].DAOFactory; + // let govBase = activeContractsList[network].g + let _trustedForwarder = ethers.constants.AddressZero; + let _distributionName = ethers.utils.formatBytes32String('MAO'); + let _distributionVersion: LibSemver.VersionStruct = { + major: 0, + minor: 1, + patch: 0, + }; + + const SACMDeployment = await deployments.get('SimpleAccessManager'); + const accessManagerCode = await hre.ethers.provider.getCode(SACMDeployment.address); + const accessManagerId = ethers.utils.keccak256(accessManagerCode); + + const rankTokenDeployment = await deployments.deploy('RankToken', { + from: deployer, + skipIfAlreadyDeployed: true, + args: [ + 'https://assets.vote4best.app/rank', + 'https://assets.vote4best.app/musicRankToken.json', + ethers.constants.AddressZero, + ], + }); + await codeIndexContract.register(rankTokenDeployment.address); + const rankTokenCode = await hre.ethers.provider.getCode(rankTokenDeployment.address); + const rankTokenCodeId = ethers.utils.keccak256(rankTokenCode); + + const initializerDeployment = await deploy('RankifyInstanceInit', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + await (await codeIndexContract.register(initializerDeployment.address)).wait(1); + const initializerAdr = initializerDeployment.address; + const initializerSelector = '0x00000000'; + + const distributionName = ethers.utils.formatBytes32String('ArguableVotingTournament'); + const version = { + major: 1, + minor: 0, + patch: 0, + }; + const loupeFacetDeployment = await deploy('DiamondLoupeFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + gasLimit: 8000000, + }); + + const inspectorFacetDeployment = await deploy('EIP712InspectorFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const RankifyMainFacetDeployment = await deploy('RankifyInstanceMainFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const RankifyReqsFacetDeployment = await deploy('RankifyInstanceRequirementsFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const RankifyGMFacetDeployment = await deploy('RankifyInstanceGameMastersFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const RankifyOwnerFacetDeployment = await deploy('RankifyInstanceGameOwnersFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const OwnershipFacetDeployment = await deploy('OwnershipFacet', { + from: deployer, + skipIfAlreadyDeployed: true, + }); + + const arguableVotingTournamentDeployment = await deploy('ArguableVotingTournament', { + from: deployer, + gasLimit: 8000000, + estimatedGasLimit: 8000000, + skipIfAlreadyDeployed: true, + args: [ + initializerAdr, + initializerSelector, + distributionName, + version, + loupeFacetDeployment.address, + inspectorFacetDeployment.address, + RankifyMainFacetDeployment.address, + RankifyReqsFacetDeployment.address, + RankifyGMFacetDeployment.address, + RankifyOwnerFacetDeployment.address, + OwnershipFacetDeployment.address, + ], + }); + await codeIndexContract.register(arguableVotingTournamentDeployment.address); + const arguableVotingTournamentCode = await hre.ethers.provider.getCode(arguableVotingTournamentDeployment.address); + const arguableVotingTournamentCodeId = ethers.utils.keccak256(arguableVotingTournamentCode); + + const mintSettings: MintSettingsStruct = { + amounts: [], + receivers: [], + }; + const govTokenDeployment = await deploy('DistributableGovernanceERC20', { + from: deployer, + skipIfAlreadyDeployed: true, + args: [ethers.constants.AddressZero, 'TokenName', 'tkn', mintSettings, ethers.constants.AddressZero], + }); + await codeIndexContract.register(govTokenDeployment.address); + const govTokenCode = await hre.ethers.provider.getCode(govTokenDeployment.address); + const govTokenCodeId = ethers.utils.keccak256(govTokenCode); + + const result = await deploy('MAODistribution', { + from: deployer, + skipIfAlreadyDeployed: true, + args: [ + _tokenVotingPluginRepo, + _daoFactory, + _trustedForwarder, + rankTokenCodeId, + arguableVotingTournamentCodeId, + accessManagerId, + govTokenCodeId, + _distributionName, + _distributionVersion, + ], + }); + await codeIndexContract.register(result.address); + const code = await hre.ethers.provider.getCode(result.address); + const codeId = ethers.utils.keccak256(code); +// console.log('MAO deployed at', result.address, 'codeId', codeId); + return; +}; + +export default func; +func.dependencies = ['sacm', 'distributor', 'rankify']; +func.tags = ['MAO']; diff --git a/deploy/sacm.ts b/deploy/sacm.ts new file mode 100644 index 00000000..880c1f7e --- /dev/null +++ b/deploy/sacm.ts @@ -0,0 +1,30 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { DeployFunction } from 'hardhat-deploy/types'; +import { ethers } from 'hardhat'; +import CodeIndexAbi from '@peeramid-labs/eds/abi/src/CodeIndex.sol/CodeIndex.json'; +import { CodeIndex } from '@peeramid-labs/eds/types'; + +const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts } = hre; + const { deploy } = deployments; + const PeeramidLabsDistributor = await deployments.get('PeeramidLabsDistributor'); + + const { deployer } = await getNamedAccounts(); + + const sacmDeployment = await deploy('SimpleAccessManager', { + from: deployer, + args: [], + skipIfAlreadyDeployed: true, + }); + + const codeIndexContract = (await ethers.getContractAt( + CodeIndexAbi, + '0xc0D31d398c5ee86C5f8a23FA253ee8a586dA03Ce', + )) as CodeIndex; + + await codeIndexContract.connect(await hre.ethers.getSigner(deployer)).register(sacmDeployment.address); +}; + +export default func; +func.dependencies = ['distributor']; +func.tags = ['sacm']; diff --git a/dev.env b/dev.env deleted file mode 100644 index e69de29b..00000000 diff --git a/dev.env.sample b/dev.env.sample new file mode 100644 index 00000000..270fbc62 --- /dev/null +++ b/dev.env.sample @@ -0,0 +1 @@ +export FORK_RPC_URL="" \ No newline at end of file diff --git a/docs/contracts/abstracts/CompositeERC1155.md b/docs/contracts/abstracts/CompositeERC1155.md deleted file mode 100644 index 12e57681..00000000 --- a/docs/contracts/abstracts/CompositeERC1155.md +++ /dev/null @@ -1,84 +0,0 @@ - -# CompositeERC1155 -## Description - -An abstract contract that extends LockableERC1155 and provides functionality for composite ERC1155 tokens. -Composite tokens can be "composed" from multiple underlying assets, which however do not change their owner -and in contrast to that use LockableERC1155 standard, which allows to read locked asset BalanceOf, OwnerOf methods correctly - -## Implementation - -### internal function constructor - -```solidity -constructor(string uri_, address[] dimensionTokens, uint256[] tokenWeights) internal -``` - -### internal function _mint - -```solidity -function _mint(address to, uint256 tokenId, uint256 value, bytes data) internal virtual -``` - -### internal function _burn - -```solidity -function _burn(address from, uint256 id, uint256 amount) internal -``` - -*Destroys `amount` tokens of token type `id` from `from` - -Emits a {TransferSingle} event. - -Requirements: - -- `from` cannot be the zero address. -- `from` must have at least `amount` tokens of token type `id`.* -### public function decompose - -```solidity -function decompose(address from, uint256 id, uint256 amount) public virtual -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `from` | `address` | The address from which the composite token is being decomposed. | -| `id` | `uint256` | The ID of the composite token being decomposed. | -| `amount` | `uint256` | The amount of the composite token to decompose. | - -*Decomposes a composite ERC1155 token into its individual components. -This function unlocks the specified amount of the composite token from each dimension, -and then burns the specified amount of the composite token from the caller's balance.* -### public function burn - -```solidity -function burn(address account, uint256 id, uint256 value) public virtual -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `account` | `address` | The address of the token owner. | -| `id` | `uint256` | The ID of the token to burn. | -| `value` | `uint256` | The amount of tokens to burn. | - -*Burns a specified amount of tokens from the given account. -This will burn all underlying (composite) assets - -Requirements: -- `account` must be the token owner or an approved operator. -- `id` and `value` must be valid token ID and amount to burn. -- All underlying "composite" assets implement burn as well* -### public function getComponents - -```solidity -function getComponents() public virtual returns (address[], uint256[]) -``` - -| Output | Type | Description | -| ------ | ---- | ----------- | -| `0` | `address[]` | An array of component addresses and an array of component weights. | -| `1` | `uint256[]` | | - -*Retrieves the components of the CompositeERC1155 contract.* - - diff --git a/docs/contracts/abstracts/DiamondReentrancyGuard.md b/docs/contracts/abstracts/DiamondReentrancyGuard.md deleted file mode 100644 index 07285ac0..00000000 --- a/docs/contracts/abstracts/DiamondReentrancyGuard.md +++ /dev/null @@ -1,14 +0,0 @@ - -# -## Description - -## Implementation - -### internal modifier nonReentrant - -```solidity -modifier nonReentrant() -``` - - - diff --git a/docs/contracts/abstracts/IVInstallerPlugin.md b/docs/contracts/abstracts/IVInstallerPlugin.md deleted file mode 100644 index 886456d7..00000000 --- a/docs/contracts/abstracts/IVInstallerPlugin.md +++ /dev/null @@ -1,8 +0,0 @@ - -# -## Description - -## Implementation - - - diff --git a/docs/contracts/abstracts/LockableERC1155.md b/docs/contracts/abstracts/LockableERC1155.md deleted file mode 100644 index 60515959..00000000 --- a/docs/contracts/abstracts/LockableERC1155.md +++ /dev/null @@ -1,88 +0,0 @@ - -# -### error insufficient - -```solidity -error insufficient(uint256 id, uint256 balance, uint256 required) -``` - -# LockableERC1155 -## Description - -This is an abstract contract that extends the ERC1155 token contract and implements the ILockableERC1155 interface. - It provides functionality to lock and unlock token amounts for specific accounts and IDs. - -## Implementation - -### internal variable lockedAmounts - -```solidity -mapping(address => mapping(uint256 => uint256)) lockedAmounts -``` - -### public function lock - -```solidity -function lock(address account, uint256 id, uint256 amount) public virtual -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `account` | `address` | The address of the account to lock tokens for. | -| `id` | `uint256` | The ID of the token to lock. | -| `amount` | `uint256` | The amount of tokens to lock. | - -*Locks a specified amount of tokens for a given account and token ID. -If the account does not have enough balance to lock the specified amount, -the function will revert with an "insufficient" error message. -Emits a `TokensLocked` event after successfully locking the tokens.* -### public function unlock - -```solidity -function unlock(address account, uint256 id, uint256 amount) public virtual -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `account` | `address` | The address of the account to unlock tokens for. | -| `id` | `uint256` | The ID of the token to unlock. | -| `amount` | `uint256` | The amount of tokens to unlock. | - -*Unlocks a specified amount of tokens for a given account and token ID. -If the locked amount is less than the specified amount, it reverts with an "insufficient" error message. -Emits a `TokensUnlocked` event after unlocking the tokens.* -### public function unlockedBalanceOf - -```solidity -function unlockedBalanceOf(address account, uint256 id) public view returns (uint256) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `account` | `address` | The address of the account. | -| `id` | `uint256` | The ID of the ERC1155 token. | -| **Output** | | -| `0` | `uint256` | The unlocked balance of the ERC1155 token for the account. | - -*Returns the unlocked balance of a specific ERC1155 token for an account. -The unlocked balance is calculated by subtracting the locked amount from the total balance.* -### internal function _beforeTokenTransfer - -```solidity -function _beforeTokenTransfer(address operator, address from, address to, uint256[] ids, uint256[] amounts, bytes data) internal virtual -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `operator` | `address` | The address performing the token transfer. | -| `from` | `address` | The address from which the tokens are being transferred. | -| `to` | `address` | The address to which the tokens are being transferred. | -| `ids` | `uint256[]` | An array of token IDs being transferred. | -| `amounts` | `uint256[]` | An array of token amounts being transferred. | -| `data` | `bytes` | Additional data attached to the transfer. | - -*Hook function that is called before any token transfer. -It checks if the transfer is allowed based on the locked amounts of the tokens. -If the transfer is not allowed, it reverts with an error message.* - - diff --git a/docs/contracts/abstracts/draft-EIP712Diamond.md b/docs/contracts/abstracts/draft-EIP712Diamond.md deleted file mode 100644 index d2bfd662..00000000 --- a/docs/contracts/abstracts/draft-EIP712Diamond.md +++ /dev/null @@ -1,68 +0,0 @@ - -# -## Description - -https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. - -The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, -thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding -they need in their contracts using a combination of `abi.encode` and `keccak256`. - -This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding -scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA -({_hashTypedDataV4}). - -The implementation of the domain separator was designed to be as efficient as possible while still properly updating -the chain id to protect against replay attacks on an eventual fork of the chain. - -NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method -https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. - -_Available since v3.4._ - -## Implementation - -### internal function constructor - -```solidity -constructor() internal -``` - -*Initializes the domain separator and parameter caches. - -The meaning of `name` and `version` is specified in -https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - -- `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. -- `version`: the current major version of the signing domain. - -NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart -contract upgrade].* -### internal function _domainSeparatorV4 - -```solidity -function _domainSeparatorV4() internal view returns (bytes32) -``` - -*Returns the domain separator for the current chain.* -### internal function _hashTypedDataV4 - -```solidity -function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) -``` - -*Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this -function returns the hash of the fully encoded EIP712 message for this domain. - -This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example: - -```solidity -bytes32 digest = _hashTypedDataV4(keccak256(abi.encode( - keccak256("Mail(address to,string contents)"), - mailTo, - keccak256(bytes(mailContents)) -))); -address signer = ECDSA.recover(digest, signature); -```* - - diff --git a/docs/contracts/facets/DNSFacet.md b/docs/contracts/facets/DNSFacet.md deleted file mode 100644 index e3220bb9..00000000 --- a/docs/contracts/facets/DNSFacet.md +++ /dev/null @@ -1,201 +0,0 @@ - -# -## Description - -## Implementation - -### internal function _isValidSignature - -```solidity -function _isValidSignature(bytes message, bytes signature, address account) internal view returns (bool) -``` - -### public function initializeDomain - -```solidity -function initializeDomain(address registrar, uint256 freeRegistrationsNumber, uint256 fee, bytes32 domainName, uint256 referrerReward, uint256 referralDiscount) public -``` - -*Initializes new LibMultipass.Domain and configures it's parameters - -Requirements: - registrar is not zero - domainName is not empty - domainIndex is either zero(auto assign) or can be one of preoccupied LibMultipass.Domain names - domainName does not exist yet - onlyOwner - referrerReward+referralDiscount cannot be larger than fee - @param registrar address of registrar - @param freeRegistrationsNumber number of registrations free of fee - @param fee fee in base currency of network - @param domainName name of LibMultipass.Domain - @param referrerReward referral fee share in base currency of network - @param referralDiscount referral discount in base currency of network - - Emits an {InitializedDomain} event.* -### public function activateDomain - -```solidity -function activateDomain(bytes32 domainName) public -``` - -*Activates LibMultipass.Domain name - -Requirements: - msg.sender is Owner - - Emits an {DomainActivated} event.* -### public function deactivateDomain - -```solidity -function deactivateDomain(bytes32 domainName) public -``` - -*Deactivates LibMultipass.Domain name - -Deactivated LibMultipass.Domain cannot mutate names and will return zeros - -Requirements: - msg.sender is Owner OR registrar - - Emits an {DomainDeactivated} event.* -### public function changeFee - -```solidity -function changeFee(bytes32 domainName, uint256 fee) public -``` - -*Changes registrar address - -Requirements: - msg.sender is Owner - - Emits an {DomainFeeChanged} event.* -### public function changeRegistrar - -```solidity -function changeRegistrar(bytes32 domainName, address newRegistrar) public -``` - -*Changes registrar address - -Requirements: - msg.sender is Owner - - Emits an {RegistrarChangeRequested} event.* -### public function deleteName - -```solidity -function deleteName(struct LibMultipass.NameQuery query) public -``` - -*deletes name - -Requirements: - msg.sender is Owner - - Emits an {DomainTTLChangeRequested} event.* -### public function changeReferralProgram - -```solidity -function changeReferralProgram(uint256 referrerReward, uint256 freeRegistrations, uint256 referralDiscount, bytes32 domainName) public -``` - -### public function resolveRecord - -```solidity -function resolveRecord(struct LibMultipass.NameQuery query) public view returns (bool, struct LibMultipass.Record) -``` - -*resolves LibMultipass.Record of name query in to status and identity* -### public function register - -```solidity -function register(struct LibMultipass.Record newRecord, bytes32 domainName, bytes registrarSignature, uint256 signatureDeadline, struct LibMultipass.NameQuery referrer, bytes referralCode) public payable -``` - -*registers new name under LibMultipass.Domain - -Requirements: - all arguments must be set - domainName must be active -resolveRecord for given arguments should return no LibMultipass.Record - - Emits an {registered} event.* -### public function getModifyPrice - -```solidity -function getModifyPrice(struct LibMultipass.NameQuery query) public view returns (uint256) -``` - -### public function modifyUserName - -```solidity -function modifyUserName(bytes32 domainName, struct LibMultipass.NameQuery query, bytes32 newName, bytes registrarSignature, uint256 signatureDeadline) public payable -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `domainName` | `bytes32` | LibMultipass.Domain | -| `query` | `struct LibMultipass.NameQuery` | | -| `newName` | `bytes32` | new name Emits an {Modified} event. | -| `registrarSignature` | `bytes` | | -| `signatureDeadline` | `uint256` | | - -*modifies exsisting LibMultipass.Record - -Requirements: -resolveRecord for given arguments should return valid LibMultipass.Record -LibMultipass.Domain must be active -newAddress and newName should be set and be unique in current LibMultipass.Domain* -### external function getBalance - -```solidity -function getBalance() external view returns (uint256) -``` - -*returns balance of this contract* -### external function getDomainState - -```solidity -function getDomainState(bytes32 domainName) external view returns (struct LibMultipass.Domain) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `domainName` | `bytes32` | name of the LibMultipass.Domain | -| **Output** | | -| `0` | `struct LibMultipass.Domain` | (name, fee, freeRegistrationsNumber, referrerReward, referralDiscount, isActive, registrar, ttl, registerSize) | - -*returns LibMultipass.Domain state variables* -### external function getDomainStateByIdx - -```solidity -function getDomainStateByIdx(uint256 index) external view returns (struct LibMultipass.Domain) -``` - -### external function getContractState - -```solidity -function getContractState() external view returns (uint256) -``` - -| Output | Type | Description | -| ------ | ---- | ----------- | -| `0` | `uint256` | (s_numDomains) | - -*returns contract state variables* -### public function withrawFunds - -```solidity -function withrawFunds(address to) public -``` - -*Withraws funds stored in smart contract - -Requirements: - onlyOwner - - Emits an {fundsWithdawn} event.* - - diff --git a/docs/contracts/facets/EIP712InspectorFacet.md b/docs/contracts/facets/EIP712InspectorFacet.md deleted file mode 100644 index 1b4c9d3f..00000000 --- a/docs/contracts/facets/EIP712InspectorFacet.md +++ /dev/null @@ -1,20 +0,0 @@ - -# -## Description - -## Implementation - -### public function inspectEIP712Hashes - -```solidity -function inspectEIP712Hashes() public view returns (bytes32 _CACHED_DOMAIN_SEPARATOR, uint256 _CACHED_CHAIN_ID, address _CACHED_THIS, bytes32 _HASHED_NAME, bytes32 _HASHED_VERSION, bytes32 _TYPE_HASH) -``` - -### public function currentChainId - -```solidity -function currentChainId() public view returns (uint256) -``` - - - diff --git a/docs/contracts/facets/RankifyInstanceGameMastersFacet.md b/docs/contracts/facets/RankifyInstanceGameMastersFacet.md deleted file mode 100644 index bbd1671f..00000000 --- a/docs/contracts/facets/RankifyInstanceGameMastersFacet.md +++ /dev/null @@ -1,116 +0,0 @@ - -# -## Description - -## Implementation - -### event OverTime - -```solidity -event OverTime(uint256 gameId) -``` - -### event LastTurn - -```solidity -event LastTurn(uint256 gameId) -``` - -### event ProposalScore - -```solidity -event ProposalScore(uint256 gameId, uint256 turn, string proposalHash, string proposal, uint256 score) -``` - -### event TurnEnded - -```solidity -event TurnEnded(uint256 gameId, uint256 turn, address[] players, uint256[] scores, string[] newProposals, uint256[] proposerIndicies, uint256[][] votes) -``` - -### event GameOver - -```solidity -event GameOver(uint256 gameId, address[] players, uint256[] scores) -``` - -### event ProposalSubmitted - -```solidity -event ProposalSubmitted(uint256 gameId, uint256 turn, address proposer, bytes32 commitmentHash, string proposalEncryptedByGM) -``` - -### public struct ProposalParams - -```solidity -struct ProposalParams { - uint256 gameId; - string encryptedProposal; - bytes32 commitmentHash; - address proposer; -} -``` -### event VoteSubmitted - -```solidity -event VoteSubmitted(uint256 gameId, uint256 turn, address player, string votesHidden) -``` - -### public function submitVote - -```solidity -function submitVote(uint256 gameId, string encryptedVotes, address voter) public -``` - -*Submits a vote for a game. `gameId` is the ID of the game. `encryptedVotes` is the encrypted votes. `voter` is the address of the voter. - -Emits a _VoteSubmitted_ event. - -Requirements: - -- The caller must be a game master of the game with `gameId`. -- The game with `gameId` must exist. -- The game with `gameId` must have started. -- The game with `gameId` must not be over. -- `voter` must be in the game with `gameId`. -- The current turn of the game with `gameId` must be greater than 1.* -### public function submitProposal - -```solidity -function submitProposal(struct RankifyInstanceGameMastersFacet.ProposalParams proposalData) public -``` - -*Submits a proposal for a game. `proposalData` is the proposal data. - -Requirements: - -- The game with `proposalData.gameId` must exist. -- The caller must be a game master of the game with `proposalData.gameId`.* -### public function endTurn - -```solidity -function endTurn(uint256 gameId, uint256[][] votes, string[] newProposals, uint256[] proposerIndicies) public -``` - -*Ends the current turn of a game with the provided game ID. `gameId` is the ID of the game. `votes` is the array of votes. - `newProposals` is the array of new proposals for the upcoming voting round. - `proposerIndicies` is the array of indices of the proposers in the previous voting round. - -emits a _ProposalScore_ event for each player if the turn is not the first. -emits a _TurnEnded_ event. - -Modifies: - -- Calls the `_nextTurn` function with `gameId` and `newProposals`. -- Resets the number of commitments of the game with `gameId` to 0. -- Resets the proposal commitment hash and ongoing proposal of each player in the game with `gameId`. - -Requirements: - -- The caller must be a game master of the game with `gameId`. -- The game with `gameId` must have started. -- The game with `gameId` must not be over. -- newProposals array MUST be sorted randomly to ensure privacy -votes and proposerIndicies MUST correspond to players array from game.getPlayers()* - - diff --git a/docs/contracts/facets/RankifyInstanceGameOwnersFacet.md b/docs/contracts/facets/RankifyInstanceGameOwnersFacet.md deleted file mode 100644 index 3cf70dbd..00000000 --- a/docs/contracts/facets/RankifyInstanceGameOwnersFacet.md +++ /dev/null @@ -1,161 +0,0 @@ - -# -### error ZeroValue - -```solidity -error ZeroValue() -``` - -# -### error WrongAddress - -```solidity -error WrongAddress() -``` - -# -### error OutOfBounds - -```solidity -error OutOfBounds() -``` - -# -## Description - -## Implementation - -### internal function RInstanceStorage - -```solidity -function RInstanceStorage() internal pure returns (struct IRankifyInstanceCommons.RInstanceSettings bog) -``` - -### external function setGamePrice - -```solidity -function setGamePrice(uint256 newPrice) external -``` - -*Sets the game price. `newPrice` is the new game price. - -Modifies: - -- Sets the game price to `newPrice`. - -Requirements: - -- The caller must be the contract owner.* -### external function setJoinGamePrice - -```solidity -function setJoinGamePrice(uint256 newPrice) external -``` - -*Sets the join game price. `newPrice` is the new join game price. - -Modifies: - -- Sets the join game price to `newPrice`. - -Requirements: - -- The caller must be the contract owner.* -### external function setRankTokenAddress - -```solidity -function setRankTokenAddress(address newRankToken) external -``` - -*Sets the rank token address. `newRankToken` is the new rank token address. - -Modifies: - -- Sets the rank token address to `newRankToken`. - -Requirements: - -- The caller must be the contract owner. -- `newRankToken` must not be the zero address. -- `newRankToken` must support the ERC1155 interface.* -### external function setTimePerTurn - -```solidity -function setTimePerTurn(uint256 newTimePerTurn) external -``` - -*Sets the time per turn. `newTimePerTurn` is the new time per turn. - -Modifies: - -- Sets the time per turn to `newTimePerTurn`. - -Requirements: - -- The caller must be the contract owner.* -### external function setMaxPlayersSize - -```solidity -function setMaxPlayersSize(uint256 newMaxPlayersSize) external -``` - -*Sets the maximum number of players in a game. `newMaxPlayersSize` is the new maximum number of players. - -Modifies: - -- Sets the maximum number of players to `newMaxPlayersSize`. - -Requirements: - -- The caller must be the contract owner. -- `newMaxPlayersSize` must be greater than or equal to the minimum number of players.* -### external function setMinPlayersSize - -```solidity -function setMinPlayersSize(uint256 newMinPlayersSize) external -``` - -*Sets the minimum number of players in a game. `newMinPlayersSize` is the new minimum number of players. - -Modifies: - -- Sets the minimum number of players to `newMinPlayersSize`. - -Requirements: - -- The caller must be the contract owner. -- `newMinPlayersSize` must be less than or equal to the maximum number of players.* -### external function setTimeToJoin - -```solidity -function setTimeToJoin(uint256 newTimeToJoin) external -``` - -*Sets the time to join a game. `newTimeToJoin` is the new time to join. - -Modifies: - -- Sets the time to join to `newTimeToJoin`. - -Requirements: - -- The caller must be the contract owner. -- `newTimeToJoin` must not be zero.* -### external function setMaxTurns - -```solidity -function setMaxTurns(uint256 newMaxTurns) external -``` - -*Sets the maximum number of turns in a game. `newMaxTurns` is the new maximum number of turns. - -Modifies: - -- Sets the maximum number of turns to `newMaxTurns`. - -Requirements: - -- The caller must be the contract owner. -- `newMaxTurns` must not be zero.* - - diff --git a/docs/contracts/facets/RankifyInstanceMainFacet.md b/docs/contracts/facets/RankifyInstanceMainFacet.md deleted file mode 100644 index 38eca3dd..00000000 --- a/docs/contracts/facets/RankifyInstanceMainFacet.md +++ /dev/null @@ -1,254 +0,0 @@ - -# -## Description - -## Implementation - -### internal function RInstanceStorage - -```solidity -function RInstanceStorage() internal pure returns (struct IRankifyInstanceCommons.RInstanceSettings bog) -``` - -### public function createGame - -```solidity -function createGame(address gameMaster, uint256 gameId, uint256 gameRank) public -``` - -*Creates a new game with the provided game master, game ID, and game rank. Optionally, additional ranks can be provided. `gameMaster` is the address of the game master. `gameId` is the ID of the new game. `gameRank` is the rank of the new game. `additionalRanks` is the array of additional ranks. - -emits a _GameCreated_ event. - -Requirements: - There are some game price requirments that must be met under gameId.newGame function that are set during the contract initialization and refer to the contract maintainer benefits. - -Modifies: - -- Calls the `newGame` function with `gameMaster`, `gameRank`, and `msg.sender`. -- Configures the coin vending with `gameId` and an empty configuration. -- If `additionalRanks` is not empty, mints rank tokens for each additional rank and sets the additional ranks of the game with `gameId` to `additionalRanks`.* -### public function createGame - -```solidity -function createGame(address gameMaster, uint256 gameId, uint256 gameRank, address[] additionalRanks) public -``` - -### public function createGame - -```solidity -function createGame(address gameMaster, uint256 gameRank) public -``` - -### public function cancelGame - -```solidity -function cancelGame(uint256 gameId) public -``` - -*Cancels a game with the provided game ID. `gameId` is the ID of the game. - -Modifies: - -- Calls the `enforceIsGameCreator` function with `msg.sender`. - -Requirements: - -- The caller must be the game creator of the game with `gameId`. -- Game must not be started.* -### public function leaveGame - -```solidity -function leaveGame(uint256 gameId) public -``` - -*Allows a player to leave a game with the provided game ID. `gameId` is the ID of the game. - -Modifies: - -- Calls the `quitGame` function with `msg.sender`, `true`, and `onPlayerQuit`. - -Requirements: - -- The caller must be a player in the game with `gameId`. -- Game must not be started.* -### public function openRegistration - -```solidity -function openRegistration(uint256 gameId) public -``` - -*Opens registration for a game with the provided game ID. `gameId` is the ID of the game. - -emits a _RegistrationOpen_ event. - -Modifies: - -- Calls the `enforceIsGameCreator` function with `msg.sender`. -- Calls the `enforceIsPreRegistrationStage` function. -- Calls the `openRegistration` function. - -Requirements: - -- The caller must be the game creator of the game with `gameId`. -- The game with `gameId` must be in the pre-registration stage.* -### public function joinGame - -```solidity -function joinGame(uint256 gameId) public payable -``` - -*Allows a player to join a game with the provided game ID. `gameId` is the ID of the game. - -emits a _PlayerJoined_ event. - -Modifies: - -- Calls the `joinGame` function with `msg.sender`. -- Calls the `fund` function with `bytes32(gameId)`. - -Requirements: - -- The caller must not be a player in the game with `gameId`. -- Game phase must be registration. -- Caller must be able to fulfill funding requirements.* -### public function startGame - -```solidity -function startGame(uint256 gameId) public -``` - -*Starts a game with the provided game ID early. `gameId` is the ID of the game. - -emits a _GameStarted_ event. - -Modifies: - -- Calls the `enforceGameExists` function. -- Calls the `startGameEarly` function. - -Requirements: - -- The game with `gameId` must exist.* -### public function onERC1155Received - -```solidity -function onERC1155Received(address operator, address, uint256, uint256, bytes) public view returns (bytes4) -``` - -### external function onERC1155BatchReceived - -```solidity -function onERC1155BatchReceived(address operator, address, uint256[], uint256[], bytes) external view returns (bytes4) -``` - -### external function onERC721Received - -```solidity -function onERC721Received(address operator, address, uint256, bytes) external view returns (bytes4) -``` - -### public function getContractState - -```solidity -function getContractState() public view returns (struct IRankifyInstanceCommons.RInstanceState) -``` - -### public function getTurn - -```solidity -function getTurn(uint256 gameId) public view returns (uint256) -``` - -### public function getGM - -```solidity -function getGM(uint256 gameId) public view returns (address) -``` - -### public function getScores - -```solidity -function getScores(uint256 gameId) public view returns (address[], uint256[]) -``` - -### public function isOvertime - -```solidity -function isOvertime(uint256 gameId) public view returns (bool) -``` - -### public function isGameOver - -```solidity -function isGameOver(uint256 gameId) public view returns (bool) -``` - -### public function getPlayersGame - -```solidity -function getPlayersGame(address player) public view returns (uint256) -``` - -### public function isLastTurn - -```solidity -function isLastTurn(uint256 gameId) public view returns (bool) -``` - -### public function isRegistrationOpen - -```solidity -function isRegistrationOpen(uint256 gameId) public view returns (bool) -``` - -### public function gameCreator - -```solidity -function gameCreator(uint256 gameId) public view returns (address) -``` - -### public function getGameRank - -```solidity -function getGameRank(uint256 gameId) public view returns (uint256) -``` - -### public function getPlayers - -```solidity -function getPlayers(uint256 gameId) public view returns (address[]) -``` - -### public function canStartGame - -```solidity -function canStartGame(uint256 gameId) public view returns (bool) -``` - -### public function canEndTurn - -```solidity -function canEndTurn(uint256 gameId) public view returns (bool) -``` - -### public function isPlayerTurnComplete - -```solidity -function isPlayerTurnComplete(uint256 gameId, address player) public view returns (bool) -``` - -### public function getPlayerVotedArray - -```solidity -function getPlayerVotedArray(uint256 gameId) public view returns (bool[]) -``` - -### public function getPlayersMoved - -```solidity -function getPlayersMoved(uint256 gameId) public view returns (bool[], uint256) -``` - - - diff --git a/docs/contracts/facets/RankifyInstanceRequirementsFacet.md b/docs/contracts/facets/RankifyInstanceRequirementsFacet.md deleted file mode 100644 index d39176ff..00000000 --- a/docs/contracts/facets/RankifyInstanceRequirementsFacet.md +++ /dev/null @@ -1,57 +0,0 @@ - -# -## Description - -## Implementation - -### event RequirementsConfigured - -```solidity -event RequirementsConfigured(uint256 gameId, struct LibCoinVending.ConfigPosition config) -``` - -### public function setJoinRequirements - -```solidity -function setJoinRequirements(uint256 gameId, struct LibCoinVending.ConfigPosition config) public -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `gameId` | `uint256` | The ID of the game. | -| `config` | `struct LibCoinVending.ConfigPosition` | The configuration position for the join requirements. | - -*Sets the join requirements for a specific game. -Only the game creator can call this function. -The game must be in the pre-registration stage.* -### public function getJoinRequirements - -```solidity -function getJoinRequirements(uint256 gameId) public view returns (struct LibCoinVending.ConditionReturn) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `gameId` | `uint256` | The ID of the game. | -| **Output** | | -| `0` | `struct LibCoinVending.ConditionReturn` | The join requirements as a `LibCoinVending.ConditionReturn` struct. | - -*Retrieves the join requirements for a specific game.* -### public function getJoinRequirementsByToken - -```solidity -function getJoinRequirementsByToken(uint256 gameId, address contractAddress, uint256 contractId, enum LibCoinVending.ContractTypes contractType) public view returns (struct LibCoinVending.ContractCondition) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `gameId` | `uint256` | The ID of the game. | -| `contractAddress` | `address` | The address of the contract. | -| `contractId` | `uint256` | The ID of the contract. | -| `contractType` | `enum LibCoinVending.ContractTypes` | The type of the contract. | -| **Output** | | -| `0` | `struct LibCoinVending.ContractCondition` | The join requirements for the specified token. | - -*Retrieves the join requirements for a specific token in a game.* - - diff --git a/docs/contracts/interfaces/IERC1155Receiver.md b/docs/contracts/interfaces/IERC1155Receiver.md deleted file mode 100644 index 4bb69424..00000000 --- a/docs/contracts/interfaces/IERC1155Receiver.md +++ /dev/null @@ -1,44 +0,0 @@ - -# ERC1155 transfer receiver interface -## Description - -## Implementation - -### external function onERC1155Received - -validate receipt of ERC1155 transfer - -```solidity -function onERC1155Received(address operator, address from, uint256 id, uint256 value, bytes data) external returns (bytes4) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `operator` | `address` | executor of transfer | -| `from` | `address` | sender of tokens | -| `id` | `uint256` | token ID received | -| `value` | `uint256` | quantity of tokens received | -| `data` | `bytes` | data payload | -| **Output** | | -| `0` | `bytes4` | function's own selector if transfer is accepted | - -### external function onERC1155BatchReceived - -validate receipt of ERC1155 batch transfer - -```solidity -function onERC1155BatchReceived(address operator, address from, uint256[] ids, uint256[] values, bytes data) external returns (bytes4) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `operator` | `address` | executor of transfer | -| `from` | `address` | sender of tokens | -| `ids` | `uint256[]` | token IDs received | -| `values` | `uint256[]` | quantities of tokens received | -| `data` | `bytes` | data payload | -| **Output** | | -| `0` | `bytes4` | function's own selector if transfer is accepted | - - - diff --git a/docs/contracts/interfaces/ILockableERC1155.md b/docs/contracts/interfaces/ILockableERC1155.md deleted file mode 100644 index 47eedc83..00000000 --- a/docs/contracts/interfaces/ILockableERC1155.md +++ /dev/null @@ -1,51 +0,0 @@ - -# ILockableERC1155 -## Description - -Interface for a lockable ERC1155 token contract. - -## Implementation - -### event TokensLocked - -```solidity -event TokensLocked(address account, uint256 id, uint256 value) -``` - -### event TokensUnlocked - -```solidity -event TokensUnlocked(address account, uint256 id, uint256 value) -``` - -### external function lock - -```solidity -function lock(address account, uint256 id, uint256 amount) external -``` - -*Locks a specified amount of tokens for a given account and token ID. `account` is the address of the account to lock the tokens for. `id` is the ID of the token to lock. `amount` is the amount of tokens to lock. - -emits a _TokensLocked_ event.* -### external function unlock - -```solidity -function unlock(address account, uint256 id, uint256 amount) external -``` - -*Unlocks a specified amount of tokens for a given account and token ID. `account` is the address of the account to unlock the tokens for. `id` is the ID of the token to unlock. `amount` is the amount of tokens to unlock. - -emits a _TokensUnlocked_ event.* -### external function unlockedBalanceOf - -```solidity -function unlockedBalanceOf(address account, uint256 id) external view returns (uint256) -``` - -*Returns the unlocked balance of tokens for a given account and token ID. `account` is the address of the account to check the unlocked balance for. `id` is the ID of the token to check the unlocked balance for. - -Returns: - -- The unlocked balance of tokens.* - - diff --git a/docs/contracts/interfaces/IManagedAssetFactory.md b/docs/contracts/interfaces/IManagedAssetFactory.md deleted file mode 100644 index dedf577d..00000000 --- a/docs/contracts/interfaces/IManagedAssetFactory.md +++ /dev/null @@ -1,62 +0,0 @@ - -# -## Description - -## Implementation - -### external function deployAsset - -```solidity -function deployAsset(bytes32 assetUri, bytes32 assetType, bytes instantiationPayload) external payable returns (address) -``` - -### external function deployAssetManager - -```solidity -function deployAssetManager(address sAddr, bytes32 strategyId, bytes instantiationPayload) external payable returns (address) -``` - -### external function isAssetManager - -```solidity -function isAssetManager(address maybeManager) external view returns (bool) -``` - -### external function isManagedAsset - -```solidity -function isManagedAsset(address maybeAsset) external view returns (bool) -``` - -### external function getAsset - -```solidity -function getAsset(address manager) external view returns (address) -``` - -### external function getAssetType - -```solidity -function getAssetType(address asset) external view returns (bytes32) -``` - -### external function getAssetUri - -```solidity -function getAssetUri(address asset) external view returns (bytes32) -``` - -### event AssetDeployed - -```solidity -event AssetDeployed(address asset, bytes32 assetUri, bytes32 assetType) -``` - -### event AssetManagerDeployed - -```solidity -event AssetManagerDeployed(address asset, address manager, bytes32 strategyId) -``` - - - diff --git a/docs/contracts/interfaces/IMultipass.md b/docs/contracts/interfaces/IMultipass.md deleted file mode 100644 index d73f8740..00000000 --- a/docs/contracts/interfaces/IMultipass.md +++ /dev/null @@ -1,291 +0,0 @@ - -# -## Description - -## Implementation - -### external function resolveRecord - -```solidity -function resolveRecord(struct LibMultipass.NameQuery query) external view returns (bool, struct LibMultipass.Record) -``` - -### external function initializeDomain - -```solidity -function initializeDomain(address registrar, uint256 freeRegistrationsNumber, uint256 fee, bytes32 domainName, uint256 referrerReward, uint256 referralDiscount) external -``` - -*Initializes new LibMultipass.Domain and configures it's parameters - -Requirements: - registrar is not zero - domainName is not empty - domainIndex is either zero(auto assign) or can be one of preoccupied LibMultipass.Domain names - domainName does not exist yet - onlyOwner - referrerReward+referralDiscount cannot be larger than fee - @param registrar address of registrar - @param freeRegistrationsNumber number of registrations free of fee - @param fee fee in base currency of network - @param domainName name of LibMultipass.Domain - @param referrerReward referral fee share in base currency of network - @param referralDiscount referral discount in base currency of network - - Emits an {InitializedDomain} event.* -### external function activateDomain - -```solidity -function activateDomain(bytes32 domainName) external -``` - -*Activates LibMultipass.Domain name - -Requirements: - msg.sender is Owner - - Emits an {DomainActivated} event.* -### external function deactivateDomain - -```solidity -function deactivateDomain(bytes32 domainName) external -``` - -*Deactivates LibMultipass.Domain name - -Deactivated LibMultipass.Domain cannot mutate names and will return zeros - -Requirements: - msg.sender is Owner OR registrar - - Emits an {DomainDeactivated} event.* -### external function changeFee - -```solidity -function changeFee(bytes32 domainName, uint256 fee) external -``` - -*Changes registrar address - -Requirements: - msg.sender is Owner - - Emits an {DomainFeeChanged} event.* -### external function changeRegistrar - -```solidity -function changeRegistrar(bytes32 domainName, address newRegistrar) external -``` - -*Changes registrar address - -Requirements: - msg.sender is Owner - - Emits an {RegistrarChangeRequested} event.* -### external function deleteName - -```solidity -function deleteName(struct LibMultipass.NameQuery query) external -``` - -*deletes name - -Requirements: - msg.sender is Owner - - Emits an {DomainTTLChangeRequested} event.* -### external function changeReferralProgram - -```solidity -function changeReferralProgram(uint256 referrerFeeShare, uint256 referralDiscount, uint256 freeRegistrations, bytes32 domainName) external -``` - -*executes all pending changes to LibMultipass.Domain that fulfill TTL - -Requirements: - domainName must be set - referrerFeeShare+referralDiscount cannot be larger than 2^32 - - Emits an {ReferralProgramChangeRequested} event.* -### external function register - -```solidity -function register(struct LibMultipass.Record newRecord, bytes32 domainName, bytes registrarSignature, uint256 signatureDeadline, struct LibMultipass.NameQuery referrer, bytes referralCode) external payable -``` - -*registers new name under LibMultipass.Domain - -Requirements: - all arguments must be set - domainName must be active -resolveRecord for given arguments should return no LibMultipass.Record - - Emits an {registered} event.* -### external function modifyUserName - -```solidity -function modifyUserName(bytes32 domainName, struct LibMultipass.NameQuery query, bytes32 newName, bytes registrarSignature, uint256 signatureDeadline) external payable -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `domainName` | `bytes32` | LibMultipass.Domain | -| `query` | `struct LibMultipass.NameQuery` | | -| `newName` | `bytes32` | new name Emits an {Modified} event. | -| `registrarSignature` | `bytes` | | -| `signatureDeadline` | `uint256` | | - -*modifies exsisting LibMultipass.Record - -Requirements: -resolveRecord for given arguments should return valid LibMultipass.Record -LibMultipass.Domain must be active -newAddress and newName should be set and be unique in current LibMultipass.Domain* -### external function getBalance - -```solidity -function getBalance() external view returns (uint256) -``` - -*returns balance of this contract* -### external function getDomainState - -```solidity -function getDomainState(bytes32 domainName) external view returns (struct LibMultipass.Domain) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `domainName` | `bytes32` | name of the LibMultipass.Domain | -| **Output** | | -| `0` | `struct LibMultipass.Domain` | (name, fee, freeRegistrationsNumber, referrerReward, referralDiscount, isActive, registrar, ttl, registerSize) | - -*returns LibMultipass.Domain state variables* -### external function getContractState - -```solidity -function getContractState() external view returns (uint256) -``` - -| Output | Type | Description | -| ------ | ---- | ----------- | -| `0` | `uint256` | (s_numDomains) | - -*returns contract state variables* -### external function withrawFunds - -```solidity -function withrawFunds(address to) external -``` - -*Withraws funds stored in smart contract - -Requirements: - onlyOwner - - Emits an {fundsWithdawn} event.* -### external function getModifyPrice - -```solidity -function getModifyPrice(struct LibMultipass.NameQuery query) external view returns (uint256) -``` - -### event fundsWithdawn - -```solidity -event fundsWithdawn(uint256 amount, address account) -``` - -### event InitializedDomain - -```solidity -event InitializedDomain(address registrar, uint256 freeRegistrationsNumber, uint256 fee, bytes32 domainName, uint256 referrerReward, uint256 referralDiscount) -``` - -### event DomainActivated - -```solidity -event DomainActivated(bytes32 domainName) -``` - -### event DomainDeactivated - -```solidity -event DomainDeactivated(bytes32 domainName) -``` - -### event DomainFeeChanged - -```solidity -event DomainFeeChanged(bytes32 domainName, uint256 newFee) -``` - -### event FreeRegistrationsChanged - -```solidity -event FreeRegistrationsChanged(uint256 domainIndex, uint256 newAmount) -``` - -### event RegistrarChangeRequested - -```solidity -event RegistrarChangeRequested(bytes32 domainName, address registrar) -``` - -### event DomainNameChangeRequested - -```solidity -event DomainNameChangeRequested(uint256 domainIndex, bytes32 NewDomainName) -``` - -### event nameDeleted - -```solidity -event nameDeleted(bytes32 domainName, address wallet, bytes32 id, bytes32 name) -``` - -### event DomainTTLChangeRequested - -```solidity -event DomainTTLChangeRequested(bytes32 domainName, uint256 amount) -``` - -### event ReferralProgramChanged - -```solidity -event ReferralProgramChanged(bytes32 domainName, uint256 reward, uint256 discount, uint256 freeNumber) -``` - -### event DomainChangesAreLive - -```solidity -event DomainChangesAreLive(bytes32 domainName, bytes32[] changes) -``` - -### event changesQeueCanceled - -```solidity -event changesQeueCanceled(bytes32 domainName, bytes32[] changes) -``` - -### event Registered - -```solidity -event Registered(bytes32 domainName, struct LibMultipass.Record NewRecord) -``` - -### event Referred - -```solidity -event Referred(struct LibMultipass.Record refferrer, struct LibMultipass.Record newRecord, bytes32 domainName) -``` - -### event UserRecordModified - -```solidity -event UserRecordModified(struct LibMultipass.Record newRecord, bytes32 oldName, bytes32 domainName) -``` - - - diff --git a/docs/contracts/interfaces/IRankToken.md b/docs/contracts/interfaces/IRankToken.md deleted file mode 100644 index 52bcfefa..00000000 --- a/docs/contracts/interfaces/IRankToken.md +++ /dev/null @@ -1,86 +0,0 @@ - -# -## Description - -## Implementation - -### event RankingInstanceUpdated - -```solidity -event RankingInstanceUpdated(address newRankingInstance) -``` - -### event LevelUp - -```solidity -event LevelUp(address account, uint256 id) -``` - -### external function mint - -```solidity -function mint(address to, uint256 amount, uint256 poolId, bytes data) external -``` - -*Mints a specified amount of tokens to an account. `to` is the address of the account to mint the tokens to. `amount` is the amount of tokens to mint. `poolId` is the ID of the pool. `data` is the additional data.* -### external function batchMint - -```solidity -function batchMint(address to, uint256[] ids, uint256[] amounts, bytes data) external -``` - -*Mints specified amounts of tokens to an account. `to` is the address of the account to mint the tokens to. `ids` is the array of IDs of the tokens to mint. `amounts` is the array of amounts of tokens to mint. `data` is the additional data.* -### external function levelUp - -```solidity -function levelUp(address to, uint256 id, bytes data) external -``` - -*Levels up an account. `to` is the address of the account to level up. `id` is the ID of the token. `data` is the additional data. - -emits a _LevelUp_ event.* -### external function updateRankingInstance - -```solidity -function updateRankingInstance(address newRankingInstance) external -``` - -*Updates the ranking instance. `newRankingInstance` is the address of the new ranking instance. - -emits a _RankingInstanceUpdated_ event.* -### external function getRankingInstance - -```solidity -function getRankingInstance() external view returns (address) -``` - -*Gets the ranking instance which can emit new rank updates and mint rank tokens. - -Returns: - -- The address of the ranking instance.* -### external function findNewRank - -```solidity -function findNewRank(address account, uint256 oldRank) external view returns (uint256) -``` - -*Finds the new rank of an account. `account` is the address of the account. `oldRank` is the old rank of the account. -It checks the balance of the account and returns the new rank that can be upgraded to. - -Returns: - -- The new rank of the account.* -### external function getAccountRank - -```solidity -function getAccountRank(address account) external view returns (uint256) -``` - -*Gets the rank of an account. `account` is the address of the account. - -Returns: - -- The rank of the account.* - - diff --git a/docs/contracts/interfaces/IRankifyInstanceCommons.md b/docs/contracts/interfaces/IRankifyInstanceCommons.md deleted file mode 100644 index cc0fdff0..00000000 --- a/docs/contracts/interfaces/IRankifyInstanceCommons.md +++ /dev/null @@ -1,100 +0,0 @@ - -# -## Description - -## Implementation - -### public struct Score - -```solidity -struct Score { - address participant; - uint256 score; -} -``` -### public struct RInstanceSettings - -```solidity -struct RInstanceSettings { - uint256 gamePrice; - address gamePaymentToken; - uint256 joinGamePrice; - uint256 numGames; - address rankTokenAddress; - bool contractInitialized; - struct LibQuadraticVoting.qVotingStruct voting; -} -``` -### public struct RInstanceState - -```solidity -struct RInstanceState { - struct IRankifyInstanceCommons.RInstanceSettings BestOfState; - struct LibTBG.GameSettings TBGSEttings; -} -``` -### public struct VoteHidden - -```solidity -struct VoteHidden { - bytes32 hash; - bytes proof; -} -``` -### public struct RInstance - -```solidity -struct RInstance { - uint256 rank; - address createdBy; - mapping(uint256 => string) ongoingProposals; - uint256 numOngoingProposals; - uint256 numPrevProposals; - mapping(address => bytes32) proposalCommitmentHashes; - uint256 numCommitments; - mapping(address => struct IRankifyInstanceCommons.VoteHidden) votesHidden; - address[] additionalRanks; - uint256 paymentsBalance; - uint256 numVotesThisTurn; - uint256 numVotesPrevTurn; - mapping(address => bool) playerVoted; -} -``` -### event RegistrationOpen - -```solidity -event RegistrationOpen(uint256 gameid) -``` - -### event PlayerJoined - -```solidity -event PlayerJoined(uint256 gameId, address participant) -``` - -### event GameStarted - -```solidity -event GameStarted(uint256 gameId) -``` - -### event gameCreated - -```solidity -event gameCreated(uint256 gameId, address gm, address creator, uint256 rank) -``` - -### event GameClosed - -```solidity -event GameClosed(uint256 gameId) -``` - -### event PlayerLeft - -```solidity -event PlayerLeft(uint256 gameId, address player) -``` - - - diff --git a/docs/contracts/interfaces/IRepository.md b/docs/contracts/interfaces/IRepository.md deleted file mode 100644 index e5fc9d9a..00000000 --- a/docs/contracts/interfaces/IRepository.md +++ /dev/null @@ -1,216 +0,0 @@ - -# IRepository -## Description - -The interface required for a repository. -This is a modified source from Aragon X, where interface names have been changed by generalising "plugin" in to source code address". -Implication of this is that this contract will not be aware of any setup code as opposed in original Aragon implementation which relied on having IPluginSetup requirements -This means that it is thought to be consumed by a factory contract, that will act as "Installer" and use reposiories for solo purpose of code lookup. -I think this is a good change as it makes the interface more generic and reusable for any kind of contract code, not just OSx specific. -TBD - I think that major release versions should include migration contract and call signatures, but this would breaking interfaces reliant on "Tag" structure. - -## Implementation - -### error VersionHashDoesNotExist - -Thrown if a version does not exist. - -```solidity -error VersionHashDoesNotExist(bytes32 versionHash) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `versionHash` | `bytes32` | The tag hash. | - -### error ReleaseZeroNotAllowed - -Thrown if a release number is zero. - -```solidity -error ReleaseZeroNotAllowed() -``` - -### error InvalidReleaseIncrement - -Thrown if a release number is incremented by more than one. - -```solidity -error InvalidReleaseIncrement(uint8 latestRelease, uint8 newRelease) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `latestRelease` | `uint8` | The latest release number. | -| `newRelease` | `uint8` | The new release number. | - -### error AlreadyInPreviousRelease - -Thrown if the same contract exists already in a previous releases. - -```solidity -error AlreadyInPreviousRelease(uint8 release, uint16 build, address source) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number of the already existing source. | -| `build` | `uint16` | The build number of the already existing source. | -| `source` | `address` | The contract address. | - -### error EmptyReleaseMetadata - -Thrown if the metadata URI is empty. - -```solidity -error EmptyReleaseMetadata() -``` - -### error ReleaseDoesNotExist - -Thrown if release does not exist. - -```solidity -error ReleaseDoesNotExist() -``` - -### external function updateReleaseMetadata - -Updates the metadata for release with content `@fromHex(releaseMetadata)`. - -```solidity -function updateReleaseMetadata(uint8 release, bytes releaseMetadata) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| `releaseMetadata` | `bytes` | The release metadata URI. | - -### external function createVersion - -Creates a new version as the latest build for an existing release number or the first build for a new release number for the provided `source` contract address and metadata. - -```solidity -function createVersion(uint8 release, address source, bytes buildMetadata, bytes releaseMetadata) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| `source` | `address` | The address of the source code. | -| `buildMetadata` | `bytes` | The build metadata URI. | -| `releaseMetadata` | `bytes` | The release metadata URI. | - -### event VersionCreated - -Emitted if the same source exists in previous releases. - -```solidity -event VersionCreated(uint8 release, uint16 build, address source, bytes buildMetadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| `build` | `uint16` | The build number. | -| `source` | `address` | The address of the source code. | -| `buildMetadata` | `bytes` | The build metadata URI. | - -### event ReleaseMetadataUpdated - -Emitted when a release's metadata was updated. - -```solidity -event ReleaseMetadataUpdated(uint8 release, bytes releaseMetadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| `releaseMetadata` | `bytes` | The release metadata URI. | - -### external function buildCount - -Gets the total number of builds for a given release number. - -```solidity -function buildCount(uint8 release) external view returns (uint256) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| **Output** | | -| `0` | `uint256` | The number of builds of this release. | - -### external function getVersion - -Returns the version for a tag hash. - -```solidity -function getVersion(bytes32 tagHash) external view returns (struct Version) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `tagHash` | `bytes32` | The tag hash. | -| **Output** | | -| `0` | `struct Version` | The version associated with a tag hash. | - -### external function getVersion - -Returns the version associated with a tag. - -```solidity -function getVersion(struct Tag tag) external view returns (struct Version) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `tag` | `struct Tag` | The version tag. | -| **Output** | | -| `0` | `struct Version` | The version associated with the tag. | - -### external function getLatestVersion - -Returns the latest version for a given source. - -```solidity -function getLatestVersion(address source) external view returns (struct Version) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `source` | `address` | The source address | -| **Output** | | -| `0` | `struct Version` | The latest version associated with the source. | - -### external function getLatestVersion - -Returns the latest version for a given release number. - -```solidity -function getLatestVersion(uint8 release) external view returns (struct Version) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `release` | `uint8` | The release number. | -| **Output** | | -| `0` | `struct Version` | The latest version of this release. | - -### external function latestRelease - -Returns the latest version for a given release number. - -```solidity -function latestRelease() external view returns (uint8) -``` - -| Output | Type | Description | -| ------ | ---- | ----------- | -| `0` | `uint8` | The latest version of this repository. | - - - diff --git a/docs/contracts/interfaces/IVInstaller.md b/docs/contracts/interfaces/IVInstaller.md deleted file mode 100644 index 5b32d61a..00000000 --- a/docs/contracts/interfaces/IVInstaller.md +++ /dev/null @@ -1,270 +0,0 @@ - -# IVInstaller -## Description - -Interface for managing the installation and instantiation of repositories. - -Distinguishing - -## Implementation - -### enum InstallationTypes - -*Enum defining the types of installation for repositories. -- Cloneable: The repository is cloneable. -- Constructable: The repository is constructable.* - -```solidity -enum InstallationTypes { - Cloneable, - Constructable -} -``` -### public struct Distribution - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*Struct defining the installation plan for a repository.* - -```solidity -struct Distribution { - struct VersionControl requiredSource; - bytes4[] initializerFnSelectors; - enum IVInstaller.InstallationTypes installationType; -} -``` -### error NotDistributing - -```solidity -error NotDistributing(contract IRepository repository) -``` - -*Error thrown when a repository is not added to the installer.* -### error VersionOutOfBounds - -```solidity -error VersionOutOfBounds(address repository, struct Tag version, struct Tag requiredTag) -``` - -*Error thrown when the version does not match the requirement for a repository.* -### event DistributionChanged - -```solidity -event DistributionChanged(contract IRepository repository, struct IVInstaller.Distribution oldInstaller, struct IVInstaller.Distribution newInstaller) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| `oldInstaller` | `struct IVInstaller.Distribution` | The old version requirement for the repository. | -| `newInstaller` | `struct IVInstaller.Distribution` | The new version requirement for the repository. | - -*Event emitted when the installer for repository is updated.* -### event DistributionCreated - -```solidity -event DistributionCreated(contract IRepository repository, address adder, struct VersionControl requirement, bytes32 metadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| `adder` | `address` | The address of the account that added the repository. | -| `requirement` | `struct VersionControl` | The version requirement for the repository. | -| `metadata` | `bytes32` | The metadata associated with the repository. | - -*Event emitted when a repository is added to the installer.* -### event DistributionRemoved - -```solidity -event DistributionRemoved(contract IRepository repository) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | - -*Event emitted when a repository is removed from the installer.* -### event Instantiated - -```solidity -event Instantiated(address newInstance, contract IRepository repository, address instantiator, struct Tag version, bytes metadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `newInstance` | `address` | The address of the new instance. | -| `repository` | `contract IRepository` | The address of the repository. | -| `instantiator` | `address` | The address of the account that instantiated the instance. | -| `version` | `struct Tag` | The version of the repository used for instantiation. | -| `metadata` | `bytes` | The metadata associated with the instance. | - -*Event emitted when a new instance is instantiated from a distribution.* -### event UpgradedMinor - -```solidity -event UpgradedMinor(contract IRepository repository, uint16 oldMinor, uint16 newMinor, uint8 build, bytes metadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| `oldMinor` | `uint16` | The old minor version. | -| `newMinor` | `uint16` | The new minor version. | -| `build` | `uint8` | The build number. | -| `metadata` | `bytes` | The metadata associated with the upgrade. | - -*Event emitted when distribution is upgraded to a new minor version.* -### event UpgradedMajor - -```solidity -event UpgradedMajor(contract IRepository repository, uint8 oldMajor, uint8 newMajor, uint16 build, bytes metadata) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| `oldMajor` | `uint8` | The old major version. | -| `newMajor` | `uint8` | The new major version. | -| `build` | `uint16` | The build number. | -| `metadata` | `bytes` | The metadata associated with the upgrade. | - -*Event emitted when source repository is upgraded to a new major version.* -### external function addDistribution - -```solidity -function addDistribution(struct IVInstaller.Distribution config, bytes32 metadata) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `config` | `struct IVInstaller.Distribution` | The configuration for the source repository. | -| `metadata` | `bytes32` | The metadata associated with the source repository. | - -*Adds new source repository to the installer.* -### external function removeSource - -```solidity -function removeSource(contract IRepository repository) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | - -*Removes a repository from the installer.* -### external function installNewExact - -```solidity -function installNewExact(struct Envelope installationData, struct Tag version) external returns (address) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `installationData` | `struct Envelope` | The payload for the installation. | -| `version` | `struct Tag` | The version of the repository to install. | - -*Installs a new instance from the latest version of a repository.* -### external function installNewLatest - -```solidity -function installNewLatest(struct Envelope installationData) external returns (address) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `installationData` | `struct Envelope` | The payload for the installation. | - -*Installs a new instance from the latest version of a repository.* -### external function upgradeDistribution - -```solidity -function upgradeDistribution(struct IVInstaller.Distribution newConfig, address migrationContract, bytes migrationData) external returns (address[] instances) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `newConfig` | `struct IVInstaller.Distribution` | The new configuration for the source repository. | -| `migrationContract` | `address` | The address of the migration contract. | -| `migrationData` | `bytes` | The data for the migration contract. | - -*Upgrades versioned source new requirements.* -### external function getInstances - -```solidity -function getInstances(contract IRepository repository) external view returns (address[]) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| **Output** | | -| `0` | `address[]` | An array of addresses representing the instances. | - -*Gets all instances created by installer for a specific repository source* -### external function getInstancesByVersion - -```solidity -function getInstancesByVersion(struct VersionControl sources) external view returns (address[]) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `sources` | `struct VersionControl` | The version control for the repository. | -| **Output** | | -| `0` | `address[]` | An array of addresses representing the instances. | - -*Gets all instances created by installer for a specific repository source* -### external function getDistributions - -```solidity -function getDistributions() external view returns (struct IVInstaller.Distribution[]) -``` - -| Output | Type | Description | -| ------ | ---- | ----------- | -| `0` | `struct IVInstaller.Distribution[]` | An array of addresses representing the repositories. | - -*Gets all distributions added to the installer.* -### external function getDistributor - -```solidity -function getDistributor(contract IRepository instance) external view returns (struct IVInstaller.Distribution) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `instance` | `contract IRepository` | The address of the instance. | -| **Output** | | -| `0` | `struct IVInstaller.Distribution` | The address of the repository. | - -*Gets the repository associated with a specific instance.* -### external function getVersion - -```solidity -function getVersion(address instance) external view returns (struct Tag) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `instance` | `address` | The address of the instance. | -| **Output** | | -| `0` | `struct Tag` | The version of the instance. | - -*Gets the version of a specific instance.* -### external function getDistribution - -```solidity -function getDistribution(contract IRepository repository) external view returns (struct IVInstaller.Distribution) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repository` | `contract IRepository` | The address of the repository. | -| **Output** | | -| `0` | `struct IVInstaller.Distribution` | The installation plan for the repository. | - -*Gets the installation plan for a specific repository.* - - diff --git a/docs/contracts/interfaces/IVRegistry.md b/docs/contracts/interfaces/IVRegistry.md deleted file mode 100644 index 0cc2a8ac..00000000 --- a/docs/contracts/interfaces/IVRegistry.md +++ /dev/null @@ -1,46 +0,0 @@ - -# -## Description - -## Implementation - -### external function register - -Registers a contract with a specific version. - -```solidity -function register(address source, struct Version version) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `source` | `address` | The address of the contract to register. | -| `version` | `struct Version` | The version of the contract. | - -### external function invalidate - -Sets the contract address of specific version to zero. - -```solidity -function invalidate(address source, bool invalidateMinors, struct Version version) external -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `source` | `address` | The address of the contract to register. | -| `invalidateMinors` | `bool` | | -| `version` | `struct Version` | The version of the contract. | - -### external function getVersion - -```solidity -function getVersion(struct Version version) external view returns (address) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `version` | `struct Version` | The version of the contract. | - -*Checks if a given address is registered in the IVRegistry.* - - diff --git a/docs/contracts/interfaces/IVRepoFactory.md b/docs/contracts/interfaces/IVRepoFactory.md deleted file mode 100644 index 1e2f3055..00000000 --- a/docs/contracts/interfaces/IVRepoFactory.md +++ /dev/null @@ -1,54 +0,0 @@ - -# IVRepoFactory -## Description - -This Interface creates `IRepository contract` proxies and registers them on a `IVersionBasedRegistry` contract. -This is a modified source from Aragon X, where interface names have been changed by generalising "plugin" in to source code address". -this implies that Repository anymore will not be aware of source code implementation and initialization selectors must be passed. - -## Implementation - -### event RepoCreated - -```solidity -event RepoCreated(contract IRepository repo, address proxy) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `repo` | `contract IRepository` | The address of the newly created repository. | -| `proxy` | `address` | The address of the proxy contract associated with the repository. | - -*Emitted when a new repository is created.* -### external function createRepo - -Creates a repository proxy pointing to the implementation of IRepository - -```solidity -function createRepo(string _subdomain, address _initialOwner) external returns (contract IRepository) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `_subdomain` | `string` | The repository subdomain. | -| `_initialOwner` | `address` | The maintainer address. | - -### external function createRepoWithFirstVersion - -Creates and registers a Repository with an ENS subdomain and publishes an initial version `1.1`. - -```solidity -function createRepoWithFirstVersion(string _subdomain, address _source, address _maintainer, bytes _releaseMetadata, bytes _buildMetadata) external returns (contract IRepository repository) -``` - -| Input | Type | Description | -|:----- | ---- | ----------- | -| `_subdomain` | `string` | The repository subdomain. | -| `_source` | `address` | contract associated with the version. | -| `_maintainer` | `address` | The maintainer of the repo. This address has permission to update metadata, upgrade the repo logic, and manage the repo permissions. | -| `_releaseMetadata` | `bytes` | The release metadata URI. | -| `_buildMetadata` | `bytes` | The build metadata URI. | - -*After the creation of the and release of the first version by the factory, ownership is transferred to the `_maintainer` address.* - - diff --git a/docs/contracts/interfaces/IVTag.md b/docs/contracts/interfaces/IVTag.md deleted file mode 100644 index 6013609c..00000000 --- a/docs/contracts/interfaces/IVTag.md +++ /dev/null @@ -1,81 +0,0 @@ - -# -### public struct Tag - -The struct describing the tag of a version obtained by a release and build number as `RELEASE.BUILD`. - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*Releases mark incompatible changes (e.g., the plugin interface, storage layout, or incompatible behavior) whereas builds mark compatible changes (e.g., patches and compatible feature additions).* - -```solidity -struct Tag { - uint8 release; - uint16 build; -} -``` - -# -### public struct Version - -The struct describing a plugin version (release and build). - -| Input | Type | Description | -|:----- | ---- | ----------- | - -```solidity -struct Version { - struct Tag tag; - address source; - bytes buildMetadata; -} -``` - -# -### enum VersionRequirementTypes - -*Enum defining the types of version requirements for repositories. -- All: Matches any version. -- MajorVersion: Matches any version with the same major version number. -- ExactVersion: Matches the exact version specified.* - -```solidity -enum VersionRequirementTypes { - All, - MajorVersion, - ExactVersion -} -``` - -# -### public struct VersionControl - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*Struct defining a version requirement for a repository.* - -```solidity -struct VersionControl { - address source; - struct Tag baseVersion; - enum VersionRequirementTypes requirementType; -} -``` - -# -### public struct Envelope - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*Struct defining the envelope for the installation of a new instance.* - -```solidity -struct Envelope { - address destination; - bytes[] data; -} -``` - diff --git a/docs/contracts/libraries/LibArray.md b/docs/contracts/libraries/LibArray.md deleted file mode 100644 index 1e514332..00000000 --- a/docs/contracts/libraries/LibArray.md +++ /dev/null @@ -1,28 +0,0 @@ - -# -## Description - -## Implementation - -### internal function quickSort - -```solidity -function quickSort(uint256[] arr, int256 left, int256 right) internal view -``` - -*Sorts the elements of the array in ascending order using the quicksort algorithm. - -Requirements: - -- The array to be sorted must not be empty. -- The starting and ending indices must be within the bounds of the array. - -Modifies: - -- The array is sorted in ascending order. - -Note: - -- This function uses the in-place quicksort algorithm, which has an average-case complexity of O(n log n) and a worst-case complexity of O(n^2).* - - diff --git a/docs/contracts/libraries/LibCoinVending.md b/docs/contracts/libraries/LibCoinVending.md deleted file mode 100644 index 92f182a0..00000000 --- a/docs/contracts/libraries/LibCoinVending.md +++ /dev/null @@ -1,300 +0,0 @@ - -# -## Description - -This library is used to simulate the vending machine coin acceptor state machine that: - - Supports large number of positions; Each represents requirements to acess different goods of the virtual vending machine. - - Accepts multiple assets of following types: Native (Eth), ERC20, ERC721, and ERC1155 tokens that can be stacked together. - - Allows for each individual asset action promise can be one of following: - - Lock: The asset is locked in the acceptor with promise that asset will be returned to the sender at release funds time. - - Bet: The asset is locked in the acceptor with promise that asset will be awarded to benificiary at release funds time. - - Pay: The asset is locked in the acceptor with promise that asset will be paid to payee at release funds time. - - Burn: The asset is locked in the acceptor with promise that asset will be destroyed at release funds time. - - Maintains each position balance, hence allowing multiple participants to line up for the same position. - - Allows three actions: - - Fund position with assets - - Refund assets to user - - Consume assets and provide goods to user - - Consuming asset might take a form of - - Transferring assets to payee - - Burning assets - - Awarding beneficiary with assets - - Returning locked assets back to sender - -This library DOES enforces that any position can only be refunded or processed only within amount funded boundaries -This library DOES NOT store the addresses of senders, nor benificiaries, nor payees. -This is to be stored within implementation contract. - - !!!!! IMPORTANT !!!!! -This library does NOT invocates reentrancy guards. It is implementation contract's responsibility to enforce reentrancy guards. -Reentrancy guards MUST be implemented in an implementing contract. - - Usage: - - 0. Configure position via configure(...) - 1. fund position with assets via fund(...) - 2. release or refund assets via release(...) or refund(...) - 3. repeat steps 1 and 2 as needed. - Position can be recofigured at any time when it's effective balance is zero: `timesFunded - timesRefuned - timesReleased = 0` - -Test state: -This library most functionality has been tested: see ../tests/LibCoinVending.ts and ../tests/report.md for details. - -ERC721 token is checked only for "HAVE" condition since putting requirements on non fungable token id yet to be resolved. -(see ERC721 section in the code below) - -This library has not been yet audited - -## Implementation - -### public struct Condition - -```solidity -struct Condition { - mapping(enum LibCoinVending.ContractTypes => mapping(address => mapping(uint256 => struct LibCoinVending.ContractCondition))) contracts; - struct LibCoinVending.NumericCondition ethValues; - uint256 timesRefunded; - uint256 timesReleased; - uint256 timesFunded; - enum LibCoinVending.ContractTypes[] contractTypes; - address[] contractAddresses; - uint256[] contractIds; - bool _isConfigured; -} -``` -### enum RequirementTypes - -```solidity -enum RequirementTypes { - HAVE, - LOCK, - BURN, - BET, - PAY -} -``` -### public struct TransactionProperties - -```solidity -struct TransactionProperties { - bytes data; - uint256 amount; -} -``` -### public struct ContractCondition - -```solidity -struct ContractCondition { - struct LibCoinVending.TransactionProperties have; - struct LibCoinVending.TransactionProperties lock; - struct LibCoinVending.TransactionProperties burn; - struct LibCoinVending.TransactionProperties pay; - struct LibCoinVending.TransactionProperties bet; -} -``` -### public struct NumericCondition - -```solidity -struct NumericCondition { - uint256 have; - uint256 lock; - uint256 burn; - uint256 pay; - uint256 bet; -} -``` -### enum TransferTypes - -```solidity -enum TransferTypes { - FUND, - REFUND, - RELEASE -} -``` -### public struct ConditionReturn - -```solidity -struct ConditionReturn { - struct LibCoinVending.NumericCondition ethValues; - uint256 timesRefunded; - uint256 timesReleased; - uint256 timesFunded; - address[] contractAddresses; - uint256[] contractIds; - enum LibCoinVending.ContractTypes[] contractTypes; - bool _isConfigured; -} -``` -### public struct configSmartRequirement - -```solidity -struct configSmartRequirement { - address contractAddress; - uint256 contractId; - enum LibCoinVending.ContractTypes contractType; - struct LibCoinVending.ContractCondition contractRequirement; -} -``` -### public struct ConfigPosition - -```solidity -struct ConfigPosition { - struct LibCoinVending.NumericCondition ethValues; - struct LibCoinVending.configSmartRequirement[] contracts; -} -``` -### public struct LibCoinVendingStorage - -```solidity -struct LibCoinVendingStorage { - mapping(bytes32 => struct LibCoinVending.Condition) positions; - address beneficiary; -} -``` -### enum ContractTypes - -```solidity -enum ContractTypes { - ERC20, - ERC1155, - ERC721 -} -``` -### internal variable COIN_VENDING_STORAGE_POSITION - -```solidity -bytes32 COIN_VENDING_STORAGE_POSITION -``` - -### internal function coinVendingPosition - -```solidity -function coinVendingPosition(bytes32 position) internal view returns (struct LibCoinVending.Condition) -``` - -### internal function coinVendingStorage - -```solidity -function coinVendingStorage() internal pure returns (struct LibCoinVending.LibCoinVendingStorage es) -``` - -### internal function refund - -```solidity -function refund(bytes32 position, address to) internal -``` - -*Returns all position requirements back to fundee. `position` is the identifier of the condition. `to` is the address to refund the balance to. - -Requirements: - -- The sum of `timesRefunded` and `timesReleased` for the condition must be less than `timesFunded`. - -Modifies: - -- Transfers the remaining balance of the condition to the `to` address. -- Increments the `timesRefunded` counter for the condition.* -### internal function batchRefund - -```solidity -function batchRefund(bytes32 position, address[] returnAddresses) internal -``` - -*Returns all position requirements back to multiple fundees. `position` is the identifier of the condition. `returnAddresses` is an array of addresses to refund the balance to. - -Requirements: - -- The sum of `timesRefunded` and `timesReleased` for the condition must be less than `timesFunded`. - -Modifies: - -- Transfers the remaining balance of the condition to each address in `returnAddresses`. -- Increments the `timesRefunded` counter for the condition for each address in `returnAddresses`.* -### internal function release - -```solidity -function release(bytes32 position, address payee, address beneficiary, address returnAddress) internal -``` - -*Releases the funds from a coin vending position to the specified addresses. `position` is the identifier of the condition. `payee`, `beneficiary`, and `returnAddress` are the addresses to release the funds to. - -Requirements: - -- The sum of `timesRefunded` and `timesReleased` for the condition must be less than `timesFunded`. - -Modifies: - -- Transfers the remaining balance of the condition to the `payee`, `beneficiary`, and `returnAddress`. -- Increments the `timesReleased` counter for the condition.* -### internal function batchRelease - -```solidity -function batchRelease(bytes32 position, address payee, address beneficiary, address[] returnAddresses) internal -``` - -*Releases the funds from a coin vending position to multiple return addresses. `position` is the identifier of the condition. `payee`, `beneficiary`, and `returnAddresses` are the addresses to release the funds to. - -Requirements: - -- The sum of `timesRefunded` and `timesReleased` for the condition must be less than `timesFunded`. - -Modifies: - -- Transfers the remaining balance of the condition to the `payee`, `beneficiary`, and each address in `returnAddresses`. -- Increments the `timesReleased` counter for the condition for each address in `returnAddresses`.* -### internal function fund - -```solidity -function fund(bytes32 position) internal -``` - -*Funds the position by `msg.sender`. `position` is the identifier of the condition. - -Requirements: - -- The condition must be configured. - -Modifies: - -- Transfers the funds from `msg.sender` to this contract. -- Increments the `timesFunded` counter for the condition.* -### internal function configure - -```solidity -function configure(bytes32 position, struct LibCoinVending.ConfigPosition configuration) internal -``` - -*Configures the position. `position` is the identifier of the condition. `configuration` is the new configuration for the condition. - -Requirements: - -- The condition must not have a positive balance. - -Modifies: - -- Sets the configuration of the condition to `configuration`.* -### internal function getPosition - -```solidity -function getPosition(bytes32 position) internal view returns (struct LibCoinVending.ConditionReturn) -``` - -*Returns the condition associated with the given position. `position` is the identifier of the condition. - -Returns: - -- The condition associated with `position`.* -### internal function getPositionByContract - -```solidity -function getPositionByContract(bytes32 position, address contractAddress, uint256 contractId, enum LibCoinVending.ContractTypes contractType) internal view returns (struct LibCoinVending.ContractCondition) -``` - -*Returns the contract condition associated with the given position, contract address, contract ID, and contract type. `position` is the identifier of the condition. `contractAddress` is the address of the contract. `contractId` is the ID of the contract. `contractType` is the type of the contract. - -Returns: - -- The contract condition associated with `position`, `contractAddress`, `contractId`, and `contractType`.* - - diff --git a/docs/contracts/libraries/LibEIP712Storage.md b/docs/contracts/libraries/LibEIP712Storage.md deleted file mode 100644 index c3803750..00000000 --- a/docs/contracts/libraries/LibEIP712Storage.md +++ /dev/null @@ -1,32 +0,0 @@ - -# -## Description - -## Implementation - -### internal variable EIP712_STORAGE_POSITION - -```solidity -bytes32 EIP712_STORAGE_POSITION -``` - -### public struct LibEIP712WithStorageStorage - -```solidity -struct LibEIP712WithStorageStorage { - bytes32 _CACHED_DOMAIN_SEPARATOR; - uint256 _CACHED_CHAIN_ID; - address _CACHED_THIS; - bytes32 _HASHED_NAME; - bytes32 _HASHED_VERSION; - bytes32 _TYPE_HASH; -} -``` -### internal function EIP712WithStorage - -```solidity -function EIP712WithStorage() internal pure returns (struct LibEIP712WithStorage.LibEIP712WithStorageStorage ds) -``` - - - diff --git a/docs/contracts/libraries/LibMultipass.md b/docs/contracts/libraries/LibMultipass.md deleted file mode 100644 index 86def15d..00000000 --- a/docs/contracts/libraries/LibMultipass.md +++ /dev/null @@ -1,190 +0,0 @@ - -# -## Description - -## Implementation - -### public struct NameQuery - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*resolves user from any given argument -Requirements: - domainName must be given and must be initialized - id OR username OR address must be given -This method first tries to resolve by address, then by user id and finally by username* - -```solidity -struct NameQuery { - bytes32 domainName; - address wallet; - bytes32 name; - bytes32 id; - bytes32 targetDomain; -} -``` -### public struct Domain - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*The domain name of the registrar.* - -```solidity -struct Domain { - bytes32 name; - uint256 fee; - uint256 freeRegistrationsNumber; - uint256 referrerReward; - uint256 referralDiscount; - bool isActive; - address registrar; - uint24 ttl; - uint256 registerSize; -} -``` -### public struct Record - -```solidity -struct Record { - address wallet; - bytes32 name; - bytes32 id; - uint96 nonce; - bytes32 domainName; -} -``` -### internal variable MULTIPASS_STORAGE_POSITION - -```solidity -bytes32 MULTIPASS_STORAGE_POSITION -``` - -### public struct DomainNameService - -| Input | Type | Description | -|:----- | ---- | ----------- | - -*The domain name of the registrar.* - -```solidity -struct DomainNameService { - struct LibMultipass.Domain properties; - mapping(bytes32 => address) idToAddress; - mapping(bytes32 => uint96) nonce; - mapping(address => bytes32) addressToId; - mapping(bytes32 => bytes32) nameToId; - mapping(bytes32 => bytes32) idToName; -} -``` -### public struct MultipassStorageStruct - -```solidity -struct MultipassStorageStruct { - mapping(uint256 => struct LibMultipass.DomainNameService) domains; - mapping(bytes32 => uint256) domainNameToIndex; - uint256 numDomains; -} -``` -### internal function MultipassStorage - -```solidity -function MultipassStorage() internal pure returns (struct LibMultipass.MultipassStorageStruct es) -``` - -### internal variable _TYPEHASH - -```solidity -bytes32 _TYPEHASH -``` - -### internal variable _TYPEHASH_REFERRAL - -```solidity -bytes32 _TYPEHASH_REFERRAL -``` - -### internal function _checkStringFits32b - -```solidity -function _checkStringFits32b(string value) internal pure returns (bool) -``` - -### internal function _checkNotEmpty - -```solidity -function _checkNotEmpty(bytes32 value) internal pure returns (bool) -``` - -### internal function resolveDomainIndex - -```solidity -function resolveDomainIndex(bytes32 domainName) internal view returns (uint256) -``` - -### internal function _getDomainStorage - -```solidity -function _getDomainStorage(bytes32 domainName) internal view returns (struct LibMultipass.DomainNameService) -``` - -### internal function _initializeDomain - -```solidity -function _initializeDomain(address registrar, uint256 freeRegistrationsNumber, uint256 fee, bytes32 domainName, uint256 referrerReward, uint256 referralDiscount) internal -``` - -### internal function _getModifyPrice - -```solidity -function _getModifyPrice(struct LibMultipass.Record userRecord) internal view returns (uint256) -``` - -### internal function resolveRecord - -```solidity -function resolveRecord(struct LibMultipass.NameQuery query) internal view returns (bool, struct LibMultipass.Record) -``` - -*resolves Record of name query in to status and identity* -### internal function _setRecord - -```solidity -function _setRecord(struct LibMultipass.DomainNameService domain, struct LibMultipass.Record record) internal -``` - -*this function bears no security checks, it will ignore nonce in arg and will increment - nonce value stored in domain instread* -### internal function queryFromRecord - -```solidity -function queryFromRecord(struct LibMultipass.Record _record, bytes32 _domainName) internal pure returns (struct LibMultipass.NameQuery) -``` - -### internal function shouldRegisterForFree - -```solidity -function shouldRegisterForFree(struct LibMultipass.DomainNameService domain) internal view returns (bool) -``` - -### internal function _registerNew - -```solidity -function _registerNew(struct LibMultipass.Record newRecord, struct LibMultipass.DomainNameService domain) internal -``` - -### internal function _getContractState - -```solidity -function _getContractState() internal view returns (uint256) -``` - -### internal function _getDomainStorageByIdx - -```solidity -function _getDomainStorageByIdx(uint256 index) internal view returns (struct LibMultipass.DomainNameService) -``` - - - diff --git a/docs/contracts/libraries/LibQuadraticVoting.md b/docs/contracts/libraries/LibQuadraticVoting.md deleted file mode 100644 index 0bd9e694..00000000 --- a/docs/contracts/libraries/LibQuadraticVoting.md +++ /dev/null @@ -1,48 +0,0 @@ - -# -### error quadraticVotingError - -```solidity -error quadraticVotingError(string paramter, uint256 arg, uint256 arg2) -``` - -# LibQuadraticVoting -## Description - -A library for quadratic voting calculations. - -## Implementation - -### public struct qVotingStruct - -```solidity -struct qVotingStruct { - uint256 voteCredits; - uint256 maxQuadraticPoints; - uint256 minQuadraticPositons; -} -``` -### internal function precomputeValues - -```solidity -function precomputeValues(uint256 voteCredits, uint256 minExpectedVoteItems) internal pure returns (struct LibQuadraticVoting.qVotingStruct) -``` - -*Precomputes the values for quadratic voting. `voteCredits` is the total number of vote credits. `minExpectedVoteItems` is the minimum expected number of vote items. - -Returns: - -- A `qVotingStruct` containing the precomputed values.* -### internal function computeScoresByVPIndex - -```solidity -function computeScoresByVPIndex(struct LibQuadraticVoting.qVotingStruct q, uint256[][] VotersVotes, bool[] voterVoted, uint256 notVotedGivesEveyone, uint256 proposalsLength) internal pure returns (uint256[]) -``` - -*Computes the scores for each proposal by voter preference index. `q` is the precomputed quadratic voting values. `VotersVotes` is a 2D array of votes, where each row corresponds to a voter and each column corresponds to a proposal. `voterVoted` is an array indicating whether each voter has voted. `notVotedGivesEveyone` is the number of points to distribute to each proposal for each voter that did not vote. `proposalsLength` is the number of proposals. - -Returns: - -- An array of scores for each proposal.* - - diff --git a/docs/contracts/libraries/LibRankify.md b/docs/contracts/libraries/LibRankify.md deleted file mode 100644 index f2ca4917..00000000 --- a/docs/contracts/libraries/LibRankify.md +++ /dev/null @@ -1,272 +0,0 @@ - -# -## Description - -## Implementation - -### internal function compareStrings - -```solidity -function compareStrings(string a, string b) internal pure returns (bool) -``` - -*Compares two strings for equality. `a` and `b` are the strings to compare. - -Returns: - -- `true` if the strings are equal, `false` otherwise.* -### internal function getGameStorage - -```solidity -function getGameStorage(uint256 gameId) internal view returns (struct IRankifyInstanceCommons.RInstance game) -``` - -*Returns the game storage for the given game ID. `gameId` is the ID of the game. - -Returns: - -- The game storage for `gameId`.* -### internal function RInstanceStorage - -```solidity -function RInstanceStorage() internal pure returns (struct IRankifyInstanceCommons.RInstanceSettings bog) -``` - -*Returns the Rankify InstanceSettings storage. - -Returns: - -- The RInstanceSettings storage.* -### internal variable _PROPOSAL_PROOF_TYPEHASH - -```solidity -bytes32 _PROPOSAL_PROOF_TYPEHASH -``` - -### internal variable _VOTE_PROOF_TYPEHASH - -```solidity -bytes32 _VOTE_PROOF_TYPEHASH -``` - -### internal variable _VOTE_SUBMIT_PROOF_TYPEHASH - -```solidity -bytes32 _VOTE_SUBMIT_PROOF_TYPEHASH -``` - -### internal function enforceIsInitialized - -```solidity -function enforceIsInitialized() internal view -``` - -*Ensures that the contract is initialized. - -Requirements: - -- The contract must be initialized.* -### internal function enforceGameExists - -```solidity -function enforceGameExists(uint256 gameId) internal view -``` - -*Ensures that the game with the given ID exists. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must exist.* -### internal function newGame - -```solidity -function newGame(uint256 gameId, address gameMaster, uint256 gameRank, address creator) internal -``` - -*Creates a new game with the given parameters. `gameId` is the ID of the new game. `gameMaster` is the address of the game master. `gameRank` is the rank of the game. `creator` is the address of the creator of the game. - -Requirements: - -- The game with `gameId` must not already exist. -- `gameRank` must not be 0. -- If the game price is not 0, the `creator` must have approved this contract to transfer the game price amount of the game payment token on their behalf. - -Modifies: - -- Creates a new game with `gameId`. -- Transfers the game price amount of the game payment token from `creator` to this contract. -- Sets the payments balance of the game to the game price. -- Sets the creator of the game to `creator`. -- Increments the number of games. -- Sets the rank of the game to `gameRank`. -- Mints new rank tokens.* -### internal function enforceIsGameCreator - -```solidity -function enforceIsGameCreator(uint256 gameId, address candidate) internal view -``` - -*Ensures that the candidate is the creator of the game with the given ID. `gameId` is the ID of the game. `candidate` is the address of the candidate. - -Requirements: - -- The game with `gameId` must exist. -- `candidate` must be the creator of the game.* -### internal function enforceIsGM - -```solidity -function enforceIsGM(uint256 gameId, address candidate) internal view -``` - -*Ensures that the candidate is the game master of the game with the given ID. `gameId` is the ID of the game. `candidate` is the address of the candidate. - -Requirements: - -- The game with `gameId` must exist. -- `candidate` must be the game master of the game.* -### internal function joinGame - -```solidity -function joinGame(uint256 gameId, address player) internal -``` - -*Allows a player to join a game. `gameId` is the ID of the game. `player` is the address of the player. - -Requirements: - -- The game with `gameId` must exist. -- If the join game price is not 0, the `player` must have approved this contract to transfer the join game price amount of the game payment token on their behalf. - -Modifies: - -- Transfers the join game price amount of the game payment token from `player` to this contract. -- Increases the payments balance of the game by the join game price. -- Adds `player` to the game.* -### internal function closeGame - -```solidity -function closeGame(uint256 gameId, address beneficiary, function (uint256,address) playersGameEndedCallback) internal returns (uint256[]) -``` - -*Closes the game with the given ID and transfers the game's balance to the beneficiary. `gameId` is the ID of the game. `beneficiary` is the address to transfer the game's balance to. `playersGameEndedCallback` is a callback function to call for each player when the game ends. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- Emits rank rewards for the game. -- Removes and unlocks each player from the game. -- Calls `playersGameEndedCallback` for each player. -- Transfers the game's balance to `beneficiary`. - -Returns: - -- The final scores of the game.* -### internal function quitGame - -```solidity -function quitGame(uint256 gameId, address player, bool slash, function (uint256,address) onPlayerLeftCallback) internal -``` - -*Allows a player to quit a game. `gameId` is the ID of the game. `player` is the address of the player. `slash` is a boolean indicating whether to slash the player's payment refund. `onPlayerLeftCallback` is a callback function to call when the player leaves. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- If the join game price is not 0, transfers a refund to `player` and decreases the game's payments balance by the refund amount. -- Removes and unlocks `player` from the game. -- Calls `onPlayerLeftCallback` for `player`.* -### internal function cancelGame - -```solidity -function cancelGame(uint256 gameId, function (uint256,address) onPlayerLeftCallback, address beneficiary) internal -``` - -*Cancels the game with the given ID, refunds half of the game's payment to the game creator, and transfers the remaining balance to the beneficiary. `gameId` is the ID of the game. `onPlayerLeftCallback` is a callback function to call for each player when they leave. `beneficiary` is the address to transfer the remaining balance to. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- Calls `quitGame` for each player in the game. -- Transfers half of the game's payment to the game creator. -- Decreases the game's payments balance by the refund amount. -- Transfers the remaining balance of the game to `beneficiary`. -- Deletes the game.* -### internal function fulfillRankRq - -```solidity -function fulfillRankRq(uint256 gameId, address player) internal -``` - -*Fulfills the rank requirement for a player to join a game. `gameId` is the ID of the game. `player` is the address of the player. - -Modifies: - -- Locks the rank token(s) of `player` in the rank token contract. -- If the game has additional ranks, locks the additional ranks of `player` in the respective rank token contracts.* -### internal function emitRankRewards - -```solidity -function emitRankRewards(uint256 gameId, address[] leaderboard) internal -``` - -*Emits rank rewards to the top addresses in the leaderboard for each rank in the game. `gameId` is the ID of the game. `leaderboard` is an array of addresses representing the leaderboard. - -Modifies: - -- Calls `emitRankReward` for the main rank and each additional rank in the game.* -### internal function removeAndUnlockPlayer - -```solidity -function removeAndUnlockPlayer(uint256 gameId, address player) internal -``` - -*Removes a player from a game and unlocks their rank tokens. `gameId` is the ID of the game. `player` is the address of the player to be removed. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- Removes `player` from the game. -- If the game rank is greater than 1, unlocks the game rank token for `player` in the rank token contract and unlocks each additional rank token for `player` in the respective rank token contracts.* -### internal function tryPlayerMove - -```solidity -function tryPlayerMove(uint256 gameId, address player) internal returns (bool) -``` - -*Tries to make a move for a player in a game. `gameId` is the ID of the game. `player` is the address of the player. -The "move" is considered to be a state when player has made all actions he could in the given turn. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- If the player has not voted and a vote is expected, or if the player has not made a proposal and a proposal is expected, does not make a move and returns `false`. -- Otherwise, makes a move for `player` and returns `true`.* -### internal function calculateScoresQuadratic - -```solidity -function calculateScoresQuadratic(uint256 gameId, uint256[][] votesRevealed, uint256[] proposerIndicies) internal returns (uint256[], uint256[]) -``` - -*Calculates the scores using a quadratic formula based on the revealed votes and proposer indices. `gameId` is the ID of the game. `votesRevealed` is an array of revealed votes. `proposerIndicies` is an array of proposer indices that links proposals to index in getPlayers(). - -Returns: - -- An array of updated scores for each player. -- An array of scores calculated for the current round.* - - diff --git a/docs/contracts/libraries/LibReentrancyGuard.md b/docs/contracts/libraries/LibReentrancyGuard.md deleted file mode 100644 index ac70b6b7..00000000 --- a/docs/contracts/libraries/LibReentrancyGuard.md +++ /dev/null @@ -1,27 +0,0 @@ - -# -## Description - -## Implementation - -### internal variable TBG_STORAGE_POSITION - -```solidity -bytes32 TBG_STORAGE_POSITION -``` - -### public struct ReentrancyGuardStruct - -```solidity -struct ReentrancyGuardStruct { - bool _entered; -} -``` -### internal function reentrancyGuardStorage - -```solidity -function reentrancyGuardStorage() internal pure returns (struct LibReentrancyGuard.ReentrancyGuardStruct ds) -``` - - - diff --git a/docs/contracts/libraries/LibTurnBasedGame.md b/docs/contracts/libraries/LibTurnBasedGame.md deleted file mode 100644 index 1d22f150..00000000 --- a/docs/contracts/libraries/LibTurnBasedGame.md +++ /dev/null @@ -1,709 +0,0 @@ - -# LibTBG -## Description - -Library for managing turn-based games. -It is designed to be used as a base library for games, and provides the following functionality: -- setting game settings such as time per turn, max players, min players, etc as well as perform score and leaderboard tracking - -Limitations: -- It is assumed there is only one game per player -- It is assumed there is only on game master per game - -***WARNING*** Some limitations: -- This library is still under development and its interfaces may change. -- getting game data (which has own storage assigement and can be encapsulated from library) however there is no storage slot collision checks in place - -## Implementation - -### public struct GameSettings - -```solidity -struct GameSettings { - uint256 timePerTurn; - uint256 maxPlayersSize; - uint256 minPlayersSize; - uint256 timeToJoin; - uint256 maxTurns; - uint256 numWinners; - uint256 voteCredits; - string subject; -} -``` -### public struct GameInstance - -```solidity -struct GameInstance { - address gameMaster; - uint256 currentTurn; - uint256 turnStartedAt; - uint256 registrationOpenAt; - bool hasStarted; - bool hasEnded; - struct EnumerableSet.AddressSet players; - mapping(address => bool) madeMove; - uint256 numPlayersMadeMove; - mapping(address => uint256) score; - bytes32 implemenationStoragePointer; - bool isOvertime; - address[] leaderboard; -} -``` -### public struct TBGStorageStruct - -```solidity -struct TBGStorageStruct { - struct LibTBG.GameSettings settings; - mapping(uint256 => struct LibTBG.GameInstance) games; - mapping(address => uint256) playerInGame; - uint256 totalGamesCreated; -} -``` -### internal variable TBG_STORAGE_POSITION - -```solidity -bytes32 TBG_STORAGE_POSITION -``` - -### internal variable IMPLEMENTATION_STORAGE_POSITION - -```solidity -bytes32 IMPLEMENTATION_STORAGE_POSITION -``` - -### internal function TBGStorage - -```solidity -function TBGStorage() internal pure returns (struct LibTBG.TBGStorageStruct es) -``` - -### internal function _getGame - -```solidity -function _getGame(uint256 gameId) internal view returns (struct LibTBG.GameInstance) -``` - -### internal function init - -```solidity -function init(struct LibTBG.GameSettings settings) internal -``` - -*Initializes the game with the provided settings. `settings` is the settings for the game. - -Requirements: - -- `settings.timePerTurn` must not be zero. -- `settings.maxPlayersSize` must not be zero. -- `settings.minPlayersSize` must be at least 2. -- `settings.maxTurns` must not be zero. -- `settings.numWinners` must not be zero and must be less than `settings.minPlayersSize`. -- `settings.timeToJoin` must not be zero. -- `settings.maxPlayersSize` must not be less than `settings.minPlayersSize`. -- `settings.subject` must not be an empty string. - -Modifies: - -- Sets the settings of the game to `settings`.* -### internal function createGame - -```solidity -function createGame(uint256 gameId, address gm) internal -``` - -*Creates a new game with the provided game ID and game master. `gameId` is the ID of the game. `gm` is the address of the game master. - -Requirements: - -- The game with `gameId` must not already exist. -- `gm` must not be the zero address. -- `gameId` must not be zero. -- The game master of the game with `gameId` must be the zero address. - -Modifies: - -- Sets the game master of the game with `gameId` to `gm`. -- Increments the total number of games created.* -### internal function deleteGame - -```solidity -function deleteGame(uint256 gameId) internal -``` - -*Deletes a game with the provided game ID. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- Sets the game master, current turn, hasEnded, hasStarted, - implementationStoragePointer, isOvertime, leaderboard, numPlayersMadeMove, - players, registrationOpenAt, and turnStartedAt of the game with `gameId` - to their initial values. -- Sets the score and madeMove of each player in the game with `gameId` - to their initial values.* -### internal function canBeJoined - -```solidity -function canBeJoined(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID can be joined. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game can be joined.* -### internal function addPlayer - -```solidity -function addPlayer(uint256 gameId, address participant) internal -``` - -*Adds a player to a game with the provided game ID. `gameId` is the ID of the game. `participant` is the address of the player. - -Requirements: - -- The game with `gameId` must exist. -- `participant` must not already be in a game. -- The number of players in the game with `gameId` must be less than the maximum number of players. -- The game with `gameId` must be joinable. - -Modifies: - -- Adds `participant` to the players of the game with `gameId`. -- Sets the madeMove of `participant` in the game with `gameId` to false. -- Sets the game of `participant` to `gameId`.* -### internal function isPlayerInGame - -```solidity -function isPlayerInGame(uint256 gameId, address player) internal view returns (bool) -``` - -*Checks if a player is in a game with the provided game ID. `gameId` is the ID of the game. `player` is the address of the player. - -Returns: - -- A boolean indicating whether the player is in the game.* -### internal function removePlayer - -```solidity -function removePlayer(uint256 gameId, address participant) internal -``` - -*Removes a player from a game with the provided game ID. `gameId` is the ID of the game. `participant` is the address of the player. - -Requirements: - -- The game with `gameId` must exist. -- `participant` must be in the game with `gameId`. -- The game with `gameId` must not have started or must have ended. - -Modifies: - -- Sets the game of `participant` to 0. -- Removes `participant` from the players of the game with `gameId`.* -### internal function isTurnTimedOut - -```solidity -function isTurnTimedOut(uint256 gameId) internal view returns (bool) -``` - -*Checks if the current turn in a game with the provided game ID has timed out. `gameId` is the ID of the game. - -Requirements: - -- `gameId` must not be zero. -- The game with `gameId` must have started. - -Returns: - -- A boolean indicating whether the current turn has timed out.* -### internal function gameExists - -```solidity -function gameExists(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID exists. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game exists.* -### internal function enforceHasStarted - -```solidity -function enforceHasStarted(uint256 gameId) internal view -``` - -*Enforces that a game with the provided game ID has started. `gameId` is the ID of the game. - -Requirements: - -- `gameId` must not be zero. -- The game with `gameId` must have started.* -### internal function canEndTurn - -```solidity -function canEndTurn(uint256 gameId) internal view returns (bool) -``` - -*Enforces that a game with the provided game ID has started. `gameId` is the ID of the game. - -Requirements: - -- `gameId` must not be zero. -- The game with `gameId` must have started.* -### internal function canEndTurnEarly - -```solidity -function canEndTurnEarly(uint256 gameId) internal view returns (bool) -``` - -*Checks if the current turn in a game with the provided game ID can end early. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the current turn can end early.* -### internal modifier onlyInTurnTime - -```solidity -modifier onlyInTurnTime(uint256 gameId) -``` - -*Modifier that requires the current turn in a game with the provided game ID to be able to end. `gameId` is the ID of the game. - -Requirements: - -- The current turn in the game with `gameId` must be able to end.* -### internal modifier onlyWhenTurnCanEnd - -```solidity -modifier onlyWhenTurnCanEnd(uint256 gameId) -``` - -### internal function _clearCurrentMoves - -```solidity -function _clearCurrentMoves(struct LibTBG.GameInstance game) internal -``` - -*Clears the current moves in a game. `game` is the game. - -Modifies: - -- Sets the madeMove of each player in `game` to false.* -### internal function _resetPlayerStates - -```solidity -function _resetPlayerStates(struct LibTBG.GameInstance game) internal -``` - -*Resets the states of the players in a game. `game` is the game. - -Modifies: - -- Sets the madeMove and score of each player in `game` to their initial values.* -### internal function setScore - -```solidity -function setScore(uint256 gameId, address player, uint256 value) internal -``` - -*Sets the score of a player in a game with the provided game ID. `gameId` is the ID of the game. `player` is the address of the player. `value` is the score. - -Requirements: - -- `player` must be in the game with `gameId`. - -Modifies: - -- Sets the score of `player` in the game with `gameId` to `value`.* -### internal function getScore - -```solidity -function getScore(uint256 gameId, address player) internal view returns (uint256) -``` - -*Gets the score of a player in a game with the provided game ID. `gameId` is the ID of the game. `player` is the address of the player. - -Returns: - -- The score of `player` in the game with `gameId`.* -### internal function getScores - -```solidity -function getScores(uint256 gameId) internal view returns (address[], uint256[]) -``` - -*Gets the scores of the players in a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- An array of the addresses of the players in the game with `gameId`. -- An array of the scores of the players in the game with `gameId`.* -### internal function openRegistration - -```solidity -function openRegistration(uint256 gameId) internal -``` - -*Opens registration for a game with the provided game ID. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must exist. - -Modifies: - -- Sets the registrationOpenAt of the game with `gameId` to the current block timestamp.* -### internal function isRegistrationOpen - -```solidity -function isRegistrationOpen(uint256 gameId) internal view returns (bool) -``` - -*Checks if registration is open for a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether registration is open for the game.* -### internal function canStart - -```solidity -function canStart(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID can start. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game can start.* -### internal function canStartEarly - -```solidity -function canStartEarly(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID can start early. `gameId` is the ID of the game. -By "early" it is assumed that time to join has not yet passed, but it's already cap players limit reached. - -Returns: - -- A boolean indicating whether the game can start early.* -### internal function startGameEarly - -```solidity -function startGameEarly(uint256 gameId) internal -``` - -*Starts a game with the provided game ID early. `gameId` is the ID of the game. -By "early" it is assumed that time to join has not yet passed, but it's already cap players limit reached. - -Requirements: - -- The game with `gameId` must exist. -- The game with `gameId` must not have started. -- The game with `gameId` must have opened registration. -- The number of players in the game with `gameId` must be greater than or equal to the minimum number of players. -- The number of players in the game with `gameId` must be equal to the maximum number of players or the current block timestamp must be greater than the registration open time plus the time to join. - -Modifies: - -- Sets the hasStarted, hasEnded, currentTurn, and turnStartedAt of the game with `gameId` to their new values. -- Resets the states of the players in the game with `gameId`.* -### internal function startGame - -```solidity -function startGame(uint256 gameId) internal -``` - -*Starts a game with the provided game ID. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must exist. -- The game with `gameId` must not have started. -- The game with `gameId` must have opened registration. -- The current block timestamp must be greater than the registration open time plus the time to join. - -Modifies: - -- Sets the hasStarted, hasEnded, currentTurn, and turnStartedAt of the game with `gameId` to their new values. -- Resets the states of the players in the game with `gameId`.* -### internal function getTurn - -```solidity -function getTurn(uint256 gameId) internal view returns (uint256) -``` - -*Gets the current turn of a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- The current turn of the game with `gameId`.* -### internal function getGM - -```solidity -function getGM(uint256 gameId) internal view returns (address) -``` - -*Gets the game master of a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- The game master of the game with `gameId`.* -### internal function isLastTurn - -```solidity -function isLastTurn(uint256 gameId) internal view returns (bool) -``` - -*Checks if the current turn is the last turn in a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the current turn is the last turn in the game.* -### internal function isGameOver - -```solidity -function isGameOver(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID is over. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game is over.* -### internal function enforceIsNotOver - -```solidity -function enforceIsNotOver(uint256 gameId) internal view -``` - -*Enforces that a game with the provided game ID is not over. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must not be over.* -### internal function playerMove - -```solidity -function playerMove(uint256 gameId, address player) internal -``` - -*Records a player's move in a game with the provided game ID. `gameId` is the ID of the game. `player` is the address of the player. - -Requirements: - -- The game with `gameId` must have started. -- The game with `gameId` must not be over. -- `player` must not have made a move in the current turn of the game with `gameId`. -- `player` must be in the game with `gameId`. - -Modifies: - -- Sets the madeMove of `player` in the game with `gameId` to true. -- Increments the numPlayersMadeMove of the game with `gameId`.* -### internal function isPlayerTurnComplete - -```solidity -function isPlayerTurnComplete(uint256 gameId, address player) internal view returns (bool) -``` - -### internal function enforceIsPlayingGame - -```solidity -function enforceIsPlayingGame(uint256 gameId, address player) internal view -``` - -*Enforces that a player is in a game with the provided game ID. `gameId` is the ID of the game. `player` is the address of the player. - -Requirements: - -- `player` must be in the game with `gameId`.* -### internal function hasStarted - -```solidity -function hasStarted(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID has started. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game has started.* -### internal function getLeaderBoard - -```solidity -function getLeaderBoard(uint256 gameId) internal view returns (address[]) -``` - -*Gets the leaderboard of a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- An array of the addresses of the players in the game with `gameId`, sorted by score.* -### internal function nextTurn - -```solidity -function nextTurn(uint256 gameId) internal returns (bool, bool, bool) -``` - -*Advances to the next turn in a game with the provided game ID. `gameId` is the ID of the game. - -Requirements: - -- The game with `gameId` must be able to end the current turn early. (all players have moved or the turn has timed out) - -Modifies: - -- Clears the current moves in the game with `gameId`. -- Increments the currentTurn of the game with `gameId`. -- Sets the turnStartedAt of the game with `gameId` to the current block timestamp. -- If the current turn is the last turn or the game with `gameId` is in overtime, checks if the game is a tie and sets the isOvertime of the game with `gameId` to the result. -- Sets the hasEnded of the game with `gameId` to whether the game is over. - -Returns: - -- A boolean indicating whether the current turn is the last turn. -- A boolean indicating whether the game is a tie. -- A boolean indicating whether the game is over.* -### internal function getDataStorage - -```solidity -function getDataStorage() internal pure returns (bytes32 pointer) -``` - -*Gets the data storage pointer. - -Returns: - -- The data storage pointer.* -### internal function getGameDataStorage - -```solidity -function getGameDataStorage(uint256 gameId) internal view returns (bytes32 pointer) -``` - -*Gets the game data storage pointer of a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- The game data storage pointer of the game with `gameId`.* -### internal function getPlayersNumber - -```solidity -function getPlayersNumber(uint256 gameId) internal view returns (uint256) -``` - -*Gets the number of players in a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- The number of players in the game with `gameId`.* -### internal function getPlayers - -```solidity -function getPlayers(uint256 gameId) internal view returns (address[]) -``` - -*Gets the players in a game with the provided game ID. `gameId` is the ID of the game. - -Returns: - -- An array of the addresses of the players in the game with `gameId`.* -### internal function getGameSettings - -```solidity -function getGameSettings() internal view returns (struct LibTBG.GameSettings) -``` - -*Gets the game settings. - -Returns: - -- The game settings.* -### internal function enforceIsPreRegistrationStage - -```solidity -function enforceIsPreRegistrationStage(uint256 gameId) internal view -``` - -*Enforces that a game with the provided game ID is in the pre-registration stage. `gameId` is the ID of the game. - -Requirements: - -- Registration must not be open for the game with `gameId`. -- The game with `gameId` must not have started.* -### internal function addOvertime - -```solidity -function addOvertime(uint256 gameId) internal -``` - -*Adds overtime to a game with the provided game ID. `gameId` is the ID of the game. - -Modifies: - -- Sets the isOvertime of the game with `gameId` to true.* -### internal function isOvertime - -```solidity -function isOvertime(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID is in overtime. `gameId` is the ID of the game. - -Returns: - -- A boolean indicating whether the game is in overtime.* -### internal function resetOvertime - -```solidity -function resetOvertime(uint256 gameId) internal -``` - -*Resets the overtime of a game with the provided game ID. `gameId` is the ID of the game. - -Modifies: - -- Sets the isOvertime of the game with `gameId` to false.* -### internal function isTie - -```solidity -function isTie(uint256 gameId) internal view returns (bool) -``` - -*Checks if a game with the provided game ID is a tie. `gameId` is the ID of the game. -Tie being defined as at least two of the top `numWinners` players having the same score. - -Returns: - -- A boolean indicating whether the game is a tie.* -### internal function getPlayersGame - -```solidity -function getPlayersGame(address player) internal view returns (uint256) -``` - -*Gets the game ID of the game a player is in. `player` is the address of the player. - -Returns: - -- The game ID of the game `player` is in.* -### internal function sortByScore - -```solidity -function sortByScore(uint256 gameId) internal view returns (address[], uint256[]) -``` - -*Sorts the players in a game with the provided game ID by score in descending order. `gameId` is the ID of the game. - -Returns: - -- An array of the addresses of the players in the game with `gameId`, sorted by score. -- An array of the scores of the players in the game with `gameId`, sorted in descending order.* - - diff --git a/docs/contracts/tokens/RankToken.md b/docs/contracts/tokens/RankToken.md deleted file mode 100644 index e5932ede..00000000 --- a/docs/contracts/tokens/RankToken.md +++ /dev/null @@ -1,172 +0,0 @@ - -# -## Description - -## Implementation - -### public variable rank - -```solidity -mapping(address => uint256) rank -``` - -### public variable topRank - -```solidity -uint256 topRank -``` - -### internal variable _levelUpThreshold - -```solidity -uint256 _levelUpThreshold -``` - -### internal modifier onlyRankingInstance - -```solidity -modifier onlyRankingInstance() -``` - -### public function constructor - -```solidity -constructor(string uri_, address owner_, string cURI, uint256 levelUpThreshold, address[] components, uint256[] componentWeights) public -``` - -### public function getRankingInstance - -```solidity -function getRankingInstance() public view returns (address) -``` - -*Gets the ranking instance which can emit new rank updates and mint rank tokens. - -Returns: - -- The address of the ranking instance.* -### public function contractURI - -```solidity -function contractURI() public view returns (string) -``` - -### public function setURI - -```solidity -function setURI(string uri_) public -``` - -### public function setContractURI - -```solidity -function setContractURI(string uri_) public -``` - -### event Leader - -```solidity -event Leader(address account, uint256 rank) -``` - -### public function mint - -```solidity -function mint(address to, uint256 amount, uint256 level, bytes data) public -``` - -### public function updateRankingInstance - -```solidity -function updateRankingInstance(address newRankingInstance) public -``` - -*Updates the ranking instance. `newRankingInstance` is the address of the new ranking instance. - -emits a _RankingInstanceUpdated_ event.* -### public function lock - -```solidity -function lock(address account, uint256 id, uint256 amount) public -``` - -### public function unlock - -```solidity -function unlock(address account, uint256 id, uint256 amount) public -``` - -### public function batchMint - -```solidity -function batchMint(address to, uint256[] ids, uint256[] amounts, bytes data) public -``` - -*Mints specified amounts of tokens to an account. `to` is the address of the account to mint the tokens to. `ids` is the array of IDs of the tokens to mint. `amounts` is the array of amounts of tokens to mint. `data` is the additional data.* -### public function levelUp - -```solidity -function levelUp(address to, uint256 level, bytes data) public -``` - -### public function findNewRank - -```solidity -function findNewRank(address account, uint256 oldRank) public view returns (uint256) -``` - -*Finds the new rank of an account. `account` is the address of the account. `oldRank` is the old rank of the account. -It checks the balance of the account and returns the new rank that can be upgraded to. - -Returns: - -- The new rank of the account.* -### event RankUpdated - -```solidity -event RankUpdated(address account, uint256 rank) -``` - -### internal function _afterTokenTransfer - -```solidity -function _afterTokenTransfer(address operator, address from, address to, uint256[] ids, uint256[] amounts, bytes data) internal -``` - -*Hook that is called after any token transfer. This includes minting -and burning, as well as batched variants. - -The same hook is called on both single and batched variants. For single -transfers, the length of the `id` and `amount` arrays will be 1. - -Calling conditions (for each `id` and `amount` pair): - -- When `from` and `to` are both non-zero, `amount` of ``from``'s tokens -of token type `id` will be transferred to `to`. -- When `from` is zero, `amount` tokens of token type `id` will be minted -for `to`. -- when `to` is zero, `amount` of ``from``'s tokens of token type `id` -will be burned. -- `from` and `to` are never both zero. -- `ids` and `amounts` have the same, non-zero length. - -To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].* -### external function getAccountRank - -```solidity -function getAccountRank(address account) external view returns (uint256) -``` - -*Gets the rank of an account. `account` is the address of the account. - -Returns: - -- The rank of the account.* -### public function supportsInterface - -```solidity -function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) -``` - - - diff --git a/docs/contracts/tokens/Rankify.md b/docs/contracts/tokens/Rankify.md deleted file mode 100644 index 08c695b6..00000000 --- a/docs/contracts/tokens/Rankify.md +++ /dev/null @@ -1,26 +0,0 @@ - -# -## Description - -## Implementation - -### internal variable numTokens - -```solidity -uint256 numTokens -``` - -### public function constructor - -```solidity -constructor(address owner) public -``` - -### public function mint - -```solidity -function mint(address to, uint256 amount) public -``` - - - diff --git a/docs/templates/common.hbs b/docs/templates/common.hbs index 5c11492f..d6e0aa93 100644 --- a/docs/templates/common.hbs +++ b/docs/templates/common.hbs @@ -1,23 +1,26 @@ -{{h 2}} {{visibility}} {{toLowerCase type}} {{name}} -{{{natspec.notice}}} +{{#if (isVisible visibility)}} +{{h 2}} {{name}} + +{{substituteAnchors natspec.notice}} {{#if signature}} ```solidity -{{{signature}}} +{{{signature}}} ``` {{/if}} +{{/if}} {{#if natspec.params}} | Input | Type | Description | |:----- | ---- | ----------- | {{#each params}} -| `{{{name}}}` | `{{{type}}}` | {{{joinLines natspec}}} | +| `{{{name}}}` | `{{{type}}}` | {{{joinLines (substituteAnchors natspec)}}} | {{/each}} {{#if natspec.returns}} | **Output** | | {{#each returns}} -| {{#if name}} `{{name}}` {{else}} `{{@index}}` {{/if}} | `{{type}}` | {{{joinLines natspec}}} | +| {{#if name}} `{{name}}` {{else}} `{{@index}}` {{/if}} | `{{type}}` | {{{joinLines (substituteAnchors natspec)}}} | {{/each}} {{/if}} {{else}} @@ -25,11 +28,12 @@ | Output | Type | Description | | ------ | ---- | ----------- | {{#each returns}} -| {{#if name}} `{{{name}}}` {{else}} `{{{@index}}}` {{/if}} | `{{type}}` | {{{joinLines natspec}}} | +| {{#if name}} `{{{name}}}` {{else}} `{{{@index}}}` {{/if}} | `{{type}}` | {{{joinLines (substituteAnchors natspec)}}} | {{/each}} {{/if}} {{/if}} {{#if natspec.dev}} -*{{{natspec.dev}}}* +{{{transformDev (substituteAnchors natspec.dev)}}} {{/if}} + diff --git a/docs/templates/contract.hbs b/docs/templates/contract.hbs index e1c0bffc..eb3beae6 100644 --- a/docs/templates/contract.hbs +++ b/docs/templates/contract.hbs @@ -1,10 +1,7 @@ -## Description - {{{natspec.notice}}} -{{{natspec.dev}}} +{{{transformDev (substituteAnchors natspec.dev)}}} -## Implementation {{#each items}} {{>item}} diff --git a/docs/templates/helpers.ts b/docs/templates/helpers.ts index e22e89e6..ac958ae4 100644 --- a/docs/templates/helpers.ts +++ b/docs/templates/helpers.ts @@ -61,3 +61,74 @@ export function joinLines(text?: string) { return text.replace(/\n+/g, ' '); } } + +export function transformDev(comment: string): string { + // Split the comment into lines + const lines = comment?.split('\n') ?? []; + + // Initialize variables to store the transformed text + let transformedText = ''; + let isWarning = false; + let isFirstNotice = true; + let noticeBlock = ''; + + // Iterate over each line + lines.forEach(line => { + const trimmedLine = line.trim(); + + // Check if the line starts with WARNING: + if (trimmedLine.startsWith('WARNING:')) { + // Add the WARNING prefix + if (noticeBlock) { + transformedText += `\n\n!!! NOTICE\n\n\t${noticeBlock.trim().replace(/\n/g, '\n\t')}`; + noticeBlock = ''; + } + transformedText += `\n\n!!! WARNING\n\n\t${trimmedLine.replace('WARNING:', '').trim()}`; + isWarning = true; + } else if (trimmedLine) { + // Add the line to the NOTICE block + if (isWarning) { + transformedText += `\n\t${trimmedLine}`; + } else { + noticeBlock += `\n${trimmedLine}`; + } + } else { + // Handle empty lines + if (noticeBlock) { + transformedText += `\n\n!!! NOTICE\n\n\t${noticeBlock.trim().replace(/\n/g, '\n\t')}`; + noticeBlock = ''; + } + isWarning = false; + } + }); + + // Add any remaining notice block + if (noticeBlock) { + transformedText += `\n\n!!! NOTICE\n\n\t${noticeBlock.trim().replace(/\n/g, '\n\t')}`; + } + + // Return the transformed text + return transformedText.trim(); +} + +export const isVisible = (type: string) => { + return type !== 'internal' && type !== 'private'; +}; + +export const substituteAnchors = (text: string) => { + if (typeof text === 'string') { + return text.replace(/{([^}]+)}/g, (match: string, p1: string) => { + // Split the reference into parts + const parts = p1.split('.'); + const anchor = parts.length > 1 ? `#${parts.slice(1).join('.').toLocaleLowerCase()}` : ''; + const reference = parts[0]; + const displayText = reference.charAt(0).toUpperCase() + reference.slice(1); + + // Handle different depth levels + const path = reference.startsWith('../') ? reference : `./${reference}`; + + return `[${displayText}${anchor}](../${path}${anchor})`; + }); + } + return text; +}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..ce03e957 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,42 @@ +import promise from "eslint-plugin-promise"; +import globals from "globals"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [{ + ignores: ["docs/templates/", "**/node_modules/", "types/"], +}, ...compat.extends("eslint:recommended", "plugin:promise/recommended", "prettier"), { + plugins: { + promise, + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + ...globals.mocha, + artifacts: "readonly", + contract: "readonly", + assert: "readonly", + web3: "readonly", + }, + + parser: tsParser, + }, + + rules: { + "no-unused-vars": "off", + }, + files: ["**/*.js","**/*.jsx","**/*.ts","**/*.tsx"] +}]; \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index 636c45a9..184d243b 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,5 +1,4 @@ import { task } from 'hardhat/config'; -import { ethers } from 'hardhat'; import '@nomicfoundation/hardhat-chai-matchers'; import 'hardhat-diamond-abi'; import '@nomicfoundation/hardhat-toolbox'; @@ -11,9 +10,10 @@ import 'hardhat-gas-reporter'; // import fs from "fs"; import 'hardhat-contract-sizer'; import 'hardhat-deploy'; +import 'hardhat-tracer'; import 'solidity-docgen'; import './playbook/initializeDomain'; -import initializeDomain from './playbook/initializeDomain'; +import './playbook/createGame'; task('accounts', 'Prints the list of accounts', async (taskArgs, hre) => { const accounts = await hre.ethers.getSigners(); @@ -95,7 +95,13 @@ export default { }, registrar: { localhost: '0xaA63aA2D921F23f204B6Bcb43c2844Fb83c82eb9', - } + }, + defaultPlayer: { + localhost: '0xF52E5dF676f51E410c456CC34360cA6F27959420', + }, + }, + mocha: { + timeout: 400000, }, defaultNetwork: 'hardhat', networks: { @@ -103,6 +109,10 @@ export default { accounts: { mnemonic: 'casual vacant letter raw trend tool vacant opera buzz jaguar bridge myself', }, // ONLY LOCAL + forking: { + url: process.env.FORK_RPC_URL ?? '', + blockNumber: 257223284, // works for arbitrum, change for others + }, }, mumbai: { url: 'https://matic-mumbai.chainstacklabs.com', @@ -143,7 +153,16 @@ export default { settings: { optimizer: { enabled: true, - runs: 200000, + runs: 2000, + }, + }, + }, + { + version: '0.8.17', + settings: { + optimizer: { + enabled: true, + runs: 2000, }, }, }, diff --git a/package.json b/package.json index 5c2c5919..39a62110 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ ], "description": "Contracts for rankify.it", "scripts": { - "lint:fix": "eslint ./ --ext js,jsx,ts,tsx --fix && pnpm run lint:sol:fix", - "lint": "eslint ./ --ext js,jsx,ts,tsx && pnpm run lint:sol", + "lint:fix": "eslint ./ --fix && pnpm run lint:sol:fix", + "lint": "eslint ./ && pnpm run lint:sol", "upgrade:game:mumbai": "source .secrets/hh_mumbai.env && pnpm hardhat --network mumbai deploy --tags upgrade_game", "test": "export NODE_ENV=TEST && pnpm hardhat test", "test:parallel": "export NODE_ENV=TEST && pnpm hardhat test --parallel", @@ -35,8 +35,8 @@ "@nomiclabs/buidler": "^1.4.8", "@nomiclabs/buidler-web3": "^1.3.4", "@nomiclabs/hardhat-ethers": "^2.0.6", - "@nomiclabs/hardhat-etherscan": "^3.1.0", - "@openzeppelin/test-helpers": "^0.5.10", + "@nomiclabs/hardhat-etherscan": "^3.1.8", + "@peeramid-labs/eds": "^2.0.0", "@shopify/eslint-plugin": "^43.0.0", "@solidstate/contracts": "^0.0.35", "@typechain/ethers-v5": "^11.1.2", @@ -45,19 +45,21 @@ "@types/cli-table": "^0.3.0", "@types/crypto-js": "^4.1.1", "@types/node-fetch": "^2.6.2", - "@typescript-eslint/parser": "^6.7.4", + "@typescript-eslint/parser": "^7.16.0", "chai": "^4.3.6", "crypto-js": "^4.1.1", - "eslint": "^8.31.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-promise": "^6.1.1", + "eslint": "^9.6.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-promise": "^6.4.0", "eth-create2-calculator": "^1.1.5", "ethers": "^5.6.6", - "hardhat": "^2.18.2", + "globals": "^15.9.0", + "hardhat": "2.22.11", "hardhat-abi-exporter": "^2.9.0", "hardhat-contract-sizer": "^2.6.1", "hardhat-deploy": "^0.12.2", "hardhat-diamond-abi": "^3.0.0", + "hardhat-tracer": "^3.1.0", "keccak": "^3.0.1", "mocha": "^10.0.0", "prettier-plugin-solidity": "^1.1.3", @@ -69,10 +71,13 @@ }, "dependencies": { "@aragon/osx": "^1.3.0", + "@aragon/osx-ethers": "^1.3.0", + "@aragon/sdk-client": "^1.26.0", "@ethersproject/abi": "^5.7.0", "@ethersproject/providers": "^5.7.2", "@openzeppelin/contracts": "^5.0.0", "@openzeppelin/contracts-upgradeable": "^5.0.0", + "@safe-global/safe-contracts": "1.4.1-build.0", "@types/chai": "^4.3.1", "@types/mocha": "^9.1.1", "@types/node": "^17.0.36", diff --git a/playbook/createGame.ts b/playbook/createGame.ts new file mode 100644 index 00000000..ffd477f3 --- /dev/null +++ b/playbook/createGame.ts @@ -0,0 +1,77 @@ +import { task } from 'hardhat/config'; +import { RankifyDiamondInstance, Rankify } from '../types'; +import { IRankifyInstanceCommons } from '../types/src/facets/RankifyInstanceMainFacet'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; + +task('gameCreated', 'Create new game') + .addOptionalParam('gameCreator', 'Player address who will create game') + .setAction( + async ({ + gameCreator, + }: { gameCreator: string;}, + hre: HardhatRuntimeEnvironment) => { + const { deployments, getNamedAccounts } = hre; + const rankifyDeployment = await deployments.get('Rankify'); + const rankifyInstanceDeployment = await deployments.get('RankifyInstance'); + const { owner, registrar, defaultPlayer } = await getNamedAccounts(); + gameCreator = gameCreator ?? defaultPlayer; + + await mintTokensToGameCreator(rankifyDeployment, gameCreator, owner, hre); + await approveTokensUse(rankifyDeployment, rankifyInstanceDeployment, gameCreator, hre); + await createGame(rankifyInstanceDeployment, gameCreator, registrar, hre); + }, + ); + +export const mintTokensToGameCreator = async ( + rankifyDeployment: any, + gameCreator: string, + owner: string, + hre: HardhatRuntimeEnvironment +) => { + const rankifyContract = new hre.ethers.Contract( + rankifyDeployment.address, + rankifyDeployment.abi, + hre.ethers.provider.getSigner(owner), + ) as Rankify; + const tx = await rankifyContract + .mint(gameCreator, hre.ethers.utils.parseEther('1000')); +}; + +export const approveTokensUse = async ( + rankifyDeployment: any, + rankifyInstanceDeployment: any, + gameCreator: string, + hre: HardhatRuntimeEnvironment +) => { + const rankifyContract = new hre.ethers.Contract( + rankifyDeployment.address, + rankifyDeployment.abi, + hre.ethers.provider.getSigner(gameCreator), + ) as Rankify; + + const tx = await rankifyContract + .approve(rankifyInstanceDeployment.address, hre.ethers.constants.MaxUint256); +}; + +export const createGame = async ( + rankifyInstanceDeployment: any, + gameCreator: string, + registrar: string, + hre: HardhatRuntimeEnvironment +) => { + const rankifyInstanceContract = new hre.ethers.Contract( + rankifyInstanceDeployment.address, + rankifyInstanceDeployment.abi, + hre.ethers.provider.getSigner(gameCreator), + ) as RankifyDiamondInstance; + + const tx = await rankifyInstanceContract + ['createGame(address,uint256)'](registrar, 1); + + const gameId = await rankifyInstanceContract + .getContractState() + .then((state: IRankifyInstanceCommons.RInstanceStateStructOutput) => state.BestOfState.numGames); + + console.log('Game with id ' + gameId.toNumber() + ' created!'); +}; +export default {}; diff --git a/playbook/initializeDomain.ts b/playbook/initializeDomain.ts index 6ef13b66..4637c237 100644 --- a/playbook/initializeDomain.ts +++ b/playbook/initializeDomain.ts @@ -1,8 +1,11 @@ import { task, types } from 'hardhat/config'; import { MultipassDiamond } from '../types'; import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { LibMultipass } from '../types/src/facets/DNSFacet'; +import crypto from "crypto"; +import { signRegistrarMessage } from "../playbook/utils/utils"; -task('initializeDomain', 'Initialize domain name and activate it') +task('domainInitialized', 'Initialize domain name and activate it') .addOptionalParam('registrarAddress', 'Registrar address') .addOptionalParam('domain', 'Domain name to register', 'Rankify.it') .addOptionalParam('freeRegistrationsNumber', 'Free registration count number', '1000') @@ -10,6 +13,8 @@ task('initializeDomain', 'Initialize domain name and activate it') .addOptionalParam('reward', 'Referral share in base currency of network', '0') .addOptionalParam('discount', 'Discount in base currency of network', '0') .addOptionalParam('activate', 'Discount in base currency of network', true, types.boolean) + .addOptionalParam('username', 'Username to associate with account', '') + .addOptionalParam('player', 'Player address whose username will be set') .setAction( async ( { @@ -20,11 +25,13 @@ task('initializeDomain', 'Initialize domain name and activate it') discount, registrarAddress, activate, - }: { domain: string; freeRegistrationsNumber: string; fee: string; reward: string; discount: string; registrarAddress: string; activate: boolean }, - hre, + username, + player, + }: { domain: string; freeRegistrationsNumber: string; fee: string; reward: string; discount: string; registrarAddress: string; activate: boolean; username: string; player: string; }, + hre: HardhatRuntimeEnvironment, ) => { const { deployments, getNamedAccounts } = hre; - const { owner, registrar } = await getNamedAccounts(); + const { owner, registrar, defaultPlayer } = await getNamedAccounts(); const multipassDeployment = await deployments.get('Multipass'); registrarAddress = registrarAddress ?? registrar; const multipassContract = new hre.ethers.Contract( @@ -40,15 +47,52 @@ task('initializeDomain', 'Initialize domain name and activate it') hre.ethers.utils.parseEther(reward), hre.ethers.utils.parseEther(discount), ); - console.log(tx.wait(1)); - if(activate === true) { + if (activate === true) { const tx = await multipassContract .activateDomain(hre.ethers.utils.formatBytes32String(domain)); - console.log(tx.wait(1)); - console.log('Domain name "' + domain + '" successfully initialized and activated!') + console.log('Domain name "' + domain + '" successfully initialized and activated!'); + } + + if (username) { + player = player ?? defaultPlayer; + const playerId = crypto.randomUUID().slice(0, 31); + const registrarMessage = { + name: hre.ethers.utils.formatBytes32String(username), + id: hre.ethers.utils.formatBytes32String(playerId), + domainName: hre.ethers.utils.formatBytes32String(domain), + deadline: hre.ethers.BigNumber.from(9999), + nonce: hre.ethers.BigNumber.from(0), + }; + let signer = await hre.ethers.getSigner(registrar); + + const validSignature = await signRegistrarMessage(registrarMessage, multipassDeployment.address, signer, hre); + + let applicantData: LibMultipass.RecordStruct = { + name: hre.ethers.utils.formatBytes32String(username), + id: hre.ethers.utils.formatBytes32String(playerId), + wallet: player, + nonce: 0, + domainName: hre.ethers.utils.formatBytes32String(domain), + }; + + const emptyUserQuery: LibMultipass.NameQueryStruct = { + name: hre.ethers.utils.formatBytes32String(''), + id: hre.ethers.utils.formatBytes32String(''), + domainName: hre.ethers.utils.formatBytes32String(''), + wallet: hre.ethers.constants.AddressZero, + targetDomain: hre.ethers.utils.formatBytes32String(''), + }; + + const tx = await multipassContract.register( + applicantData, + registrarMessage.domainName, + validSignature, + registrarMessage.deadline, + emptyUserQuery, + hre.ethers.constants.HashZero, + ); } }, ); - export default {}; diff --git a/playbook/utils/utils.ts b/playbook/utils/utils.ts new file mode 100644 index 00000000..f5c32c55 --- /dev/null +++ b/playbook/utils/utils.ts @@ -0,0 +1,18 @@ +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; +import { RegisterMessage, MultipassJs } from '../..//utils/multipass'; + +export const signRegistrarMessage = async ( + message: RegisterMessage, + verifierAddress: string, + signer: SignerWithAddress, + hre: any + ) => { + let { chainId } = await hre.ethers.provider.getNetwork(); + const multipassJs = new MultipassJs({ + chainId: chainId, + contractName: 'MultipassDNS', + version: '0.0.1', + ...hre.network, + }); + return await multipassJs.signRegistrarMessage(message, verifierAddress, signer); + }; \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fd91ef0..64cd4c52 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,13 @@ importers: dependencies: '@aragon/osx': specifier: ^1.3.0 - version: 1.3.0(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + version: 1.3.0(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@aragon/osx-ethers': + specifier: ^1.3.0 + version: 1.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@aragon/sdk-client': + specifier: ^1.26.0 + version: 1.26.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@ethersproject/abi': specifier: ^5.7.0 version: 5.7.0 @@ -23,9 +29,12 @@ importers: '@openzeppelin/contracts-upgradeable': specifier: ^5.0.0 version: 5.0.2(@openzeppelin/contracts@5.0.2) + '@safe-global/safe-contracts': + specifier: 1.4.1-build.0 + version: 1.4.1-build.0(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@types/chai': specifier: ^4.3.1 - version: 4.3.9 + version: 4.3.20 '@types/mocha': specifier: ^9.1.1 version: 9.1.1 @@ -40,313 +49,312 @@ importers: version: 0.3.11 hardhat-gas-reporter: specifier: ^1.0.9 - version: 1.0.9(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@17.0.45)(typescript@5.2.2) + version: 10.9.2(@types/node@17.0.45)(typescript@5.6.2) typescript: specifier: ^5.2.2 - version: 5.2.2 + version: 5.6.2 devDependencies: '@changesets/changelog-github': specifier: ^0.4.8 version: 0.4.8 '@changesets/cli': specifier: ^2.26.2 - version: 2.26.2 + version: 2.27.8 '@nomicfoundation/hardhat-chai-matchers': specifier: ^1.0.1 - version: 1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-network-helpers': specifier: ^1.0.9 - version: 1.0.9(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 1.0.12(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) '@nomicfoundation/hardhat-toolbox': specifier: ^2.0.2 - version: 2.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.7(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2)))(@types/chai@4.3.9)(@types/mocha@9.1.1)(@types/node@17.0.45)(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.9(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(solidity-coverage@0.8.5(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2) + version: 2.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2)))(@types/chai@4.3.20)(@types/mocha@9.1.1)(@types/node@17.0.45)(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2) '@nomiclabs/buidler': specifier: ^1.4.8 version: 1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@nomiclabs/buidler-web3': specifier: ^1.3.4 - version: 1.3.4(@nomiclabs/buidler@1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + version: 1.3.4(@nomiclabs/buidler@1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@nomiclabs/hardhat-ethers': specifier: ^2.0.6 - version: 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) '@nomiclabs/hardhat-etherscan': - specifier: ^3.1.0 - version: 3.1.7(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@openzeppelin/test-helpers': - specifier: ^0.5.10 - version: 0.5.16(bn.js@5.2.1)(bufferutil@4.0.8)(utf-8-validate@5.0.10) + specifier: ^3.1.8 + version: 3.1.8(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@peeramid-labs/eds': + specifier: ^2.0.0 + version: 2.0.0(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) '@shopify/eslint-plugin': specifier: ^43.0.0 - version: 43.0.0(@babel/core@7.23.2)(eslint@8.52.0)(prettier@3.0.3)(typescript@5.2.2) + version: 43.0.0(@babel/core@7.25.2)(eslint@9.11.1)(prettier@2.8.8)(typescript@5.6.2) '@solidstate/contracts': specifier: ^0.0.35 version: 0.0.35 '@typechain/ethers-v5': specifier: ^11.1.2 - version: 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2) + version: 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2) '@typechain/hardhat': specifier: ^7.0.0 - version: 7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2)) + version: 7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2)) '@typechain/web3-v1': specifier: ^6.0.1 - version: 6.0.7(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2)(web3-core@1.10.3)(web3-eth-contract@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + version: 6.0.7(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2)(web3-core@1.10.4)(web3-eth-contract@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@types/cli-table': specifier: ^0.3.0 - version: 0.3.3 + version: 0.3.4 '@types/crypto-js': specifier: ^4.1.1 - version: 4.1.3 + version: 4.2.2 '@types/node-fetch': specifier: ^2.6.2 - version: 2.6.7 + version: 2.6.11 '@typescript-eslint/parser': - specifier: ^6.7.4 - version: 6.8.0(eslint@8.52.0)(typescript@5.2.2) + specifier: ^7.16.0 + version: 7.18.0(eslint@9.11.1)(typescript@5.6.2) chai: specifier: ^4.3.6 - version: 4.3.10 + version: 4.5.0 crypto-js: specifier: ^4.1.1 - version: 4.1.1 + version: 4.2.0 eslint: - specifier: ^8.31.0 - version: 8.52.0 + specifier: ^9.6.0 + version: 9.11.1 eslint-config-prettier: - specifier: ^9.0.0 - version: 9.0.0(eslint@8.52.0) + specifier: ^9.1.0 + version: 9.1.0(eslint@9.11.1) eslint-plugin-promise: - specifier: ^6.1.1 - version: 6.1.1(eslint@8.52.0) + specifier: ^6.4.0 + version: 6.6.0(eslint@9.11.1) eth-create2-calculator: specifier: ^1.1.5 version: 1.1.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) ethers: specifier: ^5.6.6 version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + globals: + specifier: ^15.9.0 + version: 15.9.0 hardhat: - specifier: ^2.18.2 - version: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + specifier: 2.22.11 + version: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) hardhat-abi-exporter: specifier: ^2.9.0 - version: 2.10.1(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 2.10.1(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) hardhat-contract-sizer: specifier: ^2.6.1 - version: 2.10.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 2.10.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) hardhat-deploy: specifier: ^0.12.2 version: 0.12.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) hardhat-diamond-abi: specifier: ^3.0.0 - version: 3.0.1(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + version: 3.0.1(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + hardhat-tracer: + specifier: ^3.1.0 + version: 3.1.0(bufferutil@4.0.8)(chai@4.5.0)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) keccak: specifier: ^3.0.1 version: 3.0.4 mocha: specifier: ^10.0.0 - version: 10.2.0 + version: 10.7.3 prettier-plugin-solidity: specifier: ^1.1.3 - version: 1.1.3(prettier@3.0.3) + version: 1.4.1(prettier@2.8.8) solhint: specifier: ^3.6.2 - version: 3.6.2(typescript@5.2.2) + version: 3.6.2(typescript@5.6.2) solidity-coverage: specifier: ^0.8.5 - version: 0.8.5(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 0.8.13(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) solidity-docgen: specifier: ^0.6.0-beta.36 - version: 0.6.0-beta.36(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) + version: 0.6.0-beta.36(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) typechain: specifier: ^8.0.0 - version: 8.3.2(typescript@5.2.2) + version: 8.3.2(typescript@5.6.2) web3: specifier: ^1.8.2 - version: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@aragon/osx-commons-configs@0.6.0': + resolution: {integrity: sha512-wypaD0epzD+IY0GmgvYlYgJzJuvxkFW+L0nH6e1tzA1jsvgnxfln0Tk4q86xBp6sfuoybh5atKziQyXbRGLHKA==} + engines: {node: '>=16'} + + '@aragon/osx-ethers@1.2.1': + resolution: {integrity: sha512-3Fscq8C9elIktiI6OT7fR5iaAvim+ghU6IUvZF3P/phvWm9roNp/GXAROhA/Vx41NQxeqmfXokgFo6KOWt4drA==} + + '@aragon/osx-ethers@1.3.0': + resolution: {integrity: sha512-zfLAYdgZ3SSifHiyJLkBKmoDw/IEX/yzvw6liUAa/gz7HZOsrwp3JsBJaIwB2epOnGa6vhXyWTKKZ15aJvoMaA==} + + '@aragon/osx-ethers@1.3.1': + resolution: {integrity: sha512-6APDAasHrIVmJ0SxUSmWCxusVe46OF3eGZGp8MVD3j4BDJjJ+FIrrjN9ePkTpPja3X8GL6PD00l1WIzW2GZQMQ==} + '@aragon/osx@1.3.0': resolution: {integrity: sha512-ziLmnhWEoFS/uthxAYfI9tSylesMLTDe69XggKP9LK/tIOKAhyYjfAJ2mbhWZcH558c9o0gzAEErkDhqh/wdog==} - '@babel/code-frame@7.22.13': - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + '@aragon/sdk-client-common@1.17.0': + resolution: {integrity: sha512-YZkIyI3LSyQ/Z9iV1O8gdMGHUuM36Vt6Gsc7cSurnhCE+csV1Boir4pseV+0HJStO12/e6a4EW9x1i625TY+iA==} + engines: {node: '>=16'} + + '@aragon/sdk-client@1.26.0': + resolution: {integrity: sha512-yGxPKC2xmT3WeGAf3ryoEm1Mq457Mk/FxfjjTN8bkNgJjIND1H3zaqLexmCnW1ldbo05SvOyNUztnOvUdhYv7A==} + engines: {node: '>=16'} + + '@aragon/sdk-ipfs@1.1.0': + resolution: {integrity: sha512-2uAh/QPcmaita4AfHYV93lESzAhrmGEZ6CL7pvOH86HTkU6j7LnePvD1ly+x0hxRznTb+zgVgSPPKUn0ArPycw==} + engines: {node: '>=16'} + + '@babel/code-frame@7.24.7': + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.23.2': - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.23.2': - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.22.15': - resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==} + '@babel/eslint-parser@7.25.1': + resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/eslint-plugin@7.22.10': - resolution: {integrity: sha512-SRZcvo3fnO5h79B9DZSV6LG2vHH7OWsSNp1huFLHsXKyytRG413byQk9zxW1VcPOhnzfx2VIUz+8aGbiE7fOkA==} + '@babel/eslint-plugin@7.25.1': + resolution: {integrity: sha512-jF04YOsrCbEeQk4s+FwsuRddwBiAHooMDG9/nrV83HiYQwEuQppbXTeXyydxCoH5oEWmVBI51wHuZrcIXMkPfw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/eslint-parser': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.23.0': - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + '@babel/generator@7.25.6': + resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.22.15': - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + '@babel/helper-compilation-targets@7.25.2': + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.22.20': - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + '@babel/helper-module-imports@7.24.7': + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.22.5': - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.22.15': - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.23.0': - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + '@babel/helper-module-transforms@7.25.2': + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.22.5': - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.22.6': - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + '@babel/helper-simple-access@7.24.7': + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.22.5': - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.22.15': - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.23.2': - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + '@babel/helpers@7.25.6': + resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.22.20': - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + '@babel/highlight@7.24.7': + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.23.0': - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.23.2': - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.22.15': - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.23.2': - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + '@babel/traverse@7.25.6': + resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.23.0': - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} - '@chainsafe/as-sha256@0.3.1': - resolution: {integrity: sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==} + '@changesets/apply-release-plan@7.0.5': + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} - '@chainsafe/persistent-merkle-tree@0.4.2': - resolution: {integrity: sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==} + '@changesets/assemble-release-plan@6.0.4': + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} - '@chainsafe/persistent-merkle-tree@0.5.0': - resolution: {integrity: sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==} - - '@chainsafe/ssz@0.10.2': - resolution: {integrity: sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==} - - '@chainsafe/ssz@0.9.4': - resolution: {integrity: sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==} - - '@changesets/apply-release-plan@6.1.4': - resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} - - '@changesets/assemble-release-plan@5.2.4': - resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} - - '@changesets/changelog-git@0.1.14': - resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} '@changesets/changelog-github@0.4.8': resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==} - '@changesets/cli@2.26.2': - resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + '@changesets/cli@2.27.8': + resolution: {integrity: sha512-gZNyh+LdSsI82wBSHLQ3QN5J30P4uHKJ4fXgoGwQxfXwYFTJzDdvIJasZn8rYQtmKhyQuiBj4SSnLuKlxKWq4w==} hasBin: true - '@changesets/config@2.3.1': - resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + '@changesets/config@3.0.3': + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} - '@changesets/errors@0.1.4': - resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@1.3.6': - resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} '@changesets/get-github-info@0.5.2': resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} - '@changesets/get-release-plan@3.0.17': - resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + '@changesets/get-release-plan@4.0.4': + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - '@changesets/get-version-range-type@0.3.2': - resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + '@changesets/git@3.0.1': + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} - '@changesets/git@2.0.0': - resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/logger@0.0.5': - resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - '@changesets/parse@0.3.16': - resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - '@changesets/pre@1.0.14': - resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + '@changesets/read@0.6.1': + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} - '@changesets/read@0.5.9': - resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} @@ -354,8 +362,11 @@ packages: '@changesets/types@5.2.1': resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} - '@changesets/write@0.2.3': - resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -394,17 +405,33 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.9.1': - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.2': - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.52.0': - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.11.1': + resolution: {integrity: sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ethereumjs/common@2.5.0': resolution: {integrity: sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==} @@ -517,38 +544,35 @@ packages: '@ethersproject/wordlists@5.7.0': resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} - '@fastify/busboy@2.0.0': - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} - '@jridgewell/resolve-uri@3.1.1': - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.20': - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -569,16 +593,20 @@ packages: '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@noble/curves@1.1.0': - resolution: {integrity: sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==} + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} '@noble/hashes@1.2.0': resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} - '@noble/hashes@1.3.1': - resolution: {integrity: sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==} + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} @@ -594,48 +622,63 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nomicfoundation/ethereumjs-block@5.0.2': - resolution: {integrity: sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q==} - engines: {node: '>=14'} + '@nomicfoundation/edr-darwin-arm64@0.5.2': + resolution: {integrity: sha512-Gm4wOPKhbDjGTIRyFA2QUAPfCXA1AHxYOKt3yLSGJkQkdy9a5WW+qtqKeEKHc/+4wpJSLtsGQfpzyIzggFfo/A==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-blockchain@7.0.2': - resolution: {integrity: sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w==} - engines: {node: '>=14'} + '@nomicfoundation/edr-darwin-x64@0.5.2': + resolution: {integrity: sha512-ClyABq2dFCsrYEED3/UIO0c7p4H1/4vvlswFlqUyBpOkJccr75qIYvahOSJRM62WgUFRhbSS0OJXFRwc/PwmVg==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-common@4.0.2': - resolution: {integrity: sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg==} + '@nomicfoundation/edr-linux-arm64-gnu@0.5.2': + resolution: {integrity: sha512-HWMTVk1iOabfvU2RvrKLDgtFjJZTC42CpHiw2h6rfpsgRqMahvIlx2jdjWYzFNy1jZKPTN1AStQ/91MRrg5KnA==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-ethash@3.0.2': - resolution: {integrity: sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg==} - engines: {node: '>=14'} + '@nomicfoundation/edr-linux-arm64-musl@0.5.2': + resolution: {integrity: sha512-CwsQ10xFx/QAD5y3/g5alm9+jFVuhc7uYMhrZAu9UVF+KtVjeCvafj0PaVsZ8qyijjqVuVsJ8hD1x5ob7SMcGg==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-evm@2.0.2': - resolution: {integrity: sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ==} - engines: {node: '>=14'} + '@nomicfoundation/edr-linux-x64-gnu@0.5.2': + resolution: {integrity: sha512-CWVCEdhWJ3fmUpzWHCRnC0/VLBDbqtqTGTR6yyY1Ep3S3BOrHEAvt7h5gx85r2vLcztisu2vlDq51auie4IU1A==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-rlp@5.0.2': - resolution: {integrity: sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA==} - engines: {node: '>=14'} - hasBin: true + '@nomicfoundation/edr-linux-x64-musl@0.5.2': + resolution: {integrity: sha512-+aJDfwhkddy2pP5u1ISg3IZVAm0dO836tRlDTFWtvvSMQ5hRGqPcWwlsbobhDQsIxhPJyT7phL0orCg5W3WMeA==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-statemanager@2.0.2': - resolution: {integrity: sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA==} + '@nomicfoundation/edr-win32-x64-msvc@0.5.2': + resolution: {integrity: sha512-CcvvuA3sAv7liFNPsIR/68YlH6rrybKzYttLlMr80d4GKJjwJ5OKb3YgE6FdZZnOfP19HEHhsLcE0DPLtY3r0w==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-trie@6.0.2': - resolution: {integrity: sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ==} - engines: {node: '>=14'} + '@nomicfoundation/edr@0.5.2': + resolution: {integrity: sha512-hW/iLvUQZNTVjFyX/I40rtKvvDOqUEyIi96T28YaLfmPL+3LW2lxmYLUXEJ6MI14HzqxDqrLyhf6IbjAa2r3Dw==} + engines: {node: '>= 18'} - '@nomicfoundation/ethereumjs-tx@5.0.2': - resolution: {integrity: sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g==} - engines: {node: '>=14'} + '@nomicfoundation/ethereumjs-common@4.0.4': + resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} - '@nomicfoundation/ethereumjs-util@9.0.2': - resolution: {integrity: sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ==} - engines: {node: '>=14'} + '@nomicfoundation/ethereumjs-rlp@5.0.4': + resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} + engines: {node: '>=18'} + hasBin: true - '@nomicfoundation/ethereumjs-vm@7.0.2': - resolution: {integrity: sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA==} - engines: {node: '>=14'} + '@nomicfoundation/ethereumjs-tx@5.0.4': + resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true + + '@nomicfoundation/ethereumjs-util@9.0.4': + resolution: {integrity: sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true '@nomicfoundation/hardhat-chai-matchers@1.0.6': resolution: {integrity: sha512-f5ZMNmabZeZegEfuxn/0kW+mm7+yV7VNDxLpMOMGXWFJ2l/Ct3QShujzDRF9cOkK9Ui/hbDeOWGZqyQALDXVCQ==} @@ -645,8 +688,8 @@ packages: ethers: ^5.0.0 hardhat: ^2.9.4 - '@nomicfoundation/hardhat-network-helpers@1.0.9': - resolution: {integrity: sha512-OXWCv0cHpwLUO2u7bFxBna6dQtCC2Gg/aN/KtJLO7gmuuA28vgmVKYFRCDUqrbjujzgfwQ2aKyZ9Y3vSmDqS7Q==} + '@nomicfoundation/hardhat-network-helpers@1.0.12': + resolution: {integrity: sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==} peerDependencies: hardhat: ^2.9.5 @@ -673,68 +716,36 @@ packages: typechain: ^8.1.0 typescript: '>=4.5.0' - '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1': - resolution: {integrity: sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} + engines: {node: '>= 12'} - '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1': - resolution: {integrity: sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + resolution: {integrity: sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + resolution: {integrity: sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + resolution: {integrity: sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + resolution: {integrity: sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + resolution: {integrity: sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==} + engines: {node: '>= 12'} + + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + resolution: {integrity: sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==} + engines: {node: '>= 12'} - '@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1': - resolution: {integrity: sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1': - resolution: {integrity: sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1': - resolution: {integrity: sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1': - resolution: {integrity: sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1': - resolution: {integrity: sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1': - resolution: {integrity: sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1': - resolution: {integrity: sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1': - resolution: {integrity: sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@nomicfoundation/solidity-analyzer@0.1.1': - resolution: {integrity: sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==} + '@nomicfoundation/solidity-analyzer@0.1.2': + resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} engines: {node: '>= 12'} '@nomiclabs/buidler-web3@1.3.4': @@ -757,8 +768,9 @@ packages: ethers: ^5.0.0 hardhat: ^2.0.0 - '@nomiclabs/hardhat-etherscan@3.1.7': - resolution: {integrity: sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==} + '@nomiclabs/hardhat-etherscan@3.1.8': + resolution: {integrity: sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==} + deprecated: The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead peerDependencies: hardhat: ^2.0.4 @@ -784,12 +796,12 @@ packages: web3-eth-abi: ^1.2.1 web3-utils: ^1.2.1 - '@openzeppelin/contract-loader@0.6.3': - resolution: {integrity: sha512-cOFIjBjwbGgZhDZsitNgJl0Ye1rd5yu/Yx5LMgeq3u0ZYzldm4uObzHDFq4gjDdoypvyORjjJa3BlFA7eAnVIg==} - '@openzeppelin/contracts-upgradeable@4.8.1': resolution: {integrity: sha512-1wTv+20lNiC0R07jyIAbHU7TNHKRwGiTGRfiNnA8jOWjKT98g5OgLpYWOi40Vgpk8SPLA9EvfJAbAeIyVn+7Bw==} + '@openzeppelin/contracts-upgradeable@4.9.6': + resolution: {integrity: sha512-m4iHazOsOCv1DgM7eD7GupTJ+NFVujRZt1wzddDPSVGpWdKq1SKkla5htKG7+IS4d2XOCtzkUNwRZ7Vq5aEUMA==} + '@openzeppelin/contracts-upgradeable@5.0.2': resolution: {integrity: sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==} peerDependencies: @@ -798,30 +810,41 @@ packages: '@openzeppelin/contracts@4.8.1': resolution: {integrity: sha512-xQ6eUZl+RDyb/FiZe1h+U7qr/f4p/SrTSQcTPH2bjur3C5DbuW/zFgCU/b1P/xcIaEqJep+9ju4xDRi3rmChdQ==} + '@openzeppelin/contracts@4.9.6': + resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} + '@openzeppelin/contracts@5.0.2': resolution: {integrity: sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==} - '@openzeppelin/test-helpers@0.5.16': - resolution: {integrity: sha512-T1EvspSfH1qQO/sgGlskLfYVBbqzJR23SZzYl/6B2JnT4EhThcI85UpvDk0BkLWKaDScQTabGHt4GzHW+3SfZg==} + '@peeramid-labs/eds@2.0.0': + resolution: {integrity: sha512-RyB/yMuQSH4FmF4J/4LC1rFCt7/oI5GixtUAxy5nnUlDEDjDtrfb6Z24g7rEUB+8UnZ+Hev9SIrn8NMVnaA4wA==} - '@pkgr/utils@2.4.2': - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@scure/base@1.1.3': - resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@safe-global/safe-contracts@1.4.1-build.0': + resolution: {integrity: sha512-TIpoKJtMqLcLFoid0cvpxo8YTcnRUj95MHvxzwgPbJPRONOckNS6ebgGyBBRDmnpxFh34IBpPUZ7JD+z2Cfbbg==} + peerDependencies: + ethers: 5.4.0 + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} '@scure/bip32@1.1.5': resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} - '@scure/bip32@1.3.1': - resolution: {integrity: sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==} + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} '@scure/bip39@1.1.1': resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} - '@scure/bip39@1.2.1': - resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} '@sentry/core@5.30.0': resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} @@ -867,8 +890,11 @@ packages: '@solidity-parser/parser@0.14.5': resolution: {integrity: sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg==} - '@solidity-parser/parser@0.16.1': - resolution: {integrity: sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==} + '@solidity-parser/parser@0.16.2': + resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} + + '@solidity-parser/parser@0.18.0': + resolution: {integrity: sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==} '@solidity-parser/parser@0.5.2': resolution: {integrity: sha512-uRyvnvVYmgNmTBpWDbBsH/0kPESQhQpEc4KsvMRLVzFJ1o1s0uIv0Y6Y9IB5vI1Dwz2CbS4X/y4Wyw/75cTFnQ==} @@ -887,30 +913,32 @@ packages: '@truffle/abi-utils@1.0.3': resolution: {integrity: sha512-AWhs01HCShaVKjml7Z4AbVREr/u4oiWxCcoR7Cktm0mEvtT04pvnxW5xB/cI4znRkrbPdFQlFt67kgrAjesYkw==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/blockchain-utils@0.1.9': resolution: {integrity: sha512-RHfumgbIVo68Rv9ofDYfynjnYZIfP/f1vZy4RoqkfYAO+fqfc58PDRzB1WAGq2U6GPuOnipOJxQhnqNnffORZg==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/codec@0.17.3': resolution: {integrity: sha512-Ko/+dsnntNyrJa57jUD9u4qx9nQby+H4GsUO6yjiCPSX0TQnEHK08XWqBSg0WdmCH2+h0y1nr2CXSx8gbZapxg==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/compile-common@0.9.8': resolution: {integrity: sha512-DTpiyo32t/YhLI1spn84D3MHYHrnoVqO+Gp7ZHrYNwDs86mAxtNiH5lsVzSb8cPgiqlvNsRCU9nm9R0YmKMTBQ==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/contract-schema@3.4.16': resolution: {integrity: sha512-g0WNYR/J327DqtJPI70ubS19K1Fth/1wxt2jFqLsPmz5cGZVjCwuhiie+LfBde4/Mc9QR8G+L3wtmT5cyoBxAg==} engines: {node: ^16.20 || ^18.16 || >=20} - - '@truffle/contract@4.6.31': - resolution: {integrity: sha512-s+oHDpXASnZosiCdzu+X1Tx5mUJUs1L1CYXIcgRmzMghzqJkaUFmR6NpNo7nJYliYbO+O9/aW8oCKqQ7rCHfmQ==} - engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/debug-utils@6.0.57': resolution: {integrity: sha512-Q6oI7zLaeNLB69ixjwZk2UZEWBY6b2OD1sjLMGDKBGR7GaHYiw96GLR2PFgPH1uwEeLmV4N78LYaQCrDsHbNeA==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/error@0.1.1': resolution: {integrity: sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA==} @@ -919,16 +947,18 @@ packages: '@truffle/error@0.2.2': resolution: {integrity: sha512-TqbzJ0O8DHh34cu8gDujnYl4dUl6o2DE4PR6iokbybvnIm/L2xl6+Gv1VC+YJS45xfH83Yo3/Zyg/9Oq8/xZWg==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@truffle/interface-adapter@0.5.37': resolution: {integrity: sha512-lPH9MDgU+7sNDlJSClwyOwPCfuOimqsCx0HfGkznL3mcFRymc1pukAR1k17zn7ErHqBwJjiKAZ6Ri72KkS+IWw==} engines: {node: ^16.20 || ^18.16 || >=20} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. '@trufflesuite/chromafi@3.0.0': resolution: {integrity: sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==} - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -973,26 +1003,29 @@ packages: '@types/bn.js@4.11.6': resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} - '@types/bn.js@5.1.3': - resolution: {integrity: sha512-wT1B4iIO82ecXkdN6waCK8Ou7E71WU+mP1osDA5Q8c6Ur+ozU2vIKUIhSpUr6uE5L2YHocKS1Z2jG2fBC1YVeg==} + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - '@types/chai-as-promised@7.1.7': - resolution: {integrity: sha512-APucaP5rlmTRYKtRA6FE5QPP87x76ejw5t5guRJ4y5OgMnwtsvigw7HHhKZlx2MGXLeZd6R/GNZR/IqDHcbtQw==} + '@types/chai-as-promised@7.1.8': + resolution: {integrity: sha512-ThlRVIJhr69FLlh6IctTXFkmhtP3NpMZ2QGq69StYLyKZFp/HOp1VdKZj7RvfNWYYcJ1xlbLGLLWj1UvP5u/Gw==} - '@types/chai@4.3.9': - resolution: {integrity: sha512-69TtiDzu0bcmKQv3yg1Zx409/Kd7r0b5F1PfpYJfSHzLGtB53547V4u+9iqKYsTu/O2ai6KTb0TInNpvuQ3qmg==} + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} - '@types/cli-table@0.3.3': - resolution: {integrity: sha512-GJPxeQ/McVnizfipKsCuJg3tEXg6GZvoFjLlohJpWHjDcSIwSAjbCJNuHDVQyrHiRiINXspzrFc/Tt9ztvZCoA==} + '@types/cli-table@0.3.4': + resolution: {integrity: sha512-GsALrTL69mlwbAw/MHF1IPTadSLZQnsxe7a80G8l4inN/iEXCOcVeT/S7aRc6hbhqzL9qZ314kHPDQnQ3ev+HA==} '@types/concat-stream@1.6.1': resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} - '@types/crypto-js@4.1.3': - resolution: {integrity: sha512-YP1sYYayLe7Eg5oXyLLvOLfxBfZ5Fgpz6sVWkpB18wDMywCLPWmqzRz+9gyuOoLF0fzDTTFwlyNbx7koONUwqA==} + '@types/crypto-js@4.2.2': + resolution: {integrity: sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/form-data@0.0.33': resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} @@ -1000,14 +1033,11 @@ packages: '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/http-cache-semantics@4.0.3': - resolution: {integrity: sha512-V46MYLFp08Wf2mmaBhvgjStM3tPa+2GAdy/iqoX+noX1//zje2x4XmrIU0cAwyClATsTmahbtoQ2EwP7I5WSiA==} - - '@types/is-ci@3.0.4': - resolution: {integrity: sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - '@types/json-schema@7.0.14': - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -1021,14 +1051,11 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - '@types/mocha@9.1.1': resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} - '@types/node-fetch@2.6.7': - resolution: {integrity: sha512-lX17GZVpJ/fuCjguZ5b3TjEbSENxmEk1B2z02yoXSK9WMEWRivhdSY73wWMn6bpcCDAOh6qAdktpKHIlkDk2lg==} + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} '@types/node@10.17.60': resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} @@ -1042,32 +1069,26 @@ packages: '@types/node@8.10.66': resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/pbkdf2@3.1.1': - resolution: {integrity: sha512-4HCoGwR3221nOc7G0Z/6KgTNGgaaFGkbGrtUJsB+zlKX2LBVjFHHIUkieMBgHHXgBH5Gq6dZHJKdBYdtlhBQvw==} + '@types/pbkdf2@3.1.2': + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} '@types/prettier@2.7.3': resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - '@types/qs@6.9.9': - resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} - '@types/readable-stream@2.3.15': - resolution: {integrity: sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==} + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - '@types/responselike@1.0.2': - resolution: {integrity: sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==} + '@types/secp256k1@4.0.6': + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} - '@types/secp256k1@4.0.5': - resolution: {integrity: sha512-aIonTBMErtE3T9MxDvTZRzcrT/mCqpEZBw3CCY/i+oG9n57N/+7obBkhFgavUAIrX21bU0LHg1XRgtaLdelBhA==} + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/semver@7.5.4': - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} - - '@typescript-eslint/eslint-plugin@6.8.0': - resolution: {integrity: sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==} + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1077,8 +1098,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@6.8.0': - resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==} + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1087,16 +1108,30 @@ packages: typescript: optional: true + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@6.8.0': - resolution: {integrity: sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==} + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/type-utils@6.8.0': - resolution: {integrity: sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1109,10 +1144,14 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@6.8.0': - resolution: {integrity: sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==} + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1122,8 +1161,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@6.8.0': - resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1131,14 +1170,23 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@6.8.0': - resolution: {integrity: sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==} + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1147,12 +1195,38 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@6.8.0': - resolution: {integrity: sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==} + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@web-std/blob@3.0.5': + resolution: {integrity: sha512-Lm03qr0eT3PoLBuhkvFBLf0EFkAsNz/G/AYCzpOdi483aFaVX86b4iQs0OHhzHJfN5C15q17UtDbyABjlzM96A==} + + '@web-std/fetch@4.2.1': + resolution: {integrity: sha512-M6sgHDgKegcjuVsq8J6jb/4XvhPGui8uwp3EIoADGXUnBl9vKzKLk9H9iFzrPJ6fSV6zZzFWXPyziBJp9hxzBA==} + engines: {node: ^10.17 || >=12.3} + + '@web-std/file@3.0.3': + resolution: {integrity: sha512-X7YYyvEERBbaDfJeC9lBKC5Q5lIEWYCP1SNftJNwNH/VbFhdHm+3neKOQP+kWEYJmosbDFq+NEUG7+XIvet/Jw==} + + '@web-std/form-data@3.1.0': + resolution: {integrity: sha512-WkOrB8rnc2hEK2iVhDl9TFiPMptmxJA1HaIzSdc2/qk3XS4Ny4cCt6/V36U3XmoYKz0Md2YyK2uOZecoZWPAcA==} + + '@web-std/stream@1.0.0': + resolution: {integrity: sha512-jyIbdVl+0ZJyKGTV0Ohb9E6UnxP+t7ZzX4Do3AHjZKxUXKMs9EmqnBDQgHF7bEw0EzbQygOjtt/7gvtmi//iCQ==} + + '@web-std/stream@1.0.3': + resolution: {integrity: sha512-5MIngxWyq4rQiGoDAC2WhjLuDraW8+ff2LD2et4NRY933K3gL8CHlUXrh8ZZ3dC9A9Xaub8c9sl5exOJE58D9Q==} + + '@web3-storage/multipart-parser@1.0.0': + resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} + + '@zxing/text-encoding@0.9.0': + resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} abbrev@1.0.9: resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} @@ -1164,10 +1238,6 @@ packages: abortcontroller-polyfill@1.7.5: resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} - abstract-level@1.0.3: - resolution: {integrity: sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==} - engines: {node: '>=12'} - abstract-leveldown@2.6.3: resolution: {integrity: sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==} @@ -1187,19 +1257,15 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true - address@1.2.2: - resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} - engines: {node: '>= 10.0.0'} - adm-zip@0.4.16: resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} engines: {node: '>=0.3.0'} @@ -1218,25 +1284,20 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} amdefine@1.0.1: resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-colors@3.2.3: resolution: {integrity: sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==} engines: {node: '>=6'} - ansi-colors@3.2.4: - resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} - engines: {node: '>=6'} - - ansi-colors@4.1.1: - resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} - engines: {node: '>=6'} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -1269,8 +1330,8 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - antlr4@4.13.1: - resolution: {integrity: sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==} + antlr4@4.13.2: + resolution: {integrity: sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==} engines: {node: '>=16'} antlr4ts@0.5.0-alpha.4: @@ -1293,8 +1354,8 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} array-back@3.1.0: resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} @@ -1304,14 +1365,15 @@ packages: resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} engines: {node: '>=8'} - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} array-union@2.1.0: @@ -1322,12 +1384,12 @@ packages: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} - array.prototype.findlast@1.2.3: - resolution: {integrity: sha512-kcBubumjciBg4JKp5KTKtI7ec7tRefPk88yjkWJwaVKYd9QfTaxcsOxoMNKd7iBr447zCfDV0z1kOF47umv42g==} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.2: @@ -1338,20 +1400,17 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} - array.prototype.reduce@1.0.6: - resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} + array.prototype.reduce@1.0.7: + resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} engines: {node: '>= 0.4'} - array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} - - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -1369,8 +1428,8 @@ packages: ast-parents@0.0.1: resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} - ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} @@ -1388,9 +1447,6 @@ packages: async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1398,34 +1454,35 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - aws4@1.12.0: - resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axe-core@4.8.2: - resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==} + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} axios@0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} - axios@1.5.1: - resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} 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==} + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1444,16 +1501,8 @@ packages: resolution: {integrity: sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==} engines: {node: '>=0.6'} - big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - - big.js@6.2.1: - resolution: {integrity: sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==} - - bigint-crypto-utils@3.3.0: - resolution: {integrity: sha512-jOTSb+drvEDxEq6OuUybOAv/xxoh3cuYRUIPyu8sSHQNKM303UQ2R1DAo45o1AkcIXw6fzbaFI1+xGGdaXs2lg==} - engines: {node: '>=14.0.0'} + big.js@6.2.2: + resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} bignumber.js@7.2.1: resolution: {integrity: sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==} @@ -1461,8 +1510,8 @@ packages: bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} bl@1.2.3: @@ -1483,20 +1532,16 @@ packages: bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1504,27 +1549,21 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - breakword@1.0.6: - resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} - brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-level@1.0.1: - resolution: {integrity: sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==} - browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1568,10 +1607,6 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} - bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -1591,8 +1626,9 @@ packages: resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} engines: {node: '>=8'} - call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -1604,10 +1640,6 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - camelcase@3.0.0: resolution: {integrity: sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==} engines: {node: '>=0.10.0'} @@ -1624,23 +1656,15 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001551: - resolution: {integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==} + caniuse-lite@1.0.30001664: + resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - case@1.6.3: - resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} - engines: {node: '>= 0.8.0'} - caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - catering@2.1.1: - resolution: {integrity: sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==} - engines: {node: '>=6'} - caw@2.0.1: resolution: {integrity: sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==} engines: {node: '>=4'} @@ -1653,19 +1677,13 @@ packages: resolution: {integrity: sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg==} engines: {node: '>=12.19'} - chai-as-promised@7.1.1: - resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} - peerDependencies: - chai: '>= 2.1.2 < 5' - - chai-bn@0.2.2: - resolution: {integrity: sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg==} + chai-as-promised@7.1.2: + resolution: {integrity: sha512-aBDHZxRzYnUYuIAIPBH2s511DjlKPzXNlXSGFC8CwmroWQLfrW0LtE1nK3MAwwNhJPa9raEjNCmRoFpG0Hurdw==} peerDependencies: - bn.js: ^4.11.0 - chai: ^4.0.0 + chai: '>= 2.1.2 < 6' - chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} chalk@2.4.2: @@ -1697,18 +1715,22 @@ packages: cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} chokidar@3.3.0: resolution: {integrity: sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==} engines: {node: '>= 8.10.0'} - chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -1730,20 +1752,20 @@ packages: class-is@1.1.0: resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} - classic-level@1.3.0: - resolution: {integrity: sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==} - engines: {node: '>=12'} - clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + cli-table3@0.5.1: resolution: {integrity: sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==} engines: {node: '>=6'} - cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} cli-table@0.3.11: @@ -1756,26 +1778,15 @@ packages: cliui@5.0.0: resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - clone-response@1.0.2: resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - code-point-at@1.1.0: resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} @@ -1826,6 +1837,10 @@ packages: commander@3.0.2: resolution: {integrity: sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==} + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} @@ -1867,12 +1882,12 @@ packages: resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} - core-js-pure@3.33.1: - resolution: {integrity: sha512-wCXGbLjnsP10PlK/thHSQlOLlLKNEkaWbTzVvHHZ79fZNeN1gUmw2gBlpItxPv/pvqldevEXFh/d5stdNvl6EQ==} + core-js-pure@3.38.1: + resolution: {integrity: sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==} core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -1926,8 +1941,8 @@ packages: crypto-addr-codec@0.1.8: resolution: {integrity: sha512-GqAK90iLLgP3FvhNmHbpT3wR6dEdaM8hZyZtLX29SPardh3OA13RFLHDR6sntGCgRWOfiHqW6sIyohpNqOtV/g==} - crypto-js@4.1.1: - resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -1936,21 +1951,9 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - - csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - - csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - - csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} - - d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -1959,6 +1962,22 @@ packages: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} + data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} + engines: {node: '>= 6'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} @@ -1990,8 +2009,8 @@ packages: supports-color: optional: true - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1999,10 +2018,6 @@ packages: supports-color: optional: true - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -2043,10 +2058,14 @@ packages: resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} engines: {node: '>=4'} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -2058,17 +2077,6 @@ packages: resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==} engines: {node: '>=0.10.0'} - default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - - default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -2080,14 +2088,10 @@ packages: resolution: {integrity: sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww==} engines: {node: '>=6'} - define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2105,10 +2109,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2121,10 +2121,6 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true - diff@3.5.0: resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} engines: {node: '>=0.3.1'} @@ -2133,8 +2129,8 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.0.0: - resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} difflib@0.2.4: @@ -2152,10 +2148,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -2195,12 +2187,15 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.563: - resolution: {integrity: sha512-dg5gj5qOgfZNkPNeyKBZQAQitIQ/xwfIDmEQJHCbXaD9ebTZxwJXUsDYcBlAvZGZLi+/354l35J1wkmP6CqYaw==} + electron-to-chromium@1.5.29: + resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} + emoji-regex@7.0.3: resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} @@ -2217,10 +2212,17 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding-down@5.0.4: resolution: {integrity: sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw==} engines: {node: '>=6'} + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -2243,18 +2245,34 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: @@ -2264,8 +2282,8 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} engines: {node: '>=0.10'} es6-iterator@2.0.3: @@ -2274,11 +2292,12 @@ packages: es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: @@ -2303,8 +2322,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-prettier@9.0.0: - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2312,8 +2331,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2345,8 +2364,8 @@ packages: peerDependencies: eslint: '>=4.19.1' - eslint-plugin-import@2.28.1: - resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + eslint-plugin-import@2.30.0: + resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2361,11 +2380,11 @@ packages: peerDependencies: eslint: '>=0.8.0' - eslint-plugin-jest@27.4.3: - resolution: {integrity: sha512-7S6SmmsHsgIm06BAGCAxL+ABd9/IB3MWkz2pudj6Qqor2y1qQpWPfuFU4SG9pWj4xDjF0e+D7Llh5useuSzAZw==} + eslint-plugin-jest@27.9.0: + resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 || ^7.0.0 eslint: ^7.0.0 || ^8.0.0 jest: '*' peerDependenciesMeta: @@ -2374,11 +2393,11 @@ packages: jest: optional: true - eslint-plugin-jsx-a11y@6.7.1: - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + eslint-plugin-jsx-a11y@6.10.0: + resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 eslint-plugin-node@11.1.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} @@ -2386,8 +2405,8 @@ packages: peerDependencies: eslint: '>=5.16.0' - eslint-plugin-prettier@5.0.1: - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + eslint-plugin-prettier@5.2.1: + resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2400,26 +2419,26 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-promise@6.1.1: - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + eslint-plugin-promise@6.6.0: + resolution: {integrity: sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-react-hooks@4.6.0: - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + eslint-plugin-react-hooks@4.6.2: + resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.33.2: - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + eslint-plugin-react@7.37.0: + resolution: {integrity: sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-sort-class-members@1.19.0: - resolution: {integrity: sha512-YayvASA1bavdPeRU9FMPnale2+Oi3aMcHGVC5EUm9b671oxm7ahvR+q8BfsU2aV+KAFezNfu47VPgdZK6gwYPw==} + eslint-plugin-sort-class-members@1.20.0: + resolution: {integrity: sha512-xNaik4GQ/pRwd1soIVI28HEXZbrWoLR5krau2+E8YcHj7N09UviPg5mYhf/rELG29bIFJdXDOFJazN90+luMOw==} engines: {node: '>=4.0.0'} peerDependencies: eslint: '>=0.8.0' @@ -2432,9 +2451,9 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} @@ -2452,14 +2471,27 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.52.0: - resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.11.1: + resolution: {integrity: sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@2.7.3: resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} @@ -2471,8 +2503,8 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} esrecurse@4.3.0: @@ -2527,8 +2559,8 @@ packages: resolution: {integrity: sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw==} deprecated: 'New package name format for new versions: @ethereumjs/ethash. Please update.' - ethereum-bloom-filters@1.0.10: - resolution: {integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==} + ethereum-bloom-filters@1.2.0: + resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==} ethereum-cryptography@0.1.3: resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} @@ -2536,8 +2568,8 @@ packages: ethereum-cryptography@1.2.0: resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} - ethereum-cryptography@2.1.2: - resolution: {integrity: sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==} + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} ethereum-ens@0.8.0: resolution: {integrity: sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg==} @@ -2581,10 +2613,6 @@ packages: ethers@5.7.2: resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} - ethjs-abi@0.2.1: - resolution: {integrity: sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA==} - engines: {node: '>=6.5.0', npm: '>=3'} - ethjs-unit@0.1.6: resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -2593,6 +2621,9 @@ packages: resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} engines: {node: '>=6.5.0', npm: '>=3'} + event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -2603,16 +2634,8 @@ packages: evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - - express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + express@4.21.0: + resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} engines: {node: '>= 0.10.0'} ext-list@2.2.2: @@ -2636,6 +2659,10 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + extract-files@9.0.0: + resolution: {integrity: sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==} + engines: {node: ^10.17.0 || ^12.0.0 || >= 13.7.0} + extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} @@ -2653,8 +2680,8 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -2663,15 +2690,18 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fast-uri@3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-type@3.9.0: resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} @@ -2701,12 +2731,12 @@ packages: resolution: {integrity: sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==} engines: {node: '>=4'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-replace@3.0.0: @@ -2733,12 +2763,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flat@4.1.1: resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} @@ -2748,8 +2775,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} flow-stoplight@1.0.0: resolution: {integrity: sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA==} @@ -2757,8 +2784,8 @@ packages: fmix@0.1.0: resolution: {integrity: sha512-Y6hyofImk9JdzU8k5INtTXX1cu8LDlePWDFU5sftm9H+zKCr5SGrVjdhkvsim646cw5zD0nADj8oHyXMZmCZ9w==} - follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2783,6 +2810,10 @@ packages: resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} engines: {node: '>= 0.12'} + form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -2839,7 +2870,6 @@ packages: resolution: {integrity: sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - deprecated: '"Please update to latest v2.3 or v2.2"' fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -2873,8 +2903,9 @@ packages: get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} get-port@3.2.0: resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} @@ -2900,8 +2931,8 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} getpass@0.1.7: @@ -2921,22 +2952,28 @@ packages: glob@5.0.15: resolution: {integrity: sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.1.3: resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported global-dirs@0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} @@ -2957,12 +2994,16 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} globby@10.0.2: @@ -2991,12 +3032,18 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphql-request@4.3.0: + resolution: {integrity: sha512-2v6hQViJvSsifK606AliqiNiijb1uwWp6Re7o0RTyH+uRTv/u7Uqm2g4Fjq/LgZIzARB38RZEvVBFOQOVdlBow==} + peerDependencies: + graphql: 14 - 16 + + graphql@16.9.0: + resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + growl@1.10.5: resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} engines: {node: '>=4.x'} @@ -3015,10 +3062,6 @@ packages: engines: {node: '>=6'} deprecated: this library is no longer supported - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - hardhat-abi-exporter@2.10.1: resolution: {integrity: sha512-X8GRxUTtebMAd2k4fcPyVnCdPa6dYK4lBsrwzKP5yiSq4i+WadWPIumaLfce53TUf/o2TnLpLOduyO1ylE2NHQ==} engines: {node: '>=14.14.0'} @@ -3039,13 +3082,19 @@ packages: peerDependencies: hardhat: ^2.0.0 - hardhat-gas-reporter@1.0.9: - resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} + hardhat-gas-reporter@1.0.10: + resolution: {integrity: sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==} peerDependencies: hardhat: ^2.0.2 - hardhat@2.18.2: - resolution: {integrity: sha512-lUVmJg7DsKcUCDpqv57CJl6vHqo/1PeHSfM3+WIa8UtRKmXyVTj1qQK01TDiuetkZBVg9Dn52qU+ZwaJQynaKA==} + hardhat-tracer@3.1.0: + resolution: {integrity: sha512-Ip16HQAuzbqbNJUIEVfqmbPmOY90bxZSpwu5Q73cwloy+LUYA04BATUM9Gui5H7zcgsgZ1IVy7pSYn6ZMjLmag==} + peerDependencies: + chai: 4.x + hardhat: '>=2.22.5 <3.x' + + hardhat@2.22.11: + resolution: {integrity: sha512-g9xr6BGXbzj2sqG9AjHwqeUOS9v2NwLbuq7rsdjMB2RLWmYp8IFdZnzq8UewwLJisuWgiygB+dwLktjqAbRuOw==} hasBin: true peerDependencies: ts-node: '*' @@ -3071,11 +3120,11 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} has-symbol-support-x@1.4.2: @@ -3088,14 +3137,10 @@ packages: has-to-string-tag-x@1.4.1: resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} - hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -3109,8 +3154,8 @@ packages: hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} he@1.2.0: @@ -3138,8 +3183,8 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} http-basic@8.1.3: resolution: {integrity: sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==} @@ -3169,8 +3214,8 @@ packages: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} - http2-wrapper@2.2.0: - resolution: {integrity: sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==} + http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} https-proxy-agent@5.0.1: @@ -3180,18 +3225,14 @@ packages: human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + idna-uts46-hx@2.3.1: resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} engines: {node: '>=4.0.0'} @@ -3199,8 +3240,8 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} immediate@3.2.3: @@ -3209,8 +3250,8 @@ packages: immediate@3.3.0: resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} - immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -3230,6 +3271,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3237,8 +3279,8 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} interpret@1.4.0: @@ -3264,8 +3306,9 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -3293,27 +3336,18 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3348,11 +3382,6 @@ packages: resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} engines: {node: '>=6.5.0', npm: '>=3'} - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - is-installed-globally@0.2.0: resolution: {integrity: sha512-g3TzWCnR/eO4Q3abCwgFjOFw7uVOfxG4m8hMr/39Jcf2YvE5mHrFKqpyuraWV4zwx9XhjnVO4nY0ZI4llzl0Pg==} engines: {node: '>=8'} @@ -3360,14 +3389,15 @@ packages: is-lower-case@1.1.3: resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} is-natural-number@4.0.1: resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} is-number-object@1.0.7: @@ -3405,24 +3435,18 @@ packages: resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} engines: {node: '>=0.10.0'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -3435,8 +3459,8 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} is-typedarray@1.0.0: @@ -3452,23 +3476,21 @@ packages: is-utf8@0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} @@ -3481,6 +3503,9 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} + isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} @@ -3491,12 +3516,6 @@ packages: iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - js-sdsl@4.4.2: - resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} - - js-sha3@0.5.5: - resolution: {integrity: sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA==} - js-sha3@0.5.7: resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} @@ -3547,6 +3566,10 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stream-stringify@3.1.4: + resolution: {integrity: sha512-oGoz05ft577LolnXFQHD2CjnXDxXVA5b8lHwfEZgRXQUZeCMo6sObQQRq+NXuHQ3oTeMZHHmmPY2rjVwyqR62A==} + engines: {node: '>=7.10.1'} + json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} @@ -3596,15 +3619,12 @@ packages: klaw@1.3.1: resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - language-subtag-registry@0.3.22: - resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} lcid@1.0.0: resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} @@ -3639,14 +3659,6 @@ packages: resolution: {integrity: sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q==} engines: {node: '>=6'} - level-supports@4.0.1: - resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} - engines: {node: '>=12'} - - level-transcoder@1.0.1: - resolution: {integrity: sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==} - engines: {node: '>=12'} - level-ws@0.0.0: resolution: {integrity: sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==} @@ -3654,10 +3666,6 @@ packages: resolution: {integrity: sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q==} engines: {node: '>=6'} - level@8.0.0: - resolution: {integrity: sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==} - engines: {node: '>=12'} - levelup@1.3.9: resolution: {integrity: sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==} @@ -3680,10 +3688,6 @@ packages: resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} engines: {node: '>=0.10.0'} - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -3706,9 +3710,6 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -3767,10 +3768,6 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lru_map@0.3.3: resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} @@ -3784,24 +3781,12 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - markdown-table@1.1.3: resolution: {integrity: sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==} match-all@1.2.6: resolution: {integrity: sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ==} - mcl-wasm@0.7.9: - resolution: {integrity: sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==} - engines: {node: '>=8.9.0'} - md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} @@ -3816,23 +3801,12 @@ packages: resolution: {integrity: sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA==} engines: {node: '>=6'} - memory-level@1.0.0: - resolution: {integrity: sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==} - engines: {node: '>=12'} - memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} - meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} - - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -3851,8 +3825,8 @@ packages: micro-ftch@0.3.1: resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} miller-rabin@4.0.1: @@ -3863,6 +3837,10 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -3872,14 +3850,6 @@ packages: engines: {node: '>=4'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -3891,10 +3861,6 @@ packages: min-document@2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -3907,17 +3873,17 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3928,10 +3894,6 @@ packages: minizlib@1.3.3: resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - mixme@0.5.10: - resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==} - engines: {node: '>= 8.0.0'} - mkdirp-promise@5.0.1: resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} engines: {node: '>=4'} @@ -3958,8 +3920,8 @@ packages: mnemonist@0.38.5: resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} - mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + mocha@10.7.3: + resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} engines: {node: '>= 14.0.0'} hasBin: true @@ -3971,8 +3933,12 @@ packages: mock-fs@4.14.0: resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} - module-error@1.0.2: - resolution: {integrity: sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} ms@2.0.0: @@ -3981,9 +3947,6 @@ packages: ms@2.1.1: resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -4015,14 +3978,6 @@ packages: nano-json-stream-parser@0.1.2: resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} - nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - napi-macros@2.2.2: - resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4060,12 +4015,12 @@ packages: encoding: optional: true - node-gyp-build@4.6.1: - resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true - node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} nofilter@1.0.4: resolution: {integrity: sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==} @@ -4098,14 +4053,6 @@ packages: resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} engines: {node: '>=4'} - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -4124,8 +4071,13 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} object-keys@0.4.0: resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==} @@ -4138,30 +4090,28 @@ packages: resolution: {integrity: sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==} engines: {node: '>= 0.4'} - object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.getownpropertydescriptors@2.1.7: - resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} + object.getownpropertydescriptors@2.1.8: + resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} engines: {node: '>= 0.8'} - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} obliterator@2.0.4: @@ -4177,24 +4127,12 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} ordinal@1.0.3: @@ -4287,6 +4225,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -4317,6 +4258,9 @@ packages: parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -4359,10 +4303,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4370,8 +4310,8 @@ packages: resolution: {integrity: sha512-wZ3AeiRBRlNwkdUxvBANh0+esnt38DLffHDujZyRHkqkaKHTglnY2EP5UX3b8rdeiSutgO4y9NEJwXezNP5vHg==} engines: {node: '>=8'} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-type@1.1.0: resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} @@ -4394,8 +4334,8 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -4421,10 +4361,6 @@ packages: resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - pkg-dir@5.0.0: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} @@ -4433,9 +4369,9 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - preferred-pm@3.1.2: - resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} - engines: {node: '>=10'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -4453,22 +4389,17 @@ packages: resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} engines: {node: '>=6.0.0'} - prettier-plugin-solidity@1.1.3: - resolution: {integrity: sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg==} - engines: {node: '>=12'} + prettier-plugin-solidity@1.4.1: + resolution: {integrity: sha512-Mq8EtfacVZ/0+uDKTtHZGW3Aa7vEbX/BNx63hmVg6YTiTXSiuKP0amj0G6pGwjmLaOfymWh3QgXEZkjQbU8QRg==} + engines: {node: '>=16'} peerDependencies: - prettier: '>=2.3.0 || >=3.0.0-alpha.0' + prettier: '>=2.3.0' prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} - hasBin: true - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -4482,6 +4413,9 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + property-expr@2.0.6: + resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -4501,26 +4435,22 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@2.1.0: resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} engines: {node: '>=6'} - punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} pure-rand@5.0.5: resolution: {integrity: sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw==} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} qs@6.5.3: @@ -4534,10 +4464,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -4549,10 +4475,6 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} - raw-body@2.5.2: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} @@ -4564,18 +4486,10 @@ packages: resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} engines: {node: '>=0.10.0'} - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - read-pkg@1.1.0: resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} engines: {node: '>=0.10.0'} - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -4601,6 +4515,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.1: + resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} + engines: {node: '>= 14.16.0'} + rechoir@0.6.2: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} @@ -4609,23 +4527,19 @@ packages: resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} engines: {node: '>=6.0.0'} - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - reduce-flatten@2.0.0: resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} engines: {node: '>=6'} - reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} - regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} regexpp@3.2.0: @@ -4704,10 +4618,7 @@ packages: rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true ripemd160-min@0.0.6: @@ -4721,21 +4632,14 @@ packages: resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} hasBin: true - run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - - run-parallel-limit@1.1.0: - resolution: {integrity: sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rustbn.js@0.2.0: resolution: {integrity: sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==} - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} safe-buffer@5.1.2: @@ -4744,8 +4648,9 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -4784,13 +4689,13 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} sentence-case@2.1.1: @@ -4799,11 +4704,11 @@ packages: sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} servify@0.1.12: @@ -4813,12 +4718,12 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} setimmediate@1.0.4: @@ -4861,8 +4766,9 @@ packages: engines: {node: '>=4'} hasBin: true - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -4881,11 +4787,6 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} - smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} - hasBin: true - snake-case@2.1.0: resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} @@ -4901,23 +4802,20 @@ packages: engines: {node: '>=8.0.0'} hasBin: true - solc@0.7.3: - resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} - engines: {node: '>=8.0.0'} + solc@0.8.26: + resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} + engines: {node: '>=10.0.0'} hasBin: true solhint@3.6.2: resolution: {integrity: sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ==} hasBin: true - solidity-ast@0.4.52: - resolution: {integrity: sha512-iOya9BSiB9jhM8Vf40n8lGELGzwrUc57rl5BhfNtJ5cvAaMvRcNlHeAMNvqJJyjoUnczqRbHqdivEqK89du3Cw==} - - solidity-comments-extractor@0.0.7: - resolution: {integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==} + solidity-ast@0.4.59: + resolution: {integrity: sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==} - solidity-coverage@0.8.5: - resolution: {integrity: sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==} + solidity-coverage@0.8.13: + resolution: {integrity: sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==} hasBin: true peerDependencies: hardhat: ^2.11.0 @@ -4956,14 +4854,14 @@ packages: spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -4981,8 +4879,9 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} strict-uri-encode@1.1.0: resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} @@ -5007,18 +4906,26 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} @@ -5056,14 +4963,6 @@ packages: strip-dirs@2.1.0: resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-hex-prefix@1.0.0: resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -5072,10 +4971,6 @@ packages: resolution: {integrity: sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==} engines: {node: '>=4'} - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -5125,16 +5020,16 @@ packages: sync-rpc@1.3.6: resolution: {integrity: sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==} - synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + synckit@0.9.1: + resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} engines: {node: ^14.18.0 || >=16.0.0} table-layout@1.0.2: resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} engines: {node: '>=8.0.0'} - table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} tar-stream@1.6.2: @@ -5167,13 +5062,12 @@ packages: resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} engines: {node: '>=0.10.0'} + tiny-case@1.0.3: + resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} + title-case@2.1.1: resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} - titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -5193,6 +5087,9 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + toposort@2.0.2: + resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} + tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} @@ -5200,17 +5097,13 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} - ts-api-utils@1.0.3: - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -5226,8 +5119,8 @@ packages: peerDependencies: typescript: '>=3.7.0' - ts-node@10.9.1: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -5240,14 +5133,14 @@ packages: '@swc/wasm': optional: true - tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} tsort@0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} @@ -5258,11 +5151,6 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tty-table@4.2.3: - resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} - engines: {node: '>=8.0.0'} - hasBin: true - tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -5283,14 +5171,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} - type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -5299,27 +5183,20 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - type-fest@0.7.1: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - - type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} typechain@8.3.2: resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} @@ -5327,20 +5204,21 @@ packages: peerDependencies: typescript: '>=4.3.0' - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -5348,8 +5226,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true @@ -5361,8 +5239,8 @@ packages: resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} engines: {node: '>=8'} - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true @@ -5375,31 +5253,34 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - underscore@1.13.6: - resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} - undici@5.26.4: - resolution: {integrity: sha512-OG+QOf0fTLtazL9P9X7yqWxQ+Z0395Wk6DSkyTxtaq3wQEjIroVe7Y4asCX/vcCxYpNGMnwz8F0qbRYUoaQVMw==} + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} + undici@6.19.8: + resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} + engines: {node: '>=18.17'} + + unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5484,196 +5365,209 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-encoding@1.1.5: + resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} web3-bzz@1.10.0: resolution: {integrity: sha512-o9IR59io3pDUsXTsps5pO5hW1D5zBmg46iNc2t4j2DkaYHNdDLwk2IP9ukoM2wg47QILfPEJYzhTfkS/CcX0KA==} engines: {node: '>=8.0.0'} - web3-bzz@1.10.3: - resolution: {integrity: sha512-XDIRsTwekdBXtFytMpHBuun4cK4x0ZMIDXSoo1UVYp+oMyZj07c7gf7tNQY5qZ/sN+CJIas4ilhN25VJcjSijQ==} + web3-bzz@1.10.4: + resolution: {integrity: sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==} engines: {node: '>=8.0.0'} web3-core-helpers@1.10.0: resolution: {integrity: sha512-pIxAzFDS5vnbXvfvLSpaA1tfRykAe9adw43YCKsEYQwH0gCLL0kMLkaCX3q+Q8EVmAh+e1jWL/nl9U0de1+++g==} engines: {node: '>=8.0.0'} - web3-core-helpers@1.10.3: - resolution: {integrity: sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==} + web3-core-helpers@1.10.4: + resolution: {integrity: sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==} engines: {node: '>=8.0.0'} web3-core-method@1.10.0: resolution: {integrity: sha512-4R700jTLAMKDMhQ+nsVfIXvH6IGJlJzGisIfMKWAIswH31h5AZz7uDUW2YctI+HrYd+5uOAlS4OJeeT9bIpvkA==} engines: {node: '>=8.0.0'} - web3-core-method@1.10.3: - resolution: {integrity: sha512-VZ/Dmml4NBmb0ep5PTSg9oqKoBtG0/YoMPei/bq/tUdlhB2dMB79sbeJPwx592uaV0Vpk7VltrrrBv5hTM1y4Q==} + web3-core-method@1.10.4: + resolution: {integrity: sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==} engines: {node: '>=8.0.0'} web3-core-promievent@1.10.0: resolution: {integrity: sha512-68N7k5LWL5R38xRaKFrTFT2pm2jBNFaM4GioS00YjAKXRQ3KjmhijOMG3TICz6Aa5+6GDWYelDNx21YAeZ4YTg==} engines: {node: '>=8.0.0'} - web3-core-promievent@1.10.3: - resolution: {integrity: sha512-HgjY+TkuLm5uTwUtaAfkTgRx/NzMxvVradCi02gy17NxDVdg/p6svBHcp037vcNpkuGeFznFJgULP+s2hdVgUQ==} + web3-core-promievent@1.10.4: + resolution: {integrity: sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==} engines: {node: '>=8.0.0'} web3-core-requestmanager@1.10.0: resolution: {integrity: sha512-3z/JKE++Os62APml4dvBM+GAuId4h3L9ckUrj7ebEtS2AR0ixyQPbrBodgL91Sv7j7cQ3Y+hllaluqjguxvSaQ==} engines: {node: '>=8.0.0'} - web3-core-requestmanager@1.10.3: - resolution: {integrity: sha512-VT9sKJfgM2yBOIxOXeXiDuFMP4pxzF6FT+y8KTLqhDFHkbG3XRe42Vm97mB/IvLQCJOmokEjl3ps8yP1kbggyw==} + web3-core-requestmanager@1.10.4: + resolution: {integrity: sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==} engines: {node: '>=8.0.0'} web3-core-subscriptions@1.10.0: resolution: {integrity: sha512-HGm1PbDqsxejI075gxBc5OSkwymilRWZufIy9zEpnWKNmfbuv5FfHgW1/chtJP6aP3Uq2vHkvTDl3smQBb8l+g==} engines: {node: '>=8.0.0'} - web3-core-subscriptions@1.10.3: - resolution: {integrity: sha512-KW0Mc8sgn70WadZu7RjQ4H5sNDJ5Lx8JMI3BWos+f2rW0foegOCyWhRu33W1s6ntXnqeBUw5rRCXZRlA3z+HNA==} + web3-core-subscriptions@1.10.4: + resolution: {integrity: sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==} engines: {node: '>=8.0.0'} web3-core@1.10.0: resolution: {integrity: sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ==} engines: {node: '>=8.0.0'} - web3-core@1.10.3: - resolution: {integrity: sha512-Vbk0/vUNZxJlz3RFjAhNNt7qTpX8yE3dn3uFxfX5OHbuon5u65YEOd3civ/aQNW745N0vGUlHFNxxmn+sG9DIw==} + web3-core@1.10.4: + resolution: {integrity: sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==} engines: {node: '>=8.0.0'} web3-eth-abi@1.10.0: resolution: {integrity: sha512-cwS+qRBWpJ43aI9L3JS88QYPfFcSJJ3XapxOQ4j40v6mk7ATpA8CVK1vGTzpihNlOfMVRBkR95oAj7oL6aiDOg==} engines: {node: '>=8.0.0'} - web3-eth-abi@1.10.3: - resolution: {integrity: sha512-O8EvV67uhq0OiCMekqYsDtb6FzfYzMXT7VMHowF8HV6qLZXCGTdB/NH4nJrEh2mFtEwVdS6AmLFJAQd2kVyoMQ==} + web3-eth-abi@1.10.4: + resolution: {integrity: sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==} engines: {node: '>=8.0.0'} web3-eth-accounts@1.10.0: resolution: {integrity: sha512-wiq39Uc3mOI8rw24wE2n15hboLE0E9BsQLdlmsL4Zua9diDS6B5abXG0XhFcoNsXIGMWXVZz4TOq3u4EdpXF/Q==} engines: {node: '>=8.0.0'} - web3-eth-accounts@1.10.3: - resolution: {integrity: sha512-8MipGgwusDVgn7NwKOmpeo3gxzzd+SmwcWeBdpXknuyDiZSQy9tXe+E9LeFGrmys/8mLLYP79n3jSbiTyv+6pQ==} + web3-eth-accounts@1.10.4: + resolution: {integrity: sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==} engines: {node: '>=8.0.0'} web3-eth-contract@1.10.0: resolution: {integrity: sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w==} engines: {node: '>=8.0.0'} - web3-eth-contract@1.10.3: - resolution: {integrity: sha512-Y2CW61dCCyY4IoUMD4JsEQWrILX4FJWDWC/Txx/pr3K/+fGsBGvS9kWQN5EsVXOp4g7HoFOfVh9Lf7BmVVSRmg==} + web3-eth-contract@1.10.4: + resolution: {integrity: sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==} engines: {node: '>=8.0.0'} web3-eth-ens@1.10.0: resolution: {integrity: sha512-3hpGgzX3qjgxNAmqdrC2YUQMTfnZbs4GeLEmy8aCWziVwogbuqQZ+Gzdfrym45eOZodk+lmXyLuAdqkNlvkc1g==} engines: {node: '>=8.0.0'} - web3-eth-ens@1.10.3: - resolution: {integrity: sha512-hR+odRDXGqKemw1GFniKBEXpjYwLgttTES+bc7BfTeoUyUZXbyDHe5ifC+h+vpzxh4oS0TnfcIoarK0Z9tFSiQ==} + web3-eth-ens@1.10.4: + resolution: {integrity: sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==} engines: {node: '>=8.0.0'} web3-eth-iban@1.10.0: resolution: {integrity: sha512-0l+SP3IGhInw7Q20LY3IVafYEuufo4Dn75jAHT7c2aDJsIolvf2Lc6ugHkBajlwUneGfbRQs/ccYPQ9JeMUbrg==} engines: {node: '>=8.0.0'} - web3-eth-iban@1.10.3: - resolution: {integrity: sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==} + web3-eth-iban@1.10.4: + resolution: {integrity: sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==} engines: {node: '>=8.0.0'} web3-eth-personal@1.10.0: resolution: {integrity: sha512-anseKn98w/d703eWq52uNuZi7GhQeVjTC5/svrBWEKob0WZ5kPdo+EZoFN0sp5a5ubbrk/E0xSl1/M5yORMtpg==} engines: {node: '>=8.0.0'} - web3-eth-personal@1.10.3: - resolution: {integrity: sha512-avrQ6yWdADIvuNQcFZXmGLCEzulQa76hUOuVywN7O3cklB4nFc/Gp3yTvD3bOAaE7DhjLQfhUTCzXL7WMxVTsw==} + web3-eth-personal@1.10.4: + resolution: {integrity: sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==} engines: {node: '>=8.0.0'} web3-eth@1.10.0: resolution: {integrity: sha512-Z5vT6slNMLPKuwRyKGbqeGYC87OAy8bOblaqRTgg94CXcn/mmqU7iPIlG4506YdcdK3x6cfEDG7B6w+jRxypKA==} engines: {node: '>=8.0.0'} - web3-eth@1.10.3: - resolution: {integrity: sha512-Uk1U2qGiif2mIG8iKu23/EQJ2ksB1BQXy3wF3RvFuyxt8Ft9OEpmGlO7wOtAyJdoKzD5vcul19bJpPcWSAYZhA==} + web3-eth@1.10.4: + resolution: {integrity: sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==} engines: {node: '>=8.0.0'} web3-net@1.10.0: resolution: {integrity: sha512-NLH/N3IshYWASpxk4/18Ge6n60GEvWBVeM8inx2dmZJVmRI6SJIlUxbL8jySgiTn3MMZlhbdvrGo8fpUW7a1GA==} engines: {node: '>=8.0.0'} - web3-net@1.10.3: - resolution: {integrity: sha512-IoSr33235qVoI1vtKssPUigJU9Fc/Ph0T9CgRi15sx+itysmvtlmXMNoyd6Xrgm9LuM4CIhxz7yDzH93B79IFg==} + web3-net@1.10.4: + resolution: {integrity: sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==} engines: {node: '>=8.0.0'} web3-providers-http@1.10.0: resolution: {integrity: sha512-eNr965YB8a9mLiNrkjAWNAPXgmQWfpBfkkn7tpEFlghfww0u3I0tktMZiaToJVcL2+Xq+81cxbkpeWJ5XQDwOA==} engines: {node: '>=8.0.0'} - web3-providers-http@1.10.3: - resolution: {integrity: sha512-6dAgsHR3MxJ0Qyu3QLFlQEelTapVfWNTu5F45FYh8t7Y03T1/o+YAkVxsbY5AdmD+y5bXG/XPJ4q8tjL6MgZHw==} + web3-providers-http@1.10.4: + resolution: {integrity: sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==} engines: {node: '>=8.0.0'} web3-providers-ipc@1.10.0: resolution: {integrity: sha512-OfXG1aWN8L1OUqppshzq8YISkWrYHaATW9H8eh0p89TlWMc1KZOL9vttBuaBEi96D/n0eYDn2trzt22bqHWfXA==} engines: {node: '>=8.0.0'} - web3-providers-ipc@1.10.3: - resolution: {integrity: sha512-vP5WIGT8FLnGRfswTxNs9rMfS1vCbMezj/zHbBe/zB9GauBRTYVrUo2H/hVrhLg8Ut7AbsKZ+tCJ4mAwpKi2hA==} + web3-providers-ipc@1.10.4: + resolution: {integrity: sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==} engines: {node: '>=8.0.0'} web3-providers-ws@1.10.0: resolution: {integrity: sha512-sK0fNcglW36yD5xjnjtSGBnEtf59cbw4vZzJ+CmOWIKGIR96mP5l684g0WD0Eo+f4NQc2anWWXG74lRc9OVMCQ==} engines: {node: '>=8.0.0'} - web3-providers-ws@1.10.3: - resolution: {integrity: sha512-/filBXRl48INxsh6AuCcsy4v5ndnTZ/p6bl67kmO9aK1wffv7CT++DrtclDtVMeDGCgB3van+hEf9xTAVXur7Q==} + web3-providers-ws@1.10.4: + resolution: {integrity: sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==} engines: {node: '>=8.0.0'} web3-shh@1.10.0: resolution: {integrity: sha512-uNUUuNsO2AjX41GJARV9zJibs11eq6HtOe6Wr0FtRUcj8SN6nHeYIzwstAvJ4fXA53gRqFMTxdntHEt9aXVjpg==} engines: {node: '>=8.0.0'} - web3-shh@1.10.3: - resolution: {integrity: sha512-cAZ60CPvs9azdwMSQ/PSUdyV4PEtaW5edAZhu3rCXf6XxQRliBboic+AvwUvB6j3eswY50VGa5FygfVmJ1JVng==} + web3-shh@1.10.4: + resolution: {integrity: sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==} engines: {node: '>=8.0.0'} web3-utils@1.10.0: resolution: {integrity: sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg==} engines: {node: '>=8.0.0'} - web3-utils@1.10.3: - resolution: {integrity: sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ==} + web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} engines: {node: '>=8.0.0'} web3@1.10.0: resolution: {integrity: sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng==} engines: {node: '>=8.0.0'} - web3@1.10.3: - resolution: {integrity: sha512-DgUdOOqC/gTqW+VQl1EdPxrVRPB66xVNtuZ5KD4adVBtko87hkgM8BTZ0lZ8IbUfnQk6DyjcDujMiH3oszllAw==} + web3@1.10.4: + resolution: {integrity: sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==} engines: {node: '>=8.0.0'} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - websocket@1.0.34: - resolution: {integrity: sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==} + websocket@1.0.35: + resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} engines: {node: '>=4.0.0'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} which-module@1.0.0: resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} @@ -5681,12 +5575,8 @@ packages: which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} which@1.3.1: @@ -5701,6 +5591,10 @@ packages: wide-align@1.1.3: resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==} + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + window-size@0.2.0: resolution: {integrity: sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==} engines: {node: '>= 0.10.0'} @@ -5717,8 +5611,8 @@ packages: resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} engines: {node: '>=8.0.0'} - workerpool@6.2.1: - resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} wrap-ansi@2.1.0: resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} @@ -5728,10 +5622,6 @@ packages: resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} engines: {node: '>=6'} - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -5762,8 +5652,8 @@ packages: utf-8-validate: optional: true - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5815,27 +5705,16 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yargs-parser@13.1.2: resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - yargs-parser@2.4.1: resolution: {integrity: sha512-9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==} - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - yargs-unparser@1.6.0: resolution: {integrity: sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==} engines: {node: '>=6'} @@ -5847,18 +5726,10 @@ packages: yargs@13.3.2: resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - yargs@4.8.1: resolution: {integrity: sha512-LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==} @@ -5873,24 +5744,50 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zksync-ethers@5.8.0: - resolution: {integrity: sha512-/4qI5UElh0lspu0ew2IXBCO+O9kXEzZOM7JqvlfRWWGIUKZ+EDXnjIPgkH0y5/MnMT3FDq9koAAUCyZVWqHUJg==} + yup@1.4.0: + resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + + zksync-ethers@5.9.2: + resolution: {integrity: sha512-Y2Mx6ovvxO6UdC2dePLguVzvNToOY8iLWeq5ne+jgGSJxAi/f4He/NF6FNsf6x1aWX0o8dy4Df8RcOQXAkj5qw==} engines: {node: '>=16.0.0'} peerDependencies: ethers: ~5.7.0 snapshots: - '@aashutoshrathi/word-wrap@1.2.6': {} + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@aragon/osx-commons-configs@0.6.0': + dependencies: + tslib: 2.7.0 + + '@aragon/osx-ethers@1.2.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@aragon/osx-ethers@1.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate - '@ampproject/remapping@2.2.1': + '@aragon/osx-ethers@1.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate - '@aragon/osx@1.3.0(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@aragon/osx@1.3.0(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - '@ensdomains/ens-contracts': 0.0.11(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@ensdomains/ens-contracts': 0.0.11(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@openzeppelin/contracts': 4.8.1 '@openzeppelin/contracts-upgradeable': 4.8.1 transitivePeerDependencies: @@ -5906,177 +5803,194 @@ snapshots: - web3-eth-abi - web3-utils - '@babel/code-frame@7.22.13': + '@aragon/sdk-client-common@1.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@babel/highlight': 7.22.20 - chalk: 2.4.2 + '@aragon/osx-commons-configs': 0.6.0 + '@aragon/osx-ethers': 1.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@aragon/osx-ethers-v1.0.0': '@aragon/osx-ethers@1.2.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)' + '@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(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/wallet': 5.7.0 + graphql: 16.9.0 + graphql-request: 4.3.0(graphql@16.9.0) + yup: 1.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@aragon/sdk-client@1.26.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@aragon/osx-commons-configs': 0.6.0 + '@aragon/osx-ethers': 1.3.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@aragon/sdk-client-common': 1.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@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(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/wallet': 5.7.0 + '@openzeppelin/contracts': 4.9.6 + '@openzeppelin/contracts-upgradeable': 4.9.6 + graphql: 16.9.0 + graphql-request: 4.3.0(graphql@16.9.0) + yup: 1.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@aragon/sdk-ipfs@1.1.0': + 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 + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.1.0 - '@babel/compat-data@7.23.2': {} + '@babel/compat-data@7.25.4': {} - '@babel/core@7.23.2': + '@babel/core@7.25.2': 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 - '@babel/types': 7.23.0 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0)': + '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.11.1)': dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.25.2 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.52.0 + eslint: 9.11.1 eslint-visitor-keys: 2.1.0 semver: 6.3.1 - '@babel/eslint-plugin@7.22.10(@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0))(eslint@8.52.0)': + '@babel/eslint-plugin@7.25.1(@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.11.1))(eslint@9.11.1)': dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) - eslint: 8.52.0 + '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@9.11.1) + eslint: 9.11.1 eslint-rule-composer: 0.3.0 - '@babel/generator@7.23.0': + '@babel/generator@7.25.6': dependencies: - '@babel/types': 7.23.0 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@babel/types': 7.25.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-compilation-targets@7.22.15': + '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.23.2 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - - '@babel/helper-hoist-variables@7.22.5': - dependencies: - '@babel/types': 7.23.0 - - '@babel/helper-module-imports@7.22.15': - dependencies: - '@babel/types': 7.23.0 - - '@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2)': + '@babel/helper-module-imports@7.24.7': 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/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color - '@babel/helper-simple-access@7.22.5': + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: - '@babel/types': 7.23.0 + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color - '@babel/helper-split-export-declaration@7.22.6': + '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/types': 7.23.0 + '@babel/traverse': 7.25.6 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color - '@babel/helper-string-parser@7.22.5': {} + '@babel/helper-string-parser@7.24.8': {} - '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.22.15': {} + '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.23.2': + '@babel/helpers@7.25.6': dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 - '@babel/highlight@7.22.20': + '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.1.0 - '@babel/parser@7.23.0': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.25.6 - '@babel/runtime@7.23.2': + '@babel/runtime@7.25.6': dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 - '@babel/template@7.22.15': + '@babel/template@7.25.0': dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.6 + '@babel/types': 7.25.6 - '@babel/traverse@7.23.2': + '@babel/traverse@7.25.6': 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@8.1.1) + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.6 + '@babel/parser': 7.25.6 + '@babel/template': 7.25.0 + '@babel/types': 7.25.6 + debug: 4.3.7(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.23.0': + '@babel/types@7.25.6': dependencies: - '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@chainsafe/as-sha256@0.3.1': {} - - '@chainsafe/persistent-merkle-tree@0.4.2': - dependencies: - '@chainsafe/as-sha256': 0.3.1 - - '@chainsafe/persistent-merkle-tree@0.5.0': - dependencies: - '@chainsafe/as-sha256': 0.3.1 - - '@chainsafe/ssz@0.10.2': - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.5.0 - - '@chainsafe/ssz@0.9.4': - dependencies: - '@chainsafe/as-sha256': 0.3.1 - '@chainsafe/persistent-merkle-tree': 0.4.2 - case: 1.6.3 - - '@changesets/apply-release-plan@6.1.4': + '@changesets/apply-release-plan@7.0.5': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/config': 2.3.1 - '@changesets/get-version-range-type': 0.3.2 - '@changesets/git': 2.0.0 - '@changesets/types': 5.2.1 + '@changesets/config': 3.0.3 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 fs-extra: 7.0.1 @@ -6084,20 +5998,20 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.3 - '@changesets/assemble-release-plan@5.2.4': + '@changesets/assemble-release-plan@6.0.4': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.5.4 + semver: 7.6.3 - '@changesets/changelog-git@0.1.14': + '@changesets/changelog-git@0.2.0': dependencies: - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 '@changesets/changelog-github@0.4.8': dependencies: @@ -6107,63 +6021,59 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.26.2': - dependencies: - '@babel/runtime': 7.23.2 - '@changesets/apply-release-plan': 6.1.4 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/changelog-git': 0.1.14 - '@changesets/config': 2.3.1 - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/get-release-plan': 3.0.17 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 - '@changesets/write': 0.2.3 + '@changesets/cli@2.27.8': + dependencies: + '@changesets/apply-release-plan': 7.0.5 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.3 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.4 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/should-skip-package': 0.1.1 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.2 '@manypkg/get-packages': 1.1.3 - '@types/is-ci': 3.0.4 - '@types/semver': 7.5.4 + '@types/semver': 7.5.8 ansi-colors: 4.1.3 - chalk: 2.4.2 + ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - human-id: 1.0.2 - is-ci: 3.0.1 - meow: 6.1.1 + mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.2 + package-manager-detector: 0.2.0 + picocolors: 1.1.0 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.3 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 4.2.3 - '@changesets/config@2.3.1': + '@changesets/config@3.0.3': dependencies: - '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.6 - '@changesets/logger': 0.0.5 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.5 + micromatch: 4.0.8 - '@changesets/errors@0.1.4': + '@changesets/errors@0.2.0': dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@1.3.6': + '@changesets/get-dependents-graph@2.1.2': dependencies: - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 - semver: 7.5.4 + picocolors: 1.1.0 + semver: 7.6.3 '@changesets/get-github-info@0.5.2': dependencies: @@ -6172,64 +6082,65 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@3.0.17': + '@changesets/get-release-plan@4.0.4': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/assemble-release-plan': 5.2.4 - '@changesets/config': 2.3.1 - '@changesets/pre': 1.0.14 - '@changesets/read': 0.5.9 - '@changesets/types': 5.2.1 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/config': 3.0.3 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - '@changesets/get-version-range-type@0.3.2': {} + '@changesets/get-version-range-type@0.4.0': {} - '@changesets/git@2.0.0': + '@changesets/git@3.0.1': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.5 + micromatch: 4.0.8 spawndamnit: 2.0.0 - '@changesets/logger@0.0.5': + '@changesets/logger@0.1.1': dependencies: - chalk: 2.4.2 + picocolors: 1.1.0 - '@changesets/parse@0.3.16': + '@changesets/parse@0.4.0': dependencies: - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 js-yaml: 3.14.1 - '@changesets/pre@1.0.14': + '@changesets/pre@2.0.1': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.5.9': + '@changesets/read@0.6.1': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/git': 2.0.0 - '@changesets/logger': 0.0.5 - '@changesets/parse': 0.3.16 - '@changesets/types': 5.2.1 - chalk: 2.4.2 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 fs-extra: 7.0.1 p-filter: 2.1.0 + picocolors: 1.1.0 + + '@changesets/should-skip-package@0.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 '@changesets/types@4.1.0': {} '@changesets/types@5.2.1': {} - '@changesets/write@0.2.3': + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.2': dependencies: - '@babel/runtime': 7.23.2 - '@changesets/types': 5.2.1 + '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 @@ -6251,9 +6162,9 @@ snapshots: nano-base32: 1.0.1 ripemd160: 2.0.2 - '@ensdomains/buffer@0.0.13(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@ensdomains/buffer@0.0.13(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - '@nomiclabs/hardhat-truffle5': 2.0.7(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-truffle5': 2.0.7(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) transitivePeerDependencies: - '@nomiclabs/hardhat-web3' - bufferutil @@ -6267,9 +6178,9 @@ snapshots: - web3-eth-abi - web3-utils - '@ensdomains/ens-contracts@0.0.11(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@ensdomains/ens-contracts@0.0.11(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - '@ensdomains/buffer': 0.0.13(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@ensdomains/buffer': 0.0.13(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@ensdomains/solsha1': 0.0.3 '@openzeppelin/contracts': 4.8.1 dns-packet: 5.6.1 @@ -6292,11 +6203,11 @@ snapshots: eth-ens-namehash: 2.0.8 solc: 0.4.26 testrpc: 0.0.1 - web3-utils: 1.10.3 + web3-utils: 1.10.4 '@ensdomains/ensjs@2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.25.6 '@ensdomains/address-encoder': 0.1.9 '@ensdomains/ens': 0.4.5 '@ensdomains/resolver': 0.2.4 @@ -6314,20 +6225,30 @@ snapshots: dependencies: hash-test-vectors: 1.3.2 - '@eslint-community/eslint-utils@4.4.0(eslint@8.52.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1)': dependencies: - eslint: 8.52.0 + eslint: 9.11.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.9.1': {} + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.6.0': {} - '@eslint/eslintrc@2.1.2': + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.23.0 - ignore: 5.2.4 + debug: 4.3.7(supports-color@8.1.1) + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -6335,7 +6256,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.52.0': {} + '@eslint/js@9.11.1': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.0': + dependencies: + levn: 0.4.1 '@ethereumjs/common@2.5.0': dependencies: @@ -6362,7 +6289,7 @@ snapshots: '@ethereumjs/util@8.1.0': dependencies: '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.1.2 + ethereum-cryptography: 2.2.1 micro-ftch: 0.3.1 '@ethersproject/abi@5.7.0': @@ -6620,54 +6547,46 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - '@fastify/busboy@2.0.0': {} - - '@humanwhocodes/config-array@0.11.13': - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@fastify/busboy@2.1.1': {} '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.1': {} + '@humanwhocodes/retry@0.3.0': {} - '@jridgewell/gen-mapping@0.3.3': + '@jridgewell/gen-mapping@0.3.5': dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.1.2': {} + '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} - '@jridgewell/trace-mapping@0.3.20': + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.9': dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 '@leichtgewicht/ip-codec@2.0.5': {} '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.25.6 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.23.2 + '@babel/runtime': 7.25.6 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -6686,13 +6605,15 @@ snapshots: dependencies: eslint-scope: 5.1.1 - '@noble/curves@1.1.0': + '@noble/curves@1.4.2': dependencies: - '@noble/hashes': 1.3.1 + '@noble/hashes': 1.4.0 '@noble/hashes@1.2.0': {} - '@noble/hashes@1.3.1': {} + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.5.0': {} '@noble/secp256k1@1.7.1': {} @@ -6706,221 +6627,127 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 - '@nomicfoundation/ethereumjs-block@5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-util': 9.0.2 - ethereum-cryptography: 0.1.3 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@nomicfoundation/edr-darwin-arm64@0.5.2': {} - '@nomicfoundation/ethereumjs-blockchain@7.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-ethash': 3.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-util': 9.0.2 - abstract-level: 1.0.3 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - level: 8.0.0 - lru-cache: 5.1.1 - memory-level: 1.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + '@nomicfoundation/edr-darwin-x64@0.5.2': {} - '@nomicfoundation/ethereumjs-common@4.0.2': - dependencies: - '@nomicfoundation/ethereumjs-util': 9.0.2 - crc-32: 1.2.2 + '@nomicfoundation/edr-linux-arm64-gnu@0.5.2': {} - '@nomicfoundation/ethereumjs-ethash@3.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 - abstract-level: 1.0.3 - bigint-crypto-utils: 3.3.0 - ethereum-cryptography: 0.1.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@nomicfoundation/edr-linux-arm64-musl@0.5.2': {} - '@nomicfoundation/ethereumjs-evm@2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-util': 9.0.2 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + '@nomicfoundation/edr-linux-x64-gnu@0.5.2': {} - '@nomicfoundation/ethereumjs-rlp@5.0.2': {} + '@nomicfoundation/edr-linux-x64-musl@0.5.2': {} - '@nomicfoundation/ethereumjs-statemanager@2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - debug: 4.3.4(supports-color@8.1.1) - ethereum-cryptography: 0.1.3 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - js-sdsl: 4.4.2 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + '@nomicfoundation/edr-win32-x64-msvc@0.5.2': {} - '@nomicfoundation/ethereumjs-trie@6.0.2': + '@nomicfoundation/edr@0.5.2': dependencies: - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 - '@types/readable-stream': 2.3.15 - ethereum-cryptography: 0.1.3 - readable-stream: 3.6.2 + '@nomicfoundation/edr-darwin-arm64': 0.5.2 + '@nomicfoundation/edr-darwin-x64': 0.5.2 + '@nomicfoundation/edr-linux-arm64-gnu': 0.5.2 + '@nomicfoundation/edr-linux-arm64-musl': 0.5.2 + '@nomicfoundation/edr-linux-x64-gnu': 0.5.2 + '@nomicfoundation/edr-linux-x64-musl': 0.5.2 + '@nomicfoundation/edr-win32-x64-msvc': 0.5.2 - '@nomicfoundation/ethereumjs-tx@5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@nomicfoundation/ethereumjs-common@4.0.4': dependencies: - '@chainsafe/ssz': 0.9.4 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-util': 9.0.2 - ethereum-cryptography: 0.1.3 + '@nomicfoundation/ethereumjs-util': 9.0.4 transitivePeerDependencies: - - bufferutil - - utf-8-validate + - c-kzg + + '@nomicfoundation/ethereumjs-rlp@5.0.4': {} - '@nomicfoundation/ethereumjs-util@9.0.2': + '@nomicfoundation/ethereumjs-tx@5.0.4': dependencies: - '@chainsafe/ssz': 0.10.2 - '@nomicfoundation/ethereumjs-rlp': 5.0.2 + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 ethereum-cryptography: 0.1.3 - '@nomicfoundation/ethereumjs-vm@7.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@nomicfoundation/ethereumjs-block': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-blockchain': 7.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-evm': 2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-statemanager': 2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-util': 9.0.2 - debug: 4.3.4(supports-color@8.1.1) + '@nomicfoundation/ethereumjs-util@9.0.4': + dependencies: + '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 - mcl-wasm: 0.7.9 - rustbn.js: 0.2.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - '@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: '@ethersproject/abi': 5.7.0 - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@types/chai-as-promised': 7.1.7 - chai: 4.3.10 - chai-as-promised: 7.1.1(chai@4.3.10) - deep-eql: 4.1.3 + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@types/chai-as-promised': 7.1.8 + chai: 4.5.0 + chai-as-promised: 7.1.2(chai@4.5.0) + deep-eql: 4.1.4 ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) ordinal: 1.0.3 - '@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))': + '@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) - ? '@nomicfoundation/hardhat-toolbox@2.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.7(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2)))(@types/chai@4.3.9)(@types/mocha@9.1.1)(@types/node@17.0.45)(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.9(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(solidity-coverage@0.8.5(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2)' + ? '@nomicfoundation/hardhat-toolbox@2.0.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@nomicfoundation/hardhat-chai-matchers@1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomicfoundation/hardhat-network-helpers@1.0.12(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2)))(@types/chai@4.3.20)(@types/mocha@9.1.1)(@types/node@17.0.45)(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(solidity-coverage@0.8.13(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2)' : dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/hardhat-chai-matchers': 1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)))(chai@4.3.10)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@nomicfoundation/hardhat-network-helpers': 1.0.9(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@nomiclabs/hardhat-etherscan': 3.1.7(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - '@typechain/ethers-v5': 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2) - '@typechain/hardhat': 7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2)) - '@types/chai': 4.3.9 + '@nomicfoundation/hardhat-chai-matchers': 1.0.6(@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)))(chai@4.5.0)(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@nomicfoundation/hardhat-network-helpers': 1.0.12(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-ethers': 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@nomiclabs/hardhat-etherscan': 3.1.8(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + '@typechain/ethers-v5': 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2) + '@typechain/hardhat': 7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2)) + '@types/chai': 4.3.20 '@types/mocha': 9.1.1 '@types/node': 17.0.45 - chai: 4.3.10 + chai: 4.5.0 ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) - hardhat-gas-reporter: 1.0.9(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) - solidity-coverage: 0.8.5(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)) - ts-node: 10.9.1(@types/node@17.0.45)(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) - typescript: 5.2.2 - - '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1': - optional: true - - '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1': - optional: true - - '@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1': + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + hardhat-gas-reporter: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + solidity-coverage: 0.8.13(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)) + ts-node: 10.9.2(@types/node@17.0.45)(typescript@5.6.2) + typechain: 8.3.2(typescript@5.6.2) + typescript: 5.6.2 + + '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1': + '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1': + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1': + '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1': + '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1': + '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1': + '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': optional: true - '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1': - optional: true - - '@nomicfoundation/solidity-analyzer@0.1.1': + '@nomicfoundation/solidity-analyzer@0.1.2': optionalDependencies: - '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.1 - '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-freebsd-x64': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.1 - '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-arm64-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 - '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - - '@nomiclabs/buidler-web3@1.3.4(@nomiclabs/buidler@1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.2 + '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-arm64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.2 + '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 + '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 + + '@nomiclabs/buidler-web3@1.3.4(@nomiclabs/buidler@1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@nomiclabs/buidler': 1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@types/bignumber.js': 5.0.0 - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@nomiclabs/buidler@1.4.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: @@ -6932,9 +6759,9 @@ snapshots: abort-controller: 3.0.0 ansi-escapes: 4.3.2 chalk: 2.4.2 - chokidar: 3.5.3 + chokidar: 3.6.0 ci-info: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) deepmerge: 2.2.1 download: 7.1.0 enquirer: 2.4.1 @@ -6957,7 +6784,7 @@ snapshots: merkle-patricia-tree: 3.0.0 mocha: 7.2.0 node-fetch: 2.7.0 - qs: 6.11.2 + qs: 6.13.0 raw-body: 2.5.2 semver: 6.3.1 slash: 3.0.0 @@ -6966,7 +6793,7 @@ snapshots: ts-essentials: 2.0.12 tsort: 0.0.1 uuid: 3.4.0 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -6977,7 +6804,7 @@ snapshots: dependencies: async: 2.6.4 async-eventemitter: 0.2.4 - core-js-pure: 3.33.1 + core-js-pure: 3.38.1 ethereumjs-account: 3.0.0 ethereumjs-block: 2.2.2 ethereumjs-blockchain: 4.0.4 @@ -6991,37 +6818,37 @@ snapshots: safe-buffer: 5.2.1 util.promisify: 1.1.2 - '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))': + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) - '@nomiclabs/hardhat-etherscan@3.1.7(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))': + '@nomiclabs/hardhat-etherscan@3.1.8(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/address': 5.7.0 cbor: 8.1.0 chalk: 2.4.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) fs-extra: 7.0.1 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) lodash: 4.17.21 semver: 6.3.1 - table: 6.8.1 - undici: 5.26.4 + table: 6.8.2 + undici: 5.28.4 transitivePeerDependencies: - supports-color - '@nomiclabs/hardhat-truffle5@2.0.7(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@nomiclabs/hardhat-truffle5@2.0.7(@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - '@nomiclabs/hardhat-web3': 2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@nomiclabs/truffle-contract': 4.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@types/chai': 4.3.9 - chai: 4.3.10 + '@nomiclabs/hardhat-web3': 2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@nomiclabs/truffle-contract': 4.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@types/chai': 4.3.20 + chai: 4.5.0 ethereumjs-util: 7.1.5 fs-extra: 7.0.1 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -7032,13 +6859,13 @@ snapshots: - web3-eth-abi - web3-utils - '@nomiclabs/hardhat-web3@2.0.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@nomiclabs/hardhat-web3@2.0.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@types/bignumber.js': 5.0.0 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomiclabs/truffle-contract@4.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.3)(web3-core-promievent@1.10.3)(web3-eth-abi@1.10.3)(web3-utils@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@nomiclabs/truffle-contract@4.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core-promievent@1.10.4)(web3-eth-abi@1.10.4)(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@ensdomains/ensjs': 2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@truffle/blockchain-utils': 0.1.9 @@ -7050,83 +6877,84 @@ snapshots: ethereum-ens: 0.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) ethers: 4.0.49 source-map-support: 0.5.21 - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-core-helpers: 1.10.3 - web3-core-promievent: 1.10.3 - web3-eth-abi: 1.10.3 - web3-utils: 1.10.3 + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3-core-helpers: 1.10.4 + web3-core-promievent: 1.10.4 + web3-eth-abi: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - '@openzeppelin/contract-loader@0.6.3': - dependencies: - find-up: 4.1.0 - fs-extra: 8.1.0 - '@openzeppelin/contracts-upgradeable@4.8.1': {} + '@openzeppelin/contracts-upgradeable@4.9.6': {} + '@openzeppelin/contracts-upgradeable@5.0.2(@openzeppelin/contracts@5.0.2)': dependencies: '@openzeppelin/contracts': 5.0.2 '@openzeppelin/contracts@4.8.1': {} + '@openzeppelin/contracts@4.9.6': {} + '@openzeppelin/contracts@5.0.2': {} - '@openzeppelin/test-helpers@0.5.16(bn.js@5.2.1)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@peeramid-labs/eds@2.0.0(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10)': dependencies: - '@openzeppelin/contract-loader': 0.6.3 - '@truffle/contract': 4.6.31(bufferutil@4.0.8)(utf-8-validate@5.0.10) - ansi-colors: 3.2.4 - chai: 4.3.10 - chai-bn: 0.2.2(bn.js@5.2.1)(chai@4.3.10) - ethjs-abi: 0.2.1 - lodash.flatten: 4.4.0 - semver: 5.7.2 - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-utils: 1.10.3 + '@ethersproject/abi': 5.7.0 + '@openzeppelin/contracts': 5.0.2 + '@openzeppelin/contracts-upgradeable': 5.0.2(@openzeppelin/contracts@5.0.2) + '@types/chai': 4.3.20 + '@types/mocha': 9.1.1 + '@types/node': 17.0.45 + chalk: 4.1.2 + cli-table: 0.3.11 + hardhat-gas-reporter: 1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10) + ts-node: 10.9.2(@types/node@17.0.45)(typescript@5.6.2) + typescript: 5.6.2 transitivePeerDependencies: - - bn.js + - '@codechecks/client' + - '@swc/core' + - '@swc/wasm' - bufferutil - - encoding - - supports-color + - debug + - hardhat - utf-8-validate - '@pkgr/utils@2.4.2': + '@pkgr/core@0.1.1': {} + + '@rtsao/scc@1.1.0': {} + + '@safe-global/safe-contracts@1.4.1-build.0(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@scure/base@1.1.3': {} + '@scure/base@1.1.9': {} '@scure/bip32@1.1.5': dependencies: '@noble/hashes': 1.2.0 '@noble/secp256k1': 1.7.1 - '@scure/base': 1.1.3 + '@scure/base': 1.1.9 - '@scure/bip32@1.3.1': + '@scure/bip32@1.4.0': dependencies: - '@noble/curves': 1.1.0 - '@noble/hashes': 1.3.1 - '@scure/base': 1.1.3 + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 '@scure/bip39@1.1.1': dependencies: '@noble/hashes': 1.2.0 - '@scure/base': 1.1.3 + '@scure/base': 1.1.9 - '@scure/bip39@1.2.1': + '@scure/bip39@1.3.0': dependencies: - '@noble/hashes': 1.3.1 - '@scure/base': 1.1.3 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 '@sentry/core@5.30.0': dependencies: @@ -7177,29 +7005,29 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@shopify/eslint-plugin@43.0.0(@babel/core@7.23.2)(eslint@8.52.0)(prettier@3.0.3)(typescript@5.2.2)': + '@shopify/eslint-plugin@43.0.0(@babel/core@7.25.2)(eslint@9.11.1)(prettier@2.8.8)(typescript@5.6.2)': dependencies: - '@babel/eslint-parser': 7.22.15(@babel/core@7.23.2)(eslint@8.52.0) - '@babel/eslint-plugin': 7.22.10(@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.52.0))(eslint@8.52.0) - '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2) + '@babel/eslint-parser': 7.25.1(@babel/core@7.25.2)(eslint@9.11.1) + '@babel/eslint-plugin': 7.25.1(@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@9.11.1))(eslint@9.11.1) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@7.18.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.11.1)(typescript@5.6.2) change-case: 4.1.2 common-tags: 1.8.2 doctrine: 2.1.0 - eslint: 8.52.0 - eslint-config-prettier: 8.10.0(eslint@8.52.0) - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint@8.52.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.52.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0) - eslint-plugin-jest: 27.4.3(@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2) - eslint-plugin-jest-formatting: 3.1.0(eslint@8.52.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0) - eslint-plugin-node: 11.1.0(eslint@8.52.0) - eslint-plugin-prettier: 5.0.1(eslint-config-prettier@8.10.0(eslint@8.52.0))(eslint@8.52.0)(prettier@3.0.3) - eslint-plugin-promise: 6.1.1(eslint@8.52.0) - eslint-plugin-react: 7.33.2(eslint@8.52.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) - eslint-plugin-sort-class-members: 1.19.0(eslint@8.52.0) + eslint: 9.11.1 + eslint-config-prettier: 8.10.0(eslint@9.11.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.11.1) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2) + eslint-plugin-jest-formatting: 3.1.0(eslint@9.11.1) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1) + eslint-plugin-node: 11.1.0(eslint@9.11.1) + eslint-plugin-prettier: 5.2.1(eslint-config-prettier@8.10.0(eslint@9.11.1))(eslint@9.11.1)(prettier@2.8.8) + eslint-plugin-promise: 6.6.0(eslint@9.11.1) + eslint-plugin-react: 7.37.0(eslint@9.11.1) + eslint-plugin-react-hooks: 4.6.2(eslint@9.11.1) + eslint-plugin-sort-class-members: 1.20.0(eslint@9.11.1) jsx-ast-utils: 3.3.5 pkg-dir: 5.0.0 pluralize: 8.0.0 @@ -7222,10 +7050,12 @@ snapshots: dependencies: antlr4ts: 0.5.0-alpha.4 - '@solidity-parser/parser@0.16.1': + '@solidity-parser/parser@0.16.2': dependencies: antlr4ts: 0.5.0-alpha.4 + '@solidity-parser/parser@0.18.0': {} + '@solidity-parser/parser@0.5.2': {} '@solidstate/contracts@0.0.35': {} @@ -7250,12 +7080,12 @@ snapshots: dependencies: '@truffle/abi-utils': 1.0.3 '@truffle/compile-common': 0.9.8 - big.js: 6.2.1 + big.js: 6.2.2 bn.js: 5.2.1 cbor: 5.2.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) lodash: 4.17.21 - semver: 7.5.4 + semver: 7.6.3 utf8: 3.0.0 web3-utils: 1.10.0 transitivePeerDependencies: @@ -7269,39 +7099,17 @@ snapshots: '@truffle/contract-schema@3.4.16': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@truffle/contract@4.6.31(bufferutil@4.0.8)(utf-8-validate@5.0.10)': - dependencies: - '@ensdomains/ensjs': 2.1.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@truffle/blockchain-utils': 0.1.9 - '@truffle/contract-schema': 3.4.16 - '@truffle/debug-utils': 6.0.57 - '@truffle/error': 0.2.2 - '@truffle/interface-adapter': 0.5.37(bufferutil@4.0.8)(utf-8-validate@5.0.10) - bignumber.js: 7.2.1 - debug: 4.3.4(supports-color@8.1.1) - ethers: 4.0.49 - web3: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-core-helpers: 1.10.0 - web3-core-promievent: 1.10.0 - web3-eth-abi: 1.10.0 - web3-utils: 1.10.0 - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - '@truffle/debug-utils@6.0.57': dependencies: '@truffle/codec': 0.17.3 '@trufflesuite/chromafi': 3.0.0 bn.js: 5.2.1 chalk: 2.4.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) highlightjs-solidity: 2.0.6 transitivePeerDependencies: - supports-color @@ -7325,14 +7133,14 @@ snapshots: dependencies: camelcase: 4.1.0 chalk: 2.4.2 - cheerio: 1.0.0-rc.12 + cheerio: 1.0.0 detect-indent: 5.0.0 highlight.js: 10.7.3 lodash.merge: 4.6.2 strip-ansi: 4.0.0 strip-indent: 2.0.0 - '@tsconfig/node10@1.0.9': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -7340,34 +7148,34 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2)': + '@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) - typescript: 5.2.2 + ts-essentials: 7.0.3(typescript@5.6.2) + typechain: 8.3.2(typescript@5.6.2) + typescript: 5.6.2 - '@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))': + '@typechain/hardhat@7.0.0(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@typechain/ethers-v5@11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@typechain/ethers-v5': 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2) + '@typechain/ethers-v5': 11.1.2(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2) ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 9.1.0 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) - typechain: 8.3.2(typescript@5.2.2) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + typechain: 8.3.2(typescript@5.6.2) - '@typechain/web3-v1@6.0.7(typechain@8.3.2(typescript@5.2.2))(typescript@5.2.2)(web3-core@1.10.3)(web3-eth-contract@1.10.3)(web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@typechain/web3-v1@6.0.7(typechain@8.3.2(typescript@5.6.2))(typescript@5.6.2)(web3-core@1.10.4)(web3-eth-contract@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: lodash: 4.17.21 - ts-essentials: 7.0.3(typescript@5.2.2) - typechain: 8.3.2(typescript@5.2.2) - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-core: 1.10.3 - web3-eth-contract: 1.10.3 + ts-essentials: 7.0.3(typescript@5.6.2) + typechain: 8.3.2(typescript@5.6.2) + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3-core: 1.10.4 + web3-eth-contract: 1.10.4 transitivePeerDependencies: - typescript @@ -7379,30 +7187,32 @@ snapshots: dependencies: '@types/node': 17.0.45 - '@types/bn.js@5.1.3': + '@types/bn.js@5.1.6': dependencies: '@types/node': 17.0.45 '@types/cacheable-request@6.0.3': dependencies: - '@types/http-cache-semantics': 4.0.3 + '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 '@types/node': 17.0.45 - '@types/responselike': 1.0.2 + '@types/responselike': 1.0.3 - '@types/chai-as-promised@7.1.7': + '@types/chai-as-promised@7.1.8': dependencies: - '@types/chai': 4.3.9 + '@types/chai': 4.3.20 - '@types/chai@4.3.9': {} + '@types/chai@4.3.20': {} - '@types/cli-table@0.3.3': {} + '@types/cli-table@0.3.4': {} '@types/concat-stream@1.6.1': dependencies: '@types/node': 17.0.45 - '@types/crypto-js@4.1.3': {} + '@types/crypto-js@4.2.2': {} + + '@types/estree@1.0.6': {} '@types/form-data@0.0.33': dependencies: @@ -7413,13 +7223,9 @@ snapshots: '@types/minimatch': 5.1.2 '@types/node': 17.0.45 - '@types/http-cache-semantics@4.0.3': {} - - '@types/is-ci@3.0.4': - dependencies: - ci-info: 3.9.0 + '@types/http-cache-semantics@4.0.4': {} - '@types/json-schema@7.0.14': {} + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -7431,11 +7237,9 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/minimist@1.2.5': {} - '@types/mocha@9.1.1': {} - '@types/node-fetch@2.6.7': + '@types/node-fetch@2.6.11': dependencies: '@types/node': 17.0.45 form-data: 4.0.0 @@ -7448,61 +7252,67 @@ snapshots: '@types/node@8.10.66': {} - '@types/normalize-package-data@2.4.4': {} - - '@types/pbkdf2@3.1.1': + '@types/pbkdf2@3.1.2': dependencies: '@types/node': 17.0.45 '@types/prettier@2.7.3': {} - '@types/qs@6.9.9': {} - - '@types/readable-stream@2.3.15': - dependencies: - '@types/node': 17.0.45 - safe-buffer: 5.1.2 + '@types/qs@6.9.16': {} - '@types/responselike@1.0.2': + '@types/responselike@1.0.3': dependencies: '@types/node': 17.0.45 - '@types/secp256k1@4.0.5': + '@types/secp256k1@4.0.6': dependencies: '@types/node': 17.0.45 - '@types/semver@7.5.4': {} + '@types/semver@7.5.8': {} - '@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@7.18.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2)': dependencies: - '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/type-utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.8.0 - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.11.1)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@9.11.1)(typescript@5.6.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.11.1)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.11.1 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.11.1 optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2)': + '@typescript-eslint/parser@7.18.0(eslint@9.11.1)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.8.0 - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.11.1 optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color @@ -7511,80 +7321,103 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@6.8.0': + '@typescript-eslint/scope-manager@6.21.0': dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/type-utils@6.8.0(eslint@8.52.0)(typescript@5.2.2)': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.8.0(eslint@8.52.0)(typescript@5.2.2) - debug: 4.3.4(supports-color@8.1.1) - eslint: 8.52.0 - ts-api-utils: 1.0.3(typescript@5.2.2) + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@9.11.1)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.2) + '@typescript-eslint/utils': 6.21.0(eslint@9.11.1)(typescript@5.6.2) + debug: 4.3.7(supports-color@8.1.1) + eslint: 9.11.1 + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@6.8.0': {} + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2)': + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) + semver: 7.6.3 + tsutils: 3.21.0(typescript@5.6.2) optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.2)': dependencies: - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/visitor-keys': 6.8.0 - debug: 4.3.4(supports-color@8.1.1) + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.7(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.7(supports-color@8.1.1) + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@5.62.0(eslint@9.11.1)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.2) + eslint: 9.11.1 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@6.8.0(eslint@8.52.0)(typescript@5.2.2)': + '@typescript-eslint/utils@6.21.0(eslint@9.11.1)(typescript@5.6.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 - '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) - eslint: 8.52.0 - semver: 7.5.4 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.2) + eslint: 9.11.1 + semver: 7.6.3 transitivePeerDependencies: - supports-color - typescript @@ -7594,12 +7427,52 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@6.8.0': + '@typescript-eslint/visitor-keys@6.21.0': dependencies: - '@typescript-eslint/types': 6.8.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@web-std/blob@3.0.5': + dependencies: + '@web-std/stream': 1.0.0 + web-encoding: 1.1.5 + + '@web-std/fetch@4.2.1': + 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 + + '@web-std/file@3.0.3': + dependencies: + '@web-std/blob': 3.0.5 + + '@web-std/form-data@3.1.0': + dependencies: + web-encoding: 1.1.5 + + '@web-std/stream@1.0.0': + dependencies: + web-streams-polyfill: 3.3.3 + + '@web-std/stream@1.0.3': + dependencies: + web-streams-polyfill: 3.3.3 + + '@web3-storage/multipart-parser@1.0.0': {} + + '@zxing/text-encoding@0.9.0': + optional: true abbrev@1.0.9: {} @@ -7609,16 +7482,6 @@ snapshots: abortcontroller-polyfill@1.7.5: {} - abstract-level@1.0.3: - dependencies: - buffer: 6.0.3 - catering: 2.1.1 - is-buffer: 2.0.5 - level-supports: 4.0.1 - level-transcoder: 1.0.1 - module-error: 1.0.2 - queue-microtask: 1.2.3 - abstract-leveldown@2.6.3: dependencies: xtend: 4.0.2 @@ -7636,15 +7499,15 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.10.0): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.10.0 - - acorn-walk@8.2.0: {} + acorn: 8.12.1 - acorn@8.10.0: {} + acorn-walk@8.3.4: + dependencies: + acorn: 8.12.1 - address@1.2.2: {} + acorn@8.12.1: {} adm-zip@0.4.16: {} @@ -7652,7 +7515,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7668,21 +7531,21 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 amdefine@1.0.1: optional: true - ansi-colors@3.2.3: {} - - ansi-colors@3.2.4: {} + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 - ansi-colors@4.1.1: {} + ansi-colors@3.2.3: {} ansi-colors@4.1.3: {} @@ -7706,7 +7569,7 @@ snapshots: dependencies: color-convert: 2.0.1 - antlr4@4.13.1: {} + antlr4@4.13.2: {} antlr4ts@0.5.0-alpha.4: {} @@ -7727,90 +7590,94 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: + aria-query@5.1.3: dependencies: - dequal: 2.0.3 + deep-equal: 2.2.3 array-back@3.1.0: {} array-back@4.0.2: {} - array-buffer-byte-length@1.0.0: + array-buffer-byte-length@1.0.1: dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 array-flatten@1.1.1: {} - array-includes@3.1.7: + array-includes@3.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 is-string: 1.0.7 array-union@2.1.0: {} array-uniq@1.0.3: {} - array.prototype.findlast@1.2.3: + array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - array.prototype.findlastindex@1.2.3: + array.prototype.findlastindex@1.2.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - array.prototype.reduce@1.0.6: + array.prototype.reduce@1.0.7: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-array-method-boxes-properly: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 is-string: 1.0.7 - array.prototype.tosorted@1.1.2: + array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - arraybuffer.prototype.slice@1.0.2: + arraybuffer.prototype.slice@1.0.3: dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 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 - - arrify@1.0.1: {} + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 asap@2.0.6: {} @@ -7824,7 +7691,7 @@ snapshots: ast-parents@0.0.1: {} - ast-types-flow@0.0.7: {} + ast-types-flow@0.0.8: {} astral-regex@2.0.0: {} @@ -7840,43 +7707,39 @@ snapshots: dependencies: lodash: 4.17.21 - asynciterator.prototype@1.0.0: - dependencies: - has-symbols: 1.0.3 - asynckit@0.4.0: {} at-least-node@1.0.0: {} - available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 aws-sign2@0.7.0: {} - aws4@1.12.0: {} + aws4@1.13.2: {} - axe-core@4.8.2: {} + axe-core@4.10.0: {} - axios@0.21.4(debug@4.3.4): + axios@0.21.4(debug@4.3.7): dependencies: - follow-redirects: 1.15.3(debug@4.3.4) + follow-redirects: 1.15.9(debug@4.3.7) transitivePeerDependencies: - debug - axios@1.5.1: + axios@1.7.7: dependencies: - follow-redirects: 1.15.3(debug@4.3.4) + follow-redirects: 1.15.9(debug@4.3.7) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - axobject-query@3.2.1: - dependencies: - dequal: 2.0.3 + axobject-query@4.1.0: {} balanced-match@1.0.2: {} - base-x@3.0.9: + base-x@3.0.10: dependencies: safe-buffer: 5.2.1 @@ -7894,17 +7757,13 @@ snapshots: big-integer@1.6.36: {} - big-integer@1.6.51: {} - - big.js@6.2.1: {} - - bigint-crypto-utils@3.3.0: {} + big.js@6.2.2: {} bignumber.js@7.2.1: {} bignumber.js@9.1.2: {} - binary-extensions@2.2.0: {} + binary-extensions@2.3.0: {} bl@1.2.3: dependencies: @@ -7921,7 +7780,7 @@ snapshots: bn.js@5.2.1: {} - body-parser@1.20.1: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -7931,24 +7790,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -7957,9 +7799,16 @@ snapshots: boolbase@1.0.0: {} - bplist-parser@0.2.0: + boxen@5.1.2: dependencies: - big-integer: 1.6.51 + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 brace-expansion@1.1.11: dependencies: @@ -7970,23 +7819,12 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.2: - dependencies: - fill-range: 7.0.1 - - breakword@1.0.6: + braces@3.0.3: dependencies: - wcwidth: 1.0.1 + fill-range: 7.1.1 brorand@1.1.0: {} - browser-level@1.0.1: - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - run-parallel-limit: 1.1.0 - browser-stdout@1.3.1: {} browserify-aes@1.2.0: @@ -7998,16 +7836,16 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - browserslist@4.22.1: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001551 - electron-to-chromium: 1.4.563 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001664 + electron-to-chromium: 1.5.29 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) bs58@4.0.1: dependencies: - base-x: 3.0.9 + base-x: 3.0.10 bs58check@2.1.2: dependencies: @@ -8048,11 +7886,7 @@ snapshots: bufferutil@4.0.8: dependencies: - node-gyp-build: 4.6.1 - - bundle-name@3.0.0: - dependencies: - run-applescript: 5.0.0 + node-gyp-build: 4.8.2 bytes@3.1.2: {} @@ -8080,11 +7914,13 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 - call-bind@1.0.5: + call-bind@1.0.7: dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 callsites@3.1.0: {} @@ -8096,13 +7932,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 + tslib: 2.7.0 camelcase@3.0.0: {} @@ -8112,20 +7942,16 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001551: {} + caniuse-lite@1.0.30001664: {} capital-case@1.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 upper-case-first: 2.0.2 - case@1.6.3: {} - caseless@0.12.0: {} - catering@2.1.1: {} - caw@2.0.1: dependencies: get-proxy: 2.1.0 @@ -8142,25 +7968,20 @@ snapshots: dependencies: nofilter: 3.1.0 - chai-as-promised@7.1.1(chai@4.3.10): + chai-as-promised@7.1.2(chai@4.5.0): dependencies: - chai: 4.3.10 + chai: 4.5.0 check-error: 1.0.3 - chai-bn@0.2.2(bn.js@5.2.1)(chai@4.3.10): - dependencies: - bn.js: 5.2.1 - chai: 4.3.10 - - chai@4.3.10: + chai@4.5.0: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 - deep-eql: 4.1.3 + deep-eql: 4.1.4 get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 chalk@2.4.2: dependencies: @@ -8207,7 +8028,7 @@ snapshots: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 chardet@0.7.0: {} @@ -8230,20 +8051,24 @@ snapshots: domhandler: 5.0.3 domutils: 3.1.0 - cheerio@1.0.0-rc.12: + cheerio@1.0.0: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.1.0 - htmlparser2: 8.0.2 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 + parse5-parser-stream: 7.1.2 + undici: 6.19.8 + whatwg-mimetype: 4.0.0 chokidar@3.3.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -8252,10 +8077,10 @@ snapshots: optionalDependencies: fsevents: 2.1.3 - chokidar@3.5.3: + chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -8264,6 +8089,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.1 + chownr@1.1.4: {} ci-info@2.0.0: {} @@ -8285,16 +8114,10 @@ snapshots: class-is@1.1.0: {} - classic-level@1.3.0: - dependencies: - abstract-level: 1.0.3 - catering: 2.1.1 - module-error: 1.0.2 - napi-macros: 2.2.2 - node-gyp-build: 4.6.1 - clean-stack@2.2.0: {} + cli-boxes@2.2.1: {} + cli-table3@0.5.1: dependencies: object-assign: 4.1.1 @@ -8302,7 +8125,7 @@ snapshots: optionalDependencies: colors: 1.4.0 - cli-table3@0.6.3: + cli-table3@0.6.5: dependencies: string-width: 4.2.3 optionalDependencies: @@ -8324,24 +8147,12 @@ snapshots: strip-ansi: 5.2.0 wrap-ansi: 5.1.0 - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - cliui@7.0.4: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - clone-response@1.0.2: dependencies: mimic-response: 1.0.1 @@ -8350,8 +8161,6 @@ snapshots: dependencies: mimic-response: 1.0.1 - clone@1.0.4: {} - code-point-at@1.1.0: {} color-convert@1.9.3: @@ -8396,6 +8205,8 @@ snapshots: commander@3.0.2: {} + commander@8.3.0: {} + common-tags@1.8.2: {} concat-map@0.0.1: {} @@ -8420,7 +8231,7 @@ snapshots: constant-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 upper-case: 2.0.2 content-disposition@0.5.4: @@ -8441,9 +8252,9 @@ snapshots: cookie@0.4.2: {} - cookie@0.5.0: {} + cookie@0.6.0: {} - core-js-pure@3.33.1: {} + core-js-pure@3.38.1: {} core-util-is@1.0.2: {} @@ -8454,14 +8265,14 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig@8.3.6(typescript@5.2.2): + cosmiconfig@8.3.6(typescript@5.6.2): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.2.2 + typescript: 5.6.2 crc-32@1.2.2: {} @@ -8512,7 +8323,7 @@ snapshots: crypto-addr-codec@0.1.8: dependencies: - base-x: 3.0.9 + base-x: 3.0.10 big-integer: 1.6.36 blakejs: 1.2.1 bs58: 4.0.1 @@ -8520,7 +8331,7 @@ snapshots: safe-buffer: 5.2.1 sha3: 2.1.4 - crypto-js@4.1.1: {} + crypto-js@4.2.0: {} css-select@5.1.0: dependencies: @@ -8532,29 +8343,36 @@ snapshots: css-what@6.1.0: {} - csv-generate@3.4.3: {} - - csv-parse@4.16.3: {} + d@1.0.2: + dependencies: + es5-ext: 0.10.64 + type: 2.7.3 - csv-stringify@5.6.5: {} + damerau-levenshtein@1.0.8: {} - csv@5.5.3: + dashdash@1.14.1: dependencies: - csv-generate: 3.4.3 - csv-parse: 4.16.3 - csv-stringify: 5.6.5 - stream-transform: 2.1.3 + assert-plus: 1.0.0 + + data-uri-to-buffer@3.0.1: {} - d@1.0.1: + data-view-buffer@1.0.1: dependencies: - es5-ext: 0.10.62 - type: 1.2.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 - damerau-levenshtein@1.0.8: {} + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 - dashdash@1.14.1: + data-view-byte-offset@1.0.0: dependencies: - assert-plus: 1.0.0 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 dataloader@1.4.0: {} @@ -8574,17 +8392,12 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.4(supports-color@8.1.1): + debug@4.3.7(supports-color@8.1.1): dependencies: - ms: 2.1.2 + ms: 2.1.3 optionalDependencies: supports-color: 8.1.1 - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - decamelize@1.2.0: {} decamelize@4.0.0: {} @@ -8637,9 +8450,30 @@ snapshots: pify: 2.3.0 strip-dirs: 2.1.0 - deep-eql@4.1.3: + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-equal@2.2.3: dependencies: - type-detect: 4.0.8 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 deep-extend@0.6.0: {} @@ -8647,22 +8481,6 @@ snapshots: deepmerge@2.2.1: {} - default-browser-id@3.0.0: - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - - default-browser@4.0.0: - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - - defaults@1.0.4: - dependencies: - clone: 1.0.4 - defer-to-connect@2.0.1: {} deferred-leveldown@1.2.2: @@ -8674,18 +8492,16 @@ snapshots: abstract-leveldown: 5.0.0 inherits: 2.0.4 - define-data-property@1.1.1: + define-data-property@1.1.4: dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 - - define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 delayed-stream@1.0.0: {} @@ -8699,26 +8515,17 @@ snapshots: depd@2.0.0: {} - dequal@2.0.3: {} - destroy@1.2.0: {} detect-indent@5.0.0: {} detect-indent@6.1.0: {} - detect-port@1.5.1: - dependencies: - address: 1.2.2 - debug: 4.3.4(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - diff@3.5.0: {} diff@4.0.2: {} - diff@5.0.0: {} + diff@5.2.0: {} difflib@0.2.4: dependencies: @@ -8736,10 +8543,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -8767,7 +8570,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 dotenv@8.6.0: {} @@ -8795,7 +8598,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.4.563: {} + electron-to-chromium@1.5.29: {} elliptic@6.5.4: dependencies: @@ -8807,6 +8610,16 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + elliptic@6.5.7: + 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 + emoji-regex@7.0.3: {} emoji-regex@8.0.0: {} @@ -8817,6 +8630,8 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + encoding-down@5.0.4: dependencies: abstract-leveldown: 5.0.0 @@ -8825,6 +8640,11 @@ snapshots: level-errors: 2.0.1 xtend: 4.0.2 + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -8846,76 +8666,105 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.22.3: - 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-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 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 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.2 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 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 es-array-method-boxes-properly@1.0.0: {} - es-iterator-helpers@1.0.15: + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + + es-iterator-helpers@1.0.19: dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 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 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - internal-slot: 1.0.6 + internal-slot: 1.0.7 iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 + safe-array-concat: 1.1.2 - es-set-tostringtag@2.0.2: + es-object-atoms@1.0.0: dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 es-to-primitive@1.2.1: dependencies: @@ -8923,26 +8772,27 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - es5-ext@0.10.62: + es5-ext@0.10.64: dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 + esniff: 2.0.1 next-tick: 1.1.0 es6-iterator@2.0.3: dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 + d: 1.0.2 + es5-ext: 0.10.64 + es6-symbol: 3.1.4 es6-promise@4.2.8: {} - es6-symbol@3.1.3: + es6-symbol@3.1.4: dependencies: - d: 1.0.1 + d: 1.0.2 ext: 1.7.0 - escalade@3.1.1: {} + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -8959,155 +8809,158 @@ snapshots: optionalDependencies: source-map: 0.2.0 - eslint-config-prettier@8.10.0(eslint@8.52.0): + eslint-config-prettier@8.10.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 - eslint-config-prettier@9.0.0(eslint@8.52.0): + eslint-config-prettier@9.1.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint@8.52.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/parser': 6.21.0(eslint@9.11.1)(typescript@5.6.2) + eslint: 9.11.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-es@3.0.1(eslint@8.52.0): + eslint-plugin-es@3.0.1(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-eslint-comments@3.2.0(eslint@8.52.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.11.1): dependencies: escape-string-regexp: 1.0.5 - eslint: 8.52.0 - ignore: 5.2.4 + eslint: 9.11.1 + ignore: 5.3.2 - eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1): dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.52.0 + eslint: 9.11.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint-import-resolver-node@0.3.9)(eslint@8.52.0) - has: 1.0.4 - is-core-module: 2.13.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.1) + hasown: 2.0.2 + is-core-module: 2.15.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 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.21.0(eslint@9.11.1)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest-formatting@3.1.0(eslint@8.52.0): + eslint-plugin-jest-formatting@3.1.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 - eslint-plugin-jest@27.4.3(@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2): dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) - eslint: 8.52.0 + '@typescript-eslint/utils': 5.62.0(eslint@9.11.1)(typescript@5.6.2) + eslint: 9.11.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0(eslint@8.52.0)(typescript@5.2.2))(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@7.18.0(eslint@9.11.1)(typescript@5.6.2))(eslint@9.11.1)(typescript@5.6.2) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): + eslint-plugin-jsx-a11y@6.10.0(eslint@9.11.1): dependencies: - '@babel/runtime': 7.23.2 - aria-query: 5.3.0 - array-includes: 3.1.7 + aria-query: 5.1.3 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.7 - axe-core: 4.8.2 - axobject-query: 3.2.1 + ast-types-flow: 0.0.8 + axe-core: 4.10.0 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.52.0 - has: 1.0.4 + es-iterator-helpers: 1.0.19 + eslint: 9.11.1 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 - language-tags: 1.0.5 + language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - semver: 6.3.1 + object.fromentries: 2.0.8 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 - eslint-plugin-node@11.1.0(eslint@8.52.0): + eslint-plugin-node@11.1.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 - eslint-plugin-es: 3.0.1(eslint@8.52.0) + eslint: 9.11.1 + eslint-plugin-es: 3.0.1(eslint@9.11.1) eslint-utils: 2.1.0 - ignore: 5.2.4 + ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.8 semver: 6.3.1 - eslint-plugin-prettier@5.0.1(eslint-config-prettier@8.10.0(eslint@8.52.0))(eslint@8.52.0)(prettier@3.0.3): + eslint-plugin-prettier@5.2.1(eslint-config-prettier@8.10.0(eslint@9.11.1))(eslint@9.11.1)(prettier@2.8.8): dependencies: - eslint: 8.52.0 - prettier: 3.0.3 + eslint: 9.11.1 + prettier: 2.8.8 prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 + synckit: 0.9.1 optionalDependencies: - eslint-config-prettier: 8.10.0(eslint@8.52.0) + eslint-config-prettier: 8.10.0(eslint@9.11.1) - eslint-plugin-promise@6.1.1(eslint@8.52.0): + eslint-plugin-promise@6.6.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 - eslint-plugin-react-hooks@4.6.0(eslint@8.52.0): + eslint-plugin-react-hooks@4.6.2(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 - eslint-plugin-react@7.33.2(eslint@8.52.0): + eslint-plugin-react@7.37.0(eslint@9.11.1): dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.52.0 + es-iterator-helpers: 1.0.19 + eslint: 9.11.1 estraverse: 5.3.0 + hasown: 2.0.2 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 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 - eslint-plugin-sort-class-members@1.19.0(eslint@8.52.0): + eslint-plugin-sort-class-members@1.20.0(eslint@9.11.1): dependencies: - eslint: 8.52.0 + eslint: 9.11.1 eslint-rule-composer@0.3.0: {} @@ -9116,7 +8969,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-scope@7.2.2: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -9131,60 +8984,68 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.52.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.11.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@eslint-community/regexpp': 4.9.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.52.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.11.1 + '@eslint/plugin-kit': 0.2.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) - doctrine: 3.0.0 + debug: 4.3.7(supports-color@8.1.1) 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 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.2 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 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@9.6.1: + esniff@2.0.1: dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.3 + d: 1.0.2 + es5-ext: 0.10.64 + event-emitter: 0.3.5 + type: 2.7.3 + + espree@10.1.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 esprima@2.7.3: {} esprima@4.0.1: {} - esquery@1.5.0: + esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -9217,7 +9078,7 @@ snapshots: eth-gas-reporter@0.2.27(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@solidity-parser/parser': 0.14.5 - axios: 1.5.1 + axios: 1.7.7 cli-table3: 0.5.1 colors: 1.4.0 ethereum-cryptography: 1.2.0 @@ -9225,7 +9086,7 @@ snapshots: fs-readdir-recursive: 1.1.0 lodash: 4.17.21 markdown-table: 1.1.3 - mocha: 10.2.0 + mocha: 10.7.3 req-cwd: 2.0.0 sha1: 1.1.1 sync-request: 6.1.0 @@ -9237,7 +9098,7 @@ snapshots: eth-lib@0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: bn.js: 4.12.0 - elliptic: 6.5.4 + elliptic: 6.5.7 nano-json-stream-parser: 0.1.2 servify: 0.1.12 ws: 3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -9250,7 +9111,7 @@ snapshots: eth-lib@0.2.8: dependencies: bn.js: 4.12.0 - elliptic: 6.5.4 + elliptic: 6.5.7 xhr-request-promise: 0.1.3 eth-sig-util@2.5.4: @@ -9267,14 +9128,14 @@ snapshots: ethereumjs-util: 7.1.5 miller-rabin: 4.0.1 - ethereum-bloom-filters@1.0.10: + ethereum-bloom-filters@1.2.0: dependencies: - js-sha3: 0.8.0 + '@noble/hashes': 1.5.0 ethereum-cryptography@0.1.3: dependencies: - '@types/pbkdf2': 3.1.1 - '@types/secp256k1': 4.0.5 + '@types/pbkdf2': 3.1.2 + '@types/secp256k1': 4.0.6 blakejs: 1.2.1 browserify-aes: 1.2.0 bs58check: 2.1.2 @@ -9296,12 +9157,12 @@ snapshots: '@scure/bip32': 1.1.5 '@scure/bip39': 1.1.1 - ethereum-cryptography@2.1.2: + ethereum-cryptography@2.2.1: dependencies: - '@noble/curves': 1.1.0 - '@noble/hashes': 1.3.1 - '@scure/bip32': 1.3.1 - '@scure/bip39': 1.2.1 + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 ethereum-ens@0.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: @@ -9309,8 +9170,8 @@ snapshots: eth-ens-namehash: 2.0.8 js-sha3: 0.5.7 pako: 1.0.11 - underscore: 1.13.6 - web3: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + underscore: 1.13.7 + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -9360,7 +9221,7 @@ snapshots: dependencies: bn.js: 4.12.0 create-hash: 1.2.0 - elliptic: 6.5.4 + elliptic: 6.5.7 ethereum-cryptography: 0.1.3 ethjs-util: 0.1.6 rlp: 2.2.7 @@ -9371,14 +9232,14 @@ snapshots: '@types/bn.js': 4.11.6 bn.js: 4.12.0 create-hash: 1.2.0 - elliptic: 6.5.4 + elliptic: 6.5.7 ethereum-cryptography: 0.1.3 ethjs-util: 0.1.6 rlp: 2.2.7 ethereumjs-util@7.1.5: dependencies: - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.6 bn.js: 5.2.1 create-hash: 1.2.0 ethereum-cryptography: 0.1.3 @@ -9432,12 +9293,6 @@ snapshots: - bufferutil - utf-8-validate - ethjs-abi@0.2.1: - dependencies: - bn.js: 4.11.6 - js-sha3: 0.5.5 - number-to-bn: 1.7.0 - ethjs-unit@0.1.6: dependencies: bn.js: 4.11.6 @@ -9448,6 +9303,11 @@ snapshots: is-hex-prefixed: 1.0.0 strip-hex-prefix: 1.0.0 + event-emitter@0.3.5: + dependencies: + d: 1.0.2 + es5-ext: 0.10.64 + event-target-shim@5.0.1: {} eventemitter3@4.0.4: {} @@ -9457,58 +9317,34 @@ snapshots: md5.js: 1.3.5 safe-buffer: 5.2.1 - execa@5.1.1: - 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 - - execa@7.2.0: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.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 - - express@4.18.2: + express@4.21.0: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.5.0 + cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -9519,7 +9355,7 @@ snapshots: ext-list@2.2.2: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 ext-name@5.0.0: dependencies: @@ -9528,7 +9364,7 @@ snapshots: ext@1.7.0: dependencies: - type: 2.7.2 + type: 2.7.3 extend@3.0.2: {} @@ -9540,6 +9376,8 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + extract-files@9.0.0: {} + extsprintf@1.3.0: {} fake-merkle-patricia-tree@1.0.1: @@ -9554,19 +9392,21 @@ snapshots: fast-diff@1.3.0: {} - fast-glob@3.3.1: + fast-glob@3.3.2: 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 + micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fastq@1.15.0: + fast-uri@3.0.2: {} + + fastq@1.17.1: dependencies: reusify: 1.0.4 @@ -9574,9 +9414,9 @@ snapshots: dependencies: pend: 1.2.0 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.1.1 + flat-cache: 4.0.1 file-type@3.9.0: {} @@ -9596,14 +9436,14 @@ snapshots: strip-outer: 1.0.1 trim-repeated: 1.0.0 - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -9639,16 +9479,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - find-yarn-workspace-root2@1.2.16: + flat-cache@4.0.1: dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 - - flat-cache@3.1.1: - dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flat@4.1.1: dependencies: @@ -9656,7 +9490,7 @@ snapshots: flat@5.0.2: {} - flatted@3.2.9: {} + flatted@3.3.1: {} flow-stoplight@1.0.0: {} @@ -9664,9 +9498,9 @@ snapshots: dependencies: imul: 1.0.1 - follow-redirects@1.15.3(debug@4.3.4): + follow-redirects@1.15.9(debug@4.3.7): optionalDependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) for-each@0.3.3: dependencies: @@ -9688,6 +9522,12 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + form-data@3.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + form-data@4.0.0: dependencies: asynckit: 0.4.0 @@ -9719,7 +9559,7 @@ snapshots: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 fs-extra@4.0.3: dependencies: @@ -9744,7 +9584,7 @@ snapshots: at-least-node: 1.0.0 graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 fs-minipass@1.2.7: dependencies: @@ -9764,9 +9604,9 @@ snapshots: function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 functional-red-black-tree@1.0.1: {} @@ -9781,12 +9621,13 @@ snapshots: get-func-name@2.0.2: {} - get-intrinsic@1.2.2: + get-intrinsic@1.2.4: dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 get-port@3.2.0: {} @@ -9803,14 +9644,15 @@ snapshots: get-stream@5.2.0: dependencies: - pump: 3.0.0 + pump: 3.0.2 get-stream@6.0.1: {} - get-symbol-description@1.0.0: + get-symbol-description@1.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 getpass@0.1.7: dependencies: @@ -9902,22 +9744,23 @@ snapshots: globals@11.12.0: {} - globals@13.23.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} + + globals@15.9.0: {} - globalthis@1.0.3: + globalthis@1.0.4: dependencies: define-properties: 1.2.1 + gopd: 1.0.1 globby@10.0.2: dependencies: '@types/glob': 7.2.0 array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 + fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.2.4 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -9925,21 +9768,21 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 gopd@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 got@11.8.6: dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 4.0.6 '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.2 + '@types/responselike': 1.0.3 cacheable-lookup: 5.0.4 cacheable-request: 7.0.4 decompress-response: 6.0.0 @@ -9953,13 +9796,13 @@ snapshots: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 5.0.1 '@types/cacheable-request': 6.0.3 - '@types/responselike': 1.0.2 + '@types/responselike': 1.0.3 cacheable-lookup: 6.1.0 cacheable-request: 7.0.4 decompress-response: 6.0.0 form-data-encoder: 1.7.1 get-stream: 6.0.1 - http2-wrapper: 2.2.0 + http2-wrapper: 2.2.1 lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 2.0.1 @@ -9968,7 +9811,7 @@ snapshots: dependencies: '@sindresorhus/is': 0.7.0 '@types/keyv': 3.1.4 - '@types/responselike': 1.0.2 + '@types/responselike': 1.0.3 cacheable-request: 2.1.4 decompress-response: 3.3.0 duplexer3: 0.1.5 @@ -9988,10 +9831,19 @@ snapshots: graceful-fs@4.2.11: {} - grapheme-splitter@1.0.4: {} - graphemer@1.4.0: {} + graphql-request@4.3.0(graphql@16.9.0): + dependencies: + cross-fetch: 3.1.8 + extract-files: 9.0.0 + form-data: 3.0.1 + graphql: 16.9.0 + transitivePeerDependencies: + - encoding + + graphql@16.9.0: {} + growl@1.10.5: {} handlebars@4.7.8: @@ -10001,7 +9853,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 har-schema@2.0.0: {} @@ -10010,19 +9862,17 @@ snapshots: ajv: 6.12.6 har-schema: 2.0.0 - hard-rejection@2.1.0: {} - - hardhat-abi-exporter@2.10.1(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)): + hardhat-abi-exporter@2.10.1(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): dependencies: '@ethersproject/abi': 5.7.0 delete-empty: 3.0.0 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) - hardhat-contract-sizer@2.10.0(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)): + hardhat-contract-sizer@2.10.0(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): dependencies: chalk: 4.1.2 - cli-table3: 0.6.3 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + cli-table3: 0.6.5 + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) strip-ansi: 6.0.1 hardhat-deploy@0.12.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): @@ -10038,39 +9888,39 @@ snapshots: '@ethersproject/solidity': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wallet': 5.7.0 - '@types/qs': 6.9.9 - axios: 0.21.4(debug@4.3.4) + '@types/qs': 6.9.16 + axios: 0.21.4(debug@4.3.7) chalk: 4.1.2 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) + chokidar: 3.6.0 + debug: 4.3.7(supports-color@8.1.1) enquirer: 2.4.1 ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) form-data: 4.0.0 fs-extra: 10.1.0 match-all: 1.2.6 murmur-128: 0.2.1 - qs: 6.11.2 - zksync-ethers: 5.8.0(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + qs: 6.13.0 + zksync-ethers: 5.9.2(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - hardhat-diamond-abi@3.0.1(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + hardhat-diamond-abi@3.0.1(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - hardhat-gas-reporter@1.0.9(bufferutil@4.0.8)(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + hardhat-gas-reporter@1.0.10(bufferutil@4.0.8)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.27(bufferutil@4.0.8)(utf-8-validate@5.0.10) - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' @@ -10078,31 +9928,39 @@ snapshots: - debug - utf-8-validate - hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10): + hardhat-tracer@3.1.0(bufferutil@4.0.8)(chai@4.5.0)(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10))(utf-8-validate@5.0.10): + dependencies: + chai: 4.5.0 + chalk: 4.1.2 + debug: 4.3.7(supports-color@8.1.1) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + semver: 7.6.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/ethereumjs-block': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-blockchain': 7.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-common': 4.0.2 - '@nomicfoundation/ethereumjs-evm': 2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-rlp': 5.0.2 - '@nomicfoundation/ethereumjs-statemanager': 2.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-trie': 6.0.2 - '@nomicfoundation/ethereumjs-tx': 5.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/ethereumjs-util': 9.0.2 - '@nomicfoundation/ethereumjs-vm': 7.0.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@nomicfoundation/solidity-analyzer': 0.1.1 + '@nomicfoundation/edr': 0.5.2 + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-tx': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + '@nomicfoundation/solidity-analyzer': 0.1.2 '@sentry/node': 5.30.0 - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.6 '@types/lru-cache': 5.1.1 adm-zip: 0.4.16 aggregate-error: 3.1.0 ansi-escapes: 4.3.2 + boxen: 5.1.2 chalk: 2.4.2 - chokidar: 3.5.3 + chokidar: 4.0.1 ci-info: 2.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) enquirer: 2.4.1 env-paths: 2.2.1 ethereum-cryptography: 1.2.0 @@ -10111,28 +9969,30 @@ snapshots: fp-ts: 1.19.3 fs-extra: 7.0.1 glob: 7.2.0 - immutable: 4.3.4 + immutable: 4.3.7 io-ts: 1.10.4 + json-stream-stringify: 3.1.4 keccak: 3.0.4 lodash: 4.17.21 mnemonist: 0.38.5 - mocha: 10.2.0 + mocha: 10.7.3 p-map: 4.0.0 raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.1 - solc: 0.7.3(debug@4.3.4) + solc: 0.8.26(debug@4.3.7) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 tsort: 0.0.1 - undici: 5.26.4 + undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: - ts-node: 10.9.1(@types/node@17.0.45)(typescript@5.2.2) - typescript: 5.2.2 + ts-node: 10.9.2(@types/node@17.0.45)(typescript@5.6.2) + typescript: 5.6.2 transitivePeerDependencies: - bufferutil + - c-kzg - supports-color - utf-8-validate @@ -10144,11 +10004,11 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.1: + has-property-descriptors@1.0.2: dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 - has-proto@1.0.1: {} + has-proto@1.0.3: {} has-symbol-support-x@1.4.2: {} @@ -10158,12 +10018,10 @@ snapshots: dependencies: has-symbol-support-x: 1.4.2 - has-tostringtag@1.0.0: + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 - has@1.0.4: {} - hash-base@3.1.0: dependencies: inherits: 2.0.4 @@ -10182,7 +10040,7 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - hasown@2.0.0: + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -10196,7 +10054,7 @@ snapshots: header-case@2.0.4: dependencies: capital-case: 1.0.4 - tslib: 2.6.2 + tslib: 2.7.0 heap@0.2.7: {} @@ -10212,7 +10070,7 @@ snapshots: hosted-git-info@2.8.9: {} - htmlparser2@8.0.2: + htmlparser2@9.1.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -10255,7 +10113,7 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - http2-wrapper@2.2.0: + http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 @@ -10263,33 +10121,33 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color human-id@1.0.2: {} - human-signals@2.1.0: {} - - human-signals@4.3.1: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + idna-uts46-hx@2.3.1: dependencies: punycode: 2.1.0 ieee754@1.2.1: {} - ignore@5.2.4: {} + ignore@5.3.2: {} immediate@3.2.3: {} immediate@3.3.0: {} - immutable@4.3.4: {} + immutable@4.3.7: {} import-fresh@3.3.0: dependencies: @@ -10311,11 +10169,11 @@ snapshots: ini@1.3.8: {} - internal-slot@1.0.6: + internal-slot@1.0.7: dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 interpret@1.4.0: {} @@ -10334,20 +10192,19 @@ snapshots: is-arguments@1.1.1: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: + is-array-buffer@3.0.4: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-arrayish@0.2.1: {} is-async-function@2.0.0: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-bigint@1.0.4: dependencies: @@ -10355,38 +10212,34 @@ snapshots: is-binary-path@2.1.0: dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-buffer@2.0.5: {} is-callable@1.2.7: {} - is-ci@3.0.1: + is-core-module@2.15.1: dependencies: - ci-info: 3.9.0 + hasown: 2.0.2 - is-core-module@2.13.1: + is-data-view@1.0.1: dependencies: - hasown: 2.0.0 + is-typed-array: 1.1.13 is-date-object@1.0.5: dependencies: - has-tostringtag: 1.0.0 - - is-docker@2.2.1: {} - - is-docker@3.0.0: {} + has-tostringtag: 1.0.2 is-extglob@2.1.1: {} is-finalizationregistry@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-fullwidth-code-point@1.0.0: dependencies: @@ -10400,7 +10253,7 @@ snapshots: is-generator-function@1.0.10: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-glob@4.0.3: dependencies: @@ -10408,10 +10261,6 @@ snapshots: is-hex-prefixed@1.0.0: {} - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-installed-globally@0.2.0: dependencies: global-dirs: 0.1.1 @@ -10421,15 +10270,15 @@ snapshots: dependencies: lower-case: 1.1.4 - is-map@2.0.2: {} + is-map@2.0.3: {} is-natural-number@4.0.1: {} - is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -10447,26 +10296,22 @@ snapshots: is-regex@1.1.4: dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 is-retry-allowed@1.2.0: {} - is-set@2.0.2: {} + is-set@2.0.3: {} - is-shared-array-buffer@1.0.2: + is-shared-array-buffer@1.0.3: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 is-stream@1.1.0: {} - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - is-string@1.0.7: dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-subdir@1.2.0: dependencies: @@ -10476,9 +10321,9 @@ snapshots: dependencies: has-symbols: 1.0.3 - is-typed-array@1.1.12: + is-typed-array@1.1.13: dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 is-typedarray@1.0.0: {} @@ -10490,23 +10335,19 @@ snapshots: is-utf8@0.2.1: {} - is-weakmap@2.0.1: {} + is-weakmap@2.0.2: {} is-weakref@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 - is-weakset@2.0.2: + is-weakset@2.0.3: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 is-windows@1.0.2: {} - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - isarray@0.0.1: {} isarray@1.0.0: {} @@ -10515,6 +10356,13 @@ snapshots: isexe@2.0.0: {} + isomorphic-unfetch@3.1.0: + dependencies: + node-fetch: 2.7.0 + unfetch: 4.2.0 + transitivePeerDependencies: + - encoding + isstream@0.1.2: {} isurl@1.0.0: @@ -10525,14 +10373,10 @@ snapshots: iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 - - js-sdsl@4.4.2: {} - - js-sha3@0.5.5: {} + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 js-sha3@0.5.7: {} @@ -10572,6 +10416,8 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stream-stringify@3.1.4: {} + json-stringify-safe@5.0.1: {} json5@1.0.2: @@ -10590,7 +10436,7 @@ snapshots: jsonfile@6.1.0: dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 @@ -10605,15 +10451,15 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 + object.assign: 4.1.5 + object.values: 1.2.0 keccak@3.0.4: dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.6.1 + node-gyp-build: 4.8.2 readable-stream: 3.6.2 keyv@3.0.0: @@ -10630,13 +10476,11 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - kleur@4.1.5: {} + language-subtag-registry@0.3.23: {} - language-subtag-registry@0.3.22: {} - - language-tags@1.0.5: + language-tags@1.0.9: dependencies: - language-subtag-registry: 0.3.22 + language-subtag-registry: 0.3.23 lcid@1.0.0: dependencies: @@ -10679,13 +10523,6 @@ snapshots: encoding-down: 5.0.4 levelup: 3.1.1 - level-supports@4.0.1: {} - - level-transcoder@1.0.1: - dependencies: - buffer: 6.0.3 - module-error: 1.0.2 - level-ws@0.0.0: dependencies: readable-stream: 1.0.34 @@ -10697,11 +10534,6 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - level@8.0.0: - dependencies: - browser-level: 1.0.1 - classic-level: 1.3.0 - levelup@1.3.9: dependencies: deferred-leveldown: 1.2.2 @@ -10739,13 +10571,6 @@ snapshots: pinkie-promise: 2.0.1 strip-bom: 2.0.0 - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -10768,8 +10593,6 @@ snapshots: lodash.camelcase@4.3.0: {} - lodash.flatten@4.4.0: {} - lodash.merge@4.6.2: {} lodash.startcase@4.4.0: {} @@ -10803,7 +10626,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 lowercase-keys@1.0.0: {} @@ -10822,10 +10645,6 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - lru_map@0.3.3: {} ltgt@2.2.1: {} @@ -10836,16 +10655,10 @@ snapshots: make-error@1.3.6: {} - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - markdown-table@1.1.3: {} match-all@1.2.6: {} - mcl-wasm@0.7.9: {} - md5.js@1.3.5: dependencies: hash-base: 3.1.0 @@ -10872,31 +10685,9 @@ snapshots: ltgt: 2.2.1 safe-buffer: 5.1.2 - memory-level@1.0.0: - dependencies: - abstract-level: 1.0.3 - functional-red-black-tree: 1.0.1 - module-error: 1.0.2 - memorystream@0.3.1: {} - meow@6.1.1: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 2.5.0 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.13.1 - yargs-parser: 18.1.3 - - merge-descriptors@1.0.1: {} - - merge-stream@2.0.0: {} + merge-descriptors@1.0.3: {} merge2@1.4.1: {} @@ -10925,9 +10716,9 @@ snapshots: micro-ftch@0.3.1: {} - micromatch@4.0.5: + micromatch@4.0.8: dependencies: - braces: 3.0.2 + braces: 3.0.3 picomatch: 2.3.1 miller-rabin@4.0.1: @@ -10937,16 +10728,14 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 mime@1.6.0: {} - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - mimic-response@1.0.1: {} mimic-response@3.1.0: {} @@ -10955,8 +10744,6 @@ snapshots: dependencies: dom-walk: 0.1.2 - min-indent@1.0.1: {} - minimalistic-assert@1.0.1: {} minimalistic-crypto-utils@1.0.1: {} @@ -10969,19 +10756,17 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.0.1: + minimatch@5.1.6: dependencies: brace-expansion: 2.0.1 - minimatch@5.1.6: + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - minimist-options@4.1.0: + minimatch@9.0.5: dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 + brace-expansion: 2.0.1 minimist@1.2.8: {} @@ -10994,8 +10779,6 @@ snapshots: dependencies: minipass: 2.9.0 - mixme@0.5.10: {} - mkdirp-promise@5.0.1: dependencies: mkdirp: 3.0.1 @@ -11016,28 +10799,27 @@ snapshots: dependencies: obliterator: 2.0.4 - mocha@10.2.0: + mocha@10.7.3: dependencies: - ansi-colors: 4.1.1 + ansi-colors: 4.1.3 browser-stdout: 1.3.1 - chokidar: 3.5.3 - debug: 4.3.4(supports-color@8.1.1) - diff: 5.0.0 + chokidar: 3.6.0 + debug: 4.3.7(supports-color@8.1.1) + diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 7.2.0 + glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 - minimatch: 5.0.1 + minimatch: 5.1.6 ms: 2.1.3 - nanoid: 3.3.3 - serialize-javascript: 6.0.0 + serialize-javascript: 6.0.2 strip-json-comments: 3.1.1 supports-color: 8.1.1 - workerpool: 6.2.1 + workerpool: 6.5.1 yargs: 16.2.0 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 yargs-unparser: 2.0.0 mocha@7.2.0: @@ -11069,24 +10851,24 @@ snapshots: mock-fs@4.14.0: {} - module-error@1.0.2: {} + mri@1.2.0: {} + + mrmime@1.0.1: {} ms@2.0.0: {} ms@2.1.1: {} - ms@2.1.2: {} - ms@2.1.3: {} multibase@0.6.1: dependencies: - base-x: 3.0.9 + base-x: 3.0.10 buffer: 5.7.1 multibase@0.7.0: dependencies: - base-x: 3.0.9 + base-x: 3.0.10 buffer: 5.7.1 multicodec@0.5.7: @@ -11114,10 +10896,6 @@ snapshots: nano-json-stream-parser@0.1.2: {} - nanoid@3.3.3: {} - - napi-macros@2.2.2: {} - natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -11133,7 +10911,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.7.0 node-addon-api@2.0.2: {} @@ -11143,16 +10921,16 @@ snapshots: node-environment-flags@1.0.6: dependencies: - object.getownpropertydescriptors: 2.1.7 + object.getownpropertydescriptors: 2.1.8 semver: 5.7.2 node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-gyp-build@4.6.1: {} + node-gyp-build@4.8.2: {} - node-releases@2.0.13: {} + node-releases@2.0.18: {} nofilter@1.0.4: {} @@ -11184,14 +10962,6 @@ snapshots: config-chain: 1.1.13 pify: 3.0.0 - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.1.0: - dependencies: - path-key: 4.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -11207,7 +10977,12 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.2: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 object-keys@0.4.0: {} @@ -11220,50 +10995,47 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.assign@4.1.4: + object.assign@4.1.5: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - object.entries@1.1.7: - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - - object.fromentries@2.0.7: + object.entries@1.1.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 - object.getownpropertydescriptors@2.1.7: + object.fromentries@2.0.8: dependencies: - array.prototype.reduce: 1.0.6 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - safe-array-concat: 1.0.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - object.groupby@1.0.1: + object.getownpropertydescriptors@2.1.8: dependencies: - call-bind: 1.0.5 + array.prototype.reduce: 1.0.7 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + gopd: 1.0.1 + safe-array-concat: 1.1.2 - object.hasown@1.1.3: + object.groupby@1.0.3: dependencies: + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 - object.values@1.1.7: + object.values@1.2.0: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 obliterator@2.0.4: {} @@ -11279,21 +11051,6 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - open@9.1.0: - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - optionator@0.8.3: dependencies: deep-is: 0.1.4 @@ -11303,14 +11060,14 @@ snapshots: type-check: 0.3.2 word-wrap: 1.2.5 - optionator@0.9.3: + optionator@0.9.4: 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 + word-wrap: 1.2.5 ordinal@1.0.3: {} @@ -11382,6 +11139,8 @@ snapshots: p-try@2.2.0: {} + package-manager-detector@0.2.0: {} + pako@1.0.11: {} param-case@2.1.1: @@ -11391,7 +11150,7 @@ snapshots: param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 parent-module@1.0.1: dependencies: @@ -11407,7 +11166,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -11417,6 +11176,10 @@ snapshots: domhandler: 5.0.3 parse5: 7.1.2 + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.1.2 + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -11431,7 +11194,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 path-case@2.1.1: dependencies: @@ -11440,7 +11203,7 @@ snapshots: path-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 path-exists@2.1.0: dependencies: @@ -11456,13 +11219,11 @@ snapshots: path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-starts-with@2.0.1: {} - path-to-regexp@0.1.7: {} + path-to-regexp@0.1.10: {} path-type@1.1.0: dependencies: @@ -11486,7 +11247,7 @@ snapshots: performance-now@2.1.0: {} - picocolors@1.0.0: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -11502,22 +11263,13 @@ snapshots: pinkie@2.0.4: {} - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - pkg-dir@5.0.0: dependencies: find-up: 5.0.0 pluralize@8.0.0: {} - preferred-pm@3.1.2: - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 + possible-typed-array-names@1.0.0: {} prelude-ls@1.1.2: {} @@ -11529,17 +11281,14 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-solidity@1.1.3(prettier@3.0.3): + prettier-plugin-solidity@1.4.1(prettier@2.8.8): dependencies: - '@solidity-parser/parser': 0.16.1 - prettier: 3.0.3 - semver: 7.5.4 - solidity-comments-extractor: 0.0.7 + '@solidity-parser/parser': 0.18.0 + prettier: 2.8.8 + semver: 7.6.3 prettier@2.8.8: {} - prettier@3.0.3: {} - process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -11554,6 +11303,8 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + property-expr@2.0.6: {} + proto-list@1.2.4: {} proxy-addr@2.0.7: @@ -11569,24 +11320,20 @@ snapshots: psl@1.9.0: {} - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 punycode@2.1.0: {} - punycode@2.3.0: {} + punycode@2.3.1: {} pure-rand@5.0.5: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.4 - - qs@6.11.2: + qs@6.13.0: dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 qs@6.5.3: {} @@ -11598,8 +11345,6 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@4.0.1: {} - quick-lru@5.1.1: {} randombytes@2.1.0: @@ -11608,13 +11353,6 @@ snapshots: range-parser@1.2.1: {} - raw-body@2.5.1: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - raw-body@2.5.2: dependencies: bytes: 3.1.2 @@ -11629,25 +11367,12 @@ snapshots: find-up: 1.1.2 read-pkg: 1.1.0 - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - read-pkg@1.1.0: dependencies: load-json-file: 1.1.0 normalize-package-data: 2.5.0 path-type: 1.1.0 - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -11693,6 +11418,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.1: {} + rechoir@0.6.2: dependencies: resolve: 1.22.8 @@ -11701,29 +11428,26 @@ snapshots: dependencies: minimatch: 3.1.2 - redent@3.0.0: - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - reduce-flatten@2.0.0: {} - reflect.getprototypeof@1.0.4: + reflect.getprototypeof@1.0.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 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 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 - regenerator-runtime@0.14.0: {} + regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.1: + regexp.prototype.flags@1.5.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 regexpp@3.2.0: {} @@ -11738,7 +11462,7 @@ snapshots: request@2.88.2: dependencies: aws-sign2: 0.7.0 - aws4: 1.12.0 + aws4: 1.13.2 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -11784,13 +11508,13 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.13.1 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -11808,10 +11532,6 @@ snapshots: dependencies: glob: 7.2.3 - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - ripemd160-min@0.0.6: {} ripemd160@2.0.2: @@ -11823,24 +11543,16 @@ snapshots: dependencies: bn.js: 5.2.1 - run-applescript@5.0.0: - dependencies: - execa: 5.1.1 - - run-parallel-limit@1.1.0: - dependencies: - queue-microtask: 1.2.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 rustbn.js@0.2.0: {} - safe-array-concat@1.0.1: + safe-array-concat@1.1.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 @@ -11848,10 +11560,10 @@ snapshots: safe-buffer@5.2.1: {} - safe-regex-test@1.0.0: + safe-regex-test@1.0.3: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 safer-buffer@2.1.2: {} @@ -11879,9 +11591,9 @@ snapshots: secp256k1@4.0.3: dependencies: - elliptic: 6.5.4 + elliptic: 6.5.7 node-addon-api: 2.0.2 - node-gyp-build: 4.6.1 + node-gyp-build: 4.8.2 seek-bzip@1.0.6: dependencies: @@ -11895,11 +11607,9 @@ snapshots: semver@6.3.1: {} - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 + semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -11925,27 +11635,27 @@ snapshots: sentence-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 upper-case-first: 2.0.2 - serialize-javascript@6.0.0: + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color servify@0.1.12: dependencies: - body-parser: 1.20.2 + body-parser: 1.20.3 cors: 2.8.5 - express: 4.18.2 + express: 4.21.0 request: 2.88.2 xhr: 2.6.0 transitivePeerDependencies: @@ -11953,18 +11663,21 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.1.1: + set-function-length@1.2.2: dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 - set-function-name@2.0.1: + set-function-name@2.0.2: dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 setimmediate@1.0.4: {} @@ -12004,11 +11717,12 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 - side-channel@1.0.4: + side-channel@1.0.6: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 signal-exit@3.0.7: {} @@ -12028,15 +11742,6 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 - smartwrap@2.0.2: - dependencies: - array.prototype.flat: 1.3.2 - breakword: 1.0.6 - grapheme-splitter: 1.0.4 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 15.4.1 - snake-case@2.1.0: dependencies: no-case: 2.3.2 @@ -12044,7 +11749,7 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 solc@0.4.26: dependencies: @@ -12065,81 +11770,72 @@ snapshots: semver: 5.7.2 tmp: 0.0.33 - solc@0.7.3(debug@4.3.4): + solc@0.8.26(debug@4.3.7): dependencies: command-exists: 1.2.9 - commander: 3.0.2 - follow-redirects: 1.15.3(debug@4.3.4) - fs-extra: 0.30.0 + commander: 8.3.0 + follow-redirects: 1.15.9(debug@4.3.7) js-sha3: 0.8.0 memorystream: 0.3.1 - require-from-string: 2.0.2 semver: 5.7.2 tmp: 0.0.33 transitivePeerDependencies: - debug - solhint@3.6.2(typescript@5.2.2): + solhint@3.6.2(typescript@5.6.2): dependencies: - '@solidity-parser/parser': 0.16.1 + '@solidity-parser/parser': 0.16.2 ajv: 6.12.6 - antlr4: 4.13.1 + antlr4: 4.13.2 ast-parents: 0.0.1 chalk: 4.1.2 commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.2.2) + cosmiconfig: 8.3.6(typescript@5.6.2) fast-diff: 1.3.0 glob: 8.1.0 - ignore: 5.2.4 + ignore: 5.3.2 js-yaml: 4.1.0 lodash: 4.17.21 pluralize: 8.0.0 - semver: 7.5.4 + semver: 7.6.3 strip-ansi: 6.0.1 - table: 6.8.1 + table: 6.8.2 text-table: 0.2.0 optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: - typescript - solidity-ast@0.4.52: - dependencies: - array.prototype.findlast: 1.2.3 - - solidity-comments-extractor@0.0.7: {} + solidity-ast@0.4.59: {} - solidity-coverage@0.8.5(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)): + solidity-coverage@0.8.13(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): dependencies: '@ethersproject/abi': 5.7.0 - '@solidity-parser/parser': 0.16.1 + '@solidity-parser/parser': 0.18.0 chalk: 2.4.2 death: 1.1.0 - detect-port: 1.5.1 difflib: 0.2.4 fs-extra: 8.1.0 ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) jsonschema: 1.4.1 lodash: 4.17.21 - mocha: 10.2.0 + mocha: 10.7.3 node-emoji: 1.11.0 pify: 4.0.1 recursive-readdir: 2.2.3 sc-istanbul: 0.4.6 - semver: 7.5.4 + semver: 7.6.3 shelljs: 0.8.5 - web3-utils: 1.10.3 - transitivePeerDependencies: - - supports-color + web3-utils: 1.10.4 - solidity-docgen@0.6.0-beta.36(hardhat@2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10)): + solidity-docgen@0.6.0-beta.36(hardhat@2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10)): dependencies: handlebars: 4.7.8 - hardhat: 2.18.2(bufferutil@4.0.8)(ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2))(typescript@5.2.2)(utf-8-validate@5.0.10) - solidity-ast: 0.4.52 + hardhat: 2.22.11(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2))(typescript@5.6.2)(utf-8-validate@5.0.10) + solidity-ast: 0.4.59 sort-keys-length@1.0.1: dependencies: @@ -12173,16 +11869,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.20 - spdx-exceptions@2.3.0: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.16: {} + spdx-license-ids@3.0.20: {} sprintf-js@1.0.3: {} @@ -12204,9 +11900,9 @@ snapshots: statuses@2.0.1: {} - stream-transform@2.1.3: + stop-iteration-iterator@1.0.0: dependencies: - mixme: 0.5.10 + internal-slot: 1.0.7 strict-uri-encode@1.1.0: {} @@ -12235,35 +11931,49 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.matchall@4.0.10: + string.prototype.includes@2.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + + string.prototype.matchall@4.0.11: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 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 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 - string.prototype.trim@1.2.8: + string.prototype.trim@1.2.9: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.7: + string.prototype.trimend@1.0.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 - string.prototype.trimstart@1.0.7: + string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 string_decoder@0.10.31: {} @@ -12301,20 +12011,12 @@ snapshots: dependencies: is-natural-number: 4.0.1 - strip-final-newline@2.0.0: {} - - strip-final-newline@3.0.0: {} - strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed: 1.0.0 strip-indent@2.0.0: {} - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} @@ -12378,10 +12080,10 @@ snapshots: dependencies: get-port: 3.2.0 - synckit@0.8.5: + synckit@0.9.1: dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.2 + '@pkgr/core': 0.1.1 + tslib: 2.7.0 table-layout@1.0.2: dependencies: @@ -12390,9 +12092,9 @@ snapshots: typical: 5.2.0 wordwrapjs: 4.0.1 - table@6.8.1: + table@6.8.2: dependencies: - ajv: 8.12.0 + ajv: 8.17.1 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -12429,26 +12131,26 @@ snapshots: '@types/concat-stream': 1.6.1 '@types/form-data': 0.0.33 '@types/node': 8.10.66 - '@types/qs': 6.9.9 + '@types/qs': 6.9.16 caseless: 0.12.0 concat-stream: 1.6.2 form-data: 2.5.1 http-basic: 8.1.3 http-response-object: 3.0.2 promise: 8.3.0 - qs: 6.11.2 + qs: 6.13.0 through@2.3.8: {} timed-out@4.0.1: {} + tiny-case@1.0.3: {} + title-case@2.1.1: dependencies: no-case: 2.3.2 upper-case: 1.1.3 - titleize@3.0.0: {} - tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -12463,22 +12165,22 @@ snapshots: toidentifier@1.0.1: {} + toposort@2.0.2: {} + tough-cookie@2.5.0: dependencies: psl: 1.9.0 - punycode: 2.3.0 + punycode: 2.3.1 tr46@0.0.3: {} - trim-newlines@3.0.1: {} - trim-repeated@1.0.0: dependencies: escape-string-regexp: 1.0.5 - ts-api-utils@1.0.3(typescript@5.2.2): + ts-api-utils@1.3.0(typescript@5.6.2): dependencies: - typescript: 5.2.2 + typescript: 5.6.2 ts-command-line-args@2.5.1: dependencies: @@ -12489,29 +12191,29 @@ snapshots: ts-essentials@2.0.12: {} - ts-essentials@7.0.3(typescript@5.2.2): + ts-essentials@7.0.3(typescript@5.6.2): dependencies: - typescript: 5.2.2 + typescript: 5.6.2 - ts-node@10.9.1(@types/node@17.0.45)(typescript@5.2.2): + ts-node@10.9.2(@types/node@17.0.45)(typescript@5.6.2): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 17.0.45 - acorn: 8.10.0 - acorn-walk: 8.2.0 + acorn: 8.12.1 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.2.2 + typescript: 5.6.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfig-paths@3.14.2: + tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -12520,24 +12222,14 @@ snapshots: tslib@1.14.1: {} - tslib@2.6.2: {} + tslib@2.7.0: {} tsort@0.0.1: {} - tsutils@3.21.0(typescript@5.2.2): + tsutils@3.21.0(typescript@5.6.2): dependencies: tslib: 1.14.1 - typescript: 5.2.2 - - tty-table@4.2.3: - dependencies: - chalk: 4.1.2 - csv: 5.5.3 - kleur: 4.1.5 - smartwrap: 2.0.2 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - yargs: 17.7.2 + typescript: 5.6.2 tunnel-agent@0.6.0: dependencies: @@ -12557,33 +12249,27 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - - type-fest@0.13.1: {} + type-detect@4.1.0: {} type-fest@0.20.2: {} type-fest@0.21.3: {} - type-fest@0.6.0: {} - type-fest@0.7.1: {} - type-fest@0.8.1: {} + type-fest@2.19.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - type@1.2.0: {} - - type@2.7.2: {} + type@2.7.3: {} - typechain@8.3.2(typescript@5.2.2): + typechain@8.3.2(typescript@5.6.2): dependencies: '@types/prettier': 2.7.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.7(supports-color@8.1.1) fs-extra: 7.0.1 glob: 7.1.7 js-sha3: 0.8.0 @@ -12591,37 +12277,42 @@ snapshots: mkdirp: 1.0.4 prettier: 2.8.8 ts-command-line-args: 2.5.1 - ts-essentials: 7.0.3(typescript@5.2.2) - typescript: 5.2.2 + ts-essentials: 7.0.3(typescript@5.6.2) + typescript: 5.6.2 transitivePeerDependencies: - supports-color - typed-array-buffer@1.0.0: + typed-array-buffer@1.0.2: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 - typed-array-byte-length@1.0.0: + typed-array-byte-length@1.0.1: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.0: + typed-array-byte-offset@1.0.2: dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 - typed-array-length@1.0.4: + typed-array-length@1.0.6: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 typedarray-to-buffer@3.1.5: dependencies: @@ -12629,20 +12320,20 @@ snapshots: typedarray@0.0.6: {} - typescript@5.2.2: {} + typescript@5.6.2: {} typical@4.0.0: {} typical@5.2.0: {} - uglify-js@3.17.4: + uglify-js@3.19.3: optional: true ultron@1.1.1: {} unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -12652,25 +12343,27 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - underscore@1.13.6: {} + underscore@1.13.7: {} - undici@5.26.4: + undici@5.28.4: dependencies: - '@fastify/busboy': 2.0.0 + '@fastify/busboy': 2.1.1 + + undici@6.19.8: {} + + unfetch@4.2.0: {} universalify@0.1.2: {} - universalify@2.0.0: {} + universalify@2.0.1: {} unpipe@1.0.0: {} - untildify@4.0.0: {} - - update-browserslist-db@1.0.13(browserslist@4.22.1): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 upper-case-first@1.1.2: dependencies: @@ -12678,17 +12371,17 @@ snapshots: upper-case-first@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 upper-case@1.1.3: {} upper-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 uri-js@4.4.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 url-parse-lax@3.0.0: dependencies: @@ -12700,7 +12393,7 @@ snapshots: utf-8-validate@5.0.10: dependencies: - node-gyp-build: 4.6.1 + node-gyp-build: 4.8.2 utf8@3.0.0: {} @@ -12708,21 +12401,21 @@ snapshots: util.promisify@1.1.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 for-each: 0.3.3 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - object.getownpropertydescriptors: 2.1.7 - safe-array-concat: 1.0.1 + object.getownpropertydescriptors: 2.1.8 + safe-array-concat: 1.1.2 util@0.12.5: dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.12 - which-typed-array: 1.1.13 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 utils-merge@1.0.1: {} @@ -12751,9 +12444,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - wcwidth@1.0.1: + web-encoding@1.1.5: dependencies: - defaults: 1.0.4 + util: 0.12.5 + optionalDependencies: + '@zxing/text-encoding': 0.9.0 + + web-streams-polyfill@3.3.3: {} web3-bzz@1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: @@ -12765,7 +12462,7 @@ snapshots: - supports-color - utf-8-validate - web3-bzz@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + web3-bzz@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@types/node': 12.20.55 got: 12.1.0 @@ -12780,10 +12477,10 @@ snapshots: web3-eth-iban: 1.10.0 web3-utils: 1.10.0 - web3-core-helpers@1.10.3: + web3-core-helpers@1.10.4: dependencies: - web3-eth-iban: 1.10.3 - web3-utils: 1.10.3 + web3-eth-iban: 1.10.4 + web3-utils: 1.10.4 web3-core-method@1.10.0: dependencies: @@ -12793,19 +12490,19 @@ snapshots: web3-core-subscriptions: 1.10.0 web3-utils: 1.10.0 - web3-core-method@1.10.3: + web3-core-method@1.10.4: dependencies: '@ethersproject/transactions': 5.7.0 - web3-core-helpers: 1.10.3 - web3-core-promievent: 1.10.3 - web3-core-subscriptions: 1.10.3 - web3-utils: 1.10.3 + web3-core-helpers: 1.10.4 + web3-core-promievent: 1.10.4 + web3-core-subscriptions: 1.10.4 + web3-utils: 1.10.4 web3-core-promievent@1.10.0: dependencies: eventemitter3: 4.0.4 - web3-core-promievent@1.10.3: + web3-core-promievent@1.10.4: dependencies: eventemitter3: 4.0.4 @@ -12820,13 +12517,13 @@ snapshots: - encoding - supports-color - web3-core-requestmanager@1.10.3: + web3-core-requestmanager@1.10.4: dependencies: util: 0.12.5 - web3-core-helpers: 1.10.3 - web3-providers-http: 1.10.3 - web3-providers-ipc: 1.10.3 - web3-providers-ws: 1.10.3 + web3-core-helpers: 1.10.4 + web3-providers-http: 1.10.4 + web3-providers-ipc: 1.10.4 + web3-providers-ws: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -12836,14 +12533,14 @@ snapshots: eventemitter3: 4.0.4 web3-core-helpers: 1.10.0 - web3-core-subscriptions@1.10.3: + web3-core-subscriptions@1.10.4: dependencies: eventemitter3: 4.0.4 - web3-core-helpers: 1.10.3 + web3-core-helpers: 1.10.4 web3-core@1.10.0: dependencies: - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.6 '@types/node': 12.20.55 bignumber.js: 9.1.2 web3-core-helpers: 1.10.0 @@ -12854,15 +12551,15 @@ snapshots: - encoding - supports-color - web3-core@1.10.3: + web3-core@1.10.4: dependencies: - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.6 '@types/node': 12.20.55 bignumber.js: 9.1.2 - web3-core-helpers: 1.10.3 - web3-core-method: 1.10.3 - web3-core-requestmanager: 1.10.3 - web3-utils: 1.10.3 + web3-core-helpers: 1.10.4 + web3-core-method: 1.10.4 + web3-core-requestmanager: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -12872,10 +12569,10 @@ snapshots: '@ethersproject/abi': 5.7.0 web3-utils: 1.10.0 - web3-eth-abi@1.10.3: + web3-eth-abi@1.10.4: dependencies: '@ethersproject/abi': 5.7.0 - web3-utils: 1.10.3 + web3-utils: 1.10.4 web3-eth-accounts@1.10.0: dependencies: @@ -12893,7 +12590,7 @@ snapshots: - encoding - supports-color - web3-eth-accounts@1.10.3: + web3-eth-accounts@1.10.4: dependencies: '@ethereumjs/common': 2.6.5 '@ethereumjs/tx': 3.5.2 @@ -12901,17 +12598,17 @@ snapshots: eth-lib: 0.2.8 scrypt-js: 3.0.1 uuid: 9.0.1 - web3-core: 1.10.3 - web3-core-helpers: 1.10.3 - web3-core-method: 1.10.3 - web3-utils: 1.10.3 + web3-core: 1.10.4 + web3-core-helpers: 1.10.4 + web3-core-method: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color web3-eth-contract@1.10.0: dependencies: - '@types/bn.js': 5.1.3 + '@types/bn.js': 5.1.6 web3-core: 1.10.0 web3-core-helpers: 1.10.0 web3-core-method: 1.10.0 @@ -12923,16 +12620,16 @@ snapshots: - encoding - supports-color - web3-eth-contract@1.10.3: + web3-eth-contract@1.10.4: dependencies: - '@types/bn.js': 5.1.3 - web3-core: 1.10.3 - web3-core-helpers: 1.10.3 - web3-core-method: 1.10.3 - web3-core-promievent: 1.10.3 - web3-core-subscriptions: 1.10.3 - web3-eth-abi: 1.10.3 - web3-utils: 1.10.3 + '@types/bn.js': 5.1.6 + web3-core: 1.10.4 + web3-core-helpers: 1.10.4 + web3-core-method: 1.10.4 + web3-core-promievent: 1.10.4 + web3-core-subscriptions: 1.10.4 + web3-eth-abi: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -12951,16 +12648,16 @@ snapshots: - encoding - supports-color - web3-eth-ens@1.10.3: + web3-eth-ens@1.10.4: dependencies: content-hash: 2.5.2 eth-ens-namehash: 2.0.8 - web3-core: 1.10.3 - web3-core-helpers: 1.10.3 - web3-core-promievent: 1.10.3 - web3-eth-abi: 1.10.3 - web3-eth-contract: 1.10.3 - web3-utils: 1.10.3 + web3-core: 1.10.4 + web3-core-helpers: 1.10.4 + web3-core-promievent: 1.10.4 + web3-eth-abi: 1.10.4 + web3-eth-contract: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -12970,10 +12667,10 @@ snapshots: bn.js: 5.2.1 web3-utils: 1.10.0 - web3-eth-iban@1.10.3: + web3-eth-iban@1.10.4: dependencies: bn.js: 5.2.1 - web3-utils: 1.10.3 + web3-utils: 1.10.4 web3-eth-personal@1.10.0: dependencies: @@ -12987,14 +12684,14 @@ snapshots: - encoding - supports-color - web3-eth-personal@1.10.3: + web3-eth-personal@1.10.4: dependencies: '@types/node': 12.20.55 - web3-core: 1.10.3 - web3-core-helpers: 1.10.3 - web3-core-method: 1.10.3 - web3-net: 1.10.3 - web3-utils: 1.10.3 + web3-core: 1.10.4 + web3-core-helpers: 1.10.4 + web3-core-method: 1.10.4 + web3-net: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -13017,20 +12714,20 @@ snapshots: - encoding - supports-color - web3-eth@1.10.3: - dependencies: - web3-core: 1.10.3 - web3-core-helpers: 1.10.3 - web3-core-method: 1.10.3 - web3-core-subscriptions: 1.10.3 - web3-eth-abi: 1.10.3 - web3-eth-accounts: 1.10.3 - web3-eth-contract: 1.10.3 - web3-eth-ens: 1.10.3 - web3-eth-iban: 1.10.3 - web3-eth-personal: 1.10.3 - web3-net: 1.10.3 - web3-utils: 1.10.3 + web3-eth@1.10.4: + dependencies: + web3-core: 1.10.4 + web3-core-helpers: 1.10.4 + web3-core-method: 1.10.4 + web3-core-subscriptions: 1.10.4 + web3-eth-abi: 1.10.4 + web3-eth-accounts: 1.10.4 + web3-eth-contract: 1.10.4 + web3-eth-ens: 1.10.4 + web3-eth-iban: 1.10.4 + web3-eth-personal: 1.10.4 + web3-net: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -13044,11 +12741,11 @@ snapshots: - encoding - supports-color - web3-net@1.10.3: + web3-net@1.10.4: dependencies: - web3-core: 1.10.3 - web3-core-method: 1.10.3 - web3-utils: 1.10.3 + web3-core: 1.10.4 + web3-core-method: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -13062,12 +12759,12 @@ snapshots: transitivePeerDependencies: - encoding - web3-providers-http@1.10.3: + web3-providers-http@1.10.4: dependencies: abortcontroller-polyfill: 1.7.5 cross-fetch: 4.0.0 es6-promise: 4.2.8 - web3-core-helpers: 1.10.3 + web3-core-helpers: 1.10.4 transitivePeerDependencies: - encoding @@ -13076,24 +12773,24 @@ snapshots: oboe: 2.1.5 web3-core-helpers: 1.10.0 - web3-providers-ipc@1.10.3: + web3-providers-ipc@1.10.4: dependencies: oboe: 2.1.5 - web3-core-helpers: 1.10.3 + web3-core-helpers: 1.10.4 web3-providers-ws@1.10.0: dependencies: eventemitter3: 4.0.4 web3-core-helpers: 1.10.0 - websocket: 1.0.34 + websocket: 1.0.35 transitivePeerDependencies: - supports-color - web3-providers-ws@1.10.3: + web3-providers-ws@1.10.4: dependencies: eventemitter3: 4.0.4 - web3-core-helpers: 1.10.3 - websocket: 1.0.34 + web3-core-helpers: 1.10.4 + websocket: 1.0.35 transitivePeerDependencies: - supports-color @@ -13107,12 +12804,12 @@ snapshots: - encoding - supports-color - web3-shh@1.10.3: + web3-shh@1.10.4: dependencies: - web3-core: 1.10.3 - web3-core-method: 1.10.3 - web3-core-subscriptions: 1.10.3 - web3-net: 1.10.3 + web3-core: 1.10.4 + web3-core-method: 1.10.4 + web3-core-subscriptions: 1.10.4 + web3-net: 1.10.4 transitivePeerDependencies: - encoding - supports-color @@ -13120,19 +12817,19 @@ snapshots: web3-utils@1.10.0: dependencies: bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 + ethereum-bloom-filters: 1.2.0 ethereumjs-util: 7.1.5 ethjs-unit: 0.1.6 number-to-bn: 1.7.0 randombytes: 2.1.0 utf8: 3.0.0 - web3-utils@1.10.3: + web3-utils@1.10.4: dependencies: '@ethereumjs/util': 8.1.0 bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 - ethereum-cryptography: 2.1.2 + ethereum-bloom-filters: 1.2.0 + ethereum-cryptography: 2.2.1 ethjs-unit: 0.1.6 number-to-bn: 1.7.0 randombytes: 2.1.0 @@ -13153,15 +12850,15 @@ snapshots: - supports-color - utf-8-validate - web3@1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - web3-bzz: 1.10.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-core: 1.10.3 - web3-eth: 1.10.3 - web3-eth-personal: 1.10.3 - web3-net: 1.10.3 - web3-shh: 1.10.3 - web3-utils: 1.10.3 + web3-bzz: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + web3-core: 1.10.4 + web3-eth: 1.10.4 + web3-eth-personal: 1.10.4 + web3-net: 1.10.4 + web3-shh: 1.10.4 + web3-utils: 1.10.4 transitivePeerDependencies: - bufferutil - encoding @@ -13170,17 +12867,23 @@ snapshots: webidl-conversions@3.0.1: {} - websocket@1.0.34: + websocket@1.0.35: dependencies: bufferutil: 4.0.8 debug: 2.6.9 - es5-ext: 0.10.62 + es5-ext: 0.10.64 typedarray-to-buffer: 3.1.5 utf-8-validate: 5.0.10 yaeti: 0.0.6 transitivePeerDependencies: - supports-color + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -13194,10 +12897,10 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -13206,32 +12909,27 @@ snapshots: 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 + which-collection: 1.0.2 + which-typed-array: 1.1.15 - which-collection@1.0.1: + which-collection@1.0.2: dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 which-module@1.0.0: {} which-module@2.0.1: {} - which-pm@2.0.0: + which-typed-array@1.1.15: dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - - which-typed-array@1.1.13: - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 which@1.3.1: dependencies: @@ -13245,6 +12943,10 @@ snapshots: dependencies: string-width: 2.1.1 + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + window-size@0.2.0: {} word-wrap@1.2.5: {} @@ -13256,7 +12958,7 @@ snapshots: reduce-flatten: 2.0.0 typical: 5.2.0 - workerpool@6.2.1: {} + workerpool@6.5.1: {} wrap-ansi@2.1.0: dependencies: @@ -13269,12 +12971,6 @@ snapshots: string-width: 3.1.0 strip-ansi: 5.2.0 - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -13297,7 +12993,7 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 - ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.8 utf-8-validate: 5.0.10 @@ -13343,26 +13039,17 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yargs-parser@13.1.2: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - yargs-parser@2.4.1: dependencies: camelcase: 3.0.0 lodash.assign: 4.2.0 - yargs-parser@20.2.4: {} - - yargs-parser@21.1.1: {} + yargs-parser@20.2.9: {} yargs-unparser@1.6.0: dependencies: @@ -13390,39 +13077,15 @@ snapshots: y18n: 4.0.3 yargs-parser: 13.1.2 - yargs@15.4.1: - dependencies: - 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 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 + yargs-parser: 20.2.9 yargs@4.8.1: dependencies: @@ -13450,6 +13113,13 @@ snapshots: yocto-queue@0.1.0: {} - zksync-ethers@5.8.0(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + yup@1.4.0: + dependencies: + property-expr: 2.0.6 + tiny-case: 1.0.3 + toposort: 2.0.2 + type-fest: 2.19.0 + + zksync-ethers@5.9.2(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) diff --git a/scripts/getCodeId.ts b/scripts/getCodeId.ts new file mode 100644 index 00000000..bfb6d0ac --- /dev/null +++ b/scripts/getCodeId.ts @@ -0,0 +1,15 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; + +const getCodeIdFromAddress = (hre: HardhatRuntimeEnvironment) => async (address: string) => { + return hre.ethers.utils.keccak256(await hre.ethers.provider.getCode(address)); +}; + +export const getCodeIdFromArtifact = (hre: HardhatRuntimeEnvironment) => async (artifactName: string) => { + const address = (await hre.deployments.get(artifactName)).address; + const code = await hre.ethers.provider.getCode(address); + return hre.ethers.utils.keccak256(code); +}; + +export const getCodeIdFromCode = (hre: HardhatRuntimeEnvironment) => (code: string) => hre.ethers.utils.keccak256(code); + +export default { getCodeIdFromAddress, getCodeIdFromArtifact, getCodeIdFromCode }; diff --git a/scripts/libraries/diamond.js b/scripts/libraries/diamond.js index 37918de7..d40b2f3b 100644 --- a/scripts/libraries/diamond.js +++ b/scripts/libraries/diamond.js @@ -150,7 +150,7 @@ async function deployDiamond(FacetNames, signer, initializer, initializerArgs) { console.log('DiamondCutFacet deployed:', diamondCutFacet.address); } - const Diamond = await ethers.getContractFactory('Diamond', signer); + const Diamond = await ethers.getContractFactory('DiamondCloneable', signer); const diamond = await Diamond.deploy(signer.address, diamondCutFacet.address); await diamond.deployed(); if (require.main === module) { diff --git a/scripts/playbooks/addDistribution.ts b/scripts/playbooks/addDistribution.ts new file mode 100644 index 00000000..3642d240 --- /dev/null +++ b/scripts/playbooks/addDistribution.ts @@ -0,0 +1,45 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { ethers } from 'hardhat'; +import { Signer } from '@ethersproject/abstract-signer'; +import { PeeramidLabsDistributor } from '../../types'; + +export const addDistributionNoChecks = + (hre: HardhatRuntimeEnvironment) => async (distrId: string, signer: Signer, initializer?: string) => { + const { deployments } = hre; + const PeeramidLabsDistributor = await deployments.get('PeeramidLabsDistributor'); + const distributorContract = new ethers.Contract( + PeeramidLabsDistributor.address, + PeeramidLabsDistributor.abi, + signer, + ); + return distributorContract.addDistribution(distrId, initializer ?? ethers.constants.AddressZero); + }; + +export const addDistribution = + (hre: HardhatRuntimeEnvironment) => async (distrId: string, signer: Signer, initializer?: string) => { + const { deployments } = hre; + const PeeramidLabsDistributor = await deployments.get('PeeramidLabsDistributor'); + const distributorContract = new ethers.Contract( + PeeramidLabsDistributor.address, + PeeramidLabsDistributor.abi, + signer, + ) as PeeramidLabsDistributor; + const distributionsLengthBefore = (await distributorContract.getDistributions()).length; + const receipt = await distributorContract['addDistribution(bytes32,address)']( + distrId, + initializer ?? ethers.constants.AddressZero, + ); + + const distributorsId = await distributorContract.getDistributions(); + if (distributorsId.length !== distributionsLengthBefore + 1) + throw new Error( + `Unexpected distribution id increment: got ${distributorsId.length}, expected ${distributionsLengthBefore + 1}`, + ); + return { + receipt, + distributor: distributorContract, + distributorsId, + }; + }; + +export default addDistribution; diff --git a/scripts/playbooks/instantiateMAO.ts b/scripts/playbooks/instantiateMAO.ts new file mode 100644 index 00000000..ac94b70d --- /dev/null +++ b/scripts/playbooks/instantiateMAO.ts @@ -0,0 +1,35 @@ +import { Distributor } from '../../types'; +import { BytesLike } from 'ethers'; +import { Signer } from '@ethersproject/abstract-signer'; + +export const instantiateMAO = async ({ + distributor, + distributorsId, + args, + signer, +}: { + distributor: Distributor; + distributorsId: string; + signer: Signer; + args: BytesLike; +}) => { + (await distributor.connect(signer).instantiate(distributorsId, args)).wait(); + + const filter = distributor.filters.Instantiated(distributorsId); + const evts = await distributor.queryFilter(filter); + if (evts.length === 0) throw new Error('No Instantiated event found'); + if (evts.length > 1) throw new Error('Multiple Instantiated events found'); + const instances = evts[0].args.instances; + + return { + daoAddress: instances[0], + govToken: instances[1], + govTokenAccessManager: instances[2], + ACIDInstance: instances[3], + ACIDAccessManager: instances[12], + rankToken: instances[13], + instanceId: evts[0].args.instanceId, + }; +}; + +export default instantiateMAO; diff --git a/src/abstracts/CompositeERC1155.sol b/src/abstracts/CompositeERC1155.sol deleted file mode 100644 index 6418712a..00000000 --- a/src/abstracts/CompositeERC1155.sol +++ /dev/null @@ -1,91 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -pragma solidity ^0.8.20; -import "../libraries/LibReentrancyGuard.sol"; -import "./LockableERC1155.sol"; - -/** - * @title CompositeERC1155 - * @dev An abstract contract that extends LockableERC1155 and provides functionality for composite ERC1155 tokens. - * Composite tokens can be "composed" from multiple underlying assets, which however do not change their owner - * and in contrast to that use LockableERC1155 standard, which allows to read locked asset BalanceOf, OwnerOf methods correctly - */ -abstract contract CompositeERC1155 is LockableERC1155 { - address[] private dimensions; - uint256[] private weights; - - constructor(string memory uri_, address[] memory dimensionTokens, uint256[] memory tokenWeights) ERC1155(uri_) { - require(dimensionTokens.length == tokenWeights.length, "Array lengths must be equal"); - dimensions = dimensionTokens; - weights = tokenWeights; - } - - function _update( - address from, - address to, - uint256[] memory ids, - uint256[] memory values - ) internal virtual override { - if (to == address(0)) // let it burn - { - for (uint256 i = 0; i < dimensions.length; i++) { - for (uint256 j = 0; j < ids.length; j++) { - LockableERC1155(dimensions[i]).unlock(from, ids[j], values[j] * weights[i]); - } - } - } else if (from == address(0)) { - // let it rise - for (uint256 i = 0; i < dimensions.length; i++) { - for (uint256 j = 0; j < ids.length; j++) { - LockableERC1155(dimensions[i]).lock(to, ids[j], values[j] * weights[i]); - } - } - } - super._update(from, to, ids, values); - } - - /** - * @dev Decomposes a composite ERC1155 token into its individual components. - * This function unlocks the specified amount of the composite token from each dimension, - * and then burns the specified amount of the composite token from the caller's balance. - * @param from The address from which the composite token is being decomposed. - * @param id The ID of the composite token being decomposed. - * @param amount The amount of the composite token to decompose. - */ - function decompose(address from, uint256 id, uint256 amount) public virtual { - for (uint256 i = 0; i < dimensions.length; i++) { - LockableERC1155(dimensions[i]).unlock(from, id, amount * weights[i]); - } - _burn(from, id, amount); - } - - /** - * @dev Burns a specified amount of tokens from the given account. - * This will burn all underlying (composite) assets - * - * Requirements: - * - `account` must be the token owner or an approved operator. - * - `id` and `value` must be valid token ID and amount to burn. - * - All underlying "composite" assets implement burn as well - * - * @param account The address of the token owner. - * @param id The ID of the token to burn. - * @param value The amount of tokens to burn. - */ - function burn(address account, uint256 id, uint256 value) public virtual { - require( - account == _msgSender() || isApprovedForAll(account, _msgSender()), - "ERC1155: caller is not token owner or approved" - ); - - _burn(account, id, value); - } - - /** - * @dev Retrieves the components of the CompositeERC1155 contract. - * @return An array of component addresses and an array of component weights. - */ - function getComponents() public virtual returns (address[] memory, uint256[] memory) { - return (dimensions, weights); - } -} diff --git a/src/abstracts/LockableERC1155.sol b/src/abstracts/LockableERC1155.sol index 7c78468c..c3b70018 100644 --- a/src/abstracts/LockableERC1155.sol +++ b/src/abstracts/LockableERC1155.sol @@ -1,18 +1,27 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.20; -import "../libraries/LibReentrancyGuard.sol"; -import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol"; import {ILockableERC1155} from "../interfaces/ILockableERC1155.sol"; -error insufficient(uint256 id, uint256 balance, uint256 required); /** * @title LockableERC1155 * @dev This is an abstract contract that extends the ERC1155 token contract and implements the ILockableERC1155 interface. * It provides functionality to lock and unlock token amounts for specific accounts and IDs. */ -abstract contract LockableERC1155 is ERC1155, ILockableERC1155 { - mapping(address => mapping(uint256 => uint256)) lockedAmounts; +abstract contract LockableERC1155 is ERC1155Upgradeable, ILockableERC1155 { + struct LockableERC1155Storage { + mapping(address => mapping(uint256 tokenId => uint256)) lockedAmounts; + } + + bytes32 constant LOCKABLE_TOKEN_STORAGE_POSITION = keccak256("erc1155.lockable.storage.position"); + + function getLockableERC1155Storage() private pure returns (LockableERC1155Storage storage s) { + bytes32 position = LOCKABLE_TOKEN_STORAGE_POSITION; + assembly { + s.slot := position + } + } /** * @dev Locks a specified amount of tokens for a given account and token ID. @@ -24,9 +33,10 @@ abstract contract LockableERC1155 is ERC1155, ILockableERC1155 { * @param amount The amount of tokens to lock. */ function lock(address account, uint256 id, uint256 amount) public virtual { - if (balanceOf(account, id) < lockedAmounts[account][id] + amount) require(false, "insufficient"); - // revert insufficient(id, lockedAmounts[account][id], amount); - lockedAmounts[account][id] += amount; + LockableERC1155Storage storage s = getLockableERC1155Storage(); + if (balanceOf(account, id) < s.lockedAmounts[account][id] + amount) + revert insufficient(id, s.lockedAmounts[account][id], amount); + s.lockedAmounts[account][id] += amount; emit TokensLocked(account, id, amount); } @@ -39,8 +49,9 @@ abstract contract LockableERC1155 is ERC1155, ILockableERC1155 { * @param amount The amount of tokens to unlock. */ function unlock(address account, uint256 id, uint256 amount) public virtual { - if (lockedAmounts[account][id] < amount) require(false, "insufficient"); //revert insufficient(id, lockedAmounts[account][id], amount); - lockedAmounts[account][id] -= amount; + LockableERC1155Storage storage s = getLockableERC1155Storage(); + if (s.lockedAmounts[account][id] < amount) revert insufficient(id, s.lockedAmounts[account][id], amount); + s.lockedAmounts[account][id] -= amount; emit TokensUnlocked(account, id, amount); } @@ -52,7 +63,8 @@ abstract contract LockableERC1155 is ERC1155, ILockableERC1155 { * @return The unlocked balance of the ERC1155 token for the account. */ function unlockedBalanceOf(address account, uint256 id) public view returns (uint256) { - return balanceOf(account, id) - lockedAmounts[account][id]; + LockableERC1155Storage storage s = getLockableERC1155Storage(); + return balanceOf(account, id) - s.lockedAmounts[account][id]; } /** @@ -70,10 +82,14 @@ abstract contract LockableERC1155 is ERC1155, ILockableERC1155 { uint256[] memory ids, uint256[] memory values ) internal virtual override { - for (uint256 i = 0; i < ids.length; i++) { + for (uint256 i = 0; i < ids.length; ++i) { if (from != address(0)) { - if (lockedAmounts[from][ids[i]] + values[i] > balanceOf(from, ids[i])) { - require(false, "insufficient"); + if (getLockableERC1155Storage().lockedAmounts[from][ids[i]] + values[i] > balanceOf(from, ids[i])) { + revert insufficient( + ids[i], + balanceOf(from, ids[i]), + getLockableERC1155Storage().lockedAmounts[from][ids[i]] + values[i] + ); } } } diff --git a/src/distributions/ArguableVotingTournament.sol b/src/distributions/ArguableVotingTournament.sol new file mode 100644 index 00000000..066a8384 --- /dev/null +++ b/src/distributions/ArguableVotingTournament.sol @@ -0,0 +1,218 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "./InitializedDiamondDistribution.sol"; +import "../vendor/diamond/facets/DiamondLoupeFacet.sol"; +import "../facets/EIP712InspectorFacet.sol"; +import "../vendor/diamond/facets/OwnershipFacet.sol"; +import "../facets/RankifyInstanceMainFacet.sol"; +import "../facets/RankifyInstanceRequirementsFacet.sol"; +import "../facets/RankifyInstanceGameMastersFacet.sol"; +import "../facets/RankifyInstanceGameOwnersFacet.sol"; +import "../initializers/RankifyInstanceInit.sol"; +import "../vendor/diamond/interfaces/IDiamondCut.sol"; +import "@peeramid-labs/eds/src/libraries/LibSemver.sol"; + +/** + * @title ArguableVotingTournament Distribution + * @notice This contract implements a diamond distribution for Ethereum Distribution System. It is reponsible to create new instance of ArguableVotingTournament. + * @dev It is expected to be used ONLY by the Distributor contract. + * @author Peeramid Labs, 2024 + */ +contract ArguableVotingTournament is InitializedDiamondDistribution { + DiamondLoupeFacet private immutable _loupeFacet; + EIP712InspectorFacet private immutable _inspectorFacet; + RankifyInstanceMainFacet private immutable _RankifyMainFacet; + RankifyInstanceRequirementsFacet private immutable _RankifyReqsFacet; + RankifyInstanceGameMastersFacet private immutable _RankifyGMFacet; + RankifyInstanceGameOwnersFacet private immutable _RankifyOwnerFacet; + OwnershipFacet private immutable _OwnershipFacet; + address private immutable _initializer; + + bytes32 private immutable distributionName; + uint256 private immutable distributionVersion; + + function stringToSelector(string memory signature) private pure returns (bytes4) { + return bytes4(keccak256(bytes(signature))); + } + + /** + * @dev Constructor for the ArguableVotingTournament contract. + * + * Note Initializer function will be added as a regular facet to the Diamond Proxy, + * Since it is expected that initialization is done by distributor contract, the initializer will not be run, hence + * it is up for distributor to remove this facet upon succesfull initialization. + */ + constructor( + address initializer, + bytes4 initializerSelector, + bytes32 _distributionName, + LibSemver.Version memory version, + address loupeFacet, + address inspectorFacet, + address RankifyMainFacet, + address RankifyReqsFacet, + address RankifyGMFacet, + address RankifyOwnerFacet, + address OwnershipFacetAddr + ) InitializedDiamondDistribution(address(this), bytes32(0), initializerSelector) { + _initializer = initializer; + _loupeFacet = DiamondLoupeFacet(loupeFacet); + _inspectorFacet = EIP712InspectorFacet(inspectorFacet); + _RankifyMainFacet = RankifyInstanceMainFacet(RankifyMainFacet); + _RankifyReqsFacet = RankifyInstanceRequirementsFacet(RankifyReqsFacet); + _RankifyGMFacet = RankifyInstanceGameMastersFacet(RankifyGMFacet); + _RankifyOwnerFacet = RankifyInstanceGameOwnersFacet(RankifyOwnerFacet); + _OwnershipFacet = OwnershipFacet(OwnershipFacetAddr); + + distributionName = _distributionName; + distributionVersion = LibSemver.toUint256(version); + } + + /** + * @dev see Ethereum Distribution System IDistribute for interface specification. + * @return instances Array[9]: [diamond proxy, 8x diamond facets..] + * @return distributionName: bytes32 encoded name to be used in EIP712 signing flow + * @return distributionVersion: uint256 encoded distribution version. Can be parsed to eip712 signature with EDS LibSemver + */ + function instantiate(bytes memory) external override returns (address[] memory instances, bytes32, uint256) { + (address[] memory _instances, , ) = super._instantiate(); + address diamond = _instances[0]; + IDiamondCut.FacetCut[] memory facetCuts = new IDiamondCut.FacetCut[](8); + + bytes4[] memory loupeSelectors = new bytes4[](4); + loupeSelectors[0] = DiamondLoupeFacet.facets.selector; + loupeSelectors[1] = DiamondLoupeFacet.facetFunctionSelectors.selector; + loupeSelectors[2] = DiamondLoupeFacet.facetAddresses.selector; + loupeSelectors[3] = DiamondLoupeFacet.facetAddress.selector; + facetCuts[0] = IDiamondCut.FacetCut({ + facetAddress: address(_loupeFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: loupeSelectors + }); + + bytes4[] memory EIP712InspectorFacetSelectors = new bytes4[](2); + EIP712InspectorFacetSelectors[0] = EIP712InspectorFacet.inspectEIP712Hashes.selector; + EIP712InspectorFacetSelectors[1] = EIP712InspectorFacet.currentChainId.selector; + + facetCuts[1] = IDiamondCut.FacetCut({ + facetAddress: address(_inspectorFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: EIP712InspectorFacetSelectors + }); + bytes4[] memory RankifyInstanceMainFacetSelectors = new bytes4[](28); + RankifyInstanceMainFacetSelectors[0] = RankifyInstanceMainFacet.cancelGame.selector; + RankifyInstanceMainFacetSelectors[1] = RankifyInstanceMainFacet.gameCreator.selector; + RankifyInstanceMainFacetSelectors[2] = stringToSelector("createGame(address,uint256,uint256)"); + RankifyInstanceMainFacetSelectors[3] = stringToSelector("createGame(address,uint256,uint256,address[])"); + RankifyInstanceMainFacetSelectors[4] = stringToSelector("createGame(address,uint256)"); + RankifyInstanceMainFacetSelectors[5] = RankifyInstanceMainFacet.leaveGame.selector; + RankifyInstanceMainFacetSelectors[6] = RankifyInstanceMainFacet.joinGame.selector; + RankifyInstanceMainFacetSelectors[7] = RankifyInstanceMainFacet.openRegistration.selector; + RankifyInstanceMainFacetSelectors[8] = RankifyInstanceMainFacet.startGame.selector; + RankifyInstanceMainFacetSelectors[9] = RankifyInstanceMainFacet.onERC1155BatchReceived.selector; + RankifyInstanceMainFacetSelectors[10] = RankifyInstanceMainFacet.onERC1155Received.selector; + RankifyInstanceMainFacetSelectors[11] = RankifyInstanceMainFacet.onERC721Received.selector; + RankifyInstanceMainFacetSelectors[12] = RankifyInstanceMainFacet.getContractState.selector; + RankifyInstanceMainFacetSelectors[13] = RankifyInstanceMainFacet.getTurn.selector; + RankifyInstanceMainFacetSelectors[14] = RankifyInstanceMainFacet.getGM.selector; + RankifyInstanceMainFacetSelectors[15] = RankifyInstanceMainFacet.getScores.selector; + RankifyInstanceMainFacetSelectors[16] = RankifyInstanceMainFacet.isOvertime.selector; + RankifyInstanceMainFacetSelectors[17] = RankifyInstanceMainFacet.isGameOver.selector; + RankifyInstanceMainFacetSelectors[18] = RankifyInstanceMainFacet.getPlayersGame.selector; + RankifyInstanceMainFacetSelectors[19] = RankifyInstanceMainFacet.isLastTurn.selector; + RankifyInstanceMainFacetSelectors[20] = RankifyInstanceMainFacet.isRegistrationOpen.selector; + RankifyInstanceMainFacetSelectors[21] = RankifyInstanceMainFacet.getGameRank.selector; + RankifyInstanceMainFacetSelectors[22] = RankifyInstanceMainFacet.getPlayers.selector; + RankifyInstanceMainFacetSelectors[23] = RankifyInstanceMainFacet.canStartGame.selector; + RankifyInstanceMainFacetSelectors[24] = RankifyInstanceMainFacet.canEndTurn.selector; + RankifyInstanceMainFacetSelectors[25] = RankifyInstanceMainFacet.isPlayerTurnComplete.selector; + RankifyInstanceMainFacetSelectors[26] = RankifyInstanceMainFacet.getPlayerVotedArray.selector; + RankifyInstanceMainFacetSelectors[27] = RankifyInstanceMainFacet.getPlayersMoved.selector; + + facetCuts[2] = IDiamondCut.FacetCut({ + facetAddress: address(_RankifyMainFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: RankifyInstanceMainFacetSelectors + }); + bytes4[] memory RankifyInstanceRequirementsFacetSelectors = new bytes4[](3); + RankifyInstanceRequirementsFacetSelectors[0] = RankifyInstanceRequirementsFacet.setJoinRequirements.selector; + RankifyInstanceRequirementsFacetSelectors[1] = RankifyInstanceRequirementsFacet.getJoinRequirements.selector; + RankifyInstanceRequirementsFacetSelectors[2] = RankifyInstanceRequirementsFacet + .getJoinRequirementsByToken + .selector; + + facetCuts[3] = IDiamondCut.FacetCut({ + facetAddress: address(_RankifyReqsFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: RankifyInstanceRequirementsFacetSelectors + }); + + bytes4[] memory RankifyInstanceGameMastersFacetSelectors = new bytes4[](3); + RankifyInstanceGameMastersFacetSelectors[0] = RankifyInstanceGameMastersFacet.submitVote.selector; + RankifyInstanceGameMastersFacetSelectors[1] = RankifyInstanceGameMastersFacet.submitProposal.selector; + RankifyInstanceGameMastersFacetSelectors[2] = RankifyInstanceGameMastersFacet.endTurn.selector; + + facetCuts[4] = IDiamondCut.FacetCut({ + facetAddress: address(_RankifyGMFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: RankifyInstanceGameMastersFacetSelectors + }); + + bytes4[] memory RankifyInstanceGameOwnersFacetSelectors = new bytes4[](8); + + RankifyInstanceGameOwnersFacetSelectors[0] = RankifyInstanceGameOwnersFacet.setGamePrice.selector; + RankifyInstanceGameOwnersFacetSelectors[1] = RankifyInstanceGameOwnersFacet.setJoinGamePrice.selector; + RankifyInstanceGameOwnersFacetSelectors[2] = RankifyInstanceGameOwnersFacet.setRankTokenAddress.selector; + RankifyInstanceGameOwnersFacetSelectors[3] = RankifyInstanceGameOwnersFacet.setTimePerTurn.selector; + RankifyInstanceGameOwnersFacetSelectors[4] = RankifyInstanceGameOwnersFacet.setMaxPlayersSize.selector; + RankifyInstanceGameOwnersFacetSelectors[5] = RankifyInstanceGameOwnersFacet.setMinPlayersSize.selector; + RankifyInstanceGameOwnersFacetSelectors[6] = RankifyInstanceGameOwnersFacet.setTimeToJoin.selector; + RankifyInstanceGameOwnersFacetSelectors[7] = RankifyInstanceGameOwnersFacet.setMaxTurns.selector; + facetCuts[5] = IDiamondCut.FacetCut({ + facetAddress: address(_RankifyOwnerFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: RankifyInstanceGameOwnersFacetSelectors + }); + + bytes4[] memory OwnershipFacetSelectors = new bytes4[](2); + OwnershipFacetSelectors[0] = _OwnershipFacet.transferOwnership.selector; + OwnershipFacetSelectors[1] = _OwnershipFacet.owner.selector; + + facetCuts[6] = IDiamondCut.FacetCut({ + facetAddress: address(_OwnershipFacet), + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: OwnershipFacetSelectors + }); + bytes4[] memory initializerSelectors = new bytes4[](1); + initializerSelectors[0] = RankifyInstanceInit.init.selector; + facetCuts[7] = IDiamondCut.FacetCut({ + facetAddress: _initializer, + action: IDiamondCut.FacetCutAction.Add, + functionSelectors: initializerSelectors + }); + + super.initialize(DiamondCutFacet(diamond), facetCuts, ""); + address[] memory returnValue = new address[](9); + returnValue[0] = diamond; + returnValue[1] = facetCuts[0].facetAddress; + returnValue[2] = facetCuts[1].facetAddress; + returnValue[3] = facetCuts[2].facetAddress; + returnValue[4] = facetCuts[3].facetAddress; + returnValue[5] = facetCuts[4].facetAddress; + returnValue[6] = facetCuts[5].facetAddress; + returnValue[7] = facetCuts[6].facetAddress; + returnValue[8] = facetCuts[7].facetAddress; + + return (returnValue, distributionName, distributionVersion); + } + + function contractURI() public pure virtual override returns (string memory) { + return string(abi.encodePacked(super.contractURI(), ";", "ArguableVotingTournament")); + } + + function sources() internal view virtual override returns (address[] memory, bytes32, uint256) { + (address[] memory srcs, , ) = super.sources(); + return (srcs, distributionName, distributionVersion); + } +} diff --git a/src/distributions/DiamondDistribution.sol b/src/distributions/DiamondDistribution.sol new file mode 100644 index 00000000..ce44f752 --- /dev/null +++ b/src/distributions/DiamondDistribution.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@peeramid-labs/eds/src/abstracts/CloneDistribution.sol"; +import "../vendor/diamond/DiamondCloneable.sol"; +import "../vendor/diamond/facets/DiamondCutFacet.sol"; + +/** + * @title Diamond Proxy Distribution + * @notice This contract is EDS compatible factory for diamond proxies + * @dev This uses modified version of Diamond Proxy, which allows proxy itself to cloned + * @author Peeramid Labs, 2024 + */ +contract DiamondDistribution is CloneDistribution { + address private immutable _reference; + + constructor(address owner) { + address diamondCutFacet = address(new DiamondCutFacet()); + // Deploy the diamond proxy contract + address diamondProxy = address(new DiamondCloneable(owner, diamondCutFacet)); + _reference = diamondProxy; + } + + function instantiate(bytes memory) external virtual override returns (address[] memory, bytes32, uint256) { + return super._instantiate(); + } + + function sources() internal view virtual override returns (address[] memory, bytes32 name, uint256 version) { + address[] memory _sources = new address[](1); + _sources[0] = _reference; + return (_sources, bytes32(abi.encodePacked("DiamondDistribution")), uint256(0)); + } + + function contractURI() public pure virtual override returns (string memory) { + return ""; + } +} diff --git a/src/distributions/InitializedDiamondDistribution.sol b/src/distributions/InitializedDiamondDistribution.sol new file mode 100644 index 00000000..86ee41f5 --- /dev/null +++ b/src/distributions/InitializedDiamondDistribution.sol @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "../vendor/diamond/DiamondCloneable.sol"; +import "../vendor/diamond/facets/DiamondCutFacet.sol"; +import "../distributions/DiamondDistribution.sol"; +import "../vendor/diamond/libraries/LibDiamond.sol"; +import "../vendor/diamond/interfaces/IDiamondCut.sol"; + +/** + * @title Initialized Diamond Proxy Distribution + * @notice This contract is EDS compatible factory for diamond proxies + * @dev This allows to store immutable initializer logic for a cloned diamond proxy + * @author Peeramid Labs, 2024 + */ +abstract contract InitializedDiamondDistribution is DiamondDistribution { + address private immutable initializer; + bytes4 private immutable initializerSelector; + + constructor(address owner, bytes32 _initializerId, bytes4 _initializerSelector) DiamondDistribution(owner) { + initializer = getContractsIndex().get(_initializerId); + initializerSelector = _initializerSelector; + } + + function initialize( + DiamondCutFacet instance, + IDiamondCut.FacetCut[] memory _diamondCut, + bytes memory args + ) internal virtual { + bytes memory _calldata = args.length > 0 ? abi.encodeWithSelector(initializerSelector, args) : bytes(""); + instance.diamondCut(_diamondCut, initializer, _calldata); + } + + function get() public view virtual override returns (address[] memory, bytes32 name, uint256 version) { + (address[] memory srcs, , ) = super.sources(); + address[] memory _sources = new address[](2); + assert(srcs.length == 1); + _sources[0] = srcs[0]; + _sources[1] = initializer; + return (srcs, bytes32(abi.encodePacked("InitializedDiamondDistribution")), uint256(0)); + } + + function contractURI() public pure virtual override returns (string memory) { + return string(abi.encodePacked(super.contractURI(), ";", "InitializedDiamondDistribution")); //ToDo: Add IPFS link with readme! + } +} diff --git a/src/distributions/MAODistribution.sol b/src/distributions/MAODistribution.sol new file mode 100644 index 00000000..ca3e503c --- /dev/null +++ b/src/distributions/MAODistribution.sol @@ -0,0 +1,319 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; +import "@peeramid-labs/eds/src/interfaces/IDistribution.sol"; +import "@peeramid-labs/eds/src/libraries/LibSemver.sol"; +import {DistributableGovernanceERC20, MintSettings, IDAO} from "../tokens/DistributableGovernanceERC20.sol"; +import {IERC7746} from "@peeramid-labs/eds/src/interfaces/IERC7746.sol"; +import {SimpleAccessManager} from "@peeramid-labs/eds/src/managers/SimpleAccessManager.sol"; +import {IDistributor} from "@peeramid-labs/eds/src/interfaces/IDistributor.sol"; +import {RankToken} from "../tokens/RankToken.sol"; +import "../initializers/RankifyInstanceInit.sol"; +import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol"; +import "@peeramid-labs/eds/src/abstracts/CodeIndexer.sol"; + +import {TokenSettings, VotingMode, VotingSettings, IPluginRepo, IDAOFactory} from "../vendor/aragon/interfaces.sol"; + +/** + * @title MAODistribution + * @dev This contract implements the IDistribution and CodeIndexer interfaces. It uses the Clones library for address cloning. + * + * @notice The contract is responsible for creating and managing DAOs and ACID distributions. + * @author Peeramid Labs, 2024 + */ +contract MAODistribution is IDistribution, CodeIndexer { + struct UserACIDSettings { + uint256 timePerTurn; + uint256 maxPlayersSize; + uint256 minPlayersSize; + uint256 timeToJoin; + uint256 maxTurns; + uint256 voteCredits; + uint256 gamePrice; + address paymentToken; + uint256 joinGamePrice; + string metadata; + string rankTokenURI; + string RankTokenContractURI; + } + + struct OSxDistributionArguments { + string daoURI; + string subdomain; + bytes metadata; + string tokenName; + string tokenSymbol; + } + + struct DistributorArguments { + OSxDistributionArguments DAOSEttings; + UserACIDSettings ACIDSettings; + } + + using Clones for address; + IPluginRepo private immutable _tokenVotingPluginRepo; + IDAOFactory private immutable _daoFactory; + address private immutable _trustedForwarder; + bytes32 private immutable _distributionName; + uint256 private immutable _distributionVersion; + address private immutable _rankTokenBase; + IDistribution private immutable _ACIDDistributionBase; + address private immutable _governanceERC20Base; + address private immutable _accessManagerBase; + + /** + * @notice Initializes the contract with the provided parameters and performs necessary checks. + * @dev - retrieves contract addresses from a contract index using the provided identifiers. + * - checks if the access manager supports the ERC7746 interface. + * - EIP712 compatible name/version can be extracted with use of LibSemver + * + * + * WARNING: _trustedForwarder functionality hasn't been yet reviewed nor implemented for ACID distribution and if set will affect only OSx DAO setup. + * + * @param tokenVotingPluginRepo Address of the token voting plugin repository. + * @param daoFactory Address of the Aragons DAO factory. + * @param trustedForwarder Address of the trusted forwarder. + * @param rankTokenCodeId Identifier for the rank token code. + * @param ACIDDIistributionId Identifier for the ACID distribution. + * @param accessManagerId Identifier for the access manager. + * @param governanceERC20BaseId Identifier for the governance ERC20 base. + * @param distributionName Name of the distribution. + * @param distributionVersion Version of the distribution as a `LibSemver.Version` struct. + */ + constructor( + address tokenVotingPluginRepo, + address daoFactory, + address trustedForwarder, + bytes32 rankTokenCodeId, + bytes32 ACIDDIistributionId, + bytes32 accessManagerId, + bytes32 governanceERC20BaseId, + bytes32 distributionName, + LibSemver.Version memory distributionVersion + ) { + _governanceERC20Base = getContractsIndex().get(governanceERC20BaseId); + _tokenVotingPluginRepo = IPluginRepo(tokenVotingPluginRepo); + _daoFactory = IDAOFactory(daoFactory); + _trustedForwarder = trustedForwarder; + _distributionName = distributionName; + _distributionVersion = LibSemver.toUint256(distributionVersion); + _rankTokenBase = getContractsIndex().get(rankTokenCodeId); + if (_rankTokenBase == address(0)) { + revert("Rank token base not found"); + } + _ACIDDistributionBase = IDistribution(getContractsIndex().get(ACIDDIistributionId)); + if (address(_ACIDDistributionBase) == address(0)) { + revert("ACID distribution base not found"); + } + + _accessManagerBase = getContractsIndex().get(accessManagerId); + if (_accessManagerBase == address(0)) { + revert("Access manager base not found"); + } + require( + ERC165Checker.supportsInterface(_accessManagerBase, type(IERC7746).interfaceId), + "Access manager does not support IERC7746" + ); + } + + function createOSxDAO( + OSxDistributionArguments memory args + ) internal returns (address[] memory instances, bytes32, uint256) { + MintSettings memory mintSettings = MintSettings(new address[](1), new uint256[](1)); + mintSettings.receivers[0] = address(this); + mintSettings.amounts[0] = 0; + address token = _governanceERC20Base.clone(); + TokenSettings memory tokenSettings = TokenSettings(token, args.tokenName, args.tokenSymbol); + VotingSettings memory votingSettings = VotingSettings({ + votingMode: VotingMode.Standard, + supportThreshold: 666666, + minParticipation: 10 ** 4, + minDuration: 86400, + minProposerVotingPower: 1 + }); + + IDAOFactory.DAOSettings memory daoSettings = IDAOFactory.DAOSettings( + _trustedForwarder, + args.daoURI, + args.subdomain, + args.metadata + ); + + IDAOFactory.PluginSettings memory tokenVotingPluginSetup = IDAOFactory.PluginSettings( + IDAOFactory.PluginSetupRef( + _tokenVotingPluginRepo.getLatestVersion(_tokenVotingPluginRepo.latestRelease()).tag, + _tokenVotingPluginRepo + ), + abi.encode(votingSettings, tokenSettings, mintSettings) + ); + + IDAOFactory.PluginSettings[] memory pluginSettings = new IDAOFactory.PluginSettings[](1); + pluginSettings[0] = tokenVotingPluginSetup; + address createdDao = _daoFactory.createDao(daoSettings, pluginSettings); + + SimpleAccessManager.SimpleAccessManagerInitializer[] + memory govTokenAccessSettings = new SimpleAccessManager.SimpleAccessManagerInitializer[](1); + govTokenAccessSettings[0].selector = DistributableGovernanceERC20.mint.selector; + govTokenAccessSettings[0].dissallowedAddresses = new address[](1); + govTokenAccessSettings[0].dissallowedAddresses[0] = createdDao; + govTokenAccessSettings[0].distributionComponentsOnly = true; + + SimpleAccessManager govTokenAccessManager = SimpleAccessManager(_accessManagerBase.clone()); + + govTokenAccessManager.initialize(govTokenAccessSettings, tokenSettings.addr, IDistributor(msg.sender)); // msg.sender must be IDistributor or it will revert + DistributableGovernanceERC20(tokenSettings.addr).initialize( + IDAO(createdDao), + tokenSettings.name, + tokenSettings.symbol, + mintSettings, + address(govTokenAccessManager) + ); + + address[] memory returnValue = new address[](3); + returnValue[0] = createdDao; + returnValue[1] = token; + returnValue[2] = address(govTokenAccessManager); + + return (returnValue, "OSxDistribution", 1); + } + + function createACID( + UserACIDSettings memory args, + address dao + ) internal returns (address[] memory instances, bytes32, uint256) { + address rankToken = _rankTokenBase.clone(); + + bytes4[] memory rankTokenSelectors = new bytes4[](6); + rankTokenSelectors[0] = RankToken.mint.selector; + rankTokenSelectors[1] = RankToken.lock.selector; + rankTokenSelectors[2] = RankToken.unlock.selector; + rankTokenSelectors[3] = RankToken.batchMint.selector; + rankTokenSelectors[4] = RankToken.setURI.selector; + rankTokenSelectors[5] = RankToken.setContractURI.selector; + + SimpleAccessManager.SimpleAccessManagerInitializer[] + memory RankTokenAccessSettings = new SimpleAccessManager.SimpleAccessManagerInitializer[](6); + + RankTokenAccessSettings[0].selector = RankToken.mint.selector; + RankTokenAccessSettings[0].dissallowedAddresses = new address[](1); + RankTokenAccessSettings[0].dissallowedAddresses[0] = dao; + RankTokenAccessSettings[0].distributionComponentsOnly = true; + + RankTokenAccessSettings[1].selector = RankToken.lock.selector; + RankTokenAccessSettings[1].dissallowedAddresses = new address[](1); + RankTokenAccessSettings[1].dissallowedAddresses[0] = dao; + RankTokenAccessSettings[1].distributionComponentsOnly = true; + + RankTokenAccessSettings[2].selector = RankToken.unlock.selector; + RankTokenAccessSettings[2].dissallowedAddresses = new address[](1); + RankTokenAccessSettings[2].dissallowedAddresses[0] = dao; + RankTokenAccessSettings[2].distributionComponentsOnly = true; + + RankTokenAccessSettings[3].selector = RankToken.batchMint.selector; + RankTokenAccessSettings[3].dissallowedAddresses = new address[](1); + RankTokenAccessSettings[3].dissallowedAddresses[0] = dao; + RankTokenAccessSettings[3].distributionComponentsOnly = true; + + RankTokenAccessSettings[4].selector = RankToken.setURI.selector; + RankTokenAccessSettings[4].distributionComponentsOnly = true; + + RankTokenAccessSettings[5].selector = RankToken.setContractURI.selector; + RankTokenAccessSettings[5].distributionComponentsOnly = true; + + SimpleAccessManager rankTokenAccessManager = SimpleAccessManager(_accessManagerBase.clone()); + + rankTokenAccessManager.initialize(RankTokenAccessSettings, rankToken, IDistributor(msg.sender)); // msg.sender must be IDistributor or it will revert + + RankToken(rankToken).initialize(args.rankTokenURI, args.RankTokenContractURI, address(rankTokenAccessManager)); + ( + address[] memory ACIDDistrAddresses, + bytes32 ACIDDistributionname, + uint256 ACIDDistributionVersion + ) = _ACIDDistributionBase.instantiate(abi.encode(dao, rankToken, args.metadata)); + + RankifyInstanceInit.contractInitializer memory ACIDInit = RankifyInstanceInit.contractInitializer({ + timePerTurn: args.timePerTurn, + maxPlayersSize: args.maxPlayersSize, + minPlayersSize: args.minPlayersSize, + rewardToken: rankToken, + timeToJoin: args.timeToJoin, + gamePrice: args.gamePrice, + joinGamePrice: args.joinGamePrice, + maxTurns: args.maxTurns, + numWinners: 1, + voteCredits: args.voteCredits, + paymentToken: args.paymentToken + }); + + RankifyInstanceInit(ACIDDistrAddresses[0]).init( + string(abi.encodePacked(ACIDDistributionname)), + LibSemver.toString(LibSemver.parse(ACIDDistributionVersion)), + ACIDInit + ); + address[] memory returnValue = new address[](ACIDDistrAddresses.length + 2); + for (uint256 i; i < ACIDDistrAddresses.length; ++i) { + returnValue[i] = ACIDDistrAddresses[i]; + } + returnValue[ACIDDistrAddresses.length] = address(rankTokenAccessManager); + returnValue[ACIDDistrAddresses.length + 1] = rankToken; + + return (returnValue, ACIDDistributionname, ACIDDistributionVersion); + } + + /** + * @notice Instantiates a new instance with the provided data. + * @param data The initialization data for the new instance, typeof {DistributorArguments}. + * @return instances An array of addresses representing the new instances. + * @return distributionName A bytes32 value representing the name of the distribution. + * @return distributionVersion A uint256 value representing the version of the distribution. + * @dev `instances` array contents: DAO, GovernanceToken, Gov Token AccessManager, ACID Diamond, 8x ACID Diamond facets, RankTokenAccessManager, RankToken + */ + function instantiate( + bytes memory data + ) public override returns (address[] memory instances, bytes32 distributionName, uint256 distributionVersion) { + DistributorArguments memory args = abi.decode(data, (DistributorArguments)); + + (address[] memory DAOInstances, , ) = createOSxDAO(args.DAOSEttings); + (address[] memory ACIDInstances, , ) = createACID(args.ACIDSettings, DAOInstances[0]); + + address[] memory returnValue = new address[](DAOInstances.length + ACIDInstances.length); + + for (uint256 i; i < DAOInstances.length; ++i) { + returnValue[i] = DAOInstances[i]; + } + for (uint256 i; i < ACIDInstances.length; ++i) { + returnValue[DAOInstances.length + i] = ACIDInstances[i]; + } + return (returnValue, _distributionName, _distributionVersion); + } + + function contractURI() public pure virtual override returns (string memory) { + return ""; + } + + function get() external view returns (address[] memory sources, bytes32, uint256) { + address[] memory srcs = new address[](8); + srcs[0] = address(_tokenVotingPluginRepo); + srcs[1] = address(_daoFactory); + srcs[2] = address(_trustedForwarder); + srcs[3] = address(_rankTokenBase); + srcs[4] = address(_ACIDDistributionBase); + srcs[6] = address(_governanceERC20Base); + srcs[7] = address(_accessManagerBase); + return (srcs, _distributionName, _distributionVersion); + } + + /** + * @notice Returns the schema of the distribution. + * @dev This is only needed to ensure `DistributorArguments` are provided in ABI, as it would be internal otherwise. + * @return DistributorArguments The schema of the distribution. + */ + function distributionSchema() external pure returns (DistributorArguments memory) { + return + DistributorArguments({ + DAOSEttings: OSxDistributionArguments("", "", "", "", ""), + ACIDSettings: UserACIDSettings(0, 0, 0, 0, 0, 0, 0, address(0), 0, "", "", "") + }); + } +} diff --git a/src/distributors/PeeramidLabsDistributor.sol b/src/distributors/PeeramidLabsDistributor.sol new file mode 100644 index 00000000..c904ef97 --- /dev/null +++ b/src/distributors/PeeramidLabsDistributor.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@peeramid-labs/eds/src/abstracts/Distributor.sol"; +import "@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol"; + +/** + * @title PeeramidLabsDistributor + * @notice This contract is a distributor for Peeramid Labs. + * It is designed to handle the distribution logic specific to Peeramid Labs. + * The contract leverages access control mechanisms to ensure that only authorized + * users can perform certain actions. + * @author Peeramid Labs, 2024 + */ +contract PeeramidLabsDistributor is Distributor, AccessControlDefaultAdminRules { + constructor(address defaultAdmin) Distributor() AccessControlDefaultAdminRules(3 days, defaultAdmin) {} + + /** + * @notice Adds a new distribution with the given identifier and initializer address. + * @dev This function can only be called by an account with the `DEFAULT_ADMIN_ROLE`. + * @param id The unique identifier for the distribution. * @param initializer The address that initializes the distribution. + */ + function addDistribution(bytes32 id, address initializer) public onlyRole(DEFAULT_ADMIN_ROLE) { + _addDistribution(id, initializer); + } + + /** + * @notice Instantiates a new contract with the given identifier and arguments. + * @param id The unique identifier for the contract to be instantiated. + * @param args The calldata arguments required for the instantiation process. + * @return srcs An array of instantiated infrastructure + * @return name The name of the instantiated distribution. + * @return version The version number of the instantiated distribution. + */ + function instantiate( + bytes32 id, + bytes calldata args + ) external returns (address[] memory srcs, bytes32 name, uint256 version) { + return _instantiate(id, args); + } + + /** + * @notice Removes a distribution entry identified by the given ID. + * @dev This function can only be called by an account with the `DEFAULT_ADMIN_ROLE`. + * @param id The unique identifier of the distribution entry to be removed. + */ + function removeDistribution(bytes32 id) public onlyRole(DEFAULT_ADMIN_ROLE) { + _removeDistribution(id); + } + + /** + * + * This function checks if the contract implements the interface defined by ERC165 + * + * @param interfaceId The interface identifier, as specified in ERC-165. + * @return `true` if the contract implements `interfaceId` and + * `interfaceId` is not 0xffffffff, `false` otherwise. + */ + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(AccessControlDefaultAdminRules, Distributor) returns (bool) { + return + AccessControlDefaultAdminRules.supportsInterface(interfaceId) || Distributor.supportsInterface(interfaceId); + } + + function changeVersion( + bytes32 distributionId, + LibSemver.VersionRequirement memory newRequirement + ) public override onlyRole(DEFAULT_ADMIN_ROLE) { + super._changeVersion(distributionId, newRequirement); + } + + // @inheritdoc IDistributor + function addDistribution( + IRepository repository, + address initializer, + LibSemver.VersionRequirement memory requirement + ) external override onlyRole(DEFAULT_ADMIN_ROLE) { + super._addDistribution(address(repository), initializer, requirement); + } +} diff --git a/src/facets/DNSFacet.sol b/src/facets/DNSFacet.sol index 7700b666..9d1ca46a 100644 --- a/src/facets/DNSFacet.sol +++ b/src/facets/DNSFacet.sol @@ -7,8 +7,6 @@ import "../abstracts/draft-EIP712Diamond.sol"; import "../interfaces/IMultipass.sol"; import "../libraries/LibMultipass.sol"; import "../modifiers/OnlyOwnerDiamond.sol"; -import "hardhat/console.sol"; -import "../vendor/diamond/facets/OwnershipFacet.sol"; // Consider upgrade for https://eips.ethereum.org/EIPS/eip-4834 diff --git a/src/facets/RankifyInstanceGameMastersFacet.sol b/src/facets/RankifyInstanceGameMastersFacet.sol index 1493b4a0..6abbab7b 100644 --- a/src/facets/RankifyInstanceGameMastersFacet.sol +++ b/src/facets/RankifyInstanceGameMastersFacet.sol @@ -1,7 +1,6 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; -import {LibArray} from "../libraries/LibArray.sol"; import {LibTBG} from "../libraries/LibTurnBasedGame.sol"; import {LibRankify} from "../libraries/LibRankify.sol"; import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol"; @@ -9,7 +8,6 @@ import "../abstracts/DiamondReentrancyGuard.sol"; import "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "../abstracts/draft-EIP712Diamond.sol"; -import {RankToken} from "../tokens/RankToken.sol"; import {LibCoinVending} from "../libraries/LibCoinVending.sol"; import "hardhat/console.sol"; import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol"; @@ -139,7 +137,7 @@ contract RankifyInstanceGameMastersFacet is DiamondReentrancyGuard, EIP712 { */ function _afterNextTurn(uint256 gameId, string[] memory newProposals) private { IRankifyInstanceCommons.RInstance storage game = gameId.getGameStorage(); - for (uint256 i = 0; i < newProposals.length; i++) { + for (uint256 i = 0; i < newProposals.length; ++i) { game.ongoingProposals[i] = newProposals[i]; } } @@ -208,10 +206,10 @@ contract RankifyInstanceGameMastersFacet is DiamondReentrancyGuard, EIP712 { address[] memory players = gameId.getPlayers(); if (turn != 1) { uint256[][] memory votesSorted = new uint256[][](players.length); - for (uint256 player = 0; player < players.length; player++) { + for (uint256 player = 0; player < players.length; ++player) { votesSorted[player] = new uint256[](players.length); } - for (uint256 votee = 0; votee < players.length; votee++) { + for (uint256 votee = 0; votee < players.length; ++votee) { uint256 voteesColumn = proposerIndicies[votee]; if (voteesColumn < players.length) { // if index is above length of players array, it means the player did not propose @@ -222,7 +220,7 @@ contract RankifyInstanceGameMastersFacet is DiamondReentrancyGuard, EIP712 { } (, uint256[] memory roundScores) = gameId.calculateScoresQuadratic(votesSorted, proposerIndicies); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { string memory proposal = game.ongoingProposals[proposerIndicies[i]]; emit ProposalScore(gameId, turn, proposal, proposal, roundScores[i]); } @@ -232,7 +230,7 @@ contract RankifyInstanceGameMastersFacet is DiamondReentrancyGuard, EIP712 { // Clean up game instance for upcoming round - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { game.proposalCommitmentHashes[players[i]] = bytes32(0); game.ongoingProposals[i] = ""; game.playerVoted[players[i]] = false; diff --git a/src/facets/RankifyInstanceGameOwnersFacet.sol b/src/facets/RankifyInstanceGameOwnersFacet.sol index 646c7f6f..59ff6c49 100644 --- a/src/facets/RankifyInstanceGameOwnersFacet.sol +++ b/src/facets/RankifyInstanceGameOwnersFacet.sol @@ -7,6 +7,7 @@ import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol import "../abstracts/draft-EIP712Diamond.sol"; import "../vendor/diamond/libraries/LibDiamond.sol"; import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol"; error ZeroValue(); @@ -85,6 +86,27 @@ contract RankifyInstanceGameOwnersFacet { _RInstance.rankTokenAddress = newRankToken; } + /** + * + * @dev Sets the payment token address. + * Requirements: + * + * - The caller must be the contract owner. + * - `newPaymentToken` must not be the zero address. + * - `newRankToken` must support the ERC20 interface. + */ + function setPaymentTokenAddress(address newPaymentToken) external { + LibDiamond.enforceIsContractOwner(); + if (newPaymentToken == address(0)) { + require(false, "zerovalue"); //revert ZeroValue(); + } + if (!ERC165Checker.supportsInterface(newPaymentToken, type(IERC20).interfaceId)) { + require(false, "wrongaddress"); //revert WrongAddress(); + } + IRankifyInstanceCommons.RInstanceSettings storage _RInstance = RInstanceStorage(); + _RInstance.gamePaymentToken = newPaymentToken; + } + /** * @dev Sets the time per turn. `newTimePerTurn` is the new time per turn. * diff --git a/src/facets/RankifyInstanceMainFacet.sol b/src/facets/RankifyInstanceMainFacet.sol index 069b192b..9cadd1f9 100644 --- a/src/facets/RankifyInstanceMainFacet.sol +++ b/src/facets/RankifyInstanceMainFacet.sol @@ -6,7 +6,6 @@ import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol import {IERC1155Receiver} from "../interfaces/IERC1155Receiver.sol"; import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import {IRankToken} from "../interfaces/IRankToken.sol"; import "../abstracts/DiamondReentrancyGuard.sol"; import {LibRankify} from "../libraries/LibRankify.sol"; import {LibCoinVending} from "../libraries/LibCoinVending.sol"; @@ -57,21 +56,6 @@ contract RankifyInstanceMainFacet is emit gameCreated(gameId, gameMaster, msg.sender, gameRank); } - function createGame(address gameMaster, uint256 gameId, uint256 gameRank, address[] memory additionalRanks) public { - createGame(gameMaster, gameId, gameRank); - RInstance storage game = gameId.getGameStorage(); - if (additionalRanks.length != 0) { - for (uint256 i = 0; i < additionalRanks.length; i++) { - IRankToken additonalRank = IRankToken(additionalRanks[i]); - require(additonalRank.supportsInterface(type(IRankToken).interfaceId), "must support rank interface"); - require(additonalRank.getRankingInstance() == address(this), "must be rankingInstance"); - additonalRank.mint(address(this), 1, gameRank + 1, ""); - additonalRank.mint(address(this), 3, gameRank, ""); - } - game.additionalRanks = additionalRanks; - } - } - function createGame(address gameMaster, uint256 gameRank) public { LibRankify.enforceIsInitialized(); RInstanceSettings storage settings = RInstanceStorage(); @@ -298,7 +282,7 @@ contract RankifyInstanceMainFacet is IRankifyInstanceCommons.RInstance storage game = gameId.getGameStorage(); address[] memory players = gameId.getPlayers(); bool[] memory playerVoted = new bool[](players.length); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { playerVoted[i] = game.playerVoted[players[i]]; } return playerVoted; @@ -308,7 +292,7 @@ contract RankifyInstanceMainFacet is LibTBG.GameInstance storage game = gameId._getGame(); address[] memory players = gameId.getPlayers(); bool[] memory playersMoved = new bool[](players.length); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { playersMoved[i] = game.madeMove[players[i]]; } return (playersMoved, game.numPlayersMadeMove); diff --git a/src/fixtures/MigrationLibFixture.sol b/src/fixtures/MigrationLibFixture.sol deleted file mode 100644 index eee7b33e..00000000 --- a/src/fixtures/MigrationLibFixture.sol +++ /dev/null @@ -1,241 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -// import "./LibDiamondOwner.sol"; -// import { IMultipass } from "../interfaces/sol"; - -library LibMultipass { - /** - * @dev resolves user from any given argument - * Requirements: - * domainName must be given and must be initialized - * id OR username OR address must be given - * This method first tries to resolve by address, then by user id and finally by username - * @param domainName domain name - * @param userAddress adress of user - * @param id user id - * @param username username - * @param targetDomain if this is set to valid domain name, then after sucessfull resolving account at domainName, - * this method will rerun with resolving user properties in targetDomain - */ - struct NameQuery { - string domainName; - address userAddress; - string name; - string id; - string targetDomain; - } - - /** - * @dev The domain name of the registrar. - * @param registrar is the address private key of which is owned by signing server (e.g. Discord bot server) - * @param name is unique string that is used to find this domain within domains. - * @param freeRegistrationsNumber is the number of free registrations for this domain - - * @param fee amount of payment requried to register name in the domain - * @param ttl time to live for changes in the domain properties - * @param isActive when is false domain name will not respond to any changes and will not return any address - **/ - struct Domain { - bytes32 name; //32bytes - uint256 fee; //32bytes - uint256 freeRegistrationsNumber; //32bytes - uint256 referrerReward; //32bytes - uint256 referralDiscount; //32bytes - bool isActive; //1byte - address registrar; //20 bytes - uint24 ttl; //3 bytes (not being used for now) - uint256 registerSize; //32bytes - } - - struct NameQueryBytes32 { - string domainName; - address userAddress; - bytes32 name; - bytes32 id; - string targetDomain; - } - struct Record { - address wallet; - string name; - string id; - uint96 nonce; - } - - struct RecordBytes32 { - address wallet; - bytes32 name; - bytes32 id; - uint96 nonce; - } - - bytes32 constant MULTIPASS_STORAGE_POSITION = keccak256("multipass.diamond.storage.position"); - - /** - * @dev The domain name of the registrar. - * @param properties - domain configuration - * @param idToAddress is mapping from unique identificator to an address - * @param registerSize is number of registered users for this domain - * @param nonce is incremented each time Record changes in addressToId map - * @param nameToId is mapping from names to unique identificator. While each name required to be unique, - names might change on the domain, so we keep records to user identificators as immutable property of user - * @param addressToId is mapping from an address to unique identificator - * @param idToName is mapping from identificator to a name - **/ - struct DomainNameService { - Domain properties; //128 bytes - mapping(bytes32 => address) idToAddress; //N*20bytes - mapping(bytes32 => uint96) nonce; //N*12bytes - mapping(address => bytes32) addressToId; //N*32 bytes - mapping(uint256 => bytes32) TestInTheMiddle; - mapping(bytes32 => bytes32) nameToId; //N*32 bytes - mapping(bytes32 => bytes32) idToName; //N*32 bytes - //Total: 128+N*160 Bytes - } - - struct MultipassStorageStruct { - mapping(uint256 => DomainNameService) s_domains; - mapping(bytes32 => uint256) s_domainNameToIndex; //helper to get domain index by name - string s_version; - uint256 s_numDomains; - } - - function MultipassStorage() internal pure returns (MultipassStorageStruct storage es) { - bytes32 position = MULTIPASS_STORAGE_POSITION; - assembly { - es.slot := position - } - } - - bytes32 internal constant _TYPEHASH = - keccak256("registerName(string name,string id,string domainName,uint256 deadline,uint96 nonce)"); - - function _stringToBytes32(string memory source) internal pure returns (bytes32 result) { - require(bytes(source).length <= 32, "_stringToBytes32->String longer than 32 bytes"); - bytes memory tempEmptyStringTest = bytes(source); - if (tempEmptyStringTest.length == 0) { - return 0x0; - } - - assembly { - result := mload(add(source, 32)) - } - } - - function _checkStringFits32b(string memory value) internal pure returns (bool) { - if (bytes(value).length <= 32) { - return true; - } else { - return false; - } - } - - function _checkStringNotEmpty(string memory value) internal pure returns (bool) { - if (bytes(value).length == 0) { - return false; - } else { - return true; - } - } - - /** - @dev resolves Record of name query in to status and identity */ - function resolveRecord(NameQuery memory query) internal view returns (bool, RecordBytes32 memory) { - NameQueryBytes32 memory query32b; - query32b.name = _stringToBytes32(query.name); - query32b.id = _stringToBytes32(query.id); - query32b.domainName = query.domainName; - query32b.targetDomain = query.targetDomain; - query32b.userAddress = query.userAddress; - return _resolveRecord(query32b); - } - - function _hash(bytes32 value) internal pure returns (bytes32) { - return keccak256(abi.encodePacked(value)); - } - - /** - * @dev This does not check for bytelength. Use only for read operations - */ - function _hash(string memory value) internal pure returns (bytes32) { - require(_checkStringFits32b(value), "_hash-> string too long"); - return keccak256(abi.encodePacked(value)); - } - - function _getDomainStorage(string memory domainName) internal view returns (DomainNameService storage) { - MultipassStorageStruct storage s = MultipassStorage(); - - return s.s_domains[s.s_domainNameToIndex[_hash(domainName)]]; - } - - function _bytes32ToString(bytes32 value) private pure returns (string memory) { - return string(abi.encodePacked(value)); - } - - function _resolveRecord(NameQueryBytes32 memory query) private view returns (bool, RecordBytes32 memory) { - if ((query.userAddress == address(0)) && (query.id.length == 0) && (query.name.length == 0)) { - RecordBytes32 memory rv; - return (false, rv); - } - - MultipassStorageStruct storage s = MultipassStorage(); - DomainNameService storage _domain = s.s_domains[s.s_domainNameToIndex[_hash(query.domainName)]]; - DomainNameService storage _targetDomain = s.s_domains[ - s.s_domainNameToIndex[_hash(bytes(query.targetDomain).length == 0 ? query.domainName : query.targetDomain)] - ]; - - address _wallet; - { - // resolve wallet - if (query.userAddress != address(0)) { - _wallet = query.userAddress; - } else if (query.id.length != 0) { - _wallet = _domain.idToAddress[_hash(query.id)]; - } else if (query.name.length != 0) { - bytes32 _id = _domain.nameToId[_hash(query.name)]; - _wallet = _domain.idToAddress[_hash(_id)]; - } - } - //from wallet find and return record - return _resolveFromAddress(_wallet, _targetDomain); - } - - /** @dev this function bears no security checks, it will ignore nonce in arg and will increment - * nonce value stored in domain instread - */ - function _setRecord(DomainNameService storage domain, RecordBytes32 memory record) private { - domain.addressToId[record.wallet] = record.id; - domain.idToAddress[record.id] = record.wallet; - domain.idToName[record.id] = record.name; - domain.nameToId[record.name] = record.id; - domain.nonce[record.id] += record.nonce; - } - - function _resolveFromAddress( - address _address, - DomainNameService storage _domain - ) private view returns (bool, RecordBytes32 memory) { - RecordBytes32 memory resolved; - - resolved.id = _domain.addressToId[_address]; - resolved.name = _domain.idToName[resolved.id]; - resolved.nonce = _domain.nonce[resolved.id]; - resolved.wallet = _address; - if (resolved.id.length == 0) { - return (false, resolved); - } - return (true, resolved); - } - - function _RecordStringify(RecordBytes32 memory input) internal pure returns (Record memory) { - Record memory retval; - retval.wallet = input.wallet; - retval.name = _bytes32ToString(input.name); - retval.id = _bytes32ToString(input.id); - retval.nonce = input.nonce; - return retval; - } - - using LibMultipass for RecordBytes32; - using LibMultipass for NameQuery; -} diff --git a/src/initializers/RankifyInstanceInit.sol b/src/initializers/RankifyInstanceInit.sol index c2cd78cc..12b75877 100644 --- a/src/initializers/RankifyInstanceInit.sol +++ b/src/initializers/RankifyInstanceInit.sol @@ -19,14 +19,15 @@ import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol import {IRankToken} from "../interfaces/IRankToken.sol"; import {LibTBG} from "../libraries/LibTurnBasedGame.sol"; import {LibQuadraticVoting} from "../libraries/LibQuadraticVoting.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; + // import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; -import "hardhat/console.sol"; // It is expected that this contract is customized if you want to deploy your diamond // with data from a deployment script. Use the init function to initialize state variables // of your diamond. Add parameters to the init funciton if you need to. -contract RankifyInstanceInit { +contract RankifyInstanceInit is Initializable { function _buildDomainSeparator( bytes32 typeHash, bytes32 nameHash, @@ -46,21 +47,21 @@ contract RankifyInstanceInit { uint256 timePerTurn; uint256 maxPlayersSize; uint256 minPlayersSize; - address rankTokenAddress; + address rewardToken; uint256 timeToJoin; uint256 gamePrice; uint256 joinGamePrice; uint256 maxTurns; uint256 numWinners; uint256 voteCredits; - address rankifyToken; + address paymentToken; } // You can add parameters to this function in order to pass in // data to set your own state variables - function init(string memory name, string memory version, contractInitializer memory initializer) external { + function init(string memory name, string memory version, contractInitializer memory initData) external initializer { // adding ERC165 data - LibDiamond.enforceIsContractOwner(); + // LibDiamond.enforceIsContractOwner(); LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage(); ds.supportedInterfaces[type(IERC165).interfaceId] = true; ds.supportedInterfaces[type(IDiamondCut).interfaceId] = true; @@ -80,26 +81,26 @@ contract RankifyInstanceInit { ss._TYPE_HASH = typeHash; IRankifyInstanceCommons.RInstanceSettings storage _RInstance = RInstanceStorage(); - _RInstance.voting = LibQuadraticVoting.precomputeValues(initializer.voteCredits, initializer.minPlayersSize); - _RInstance.gamePrice = initializer.gamePrice; - _RInstance.joinGamePrice = initializer.joinGamePrice; - require(initializer.rankifyToken != address(0), "initializer.rankifyToken not set"); - _RInstance.gamePaymentToken = initializer.rankifyToken; - IRankToken rankContract = IRankToken(initializer.rankTokenAddress); + _RInstance.voting = LibQuadraticVoting.precomputeValues(initData.voteCredits, initData.minPlayersSize); + _RInstance.gamePrice = initData.gamePrice; + _RInstance.joinGamePrice = initData.joinGamePrice; + require(initData.paymentToken != address(0), "initializer.paymentToken not set"); + _RInstance.gamePaymentToken = initData.paymentToken; + IRankToken rankContract = IRankToken(initData.rewardToken); require( rankContract.supportsInterface(type(IRankToken).interfaceId), "RankifyInstance->init: rank token address does not support Rank interface" ); - _RInstance.rankTokenAddress = initializer.rankTokenAddress; + _RInstance.rankTokenAddress = initData.rewardToken; _RInstance.contractInitialized = true; LibTBG.GameSettings memory settings; - settings.timePerTurn = initializer.timePerTurn; - settings.maxPlayersSize = initializer.maxPlayersSize; - settings.minPlayersSize = initializer.minPlayersSize; - settings.timeToJoin = initializer.timeToJoin; - settings.maxTurns = initializer.maxTurns; - settings.numWinners = initializer.numWinners; + settings.timePerTurn = initData.timePerTurn; + settings.maxPlayersSize = initData.maxPlayersSize; + settings.minPlayersSize = initData.minPlayersSize; + settings.timeToJoin = initData.timeToJoin; + settings.maxTurns = initData.maxTurns; + settings.numWinners = initData.numWinners; LibTBG.init(settings); // add your own state variables diff --git a/src/initializers/RankifyInstanceMigration.sol b/src/initializers/RankifyInstanceMigration.sol deleted file mode 100644 index fc8f016c..00000000 --- a/src/initializers/RankifyInstanceMigration.sol +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -/******************************************************************************\ -* Author: Nick Mudge (https://twitter.com/mudgen) -* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535 -* -* Implementation of a diamond. -/******************************************************************************/ -import {LibRankify} from "../libraries/LibRankify.sol"; -import {LibDiamond} from "../vendor/diamond/libraries/LibDiamond.sol"; -import {IDiamondLoupe} from "../vendor/diamond/interfaces/IDiamondLoupe.sol"; -import {IDiamondCut} from "../vendor/diamond/interfaces/IDiamondCut.sol"; -import {IERC173} from "../vendor/diamond/interfaces/IERC173.sol"; -import {IERC165} from "../vendor/diamond/interfaces/IERC165.sol"; -import {LibEIP712WithStorage} from "../libraries/LibEIP712Storage.sol"; -import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol"; -import {IRankToken} from "../interfaces/IRankToken.sol"; -import {LibTBG} from "../libraries/LibTurnBasedGame.sol"; -import {LibQuadraticVoting} from "../libraries/LibQuadraticVoting.sol"; -// import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; -import "hardhat/console.sol"; - -// It is expected that this contract is customized if you want to deploy your diamond -// with data from a deployment script. Use the init function to initialize state variables -// of your diamond. Add parameters to the init funciton if you need to. - -contract RankifyInstanceMigration { - function _buildDomainSeparator( - bytes32 typeHash, - bytes32 nameHash, - bytes32 versionHash - ) private view returns (bytes32) { - return keccak256(abi.encode(typeHash, nameHash, versionHash, block.chainid, address(this))); - } - - function RInstanceStorage() internal pure returns (IRankifyInstanceCommons.RInstanceSettings storage bog) { - bytes32 position = LibTBG.getDataStorage(); - assembly { - bog.slot := position - } - } - - struct contractInitializer { - uint256 timePerTurn; - uint256 maxPlayersSize; - uint256 minPlayersSize; - address rankTokenAddress; - uint256 timeToJoin; - uint256 gamePrice; - uint256 joinGamePrice; - uint256 maxTurns; - uint256 numWinners; - uint256 voteCredits; - string subject; - address rankifyToken; - } - - // You can add parameters to this function in order to pass in - // data to set your own state variables - function init() external { - // adding ERC165 data - LibDiamond.enforceIsContractOwner(); - IRankifyInstanceCommons.RInstanceSettings storage _RInstance = RInstanceStorage(); - _RInstance.voting = LibQuadraticVoting.precomputeValues(25, 5); - - // LibTBG.GameInstance storage _game = LibTBG._getGame(1); - // game.numPrevProposals = 9; - // _game.score[0xadb610B944ff11463f6c7B89F75cf30a9DBF680F] = 8; - // _game.score[0xf2B9aAa289565b681D19471c82ea6373c64b8A7D] = 11; - // _game.score[0xd11F3999B70bb274560a2DF255bF4F1B254716fC] = 4; - // _game.score[0xDe20aC808Bc76C10065dbf1151B1688C10E50A10] = 6; - // _game.score[0xAdFbF123888688e47c7375b99605F4e895C7A17b] = 1; - // _game.score[0x12Bec57153B72Ae3bE893e83aFd2F3978e2460EB] = 9; - // _game.score[0x5bA209688eddf113c0d05F78F72636a00425a234] = 4; - // _game.score[0xc1b09A2c252ed6E446942aD5B80698268ef7C3fe] = 2; - // _game.score[0x00678eB740bC89ef32Eac17F1DafebE67A2BC934] = 17; - - // add your own state variables - // EIP-2535 specifies that the `diamondCut` function takes two optional - // arguments: address _init and bytes calldata _calldata - // These arguments are used to execute an arbitrary function using delegatecall - // in order to set state variables in the diamond during deployment or an upgrade - // More info here: https://eips.ethereum.org/EIPS/eip-2535#diamond-interface - } -} diff --git a/src/initializers/TournamentDistributionInitializer.sol b/src/initializers/TournamentDistributionInitializer.sol new file mode 100644 index 00000000..ce02732e --- /dev/null +++ b/src/initializers/TournamentDistributionInitializer.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import "@peeramid-labs/eds/src/interfaces/IInitializer.sol"; +import "../initializers/RankifyInstanceInit.sol"; +import "@peeramid-labs/eds/src/abstracts/CodeIndexer.sol"; +import "@peeramid-labs/eds/src/libraries/LibSemver.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +contract TournamentDistributionInitializer is IInitializer, CodeIndexer, Initializable { + address private immutable paymentToken; + address private immutable rewardToken; + + uint256 private immutable gamePrice; + uint256 private immutable joinGamePrice; + + constructor(address _paymentToken, address _rewardToken, uint256 _gamePrice, uint256 _joinGamePrice) { + paymentToken = _paymentToken; + rewardToken = _rewardToken; + gamePrice = _gamePrice; + joinGamePrice = _joinGamePrice; + } + + struct userSettings { + uint256 timePerTurn; + uint256 maxPlayersSize; + uint256 minPlayersSize; + uint256 timeToJoin; + uint256 maxTurns; + uint256 voteCredits; + } + + function initialize( + bytes32, + address[] memory instances, + bytes32 distributionName, + uint256 distributionVersion, + bytes calldata args + ) external override { + if (instances.length < 3) { + revert("This initializer needs an instance, payment and rank tokens in order to work"); + } + + RankifyInstanceInit initializerFacet = RankifyInstanceInit(instances[0]); + userSettings memory userConfig = abi.decode(args, (userSettings)); + RankifyInstanceInit.contractInitializer memory initializer = RankifyInstanceInit.contractInitializer({ + timePerTurn: userConfig.timePerTurn, + maxPlayersSize: userConfig.maxPlayersSize, + minPlayersSize: userConfig.minPlayersSize, + rewardToken: rewardToken, + timeToJoin: userConfig.timeToJoin, + gamePrice: gamePrice, + joinGamePrice: joinGamePrice, + maxTurns: userConfig.maxTurns, + numWinners: 1, + voteCredits: userConfig.voteCredits, + paymentToken: paymentToken + }); + initializerFacet.init( + string(abi.encodePacked(distributionName)), + LibSemver.toString(LibSemver.parse(distributionVersion)), + initializer + ); + } +} diff --git a/src/interfaces/ILockableERC1155.sol b/src/interfaces/ILockableERC1155.sol index 4753a8e3..071320e5 100644 --- a/src/interfaces/ILockableERC1155.sol +++ b/src/interfaces/ILockableERC1155.sol @@ -8,6 +8,8 @@ import {IERC1155} from "@openzeppelin/contracts/interfaces/IERC1155.sol"; * @dev Interface for a lockable ERC1155 token contract. */ interface ILockableERC1155 is IERC1155 { + error insufficient(uint256 id, uint256 balance, uint256 required); + event TokensLocked(address indexed account, uint256 indexed id, uint256 value); event TokensUnlocked(address indexed account, uint256 indexed id, uint256 value); diff --git a/src/interfaces/IRankToken.sol b/src/interfaces/IRankToken.sol index a3adb25d..a15816c6 100644 --- a/src/interfaces/IRankToken.sol +++ b/src/interfaces/IRankToken.sol @@ -32,7 +32,7 @@ interface IRankToken is ILockableERC1155 { * * - The address of the ranking instance. */ - function getRankingInstance() external view returns (address); + // function getRankingInstance() external view returns (address); // /** // * @dev Finds the new rank of an account. `account` is the address of the account. `oldRank` is the old rank of the account. diff --git a/src/interfaces/IRankifyInstanceCommons.sol b/src/interfaces/IRankifyInstanceCommons.sol index 9933abfa..08c66f52 100644 --- a/src/interfaces/IRankifyInstanceCommons.sol +++ b/src/interfaces/IRankifyInstanceCommons.sol @@ -2,15 +2,9 @@ pragma solidity ^0.8.20; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import {LibTBG} from "../libraries/LibTurnBasedGame.sol"; -import {LibCoinVending} from "../libraries/LibCoinVending.sol"; import {LibQuadraticVoting} from "../libraries/LibQuadraticVoting.sol"; interface IRankifyInstanceCommons { - struct Score { - address participant; - uint256 score; - } - struct RInstanceSettings { uint256 gamePrice; address gamePaymentToken; diff --git a/src/libraries/LibArray.sol b/src/libraries/LibArray.sol index c06433e2..fefffa44 100644 --- a/src/libraries/LibArray.sol +++ b/src/libraries/LibArray.sol @@ -25,11 +25,11 @@ library LibArray { if (i == j) return; uint256 pivot = arr[uint256(left + (right - left) / 2)]; while (i <= j) { - while (arr[uint256(i)] > pivot) i++; + while (arr[uint256(i)] > pivot) ++i; while (pivot > arr[uint256(j)]) j--; if (i <= j) { (arr[uint256(i)], arr[uint256(j)]) = (arr[uint256(j)], arr[uint256(i)]); - i++; + ++i; j--; } } diff --git a/src/libraries/LibCoinVending.sol b/src/libraries/LibCoinVending.sol index 31dbfab1..0c757f0a 100644 --- a/src/libraries/LibCoinVending.sol +++ b/src/libraries/LibCoinVending.sol @@ -343,7 +343,7 @@ library LibCoinVending { position.ethValues.burn; require(msg.value >= VLReq, "msg.value too low"); } - for (uint256 i = 0; i < position.contractAddresses.length; i++) { + for (uint256 i = 0; i < position.contractAddresses.length; ++i) { address contractAddress = position.contractAddresses[i]; uint256 id = position.contractIds[i]; ContractTypes contractType = position.contractTypes[i]; @@ -419,7 +419,7 @@ library LibCoinVending { */ function batchRefund(bytes32 position, address[] memory returnAddresses) internal { Condition storage reqPos = coinVendingPosition(position); - for (uint256 i = 0; i < returnAddresses.length; i++) { + for (uint256 i = 0; i < returnAddresses.length; ++i) { _refund(reqPos, returnAddresses[i]); } } @@ -466,7 +466,7 @@ library LibCoinVending { address[] memory returnAddresses ) internal { Condition storage reqPos = coinVendingPosition(position); - for (uint256 i = 0; i < returnAddresses.length; i++) { + for (uint256 i = 0; i < returnAddresses.length; ++i) { { _release(reqPos, payee, beneficiary, returnAddresses[i]); } @@ -517,7 +517,7 @@ library LibCoinVending { delete mustDo.contractAddresses; delete mustDo.contractIds; delete mustDo.contractTypes; - for (uint256 i = 0; i < configuration.contracts.length; i++) { + for (uint256 i = 0; i < configuration.contracts.length; ++i) { mustDo.contractAddresses.push(configuration.contracts[i].contractAddress); mustDo.contractIds.push(configuration.contracts[i].contractId); mustDo.contractTypes.push(configuration.contracts[i].contractType); diff --git a/src/libraries/LibRankify.sol b/src/libraries/LibRankify.sol index 3742a531..a42eeb0b 100644 --- a/src/libraries/LibRankify.sol +++ b/src/libraries/LibRankify.sol @@ -219,7 +219,7 @@ library LibRankify { emitRankRewards(gameId, gameId.getLeaderBoard()); (, uint256[] memory finalScores) = gameId.getScores(); address[] memory players = gameId.getPlayers(); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { removeAndUnlockPlayer(gameId, players[i]); playersGameEndedCallback(gameId, players[i]); } @@ -283,7 +283,7 @@ library LibRankify { ) internal { // Cancel the game for each player address[] memory players = gameId.getPlayers(); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { quitGame(gameId, players[i], false, onPlayerLeftCallback); //this will throw if game has started or doesnt exist } @@ -315,7 +315,7 @@ library LibRankify { IRankifyInstanceCommons.RInstance storage game = getGameStorage(gameId); if (game.rank > 1) { _fulfillRankRq(player, game.rank, settings.rankTokenAddress); - for (uint256 i = 0; i < game.additionalRanks.length; i++) { + for (uint256 i = 0; i < game.additionalRanks.length; ++i) { _fulfillRankRq(player, game.rank, game.additionalRanks[i]); } } @@ -347,7 +347,7 @@ library LibRankify { IRankifyInstanceCommons.RInstance storage game = getGameStorage(gameId); IRankifyInstanceCommons.RInstanceSettings storage settings = LibRankify.RInstanceStorage(); emitRankReward(gameId, leaderboard, settings.rankTokenAddress); - for (uint256 i = 0; i < game.additionalRanks.length; i++) { + for (uint256 i = 0; i < game.additionalRanks.length; ++i) { emitRankReward(gameId, leaderboard, game.additionalRanks[i]); } } @@ -383,7 +383,7 @@ library LibRankify { IRankifyInstanceCommons.RInstance storage game = getGameStorage(gameId); if (game.rank > 1) { _releaseRankToken(player, game.rank, settings.rankTokenAddress); - for (uint256 i = 0; i < game.additionalRanks.length; i++) { + for (uint256 i = 0; i < game.additionalRanks.length; ++i) { _releaseRankToken(player, game.rank, game.additionalRanks[i]); } } @@ -433,15 +433,14 @@ library LibRankify { ) internal returns (uint256[] memory, uint256[] memory) { address[] memory players = gameId.getPlayers(); uint256[] memory scores = new uint256[](players.length); - uint256[] memory roundScores = new uint256[](players.length); bool[] memory playerVoted = new bool[](players.length); IRankifyInstanceCommons.RInstanceSettings storage settings = RInstanceStorage(); IRankifyInstanceCommons.RInstance storage game = getGameStorage(gameId); // Convert mappiing to array to pass it to libQuadratic - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { playerVoted[i] = game.playerVoted[players[i]]; } - roundScores = settings.voting.computeScoresByVPIndex( + uint256[] memory roundScores = settings.voting.computeScoresByVPIndex( votesRevealed, playerVoted, settings.voting.maxQuadraticPoints, diff --git a/src/libraries/LibTurnBasedGame.sol b/src/libraries/LibTurnBasedGame.sol index 1a94fee8..9ad93521 100644 --- a/src/libraries/LibTurnBasedGame.sol +++ b/src/libraries/LibTurnBasedGame.sol @@ -156,7 +156,7 @@ library LibTBG { TBGStorageStruct storage tbg = TBGStorage(); GameInstance storage _game = _getGame(gameId); address[] memory players = _game.players.values(); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { tbg.games[gameId].score[players[i]] = 0; tbg.games[gameId].madeMove[players[i]] = false; } @@ -357,7 +357,7 @@ library LibTBG { * - Sets the madeMove of each player in `game` to false. */ function _clearCurrentMoves(GameInstance storage game) internal { - for (uint256 i = 0; i < game.players.length(); i++) { + for (uint256 i = 0; i < game.players.length(); ++i) { address player = game.players.at(i); game.madeMove[player] = false; } @@ -372,7 +372,7 @@ library LibTBG { * - Sets the madeMove and score of each player in `game` to their initial values. */ function _resetPlayerStates(GameInstance storage game) internal { - for (uint256 i = 0; i < game.players.length(); i++) { + for (uint256 i = 0; i < game.players.length(); ++i) { address player = game.players.at(i); game.madeMove[player] = false; game.score[player] = 0; @@ -419,7 +419,7 @@ library LibTBG { function getScores(uint256 gameId) internal view returns (address[] memory, uint256[] memory) { address[] memory players = getPlayers(gameId); uint256[] memory scores = new uint256[](players.length); - for (uint256 i = 0; i < players.length; i++) { + for (uint256 i = 0; i < players.length; ++i) { scores[i] = getScore(gameId, players[i]); } return (players, scores); @@ -848,7 +848,7 @@ library LibTBG { (address[] memory players, uint256[] memory scores) = getScores(gameId); LibArray.quickSort(scores, int256(0), int256(scores.length - 1)); - for (uint256 i = 0; i < players.length - 1; i++) { + for (uint256 i = 0; i < players.length - 1; ++i) { if ((i <= tbg.settings.numWinners - 1)) { if (scores[i] == scores[i + 1]) { return (true); @@ -886,12 +886,12 @@ library LibTBG { if (i == j) return; uint256 pivot = scores[uint256(left + (right - left) / 2)]; while (i <= j) { - while (scores[uint256(i)] > pivot) i++; + while (scores[uint256(i)] > pivot) ++i; while (pivot > scores[uint256(j)]) j--; if (i <= j) { (scores[uint256(i)], scores[uint256(j)]) = (scores[uint256(j)], scores[uint256(i)]); (players[uint256(i)], players[uint256(j)]) = (players[uint256(j)], players[uint256(i)]); - i++; + ++i; j--; } } diff --git a/src/mocks/MockERC20.sol b/src/mocks/MockERC20.sol index 97338fba..10bcc9ea 100644 --- a/src/mocks/MockERC20.sol +++ b/src/mocks/MockERC20.sol @@ -5,8 +5,6 @@ import "@openzeppelin/contracts/access/Ownable.sol"; pragma solidity ^0.8.20; contract MockERC20 is ERC20Burnable, Ownable { - uint256 numTokens; - constructor(string memory name_, string memory symbol_, address owner) ERC20(name_, symbol_) Ownable(owner) { require(owner != address(0), "must specify owner of the contract"); transferOwnership(owner); diff --git a/src/mocks/RankifyInstanceEventMock.sol b/src/mocks/RankifyInstanceEventMock.sol index 5998a20b..7f0eeaed 100644 --- a/src/mocks/RankifyInstanceEventMock.sol +++ b/src/mocks/RankifyInstanceEventMock.sol @@ -42,15 +42,15 @@ contract RankifyInstanceEventMock { constructor() { address[] memory players = new address[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { players[i] = (address(i)); } uint256[] memory scores = new uint256[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { scores[i] = i; } string[] memory newProposals = new string[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { newProposals[i] = "https://www.youtube.com/watch?v=KaOC9danxNo"; } emit TurnEnded(1, 1, players, scores, newProposals, scores, votes); @@ -58,15 +58,15 @@ contract RankifyInstanceEventMock { function fireAll() public { address[] memory players = new address[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { players[i] = (address(i)); } uint256[] memory scores = new uint256[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { scores[i] = i; } string[] memory newProposals = new string[](5); - for (uint160 i = 0; i < 5; i++) { + for (uint160 i = 0; i < 5; ++i) { newProposals[i] = "https://www.youtube.com/watch?v=KaOC9danxNo"; } diff --git a/src/repos/Repo.sol b/src/repos/Repo.sol new file mode 100644 index 00000000..0f94cea5 --- /dev/null +++ b/src/repos/Repo.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; +import "@peeramid-labs/eds/src/repositories/OwnableRepository.sol"; + +contract Repo is OwnableRepository { + constructor(address owner, bytes32 name, string memory contractURI) OwnableRepository(owner, name, contractURI) {} +} diff --git a/src/tokens/DistributableGovernanceERC20.sol b/src/tokens/DistributableGovernanceERC20.sol new file mode 100644 index 00000000..47789010 --- /dev/null +++ b/src/tokens/DistributableGovernanceERC20.sol @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +pragma solidity 0.8.20; + +// import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +// import {IERC20MetadataUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20MetadataUpgradeable.sol" +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol"; +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {ERC165Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol"; +import "@openzeppelin/contracts-upgradeable/governance/utils/VotesUpgradeable.sol"; +import {DaoAuthorizableUpgradeable} from "@aragon/osx/core/plugin/dao-authorizable/DaoAuthorizableUpgradeable.sol"; +import "@peeramid-labs/eds/src/abstracts/ERC7746Middleware.sol"; +import "@peeramid-labs/eds/src/libraries/LibMiddleware.sol"; +import {IDAO} from "@aragon/osx/core/dao/IDAO.sol"; +import "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +// import {IERC20MintableUpgradeable} from "@aragon/osx/token/ERC20/IERC20MintableUpgradeable.sol"; + +/// @notice The settings for the initial mint of the token. +/// @param receivers The receivers of the tokens. +/// @param amounts The amounts of tokens to be minted for each receiver. +/// @dev The lengths of `receivers` and `amounts` must match. +struct MintSettings { + address[] receivers; + uint256[] amounts; +} + +/// @title IERC20MintableUpgradeable +/// @notice Interface to allow minting of [ERC-20](https://eips.ethereum.org/EIPS/eip-20) tokens. +interface IERC20MintableUpgradeable { + /// @notice Mints [ERC-20](https://eips.ethereum.org/EIPS/eip-20) tokens for a receiving address. + /// @param _to The receiving address. + /// @param _amount The amount of tokens. + function mint(address _to, uint256 _amount) external; +} + +/// @title GovernanceERC20 +/// @author Aragon Association +/// @notice An [OpenZeppelin `Votes`](https://docs.openzeppelin.com/contracts/4.x/api/governance#Votes) compatible [ERC-20](https://eips.ethereum.org/EIPS/eip-20) token that can be used for voting and is managed by a DAO. +contract DistributableGovernanceERC20 is + IERC20MintableUpgradeable, + Initializable, + ERC165Upgradeable, + ERC20VotesUpgradeable, + DaoAuthorizableUpgradeable, + ERC7746Middleware, + ReentrancyGuardUpgradeable +{ + /// @notice Thrown if the number of receivers and amounts specified in the mint settings do not match. + /// @param receiversArrayLength The length of the `receivers` array. + /// @param amountsArrayLength The length of the `amounts` array. + error MintSettingsArrayLengthMismatch(uint256 receiversArrayLength, uint256 amountsArrayLength); + + /// @notice Calls the initialize function. + /// @param _dao The managing DAO. + /// @param _name The name of the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) governance token. + /// @param _symbol The symbol of the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) governance token. + /// @param _mintSettings The token mint settings struct containing the `receivers` and `amounts`. + constructor( + IDAO _dao, + string memory _name, + string memory _symbol, + MintSettings memory _mintSettings, + address _accessManager + ) { + initialize(_dao, _name, _symbol, _mintSettings, _accessManager); + } + + /// @notice Initializes the contract and mints tokens to a list of receivers. + /// @param _dao The managing DAO. + /// @param _name The name of the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) governance token. + /// @param _symbol The symbol of the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) governance token. + /// @param _mintSettings The token mint settings struct containing the `receivers` and `amounts`. + function initialize( + IDAO _dao, + string memory _name, + string memory _symbol, + MintSettings memory _mintSettings, + address accessManager + ) public initializer { + LibMiddleware.LayerStruct[] memory layers = new LibMiddleware.LayerStruct[](1); + + // Set the layer for the sender + layers[0] = LibMiddleware.LayerStruct({layerAddess: accessManager, layerConfigData: ""}); + LibMiddleware.setLayers(layers); + + // Check mint settings + if (_mintSettings.receivers.length != _mintSettings.amounts.length) { + revert MintSettingsArrayLengthMismatch({ + receiversArrayLength: _mintSettings.receivers.length, + amountsArrayLength: _mintSettings.amounts.length + }); + } + + __ERC20_init(_name, _symbol); + __DaoAuthorizableUpgradeable_init(_dao); + + for (uint256 i; i < _mintSettings.receivers.length; ++i) { + _mint(_mintSettings.receivers[i], _mintSettings.amounts[i]); + } + } + + /// @notice Checks if this or the parent contract supports an interface by its ID. + /// @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(ERC20Upgradeable).interfaceId || + // interfaceId == type(ERC20PermitUpgradeable).interfaceId || + interfaceId == type(IERC20Metadata).interfaceId || + interfaceId == type(VotesUpgradeable).interfaceId || + interfaceId == type(IERC20MintableUpgradeable).interfaceId || + super.supportsInterface(interfaceId); + } + + /// @notice Mints tokens to an address. + /// @param to The address receiving the tokens. + /// @param amount The amount of tokens to be minted. + function mint( + address to, + uint256 amount + ) external override nonReentrant ERC7746C(msg.sig, msg.sender, msg.data, 0) { + _mint(to, amount); + } + + // https://forum.openzeppelin.com/t/self-delegation-in-erc20votes/17501/12?u=novaknole + /// @inheritdoc ERC20VotesUpgradeable + function _update(address from, address to, uint256 amount) internal override { + super._update(from, to, amount); + + // Automatically turn on delegation on mint/transfer but only for the first time. + if (to != address(0) && numCheckpoints(to) == 0 && delegates(to) == address(0)) { + _delegate(to, to); + } + } + + // event RankExchanged(address indexed account, uint256 rankTokenId, uint256 amount); + // function exchangeRankToGov(IERC1155 rankTokenAddress, uint256 rankTokenId, uint256 amount) external nonReentrant ERC7746C { + // require(rankTokens.contains(address(rankTokenAddress)), "Rank token not supported"); + // rankTokenAddress.safeTransferFrom(msg.sender, address(this), rankTokenId, amount, ""); + // uint256 principal = minimumParticipantCount ** rankTokenId; + // _mint(msg.sender, principal * amount); + // emit RankExchanged(msg.sender, rankTokenId, amount); + // } +} diff --git a/src/tokens/RankToken.sol b/src/tokens/RankToken.sol index 6de08753..a0cd15d8 100644 --- a/src/tokens/RankToken.sol +++ b/src/tokens/RankToken.sol @@ -1,10 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.20; -import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {IRankToken} from "../interfaces/IRankToken.sol"; -import "../abstracts/CompositeERC1155.sol"; -import "hardhat/console.sol"; +import "../abstracts/LockableERC1155.sol"; +import "@peeramid-labs/eds/src/abstracts/ERC7746Middleware.sol"; +import "@peeramid-labs/eds/src/libraries/LibMiddleware.sol"; +import {IERC1155} from "@openzeppelin/contracts/interfaces/IERC1155.sol"; //ToDo: it was planned to make it track for highest token users hold (their rank), right now it's not implemented. Yet. @@ -13,49 +15,51 @@ import "hardhat/console.sol"; * @author Peersky * @notice RankToken is a composite ERC1155 token that is used to track user ranks */ -contract RankToken is CompositeERC1155, Ownable, IRankToken { - string private _contractURI; - mapping(address => uint256) public rank; - uint256 public topRank; - address private _rankingInstance; - uint256 _levelUpThreshold; - - modifier onlyRankingInstance() { - require(msg.sender == _rankingInstance, "only ranking contract can do that"); - _; +contract RankToken is LockableERC1155, IRankToken, ERC7746Middleware { + struct Storage { + string _contractURI; } - constructor( - string memory uri_, - address owner_, - string memory cURI, - uint256 levelUpThreshold, - address[] memory components, - uint256[] memory componentWeights - ) CompositeERC1155(uri_, components, componentWeights) Ownable(owner_) { - require(owner_ != address(0), "must specify owner of the contract"); - _contractURI = cURI; - _levelUpThreshold = levelUpThreshold; + bytes32 constant RANK_TOKEN_STORAGE_POSITION = keccak256("rank.token.storage.position"); + + function getStorage() private pure returns (Storage storage s) { + bytes32 position = LOCKABLE_TOKEN_STORAGE_POSITION; + assembly { + s.slot := position + } + } + + constructor(string memory uri_, string memory cURI, address accessLayer) { + initialize(uri_, cURI, accessLayer); } - function getRankingInstance() public view returns (address) { - return _rankingInstance; + function initialize(string memory uri_, string memory cURI, address accessLayer) public initializer { + // __Ownable_init(owner_); + _setURI(uri_); + getStorage()._contractURI = cURI; + LibMiddleware.LayerStruct[] memory layers = new LibMiddleware.LayerStruct[](1); + + // Set the layer for the sender + layers[0] = LibMiddleware.LayerStruct({layerAddess: accessLayer, layerConfigData: ""}); + LibMiddleware.setLayers(layers); } + // function getRankingInstance() public view returns (address) { + // return getStorage().rankingInstance; + // } + function contractURI() public view returns (string memory) { - return _contractURI; + return getStorage()._contractURI; } - function setURI(string memory uri_) public onlyOwner { + function setURI(string memory uri_) public ERC7746C(msg.sig, msg.sender, msg.data, 0) { _setURI(uri_); } - function setContractURI(string memory uri_) public onlyOwner { - _contractURI = uri_; + function setContractURI(string memory uri_) public ERC7746C(msg.sig, msg.sender, msg.data, 0) { + getStorage()._contractURI = uri_; } - // event Leader(address indexed account, uint256 indexed rank); - function _mintRank(address to, uint256 amount, uint256 level, bytes memory data) private { require(to != address(0), "RankToken->mint: Address not specified"); require(amount != 0, "RankToken->mint: amount not specified"); @@ -67,21 +71,26 @@ contract RankToken is CompositeERC1155, Ownable, IRankToken { _mint(to, level, amount, data); } - function mint(address to, uint256 amount, uint256 level, bytes memory data) public onlyRankingInstance { + function mint( + address to, + uint256 amount, + uint256 level, + bytes memory data + ) public ERC7746C(msg.sig, msg.sender, msg.data, 0) { _mintRank(to, amount, level, data); } - function updateRankingInstance(address newRankingInstance) public onlyOwner { - require(newRankingInstance != address(0), "must specify ranking instance"); - _rankingInstance = newRankingInstance; - emit RankingInstanceUpdated(newRankingInstance); - } + // function updateRankingInstance(address newRankingInstance) public onlyOwner { + // require(newRankingInstance != address(0), "must specify ranking instance"); + // getStorage()._rankingInstance = newRankingInstance; + // emit RankingInstanceUpdated(newRankingInstance); + // } function lock( address account, uint256 id, uint256 amount - ) public override(LockableERC1155, ILockableERC1155) onlyRankingInstance { + ) public override(LockableERC1155, ILockableERC1155) ERC7746C(msg.sig, msg.sender, msg.data, 0) { super.lock(account, id, amount); } @@ -89,7 +98,7 @@ contract RankToken is CompositeERC1155, Ownable, IRankToken { address account, uint256 id, uint256 amount - ) public override(LockableERC1155, ILockableERC1155) onlyRankingInstance { + ) public override(LockableERC1155, ILockableERC1155) ERC7746C(msg.sig, msg.sender, msg.data, 0) { super.unlock(account, id, amount); } @@ -98,51 +107,20 @@ contract RankToken is CompositeERC1155, Ownable, IRankToken { uint256[] memory ids, uint256[] memory amounts, bytes memory data - ) public onlyRankingInstance { + ) public ERC7746C(msg.sig, msg.sender, msg.data, 0) { require(to != address(0), "RankToken->mint: Address not specified"); require(amounts.length != 0, "RankToken->mint: amount not specified"); require(ids.length != 0, "RankToken->mint: pool id not specified"); _mintBatch(to, ids, amounts, data); } - // function levelUp(address to, uint256 level, bytes memory data) public { - // require(to == msg.sender || msg.sender == _rankingInstance, "levelUp: Not permitted"); - // _burn(to, level, _levelUpThreshold); - // _mintRank(to, 1, level, data); - // emit LevelUp(to, level); - // } - - // function findNewRank(address account, uint256 oldRank) public view returns (uint256) { - // for (uint256 i = oldRank; i > 0; i--) { - // uint256 _balanceTemp = balanceOf(account, i); - // if (_balanceTemp > 0) return i; - // } - // return 0; - // } - - // event RankUpdated(address indexed account, uint256 indexed rank); - function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal override { - // for (uint256 i = 0; i < ids.length; i++) { - // if (rank[to] < ids[i] && values[i] != 0) { - // rank[to] = ids[i]; - // emit RankUpdated(to, ids[i]); - // } - // if (from != address(0) && (rank[from] != findNewRank(from, rank[from]))) { - // uint256 newRankFrom = findNewRank(from, rank[from]); - // rank[from] = newRankFrom; - // emit RankUpdated(from, newRankFrom); - // } - super._update(from, to, ids, values); } - // //ToDo: Rename in to rankOf(address account) - // function getAccountRank(address account) external view returns (uint256) { - // return rank[account]; - // } - - function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC1155) returns (bool) { + function supportsInterface( + bytes4 interfaceId + ) public view virtual override(IERC165, ERC1155Upgradeable) returns (bool) { return interfaceId == type(IRankToken).interfaceId || super.supportsInterface(interfaceId); } } diff --git a/src/tokens/Rankify.sol b/src/tokens/Rankify.sol index e148a455..e492120e 100644 --- a/src/tokens/Rankify.sol +++ b/src/tokens/Rankify.sol @@ -4,8 +4,6 @@ import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract Rankify is ERC20Burnable, Ownable { - uint256 numTokens; - constructor(address owner) ERC20("Rankify", "RFY") Ownable(owner) { require(owner != address(0), "must specify owner of the contract"); } diff --git a/src/vendor/aragon/interfaces.sol b/src/vendor/aragon/interfaces.sol new file mode 100644 index 00000000..9674e76b --- /dev/null +++ b/src/vendor/aragon/interfaces.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +// This is a copy of interfaces and structs from @aragon/osx package +// This had to be done to accomodate difference in solidity version requirements + +struct TokenSettings { + address addr; + string name; + string symbol; +} + +struct Tag { + uint8 release; + uint16 build; +} + +enum VotingMode { + Standard, + EarlyExecution, + VoteReplacement +} + +struct VotingSettings { + VotingMode votingMode; + uint32 supportThreshold; + uint32 minParticipation; + uint64 minDuration; + uint256 minProposerVotingPower; +} + +struct Version { + Tag tag; + address pluginSetup; + bytes buildMetadata; +} + +interface IPluginRepo { + /// @notice Updates the metadata for release with content `@fromHex(_releaseMetadata)`. + /// @param _release The release number. + /// @param _releaseMetadata The release metadata URI. + function updateReleaseMetadata(uint8 _release, bytes calldata _releaseMetadata) external; + + /// @notice Creates a new plugin version as the latest build for an existing release number or the first build for a new release number for the provided `PluginSetup` contract address and metadata. + /// @param _release The release number. + /// @param _pluginSetupAddress The address of the plugin setup contract. + /// @param _buildMetadata The build metadata URI. + /// @param _releaseMetadata The release metadata URI. + function createVersion( + uint8 _release, + address _pluginSetupAddress, + bytes calldata _buildMetadata, + bytes calldata _releaseMetadata + ) external; + + function latestRelease() external view returns (uint8); + + function getLatestVersion(uint8 _release) external view returns (Version memory); +} + +interface IDAOFactory { + struct PluginSetupRef { + Tag versionTag; + IPluginRepo pluginSetupRepo; + } + + /// @notice The container for the DAO settings to be set during the DAO initialization. + /// @param trustedForwarder The address of the trusted forwarder required for meta transactions. + /// @param daoURI The DAO uri used with [EIP-4824](https://eips.ethereum.org/EIPS/eip-4824). + /// @param subdomain The ENS subdomain to be registered for the DAO contract. + /// @param metadata The metadata of the DAO. + struct DAOSettings { + address trustedForwarder; + string daoURI; + string subdomain; + bytes metadata; + } + + /// @notice The container with the information required to install a plugin on the DAO. + /// @param pluginSetupRef The `PluginSetupRepo` address of the plugin and the version tag. + /// @param data The bytes-encoded data containing the input parameters for the installation as specified in the plugin's build metadata JSON file. + struct PluginSettings { + PluginSetupRef pluginSetupRef; + bytes data; + } + + function createDao( + DAOSettings memory daoSettings, + PluginSettings[] memory pluginSettings + ) external returns (address); +} diff --git a/src/vendor/diamond/DiamondClonable.sol b/src/vendor/diamond/DiamondCloneable.sol similarity index 95% rename from src/vendor/diamond/DiamondClonable.sol rename to src/vendor/diamond/DiamondCloneable.sol index 157f0c8f..f10cc6a2 100644 --- a/src/vendor/diamond/DiamondClonable.sol +++ b/src/vendor/diamond/DiamondCloneable.sol @@ -7,9 +7,9 @@ pragma solidity ^0.8.0; import {LibDiamond} from "./libraries/LibDiamond.sol"; import {IDiamondCut} from "./interfaces/IDiamondCut.sol"; -contract DiamondClonable { +contract DiamondCloneable { error fucntionDoesNotExist(bytes4 selector); - address immutable cutFacet; + address private immutable cutFacet; constructor(address _contractOwner, address _diamondCutFacet) payable { cutFacet = _diamondCutFacet; @@ -31,8 +31,6 @@ contract DiamondClonable { LibDiamond.diamondCut(cut, address(0), ""); } - event debuga(address target, bytes data); - // Find facet for function that is called and execute the // function if a facet is found and return any value. fallback() external payable { @@ -50,7 +48,6 @@ contract DiamondClonable { msg.data[4:], (IDiamondCut.FacetCut[], address, bytes) ); - emit debuga(target, data); // diamond was cloned, has no state // Owner is inferred from msg.sender addDiamondCutFacet(msg.sender); diff --git a/src/vendor/diamond/facets/DiamondLoupeFacet.sol b/src/vendor/diamond/facets/DiamondLoupeFacet.sol index c5a2dc1f..2774f27d 100644 --- a/src/vendor/diamond/facets/DiamondLoupeFacet.sol +++ b/src/vendor/diamond/facets/DiamondLoupeFacet.sol @@ -7,7 +7,6 @@ pragma solidity ^0.8.20; /******************************************************************************/ import "../libraries/LibDiamond.sol"; -import "../interfaces/IDiamondCut.sol"; import "../interfaces/IDiamondLoupe.sol"; import "../interfaces/IERC165.sol"; @@ -27,7 +26,7 @@ contract DiamondLoupeFacet is IDiamondLoupe, IERC165 { LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage(); uint256 numFacets = ds.facetAddresses.length; facets_ = new Facet[](numFacets); - for (uint256 i; i < numFacets; i++) { + for (uint256 i; i < numFacets; ++i) { address facetAddress_ = ds.facetAddresses[i]; facets_[i].facetAddress = facetAddress_; facets_[i].functionSelectors = ds.facetFunctionSelectors[facetAddress_].functionSelectors; @@ -61,8 +60,8 @@ contract DiamondLoupeFacet is IDiamondLoupe, IERC165 { } // This implements ERC-165. - function supportsInterface(bytes4 _interfaceId) external view override returns (bool) { + function supportsInterface(bytes4 interfaceId) external view override returns (bool) { LibDiamond.DiamondStorage storage ds = LibDiamond.diamondStorage(); - return ds.supportedInterfaces[_interfaceId]; + return ds.supportedInterfaces[interfaceId]; } } diff --git a/src/vendor/diamond/facets/OwnershipFacet.sol b/src/vendor/diamond/facets/OwnershipFacet.sol index 04073c86..c5ec562e 100644 --- a/src/vendor/diamond/facets/OwnershipFacet.sol +++ b/src/vendor/diamond/facets/OwnershipFacet.sol @@ -10,7 +10,7 @@ contract OwnershipFacet is IERC173 { LibDiamond.setContractOwner(_newOwner); } - function owner() external view override returns (address owner_) { - owner_ = LibDiamond.contractOwner(); + function owner() external view override returns (address) { + return LibDiamond.contractOwner(); } } diff --git a/src/vendor/diamond/facets/Test1Facet.sol b/src/vendor/diamond/facets/Test1Facet.sol index 16ded500..4c8c2237 100644 --- a/src/vendor/diamond/facets/Test1Facet.sol +++ b/src/vendor/diamond/facets/Test1Facet.sol @@ -44,5 +44,5 @@ contract Test1Facet { function test1Func20() external {} - function supportsInterface(bytes4 _interfaceID) external view returns (bool) {} + function supportsInterface(bytes4 interfaceId) external view returns (bool) {} } diff --git a/src/vendor/eds/CodeIndex.sol b/src/vendor/eds/CodeIndex.sol deleted file mode 100644 index 588e9f3b..00000000 --- a/src/vendor/eds/CodeIndex.sol +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; -import "./interfaces/ICodeIndex.sol"; - -/** - * @title Byte Code Indexer Contract - * @notice You can use this contract to index contracts by their bytecode. - * @dev This allows to query contracts by their bytecode instead of addresses. - * @author Tim Pechersky (@Peersky) - */ -contract CodeIndex is ICodeIndex { - mapping(bytes32 => address) private index; - - /** - * @notice Registers a contract in the index by its bytecode hash - * @param container The contract to register - * @dev `msg.codeHash` will be used - * @dev It will revert if the contract is already indexed - */ - function register(address container) external { - address etalon = index[container.codehash]; - if (etalon != address(0)) { - revert alreadyExists(container.codehash, etalon); - } - index[container.codehash] = container; - emit Indexed(container, container.codehash); - } - - /** - * @notice Returns the contract address by its bytecode hash - * @dev returns zero if the contract is not indexed - * @param id The bytecode hash - * @return The contract address - */ - function get(bytes32 id) external view returns (address) { - return index[id]; - } -} diff --git a/src/vendor/eds/README.md b/src/vendor/eds/README.md deleted file mode 100644 index 3318380a..00000000 --- a/src/vendor/eds/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Ethereum Distribution system - - -## Simple implementation - -These interfaces form a simple, un versioned distribution system, that focuses on resource contents (bytecode) over it's location (address). It allow to construct efficient factories for creating and managing multiple instances of the same resource. - -Contents: - -- **CodeIndex**: Simple contract allowing anyone to register association between a bytecode and it's location on chain -- **Distribution**: Contract that allows to instantiate from same resource (bytecode) -- **Distributor**: Contract that allows to instantiate from multiple resources (bytecodes) -- **Installer**: Contract that allows to install and manage multiple instances from multiple distributors - -## End-goal - -![image](https://github.com/user-attachments/assets/15f7e293-5d6d-45e6-9caa-63d8aa3f2613) diff --git a/src/vendor/eds/abstracts/CloneDistribution.sol b/src/vendor/eds/abstracts/CloneDistribution.sol deleted file mode 100644 index c7505b44..00000000 --- a/src/vendor/eds/abstracts/CloneDistribution.sol +++ /dev/null @@ -1,27 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "@openzeppelin/contracts/proxy/Clones.sol"; -import "../interfaces/IDistribution.sol"; -import "./CodeIndexer.sol"; - -abstract contract CloneDistribution is IDistribution, CodeIndexer { - function sources() internal view virtual returns (address[] memory); - - function instantiate() public virtual returns (address[] memory instances) { - address[] memory _sources = sources(); - instances = new address[](_sources.length); - for (uint256 i = 0; i < _sources.length; i++) { - address clone = Clones.clone(_sources[i]); - instances[i] = clone; - } - emit Distributed(msg.sender, instances); - return instances; - } - - function getSources() public view virtual returns (address[] memory) { - return sources(); - } - - function getMetadata() public view virtual returns (string memory); -} diff --git a/src/vendor/eds/abstracts/CodeIndexer.sol b/src/vendor/eds/abstracts/CodeIndexer.sol deleted file mode 100644 index d7676f89..00000000 --- a/src/vendor/eds/abstracts/CodeIndexer.sol +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "../interfaces/ICodeIndex.sol"; - -abstract contract CodeIndexer { - ICodeIndex constant indexContract = ICodeIndex(0xC0D31d4e7987f2eD6bf5225bb28bc14a84858F42); - - constructor() {} - - function getContractsIndex() internal pure returns (ICodeIndex) { - return indexContract; - } - - function index(address source) internal { - indexContract.register(source); - } -} diff --git a/src/vendor/eds/abstracts/DiamondDistribution.sol b/src/vendor/eds/abstracts/DiamondDistribution.sol deleted file mode 100644 index 856a3ac9..00000000 --- a/src/vendor/eds/abstracts/DiamondDistribution.sol +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "../abstracts/CloneDistribution.sol"; -import "../../diamond/DiamondClonable.sol"; -import "../../diamond/facets/DiamondCutFacet.sol"; -import "../distributions/CodeHashDistribution.sol"; -import "../../diamond/libraries/LibDiamond.sol"; -import "../../diamond/interfaces/IDiamondCut.sol"; - -abstract contract DiamondDistribution is CodeHashDistribution { - address immutable initializer; - bytes4 immutable initializerSelector; - - constructor( - bytes32 diamondSourceId, - bytes32 diamondSourceMetadata, - bytes32 initializerId, - bytes4 _initializerSelector - ) CodeHashDistribution(diamondSourceId, diamondSourceMetadata) { - address _initializer = getContractsIndex().get(initializerId); - if (_initializer == address(0)) revert("DiamondDistribution: Initializer not found in index"); - initializer = _initializer; - initializerSelector = _initializerSelector; - } - - function initialize( - DiamondCutFacet instance, - IDiamondCut.FacetCut[] memory _diamondCut, - bytes memory args - ) internal virtual { - bytes memory _calldata = abi.encodeWithSelector(initializerSelector, args); - instance.diamondCut(_diamondCut, initializer, _calldata); - } - - function getSources() public view virtual override returns (address[] memory) { - address[] memory srcs = super.getSources(); - address[] memory _sources = new address[](2); - assert(srcs.length == 1); - _sources[0] = srcs[0]; - _sources[1] = initializer; - return srcs; - } - - function getMetadata() public view virtual override returns (string memory) { - return string(abi.encodePacked(super.getMetadata(), ";", "DiamondDistribution")); //ToDo: Add IPFS link with readme! - } -} diff --git a/src/vendor/eds/distributions/CodeHashDistribution.sol b/src/vendor/eds/distributions/CodeHashDistribution.sol deleted file mode 100644 index 0ce2ce69..00000000 --- a/src/vendor/eds/distributions/CodeHashDistribution.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "../abstracts/CloneDistribution.sol"; -import "../../diamond/DiamondClonable.sol"; -import "../../diamond/facets/DiamondCutFacet.sol"; - -contract CodeHashDistribution is CloneDistribution { - bytes32 immutable metadata; - address immutable _reference; - - constructor(bytes32 codeHash, bytes32 _metadata) { - metadata = _metadata; - ICodeIndex index = getContractsIndex(); - _reference = index.get(codeHash); - if (_reference == address(0)) { - revert("CodeHashDistribution: CodeHash not found in index"); - } - } - - function sources() internal view virtual override returns (address[] memory) { - address[] memory _sources = new address[](1); - _sources[0] = _reference; - return _sources; - } - - function getMetadata() public view virtual override returns (string memory) { - return string(abi.encodePacked(metadata)); //ToDo: Add IPFS link with readme! - } -} diff --git a/src/vendor/eds/interfaces/ICodeIndex.sol b/src/vendor/eds/interfaces/ICodeIndex.sol deleted file mode 100644 index f7db53af..00000000 --- a/src/vendor/eds/interfaces/ICodeIndex.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -interface ICodeIndex { - event Indexed(address indexed container, bytes32 indexed codeHash); - error alreadyExists(bytes32 id, address referance); - - function register(address container) external; - - function get(bytes32 id) external view returns (address); -} diff --git a/src/vendor/eds/interfaces/IDistribution.sol b/src/vendor/eds/interfaces/IDistribution.sol deleted file mode 100644 index 05935d8a..00000000 --- a/src/vendor/eds/interfaces/IDistribution.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -interface IDistribution { - event Distributed(address indexed distributor, address[] instances); - - function instantiate() external returns (address[] memory instances); - - function getSources() external view returns (address[] memory); - - function getMetadata() external view returns (string memory); -} diff --git a/src/vendor/eds/mocks/MockCloneDistribution.sol b/src/vendor/eds/mocks/MockCloneDistribution.sol deleted file mode 100644 index 119fec8f..00000000 --- a/src/vendor/eds/mocks/MockCloneDistribution.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "../abstracts/CloneDistribution.sol"; - -contract MockCloneDistribution is CloneDistribution { - function getMetadata() public pure override returns (string memory) { - return "MockCloneDistribution"; - } - - function sources() internal view override returns (address[] memory) { - address[] memory source = new address[](1); - source[0] = address(this); - return source; - } -} diff --git a/src/vendor/eds/mocks/MockDiamondDistribution.sol b/src/vendor/eds/mocks/MockDiamondDistribution.sol deleted file mode 100644 index 6ac02aba..00000000 --- a/src/vendor/eds/mocks/MockDiamondDistribution.sol +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -import "../abstracts/DiamondDistribution.sol"; -import "../../diamond/interfaces/IDiamondCut.sol"; -import "../../diamond/facets/DiamondLoupeFacet.sol"; -import "../../diamond/facets/DiamondCutFacet.sol"; -import "../interfaces/ICodeIndex.sol"; - -contract TestFacet { - event Bar(); - - function foo() public { - emit Bar(); - } - - function ping() public pure returns (string memory) { - return "pong"; - } -} - -contract MockDiamondDistribution is DiamondDistribution { - address immutable testFacetAddress; - address immutable dimondLoupeFacetAddress; - - constructor( - bytes32 diamondSourceId, - bytes32 testFacetId, - bytes32 diamondLoupeFacetId, - bytes32 initializerId, - bytes4 initializerSelector - ) - DiamondDistribution( - diamondSourceId, - bytes32(abi.encodePacked("Diamond.sol")), - initializerId, - initializerSelector - ) - { - ICodeIndex index = getContractsIndex(); - dimondLoupeFacetAddress = index.get(diamondLoupeFacetId); - testFacetAddress = index.get(testFacetId); - if (testFacetAddress == address(0)) revert("TestFacet not found in index"); - if (dimondLoupeFacetAddress == address(0)) revert("DiamondLoupeFacet not found in index"); - } - - function instantiate() public override returns (address[] memory instances) { - address[] memory _instances = super.instantiate(); - address diamond = _instances[0]; - IDiamondCut.FacetCut[] memory facetCuts = new IDiamondCut.FacetCut[](2); - - bytes4[] memory selectors = new bytes4[](1); - // selectors[0] = TestFacet.foo.selector; - selectors[0] = TestFacet.ping.selector; - facetCuts[0] = IDiamondCut.FacetCut({ - facetAddress: testFacetAddress, - action: IDiamondCut.FacetCutAction.Add, - functionSelectors: selectors - }); - - bytes4[] memory loupeSelectors = new bytes4[](5); - loupeSelectors[0] = DiamondLoupeFacet.facetAddress.selector; - loupeSelectors[1] = DiamondLoupeFacet.facetAddresses.selector; - loupeSelectors[2] = DiamondLoupeFacet.facetFunctionSelectors.selector; - loupeSelectors[3] = DiamondLoupeFacet.facets.selector; - loupeSelectors[4] = DiamondLoupeFacet.supportsInterface.selector; - facetCuts[1] = IDiamondCut.FacetCut({ - facetAddress: dimondLoupeFacetAddress, - action: IDiamondCut.FacetCutAction.Add, - functionSelectors: loupeSelectors - }); - - bytes memory args = new bytes(0); - super.initialize(DiamondCutFacet(diamond), facetCuts, args); - assert(DiamondLoupeFacet(diamond).facets().length == 3); // + CutFacet - - return _instances; - } - - function getMetadata() public view virtual override returns (string memory) { - return string(abi.encodePacked(super.getMetadata(), ";", "initializible")); //ToDo: Add IPFS link with readme! - } -} diff --git a/src/vendor/eds/mocks/MockDiamondInitialize.sol b/src/vendor/eds/mocks/MockDiamondInitialize.sol deleted file mode 100644 index a859db18..00000000 --- a/src/vendor/eds/mocks/MockDiamondInitialize.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; - -contract MockDiamondInitialize { - event MockInit(string testData); - - function init(bytes calldata data) public { - emit MockInit(string(data)); - } -} diff --git a/test/DNSFacet.ts b/test/DNSFacet.ts index a56a8baf..4a3238b2 100644 --- a/test/DNSFacet.ts +++ b/test/DNSFacet.ts @@ -5,6 +5,8 @@ import { expect } from 'chai'; import { ethers } from 'hardhat'; import { IMultipass__factory } from '../types'; const path = require('path'); +import hre from 'hardhat'; +const forkBlockNumber = hre.config.networks.hardhat.forking?.blockNumber ?? 0; import { LibMultipass } from '../types/src/facets/DNSFacet'; const scriptName = path.basename(__filename); @@ -98,7 +100,7 @@ describe(scriptName, () => { name: ethers.utils.formatBytes32String(adr.player1.name), id: ethers.utils.formatBytes32String(adr.player1.id), domainName: ethers.utils.formatBytes32String(NEW_DOMAIN_NAME1), - deadline: ethers.BigNumber.from(9999), + deadline: ethers.BigNumber.from(forkBlockNumber + 9999), nonce: ethers.BigNumber.from(0), }; @@ -327,7 +329,7 @@ describe(scriptName, () => { name: ethers.utils.formatBytes32String(adr.player1.name), id: ethers.utils.formatBytes32String(adr.player1.id), domainName: ethers.utils.formatBytes32String(NEW_DOMAIN_NAME1), - deadline: ethers.BigNumber.from(9999), + deadline: ethers.BigNumber.from(forkBlockNumber + 9999), nonce: ethers.BigNumber.from(0), }; @@ -360,7 +362,7 @@ describe(scriptName, () => { name: ethers.utils.formatBytes32String(adr.player1.name), id: ethers.utils.formatBytes32String(adr.player1.id), domainName: ethers.utils.formatBytes32String(NEW_DOMAIN_NAME1), - deadline: ethers.BigNumber.from(9999), + deadline: ethers.BigNumber.from(forkBlockNumber + 9999), nonce: ethers.BigNumber.from(0), }; @@ -436,7 +438,7 @@ describe(scriptName, () => { players[i], adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -456,7 +458,7 @@ describe(scriptName, () => { players[i], adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -480,7 +482,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); @@ -561,7 +563,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -608,7 +610,7 @@ describe(scriptName, () => { adr.player2, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, adr.player1, ); @@ -630,7 +632,7 @@ describe(scriptName, () => { name: ethers.utils.formatBytes32String(adr.player1.name + `.` + NEW_DOMAIN_NAME1 + `new`), id: ethers.utils.formatBytes32String(adr.player1.id + `.` + NEW_DOMAIN_NAME1), domainName: ethers.utils.formatBytes32String(NEW_DOMAIN_NAME1), - deadline: ethers.BigNumber.from(99999), + deadline: ethers.BigNumber.from(forkBlockNumber + 99999), nonce: ethers.BigNumber.from(1), }; @@ -708,7 +710,7 @@ describe(scriptName, () => { adr.player2, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await env.multipass @@ -725,7 +727,7 @@ describe(scriptName, () => { adr.player2, adr.registrar1, NEW_DOMAIN_NAME2, - 99999, + forkBlockNumber + 99999, env.multipass.address, adr.player2, NEW_DOMAIN_NAME1, @@ -734,7 +736,7 @@ describe(scriptName, () => { adr.player2, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, adr.player2, ); @@ -757,7 +759,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME2, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -802,7 +804,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -824,7 +826,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( @@ -849,7 +851,7 @@ describe(scriptName, () => { adr.player1, adr.registrar1, NEW_DOMAIN_NAME1, - 99999, + forkBlockNumber + 99999, env.multipass.address, ); await expect( diff --git a/test/MAODistribution.ts b/test/MAODistribution.ts new file mode 100644 index 00000000..12ed3b23 --- /dev/null +++ b/test/MAODistribution.ts @@ -0,0 +1,97 @@ +/* global ethers */ + +import { deployments, ethers } from 'hardhat'; +import hre from 'hardhat'; +import { expect } from 'chai'; +import { IDAO, MAODistribution, PeeramidLabsDistributor, Rankify, RankifyDiamondInstance } from '../types'; +import utils, { AdrSetupResult, setupTest } from './utils'; +import { getCodeIdFromArtifact } from '../scripts/getCodeId'; +import addDistribution from '../scripts/playbooks/addDistribution'; + +describe('MAODistribution', async function () { + let contract: MAODistribution; + let distributorContract: PeeramidLabsDistributor; + let maoId: string; + let rankify: Rankify; + let addr: AdrSetupResult; + beforeEach(async function () { + const setup = await setupTest(); + addr = setup.adr; + contract = setup.env.maoDistribution; + const maoCode = await hre.ethers.provider.getCode(contract.address); + maoId = ethers.utils.keccak256(maoCode); + distributorContract = setup.env.distributor; + + rankify = setup.env.rankifyToken; + }); + it('only owner can add distribution', async () => { + await expect( + distributorContract['addDistribution(bytes32,address)'](maoId, ethers.constants.AddressZero), + ).to.revertedWithCustomError(distributorContract, 'AccessControlUnauthorizedAccount'); + await expect( + distributorContract + .connect(addr.gameOwner.wallet) + ['addDistribution(bytes32,address)'](maoId, ethers.constants.AddressZero), + ).to.emit(distributorContract, 'DistributionAdded'); + }); + describe('when distribution was added', async () => { + beforeEach(async () => { + const { owner } = await hre.getNamedAccounts(); + const signer = await hre.ethers.getSigner(owner); + await addDistribution(hre)(await getCodeIdFromArtifact(hre)('MAODistribution'), signer); + }); + it('Can instantiate a distribution', async () => { + // Define the arguments for the instantiate function + const distributorArguments: MAODistribution.DistributorArgumentsStruct = { + DAOSEttings: { + daoURI: 'https://example.com/dao', + subdomain: 'example', + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + tokenName: 'tokenName', + tokenSymbol: 'tokenSymbol', + }, + ACIDSettings: { + RankTokenContractURI: 'https://example.com/rank', + gamePrice: 1, + joinGamePrice: 1, + maxPlayersSize: 16, + maxTurns: 1, + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + minPlayersSize: 4, + paymentToken: rankify.address, + rankTokenURI: 'https://example.com/rank', + timePerTurn: 1, + timeToJoin: 1, + voteCredits: 14, + }, + }; + // const abi = import('../abi/src/distributions/MAODistribution.sol/MAODistribution.json'); + // Encode the arguments + const data = ethers.utils.defaultAbiCoder.encode( + [ + 'tuple(tuple(string daoURI, string subdomain, bytes metadata, string tokenName, string tokenSymbol) DAOSEttings, tuple(uint256 timePerTurn, uint256 maxPlayersSize, uint256 minPlayersSize, uint256 timeToJoin, uint256 maxTurns, uint256 voteCredits, uint256 gamePrice, address paymentToken, uint256 joinGamePrice, string metadata, string rankTokenURI, string RankTokenContractURI) ACIDSettings)', + ], + [distributorArguments], + ); + // const tx = contract.instantiate(data); + const distributorsDistId = ethers.utils.keccak256( + ethers.utils.defaultAbiCoder.encode(['bytes32', 'address'], [maoId, ethers.constants.AddressZero]), + ); + const tx = await distributorContract.instantiate(distributorsDistId, data); + // const receipt = await tx.wait(1); + await expect(tx).not.reverted; + expect((await distributorContract.functions.getDistributions()).length).to.equal(1); + const filter = distributorContract.filters.Instantiated(); + const evts = await distributorContract.queryFilter(filter); + expect(evts.length).to.equal(1); + const daoContract = (await ethers.getContractAt('IDAO', evts[0].args.instances[0])) as IDAO; + expect((await daoContract.functions.getTrustedForwarder())[0]).to.equal(ethers.constants.AddressZero); + + const ACIDContract = (await ethers.getContractAt( + 'RankifyDiamondInstance', + evts[0].args.instances[3], + )) as RankifyDiamondInstance; + expect((await ACIDContract.functions['getGM(uint256)'](0))[0]).to.equal(ethers.constants.AddressZero); + }); + }); +}); diff --git a/test/RankToken.ts b/test/RankToken.ts index cdc42faa..28bd4193 100644 --- a/test/RankToken.ts +++ b/test/RankToken.ts @@ -1,144 +1,199 @@ -import { ethers } from 'hardhat'; +import { ethers, network } from 'hardhat'; import { expect } from 'chai'; import hre, { deployments } from 'hardhat'; -import { AdrSetupResult, setupAddresses } from './utils'; -import { RankToken } from '../types'; +import { AdrSetupResult, EnvSetupResult, RInstanceSettings, setupAddresses, setupTest } from './utils'; +import { RankifyDiamondInstance, RankToken } from '../types'; import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; import { Wallet } from 'ethers'; +import addDistribution from '../scripts/playbooks/addDistribution'; +import { getCodeIdFromArtifact } from '../scripts/getCodeId'; +import { DistributorArgumentsStruct } from '../types/src/distributions/MAODistribution.sol/MAODistribution'; let adr: AdrSetupResult; -let env: RankToken; -let deployer: SignerWithAddress; -let rankingInstance: SignerWithAddress | Wallet; - -const setupTest = deployments.createFixture(async ({ deployments, getNamedAccounts, ethers: _eth }, options) => { - const adr = await setupAddresses(getNamedAccounts, _eth); - const { deployer } = await hre.getNamedAccounts(); - - await adr.contractDeployer.wallet.sendTransaction({ - to: deployer, - value: _eth.utils.parseEther('1'), - }); - await deployments.fixture(['rank_token']); - - const deployment = await deployments.get('RankToken'); - env = (await ethers.getContractAt(deployment.abi, deployment.address)) as RankToken; - const rankingInstance = adr.gameCreator1.wallet; - return { adr, env, deployer, rankingInstance }; -}); +let env: EnvSetupResult; +let rankifyInstance: RankifyDiamondInstance; +let rankToken: RankToken; describe('Rank Token Test', async function () { beforeEach(async function () { const setup = await setupTest(); - env = setup.env; adr = setup.adr; - rankingInstance = setup.rankingInstance; - deployer = await hre.ethers.getSigner(await hre.getNamedAccounts().then(acs => acs.deployer)); - }); - it('Allows only owner to set rankingInstance', async () => { - await expect(env.connect(deployer).updateRankingInstance(adr.gameCreator1.wallet.address)) - .to.emit(env, 'RankingInstanceUpdated') - .withArgs(adr.gameCreator1.wallet.address); - await expect(env.connect(adr.maliciousActor1.wallet).updateRankingInstance(adr.gameCreator1.wallet.address)) - .to.emit(env, 'RankingInstanceUpdated') - .revertedWithCustomError(env, 'OwnableUnauthorizedAccount'); + env = setup.env; + + await addDistribution(hre)(await getCodeIdFromArtifact(hre)('MAODistribution'), adr.gameOwner.wallet); + const distributorArguments: DistributorArgumentsStruct = { + DAOSEttings: { + daoURI: 'https://example.com/dao', + subdomain: 'example', + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + tokenName: 'tokenName', + tokenSymbol: 'tokenSymbol', + }, + ACIDSettings: { + RankTokenContractURI: 'https://example.com/rank', + gamePrice: RInstanceSettings.RInstance_GAME_PRICE, + joinGamePrice: RInstanceSettings.RInstance_JOIN_GAME_PRICE, + maxPlayersSize: RInstanceSettings.RInstance_MAX_PLAYERS, + maxTurns: RInstanceSettings.RInstance_MAX_TURNS, + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + minPlayersSize: RInstanceSettings.RInstance_MIN_PLAYERS, + paymentToken: env.rankifyToken.address, + rankTokenURI: 'https://example.com/rank', + timePerTurn: RInstanceSettings.RInstance_TIME_PER_TURN, + timeToJoin: RInstanceSettings.RInstance_TIME_TO_JOIN, + voteCredits: RInstanceSettings.RInstance_VOTE_CREDITS, + }, + }; + // const abi = import('../abi/src/distributions/MAODistribution.sol/MAODistribution.json'); + // Encode the arguments + const data = ethers.utils.defaultAbiCoder.encode( + [ + 'tuple(tuple(string daoURI, string subdomain, bytes metadata, string tokenName, string tokenSymbol) DAOSEttings, tuple(uint256 timePerTurn, uint256 maxPlayersSize, uint256 minPlayersSize, uint256 timeToJoin, uint256 maxTurns, uint256 voteCredits, uint256 gamePrice, address paymentToken, uint256 joinGamePrice, string metadata, string rankTokenURI, string RankTokenContractURI) ACIDSettings)', + ], + [distributorArguments], + ); + const maoCode = await hre.ethers.provider.getCode(env.maoDistribution.address); + const maoId = ethers.utils.keccak256(maoCode); + const distributorsDistId = ethers.utils.keccak256( + ethers.utils.defaultAbiCoder.encode(['bytes32', 'address'], [maoId, ethers.constants.AddressZero]), + ); + await env.distributor.instantiate(distributorsDistId, data); + const filter = env.distributor.filters.Instantiated(); + const evts = await env.distributor.queryFilter(filter); + rankifyInstance = (await ethers.getContractAt( + 'RankifyDiamondInstance', + evts[0].args.instances[3], + )) as RankifyDiamondInstance; + await network.provider.send('hardhat_setBalance', [rankifyInstance.address, '0x9000000000000000000']); + await env.rankifyToken + .connect(adr.gameCreator1.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken + .connect(adr.gameCreator2.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken + .connect(adr.gameCreator3.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player1.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player2.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player3.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player4.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player5.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player6.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player7.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player8.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player9.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player10.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + + rankToken = (await ethers.getContractAt('RankToken', evts[0].args.instances[13])) as RankToken; }); + // it('Allows only owner to set rankingInstance', async () => { + // await expect(rankToken.connect(deployer).updateRankingInstance(adr.gameCreator1.wallet.address)) + // .to.emit(env, 'RankingInstanceUpdated') + // .withArgs(adr.gameCreator1.wallet.address); + // await expect(rankToken.connect(adr.maliciousActor1.wallet).updateRankingInstance(adr.gameCreator1.wallet.address)) + // .to.emit(env, 'RankingInstanceUpdated') + // .revertedWithCustomError(env, 'OwnableUnauthorizedAccount'); + // }); describe('when ranking instance set and tokens are minted to player', async () => { beforeEach(async () => { - await env.connect(deployer).updateRankingInstance(rankingInstance.address); - await env.connect(rankingInstance).mint(adr.player1.wallet.address, 3, 1, '0x'); + // await rankToken.connect(deployer).updateRankingInstance(rankingInstance.address); + const impersonatedSigner = await ethers.getImpersonatedSigner(rankifyInstance.address); + await rankToken.connect(impersonatedSigner).mint(adr.player1.wallet.address, 3, 1, '0x'); }); it('Can be locked only by instance', async () => { - await expect(env.connect(rankingInstance).lock(adr.player1.wallet.address, 1, 1)) - .to.emit(env, 'TokensLocked') + const impersonatedSigner = await ethers.getImpersonatedSigner(rankifyInstance.address); + await expect(rankToken.connect(impersonatedSigner).lock(adr.player1.wallet.address, 1, 1)) + .to.emit(rankToken, 'TokensLocked') .withArgs(adr.player1.wallet.address, 1, 1); - await expect(env.connect(adr.maliciousActor1.wallet).lock(adr.player1.wallet.address, 1, 1)).to.be.revertedWith( - 'only ranking contract can do that', - ); + await expect( + rankToken.connect(adr.maliciousActor1.wallet).lock(adr.player1.wallet.address, 1, 1), + ).to.be.revertedWithCustomError(env.distributor, 'InvalidInstance'); }); it('Cannot lock more then user has', async () => { - await expect(env.connect(rankingInstance).lock(adr.player1.wallet.address, 1, 4)).to.be.revertedWith( - 'insufficient', - ); + const impersonatedSigner = await ethers.getImpersonatedSigner(rankifyInstance.address); + await expect( + rankToken.connect(impersonatedSigner).lock(adr.player1.wallet.address, 1, 4), + ).to.be.revertedWithCustomError(rankToken, 'insufficient'); }); - // it.only('Returns rank of top token', async () => { - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(1); - // await env - // .connect(adr.player1.wallet) - // .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 1, 3, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(0); - // await env.connect(rankingInstance).mint(adr.player1.wallet.address, 1, 30, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(30); - // await env.connect(rankingInstance).mint(adr.player1.wallet.address, 1, 25, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(30); - // await env.connect(rankingInstance).mint(adr.player1.wallet.address, 1, 40, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(40); - // await env.connect(rankingInstance).mint(adr.player1.wallet.address, 1, 50, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(50); - // await env - // .connect(adr.player1.wallet) - // .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 40, 1, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(50); - // await env - // .connect(adr.player1.wallet) - // .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 50, 1, '0x'); - // expect((await env.connect(adr.player1.wallet).rank(adr.player1.wallet.address)).toNumber()).to.be.equal(30); - // }); + describe('When tokens locked', async () => { beforeEach(async () => { - await env.connect(rankingInstance).lock(adr.player1.wallet.address, 1, 1); + await rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .lock(adr.player1.wallet.address, 1, 1); }); it('reports correct balance of unlocked', async () => { expect( - (await env.connect(adr.maliciousActor1.wallet).unlockedBalanceOf(adr.player1.wallet.address, 1)).toNumber(), + ( + await rankToken.connect(adr.maliciousActor1.wallet).unlockedBalanceOf(adr.player1.wallet.address, 1) + ).toNumber(), ).to.be.equal(2); }); it('Can be unlocked only by a rankingInstance', async () => { - await expect(env.connect(rankingInstance).unlock(adr.player1.wallet.address, 1, 1)) - .to.emit(env, 'TokensUnlocked') + await expect( + rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .unlock(adr.player1.wallet.address, 1, 1), + ) + .to.emit(rankToken, 'TokensUnlocked') .withArgs(adr.player1.wallet.address, 1, 1); await expect( - env.connect(adr.maliciousActor1.wallet).unlock(adr.player1.wallet.address, 1, 1), - ).to.be.revertedWith('only ranking contract can do that'); + rankToken.connect(adr.maliciousActor1.wallet).unlock(adr.player1.wallet.address, 1, 1), + ).to.be.revertedWithCustomError(env.distributor, 'InvalidInstance'); }); it('Can only unlock a locked amount tokens', async () => { - await expect(env.connect(rankingInstance).unlock(adr.player1.wallet.address, 1, 1)) - .to.emit(env, 'TokensUnlocked') + await expect( + rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .unlock(adr.player1.wallet.address, 1, 1), + ) + .to.emit(rankToken, 'TokensUnlocked') .withArgs(adr.player1.wallet.address, 1, 1); - await expect(env.connect(rankingInstance).unlock(adr.player1.wallet.address, 2, 1)).to.be.revertedWith( - 'insufficient', - ); + await expect( + rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .unlock(adr.player1.wallet.address, 2, 1), + ).to.be.revertedWithCustomError(rankToken, 'insufficient'); }); it('Can transfer only unlocked tokens', async () => { await expect( - env + rankToken .connect(adr.player1.wallet) .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 1, 3, '0x'), - ).to.be.revertedWith('insufficient'); + ).to.be.revertedWithCustomError(rankToken, 'insufficient'); await expect( - env + rankToken .connect(adr.player1.wallet) .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 1, 2, '0x'), - ).to.be.emit(env, 'TransferSingle'); + ).to.be.emit(rankToken, 'TransferSingle'); }); it('Can transfer previously locked tokens', async () => { - await env.connect(rankingInstance).unlock(adr.player1.wallet.address, 1, 1); + await rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .unlock(adr.player1.wallet.address, 1, 1); await expect( - env + rankToken .connect(adr.player1.wallet) .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 1, 3, '0x'), - ).to.be.emit(env, 'TransferSingle'); + ).to.be.emit(rankToken, 'TransferSingle'); }); it('Balance still shows same', async () => { - expect((await env.connect(rankingInstance).balanceOf(adr.player1.wallet.address, 1)).toNumber()).to.be.equal(3); + expect( + ( + await rankToken + .connect(await ethers.getImpersonatedSigner(rankifyInstance.address)) + .balanceOf(adr.player1.wallet.address, 1) + ).toNumber(), + ).to.be.equal(3); }); it('Cannot lock more then balance tokens', async () => { await expect( - env + rankToken .connect(adr.player1.wallet) .safeTransferFrom(adr.player1.wallet.address, adr.player2.wallet.address, 1, 4, '0x'), - ).to.be.revertedWith('insufficient'); + ).to.be.revertedWithCustomError(rankToken, 'insufficient'); }); }); }); diff --git a/test/RankifyInstance.ts b/test/RankifyInstance.ts index 186b0133..d1e33684 100644 --- a/test/RankifyInstance.ts +++ b/test/RankifyInstance.ts @@ -1,22 +1,16 @@ import { - AdrSetupResult, - RInstance_MAX_PLAYERS, - RInstance_MIN_PLAYERS, - EnvSetupResult, - getTurnSalt, - mockVote, - MockVotes, - ProposalSubmittion, - setupTest, - SignerIdentity, - ProposalParams, - RInstance_MAX_TURNS, - RInstance_TIME_PER_TURN, + AdrSetupResult, + RInstance_MAX_PLAYERS, + RInstance_MIN_PLAYERS, + EnvSetupResult, MockVotes, + ProposalSubmittion, + setupTest, + SignerIdentity, RInstance_MAX_TURNS } from './utils'; import { RInstanceSettings, mineBlocks, mockProposals, mockVotes, getPlayers } from './utils'; import { expect } from 'chai'; import { time } from '@nomicfoundation/hardhat-network-helpers'; -import { RankifyDiamondInstance } from '../types/'; +import { RankifyDiamondInstance, RankToken } from '../types/'; import { LibCoinVending } from '../types/src/facets/RankifyInstanceRequirementsFacet'; import { IRankifyInstanceCommons } from '../types/src/facets/RankifyInstanceMainFacet'; import { ethers } from 'hardhat'; @@ -24,14 +18,21 @@ const path = require('path'); // import { TokenMust, TokenTypes } from "../types/enums"; import { BigNumber, BigNumberish } from 'ethers'; import { assert } from 'console'; -const scriptName = path.basename(__filename); import { solidityKeccak256 } from 'ethers/lib/utils'; +import addDistribution from '../scripts/playbooks/addDistribution'; +import hre from 'hardhat'; +import { network } from 'hardhat'; +const scriptName = path.basename(__filename); +import { getCodeIdFromArtifact } from '../scripts/getCodeId'; +import { DistributorArgumentsStruct } from '../types/src/distributions/MAODistribution.sol/MAODistribution'; let votes: MockVotes; let proposalsStruct: ProposalSubmittion[]; let adr: AdrSetupResult; let votersAddresses: string[]; let env: EnvSetupResult; +let rankifyInstance: RankifyDiamondInstance; +let rankToken: RankToken; const createGame = async ( gameContract: RankifyDiamondInstance, @@ -40,6 +41,7 @@ const createGame = async ( gameRank: BigNumberish, openNow?: boolean, ) => { + await env.rankifyToken.connect(signer.wallet).approve(gameContract.address, ethers.constants.MaxUint256); await gameContract.connect(signer.wallet)['createGame(address,uint256)'](gameMaster, gameRank); const gameId = await gameContract .getContractState() @@ -55,10 +57,10 @@ const runToTheEnd = async ( distribution?: 'ftw' | 'semiUniform' | 'equal', ) => { // console.log('running to the end'); - // const initialTurn = await env.rankifyInstance.getTurn(gameId); - let isGameOver = await env.rankifyInstance.isGameOver(gameId); + // const initialTurn = await rankifyInstance.getTurn(gameId); + let isGameOver = await rankifyInstance.isGameOver(gameId); while (!isGameOver) { - const turn = await env.rankifyInstance.getTurn(gameId).then(r => r.toNumber()); + const turn = await rankifyInstance.getTurn(gameId).then(r => r.toNumber()); // console.log('running to the end', turn, isLastTurn, isGameOver); if (turn !== 1) { votes = await mockValidVotes(players, gameContract, gameId, gameMaster, true, distribution ?? 'ftw'); @@ -71,7 +73,7 @@ const runToTheEnd = async ( proposals.map(prop => (turn < RInstance_MAX_TURNS ? prop.proposal : '')), proposals.map((p, i) => i), ); - isGameOver = await env.rankifyInstance.isGameOver(gameId); + isGameOver = await rankifyInstance.isGameOver(gameId); } }; const runToLastTurn = async ( @@ -81,7 +83,7 @@ const runToLastTurn = async ( players: [SignerIdentity, SignerIdentity, ...SignerIdentity[]], distribution?: 'ftw' | 'semiUniform' | 'equal', ): Promise => { - const initialTurn = await env.rankifyInstance.getTurn(gameId); + const initialTurn = await rankifyInstance.getTurn(gameId); // console.log("running to last turn, initial: ", initialTurn.toString()); for (let turn = initialTurn.toNumber(); turn < RInstanceSettings.RInstance_MAX_TURNS; turn++) { if (turn !== 1) { @@ -151,8 +153,8 @@ const runToOvertime = async ( // votes.map((vote) => vote.vote) // ); // turn = await gameContract.getTurn(gameId); -// const isOvertime = await env.rankifyInstance.isOvertime(gameId); -// const isGameOver = await env.rankifyInstance.isGameOver(gameId); +// const isOvertime = await rankifyInstance.isOvertime(gameId); +// const isGameOver = await rankifyInstance.isGameOver(gameId); // while (!isGameOver) { // console.log("running isGameOver", isGameOver, isOvertime, turn.toString()); // assert(isOvertime, "should be ovetime, now?"); @@ -198,7 +200,7 @@ const mockValidVotes = async ( if (submitNow) { votersAddresses = players.map(player => player.wallet.address); for (let i = 0; i < players.length; i++) { - await env.rankifyInstance + await rankifyInstance .connect(gameMaster.wallet) .submitVote(gameId, votes[i].voteHidden, players[i].wallet.address); } @@ -213,12 +215,12 @@ const startGame = async ( const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_TO_JOIN) + 1); await mineBlocks(RInstanceSettings.RInstance_TIME_TO_JOIN + 1); - await env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(gameId); + await rankifyInstance.connect(adr.gameMaster1.wallet).startGame(gameId); // proposalsStruct = await mockProposals({ // players: players, // gameId: 1, // turn: 1, - // verifierAddress: env.rankifyInstance.address, + // verifierAddress: rankifyInstance.address, // }); }; @@ -257,8 +259,8 @@ const fillParty = async ( ) => { for (let i = 0; i < players.length; i++) { // let name = `player${i}` as any as keyof AdrSetupResult; - if (!env.rankToken.address) throw new Error('Rank token undefined or undeployed'); - await env.rankToken.connect(players[i].wallet).setApprovalForAll(env.rankifyInstance.address, true); + if (!env.rankTokenBase.address) throw new Error('Rank token undefined or undeployed'); + await rankToken.connect(players[i].wallet).setApprovalForAll(rankifyInstance.address, true); await gameContract.connect(players[i].wallet).joinGame(gameId, { value: ethers.utils.parseEther('0.4') }); } if (shiftTime) { @@ -267,7 +269,7 @@ const fillParty = async ( await mineBlocks(1); } if (startGame && gameMaster) { - await env.rankifyInstance.connect(gameMaster.wallet).startGame(gameId); + await rankifyInstance.connect(gameMaster.wallet).startGame(gameId); } }; @@ -286,6 +288,73 @@ describe(scriptName, () => { const setup = await setupTest(); adr = setup.adr; env = setup.env; + await addDistribution(hre)(await getCodeIdFromArtifact(hre)('MAODistribution'), adr.gameOwner.wallet); + const distributorArguments: DistributorArgumentsStruct = { + DAOSEttings: { + daoURI: 'https://example.com/dao', + subdomain: 'example', + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + tokenName: 'tokenName', + tokenSymbol: 'tokenSymbol', + }, + ACIDSettings: { + RankTokenContractURI: 'https://example.com/rank', + gamePrice: RInstanceSettings.RInstance_GAME_PRICE, + joinGamePrice: RInstanceSettings.RInstance_JOIN_GAME_PRICE, + maxPlayersSize: RInstanceSettings.RInstance_MAX_PLAYERS, + maxTurns: RInstanceSettings.RInstance_MAX_TURNS, + metadata: ethers.utils.hexlify(ethers.utils.toUtf8Bytes('metadata')), + minPlayersSize: RInstanceSettings.RInstance_MIN_PLAYERS, + paymentToken: env.rankifyToken.address, + rankTokenURI: 'https://example.com/rank', + timePerTurn: RInstanceSettings.RInstance_TIME_PER_TURN, + timeToJoin: RInstanceSettings.RInstance_TIME_TO_JOIN, + voteCredits: RInstanceSettings.RInstance_VOTE_CREDITS, + }, + }; + // const abi = import('../abi/src/distributions/MAODistribution.sol/MAODistribution.json'); + // Encode the arguments + const data = ethers.utils.defaultAbiCoder.encode( + [ + 'tuple(tuple(string daoURI, string subdomain, bytes metadata, string tokenName, string tokenSymbol) DAOSEttings, tuple(uint256 timePerTurn, uint256 maxPlayersSize, uint256 minPlayersSize, uint256 timeToJoin, uint256 maxTurns, uint256 voteCredits, uint256 gamePrice, address paymentToken, uint256 joinGamePrice, string metadata, string rankTokenURI, string RankTokenContractURI) ACIDSettings)', + ], + [distributorArguments], + ); + const maoCode = await hre.ethers.provider.getCode(env.maoDistribution.address); + const maoId = ethers.utils.keccak256(maoCode); + const distributorsDistId = ethers.utils.keccak256( + ethers.utils.defaultAbiCoder.encode(['bytes32', 'address'], [maoId, ethers.constants.AddressZero]), + ); + await env.distributor.instantiate(distributorsDistId, data); + const filter = env.distributor.filters.Instantiated(); + const evts = await env.distributor.queryFilter(filter); + rankifyInstance = (await ethers.getContractAt( + 'RankifyDiamondInstance', + evts[0].args.instances[3], + )) as RankifyDiamondInstance; + + await env.rankifyToken + .connect(adr.gameCreator1.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken + .connect(adr.gameCreator2.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken + .connect(adr.gameCreator3.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player1.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player2.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player3.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player4.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player5.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player6.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player7.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player8.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player9.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await env.rankifyToken.connect(adr.player10.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + + rankToken = (await ethers.getContractAt('RankToken', evts[0].args.instances[13])) as RankToken; + requirement.contracts = []; requirement.contracts.push({ contractAddress: env.mockERC20.address, @@ -325,15 +394,15 @@ describe(scriptName, () => { }, }); }); - it('Is Owned by contract owner', async () => { - expect(await env.rankifyInstance.owner()).to.be.equal(adr.gameOwner.wallet.address); + it('Is by distributor contract', async () => { + expect(await rankifyInstance.owner()).to.be.equal(env.arguableVotingTournamentDistribution.address); }); it('Has correct initial settings', async () => { - const state = await env.rankifyInstance.connect(adr.gameCreator1.wallet).getContractState(); + const state = await rankifyInstance.connect(adr.gameCreator1.wallet).getContractState(); expect(state.BestOfState.gamePrice).to.be.equal(RInstanceSettings.RInstance_GAME_PRICE); expect(state.BestOfState.joinGamePrice).to.be.equal(RInstanceSettings.RInstance_JOIN_GAME_PRICE); expect(state.BestOfState.numGames).to.be.equal(0); - expect(state.BestOfState.rankTokenAddress).to.be.equal(env.rankToken.address); + expect(state.BestOfState.rankTokenAddress).to.be.equal(rankToken.address); expect(state.TBGSEttings.maxTurns).to.be.equal(RInstanceSettings.RInstance_MAX_TURNS); expect(state.TBGSEttings.timePerTurn).to.be.equal(RInstanceSettings.RInstance_TIME_PER_TURN); expect(state.TBGSEttings.minPlayersSize).to.be.equal(RInstanceSettings.RInstance_MIN_PLAYERS); @@ -341,76 +410,75 @@ describe(scriptName, () => { expect(state.TBGSEttings.maxTurns).to.be.equal(RInstanceSettings.RInstance_MAX_TURNS); }); it('Transfer ownership can be done only by contract owner', async () => { + const impersonatedSigner = await ethers.getImpersonatedSigner(env.arguableVotingTournamentDistribution.address); + await network.provider.send('hardhat_setBalance', [impersonatedSigner.address, '0x9000000000000000000']); + await expect( - env.rankifyInstance.connect(adr.gameOwner.wallet).transferOwnership(adr.gameCreator1.wallet.address), - ).to.emit(env.rankifyInstance, 'OwnershipTransferred(address,address)'); + rankifyInstance.connect(impersonatedSigner).transferOwnership(adr.gameCreator1.wallet.address), + ).to.emit(rankifyInstance, 'OwnershipTransferred(address,address)'); await expect( - env.rankifyInstance.connect(adr.maliciousActor1.wallet).transferOwnership(adr.gameCreator1.wallet.address), + rankifyInstance.connect(adr.maliciousActor1.wallet).transferOwnership(adr.gameCreator1.wallet.address), ).to.revertedWith('LibDiamond: Must be contract owner'); }); it('has rank token assigned', async () => { - const state = await env.rankifyInstance.getContractState(); - expect(state.BestOfState.rankTokenAddress).to.be.equal(env.rankToken.address); - expect(await env.rankToken.getRankingInstance()).to.be.equal(env.rankifyInstance.address); - expect(await env.rankToken.owner()).to.be.equal(adr.contractDeployer.wallet.address); + const state = await rankifyInstance.getContractState(); + expect(state.BestOfState.rankTokenAddress).to.be.equal(rankToken.address); }); it('Can create game only with valid payments', async () => { - await env.rankifyToken.connect(adr.gameCreator1.wallet).approve(env.rankifyInstance.address, 0); + await env.rankifyToken.connect(adr.gameCreator1.wallet).approve(rankifyInstance.address, 0); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameCreator1.wallet) ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 1), ).to.revertedWithCustomError(env.rankifyToken, 'ERC20InsufficientAllowance'); await env.rankifyToken .connect(adr.gameCreator1.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + .approve(rankifyInstance.address, ethers.constants.MaxUint256); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameCreator1.wallet) ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 1), - ).to.emit(env.rankifyInstance, 'gameCreated'); + ).to.emit(rankifyInstance, 'gameCreated'); await env.rankifyToken .connect(adr.gameCreator1.wallet) .burn(await env.rankifyToken.balanceOf(adr.gameCreator1.wallet.address)); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameCreator1.wallet) ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 1), ).to.revertedWithCustomError(env.rankifyToken, 'ERC20InsufficientBalance'); }); it('Cannot perform actions on games that do not exist', async () => { - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).joinGame(1)).to.be.revertedWith('no game found'); + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).joinGame(1)).to.be.revertedWith('no game found'); proposalsStruct = await mockProposals({ players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), ).to.be.revertedWith('no game found'); votersAddresses = getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS).map(player => player.wallet.address); votes = await mockVotes({ gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gm: adr.gameMaster1, distribution: 'semiUniform', }); await expect( - env.rankifyInstance - .connect(adr.gameMaster1.wallet) - .submitVote(1, votes[0].voteHidden, adr.player1.wallet.address), + rankifyInstance.connect(adr.gameMaster1.wallet).submitVote(1, votes[0].voteHidden, adr.player1.wallet.address), ).to.be.revertedWith('no game found'); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).openRegistration(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).openRegistration(1)).to.be.revertedWith( 'no game found', ); // await expect( - // env.rankifyInstance.connect(adr.gameMaster1.wallet).addJoinRequirements(0, { + // rankifyInstance.connect(adr.gameMaster1.wallet).addJoinRequirements(0, { // token: { tokenAddress: ZERO_ADDRESS, tokenType: 0, tokenId: 1 }, // amount: 1, // must: 0, @@ -418,22 +486,22 @@ describe(scriptName, () => { // }) // ).to.be.revertedWith("no game found"); // await expect( - // env.rankifyInstance.connect(adr.gameMaster1.wallet).removeJoinRequirement(0, 0) + // rankifyInstance.connect(adr.gameMaster1.wallet).removeJoinRequirement(0, 0) // ).to.be.revertedWith("no game found"); // await expect( - // env.rankifyInstance.connect(adr.gameMaster1.wallet).popJoinRequirements(0) + // rankifyInstance.connect(adr.gameMaster1.wallet).popJoinRequirements(0) // ).to.be.revertedWith("no game found"); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).joinGame(0)).to.be.revertedWith('no game found'); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(0)).to.be.revertedWith('no game found'); + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).joinGame(0)).to.be.revertedWith('no game found'); + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).startGame(0)).to.be.revertedWith('no game found'); const proposals = await mockProposals({ players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposals.map(prop => prop.proposal), @@ -441,12 +509,12 @@ describe(scriptName, () => { ), ).to.be.revertedWith('no game found'); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), ).to.be.revertedWith('no game found'); }); // it('Succedes to create ranked game only if sender has correspoding tier rank token', async () => { // await expect( - // env.rankifyInstance + // rankifyInstance // .connect(adr.maliciousActor1.wallet) // ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 2, { // value: RInstanceSettings.RInstance_GAME_PRICE, @@ -455,89 +523,92 @@ describe(scriptName, () => { // }); describe('When a game of first rank was created', () => { beforeEach(async () => { - await createGame(env.rankifyInstance, adr.gameCreator1, adr.gameMaster1.wallet.address, 1); + await createGame(rankifyInstance, adr.gameCreator1, adr.gameMaster1.wallet.address, 1); }); it('GM is correct', async () => { - expect(await env.rankifyInstance.getGM(1)).to.be.equal(adr.gameMaster1.wallet.address); + expect(await rankifyInstance.getGM(1)).to.be.equal(adr.gameMaster1.wallet.address); }); it('Incremented number of games correctly', async () => { - const state = await env.rankifyInstance.connect(adr.gameCreator1.wallet).getContractState(); + const state = await rankifyInstance.connect(adr.gameCreator1.wallet).getContractState(); expect(state.BestOfState.numGames).to.be.equal(1); }); it('Players cannot join until registration is open', async () => { - await expect(env.rankifyInstance.connect(adr.player1.wallet).joinGame(1)).to.be.revertedWith( + await env.rankifyToken.connect(adr.player1.wallet).approve(rankifyInstance.address, ethers.constants.MaxUint256); + await expect(rankifyInstance.connect(adr.player1.wallet).joinGame(1)).to.be.revertedWith( 'addPlayer->cant join now', ); }); it('Allows only game creator to add join requirements', async () => { - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement)).to.be.emit( - env.rankifyInstance, + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement)).to.be.emit( + rankifyInstance, 'RequirementsConfigured', ); await expect( - env.rankifyInstance.connect(adr.maliciousActor1.wallet).setJoinRequirements(1, requirement), + rankifyInstance.connect(adr.maliciousActor1.wallet).setJoinRequirements(1, requirement), ).to.be.revertedWith('Only game creator'); await expect( - env.rankifyInstance.connect(adr.maliciousActor1.wallet).setJoinRequirements(11, requirement), + rankifyInstance.connect(adr.maliciousActor1.wallet).setJoinRequirements(11, requirement), ).to.be.revertedWith('no game found'); }); it('Only game creator can open registration', async () => { - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1)).to.be.emit( - env.rankifyInstance, + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1)).to.be.emit( + rankifyInstance, 'RegistrationOpen', ); - await expect(env.rankifyInstance.connect(adr.maliciousActor1.wallet).openRegistration(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.maliciousActor1.wallet).openRegistration(1)).to.be.revertedWith( 'Only game creator', ); }); describe('When registration was open without any additional requirements', () => { beforeEach(async () => { - await env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); + await rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); }); it('Mutating join requirements is no longer possible', async () => { await expect( - env.rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement), + rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement), ).to.be.revertedWith('Cannot do when registration is open'); }); it('Qualified players can join', async () => { - await expect(env.rankifyInstance.connect(adr.player1.wallet).joinGame(1)).to.be.emit( - env.rankifyInstance, + await expect(rankifyInstance.connect(adr.player1.wallet).joinGame(1)).to.be.emit( + rankifyInstance, 'PlayerJoined', ); }); - it('Game cannot be started until join blocktime has passed unless game is full', async () => { - env.rankifyInstance.connect(adr.player1.wallet).joinGame(1); - - await expect(env.rankifyInstance.connect(adr.player1.wallet).startGame(1)).to.be.revertedWith( + it('Game cannot be started until join block time has passed unless game is full', async () => { + await rankifyInstance.connect(adr.player1.wallet).joinGame(1); + await expect(rankifyInstance.connect(adr.player1.wallet).startGame(1)).to.be.revertedWith( 'startGame->Not enough players', ); - env.rankifyInstance.connect(adr.player2.wallet).joinGame(1); - env.rankifyInstance.connect(adr.player3.wallet).joinGame(1); - env.rankifyInstance.connect(adr.player4.wallet).joinGame(1); - env.rankifyInstance.connect(adr.player5.wallet).joinGame(1); - env.rankifyInstance.connect(adr.player6.wallet).joinGame(1); - await expect(env.rankifyInstance.connect(adr.player1.wallet).startGame(1)).to.be.emit( - env.rankifyInstance, + await rankifyInstance.connect(adr.player2.wallet).joinGame(1); + await rankifyInstance.connect(adr.player3.wallet).joinGame(1); + await rankifyInstance.connect(adr.player4.wallet).joinGame(1); + await rankifyInstance.connect(adr.player5.wallet).joinGame(1); + await rankifyInstance.connect(adr.player6.wallet).joinGame(1); + await expect(rankifyInstance.connect(adr.player1.wallet).startGame(1)).to.be.emit( + rankifyInstance, 'GameStarted', ); }); it('No more than max players can join', async () => { for (let i = 1; i < RInstanceSettings.RInstance_MAX_PLAYERS + 1; i++) { let name = `player${i}` as any as keyof AdrSetupResult; - env.rankifyInstance.connect(adr[`${name}`].wallet).joinGame(1); + await rankifyInstance.connect(adr[`${name}`].wallet).joinGame(1); } - await expect(env.rankifyInstance.connect(adr.maliciousActor1.wallet).joinGame(1)).to.be.revertedWith( + await env.rankifyToken + .connect(adr.maliciousActor1.wallet) + .approve(rankifyInstance.address, ethers.constants.MaxUint256); + await expect(rankifyInstance.connect(adr.maliciousActor1.wallet).joinGame(1)).to.be.revertedWith( 'addPlayer->party full', ); }); // it('Game cannot start too early', async () => { - // await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( + // await expect(rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( // 'startGame->Still Can Join', // ); // }); it('Game methods beside join and start are inactive', async () => { await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal({ + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal({ gameId: 1, proposer: adr.player1.wallet.address, commitmentHash: solidityKeccak256(['string'], ['mockString']), @@ -548,20 +619,20 @@ describe(scriptName, () => { players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); votes = await mockVotes({ gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gm: adr.gameMaster1, distribution: 'semiUniform', }); votersAddresses = getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS).map(player => player.wallet.address); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposalsStruct.map(p => p.proposal), @@ -569,19 +640,19 @@ describe(scriptName, () => { ), ).to.be.revertedWith('Game has not yet started'); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameMaster1.wallet) .submitVote(1, votes[0].voteHidden, adr.player1.wallet.address), ).to.be.revertedWith('Game has not yet started'); - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1)).to.be.revertedWith( 'Cannot do when registration is open', ); await expect( - env.rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement), + rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement), ).to.be.revertedWith('Cannot do when registration is open'); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposalsStruct.map(p => p.proposal), @@ -591,23 +662,23 @@ describe(scriptName, () => { }); it('Cannot be started if not enough players', async () => { await mineBlocks(RInstanceSettings.RInstance_TIME_TO_JOIN + 1); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( 'startGame->Not enough players', ); }); describe('When there is minimal number and below maximum players in game', () => { beforeEach(async () => { - await fillParty(getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), env.rankifyInstance, 1, false); + await fillParty(getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), rankifyInstance, 1, false); }); it('Can start game after joining period is over', async () => { - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.revertedWith( 'startGame->Not enough players', ); const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_TO_JOIN) + 1); await mineBlocks(1); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.emit( - env.rankifyInstance, + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).startGame(1)).to.be.emit( + rankifyInstance, 'GameStarted', ); }); @@ -617,16 +688,16 @@ describe(scriptName, () => { players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), ).to.be.revertedWith('Game has not yet started'); votes = await mockVotes({ gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gm: adr.gameMaster1, distribution: 'semiUniform', @@ -636,7 +707,7 @@ describe(scriptName, () => { ); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposalsStruct.map(p => p.proposal), @@ -644,7 +715,7 @@ describe(scriptName, () => { ), ).to.be.revertedWith('Game has not yet started'); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameMaster1.wallet) .submitVote(1, votes[0].voteHidden, adr.player1.wallet.address), ).to.be.revertedWith('Game has not yet started'); @@ -654,23 +725,23 @@ describe(scriptName, () => { await startGame(1); }); it('First turn has started', async () => { - expect(await env.rankifyInstance.connect(adr.player1.wallet).getTurn(1)).to.be.equal(1); + expect(await rankifyInstance.connect(adr.player1.wallet).getTurn(1)).to.be.equal(1); }); it('Accepts only proposals and no votes', async () => { const proposals = await mockProposals({ players: getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[0].params), - ).to.be.emit(env.rankifyInstance, 'ProposalSubmitted'); + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[0].params), + ).to.be.emit(rankifyInstance, 'ProposalSubmitted'); votes = await mockVotes({ gameId: 1, turn: 1, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, players: getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), gm: adr.gameMaster1, distribution: 'semiUniform', @@ -680,23 +751,21 @@ describe(scriptName, () => { ); await expect( - env.rankifyInstance - .connect(adr.gameMaster1.wallet) - .submitVote(1, votes[0].voteHidden, votersAddresses[0]), + rankifyInstance.connect(adr.gameMaster1.wallet).submitVote(1, votes[0].voteHidden, votersAddresses[0]), ).to.be.revertedWith('No proposals exist at turn 1: cannot vote'); }); it('Processes only proposals only from game master', async () => { await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), - ).to.emit(env.rankifyInstance, 'ProposalSubmitted'); + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[0].params), + ).to.emit(rankifyInstance, 'ProposalSubmitted'); await expect( - env.rankifyInstance.connect(adr.maliciousActor1.wallet).submitProposal(proposalsStruct[0].params), + rankifyInstance.connect(adr.maliciousActor1.wallet).submitProposal(proposalsStruct[0].params), ).to.be.revertedWith('Only game master'); }); it('Can end turn if timeout reached with zero scores', async () => { await mineBlocks(RInstanceSettings.RInstance_TIME_PER_TURN + 1); - await expect(env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn(1, [], [], [])) - .to.be.emit(env.rankifyInstance, 'TurnEnded') + await expect(rankifyInstance.connect(adr.gameMaster1.wallet).endTurn(1, [], [], [])) + .to.be.emit(rankifyInstance, 'TurnEnded') .withArgs( 1, 1, @@ -711,7 +780,7 @@ describe(scriptName, () => { beforeEach(async () => { proposalsStruct = await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, @@ -719,17 +788,17 @@ describe(scriptName, () => { }); it('Can end turn', async () => { await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, [], proposalsStruct.map(p => p.proposal), proposalsStruct.map((p, idx) => idx), ), - ).to.be.emit(env.rankifyInstance, 'TurnEnded'); + ).to.be.emit(rankifyInstance, 'TurnEnded'); }); describe('When turn is over and there is one proposal missing', async () => { beforeEach(async () => { - await env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + await rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, [], proposalsStruct.map(p => p.proposal).slice(0, -1), @@ -739,21 +808,21 @@ describe(scriptName, () => { it('Can end next turn ', async () => { // ToDo: add "with correct scores" to the end of the test const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS); - await mockValidVotes(players, env.rankifyInstance, 1, adr.gameMaster1, true, 'ftw'); - await mockValidProposals(players, env.rankifyInstance, adr.gameMaster1, 1, true); + await mockValidVotes(players, rankifyInstance, 1, adr.gameMaster1, true, 'ftw'); + await mockValidProposals(players, rankifyInstance, adr.gameMaster1, 1, true); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposalsStruct.map(p => p.proposal), proposalsStruct.map((p, idx) => (idx === players.length - 1 ? players.length : idx)), ), - ).to.be.emit(env.rankifyInstance, 'TurnEnded'); + ).to.be.emit(rankifyInstance, 'TurnEnded'); }); }); describe('When first turn was made', () => { beforeEach(async () => { - await env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + await rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, [], proposalsStruct.map(p => p.proposal), @@ -763,26 +832,26 @@ describe(scriptName, () => { it('throws if player votes twice', async () => { await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, ); await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, ); await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameMaster1.wallet) .submitVote(1, votes[0].voteHidden, adr.player1.wallet.address), ).to.be.revertedWith('Already voted'); }); it('shows no players made a turn', async () => { - expect(await env.rankifyInstance.getPlayersMoved(1)).to.deep.equal([ + expect(await rankifyInstance.getPlayersMoved(1)).to.deep.equal([ getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS).map(() => false), ethers.BigNumber.from('0'), ]); @@ -790,14 +859,14 @@ describe(scriptName, () => { it('shows no players made a turn even after player send proposal', async () => { const proposals = await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, false, ); - await env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[0].params); - await env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[1].params), - expect(await env.rankifyInstance.getPlayersMoved(1)).to.deep.equal([ + await rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[0].params); + await rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposals[1].params), + expect(await rankifyInstance.getPlayersMoved(1)).to.deep.equal([ getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS).map(() => false), ethers.BigNumber.from('0'), ]); @@ -805,7 +874,7 @@ describe(scriptName, () => { // it("throws if player voting himself", async () => { // proposalsStruct = await mockValidProposals( // getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - // env.rankifyInstance, + // rankifyInstance, // adr.gameMaster1, // 1, // true @@ -814,7 +883,7 @@ describe(scriptName, () => { // voter: adr.player1, // gm: adr.gameMaster1, // gameId: 1, - // verifierAddress: env.rankifyInstance.address, + // verifierAddress: rankifyInstance.address, // turn: 2, // vote: [0, 1, 2], // }); @@ -822,7 +891,7 @@ describe(scriptName, () => { // const badVotes = await mockVotes({ // gameId: 1, // turn: 2, - // verifierAddress: env.rankifyInstance.address, + // verifierAddress: rankifyInstance.address, // players: getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), // gm: adr.gameMaster1, // distribution: "semiUniform", @@ -835,7 +904,7 @@ describe(scriptName, () => { // for (let i = 0; i < votersAddresses.length; i++) { // let name = `player${i + 1}` as any as keyof AdrSetupResult; - // await env.rankifyInstance + // await rankifyInstance // .connect(adr[`${name}`].wallet) // .submitVote( // 1, @@ -847,7 +916,7 @@ describe(scriptName, () => { // await mineBlocks(RInstanceSettings.RInstance_TIME_PER_TURN + 1); // await expect( - // env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + // rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( // 1, // badVotes.map((vote) => vote.vote), // proposalsStruct.map((p) => p.proposal), @@ -859,7 +928,7 @@ describe(scriptName, () => { beforeEach(async () => { votes = await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, @@ -870,7 +939,7 @@ describe(scriptName, () => { }); it('cannot end turn because players still have time to propose', async () => { await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposalsStruct.map(p => p.proposal), @@ -882,7 +951,7 @@ describe(scriptName, () => { // await mineBlocks(RInstanceSettings.RInstance_TIME_PER_TURN + 1); const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_PER_TURN) + 1); - expect(await env.rankifyInstance.getTurn(1)).to.be.equal(2); + expect(await rankifyInstance.getTurn(1)).to.be.equal(2); const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS); const expectedScores: number[] = players.map(v => 0); for (let i = 0; i < players.length; i++) { @@ -900,7 +969,7 @@ describe(scriptName, () => { // expectedScores, // votes.map(vote => vote.vote), // ); - // const tx = await env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + // const tx = await rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( // 1, // votes.map(vote => vote.vote), // [], @@ -908,14 +977,14 @@ describe(scriptName, () => { // ); // console.log((await tx.wait(1)).events?.find(e => e.event === 'TurnEnded').args); await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), [], votersAddresses.map((p, idx) => idx), ), ) - .to.be.emit(env.rankifyInstance, 'TurnEnded') + .to.be.emit(rankifyInstance, 'TurnEnded') .withArgs( 1, 2, @@ -929,7 +998,7 @@ describe(scriptName, () => { it('Returns correct scores in getScores if votes are shuffled', async () => { const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_PER_TURN) + 1); - expect(await env.rankifyInstance.getTurn(1)).to.be.equal(2); + expect(await rankifyInstance.getTurn(1)).to.be.equal(2); const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS); const expectedScores: number[] = players.map(v => 0); for (let i = 0; i < players.length; i++) { @@ -966,17 +1035,15 @@ describe(scriptName, () => { votesShuffled[i][proposerIndex[votedForIdx]] = points; }); }); - await env.rankifyInstance - .connect(adr.gameMaster1.wallet) - .endTurn(1, votesShuffled, [], proposerIndex); - const scores = await env.rankifyInstance.getScores(1).then(v => v[1].map(i => i.toNumber())); + await rankifyInstance.connect(adr.gameMaster1.wallet).endTurn(1, votesShuffled, [], proposerIndex); + const scores = await rankifyInstance.getScores(1).then(v => v[1].map(i => i.toNumber())); expect(expectedScores).to.be.eql(scores); }); it('Emits correct ProposalScore event values', async () => { // await mineBlocks(RInstanceSettings.RInstance_TIME_PER_TURN + 1); const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_PER_TURN) + 1); - expect(await env.rankifyInstance.getTurn(1)).to.be.equal(2); + expect(await rankifyInstance.getTurn(1)).to.be.equal(2); const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS); const expectedScores: number[] = players.map(v => 0); for (let i = 0; i < players.length; i++) { @@ -990,14 +1057,14 @@ describe(scriptName, () => { } } await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), [], votersAddresses.map((p, idx) => idx), ), ) - .to.emit(env.rankifyInstance, 'ProposalScore') + .to.emit(rankifyInstance, 'ProposalScore') .withArgs('1', '2', proposalsStruct[0].proposal, proposalsStruct[0].proposal, expectedScores[0]); }); }); @@ -1006,10 +1073,10 @@ describe(scriptName, () => { }); describe('When another game of first rank is created', () => { beforeEach(async () => { - await createGame(env.rankifyInstance, adr.gameCreator1, adr.gameMaster2.wallet.address, 1, true); + await createGame(rankifyInstance, adr.gameCreator1, adr.gameMaster2.wallet.address, 1, true); }); it('Reverts if players from another game tries to join', async () => { - await expect(env.rankifyInstance.connect(adr.player1.wallet).joinGame(2)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.player1.wallet).joinGame(2)).to.be.revertedWith( 'addPlayer->Player in game', ); }); @@ -1017,31 +1084,28 @@ describe(scriptName, () => { }); describe('When there is not enough players and join time is out', () => { beforeEach(async () => { - await fillParty(getPlayers(adr, RInstance_MIN_PLAYERS - 1), env.rankifyInstance, 1, true); + await fillParty(getPlayers(adr, RInstance_MIN_PLAYERS - 1), rankifyInstance, 1, true); }); it('It throws on game start', async () => { - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).startGame(1)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).startGame(1)).to.be.revertedWith( 'startGame->Not enough players', ); }); it('Allows creator can close the game', async () => { - await expect(env.rankifyInstance.connect(adr.gameCreator1.wallet).cancelGame(1)).to.emit( - env.rankifyInstance, + await expect(rankifyInstance.connect(adr.gameCreator1.wallet).cancelGame(1)).to.emit( + rankifyInstance, 'GameClosed', ); }); it('Allows player to leave the game', async () => { - await expect(env.rankifyInstance.connect(adr.player1.wallet).leaveGame(1)).to.emit( - env.rankifyInstance, - 'PlayerLeft', - ); + await expect(rankifyInstance.connect(adr.player1.wallet).leaveGame(1)).to.emit(rankifyInstance, 'PlayerLeft'); }); }); }); describe('When registration was open with additional join requirements', () => { beforeEach(async () => { - await env.rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement); - await env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); + await rankifyInstance.connect(adr.gameCreator1.wallet).setJoinRequirements(1, requirement); + await rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); const players = getPlayers(adr, RInstance_MAX_PLAYERS, 0); for (let i = 0; i < players.length; i++) { await env.mockERC1155 @@ -1053,28 +1117,28 @@ describe(scriptName, () => { await env.mockERC721.connect(adr.contractDeployer.wallet).mint(players[i].wallet.address, i + 1, '0x'); await env.mockERC20 .connect(players[i].wallet) - .approve(env.rankifyInstance.address, ethers.utils.parseEther('100')); - await env.mockERC1155.connect(players[i].wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.mockERC721.connect(players[i].wallet).setApprovalForAll(env.rankifyInstance.address, true); + .approve(rankifyInstance.address, ethers.utils.parseEther('100')); + await env.mockERC1155.connect(players[i].wallet).setApprovalForAll(rankifyInstance.address, true); + await env.mockERC721.connect(players[i].wallet).setApprovalForAll(rankifyInstance.address, true); } }); it('Fulfills funding requirement on join', async () => { await env.mockERC20 .connect(adr.player1.wallet) - .approve(env.rankifyInstance.address, ethers.utils.parseEther('100')); - const balance1155 = await env.mockERC1155.balanceOf(env.rankifyInstance.address, '1'); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); - expect(await env.mockERC1155.balanceOf(env.rankifyInstance.address, '1')).to.be.equal( + .approve(rankifyInstance.address, ethers.utils.parseEther('100')); + const balance1155 = await env.mockERC1155.balanceOf(rankifyInstance.address, '1'); + await rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); + expect(await env.mockERC1155.balanceOf(rankifyInstance.address, '1')).to.be.equal( ethers.utils.parseEther('0.4'), ); - expect(await env.mockERC20.balanceOf(env.rankifyInstance.address)).to.be.equal(ethers.utils.parseEther('0.4')); + expect(await env.mockERC20.balanceOf(rankifyInstance.address)).to.be.equal(ethers.utils.parseEther('0.4')); }); it('Returns requirements on leave', async () => { await env.mockERC20 .connect(adr.player1.wallet) - .approve(env.rankifyInstance.address, ethers.utils.parseEther('100')); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); - await env.rankifyInstance.connect(adr.player1.wallet).leaveGame(1); + .approve(rankifyInstance.address, ethers.utils.parseEther('100')); + await rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); + await rankifyInstance.connect(adr.player1.wallet).leaveGame(1); expect(await env.mockERC1155.balanceOf(adr.player1.wallet.address, '1')).to.be.equal( ethers.utils.parseEther('10'), ); @@ -1083,9 +1147,9 @@ describe(scriptName, () => { it('Returns requirements on game closed', async () => { await env.mockERC20 .connect(adr.player1.wallet) - .approve(env.rankifyInstance.address, ethers.utils.parseEther('100')); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); - expect(await env.rankifyInstance.connect(adr.gameCreator1.wallet).cancelGame(1)).to.changeEtherBalance( + .approve(rankifyInstance.address, ethers.utils.parseEther('100')); + await rankifyInstance.connect(adr.player1.wallet).joinGame(1, { value: ethers.utils.parseEther('0.4') }); + expect(await rankifyInstance.connect(adr.gameCreator1.wallet).cancelGame(1)).to.changeEtherBalance( adr.player1.wallet.address, ethers.utils.parseEther('0.4'), ); @@ -1095,13 +1159,13 @@ describe(scriptName, () => { expect(await env.mockERC20.balanceOf(adr.player1.wallet.address)).to.be.equal(ethers.utils.parseEther('10')); }); it('Distributes rewards correctly when game is over', async () => { - await fillParty(getPlayers(adr, RInstance_MIN_PLAYERS, 0), env.rankifyInstance, 1, true, true, adr.gameMaster1); + await fillParty(getPlayers(adr, RInstance_MIN_PLAYERS, 0), rankifyInstance, 1, true, true, adr.gameMaster1); const balanceBefore1155 = await env.mockERC1155.balanceOf(adr.player1.wallet.address, '1'); const balanceBefore20 = await env.mockERC20.balanceOf(adr.player1.wallet.address); const creatorBalanceBefore20 = await env.mockERC20.balanceOf(adr.gameCreator1.wallet.address); const creatorBalanceBefore1155 = await env.mockERC1155.balanceOf(adr.gameCreator1.wallet.address, '1'); - await runToTheEnd(1, env.rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstance_MIN_PLAYERS, 0), 'ftw'); + await runToTheEnd(1, rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstance_MIN_PLAYERS, 0), 'ftw'); expect(await env.mockERC20.balanceOf(adr.player1.wallet.address)).to.be.equal( balanceBefore20 .add(ethers.utils.parseEther('0.1').mul(RInstance_MIN_PLAYERS)) @@ -1122,10 +1186,10 @@ describe(scriptName, () => { }); describe('When it is last turn and equal scores', () => { beforeEach(async () => { - await env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); + await rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(1); await fillParty( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, true, true, @@ -1133,39 +1197,39 @@ describe(scriptName, () => { ); await runToLastTurn( 1, - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), 'equal', ); }); it('Next turn without winner brings Game is in overtime conditions', async () => { - let isGameOver = await env.rankifyInstance.isGameOver(1); + let isGameOver = await rankifyInstance.isGameOver(1); expect(isGameOver).to.be.false; await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, ); await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, 'equal', ); - await endTurn(1, env.rankifyInstance); + await endTurn(1, rankifyInstance); - expect(await env.rankifyInstance.isOvertime(1)).to.be.true; + expect(await rankifyInstance.isOvertime(1)).to.be.true; }); describe('when is ovetime', () => { beforeEach(async () => { await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, @@ -1173,17 +1237,17 @@ describe(scriptName, () => { ); await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, ); - await endTurn(1, env.rankifyInstance); + await endTurn(1, rankifyInstance); }); it('emits game Over when submited votes result unique leaders', async () => { await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, @@ -1191,24 +1255,24 @@ describe(scriptName, () => { ); const proposals = await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, ); expect( - await env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + await rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), proposals.map(p => p.proposal), proposalsStruct.map((p, idx) => idx), ), - ).to.emit(env.rankifyInstance, 'GameOver'); + ).to.emit(rankifyInstance, 'GameOver'); }); it("Keeps game in overtime when submited votes don't result unique leaders", async () => { await mockValidVotes( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 1, adr.gameMaster1, true, @@ -1216,13 +1280,13 @@ describe(scriptName, () => { ); const proposals = await mockValidProposals( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, 1, true, ); - expect(await env.rankifyInstance.connect(adr.gameMaster1.wallet).isOvertime(1)).to.be.true; - expect(await env.rankifyInstance.connect(adr.gameMaster1.wallet).isGameOver(1)).to.be.false; + expect(await rankifyInstance.connect(adr.gameMaster1.wallet).isOvertime(1)).to.be.true; + expect(await rankifyInstance.connect(adr.gameMaster1.wallet).isGameOver(1)).to.be.false; }); }); @@ -1230,17 +1294,17 @@ describe(scriptName, () => { beforeEach(async () => { await runToTheEnd( 1, - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), ); }); it('Throws on attempt to make another turn', async () => { - const currentTurn = await env.rankifyInstance.getTurn(1); + const currentTurn = await rankifyInstance.getTurn(1); votes = await mockVotes({ gameId: 1, turn: currentTurn, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gm: adr.gameMaster1, distribution: 'ftw', @@ -1249,20 +1313,20 @@ describe(scriptName, () => { players: getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), gameId: 1, turn: currentTurn, - verifierAddress: env.rankifyInstance.address, + verifierAddress: rankifyInstance.address, gm: adr.gameMaster1, }); - const isover = await env.rankifyInstance.isGameOver(1); + const isover = await rankifyInstance.isGameOver(1); for (let i = 0; i < RInstanceSettings.RInstance_MAX_PLAYERS; i++) { const proposals = await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[i].params), + rankifyInstance.connect(adr.gameMaster1.wallet).submitProposal(proposalsStruct[i].params), ).to.be.revertedWith('Game over'); let name = `player${i + 1}` as any as keyof AdrSetupResult; await expect( - env.rankifyInstance + rankifyInstance .connect(adr.gameMaster1.wallet) .submitVote( 1, @@ -1272,7 +1336,7 @@ describe(scriptName, () => { ).to.be.revertedWith('Game over'); } await expect( - env.rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( + rankifyInstance.connect(adr.gameMaster1.wallet).endTurn( 1, votes.map(vote => vote.vote), [], @@ -1281,34 +1345,35 @@ describe(scriptName, () => { ).to.be.revertedWith('Game over'); }); it('Gave rewards to winners', async () => { - expect(await env.rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player2.wallet.address, 1)).to.be.equal(2); - expect(await env.rankToken.balanceOf(adr.player2.wallet.address, 2)).to.be.equal(0); - expect(await env.rankToken.balanceOf(adr.player3.wallet.address, 1)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player3.wallet.address, 2)).to.be.equal(0); + expect(await rankToken.balanceOf(adr.player2.wallet.address, 1)).to.be.equal(2); + expect(await rankToken.balanceOf(adr.player2.wallet.address, 2)).to.be.equal(0); + expect(await rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player3.wallet.address, 1)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player3.wallet.address, 2)).to.be.equal(0); }); it('Allows winner to create game of next rank', async () => { await expect( - env.rankifyInstance + rankifyInstance .connect(adr.player1.wallet) ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 2), - ).to.emit(env.rankifyInstance, 'gameCreated'); + ).to.emit(rankifyInstance, 'gameCreated'); }); describe('When game of next rank is created and opened', () => { beforeEach(async () => { - await env.rankifyInstance + await rankifyInstance .connect(adr.player1.wallet) ['createGame(address,uint256)'](adr.gameMaster1.wallet.address, 2); - await env.rankifyInstance.connect(adr.player1.wallet).openRegistration(2); + await rankifyInstance.connect(adr.player1.wallet).openRegistration(2); }); it('Can be joined only by rank token bearers', async () => { - expect(await env.rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); - await env.rankToken.connect(adr.player1.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.rankToken.connect(adr.player2.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await expect(env.rankifyInstance.connect(adr.player1.wallet).joinGame(2)) - .to.emit(env.rankifyInstance, 'PlayerJoined') + expect(await rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); + await rankToken.connect(adr.player1.wallet).setApprovalForAll(rankifyInstance.address, true); + await rankToken.connect(adr.player2.wallet).setApprovalForAll(rankifyInstance.address, true); + await expect(rankifyInstance.connect(adr.player1.wallet).joinGame(2)) + .to.emit(rankifyInstance, 'PlayerJoined') .withArgs(2, adr.player1.wallet.address); - await expect(env.rankifyInstance.connect(adr.player2.wallet).joinGame(2)).to.be.revertedWith( + await expect(rankifyInstance.connect(adr.player2.wallet).joinGame(2)).to.be.revertedWithCustomError( + rankToken, 'insufficient', ); }); @@ -1317,13 +1382,13 @@ describe(scriptName, () => { }); describe('When a game was played till end', () => { beforeEach(async () => { - const gameCreate = await env.rankifyInstance + const gameCreate = await rankifyInstance .connect(adr.gameCreator1.wallet) ['createGame(address,uint256,uint256)'](adr.gameMaster1.wallet.address, 3, 1); - const openRegistration = await env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(3); + const openRegistration = await rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(3); await fillParty( getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), - env.rankifyInstance, + rankifyInstance, 3, true, true, @@ -1331,33 +1396,30 @@ describe(scriptName, () => { ); await runToTheEnd( 3, - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstanceSettings.RInstance_MAX_PLAYERS), ); }); it('Allows players to join another game of same rank if they have rank token', async () => { - const gameCreate = await env.rankifyInstance + const gameCreate = await rankifyInstance .connect(adr.gameCreator1.wallet) ['createGame(address,uint256,uint256)'](adr.gameMaster1.wallet.address, 10, 1); const currentT = await time.latest(); await time.setNextBlockTimestamp(currentT + Number(RInstanceSettings.RInstance_TIME_TO_JOIN) + 1); - const openRegistration = await env.rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(10); - await env.rankToken.connect(adr.player1.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await expect(env.rankifyInstance.connect(adr.player1.wallet).joinGame(10)).to.emit( - env.rankifyInstance, - 'PlayerJoined', - ); + const openRegistration = await rankifyInstance.connect(adr.gameCreator1.wallet).openRegistration(10); + await rankToken.connect(adr.player1.wallet).setApprovalForAll(rankifyInstance.address, true); + await expect(rankifyInstance.connect(adr.player1.wallet).joinGame(10)).to.emit(rankifyInstance, 'PlayerJoined'); }); }); }); describe('When there was multiple first rank games played so higher rank game can be filled', () => { beforeEach(async () => { for (let numGames = 0; numGames < RInstanceSettings.RInstance_MAX_PLAYERS; numGames++) { - const gameId = await createGame(env.rankifyInstance, adr.gameCreator1, adr.gameMaster1.wallet.address, 1, true); + const gameId = await createGame(rankifyInstance, adr.gameCreator1, adr.gameMaster1.wallet.address, 1, true); await fillParty( getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS, numGames), - env.rankifyInstance, + rankifyInstance, gameId, true, true, @@ -1365,7 +1427,7 @@ describe(scriptName, () => { ); await runToTheEnd( gameId, - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS, numGames), ); @@ -1373,80 +1435,78 @@ describe(scriptName, () => { }); it('Winners have reward tokens', async () => { const balances: number[] = []; - balances[0] = await env.rankToken + balances[0] = await rankToken .balanceOf(adr.player1.wallet.address, 2) .then(balance => balances.push(balance.toNumber())); - expect(await env.rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player2.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player3.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player4.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player5.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player6.wallet.address, 2)).to.be.equal(1); - expect(await env.rankToken.balanceOf(adr.player7.wallet.address, 2)).to.be.equal(0); + expect(await rankToken.balanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player2.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player3.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player4.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player5.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player6.wallet.address, 2)).to.be.equal(1); + expect(await rankToken.balanceOf(adr.player7.wallet.address, 2)).to.be.equal(0); assert(RInstanceSettings.RInstance_MAX_PLAYERS == 6); }); describe('When game of next rank is created', () => { beforeEach(async () => { - await createGame(env.rankifyInstance, adr.player1, adr.gameMaster1.wallet.address, 2, true); + await createGame(rankifyInstance, adr.player1, adr.gameMaster1.wallet.address, 2, true); }); it('Can be joined only by bearers of rank token', async () => { - const lastCreatedGameId = await env.rankifyInstance.getContractState().then(r => r.BestOfState.numGames); - await env.rankToken.connect(adr.player2.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await expect(env.rankifyInstance.connect(adr.player2.wallet).joinGame(lastCreatedGameId)).to.emit( - env.rankifyInstance, + const lastCreatedGameId = await rankifyInstance.getContractState().then(r => r.BestOfState.numGames); + await rankToken.connect(adr.player2.wallet).setApprovalForAll(rankifyInstance.address, true); + await expect(rankifyInstance.connect(adr.player2.wallet).joinGame(lastCreatedGameId)).to.emit( + rankifyInstance, 'PlayerJoined', ); - await env.rankToken.connect(adr.maliciousActor1.wallet).setApprovalForAll(env.rankifyInstance.address, true); + await rankToken.connect(adr.maliciousActor1.wallet).setApprovalForAll(rankifyInstance.address, true); await expect( - env.rankifyInstance.connect(adr.maliciousActor1.wallet).joinGame(lastCreatedGameId), - ).to.be.revertedWith('insufficient'); + rankifyInstance.connect(adr.maliciousActor1.wallet).joinGame(lastCreatedGameId), + ).to.be.revertedWithCustomError(rankToken, 'insufficient'); }); it('Locks rank tokens when player joins', async () => { - const balance = await env.rankToken.balanceOf(adr.player1.wallet.address, 2); - const lastCreatedGameId = await env.rankifyInstance.getContractState().then(r => r.BestOfState.numGames); - await env.rankToken.connect(adr.player1.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); - const balance2 = await env.rankToken.balanceOf(adr.player1.wallet.address, 2); - expect(await env.rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal( - balance.toNumber() - 1, - ); + const balance = await rankToken.balanceOf(adr.player1.wallet.address, 2); + const lastCreatedGameId = await rankifyInstance.getContractState().then(r => r.BestOfState.numGames); + await rankToken.connect(adr.player1.wallet).setApprovalForAll(rankifyInstance.address, true); + await rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); + const balance2 = await rankToken.balanceOf(adr.player1.wallet.address, 2); + expect(await rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(balance.toNumber() - 1); }); it('Returns rank token if player leaves game', async () => { - const lastCreatedGameId = await env.rankifyInstance.getContractState().then(r => r.BestOfState.numGames); - await env.rankToken.connect(adr.player1.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); - expect(await env.rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(0); - await env.rankifyInstance.connect(adr.player1.wallet).leaveGame(lastCreatedGameId); - expect(await env.rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); + const lastCreatedGameId = await rankifyInstance.getContractState().then(r => r.BestOfState.numGames); + await rankToken.connect(adr.player1.wallet).setApprovalForAll(rankifyInstance.address, true); + await rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); + expect(await rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(0); + await rankifyInstance.connect(adr.player1.wallet).leaveGame(lastCreatedGameId); + expect(await rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(1); }); it('Returns rank token if was game closed', async () => { - const lastCreatedGameId = await env.rankifyInstance.getContractState().then(r => r.BestOfState.numGames); - await env.rankToken.connect(adr.player1.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.rankToken.connect(adr.player2.wallet).setApprovalForAll(env.rankifyInstance.address, true); - await env.rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); - await env.rankifyInstance.connect(adr.player2.wallet).joinGame(lastCreatedGameId); - let p1balance = await env.rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2); + const lastCreatedGameId = await rankifyInstance.getContractState().then(r => r.BestOfState.numGames); + await rankToken.connect(adr.player1.wallet).setApprovalForAll(rankifyInstance.address, true); + await rankToken.connect(adr.player2.wallet).setApprovalForAll(rankifyInstance.address, true); + await rankifyInstance.connect(adr.player1.wallet).joinGame(lastCreatedGameId); + await rankifyInstance.connect(adr.player2.wallet).joinGame(lastCreatedGameId); + let p1balance = await rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2); p1balance = p1balance.add(1); - let p2balance = await env.rankToken.unlockedBalanceOf(adr.player2.wallet.address, 2); + let p2balance = await rankToken.unlockedBalanceOf(adr.player2.wallet.address, 2); p2balance = p2balance.add(1); - await env.rankifyInstance.connect(adr.player1.wallet).cancelGame(lastCreatedGameId); - expect(await env.rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(p1balance); - expect(await env.rankToken.unlockedBalanceOf(adr.player2.wallet.address, 2)).to.be.equal(p2balance); + await rankifyInstance.connect(adr.player1.wallet).cancelGame(lastCreatedGameId); + expect(await rankToken.unlockedBalanceOf(adr.player1.wallet.address, 2)).to.be.equal(p1balance); + expect(await rankToken.unlockedBalanceOf(adr.player2.wallet.address, 2)).to.be.equal(p2balance); }); describe('when this game is over', () => { const balancesBeforeJoined: BigNumber[] = []; beforeEach(async () => { const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS, 0); - const lastCreatedGameId = await env.rankifyInstance.getContractState().then(r => r.BestOfState.numGames); + const lastCreatedGameId = await rankifyInstance.getContractState().then(r => r.BestOfState.numGames); for (let i = 0; i < players.length; i++) { - balancesBeforeJoined[i] = await env.rankToken.unlockedBalanceOf(players[i].wallet.address, 2); + balancesBeforeJoined[i] = await rankToken.unlockedBalanceOf(players[i].wallet.address, 2); } - await fillParty(players, env.rankifyInstance, lastCreatedGameId, true, true, adr.gameMaster1); + await fillParty(players, rankifyInstance, lastCreatedGameId, true, true, adr.gameMaster1); await runToTheEnd( lastCreatedGameId, - env.rankifyInstance, + rankifyInstance, adr.gameMaster1, getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS), 'ftw', @@ -1456,7 +1516,7 @@ describe(scriptName, () => { const balances: number[] = []; const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS, 0); for (let i = 0; i < players.length; i++) { - balances[i] = await env.rankToken.balanceOf(players[i].wallet.address, 3).then(bn => bn.toNumber()); + balances[i] = await rankToken.balanceOf(players[i].wallet.address, 3).then(bn => bn.toNumber()); } expect(balances[0]).to.be.equal(1); expect(balances[1]).to.be.equal(0); @@ -1466,7 +1526,7 @@ describe(scriptName, () => { const balances: BigNumberish[] = []; const players = getPlayers(adr, RInstanceSettings.RInstance_MIN_PLAYERS, 0); for (let i = 0; i < players.length; i++) { - balances[i] = await env.rankToken.balanceOf(players[i].wallet.address, 2); + balances[i] = await rankToken.balanceOf(players[i].wallet.address, 2); } expect(balances[0]).to.be.equal(balancesBeforeJoined[0]); diff --git a/test/eds/CloneDistribution.ts b/test/eds/CloneDistribution.ts deleted file mode 100644 index c4f8c2d3..00000000 --- a/test/eds/CloneDistribution.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ethers } from 'hardhat'; -import { Signer } from 'ethers'; -import { expect } from 'chai'; - -describe('CloneDistribution', function () { - let cloneDistribution: any; - let owner: Signer; - let addr1: Signer; - let addr2: Signer; - - beforeEach(async function () { - const CloneDistribution = await ethers.getContractFactory('MockCloneDistribution'); - [owner, addr1, addr2] = await ethers.getSigners(); - cloneDistribution = await CloneDistribution.deploy(); - await cloneDistribution.deployed(); - }); - - it('should emit Distributed event', async function () { - expect(await cloneDistribution.instantiate()).to.emit(cloneDistribution, 'Distributed'); - }); - - it('Should read metadata', async function () { - const metadata = await cloneDistribution.getMetadata(); - expect(metadata).to.equal('MockCloneDistribution'); - }); -}); diff --git a/test/eds/CodeHashDistribution.ts b/test/eds/CodeHashDistribution.ts deleted file mode 100644 index 473e7ffd..00000000 --- a/test/eds/CodeHashDistribution.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { ethers } from 'hardhat'; -import { Signer } from 'ethers'; -import { expect } from 'chai'; -import { CodeHashDistribution, CodeHashDistribution__factory, CodeIndex, TestFacet } from '../../types'; -import hre, { deployments, } from 'hardhat'; -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; -import utils from "../utils" - - -describe('CloneHashDistribution', function () { - let codeIndex: CodeIndex; - let deployer: SignerWithAddress; - - - beforeEach(async function () { - await deployments.fixture('code_index'); // This is the key addition - const CodeIndex = await ethers.getContractFactory('CodeIndex'); - deployer = (await ethers.getSigners())[0]; - const codeIndexDeployment = await deployments.get('CodeIndex') - codeIndex = new ethers.Contract(codeIndexDeployment.address, CodeIndex.interface).connect(deployer) as CodeIndex; - }) - - it('Can instantiate a contract', async function () { - const CutFacet = await ethers.getContractFactory('DiamondCutFacet'); - const cutFacet = await CutFacet.deploy(); - codeIndex.register(cutFacet.address); - const CodeHashDistribution = await ethers.getContractFactory('CodeHashDistribution') as CodeHashDistribution__factory; - const code = await cutFacet.provider.getCode(cutFacet.address); - const codeHash = ethers.utils.keccak256(code); - const codeHashDistribution = await CodeHashDistribution.deploy(codeHash, ethers.utils.formatBytes32String("DiamondProxy")) as CodeHashDistribution - expect(await codeHashDistribution.instantiate()).to.emit(codeHashDistribution, "Distributed") - }) - it('Instantiated contract code hash matches', async function () { - const CutFacet = await ethers.getContractFactory('DiamondCutFacet'); - const cutFacet = await CutFacet.deploy(); - codeIndex.register(cutFacet.address); - const CodeHashDistribution = await ethers.getContractFactory('CodeHashDistribution'); - const code = await cutFacet.provider.getCode(cutFacet.address); - const codeHash = ethers.utils.keccak256(code); - const codeHashDistribution = await CodeHashDistribution.deploy(codeHash,ethers.utils.formatBytes32String("DiamondProxy")) as CodeHashDistribution - const receipt =await (await codeHashDistribution.instantiate()).wait(); - - // await codeIndex.register(instance.contractAddress) - const superInterface = utils.getSuperInterface(); - const parsed = receipt.logs.map((log) => ({ rawLog: log, ...superInterface.parseLog(log) })); - const instance = parsed[0].args.instances[0]; - const code2 = await cutFacet.provider.getCode(instance); - expect(code2.slice(22,62).toLowerCase()).to.be.equal(cutFacet.address.slice(2).toLowerCase()) - }) - -}); diff --git a/test/eds/CodeIndex.ts b/test/eds/CodeIndex.ts deleted file mode 100644 index 97731263..00000000 --- a/test/eds/CodeIndex.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { ethers } from 'hardhat'; -import { Signer } from 'ethers'; -import { expect } from 'chai'; -import { CodeIndex, TestFacet } from '../../types'; -import hre, { deployments, } from 'hardhat'; -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; -describe('CloneDistribution', function () { - let codeIndex: CodeIndex; - let testContract: TestFacet; - let deployer: SignerWithAddress; - - - beforeEach(async function () { - await deployments.fixture('code_index'); // This is the key addition - const CodeIndex = await ethers.getContractFactory('CodeIndex'); - - const initCodeHash = ethers.utils.keccak256(CodeIndex.bytecode); - console.log(`Init Code Hash: ${initCodeHash}`); - deployer = (await ethers.getSigners())[0]; - // Convert to a BigInt since the value is too large for standard Number types - const bigIntValue = BigInt('42759584821269276073726276772598488633863215600876260121819881722816808625192'); - // Convert to a hexadecimal string - const hexValue = "0x" + bigIntValue.toString(16); - const result = await hre.deployments.deploy('CodeIndex', {deterministicDeployment: hexValue, from: deployer.address, skipIfAlreadyDeployed: true}); - codeIndex = new ethers.Contract(result.address, CodeIndex.interface).connect(deployer) as CodeIndex; - console.log('CodeIndex deployed at', result.address) - const TestContract = await ethers.getContractFactory('TestFacet'); - testContract = await TestContract.deploy() as TestFacet; - - }); - - it('should emit Distributed event', async function () { - // const code = await testContract.provider.getCode(testContract.address); - expect(await codeIndex.register(testContract.address)).to.emit(codeIndex, 'Indexed') - }); - - it('should return address for registered code hash', async function () { - await codeIndex.register(testContract.address); - const code = await testContract.provider.getCode(testContract.address); - const codeHash = ethers.utils.keccak256(code); - expect(await codeIndex.get(codeHash)).to.equal(testContract.address); - }); - - it('Should revert on registering same code hash', async function () { - await codeIndex.register(testContract.address); - await expect(codeIndex.register(testContract.address)).to.be.revertedWithCustomError(codeIndex, 'alreadyExists'); - }); - -}); diff --git a/test/eds/DiamondDistribution.ts b/test/eds/DiamondDistribution.ts deleted file mode 100644 index 1ebddf9f..00000000 --- a/test/eds/DiamondDistribution.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { ethers, deployments } from 'hardhat'; -import { Signer } from 'ethers'; -import { expect } from 'chai'; -import { - CodeIndex, - DiamondClonable, - DiamondClonable__factory, - DiamondCutFacet, - DiamondCutFacet__factory, - DiamondLoupeFacet, - MockDiamondDistribution__factory, - MockDiamondInitialize__factory, - TestFacet, -} from '../../types'; -import utils from "../utils" - - -describe('DiamondDistribution', function () { - let initializerId: string; - let initSelector: string; - let testFacetId: string; - let loupeFacetId: string - let codeIndex: CodeIndex - let superInterface = utils.getSuperInterface(); - let diamondId: string - let deployer: Signer; - let addr1: Signer; - let addr2: Signer; - - beforeEach(async function () { - await deployments.fixture('code_index'); // This is the key addition - [deployer, addr1, addr2] = await ethers.getSigners(); - - - const CodeIndex = await ethers.getContractFactory('CodeIndex'); - const MockDiamondInitialize = (await ethers.getContractFactory( - 'MockDiamondInitialize', - )) as MockDiamondInitialize__factory; - const DiamondCutFacet = (await ethers.getContractFactory('DiamondCutFacet')) as DiamondCutFacet__factory; - const Diamond = (await ethers.getContractFactory('DiamondClonable')) as DiamondClonable__factory; - - const initializerDeployment = await MockDiamondInitialize.deploy() - const testFacet = await ((await ethers.getContractFactory('TestFacet')).deploy()) as TestFacet; - const loupeFacet = await ((await ethers.getContractFactory('DiamondLoupeFacet')).deploy()) as DiamondLoupeFacet; - const cutFacet = await DiamondCutFacet.deploy() as DiamondCutFacet; - - - await initializerDeployment.deployed(); - const initCode = await initializerDeployment.provider.getCode(initializerDeployment.address); - const testFacetCode = await testFacet.provider.getCode(testFacet.address); - const loupeFacetCode = await loupeFacet.provider.getCode(loupeFacet.address); - - - - const codeIndexDeployment = await deployments.get('CodeIndex') - codeIndex = new ethers.Contract(codeIndexDeployment.address, CodeIndex.interface).connect(deployer) as CodeIndex; - await codeIndex.register(initializerDeployment.address); - await codeIndex.register(testFacet.address); - await codeIndex.register(loupeFacet.address); - await codeIndex.register(cutFacet.address); - testFacetId = ethers.utils.keccak256(testFacetCode); - loupeFacetId = ethers.utils.keccak256(loupeFacetCode); - initializerId = ethers.utils.keccak256(initCode); - initSelector = initializerDeployment.interface.getSighash('init'); - - - - const diamond = await Diamond.deploy(ethers.constants.AddressZero, cutFacet.address) as DiamondClonable; - await codeIndex.register(diamond.address); - const diamondCode = await diamond.provider.getCode(diamond.address); - - - diamondId = ethers.utils.keccak256(diamondCode); - - }); - - it('Should emit on initialized', async function () { - const DiamondDistribution = (await ethers.getContractFactory( - 'MockDiamondDistribution', - )) as MockDiamondDistribution__factory; - - const tx = await DiamondDistribution.deploy( - diamondId, - testFacetId, loupeFacetId, - initializerId, - initSelector - ); - expect(tx).to.emit(tx.address, 'Initialized'); - }); - - it('Should emit respond on facet requests', async function () { - const DiamondDistribution = (await ethers.getContractFactory( - 'MockDiamondDistribution', - )) as MockDiamondDistribution__factory; - // mockDiamondInitialize; - const tx = await DiamondDistribution.deploy( - diamondId, - testFacetId,loupeFacetId, - initializerId, - initSelector); - await tx.deployed(); - const instantiation = await tx.instantiate(); - const { logs } = await instantiation.wait(1); - const parsed = logs.map((log) => ({ rawLog: log, ...superInterface.parseLog(log) })); - const distributionLog = parsed.find((log)=> log?.name === 'Distributed'); - expect(!!distributionLog).to.be.true; - if (distributionLog) { - expect(distributionLog.args.instances.length).to.be.equal(1); - const diamondInstanceAddress = distributionLog.args.instances[0]; - - const d = (await ethers.getContractAt('TestFacet', diamondInstanceAddress)) as TestFacet; - const l = (await ethers.getContractAt('DiamondLoupeFacet', diamondInstanceAddress)) as DiamondLoupeFacet; - - expect(await d.ping()).to.be.equal('pong'); - expect((await l.facets()).length).to.be.equal(3); - } - }); -}); diff --git a/test/mock.ts b/test/mock.ts index 9e1d32ee..beb5d665 100644 --- a/test/mock.ts +++ b/test/mock.ts @@ -14,7 +14,6 @@ const setupTest = deployments.createFixture(async ({ deployments, getNamedAccoun describe('DiamondTest', async function () { let contract: any; beforeEach(async function () { - console.log('before'); contract = await setupTest(); }); it('emits fire all events', async () => { diff --git a/test/utils.ts b/test/utils.ts index 75916cb6..c95aca21 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -1,6 +1,6 @@ -/* eslint-disable no-undef */ -/* eslint-disable arrow-body-style */ -/* eslint-disable no-await-in-loop */ + + + // import { time } from "@openzeppelin/test-helpers"; import hre, { deployments, config } from 'hardhat'; import aes from 'crypto-js/aes'; @@ -14,6 +14,9 @@ import { RankToken, RankifyDiamondInstance, MultipassDiamond, + MAODistribution, + PeeramidLabsDistributor, + ArguableVotingTournament, } from '../types'; import { BigNumber, BigNumberish, BytesLike, Wallet } from 'ethers'; // @ts-ignore @@ -70,12 +73,14 @@ export interface AdrSetupResult { export interface EnvSetupResult { rankifyToken: Rankify; - rankifyInstance: RankifyDiamondInstance; + arguableVotingTournamentDistribution: ArguableVotingTournament; multipass: MultipassDiamond; - rankToken: RankToken; + rankTokenBase: RankToken; mockERC20: MockERC20; mockERC1155: MockERC1155; mockERC721: MockERC721; + maoDistribution: MAODistribution; + distributor: PeeramidLabsDistributor; } export const addPlayerNameId = (idx: any) => { return { name: `player-${idx}`, id: `player-${idx}-id` }; @@ -312,7 +317,7 @@ export const setupTest = deployments.createFixture(async ({ deployments, getName to: owner, value: _eth.utils.parseEther('1'), }); - await deployments.fixture(['rankify', 'multipass']); + await deployments.fixture(['MAO', 'multipass']); const MockERC20F = await _eth.getContractFactory('MockERC20', adr.contractDeployer.wallet); const mockERC20 = (await MockERC20F.deploy('Mock ERC20', 'MCK20', adr.contractDeployer.wallet.address)) as MockERC20; await mockERC20.deployed(); @@ -329,10 +334,13 @@ export const setupTest = deployments.createFixture(async ({ deployments, getName )) as MockERC721; await mockERC721.deployed(); const env = await setupEnvironment({ + distributor: await deployments.get('PeeramidLabsDistributor'), + mao: await deployments.get('MAODistribution'), RankifyToken: await deployments.get('Rankify'), - RankToken: await deployments.get('RankToken'), - RankifyInstance: await deployments.get('RankifyInstance'), + RankTokenBase: await deployments.get('RankToken'), + // RankifyInstance: await deployments.get('RankifyInstance'), multipass: await deployments.get('Multipass'), + arguableVotingTournamentDistribution: await deployments.get('ArguableVotingTournament'), mockERC20: mockERC20, mockERC721: mockERC721, mockERC1155: mockERC1155, @@ -386,35 +394,35 @@ export const setupTest = deployments.createFixture(async ({ deployments, getName await env.rankifyToken .connect(adr.gameOwner.wallet) .mint(adr.maliciousActor3.wallet.address, ethers.utils.parseEther('1000000')); - await env.rankifyToken - .connect(adr.gameCreator1.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken - .connect(adr.gameCreator2.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken - .connect(adr.gameCreator3.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player1.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player2.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player3.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player4.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player5.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player6.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player7.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player8.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player9.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken.connect(adr.player10.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - - await env.rankifyToken - .connect(adr.maliciousActor1.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken - .connect(adr.maliciousActor2.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); - await env.rankifyToken - .connect(adr.maliciousActor3.wallet) - .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken + // .connect(adr.gameCreator1.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken + // .connect(adr.gameCreator2.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken + // .connect(adr.gameCreator3.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player1.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player2.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player3.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player4.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player5.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player6.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player7.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player8.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player9.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken.connect(adr.player10.wallet).approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + + // await env.rankifyToken + // .connect(adr.maliciousActor1.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken + // .connect(adr.maliciousActor2.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); + // await env.rankifyToken + // .connect(adr.maliciousActor3.wallet) + // .approve(env.rankifyInstance.address, ethers.constants.MaxUint256); return { adr, @@ -423,31 +431,48 @@ export const setupTest = deployments.createFixture(async ({ deployments, getName }); // export const setupTest = () => setupTest(); export const setupEnvironment = async (setup: { + distributor: Deployment; + mao: Deployment; RankifyToken: Deployment; - RankToken: Deployment; - RankifyInstance: Deployment; + RankTokenBase: Deployment; + // RankifyInstance: Deployment; mockERC20: MockERC20; mockERC721: MockERC721; mockERC1155: MockERC1155; multipass: Deployment; adr: AdrSetupResult; + arguableVotingTournamentDistribution: Deployment; }): Promise => { - const rankToken = (await ethers.getContractAt(setup.RankToken.abi, setup.RankToken.address)) as RankToken; + const rankTokenBase = (await ethers.getContractAt(setup.RankTokenBase.abi, setup.RankTokenBase.address)) as RankToken; const rankifyToken = (await ethers.getContractAt(setup.RankifyToken.abi, setup.RankifyToken.address)) as Rankify; - const rankifyInstance = (await ethers.getContractAt( - setup.RankifyInstance.abi, - setup.RankifyInstance.address, - )) as RankifyDiamondInstance; + // const rankifyInstance = (await ethers.getContractAt( + // setup.RankifyInstance.abi, + // setup.RankifyInstance.address, + // )) as RankifyDiamondInstance; const multipass = (await ethers.getContractAt(setup.multipass.abi, setup.multipass.address)) as MultipassDiamond; + const maoDistribution = (await ethers.getContractAt(setup.mao.abi, setup.mao.address)) as MAODistribution; + const distributor = (await ethers.getContractAt( + setup.distributor.abi, + setup.distributor.address, + )) as PeeramidLabsDistributor; + + const arguableVotingTournamentDistribution = (await ethers.getContractAt( + setup.arguableVotingTournamentDistribution.abi, + setup.arguableVotingTournamentDistribution.address, + )) as ArguableVotingTournament; + return { + maoDistribution, + distributor, rankifyToken, - rankifyInstance, + // rankifyInstance, multipass, - rankToken, + rankTokenBase, mockERC1155: setup.mockERC1155, mockERC20: setup.mockERC20, mockERC721: setup.mockERC721, + arguableVotingTournamentDistribution, }; }; @@ -926,29 +951,30 @@ export const signRegistrarMessage = async ( }; const getSuperInterface = () => { - let mergedArray: JsonFragment[] = []; - function readDirectory(directory: string) { - const files = fs.readdirSync(directory); - - files.forEach(file => { - const fullPath = path.join(directory, file); - if (fs.statSync(fullPath).isDirectory()) { - readDirectory(fullPath); // Recurse into subdirectories - } else if (path.extname(file) === '.json') { - const fileContents = require('../' + fullPath); // Load the JSON file - if (Array.isArray(fileContents)) { - mergedArray = mergedArray.concat(fileContents); // Merge the array from the JSON file - } + let mergedArray: JsonFragment[] = []; + function readDirectory(directory: string) { + const files = fs.readdirSync(directory); + + files.forEach(file => { + const fullPath = path.join(directory, file); + if (fs.statSync(fullPath).isDirectory()) { + readDirectory(fullPath); // Recurse into subdirectories + } else if (path.extname(file) === '.json') { + const fileContents = require('../' + fullPath); // Load the JSON file + if (Array.isArray(fileContents)) { + mergedArray = mergedArray.concat(fileContents); // Merge the array from the JSON file } - }); - } - const originalConsoleLog = console.log; - readDirectory('./abi'); - console.log = () => {}; // avoid noisy output - const result = new ethers.utils.Interface(mergedArray); - console.log = originalConsoleLog; - return result; - }; + } + }); + } + const originalConsoleLog = console.log; + readDirectory('./abi'); + readDirectory('./node_modules/@peeramid-labs/eds/abi'); + console.log = () => {}; // avoid noisy output + const result = new ethers.utils.Interface(mergedArray); + console.log = originalConsoleLog; + return result; +}; export default { setupAddresses, @@ -956,5 +982,5 @@ export default { addPlayerNameId, baseFee, signMessage: signRegistrarMessage, - getSuperInterface + getSuperInterface, };