Needed to support replaying of Bubblegum instructions
and avoid putting old data in various asset tables.
Modifying INSERT statements for Bubblegum Mint
instructions to have ON_CONFLICT and WHERE clauses
that check seq for each bubblegum command.
Modifying UPDATE statements for other Bubblegum
instructions to have WHERE clauses that check seq for
each bubblegum command.
Discussion ideas
One suggestion was to solve this by emit/wrapping the new leaf schema for any leaf-modifying operation. To me, that seems the easiest method that fits into what we currently are doing.
I started looking at this and it made sense for fields like owner and delegate but I didn't immediately see how to handle things like burn that actually just set the leaf to a default value.
Other suggestions (I still need to understand more) involve always appending to the cl_items table and potentially doing gap management natively in the database.
This doesn't work
Notes
INSERT
statements for Bubblegum Mint instructions to haveON_CONFLICT
andWHERE
clauses that checkseq
for each bubblegum command.UPDATE
statements for other Bubblegum instructions to haveWHERE
clauses that checkseq
for each bubblegum command.Discussion ideas
owner
anddelegate
but I didn't immediately see how to handle things like burn that actually just set the leaf to a default value.