Modified ERC-1155 contract
  • 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. User functions:
  • 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
  • Getter functions: getRevenue,getFraktions,getLockedShares,getLockedToTotal,getStatus,getFraktionsIndex