The contract is upgradeable, it contrains few predefined values to prevent bugs. The predefined value (enumberable) is set for AddressSet
Contains events like LockedSharesForTransfer and unLockedSharesForTransfer for locking and unlocking shares of NFT for transfer.
event ItemSold defines buyer address, index used, payer’s address, revenue from the NFT sale, amount.
Fraktionalized event defines holder’s address, minter’s address, index
Defraktionalized event contains holder’s address, index
MajorityValueChanged new value
Deployment initialisation - deploys contract with creator’s address, NFT revenue address, contains initializer, calldata uri.
fractionalise NFT, must contain address where the NFT gets fractionalized, tokenId of the NFT itself. Requires tokenId, balanceOf the token-NFT itself is defined as “not owner”, fraktionalilzed, indexUsed has to contain tokeId
defraktionalized - index has to be set to 10000 in order to defraktionalilze NFT
if the majority of fractions value is 10000 it shows incorrect value as the owner can’t own 10000 fraktions
the owner address is not approved to burn the NFT after it gets sold
lockSharesTransfer - checks number of shares on the address from message sender,
unlocks shares transfer when the item is sold
Revenue payment contains memmory of owners addresses of the NFT, hold values of the NFT and distributes the NFT fractions between owners
Payment splitter - distributes revenue from NFT to fraction owners
sellItem function process transfers without value, this function is being used with non fungible transfers - NFTs