Skip to content

Conversation

@0xlucian
Copy link
Collaborator

@0xlucian 0xlucian commented Feb 10, 2025

ERC20 Fraction Epochs

Overview

This feature introduces a flexible way to manage fractionalized NFTs by allowing multiple fractionalisation periods with different parameters. Each epoch represents a distinct period where token balances and total supply are tracked separately, enabling more flexible management of fractionalized assets.

Key Features

Epoch-Based Fractions Management

  • Each epoch has its own dedicated ERC20 clone contract deployed via minimal proxy pattern
  • Token balances are tracked separately for each epoch through independent ERC20 contracts
  • Standard ERC20 operations work directly with the epoch's contract
  • Fractionalisation events contain epoch id

Flexible Fractionalisation Parameters

  • Allows updating buyout auction parameters when needed without the possibility of diluting unclaimed proceeds from auctions with different parameters
  • Each epoch can have its own price oracle and exit price settings

Epoch Management

  • Epochs advance only when fractionalisation that updates the buyout parameters occurs
  • Each epoch maintains its own state, preventing interference between different fractionalisation periods
  • The FermionFNFT contract tracks the current epoch and provides methods to access ERC20 clones

ERC20 Clone Access

  • getERC20FractionsClone() returns the address of the current epoch's ERC20 clone
  • getERC20FractionsClone(uint256 _epoch) returns the address of a specific epoch's ERC20 clone
  • currentEpoch() returns the current epoch number

Claiming Mechanisms

  • Fraction holders can claim proceeds from specific epochs
  • Supports claiming from both current and previous epochs
  • Maintains fair distribution of proceeds within each epoch

Backwards Compatibility

  • Maintains standard ERC20 functionality through the clone contracts
  • Provides additional methods for epoch-specific operations
  • Fully compatible with existing ERC20 integrations

Usage

The Epochs feature works transparently for standard ERC20 operations while providing additional functionality for advanced use cases. Fraction holders interact directly with the ERC20 clone contracts using standard ERC20 methods, while the FermionFNFT contract provides methods to access the appropriate clone for each epoch.

To interact with fractions:

  1. Get the current epoch's ERC20 clone address using getERC20FractionsClone()
  2. Interact with the returned address using standard ERC20 methods (transfer, approve, etc.)
  3. For specific epoch operations, first get the appropriate clone address using getERC20FractionsClone(epochNumber)

Copy link
Contributor

@zajck zajck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I just added some suggestions.

@0xlucian 0xlucian requested a review from zajck March 5, 2025 07:48
Copy link
Contributor

@zajck zajck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In contracts/protocol/clients/FermionFNFT.sol, import in line 17 can be removed.
import { IERC721 } from "@openzeppelin/contracts/token/ERC721/IERC721.sol";

@zajck zajck self-requested a review March 7, 2025 08:26
@0xlucian 0xlucian requested a review from zajck March 7, 2025 14:54
zajck added a commit that referenced this pull request Mar 12, 2025
0xlucian and others added 2 commits March 17, 2025 09:44
Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>
@0xlucian 0xlucian requested a review from levalleux-ludo March 17, 2025 11:07
levalleux-ludo
levalleux-ludo previously approved these changes Mar 17, 2025
@0xlucian 0xlucian requested a review from levalleux-ludo March 17, 2025 16:02
Copy link
Contributor

@zajck zajck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zajck zajck merged commit 19b031f into develop-1.1.0 Mar 17, 2025
5 checks passed
@zajck zajck deleted the epochs-feature branch March 18, 2025 13:34
zajck added a commit that referenced this pull request Jun 5, 2025
* feat: align code with using feeTable feature on boson protocol and fix failing tests due to protocol config change in boson

* format: scripts and contracts

* feat: implement new fee handling logic in fermion (stack too deep)

* Fix stack too deep error

* fix: most of the failing tests (WIP)

* Fix failing test

* feat: feetable implementation

* fix: config facet deploy script init params

* refactor: optimize submitBerdictInternal

* refactor: remove unnecessary param from FeeTableUpdated event

* feat: add tests and a minor fix in the code

* fix: lint

* format: tidy scripts and contracts

* refactor: adresses PR comments for small refactoring, remove unnecessary code and adding natspec

* fix: add test case for ArrayLengthMismatch revert

* Update ci.yaml (#313)

* Update ci.yaml

* tidy

* Bump typescript-eslint in the dev-dependencies group (#315)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.13.0 to 8.14.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.14.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add governance price update implementation

* fix: adjust tests and FermionFNFTLib

* refactor: tidy contracts and scripts

* feat: finalise implementation of PriceOracleRegistry

* feat: add Chainlink Price Oracle Implementation

* Bump @eslint/plugin-kit from 0.2.0 to 0.2.3 in the npm_and_yarn group (#319)

Bumps the npm_and_yarn group with 1 update: [@eslint/plugin-kit](https://github.com/eslint/rewrite).


Updates `@eslint/plugin-kit` from 0.2.0 to 0.2.3
- [Release notes](https://github.com/eslint/rewrite/releases)
- [Changelog](https://github.com/eslint/rewrite/blob/main/release-please-config.json)
- [Commits](https://github.com/eslint/rewrite/compare/core-v0.2.0...plugin-kit-v0.2.3)

---
updated-dependencies:
- dependency-name: "@eslint/plugin-kit"
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cross-spawn from 7.0.3 to 7.0.5 in the npm_and_yarn group (#321)

Bumps the npm_and_yarn group with 1 update: [cross-spawn](https://github.com/moxystudio/node-cross-spawn).


Updates `cross-spawn` from 7.0.3 to 7.0.5
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.5)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the dev-dependencies group across 1 directory with 4 updates (#323)

Bumps the dev-dependencies group with 4 updates in the / directory: [@nomicfoundation/hardhat-verify](https://github.com/nomicfoundation/hardhat), [eslint](https://github.com/eslint/eslint), [hardhat](https://github.com/nomiclabs/hardhat) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@nomicfoundation/hardhat-verify` from 2.0.11 to 2.0.12
- [Release notes](https://github.com/nomicfoundation/hardhat/releases)
- [Commits](https://github.com/nomicfoundation/hardhat/compare/@nomicfoundation/hardhat-verify@2.0.11...@nomicfoundation/hardhat-verify@2.0.12)

Updates `eslint` from 9.14.0 to 9.15.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.14.0...v9.15.0)

Updates `hardhat` from 2.22.15 to 2.22.16
- [Release notes](https://github.com/nomiclabs/hardhat/releases)
- [Commits](https://github.com/nomiclabs/hardhat/compare/hardhat@2.22.15...hardhat@2.22.16)

Updates `typescript-eslint` from 8.14.0 to 8.15.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.15.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@nomicfoundation/hardhat-verify"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: hardhat
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: substitute msg.sender for _msgSender()

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* refactor: address initial comments and convert OraclePriceRegistry to a diamond facet

* Update contracts/protocol/clients/FermionFractions.sol

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* refactor: address comments on additional fractions acquisition voting logic

* Bump the dev-dependencies group across 1 directory with 2 updates (#326)

Bumps the dev-dependencies group with 2 updates in the / directory: [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) and [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/mocha` from 10.0.9 to 10.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

Updates `@types/node` from 22.9.0 to 22.9.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/mocha"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump the dev-dependencies group with 4 updates (#328)

Bumps the dev-dependencies group with 4 updates: [@nomicfoundation/hardhat-ignition](https://github.com/NomicFoundation/hardhat-ignition), [@nomicfoundation/hardhat-ignition-ethers](https://github.com/NomicFoundation/hardhat-ignition), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@nomicfoundation/hardhat-ignition` from 0.15.7 to 0.15.8
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/compare/v0.15.7...v0.15.8)

Updates `@nomicfoundation/hardhat-ignition-ethers` from 0.15.7 to 0.15.8
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/compare/v0.15.7...v0.15.8)

Updates `@types/node` from 22.9.1 to 22.9.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript` from 5.6.3 to 5.7.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.6.3...v5.7.2)

---
updated-dependencies:
- dependency-name: "@nomicfoundation/hardhat-ignition"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@nomicfoundation/hardhat-ignition-ethers"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: small refactoring

* feat: update price unit tests and some smaller implementation adjustments

* Bump the dev-dependencies group across 1 directory with 4 updates (#330)

Bumps the dev-dependencies group with 4 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [prettier](https://github.com/prettier/prettier), [solidity-coverage](https://github.com/sc-forks/solidity-coverage) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 22.9.3 to 22.10.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `prettier` from 3.3.3 to 3.4.1
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.1)

Updates `solidity-coverage` from 0.8.13 to 0.8.14
- [Release notes](https://github.com/sc-forks/solidity-coverage/releases)
- [Changelog](https://github.com/sc-forks/solidity-coverage/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sc-forks/solidity-coverage/compare/v0.8.13...v0.8.14)

Updates `typescript-eslint` from 8.15.0 to 8.16.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.16.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: solidity-coverage
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: lint and remove console logs

* fix: diamond nubmers of facets test

* chore: skip coverage for ChainlinkPriceOracle.sol

* fix: lint

* chore: cover 100% of statements

* refactor: remove unecessary comments

* Bump the dev-dependencies group across 1 directory with 2 updates (#332)

Bumps the dev-dependencies group with 2 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [eslint](https://github.com/eslint/eslint).


Updates `@types/node` from 22.10.0 to 22.10.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 9.15.0 to 9.16.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.15.0...v9.16.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump typescript-eslint in the dev-dependencies group (#333)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.16.0 to 8.17.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.17.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: add more edge cases to address some PR comments

* chore: applied small fixes and optimisations

* fix: oracle registry storage slot

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* Bump hardhat from 2.22.16 to 2.22.17 in the dev-dependencies group (#334)

Bumps the dev-dependencies group with 1 update: [hardhat](https://github.com/nomiclabs/hardhat).


Updates `hardhat` from 2.22.16 to 2.22.17
- [Release notes](https://github.com/nomiclabs/hardhat/releases)
- [Commits](https://github.com/nomiclabs/hardhat/compare/hardhat@2.22.16...hardhat@2.22.17)

---
updated-dependencies:
- dependency-name: hardhat
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: setup in verification

* refactor: use applyPercentage

* refactor: format code

* refactor: address PR comments and improve coverage

* Bump prettier from 3.4.1 to 3.4.2 in the dev-dependencies group (#335)

Bumps the dev-dependencies group with 1 update: [prettier](https://github.com/prettier/prettier).


Updates `prettier` from 3.4.1 to 3.4.2
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: add test for event and address further comments

* refactor: fix contract size issue by splitting auction exit price update logic in different contract

* fix: metatx tests add additional constructor param

* reafactor: remove unused imports

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* chore(deps-dev): bump typescript-eslint in the dev-dependencies group (#336)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.17.0 to 8.18.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add Fermion NFT vault (#290)

* add "withPhyigital" flag to offer struct

* Add funds lib methods to transfer ERC721

* Add methods to deposit and withdraw phygitals

* Update submitVerdict and add withdrawPhygitals for buyer

* DepositPhygitals tests

* withdrawPhygitals [seller] tests

* withdrawPhygitals [buyer] tests

* withdrawPhygitals [buyer] tests - contractwallet for treasury

* withdrawPhygitals [buyer] tests - additional tests

* expand submitVerdict tests

* verifyPhygitals unit tests - happy path

* verifyPhygitals unit tests - happy path

* get phygitals only after the checkout

* Add check to FundsLib to check if the contract is FNFT

* Convert FundsLib and CustodyLib into contracts

* Deposit and withdraw FNFT erc20 and erc721 to protocol

* Make fnftCodeHash a constructor parameter

* update natspec

* add _phygitals parameter to natspec

* remove unnecessary check

* resolve PR change requests

* Verification with revised metadata (#288)

* submit revised metadata

* Cache buyer's address and accept signed messages

* allow updates, protect front-running

* submitRevisedMetadata

* getRevisedMetadata unit tests

* TokenURI tests

* additional submitVerdict tests

* submitProposal unit tests

* submitSignedProposal

* Pay verifier immediately after they submit revised metadata

* Fix failing unit tests

* Fix signed proposals

* Remove unused import

* rearrange types and variable declarations

* Resolve PR comments

* Fix unit tests

* chore(deps-dev): bump @types/node in the dev-dependencies group (#337)

Bumps the dev-dependencies group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 22.10.1 to 22.10.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump eslint in the dev-dependencies group (#338)

Bumps the dev-dependencies group with 1 update: [eslint](https://github.com/eslint/eslint).


Updates `eslint` from 9.16.0 to 9.17.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.16.0...v9.17.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: address comments and refactor tests and improve code coverage

* refactor: small refactoring of variable naming

* fix: tests

* feat: backfilling faucet and offchai backfilling of data (wip)

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 3 updates (#341)

Bumps the dev-dependencies group with 3 updates in the / directory: [@nomicfoundation/hardhat-ignition](https://github.com/NomicFoundation/hardhat-ignition), [@nomicfoundation/hardhat-ignition-ethers](https://github.com/NomicFoundation/hardhat-ignition) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@nomicfoundation/hardhat-ignition` from 0.15.8 to 0.15.9
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/compare/v0.15.8...v0.15.9)

Updates `@nomicfoundation/hardhat-ignition-ethers` from 0.15.8 to 0.15.9
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/compare/v0.15.8...v0.15.9)

Updates `typescript-eslint` from 8.18.0 to 8.18.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@nomicfoundation/hardhat-ignition"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@nomicfoundation/hardhat-ignition-ethers"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: nitpick comment address

* fix: compilation

* refactor: remove access control in backfilling facet

* refactor: finish the preparation of the backfill data

* feat: finalized the backfilling preparation function and preUpgrade hook

* chore(deps-dev): bump typescript-eslint in the dev-dependencies group (#344)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.18.1 to 8.18.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.18.2/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 3 updates (#347)

Bumps the dev-dependencies group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [solhint](https://github.com/protofire/solhint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 22.10.2 to 22.10.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `solhint` from 5.0.3 to 5.0.4
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/compare/v5.0.3...v5.0.4)

Updates `typescript-eslint` from 8.18.2 to 8.19.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: solhint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: minor gas optimisation

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 4 updates (#349)

Bumps the dev-dependencies group with 4 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [ethers](https://github.com/ethers-io/ethers.js), [prettier-plugin-solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 22.10.4 to 22.10.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `ethers` from 6.13.4 to 6.13.5
- [Release notes](https://github.com/ethers-io/ethers.js/releases)
- [Changelog](https://github.com/ethers-io/ethers.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ethers-io/ethers.js/compare/v6.13.4...v6.13.5)

Updates `prettier-plugin-solidity` from 1.4.1 to 1.4.2
- [Release notes](https://github.com/prettier-solidity/prettier-plugin-solidity/releases)
- [Commits](https://github.com/prettier-solidity/prettier-plugin-solidity/compare/v1.4.1...v1.4.2)

Updates `typescript-eslint` from 8.19.0 to 8.19.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: ethers
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: prettier-plugin-solidity
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* feat: initial implementation

* Fixed price offers on opensea (#316)

* List fixed price offers on seaport

* refactor unwrapNFT

* remove unwraptoself functions from fermion protocol

* refactor unwrapNFT

* Fermionwrapper tests

* mintWrapAndListNFTs test

* unwrap fixed price offer

* Prevent zero-price offers, test unwrapping with non-zero deposit

* Refactor + documentation

* add method to cancel the fixed price offers

* FermionWrapper.cancelFixedPriceOrder unit tests

* Rename listFixedPriceOffer to listFixedPriceOrder

* offerFacet.cancelFixedPriceOrder unit tests

* change order -> orders

* Remove unused code

* Move enum and functions to better storage location

* implement PR suggestions

* Merge branch 'develop-1.1.0' into 208-fixed-price-offers-opensea

* Refactor Fermion Fractions to go below contract size limit

* Fix failing coverage test

* extend NFTsWrapped, add FixedPriceSale events

* Add more unwrapping tests

* refactor: align storage structs events and errors realted to latest comments

* chore(deps-dev): bump the dev-dependencies group with 2 updates (#351)

Bumps the dev-dependencies group with 2 updates: [@openzeppelin/contracts-upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@openzeppelin/contracts-upgradeable` from 5.1.0 to 5.2.0
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/compare/v5.1.0...v5.2.0)

Updates `typescript` from 5.7.2 to 5.7.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3)

---
updated-dependencies:
- dependency-name: "@openzeppelin/contracts-upgradeable"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: finalized implementation refactoring

* chore(deps): bump @openzeppelin/contracts from 5.1.0 to 5.2.0 (#353)

Bumps [@openzeppelin/contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/OpenZeppelin/openzeppelin-contracts/releases)
- [Changelog](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md)
- [Commits](https://github.com/OpenZeppelin/openzeppelin-contracts/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: "@openzeppelin/contracts"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump the dev-dependencies group with 2 updates (#354)

Bumps the dev-dependencies group with 2 updates: [eslint](https://github.com/eslint/eslint) and [glob](https://github.com/isaacs/node-glob).


Updates `eslint` from 9.17.0 to 9.18.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0)

Updates `glob` from 11.0.0 to 11.0.1
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.0...v11.0.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: glob
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: adjust small implementation details and address latest comments

* refactor: further refactoring

* feat: add tests for custodian update feature

* fix: lint

* fix: tests

* chore(deps-dev): bump the dev-dependencies group with 3 updates (#355)

Bumps the dev-dependencies group with 3 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [hardhat](https://github.com/nomiclabs/hardhat) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 22.10.5 to 22.10.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `hardhat` from 2.22.17 to 2.22.18
- [Release notes](https://github.com/nomiclabs/hardhat/releases)
- [Commits](https://github.com/nomiclabs/hardhat/compare/hardhat@2.22.17...hardhat@2.22.18)

Updates `typescript-eslint` from 8.19.1 to 8.20.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.20.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: hardhat
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump eslint-config-prettier from 9.1.0 to 10.0.1 (#356)

Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 9.1.0 to 10.0.1.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.1)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-dev): bump @types/node in the dev-dependencies group (#357)

Bumps the dev-dependencies group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 22.10.6 to 22.10.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: strip offerId from graph result

* feat: add backfilling data for firstItemId and itemQuantity in OfferLookup

* refactor: simplify code and substitute graphql @apollo/client with much lighter and easi to use client @urql

* chore(deps-dev): bump solhint in the dev-dependencies group (#358)

Bumps the dev-dependencies group with 1 update: [solhint](https://github.com/protofire/solhint).


Updates `solhint` from 5.0.4 to 5.0.5
- [Release notes](https://github.com/protofire/solhint/releases)
- [Changelog](https://github.com/protofire/solhint/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/protofire/solhint/commits)

---
updated-dependencies:
- dependency-name: solhint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: address most of the PR comments

* chore(deps-dev): bump typescript-eslint in the dev-dependencies group (#364)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.20.0 to 8.21.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Refactor FNFT (#365)

* move _adjustVotesOnTransfer to erc20base

* Separate FermionFractionsMint

* Separate FermionBuyoutAuction

* use generic forward call

* start auction if bid is exactly the exit price

* bump the coverage

* chore(deps): bump undici from 5.28.4 to 5.28.5 in the npm_and_yarn group (#366)

Bumps the npm_and_yarn group with 1 update: [undici](https://github.com/nodejs/undici).


Updates `undici` from 5.28.4 to 5.28.5
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 3 updates (#370)

Bumps the dev-dependencies group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@types/node` from 22.10.7 to 22.12.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 9.18.0 to 9.19.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0)

Updates `typescript-eslint` from 8.21.0 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: incraese test coverage and refactor test setup

* feat: add CustodianFee period validation in requestCustodianUpdate

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 10 updates (#395)

Bumps the dev-dependencies group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@nomicfoundation/hardhat-ignition](https://github.com/NomicFoundation/hardhat-ignition) | `0.15.9` | `0.15.10` |
| [@nomicfoundation/hardhat-ignition-ethers](https://github.com/NomicFoundation/hardhat-ignition) | `0.15.9` | `0.15.10` |
| [@nomicfoundation/hardhat-verify](https://github.com/nomicfoundation/hardhat) | `2.0.12` | `2.0.13` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.12.0` | `22.13.9` |
| [eslint](https://github.com/eslint/eslint) | `9.19.0` | `9.21.0` |
| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `10.0.1` | `10.0.2` |
| [hardhat](https://github.com/nomiclabs/hardhat) | `2.22.18` | `2.22.19` |
| [prettier](https://github.com/prettier/prettier) | `3.4.2` | `3.5.3` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.7.3` | `5.8.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.22.0` | `8.26.0` |



Updates `@nomicfoundation/hardhat-ignition` from 0.15.9 to 0.15.10
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/commits)

Updates `@nomicfoundation/hardhat-ignition-ethers` from 0.15.9 to 0.15.10
- [Release notes](https://github.com/NomicFoundation/hardhat-ignition/releases)
- [Commits](https://github.com/NomicFoundation/hardhat-ignition/commits)

Updates `@nomicfoundation/hardhat-verify` from 2.0.12 to 2.0.13
- [Release notes](https://github.com/nomicfoundation/hardhat/releases)
- [Commits](https://github.com/nomicfoundation/hardhat/compare/@nomicfoundation/hardhat-verify@2.0.12...@nomicfoundation/hardhat-verify@2.0.13)

Updates `@types/node` from 22.12.0 to 22.13.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 9.19.0 to 9.21.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.21.0)

Updates `eslint-config-prettier` from 10.0.1 to 10.0.2
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.0.1...v10.0.2)

Updates `hardhat` from 2.22.18 to 2.22.19
- [Release notes](https://github.com/nomiclabs/hardhat/releases)
- [Commits](https://github.com/nomiclabs/hardhat/compare/hardhat@2.22.18...hardhat@2.22.19)

Updates `prettier` from 3.4.2 to 3.5.3
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.2...3.5.3)

Updates `typescript` from 5.7.3 to 5.8.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2)

Updates `typescript-eslint` from 8.22.0 to 8.26.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@nomicfoundation/hardhat-ignition"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@nomicfoundation/hardhat-ignition-ethers"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@nomicfoundation/hardhat-verify"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: hardhat
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update test/protocol/custodyFacet.ts

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* chore(deps-dev): bump the dev-dependencies group across 1 directory with 5 updates (#401)

Bumps the dev-dependencies group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.13.9` | `22.13.10` |
| [eslint](https://github.com/eslint/eslint) | `9.21.0` | `9.22.0` |
| [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) | `10.0.2` | `10.1.1` |
| [shelljs](https://github.com/shelljs/shelljs) | `0.8.5` | `0.9.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.26.0` | `8.26.1` |



Updates `@types/node` from 22.13.9 to 22.13.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 9.21.0 to 9.22.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0)

Updates `eslint-config-prettier` from 10.0.2 to 10.1.1
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.0.2...v10.1.1)

Updates `shelljs` from 0.8.5 to 0.9.1
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.8.5...v0.9.1)

Updates `typescript-eslint` from 8.26.0 to 8.26.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: shelljs
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump axios from 1.7.4 to 1.8.2 in the npm_and_yarn group (#403)

Bumps the npm_and_yarn group with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.7.4 to 1.8.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.4...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add changes from main to current develop branch (#398)

* Add audits to the repo (#285)

* Add audits

* Upload fixed v1.0.0_2 pdf

* feat:implement name and symbol setters

* feat: unit tests

* v1.0.1 addresses (#279)

* amoy and sepolia test addresses

* update protocol parameters

* amoy v1.0.1. staging addresses

* Fix protocol versions in addresses files

* Update parameters in tests

* Make better gas cost estimates

* add base sepolia parameters

* add base testi and staging addresses

* Add base config

* Base v1.0.1 mainnet addresses

* tidy

* Better dry-run

* automatically renounce UPGRADER role

* Update FNFT on amoy

* Polygon v1.0.1 mainnet addresses

* Ethereum v1.0.1 mainnet addresses

* update FNFT implementation address

* tidy

* Optimism v1.0.1 test,staging addresses

* Ethereum v1.0.1 sepolia addresses

* Update sepolia test FNFT implementation

* Fix failing unit tests

---------

Co-authored-by: 0xlucian <0xluciandev@gmail.com>

* Verify contracts on block explorer (#318)

* amoy and sepolia test addresses

* update protocol parameters

* amoy v1.0.1. staging addresses

* Fix protocol versions in addresses files

* Update parameters in tests

* Make better gas cost estimates

* Add verification script

* Fix readme typos

* add base sepolia parameters

* add base testi and staging addresses

* Add base config

* Base v1.0.1 mainnet addresses

* tidy

* verify base contracts

* baseSepolia hardhat config

* Handle "InitializationFacet" verification

* Better dry-run

* automatically renounce UPGRADER role

* Update FNFT on amoy

* Polygon v1.0.1 mainnet addresses

* Ethereum v1.0.1 mainnet addresses

* update FNFT implementation address

* tidy

* Optimism v1.0.1 test,staging addresses

* optimistic etherscan verification

* Ethereum v1.0.1 sepolia addresses

---------

Co-authored-by: 0xlucian <0xluciandev@gmail.com>

* add banner

* Add files via upload

* add docs link

* new banner

* remove banner size

* tidy

* Add correct coverage badge (#397)

* Merge branch 'main' into develop

* fix tests

* Seaport integration test (#327)

* amoy and sepolia test addresses

* update protocol parameters

* amoy v1.0.1. staging addresses

* Fix protocol versions in addresses files

* Update parameters in tests

* Make better gas cost estimates

* use true boson and seport when doing dry-run

* unwrap on forked network

* rename ethereum -> mainnet, skip deployer check in dry run

* skip integration test when running normal tests

* Update readme

* add base sepolia parameters

* add base testi and staging addresses

* Add base config

* Add base, rename mainnet back to ethereum

* Base v1.0.1 mainnet addresses

* tidy

* increase timeout

* add optimism to readme

* Update README.md

Co-authored-by: albertfolch-redeemeum <102516373+albertfolch-redeemeum@users.noreply.github.com>

---------

Co-authored-by: albertfolch-redeemeum <102516373+albertfolch-redeemeum@users.noreply.github.com>

* update package.json

---------

Co-authored-by: 0xlucian <0xluciandev@gmail.com>
Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>
Co-authored-by: git-fermion <159157137+git-fermion@users.noreply.github.com>
Co-authored-by: albertfolch-redeemeum <102516373+albertfolch-redeemeum@users.noreply.github.com>

* Configurable OS fee (#408)

* feat: implementation

* refactor: address PR comments

* fix: tests to use 0.5% fee

* fix:move percentage in unfilled storage slot

---------

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* Reorganise folder structure. (#384)

* feat: reorganize folder structure and small refactoring of contract naming

* refactor: apply PR code suggestions

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>
Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>

---------

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>
Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>

* Renounce Self Account Role (#377)

* feat: implementation of account role renounce

* refactor: align natspec

* feat: add tests

* refactor: address PR comment

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* refactor: address PR comment and tidy contracts

* reafactor: address PR comment

* fix: entity wide role validation

* feat: test for specific entity wide role revert

---------

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* Start buyout auction if the vault balance falls under the liquidation threshold (#404)

* Start buyout auction if under liquidation threhshold

* Put offer vault in the past when forceful fractionalization

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* 392 itemprice validation (#405)

* feat: initial implementation

* feat: add aditional revert for customItemPrice=0

* feat: add revert test and fix failing tests

* fix:address PR comment

* Revert "fix:address PR comment"

This reverts commit 2a16a249a8ed4f99880ba916095bcf5c62d78950.

* Revert all changes related to item price validation back to initial implementation

* feat: cleaner implementation of the feature

* feat: minnor changes and align unit tests

* refactor: add natspec for customItemPrice

* Epochs feature (#375)

* feat: epochs implementation

* feat: epoch test

* feat: feature implementation

* refactor: tests

* feat: increase coverage

* fix: remove logs from SC

* refactor: address PR comments

* refactor: only append epoch index to ERC20 clone name and symbol if > 0

* refactor: add event for vote removal

Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>

* fix: remove revert in adjustVotesonTransfer

* refactor: increase coverage and format code

* fix: unit tests

---------

Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>
Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* chore(deps-dev): bump shelljs in the dev-dependencies group (#411)

Bumps the dev-dependencies group with 1 update: [shelljs](https://github.com/shelljs/shelljs).


Updates `shelljs` from 0.9.1 to 0.9.2
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.9.1...v0.9.2)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fermion royalties (#373)

* Add royalites when offer is created

* Add getters to the protocol

* add eip2981 to FNFT

* collect royalties after auction

* wip

* FermionFNFT royalty tests

* Add methods to manage allowed royalty recipients

* add/remove seller's royalty recipients

* Create offer with royalties test

* Config tests

* updateOfferRoyaltyRecipients tests

* test protocol royalty getters

* bump the coverage

* add CreatorToken functions

* Refactor royalties out of offerfacet

* Refactor to a separate CreatorToken contract

* move opensea-js to dev-dep

* transfer validator unit tests

* Add natspec

* Handle OS auction with royalties

* unwrapping test with royalty recipients

* fix getOrCreateBuyerId

* Update comment and fix the checkk.

* Apply suggestions from code review

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* remove unused comments + tidy

* apply PR suggestions

* rename defaultTreasury -> defaultRecipient

* Royalties & fixed offer (#382)

* add royaltyInfo to fixed offers

* add royaltyInfo to fixed offers [wip]

* Refactor

* fix unit tests

* 2-step fix priced listing

* listFixedPriceOrders with royalty recipients

* bump the coverage

* handle disabled transfer validator

* prevent invalid unwraps

* tidy + fix tests

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* feat: add check and test for custody period (#399)

* Add verification metadata (#402)

* introduce Metadata struct

* Accept verification metadata

* add getVerificationDetails getter

* add unit tests

* remove console import

* Revert for non existing verification

* Revert on invalid verification status

* remove .only

* Migrate fractions (#415)

* Migrate fractions

* add unit tests

* tidy

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* Set fnft name and symbol while minting (#409)

* set name and symbol while minting

* update unit tests

* Remove the name and symbol setters

* apply PR sugestions

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* ERC2771 support for metatransactions (#414)

* ERC2771 support

* fix wrong unit test

* Add ERC20Permit

* remove fnftCodeHash check

* Address PR comments.

* Fix merge conflict

* FIx failing test

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* chore(deps-dev): bump opensea-js in the dev-dependencies group (#416)

Bumps the dev-dependencies group with 1 update: [opensea-js](https://github.com/ProjectOpenSea/opensea-js).


Updates `opensea-js` from 7.1.14 to 7.1.18
- [Release notes](https://github.com/ProjectOpenSea/opensea-js/releases)
- [Commits](https://github.com/ProjectOpenSea/opensea-js/compare/v7.1.14...v7.1.18)

---
updated-dependencies:
- dependency-name: opensea-js
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: yarn lock

* wip: reading offerLookups from storage

* wip: failing backfill offer data

* feat: unit tests

* safeTransfer for wrapped native (#430)

* chore(deps-dev): bump typescript-eslint in the dev-dependencies group (#434)

Bumps the dev-dependencies group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.26.1 to 8.27.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.27.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* Use `validateEntityId` instead of `fetchEntityData` (#432)

* Fetch opensea fee only once in `listFixedPriceOrders` (#433)

* Avoid local variable shadowing (#436)

* Revert if seaport call returns false (#437)

* Apply CEI pattern (#438)

* Add zero address validation (#439)

* Inherit interfaces if they exist (#440)

* Inherit interfaces where they exist

* Tidy up imports

* chore(deps-dev): bump the dev-dependencies group with 2 updates (#443)

Bumps the dev-dependencies group with 2 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [eslint](https://github.com/eslint/eslint).


Updates `@types/node` from 22.13.10 to 22.13.11
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 9.22.0 to 9.23.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.22.0...v9.23.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* add slither to ci configuration (#417)

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* chore: add dynamic graphQL fetching and facet address based on evn and chain

* refactor: address PR comments

* refactor: delete test script

* Return entityId when creating entity (#431)

* return entityId when creating entity

* Update contracts/protocol/facets/Entity.sol

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

---------

Co-authored-by: 0xlucian <96285542+0xlucian@users.noreply.github.com>

* FNFT immutable protocol address and ERC2771 fix (#435)

* Introduce immutable FERMION_PROTOCOL

* Tidy up constructors

* Fix ERC2771 context in clients

* Move `voucherAddress`

* refactor: change env names to be consistent with our address files

* fix: preUpgrade hook iniitalization

* fix:correct tokenId from graph query

* refactor:apply suggestions from code review

Co-authored-by: Ludovic Levalleux <levalleux_ludo@hotmail.com>

* refactor: rename initialization facet impl var

* Fix misleading error fields (#450)

* refactor: reuse function to execute backfill upgrade from UT

* format: lint

* fix: undefined var in test

* v1.1.0 Migration + Simulation (#451)

* feat: upgrade script, fork simulation

* chore: add instructions for upgrade and fork tests in README

* chore: working version of generate and upgrade suite (only missing upgrade-clients)

* fix: fork test and implement default replaceAll colliding selectors in fork tests

* refactor: CreatorToken interface rename

* revert: CreatorToken name back to original naming

* chore: add generation of clients diff in generate-upgrade-config

* refactor: finalize implementation of both scripts and refactor README

* fix: fork dryRun initialization

* refactor: add pause/unpause protocol and fix upgrade hook path

* refactor: throw error if hook fails

* refactor: address PR comments

* Update scripts/upgrade/upgrade-clients.ts

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* fix: deploymentComplete function overwrites newly deployed contracts if they exist

* refactor: address PR comments

* Update scripts/upgrade/upgrade-clients.ts

Co-authored-by: Klemen <64400885+zajck@users.noreply.github.com>

* chore: add missing config files

* fix: re-add accidentally deleted tasks from hardhat config

* Sepolia v1.1.0 upgrade

* Amoy v1.1.0-rc.1 upgrade

* Base Sepolia v1.1.0-rc.1 upgrade

* fix: re-upgrade clients on Sepolia test

* Optimism Sepolia v1.1.0-rc.1 upgrade

* Arbitrum Sepolia v1.1.0-rc.1 upgrade

* refactor: fixing minor script bugs and add some missing pieces for some chains

* [FBA-01M, FBA-02M] Native bid claims and reentrancy guard (#455…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants