-
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
Feature/powpeg validation protocol integration #2926
Conversation
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
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
09ff25b
to
2545809
Compare
…ng tests for active and retiring federation. Minor refactors
…_signature Allow proposed fed to call add signature
…rivation Derive federation creation time correctly (from seconds instead of milliseconds
Handle UNKNOWN peg tx type
Throw a VMException when getting exception from bridge method
…etStateForSvpClient Remove TODO for checking fixed gas cost in GET_STATE_FOR_SVP_CLIENT method
…d_creation_time Add activation code check for federation being built from pending one creation time
…tion_time_method Add missing test for getProposedFederationCreationTime Bridge method
Quality Gate passedIssues Measures |
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
rit:disable-rskip419