Draft: Add support for Multi-Signature-Wallets#278
Closed
ifavo wants to merge 21 commits into
Closed
Conversation
MULTISIG_DEPLOYMENT_URL=https:// as env will disable deployment and open the link instead
Contributor
Author
|
@XJWX89 👋 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This Pull-Request is a draft to ask for guidance.
It will add the following functionality:
Multi-Signature-Wallet in Sync2
Create
At the bottom of the new wallet dialog is the option to Add or Import a Multi-Sig-Wallet:
This will:
multisigImport
An import allows to add any address which is added to Sync2 wallet as type
multisig:Transactions
Transfers (VET + Tokens)
The regular transfer functionality of Sync2 applies to Multi-Sig-Wallets:
The difference is that:
Confirm Transaction
Multi-Sig-Wallets list the number of transactions at the top, linked to the transaction list.
Each transaction can be expanded and confirmed:
The confirmation will:
Revoke Confirmation
Once a transaction was confirmed, it can be revoked at the same place.
Execute Transaction
When the required number of confirmation is reached an transaction execution can be triggered by any wallet owner:
The execution will:
Contract Interaction
All transactions triggered by connex allow the selection of a Multi-Sig-Wallet and will be wrapped and sent to the Multi-Sig-Contract:
The signing will:
The confirmation and execution can be handled like any other transaction.
The drawback is:
Manage Owners
The default deployment is zero-configuration and sets the sender as owner and sets the required number of confirmations to one.
Modifications are protected by restricting interaction with the management functions to the contract itself. All changes need to be submitted by an owner and confirmed by owners.
Add and Remove Owners
A new owner is added by submitting a transaction to the Multi-Signature-Contract. The transaction needs to be confirmed by the required number of owners. The owners are available at Manage owners in the wallet:
Change required Confirmations
The number of required confirmations is minimum 1 and can be up to the number of owners. It can be changed at the Manage Owners menu in the wallet:
Multi-Sig-Contract
The contract has the following properties:
The process of a transaction is as follows:
or revoke confirmation of previously confirmed transactions
The contract is available here:
https://github.com/vechain-energy/multi-sig-contract
The deployment within Sync2 can be disabled.
If the environment variable
MULTISIG_DEPLOYMENT_URLis defined theDeploybutton will open the URL instead of deploying a new contract.Limitations
Questions