MultisigControl Interface (IMultisigControl.sol)
View Source: contracts/IMultisigControl.sol
↘ Derived Contracts: MultisigControl
IMultisigControl
Implementations of this interface are used to control smart contracts without the need for a network to have any Ethereum of its own.
SignerAdded
Parameters
Name | Type | Description |
---|---|---|
new_signer | address | |
nonce | uint256 |
SignerRemoved
Parameters
Name | Type | Description |
---|---|---|
old_signer | address | |
nonce | uint256 |
ThresholdSet
Parameters
Name | Type | Description |
---|---|---|
new_threshold | uint16 | |
nonce | uint256 |
Functions
set_threshold
Sets threshold of signatures that must be met before function is executed.MUST emit ThresholdSet event
function set_threshold(uint16 new_threshold, uint256 nonce, bytes signatures) public nonpayable
Arguments
Name | Type | Description |
---|---|---|
new_threshold | uint16 | New threshold value |
nonce | uint256 | Vega-assigned single-use number that provides replay attack protection |
signatures | bytes | Vega-supplied signature bundle of a validator-signed order |
add_signer
Adds new valid signer and adjusts signer count.MUST emit 'SignerAdded' event
function add_signer(address new_signer, uint256 nonce, bytes signatures) public nonpayable
Arguments
Name | Type | Description |
---|---|---|
new_signer | address | New signer address |
nonce | uint256 | Vega-assigned single-use number that provides replay attack protection |
signatures | bytes | Vega-supplied signature bundle of a validator-signed order |
remove_signer
Removes currently valid signer and adjusts signer count.MUST emit 'SignerRemoved' event
function remove_signer(address old_signer, uint256 nonce, bytes signatures) public nonpayable
Arguments
Name | Type | Description |
---|---|---|
old_signer | address | Address of signer to be removed. |
nonce | uint256 | Vega-assigned single-use number that provides replay attack protection |
signatures | bytes | Vega-supplied signature bundle of a validator-signed order |
verify_signatures
Verifies a signature bundle and returns true only if the threshold of valid signers is met,
function verify_signatures(bytes signatures, bytes message, uint256 nonce) public nonpayable
returns(bool)
Returns
MUST return true if valid signatures are over the threshold
Arguments
Name | Type | Description |
---|---|---|
signatures | bytes | |
message | bytes | |
nonce | uint256 |
get_valid_signer_count
function get_valid_signer_count() public view
returns(uint8)
Returns
Number of valid signers
Arguments
Name | Type | Description |
---|
get_current_threshold
function get_current_threshold() public view
returns(uint16)
Returns
Current threshold
Arguments
Name | Type | Description |
---|
is_valid_signer
function is_valid_signer(address signer_address) public view
returns(bool)
Returns
true if address provided is valid signer
Arguments
Name | Type | Description |
---|---|---|
signer_address | address | target potential signer address |
is_nonce_used
function is_nonce_used(uint256 nonce) public view
returns(bool)
Returns
true if nonce has been used
Arguments
Name | Type | Description |
---|---|---|
nonce | uint256 | Nonce to lookup |