-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Tokenomics] Settlement safety #881
Comments
@bryanchriswhite Leaving feedback on the notion doc here.
@bryanchriswhite I want us to keep this requirement.
👍 if possible.
👍 if possible
Makes sense.
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:
|
No argument here. My point was just that there's no need to aim a footgun at ourselves by using a map.
👍
Good point, agreed. 👍
👍
@Olshansk, can you elaborate on these, I'm not sure what's being referenced or asked. |
Request that for each successful / failed claim, there is sufficient (use your best judgment) error/warning/info logging + events along the way.
Once these events are indexed in pocketdex, adding a few examples like this would go a long way:
|
## Summary Refactors claim settlement and token logic module processing: - Isolates TLM processors from the tokenomics keeper - Restructures settlement and TLM processing to avoid non-determinism - Consolidates and postpones ALL state modification until the end of settlement ## Issue - #881 ## Type of change Select one or more from the following: - [ ] New feature, functionality or library - [x] Consensus breaking; add the `consensus-breaking` label if so. See #791 for details - [ ] Bug fix - [x] Code health or cleanup - [ ] Documentation - [ ] Other (specify) ## Testing - [ ] **Documentation**: `make docusaurus_start`; only needed if you make doc changes - [ ] **Unit Tests**: `make go_develop_and_test` - [ ] **LocalNet E2E Tests**: `make test_e2e` - [ ] **DevNet E2E Tests**: Add the `devnet-test-e2e` label to the PR. ## Sanity Checklist - [ ] I have tested my changes using the available tooling - [ ] I have commented my code - [ ] I have performed a self-review of my own code; both comments & source code - [ ] I create and reference any new tickets, if applicable - [ ] I have left TODOs throughout the codebase, if applicable --------- Co-authored-by: Redouane Lakrache <[email protected]> Co-authored-by: Daniel Olshansky <[email protected]>
Objective
Improve saftey in claim settlement code.
Status
See: Unhaltable settlement notion doc
Origin Document
Discussion with @red-0ne based on recent observations: Claim Settlement Safety - notion doc.
Proposal Draft
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
The text was updated successfully, but these errors were encountered: