* Move to ethers 6 and use hardhat ignition for deployments
* Update prettier to the last version
* Remove comment
* Remove npx call in package.json
* Remove useless comment
* Add localhost configuration for hardhat ignition
* Use contract initial balance instead of const value
* Update dependencies and use extract mining to a script in order to use hardhat ignition deploy command
* Fix deployment modules for local env
* Remove unused function
* Export contract deployment custom error assert into a function
* Refactoring
* Remove old deployments folder
* Add process names when running concurrently
* Remove conditional allowBlocksWithSameTimestamp, set true everytime
* Update dependencies
* Update Vault tests for ignition
* Update token description
* Add vault ignition module
* Remove old .tool-versions
* Fix formatting
* Remove deployments folder and add README for previous files references
* Put back the comment related to hardhat automine
* Set hardhat gas limit to auto and restore manual mining for Vault tests
* Apply prettier formatting and bug test with ignition syntax
* Add deployments artifacts
* Fix build-info ignore
* Use HARDHAT_NETWORK env variable to deploy marketplace contract
* Add guard to check that configs has tags
* Add testnet deployment addresses
* Add TOKEN_ADDRESS to reuse the token contract deployed
* Fix token deployment with contractAt
* Remove localhost deployment artifacts
* Add section in README for deployments
* Ignore localhost deployments in git
* Set mine script for localhost deployment only and add deploy reset command
* Remove previous deployment scripts
* Fix typo in documentation
* Add log when reusing token address
* Update testnet artifact reference
* Remove HARDHAT_NETWORK and update documentation
* fix md format
* Npm audit fix
* Update dependencies
* Remove default deployer
* Update commit for last testnet artifacts
* Remove deployments files from linea and testnet and update the last commit hashes to those artifacts
Previous to when SlotState.Repair was implemented, slots in repair would be considered free and the slots could be reserved in this state. Now that SlotState.Repair has been implemented, the `canReserveSlot` needs to check that the SlotState is in Repair or is Free before allowing reservation.
`SlotReservationsFull` event is emitted once a slot has reached its capacity for slot reservations (3 reservations at this time).
`SlotReservationsFull` event emists `requestId` and `slotIndex`.
* feat(slot-reservations): Allow slots to be reserved
Closes#175.
Allows reservation of slots, without an implementation of the expanding window.
- Add a function called `reserveSlot(address, SlotId)`, that allows three unique addresses per slot to be reserved, that returns bool if successful.
- Use `mapping(SlotId => EnumerableSet.AddressSet)`
- Return false if the address could not be added to the set (if `EnumerableSet.add` returns false)
- Add `canReserveSlot(address, SlotId)`
- Return `true` if set of reservations is less than 3 and the set doesn't already contain the address
- Return `true` otherwise (for now, later add in logic for checking the address is inside the expanding window)
- Call `canReserveSlot` from `reserveSlot` as a `require` or invariant
- Add `SlotReservations` configuration struct to the network-level config, with `maxReservations`