web3studio-bootleg icon indicating copy to clipboard operation
web3studio-bootleg copied to clipboard

Implement Shared Royalty Token contracts

Open barlock opened this issue 7 years ago • 0 comments

Overview

As a developer building a PIB token, I'd like a reference implementation, interfaces, and abstract classes so that I can quickly iterate on my dApp PIB token implementation.

Reference

Questions

  • HMW scale a Shared Royalty Token and allow for virtually unlimited franchisors?
    • Gas prices on transfer will likely increase drastically on transfer function if math is in there preventing sale after a certain number
  • How do we handle withdraw?
    • Is there an ERC standard for handling this allowing for rounding error?
    • Likely there is something to do with the first question here. 🤷‍♂️
  • Is 721 the correct abstraction?

Assumptions

Acceptance

  • Shared Royalty Token
    • A Shared Royalty Token interface ISharedRoyaltyToken
    • An abstract contract SRT AbstractSharedRoyaltyToken.
      • Contains common SRT implmentations
  • SharedRoyaltyTokenEnumerable enumerable
    • Interface ISharedRoyaltyTokenEnumerable
    • Implemented SharedRoyaltyTokenEnumerable for extending
  • PIBBookendToken
    • Implements abstract class and transferPayoutByFranchisorIndex to match bookend model

Story Draft

  • [x] Create withdrawal SharedRoyaltyToken interface (likely just find an existing ERC or other art)
  • [x] Implement ISharedRoyaltyToken (pib interface)
  • [x] Implement ISharedRoyaltyTokenEnumerable (Enumerable interface)
  • [x] Implement AbstractSharedRoyaltyToken
  • [ ] Implement SharedRoyaltyTokenEnumerable
  • [x] Implement SharedRoyaltyBookendToken

barlock avatar Feb 11 '19 14:02 barlock