Contract 0x27DF5C6dcd360f372e23d5e63645eC0072D0C098 1

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x4bc1fbcebf36b2088801163c07129a9b97744a544fa23af89bc00ffe4397524bConfirm Transact...274264922022-04-22 3:15:02333 days 20 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.007383945208 62.0082735
0xc0109a630e999d8af6958c5702a9b134293e46c35aaf6f2ebf45abafe3907a51Submit Transacti...274263042022-04-22 3:08:38333 days 20 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.009277454208 48.640034227
0x80381e6e06cf03c9f131fbc554b0fc8712b614791c2a07f8ea0019c0f001cc57Confirm Transact...268759182022-04-08 3:38:11347 days 20 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.006622815473 55.616522284
0xac71a4f0ee32eb54c9ee16ce8b6dd7c20f97fa4b904200394eb6219e588f235dSubmit Transacti...268758342022-04-08 3:34:44347 days 20 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.005922326631 31.049700014
0x2d19b4001438fba054add9ddbe9f1ee4d584b9180f9d6929769ba02d2195fe7fConfirm Transact...263468432022-03-25 13:34:40361 days 10 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.004218855108 35.428746292
0xdf7c9415bb1f3d0f060e0bfe45812ea024cc612e515178b659678c204573141fSubmit Transacti...263464472022-03-25 13:14:08361 days 10 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00953685 50
0x964d6fbf75989ec4afae5bca9ddb382364b2c89467f9a34eae029124b3812dd1Confirm Transact...258189272022-03-11 4:38:25375 days 19 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.005425730047 45.563739062
0x59afdbd82c92bf835779d6211b0dc5bc144cce3236094d90b9825c143206a0bfRevoke Confirmat...258189192022-03-11 4:37:53375 days 19 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00087011318 30.828840005
0xc4521e65cc52df65da287f00892b7456c5728d192e9a1f6a10d19a75fa3534beSubmit Transacti...258185582022-03-11 4:24:07375 days 19 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.012090136764 63.386426147
0xf6e299b923e7dd2dc7368736dd46ba3f2e0dafacfcd14e4d3e4d5425bd9df26bSubmit Transacti...258166242022-03-11 2:54:11375 days 21 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00710304588 37.24
0x2e59e0e41012eb61943b58e34076cdb2306d428654932bbb9312578aab4447b9Submit Transacti...225910772021-12-16 12:09:44460 days 11 hrs ago0xe22871062c7100e36299eef287dd638967c11d81 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0030162630
0x2247bc5372ece4a6d6fcd4347ca3262539a9adbe62e30f9a90c290b3b6324b73Add Owner225910772021-12-16 12:09:44460 days 11 hrs ago0xe22871062c7100e36299eef287dd638967c11d81 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0006546330
0xc9ab5470dadfd030c153f767dd1d2ae4dd40f154a9cde3aaa16362a416dd52e3Execute Transact...225907182021-12-16 11:55:14460 days 12 hrs ago0xe966c1e81b70920293c123c81994ef5fc19f8d35 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0007240530
0xa7a82cba883d9166439c4846985145c1763302d14568f6f2de518d545cf270aeSubmit Transacti...225907182021-12-16 11:55:14460 days 12 hrs ago0xe966c1e81b70920293c123c81994ef5fc19f8d35 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0030166230
0x6db8596e3b7048b9b125f4bf8a0baa3e49a57d40d9a5907f52594a4d1fac6f0dConfirm Transact...223093352021-12-09 7:45:18467 days 16 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00660269401555.447547998
0xa5a763b2d1ca5f19ac1cec6b53ca366a27583c0bce772041eb76aa0c51c0edc1Submit Transacti...223092262021-12-09 7:41:32467 days 16 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0057221130
0x590d8c6a05623bc4d43c143cfb5637d64758e15bca1e20c4c874ac4a122eb1afConfirm Transact...217390712021-11-24 8:24:30482 days 15 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.01176797026298.824070055
0xb59994c8be5ea72d5d3e74c49960f1196c1cde4f09e1fe07647bb0050ebacc03Submit Transacti...217390362021-11-24 8:23:20482 days 15 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00629432133
0xfac4d47a9e33e6a78dfcdabb80e28b22bfe078af9997c247efba8cb0c011648fConfirm Transact...211981122021-11-10 6:11:53496 days 17 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00902945820175.826823999
0xb78e249bac1aa886520b0ee833e8435155934d29ca695c384262cc893b2f8a0cSubmit Transacti...211977842021-11-10 6:00:37496 days 17 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0057221130
0xb01e39945226a3802b2cb0a5bcf10b826e56c66f583d37ae89f6899849443002Confirm Transact...206537912021-10-27 3:02:14510 days 20 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.012982021568109.019327917
0x140e1dcb084fca8ff2795c515cea53b1dd92d50891ed7eef8995c14e19bb113dSubmit Transacti...206531242021-10-27 2:31:18510 days 21 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0095368550
0x0fb7ec2b3be162c4b2c62eae2cf9a39b671626da569ee49a84b995a31f3d1562Confirm Transact...157443762021-06-15 12:17:22644 days 11 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.00144086812.100000001
0x22a05051861b17ad43e2b6608bbb34e677efccd5c6e4c3b4fc55dee8d99350d5Submit Transacti...157439392021-06-15 12:00:16644 days 11 hrs ago0x027ffd3c119567e85998f4e6b9c3d83d5702660c IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.0001907371
0x95d73ef99ae9dfc7f5e6b3fac35b682eb951bec5e0272dab2b0555a2fe20fb97Confirm Transact...152704532021-06-03 5:16:26656 days 18 hrs ago0x365bc7a7b4d8fe5d45f77ad67bc5bd4f9a748c20 IN  Aavegotchi: Rarity Farming Rewards0 MATIC0.000119081.000000002
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x355b8e02e7f5301e6fac9b7cac1d6d9c86c0343f

Contract Name:
MultiSigWalletWithDailyLimit

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2021-06-09
*/

/**
 *Submitted for verification at Etherscan.io on 2018-02-05
*/

contract Factory {

    /*
     *  Events
     */
    event ContractInstantiation(address sender, address instantiation);

    /*
     *  Storage
     */
    mapping(address => bool) public isInstantiation;
    mapping(address => address[]) public instantiations;

    /*
     * Public functions
     */
    /// @dev Returns number of instantiations by creator.
    /// @param creator Contract creator.
    /// @return Returns number of instantiations by creator.
    function getInstantiationCount(address creator)
        public
        constant
        returns (uint)
    {
        return instantiations[creator].length;
    }

    /*
     * Internal functions
     */
    /// @dev Registers contract in factory registry.
    /// @param instantiation Address of contract instantiation.
    function register(address instantiation)
        internal
    {
        isInstantiation[instantiation] = true;
        instantiations[msg.sender].push(instantiation);
        ContractInstantiation(msg.sender, instantiation);
    }
}

/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    /*
     *  Events
     */
    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);

    /*
     *  Constants
     */
    uint constant public MAX_OWNER_COUNT = 50;

    /*
     *  Storage
     */
    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;
    }

    /*
     *  Modifiers
     */
    modifier onlyWallet() {
        require(msg.sender == address(this));
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        require(!isOwner[owner]);
        _;
    }

    modifier ownerExists(address owner) {
        require(isOwner[owner]);
        _;
    }

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

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

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

    modifier notExecuted(uint transactionId) {
        require(!transactions[transactionId].executed);
        _;
    }

    modifier notNull(address _address) {
        require(_address != 0);
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        require(ownerCount <= MAX_OWNER_COUNT
            && _required <= ownerCount
            && _required != 0
            && ownerCount != 0);
        _;
    }

    /// @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++) {
            require(!isOwner[_owners[i]] && _owners[i] != 0);
            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 newOwner 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
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction storage txn = transactions[transactionId];
            txn.executed = true;
            if (txn.destination.call.value(txn.value)(txn.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                txn.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];
    }
}

/// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig.
/// @author Stefan George - <[email protected]>
contract MultiSigWalletWithDailyLimit is MultiSigWallet {

    /*
     *  Events
     */
    event DailyLimitChange(uint dailyLimit);

    /*
     *  Storage
     */
    uint public dailyLimit;
    uint public lastDay;
    uint public spentToday;

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis.
    function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit)
        public
        MultiSigWallet(_owners, _required)
    {
        dailyLimit = _dailyLimit;
    }

    /// @dev Allows to change the daily limit. Transaction has to be sent by wallet.
    /// @param _dailyLimit Amount in wei.
    function changeDailyLimit(uint _dailyLimit)
        public
        onlyWallet
    {
        dailyLimit = _dailyLimit;
        DailyLimitChange(_dailyLimit);
    }

    /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        Transaction storage txn = transactions[transactionId];
        bool _confirmed = isConfirmed(transactionId);
        if (_confirmed || txn.data.length == 0 && isUnderLimit(txn.value)) {
            txn.executed = true;
            if (!_confirmed)
                spentToday += txn.value;
            if (txn.destination.call.value(txn.value)(txn.data))
                Execution(transactionId);
            else {
                ExecutionFailure(transactionId);
                txn.executed = false;
                if (!_confirmed)
                    spentToday -= txn.value;
            }
        }
    }

    /*
     * Internal functions
     */
    /// @dev Returns if amount is within daily limit and resets spentToday after one day.
    /// @param amount Amount to withdraw.
    /// @return Returns if amount is under daily limit.
    function isUnderLimit(uint amount)
        internal
        returns (bool)
    {
        if (now > lastDay + 24 hours) {
            lastDay = now;
            spentToday = 0;
        }
        if (spentToday + amount > dailyLimit || spentToday + amount < spentToday)
            return false;
        return true;
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns maximum withdraw amount.
    /// @return Returns amount.
    function calcMaxWithdraw()
        public
        constant
        returns (uint)
    {
        if (now > lastDay + 24 hours)
            return dailyLimit;
        if (dailyLimit < spentToday)
            return 0;
        return dailyLimit - spentToday;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcMaxWithdraw","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","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,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","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,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","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,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"changeDailyLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_dailyLimit","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dailyLimit","type":"uint256"}],"name":"DailyLimitChange","type":"event"},{"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"}]

606060405234156200001057600080fd5b60405162002616380380620026168339810160405280805182019190602001805190602001909190805190602001909190505082826000825182603282111580156200005c5750818111155b80156200006a575060008114155b801562000078575060008214155b15156200008457600080fd5b600092505b8451831015620001bf57600260008685815181101515620000a657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015620001355750600085848151811015156200011257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b15156200014157600080fd5b60016002600087868151811015156200015657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828060010193505062000089565b8460039080519060200190620001d7929190620001f4565b5083600481905550505050505080600681905550505050620002c9565b82805482825590600052602060002090810192821562000270579160200282015b828111156200026f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000215565b5b5090506200027f919062000283565b5090565b620002c691905b80821115620002c257600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200028a565b5090565b90565b61233d80620002d96000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c27146101ae578063173825d91461021157806320ea8d861461024a5780632f54bf6e1461026d5780633411c81c146102be5780634bc9fdc214610318578063547415251461034157806367eeba0c146103855780636b0c932d146103ae5780637065cb48146103d7578063784547a7146104105780638b51d13f1461044b5780639ace38c214610482578063a0e67e2b14610580578063a8abe69a146105ea578063b5dc40c314610681578063b77bf600146106f9578063ba51a6df14610722578063c01a8c8414610745578063c642747414610768578063cea0862114610801578063d74f8edd14610824578063dc8452cd1461084d578063e20056e614610876578063ee22610b146108ce578063f059cf2b146108f1575b60003411156101ac573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b34156101b957600080fd5b6101cf600480803590602001909190505061091a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021c57600080fd5b610248600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610959565b005b341561025557600080fd5b61026b6004808035906020019091905050610bf5565b005b341561027857600080fd5b6102a4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d9d565b604051808215151515815260200191505060405180910390f35b34156102c957600080fd5b6102fe600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610dbd565b604051808215151515815260200191505060405180910390f35b341561032357600080fd5b61032b610dec565b6040518082815260200191505060405180910390f35b341561034c57600080fd5b61036f600480803515159060200190919080351515906020019091905050610e29565b6040518082815260200191505060405180910390f35b341561039057600080fd5b610398610ebb565b6040518082815260200191505060405180910390f35b34156103b957600080fd5b6103c1610ec1565b6040518082815260200191505060405180910390f35b34156103e257600080fd5b61040e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610ec7565b005b341561041b57600080fd5b61043160048080359060200190919050506110c9565b604051808215151515815260200191505060405180910390f35b341561045657600080fd5b61046c60048080359060200190919050506111af565b6040518082815260200191505060405180910390f35b341561048d57600080fd5b6104a3600480803590602001909190505061127b565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018315151515815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561056e5780601f106105435761010080835404028352916020019161056e565b820191906000526020600020905b81548152906001019060200180831161055157829003601f168201915b50509550505050505060405180910390f35b341561058b57600080fd5b6105936112d7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d65780820151818401526020810190506105bb565b505050509050019250505060405180910390f35b34156105f557600080fd5b61062a60048080359060200190919080359060200190919080351515906020019091908035151590602001909190505061136b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561066d578082015181840152602081019050610652565b505050509050019250505060405180910390f35b341561068c57600080fd5b6106a260048080359060200190919050506114c7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e55780820151818401526020810190506106ca565b505050509050019250505060405180910390f35b341561070457600080fd5b61070c6116f1565b6040518082815260200191505060405180910390f35b341561072d57600080fd5b61074360048080359060200190919050506116f7565b005b341561075057600080fd5b61076660048080359060200190919050506117b1565b005b341561077357600080fd5b6107eb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061198e565b6040518082815260200191505060405180910390f35b341561080c57600080fd5b61082260048080359060200190919050506119ad565b005b341561082f57600080fd5b610837611a28565b6040518082815260200191505060405180910390f35b341561085857600080fd5b610860611a2d565b6040518082815260200191505060405180910390f35b341561088157600080fd5b6108cc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a33565b005b34156108d957600080fd5b6108ef6004808035906020019091905050611d4a565b005b34156108fc57600080fd5b610904612042565b6040518082815260200191505060405180910390f35b60038181548110151561092957fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561099557600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156109ee57600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610b76578273ffffffffffffffffffffffffffffffffffffffff16600383815481101515610a8157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610b69576003600160038054905003815481101515610ae057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610b1b57fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b76565b8180600101925050610a4b565b6001600381818054905003915081610b8e91906121ec565b506003805490506004541115610bad57610bac6003805490506116f7565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c4e57600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cb957600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610ce957600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60006201518060075401421115610e07576006549050610e26565b6008546006541015610e1c5760009050610e26565b6008546006540390505b90565b600080600090505b600554811015610eb457838015610e68575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610e9b5750828015610e9a575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610ea7576001820191505b8080600101915050610e31565b5092915050565b60065481565b60075481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0157600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f5b57600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff1614151515610f8257600080fd5b60016003805490500160045460328211158015610f9f5750818111155b8015610fac575060008114155b8015610fb9575060008214155b1515610fc457600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600380548060010182816110309190612218565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b6003805490508110156111a75760016000858152602001908152602001600020600060038381548110151561110757fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611187576001820191505b60045482141561119a57600192506111a8565b80806001019150506110d6565b5b5050919050565b600080600090505b600380549050811015611275576001600084815260200190815260200160002060006003838154811015156111e857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611268576001820191505b80806001019150506111b7565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201908060030160009054906101000a900460ff16905084565b6112df612244565b600380548060200260200160405190810160405280929190818152602001828054801561136157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611317575b5050505050905090565b611373612258565b61137b612258565b60008060055460405180591061138e5750595b9080825280602002602001820160405250925060009150600090505b60055481101561144a578580156113e1575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806114145750848015611413575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b1561143d5780838381518110151561142857fe5b90602001906020020181815250506001820191505b80806001019150506113aa565b87870360405180591061145a5750595b908082528060200260200182016040525093508790505b868110156114bc57828181518110151561148757fe5b90602001906020020151848983038151811015156114a157fe5b90602001906020020181815250508080600101915050611471565b505050949350505050565b6114cf612244565b6114d7612244565b6000806003805490506040518059106114ed5750595b9080825280602002602001820160405250925060009150600090505b60038054905081101561164c5760016000868152602001908152602001600020600060038381548110151561153a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561163f576003818154811015156115c257fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811015156115fc57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b8080600101915050611509565b8160405180591061165a5750595b90808252806020026020018201604052509350600090505b818110156116e957828181518110151561168857fe5b9060200190602002015184828151811015156116a057fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050611672565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561173157600080fd5b60038054905081603282111580156117495750818111155b8015611756575060008114155b8015611763575060008214155b151561176e57600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561180a57600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561186657600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156118d257600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a361198785611d4a565b5050505050565b600061199b848484612048565b90506119a6816117b1565b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119e757600080fd5b806006819055507fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca2816040518082815260200191505060405180910390a150565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6f57600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ac857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611b2257600080fd5b600092505b600380549050831015611c0d578473ffffffffffffffffffffffffffffffffffffffff16600384815481101515611b5a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c005783600384815481101515611bb257fe5b906000526020600020900160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c0d565b8280600101935050611b27565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b60008033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611da657600080fd5b83336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611e1157600080fd5b8560008082815260200190815260200160002060030160009054906101000a900460ff16151515611e4157600080fd5b6000808881526020019081526020016000209550611e5e876110c9565b94508480611e995750600086600201805460018160011615610100020316600290049050148015611e985750611e97866001015461219a565b5b5b156120395760018660030160006101000a81548160ff021916908315150217905550841515611ed75785600101546008600082825401925050819055505b8560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168660010154876002016040518082805460018160011615610100020316600290048015611f805780601f10611f5557610100808354040283529160200191611f80565b820191906000526020600020905b815481529060010190602001808311611f6357829003601f168201915b505091505060006040518083038185876187965a03f19250505015611fd157867f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a2612038565b867f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008660030160006101000a81548160ff0219169083151502179055508415156120375785600101546008600082825403925050819055505b5b5b50505050505050565b60085481565b60008360008173ffffffffffffffffffffffffffffffffffffffff161415151561207157600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155604082015181600201908051906020019061213092919061226c565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b600062015180600754014211156121bb574260078190555060006008819055505b600654826008540111806121d457506008548260085401105b156121e257600090506121e7565b600190505b919050565b8154818355818115116122135781836000526020600020918201910161221291906122ec565b5b505050565b81548183558181151161223f5781836000526020600020918201910161223e91906122ec565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106122ad57805160ff19168380011785556122db565b828001600101855582156122db579182015b828111156122da5782518255916020019190600101906122bf565b5b5090506122e891906122ec565b5090565b61230e91905b8082111561230a5760008160009055506001016122f2565b5090565b905600a165627a7a723058207a083fc9111b1e743b3e6a8a4011c2a704783380ac0246f4e7140573c449e3ee00290000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000803b74766d8f79195d4daecf6f2aac31dba78f25

Deployed ByteCode Sourcemap

13168:3107:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3727:1;3715:9;:13;3711:62;;;3751:10;3743:30;;;3763:9;3743:30;;;;;;;;;;;;;;;;;;3711:62;13168:3107;2171:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4940:475;;;;;;;;;;;;;;;;;;;;;;;;;;;;7582:299;;;;;;;;;;;;;;;;;;;;;;;;;;2124:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2053:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16001:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10626:328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13348:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13377:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4526:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;8736:349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10098:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1997:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11042:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;12295:694:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;11347:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;2228:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6261:214;;;;;;;;;;;;;;;;;;;;;;;;;;7101:353;;;;;;;;;;;;;;;;;;;;;;;;;;6741:250;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14141:168;;;;;;;;;;;;;;;;;;;;;;;;;;1913:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2201:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5622:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14475:819;;;;;;;;;;;;;;;;;;;;;;;;;;13403:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2171:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4940:475::-;5094:6;2495:4;2473:27;;:10;:27;;;2465:36;;;;;;;;5033:5;2689:7;:14;2697:5;2689:14;;;;;;;;;;;;;;;;;;;;;;;;;2681:23;;;;;;;;5073:5;5056:7;:14;5064:5;5056:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;5101:1;5094:8;;5089:174;5122:1;5106:6;:13;;;;:17;5104:1;:19;5089:174;;;5160:5;5147:18;;:6;5154:1;5147:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;5143:120;;;5198:6;5221:1;5205:6;:13;;;;:17;5198:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;5186:6;5193:1;5186:9;;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;5242:5;;5143:120;5125:3;;;;;;;5089:174;;;5290:1;5273:6;:18;;;;;;;;;;;;;;:::i;:::-;;5317:6;:13;;;;5306:8;;:24;5302:75;;;5345:32;5363:6;:13;;;;5345:17;:32::i;:::-;5302:75;5401:5;5388:19;;;;;;;;;;;;2512:1;4940:475;;:::o;7582:299::-;7667:10;2689:7;:14;2697:5;2689:14;;;;;;;;;;;;;;;;;;;;;;;;;2681:23;;;;;;;;7698:13;7713:10;2944:13;:28;2958:13;2944:28;;;;;;;;;;;:35;2973:5;2944:35;;;;;;;;;;;;;;;;;;;;;;;;;2936:44;;;;;;;;7746:13;3210:12;:27;3223:13;3210:27;;;;;;;;;;;:36;;;;;;;;;;;;3209:37;3201:46;;;;;;;;7820:5;7777:13;:28;7791:13;7777:28;;;;;;;;;;;:40;7806:10;7777:40;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;7859:13;7847:10;7836:37;;;;;;;;;;;;2991:1;2715;;7582:299;;:::o;2124:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;2053:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16001:271::-;16080:4;16122:8;16112:7;;:18;16106:3;:24;16102:60;;;16152:10;;16145:17;;;;16102:60;16190:10;;16177;;:23;16173:50;;;16222:1;16215:8;;;;16173:50;16254:10;;16241;;:23;16234:30;;16001:271;;:::o;10626:328::-;10736:10;10769:6;10776:1;10769:8;;10764:182;10781:16;;10779:1;:18;10764:182;;;10824:7;:36;;;;;10836:12;:15;10849:1;10836:15;;;;;;;;;;;:24;;;;;;;;;;;;10835:25;10824:36;:93;;;;10881:8;:36;;;;;10893:12;:15;10906:1;10893:15;;;;;;;;;;;:24;;;;;;;;;;;;10881:36;10824:93;10817:129;;;10945:1;10936:10;;;;10817:129;10799:3;;;;;;;10764:182;;;10626:328;;;;;:::o;13348:22::-;;;;:::o;13377:19::-;;;;:::o;4526:287::-;2495:4;2473:27;;:10;:27;;;2465:36;;;;;;;;4622:5;2591:7;:14;2599:5;2591:14;;;;;;;;;;;;;;;;;;;;;;;;;2590:15;2582:24;;;;;;;;4646:5;3341:1;3329:8;:13;;;;3321:22;;;;;;;;4695:1;4679:6;:13;;;;:17;4698:8;;1952:2;3449:10;:29;;:69;;;;;3508:10;3495:9;:23;;3449:69;:100;;;;;3548:1;3535:9;:14;;3449:100;:132;;;;;3580:1;3566:10;:15;;3449:132;3441:141;;;;;;;;4741:4;4724:7;:14;4732:5;4724:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;4756:6;:18;;;;;;;;;;;:::i;:::-;;;;;;;;;;4768:5;4756:18;;;;;;;;;;;;;;;;;;;;;;;4799:5;4785:20;;;;;;;;;;;;3354:1;;2617;2512;4526:287;:::o;8736:349::-;8829:4;8851:10;8881:6;8864:1;8851:14;;8888:1;8881:8;;8876:202;8893:6;:13;;;;8891:1;:15;8876:202;;;8932:13;:28;8946:13;8932:28;;;;;;;;;;;:39;8961:6;8968:1;8961:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;8932:39;;;;;;;;;;;;;;;;;;;;;;;;;8928:72;;;8999:1;8990:10;;;;8928:72;9028:8;;9019:5;:17;9015:51;;;9062:4;9055:11;;;;9015:51;8908:3;;;;;;;8876:202;;;8736:349;;;;;;:::o;10098:260::-;10200:10;10233:6;10240:1;10233:8;;10228:122;10245:6;:13;;;;10243:1;:15;10228:122;;;10282:13;:28;10296:13;10282:28;;;;;;;;;;;:39;10311:6;10318:1;10311:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;10282:39;;;;;;;;;;;;;;;;;;;;;;;;;10278:72;;;10349:1;10340:10;;;;10278:72;10260:3;;;;;;;10228:122;;;10098:260;;;;:::o;1997:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11042:121::-;11115:9;;:::i;:::-;11149:6;11142:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11042:121;:::o;12295:694::-;12423:22;;:::i;:::-;12463:32;;:::i;:::-;12537:10;12562:6;12509:16;;12498:28;;;;;;;;;;;;;;;;;;;;;;;;12463:63;;12550:1;12537:14;;12586:1;12584:3;;12579:256;12591:16;;12589:1;:18;12579:256;;;12634:7;:36;;;;;12646:12;:15;12659:1;12646:15;;;;;;;;;;;:24;;;;;;;;;;;;12645:25;12634:36;:93;;;;12691:8;:36;;;;;12703:12;:15;12716:1;12703:15;;;;;;;;;;;:24;;;;;;;;;;;;12691:36;12634:93;12627:208;;;12789:1;12761:18;12780:5;12761:25;;;;;;;;;;;;;;;;;:29;;;;;12818:1;12809:10;;;;12627:208;12609:3;;;;;;;12579:256;;;12879:4;12874:2;:9;12863:21;;;;;;;;;;;;;;;;;;;;;;;;12845:39;;12902:4;12900:6;;12895:86;12910:2;12908:1;:4;12895:86;;;12960:18;12979:1;12960:21;;;;;;;;;;;;;;;;;;12932:15;12952:4;12948:1;:8;12932:25;;;;;;;;;;;;;;;;;:49;;;;;12914:3;;;;;;;12895:86;;;12295:694;;;;;;;;;:::o;11347:591::-;11445:24;;:::i;:::-;11487:34;;:::i;:::-;11563:10;11588:6;11538;:13;;;;11524:28;;;;;;;;;;;;;;;;;;;;;;;;11487:65;;11576:1;11563:14;;11612:1;11610:3;;11605:190;11617:6;:13;;;;11615:1;:15;11605:190;;;11654:13;:28;11668:13;11654:28;;;;;;;;;;;:39;11683:6;11690:1;11683:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;11654:39;;;;;;;;;;;;;;;;;;;;;;;;;11650:145;;;11741:6;11748:1;11741:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;11714:17;11732:5;11714:24;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;11778:1;11769:10;;;;11650:145;11632:3;;;;;;;11605:190;;;11836:5;11822:20;;;;;;;;;;;;;;;;;;;;;;;;11805:37;;11860:1;11858:3;;11853:77;11865:5;11863:1;:7;11853:77;;;11910:17;11928:1;11910:20;;;;;;;;;;;;;;;;;;11890:14;11905:1;11890:17;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;11872:3;;;;;;;11853:77;;;11347:591;;;;;;:::o;2228:28::-;;;;:::o;6261:214::-;2495:4;2473:27;;:10;:27;;;2465:36;;;;;;;;6366:6;:13;;;;6381:9;1952:2;3449:10;:29;;:69;;;;;3508:10;3495:9;:23;;3449:69;:100;;;;;3548:1;3535:9;:14;;3449:100;:132;;;;;3580:1;3566:10;:15;;3449:132;3441:141;;;;;;;;6419:9;6408:8;:20;;;;6439:28;6457:9;6439:28;;;;;;;;;;;;;;;;;;2512:1;;6261:214;:::o;7101:353::-;7186:10;2689:7;:14;2697:5;2689:14;;;;;;;;;;;;;;;;;;;;;;;;;2681:23;;;;;;;;7225:13;2841:1;2798:12;:27;2811:13;2798:27;;;;;;;;;;;:39;;;;;;;;;;;;:44;;;;2790:53;;;;;;;;7262:13;7277:10;3085:13;:28;3099:13;3085:28;;;;;;;;;;;:35;3114:5;3085:35;;;;;;;;;;;;;;;;;;;;;;;;;3084:36;3076:45;;;;;;;;7348:4;7305:13;:28;7319:13;7305:28;;;;;;;;;;;:40;7334:10;7305:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;7388:13;7376:10;7363:39;;;;;;;;;;;;7413:33;7432:13;7413:18;:33::i;:::-;2854:1;;2715;7101:353;;:::o;6741:250::-;6847:18;6899:40;6914:11;6927:5;6934:4;6899:14;:40::i;:::-;6883:56;;6950:33;6969:13;6950:18;:33::i;:::-;6741:250;;;;;:::o;14141:168::-;2495:4;2473:27;;:10;:27;;;2465:36;;;;;;;;14250:11;14237:10;:24;;;;14272:29;14289:11;14272:29;;;;;;;;;;;;;;;;;;14141:168;:::o;1913:41::-;1952:2;1913:41;:::o;2201:20::-;;;;:::o;5622:464::-;5799:6;2495:4;2473:27;;:10;:27;;;2465:36;;;;;;;;5734:5;2689:7;:14;2697:5;2689:14;;;;;;;;;;;;;;;;;;;;;;;;;2681:23;;;;;;;;5768:8;2591:7;:14;2599:5;2591:14;;;;;;;;;;;;;;;;;;;;;;;;;2590:15;2582:24;;;;;;;;5806:1;5799:8;;5794:153;5811:6;:13;;;;5809:1;:15;5794:153;;;5861:5;5848:18;;:6;5855:1;5848:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;5844:103;;;5899:8;5887:6;5894:1;5887:9;;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;5926:5;;5844:103;5826:3;;;;;;;5794:153;;;5974:5;5957:7;:14;5965:5;5957:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;6010:4;5990:7;:17;5998:8;5990:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6038:5;6025:19;;;;;;;;;;;;6069:8;6055:23;;;;;;;;;;;;2715:1;2512;5622:464;;;:::o;14475:819::-;14670:23;14734:15;14560:10;2689:7;:14;2697:5;2689:14;;;;;;;;;;;;;;;;;;;;;;;;;2681:23;;;;;;;;14591:13;14606:10;2944:13;:28;2958:13;2944:28;;;;;;;;;;;:35;2973:5;2944:35;;;;;;;;;;;;;;;;;;;;;;;;;2936:44;;;;;;;;14639:13;3210:12;:27;3223:13;3210:27;;;;;;;;;;;:36;;;;;;;;;;;;3209:37;3201:46;;;;;;;;14696:12;:27;14709:13;14696:27;;;;;;;;;;;14670:53;;14752:26;14764:13;14752:11;:26::i;:::-;14734:44;;14793:10;:61;;;;14826:1;14807:3;:8;;:15;;;;;;;;;;;;;;;;:20;:47;;;;;14831:23;14844:3;:9;;;14831:12;:23::i;:::-;14807:47;14793:61;14789:498;;;14886:4;14871:3;:12;;;:19;;;;;;;;;;;;;;;;;;14910:10;14909:11;14905:57;;;14953:3;:9;;;14939:10;;:23;;;;;;;;;;;14905:57;14981:3;:15;;;;;;;;;;;;:20;;15008:3;:9;;;15019:3;:8;;14981:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14977:299;;;15057:13;15047:24;;;;;;;;;;14977:299;;;15127:13;15110:31;;;;;;;;;;15175:5;15160:3;:12;;;:20;;;;;;;;;;;;;;;;;;15204:10;15203:11;15199:61;;;15251:3;:9;;;15237:10;;:23;;;;;;;;;;;15199:61;14977:299;14789:498;2991:1;2715;;14475:819;;;;:::o;13403:22::-;;;;:::o;9428:465::-;9563:18;9532:11;3341:1;3329:8;:13;;;;3321:22;;;;;;;;9615:16;;9599:32;;9672:145;;;;;;;;;9712:11;9672:145;;;;;;9745:5;9672:145;;;;9771:4;9672:145;;;;9800:5;9672:145;;;;;9642:12;:27;9655:13;9642:27;;;;;;;;;;;:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9848:1;9828:16;;:21;;;;;;;;;;;9871:13;9860:25;;;;;;;;;;9428:465;;;;;;:::o;15537:331::-;15608:4;15650:8;15640:7;;:18;15634:3;:24;15630:99;;;15685:3;15675:7;:13;;;;15716:1;15703:10;:14;;;;15630:99;15765:10;;15756:6;15743:10;;:19;:32;:68;;;;15801:10;;15792:6;15779:10;;:19;:32;15743:68;15739:99;;;15833:5;15826:12;;;;15739:99;15856:4;15849:11;;15537:331;;;;:::o;13168:3107::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://7a083fc9111b1e743b3e6a8a4011c2a704783380ac0246f4e7140573c449e3ee
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.