Sponsored:   Ubex.com - Additional 17% of tokens are available for purchase! Trading on exchanges already started.
Contract Overview | Aragon_MultiSig
Balance: 238,624.869267635301822239 Ether
Ether Value: $69,332,455.77 (@ $290.55/ETH)
Transactions: 440 txns
Misc
Address Watch: Add To Watch List
Contract Creator: 0x2b1cfd7de531c325c8e4760ee07d32c5f2da61d3at txn 0xedabbcd3b5e2b00aacec55ee1ef2ec1cecb1ea947025ea47bcd8cded4a179483
Token Balances:
 Latest 25 txns from a total Of 440 transactions

TxHash Age From To Value [TxFee]
0x7a954106d5b5df98387a33052a73d080fd3cd5066f6101bc8439d765fc8eb2fb9 days 23 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00071609
0x659a2cbc1bf5c374e5cc9cdbe1bc80b8fa8f65e24eba5fe1123a2e6d5a0c431c12 days 21 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.0007733772
0xab4f7b5f0b935e5426ae804ec444f05ec97f494ae5529514e969e9f9f0e6ca9912 days 21 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.0004221666
0x648606792f3124d69105145dfc4137b7b28bed49fb6c3792715a845882a09aed13 days 23 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000518448
0x6c32903c6ea94d5247bae7b04e492427e6ff315d57716b1261af6188834b54e113 days 23 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000376521
0xb4f710b2adbe07ae34c8f87206e9c0f2934f8947e1310fdd60559350382167db19 days 7 mins ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000345632
0x2f1c4898683e329480649a16d7593c340ab7610a6ce299a4c46f72026a201be220 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000029784
0x230378bc7165249db2937c7db7dbe76f69ddec002e5345f37d0bd921ea2506b720 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000029784
0x54dbb3cb53624bbb435238a83479bdc6dbfbf52730a0efa25bdd77d47101bd7820 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000345632
0xa832a5e063aa5267e15dcae4693cb8ebf46587d1dfcb79961512a12e268d4fff20 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000345632
0xa7e191e9a9d9c5aa5d216815aa2efacd8d10402da511969d0f89d95ea8c89e6620 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000286436
0x524bd77d709b44973e287409a97724baa1b9494c40d48e076a3cd27ff3c9113c20 days 18 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.000156358
0x92edaa897f46e13d17a6f8ba64bbcca00ac112245d614c4f3f4afff0af01535023 days 16 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00172752
0xb15f8f3b1d4f6bc50dfe0e6de7a95db346ccf9df0186b56b33ef9d8815cb16ae23 days 17 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00125635
0xcfe993928e9ee5fee675fa8028bcfe4bc61e6ea9f6c83646e6440bb14a8ab99b55 days 23 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.00286436
0x8769cbab014704fe51c75d414860ed820222ca7badeca30f4ac614b17a42e80e55 days 23 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.00156358
0xc029937be26d3171d315344a7c91bb3dc38d126f3b9561eed0b73e8a11ec2d4d56 days 12 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.000172816
0x5eac1625d708dbcf475f4167a9ea73ba9655ef5172fb0bd5100e7b4f7f8310b056 days 12 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.000125507
0xa9e915b79e0ff8ad2f7d0aa3a2a116775304331b1736230967e7d57d750fd1ed72 days 23 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00286436
0x00775154ed9a89b812144c62ee4ed2fa3557b05c2680e015ddcb13319f61f89e72 days 23 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00156358
0xfe7bd746f1de128eeb7c9299e1a3fa016a9993d31e5accd7b4bc6035891f5f4a73 days 7 mins ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.001900976
0x4bba6c5642304a47b9ea7effded20aa713c9b1a57f5a3d044f46d3f25b8d419673 days 10 mins ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.001380577
0x6531bff60a73010f60f81a6324f8c08dde89deea5ce019b1392dcbaf96f18ab679 days 17 hrs ago0x4838eab6f43841e0d233db4cea47bd64f614f0c5  IN   Aragon_MultiSig0 Ether0.002021201
0x0813d5f945b833ddf30a747ce4c47e453339eda1e09710c208b0f316babf5e6b79 days 23 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00345632
0x6065d9c536bcb624215bc8fb2d5bf25911f0bce270c183096ca4d8a57916627179 days 23 hrs ago0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265  IN   Aragon_MultiSig0 Ether0.00409574
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0xab4f7b5f0b935e5426ae804ec444f05ec97f494ae5529514e969e9f9f0e6ca99610418012 days 21 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903555.7 Ether
0x524bd77d709b44973e287409a97724baa1b9494c40d48e076a3cd27ff3c9113c605779520 days 18 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d590351,566 Ether
0x8769cbab014704fe51c75d414860ed820222ca7badeca30f4ac614b17a42e80e585094855 days 23 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035739.4 Ether
0x00775154ed9a89b812144c62ee4ed2fa3557b05c2680e015ddcb13319f61f89e575249572 days 23 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035433 Ether
0x33d13609d87a9099fccc39aa4d73dc2b16df7a5f6ba7225e1586376efb445ce25447317126 days 11 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b0626510,000 Ether
0xaf9b21598778e415fc98bf37ddc089e30cfcd45b5b81caa83887ee95802318675447309126 days 11 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x4838eab6f43841e0d233db4cea47bd64f614f0c5115.5 Ether
0xb99103bc6ed030d5b6b550d3ea77a9bb559a04416688a39c87a31dfb1ba748935447274126 days 11 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265214.5 Ether
0xb132deb75f9e96e8000245bc207cd4ed5f89adc8f8cc8dbc39cec4d82db4e2e75337850144 days 17 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035312.4738 Ether
0xa5a68137321360a808e19085ae90e59f99a400f0050abbb177cc93f1f305feab5307128149 days 20 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b062655,000 Ether
0x7211876359dc6dc9cd37029cacc7833952110862538afd28ead623dad3af59215306361149 days 23 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b062652,500 Ether
0x8cdf08baf361d66532b486834b9fbca34c47a20b98c1977ab7c6108365b953db5290081152 days 16 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b062652,500 Ether
0x334c7335327ce872d4d8fefc1da4ae33f674bdd42204fa39d78192d506796e005247614159 days 21 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035106.7 Ether
0x64843dec2079534005b27e09df9c45a875482f444de845ebae15ef414ba421dc5182293170 days 23 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903589.7 Ether
0x569501208783aca28271593a7a3831c054280edd30c2f992e91592a29441b7a75159623174 days 20 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x299bee1b487702f73077cd4c66f0f611f5715f8c149.5 Ether
0x6ab62dbbfb069c8a33430274f0508cda9b4a278b87127b15af10424c9593136a5088822186 days 20 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903517.1716 Ether
0x7ed0070e4b7372e4d5455118ebef236901adf860123f28d187e62b1d44b174f35070469189 days 22 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903557.3355 Ether
0x8535d984792d734c6404be748eccb1fe2a4040346cb0ee7600ddc8a411fd584b5018389198 days 15 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035129.47 Ether
0xeabcb01507bec59eaac2fee9966329e12a1cdc196d5c45bb8b26607da13614304995768202 days 12 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xbdf73f0ab639128ad251dbc198b38c35259f087161.338652097 Ether
0x08f8f9f913f7dec1e7fdfaf73a2b199be738f9a89642456b365b590d7aae1d3e4891429220 days 17 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d59035150 Ether
0x9f73f08b52921dfe856c5e4216a2f9b529b5115bcf3d32bb5dcb8aa7b182650c4874184223 days 21 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b06265700 Ether
0x6ff9048b66ef286d60752aa8584b1eae96348336ffaec5c79c59d23441abc8634819231233 days 16 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903510 Ether
0x181ad9d3a49ea215ce6fd912cebc29e5057adc80c33b52ea36fa7b393e0369a84814293234 days 12 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903584.63 Ether
0xc5994de841c2b941ad64df892fc08f9a81c322dcfb6faba0df32b533b19e2d2f4692101255 days 15 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0xddc1b51b67dabd408b224d0f7dfcc93ec4b062651,000 Ether
0xe4604b5da0a7d2bff660fb5e0bbbfa1351ad5ab3a81478286aded832211b449d4648697263 days 1 hr ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x5756ddfa7d643542ae3a0add8cea5ad602d5903591.06 Ether
0xbb8d9e2bd18f8de933d469d80a121cf72ae15fa7eb3fa11b1712e20360cfa4544633327265 days 13 hrs ago0xcafe1a77e84698c83ca8931f54a755176ef75f2c0x1fa0eb9eb19908779a3c1a8de4fbffd8838d345d29.2241637246 Ether
[ Download CSV Export  ] 
Contract Name: MultiSigWallet
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            throw;
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            throw;
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            throw;
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == 0)
            throw;
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            throw;
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            throw;
        _;
    }

    modifier notNull(address _address) {
        if (_address == 0)
            throw;
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            throw;
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        payable
    {
        if (msg.value > 0)
            Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    function MultiSigWallet(address[] _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == 0)
                throw;
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    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);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    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);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction tx = transactions[transactionId];
            tx.executed = true;
            if (tx.destination.call.value(tx.value)(tx.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                tx.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        constant
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes data)
        internal
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        constant
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        constant
        returns (address[])
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    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];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    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];
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040523462000000576040516200223938038062002239833981016040528080518201919060200180519060200190919050505b600082518260328211806200004957508181115b80620000555750600081145b80620000615750600082145b156200006d5762000000565b600092505b84518310156200019d57600260008685815181101562000000579060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168062000115575060008584815181101562000000579060200190602002015173ffffffffffffffffffffffffffffffffffffffff16145b15620001215762000000565b6001600260008786815181101562000000579060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b828060010193505062000072565b846003908051906020019082805482825590600052602060002090810192821562000224579160200282015b82811115620002235782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620001c9565b5b5090506200026a91905b808211156200026657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200022e565b5090565b5050836004819055505b5b50505050505b611fae806200028b6000396000f3006060604052361561011b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461017c578063173825d9146101d957806320ea8d861461020c5780632f54bf6e146102295780633411c81c1461027457806354741525146102c85780637065cb4814610306578063784547a7146103395780638b51d13f1461036e5780639ace38c21461039f578063a0e67e2b14610497578063a8abe69a14610509578063b5dc40c3146105a8578063b77bf60014610628578063ba51a6df1461064b578063c01a8c8414610668578063c642747414610685578063d74f8edd14610718578063dc8452cd1461073b578063e20056e61461075e578063ee22610b146107b0575b61017a5b6000341115610177573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b5b565b005b346100005761019760048080359060200190919050506107cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b346100005761020a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061080a565b005b34610000576102276004808035906020019091905050610adf565b005b346100005761025a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c8d565b604051808215151515815260200191505060405180910390f35b34610000576102ae600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610cad565b604051808215151515815260200191505060405180910390f35b34610000576102f0600480803515159060200190919080351515906020019091905050610cdc565b6040518082815260200191505060405180910390f35b3461000057610337600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d73565b005b34610000576103546004808035906020019091905050610faa565b604051808215151515815260200191505060405180910390f35b34610000576103896004808035906020019091905050611091565b6040518082815260200191505060405180910390f35b34610000576103ba600480803590602001909190505061115e565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001831515151581526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156104855780601f1061045a57610100808354040283529160200191610485565b820191906000526020600020905b81548152906001019060200180831161046857829003601f168201915b50509550505050505060405180910390f35b34610000576104a46111ba565b60405180806020018281038252838181518152602001915080519060200190602002808383600083146104f6575b8051825260208311156104f6576020820191506020810190506020830392506104d2565b5050509050019250505060405180910390f35b3461000057610543600480803590602001909190803590602001909190803515159060200190919080351515906020019091905050611258565b6040518080602001828103825283818151815260200191508051906020019060200280838360008314610595575b80518252602083111561059557602082019150602081019050602083039250610571565b5050509050019250505060405180910390f35b34610000576105c360048080359060200190919050506113c5565b6040518080602001828103825283818151815260200191508051906020019060200280838360008314610615575b805182526020831115610615576020820191506020810190506020830392506105f1565b5050509050019250505060405180910390f35b34610000576106356115fa565b6040518082815260200191505060405180910390f35b34610000576106666004808035906020019091905050611600565b005b346100005761068360048080359060200190919050506116b5565b005b3461000057610702600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611897565b6040518082815260200191505060405180910390f35b34610000576107256118b7565b6040518082815260200191505060405180910390f35b34610000576107486118bc565b6040518082815260200191505060405180910390f35b34610000576107ae600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118c2565b005b34610000576107cb6004808035906020019091905050611bde565b005b600381815481101561000057906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561084657610000565b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561089f57610000565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610a22578273ffffffffffffffffffffffffffffffffffffffff16600383815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610a14576003600160038054905003815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101561000057906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a22565b5b81806001019250506108fc565b6001600381818054905003915081815481835581811511610a6f57818360005260206000209182019101610a6e91905b80821115610a6a576000816000905550600101610a52565b5090565b5b505050506003805490506004541115610a9157610a90600380549050611600565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405180905060405180910390a25b5b505b5050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610b3857610000565b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610ba357610000565b836000600082815260200190815260200160002060030160009054906101000a900460ff1615610bd257610000565b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405180905060405180910390a35b5b505b50505b5050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60006000600090505b600554811015610d6b57838015610d1d57506000600082815260200190815260200160002060030160009054906101000a900460ff16155b80610d515750828015610d5057506000600082815260200190815260200160002060030160009054906101000a900460ff165b5b15610d5d576001820191505b5b8080600101915050610ce5565b5b5092915050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dad57610000565b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e0557610000565b8160008173ffffffffffffffffffffffffffffffffffffffff161415610e2a57610000565b6001600380549050016004546032821180610e4457508181115b80610e4f5750600081145b80610e5a5750600082145b15610e6457610000565b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038054806001018281815481835581811511610f0557818360005260206000209182019101610f0491905b80821115610f00576000816000905550600101610ee8565b5090565b5b505050916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405180905060405180910390a25b5b50505b505b505b50565b60006000600060009150600090505b60038054905081101561108957600160008581526020019081526020016000206000600383815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611068576001820191505b60045482141561107b576001925061108a565b5b8080600101915050610fb9565b5b5050919050565b60006000600090505b60038054905081101561115757600160008481526020019081526020016000206000600383815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611149576001820191505b5b808060010191505061109a565b5b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6020604051908101604052806000815250600380548060200260200160405190810160405280929190818152602001828054801561124d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611203575b505050505090505b90565b602060405190810160405280600081525060206040519081016040528060008152506000600060055460405180591061128e5750595b908082528060200260200182016040525b50925060009150600090505b60055481101561134b578580156112e357506000600082815260200190815260200160002060030160009054906101000a900460ff16155b80611317575084801561131657506000600082815260200190815260200160002060030160009054906101000a900460ff165b5b1561133d5780838381518110156100005790602001906020020181815250506001820191505b5b80806001019150506112ab565b87870360405180591061135b5750595b908082528060200260200182016040525b5093508790505b868110156113b9578281815181101561000057906020019060200201518489830381518110156100005790602001906020020181815250505b8080600101915050611373565b5b505050949350505050565b60206040519081016040528060008152506020604051908101604052806000815250600060006003805490506040518059106113fe5750595b908082528060200260200182016040525b50925060009150600090505b60038054905081101561155857600160008681526020019081526020016000206000600383815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561154a57600381815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015610000579060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b5b808060010191505061141b565b816040518059106115665750595b908082528060200260200182016040525b509350600090505b818110156115f15782818151811015610000579060200190602002015184828151811015610000579060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b808060010191505061157f565b5b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163a57610000565b60038054905081603282118061164f57508181115b8061165a5750600081145b806116655750600082145b1561166f57610000565b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a15b5b50505b50565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561170e57610000565b8160006000600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561176957610000565b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117d357610000565b60016001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405180905060405180910390a361188c85611bde565b5b5b50505b505b5050565b60006118a4848484611da2565b90506118af816116b5565b5b9392505050565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118fe57610000565b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561195757610000565b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156119af57610000565b600092505b600380549050831015611a97578473ffffffffffffffffffffffffffffffffffffffff16600384815481101561000057906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a895783600384815481101561000057906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a97565b5b82806001019350506119b4565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405180905060405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405180905060405180910390a25b5b505b505b505050565b6000816000600082815260200190815260200160002060030160009054906101000a900460ff1615611c0f57610000565b611c1883610faa565b15611d9b5760006000848152602001908152602001600020915060018260030160006101000a81548160ff0219169083151502179055508160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260010154836002016040518082805460018160011615610100020316600290048015611cf85780601f10611ccd57610100808354040283529160200191611cf8565b820191906000526020600020905b815481529060010190602001808311611cdb57829003601f168201915b505091505060006040518083038185876185025a03f19250505015611d4c57827f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405180905060405180910390a2611d9a565b827f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405180905060405180910390a260008260030160006101000a81548160ff0219169083151502179055505b5b5b5b505050565b60008360008173ffffffffffffffffffffffffffffffffffffffff161415611dc957610000565b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001600015158152506000600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ebf57805160ff1916838001178555611eed565b82800160010185558215611eed579182015b82811115611eec578251825591602001919060010190611ed1565b5b509050611f1291905b80821115611f0e576000816000905550600101611ef6565b5090565b505060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405180905060405180910390a25b5b5093925050505600a165627a7a7230582091cc5b09b9ed67d677889454681070826007746877bc0e84d77ac68e72b27acd00290000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000003aa25082e39fe3d6a816da18dd52a02199979d4d0000000000000000000000004838eab6f43841e0d233db4cea47bd64f614f0c5

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000003aa25082e39fe3d6a816da18dd52a02199979d4d0000000000000000000000004838eab6f43841e0d233db4cea47bd64f614f0c5

-----Decoded View---------------
Found 5 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [3] : 0000000000000000000000003aa25082e39fe3d6a816da18dd52a02199979d4d
Arg [4] : 0000000000000000000000004838eab6f43841e0d233db4cea47bd64f614f0c5


   Swarm Source:
bzzr://91cc5b09b9ed67d677889454681070826007746877bc0e84d77ac68e72b27acd

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.