web3studio-bootleg
web3studio-bootleg copied to clipboard
Implement Shared Royalty Token contracts
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
- Open Zeppelin 721
- Original designs in mural.
Questions
- HMW scale a Shared Royalty Token and allow for virtually unlimited franchisors?
- Gas prices on transfer will likely increase drastically on
transferfunction if math is in there preventing sale after a certain number
- Gas prices on transfer will likely increase drastically on
- 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
- A Shared Royalty Token interface
-
SharedRoyaltyTokenEnumerableenumerable- Interface
ISharedRoyaltyTokenEnumerable - Implemented
SharedRoyaltyTokenEnumerablefor extending
- Interface
-
PIBBookendToken- Implements abstract class and
transferPayoutByFranchisorIndexto match bookend model
- Implements abstract class and
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