Fraction ProtocolinternalFacetspurchasePhaseFacetspurchaseDiscountFacetsgenesisIdsburnForDiscount

BurnFungibleForDiscountGenesisIdsFacetStorage

BurnFungibleForDiscountGenesisIdsFacetStorage

AlreadyInitialized

error AlreadyInitialized()

Thrown when attempting to re-initialize.

UnsupportedBurnableInterface

error UnsupportedBurnableInterface()

Thrown when burnable interface is not supported.

InvalidZeroAmountPerFraction

error InvalidZeroAmountPerFraction()

Thrown when attempting to pass invalid zero amount per fraction.

InvalidHandlingGenesisIdApplied

error InvalidHandlingGenesisIdApplied(uint256 handlingGenesisId, uint256 upperGenesisId)

Thrown when attempting to apply invalid handlingGenesisId over the upperGenesisId.

InvalidDiscountPercentage

error InvalidDiscountPercentage(uint256 discountPercentage)

Thrown when attempting to pass invalid discount percentage.

NonHandlingGenesisId

error NonHandlingGenesisId(uint256 handlingGenesisId, uint256 genesisIdUsed)

Thrown when attempting to get price for different genesisId than handlingGenesisId.

STORAGE_SLOT

bytes32 STORAGE_SLOT

================================================== STORAGE =================================================

Unique identifier for the storage slot where the Layout struct is stored. Derived from the ERC7201 formula. STORAGE_SLOT: TO-DO

Layout

struct Layout {
  address tokenToBurn;
  mapping(uint256 => struct BurnFungibleForDiscountGenesisIdsFacetStorage.CampaignInfo) campaignInfo;
}

CampaignInfo

struct CampaignInfo {
  uint256 amountToBurnPerFraction;
  uint256 discountPercentage;
  uint256 handlingGenesisId;
}

layout

function layout() internal pure returns (struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l)

Retrieves a reference to the Layout struct stored at a specified storage slot

initPurchaseDiscountFacet

function initPurchaseDiscountFacet(struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l, bytes initPurchaseDiscountData) internal returns (address)

setAndCheckPurchaseDiscount

function setAndCheckPurchaseDiscount(struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l, bytes postFractionPurchaseDiscountData) internal returns (uint256, uint256, uint256)

applyDiscount

function applyDiscount(struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l, uint256 campaignId, uint256 amountOfFractions, address account) internal returns (uint256, uint256)

getPricePerFractionForGenesisId

function getPricePerFractionForGenesisId(struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l, uint256 campaignId, uint256 genesisId) internal view returns (uint256 pricePerFraction)

getDiscountedPrice

function getDiscountedPrice(struct BurnFungibleForDiscountGenesisIdsFacetStorage.Layout l, uint256 campaignId) internal view returns (uint256 discountedPrice)