-
Notifications
You must be signed in to change notification settings - Fork 267
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
Feature/powpeg validation protocol integration #2926
base: master
Are you sure you want to change the base?
Feature/powpeg validation protocol integration #2926
Conversation
Reorder rskip
Add tests Refactor Rename variable
Add key to storage index Remove declaration of svp fund tx hash since it is not being used yet. Remove _KEY suffix
Remove _KEY suffix. Save proposed federation the same way as pending one
Add proposedFederationIsSet logic Getting rid of proposedFederationIsSet logic. Add isProposedFederationSet logic. Add rskip419 check in saveProposedFederation method Save null version when proposed federation is null Remove unnecessary private method Refactor Removes null activations from tests
Make variable final Improve test name Use all activations instead of lovell Improve null handling
Add get proposed federation tests Minor fix after rebase Improve comment Minor refactor Minor refactor Improve comment Add test case Throw exception when there is no storage version for non-null proposed federation Add test cases Add log. Add test case and refactor Remove unused import
…sh methods and tests Rebases Reorders and renames tests Rebases Appends SVP prefix to FUND_TX_HASH_UNSIGNED and refactors tests Rebases Moves repeated arrange code to setup. Using Optional. Rebases Removes _ from the key Using arrowhead631 Rebases Rebases Renames saveFundTransactionUnsignedHash to saveSvpFundTransactionUnsignedHash Renames FundTransactionUnsignedHash instance fields
Remove unnecessary private method Refactor
Add get proposed federation tests Minor fix after rebase Improve comment Minor refactor Add test case
…d federation Add test cases Add log. Add test case and refactor Remove unused import
…sh methods and tests Rebases Moves repeated arrange code to setup. Using Optional. Rebases
Adds test to assert empty is returned when hash hasn't been set or saved Renames svp fields to match the RSKIP419 description. Adds more tests. Using standard. Renames test
Improve variable name Add comment Minor refactors Improve comments. Minor refactors Improve comments Refactor Add tests for commitFederationAccordingToActivations Remove unnecessary semicolon Refactor to improve testing and readability Add test cases Remove some tests. Make bridge event logger not a mock. Make some methods private instead of protected. Fix log message Improve test name Change test name Move reused method to utility class. Use real block instead of a mock Make methods to be private instead of protected
Add method to utils
Fix sonar complains Add missing import Move method to test class Remove unused imports
…y to bridge storage index key
… to bridge storage provider Remove svp fund tx tests from federation storage provider tests, and adds them to bridge storage provider tests Get rid of sonar complains Add get methods to bridge Put save, set and get tests in same nested class
Add tests. Add missing tests for minimum pegout tx value Modify test
… creating pegouts
Refactor and add test case Add test case Remove mistaken comment Add comment Modify comment
Huge refactor to get rid of duplicated code Minor refactor Minor refactors Renaming, refactors. Add missing test case. Minor fix Reorder, refactor Fix typo, refactor Rename Create private method to get rid of duplicated code Get rid of sonar complains Rename already declared federator keys field. Rename variables to match regular expressions
…able that can be reused. Modify method to not receive bytes as an argument
Use Stream.toList() to ensure lists are unmodifiable Add a new value for pre lovell activation age in testnet
Remove spendableValueFromProposedFed constant and use minPegoutTxValue directly
Do not shuffle fundTx outputs order
Rollback change in fund tx value
Remove assert methods that do not return void
…ocol-phase4 Feature/powpeg validation protocol phase4
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Manifest Files |
|
||
if (!activations.isActive(ConsensusRule.RSKIP379)) { | ||
legacyProcessPegin(btcTx, rskTxHash, height); | ||
legacyRegisterPegin(btcTx, rskTxHash, height); |
Check notice
Code scanning / CodeQL
Deprecated method or constructor invocation Note
BridgeSupport.legacyRegisterPegin
return FederationChangeResponseCode.SUCCESSFUL; | ||
} | ||
|
||
public void commitProposedFederation() { |
Check notice
Code scanning / CodeQL
Missing Override annotation Note
FederationSupport.commitProposedFederation
Quality Gate failedFailed conditions See analysis details on SonarQube Cloud Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE |
Description
Implementation of the Powpeg Spendability Validation Protocol, as described in RSKIP419
Motivation and Context
The Powpeg composition changes from time to time for different reasons, mainly members joining or leaving and/or POWHSM upgrades that require onboarding. The Powpeg Bitcoin address also changes when the redeemscript is upgraded, for instance when the ERP redeemscript was added.
Everytime this happens, the Bridge undergoes a process that is irreversible: after a certain amount of blocks, the new Powpeg composition will receive all the funds and become responsible for its safety. If the newly elected Powpeg were to be unable to securely store the funds, the users could have their funds at risk.
This RSKIP proposes a new process that will happen before the elected Powpeg is actually committed, and could imply discarding it and stopping the change process if it is considered not safe.
How Has This Been Tested?
Types of changes
Checklist:
fed:feature/powpeg_validation_protocol-integration