Open bryanchriswhite opened 3 days ago
@bryanchriswhite Leaving feedback on the notion doc here.
Using a map REQUIRES that all TLM functions are commutative. While it is probably a great requirement or goal, it doesn’t mean that we need to make a design choice which makes it a hard constraint, thereby introducing a chain halt pathway.
@bryanchriswhite I want us to keep this requirement.
Isolate TLM logic from keepers
👍 if possible.
Mutate all state deterministically, after TLM processing/calculations
👍 if possible
Ensure a single unexpected claim error doesn’t halt claim processing
Makes sense.
TLMName string
Can you make this an iota (enum)
type TLMProcessingResult { // Supersedes PendingClaimResult
Claims: []*sharedtypes.Claim
Mints: []TLMMintBurn
Burns: []TLMMintBurn
Transfers: []TLMTransfer
}
I'm not a fan of parallel arrays and would rather do something like this:
// Supersedes PendingClaimResult
type TLMProcessingResult struct {
Claim *sharedtypes.Claim
Mints []TLMMintBurn
Burns []TLMMintBurn
Transfers []TLMTransfer
}
type TLMProcessingResults struct {
TLMResults []*TLMProcessingResult
}
Other asks, ensure:
Objective
Improve saftey in claim settlement code.
Origin Document
Discussion with @red-0ne based on recent observations: Claim Settlement Safety - notion doc.
Goals
Deliverables
TLMProcessingResult
,TokenLogicModule
, and dependencies.TokenLogicModule
in its own file andtokenLogicModuleProcessorMap
map as a[]TokenLogicModule
slice.Non-goals / Non-deliverables
General deliverables
Creator: @bryanchriswhite Co-Owners: @red-0ne