rabbitholegg/quest-protocol

Only use interfaces in QuestFactory

waynehoover opened this issue · 2 comments

Instead of importing Quest.sol and Quest1155.sol in QuestFactory let's just use the interfaces instead. Look at 52b682e#diff-46d8d9ffae356f90bd43e36eef9e04ca41262e025e815f70e7434b80412bdf4e and the commits after for inspiration.

Quazia commented

Yeah - I think we want to use interfaces vs instantiation in all possible places (even going as far as to make utility interfaces for external contracts as needed) also if we could collapse the interface for Quest and Quest1155 into a single function that would be ideal. We'd probably need a bytes param to tuck some of the variation into but I think long term that type of pattern is going to be the most extensible. Encoding a bytes param into custom data on a per quest contract basis isn't going to be that heavy.

Quazia commented

For now I'll start with just the basic interface replacements though, we can discuss the other points external to the completion of this more granular issue.