0x / MultiSig
MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress
0x01d9f4d104668cdc0b6d13c45dff5e15d58d8f28
MultiSigWallet
function
addOwner
Restricted (onlyWallet, ownerDoesNotExist, notNull, validRequirement)
Inputs
Parameter | Type | Description |
---|---|---|
owner | address |
Outputs
(void)
function
removeOwner
Restricted (onlyWallet, ownerExists)
Inputs
Parameter | Type | Description |
---|---|---|
owner | address |
Outputs
(void)
function removeOwner(address owner)
public
onlyWallet
ownerExists(owner)
{
isOwner[owner] = false;
for (uint i=0; i<owners.length - 1; i++)
if (owners[i] == owner) {
owners[i] = owners[owners.length - 1];
break;
}
owners.length -= 1;
if (required > owners.length)
changeRequirement(owners.length);
OwnerRemoval(owner);
}
function
replaceOwner
Restricted (onlyWallet, ownerExists, ownerDoesNotExist)
Inputs
Parameter | Type | Description |
---|---|---|
owner | address | |
newOwner | address |
Outputs
(void)
function replaceOwner(address owner, address newOwner)
public
onlyWallet
ownerExists(owner)
ownerDoesNotExist(newOwner)
{
for (uint i=0; i<owners.length; i++)
if (owners[i] == owner) {
owners[i] = newOwner;
break;
}
isOwner[owner] = false;
isOwner[newOwner] = true;
OwnerRemoval(owner);
OwnerAddition(newOwner);
}
function
submitTransaction
Inputs
Parameter | Type | Description |
---|---|---|
destination | address | |
value | uint256 | |
data | bytes |
Outputs
Type | Description |
---|---|
uint256 |
function
getConfirmations
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
Type | Description |
---|---|
address[] |
function getConfirmations(uint transactionId)
public
constant
returns (address[] _confirmations)
{
address[] memory confirmationsTemp = new address[](owners.length);
uint count = 0;
uint i;
for (i=0; i<owners.length; i++)
if (confirmations[transactionId][owners[i]]) {
confirmationsTemp[count] = owners[i];
count += 1;
}
_confirmations = new address[](count);
for (i=0; i<count; i++)
_confirmations[i] = confirmationsTemp[i];
}
function
getTransactionIds
Inputs
Parameter | Type | Description |
---|---|---|
from | uint256 | |
to | uint256 | |
pending | bool | |
executed | bool |
Outputs
Type | Description |
---|---|
uint256[] |
function getTransactionIds(uint from, uint to, bool pending, bool executed)
public
constant
returns (uint[] _transactionIds)
{
uint[] memory transactionIdsTemp = new uint[](transactionCount);
uint count = 0;
uint i;
for (i=0; i<transactionCount; i++)
if ( pending && !transactions[i].executed
|| executed && transactions[i].executed)
{
transactionIdsTemp[count] = i;
count += 1;
}
_transactionIds = new uint[](to - from);
for (i=from; i<to; i++)
_transactionIds[i - from] = transactionIdsTemp[i];
}
function
isConfirmed
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
Type | Description |
---|---|
bool |
function
getTransactionCount
Inputs
Parameter | Type | Description |
---|---|---|
pending | bool | |
executed | bool |
Outputs
Type | Description |
---|---|
uint256 |
MultiSigWalletWithTimeLock
function
executeTransaction
Restricted (notExecuted, fullyConfirmed, pastTimeLock)
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
(void)
function executeTransaction(uint transactionId)
public
notExecuted(transactionId)
fullyConfirmed(transactionId)
pastTimeLock(transactionId)
{
Transaction storage tx = transactions[transactionId];
tx.executed = true;
if (tx.destination.call.value(tx.value)(tx.data))
Execution(transactionId);
else {
ExecutionFailure(transactionId);
tx.executed = false;
}
}
function
revokeConfirmation
Restricted (ownerExists, confirmed, notExecuted, notFullyConfirmed)
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
(void)
function
confirmTransaction
Restricted (ownerExists, transactionExists, notConfirmed, notFullyConfirmed)
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
(void)
function confirmTransaction(uint transactionId)
public
ownerExists(msg.sender)
transactionExists(transactionId)
notConfirmed(transactionId, msg.sender)
notFullyConfirmed(transactionId)
{
confirmations[transactionId][msg.sender] = true;
Confirmation(msg.sender, transactionId);
if (isConfirmed(transactionId)) {
setConfirmationTime(transactionId, block.timestamp);
}
}
MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress
function
executeRemoveAuthorizedAddress
Restricted (notExecuted, fullyConfirmed, validRemoveAuthorizedAddressTx)
Inputs
Parameter | Type | Description |
---|---|---|
transactionId | uint256 |
Outputs
(void)
function executeRemoveAuthorizedAddress(uint transactionId)
public
notExecuted(transactionId)
fullyConfirmed(transactionId)
validRemoveAuthorizedAddressTx(transactionId)
{
Transaction storage tx = transactions[transactionId];
tx.executed = true;
if (tx.destination.call.value(tx.value)(tx.data))
Execution(transactionId);
else {
ExecutionFailure(transactionId);
tx.executed = false;
}
}
function
isFunctionRemoveAuthorizedAddress
Inputs
Parameter | Type | Description |
---|---|---|
data | bytes |
Outputs
Type | Description |
---|---|
bool |
constructor
MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress
Restricted (MultiSigWalletWithTimeLock)
Inputs
Parameter | Type | Description |
---|---|---|
_owners | address[] | |
_required | uint256 | |
_secondsTimeLocked | uint256 | |
_tokenTransferProxy | address |
Outputs
(void)
fallback
(fallback)
Inputs
(void)
Outputs
(void)