Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 44367 txns
  Latest 25 txns from a total Of 44367 transactions View All

TxHash Age From To Value [TxFee]
0x6cb6b781b20dfc9ffb3db1735b32ea7ad61764481cfa6ba41d36d7821917e65e7 mins ago0x60c03eaa75a2d828f2e8f0803b0fcd2dc34a801c  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000576008
0x48fa8fec2704a6806edef53986dddc970ad5a0d4bce4c5264db5ea88c2123c2241 mins ago0xa1cd990dcd708e962908b24a56afd8bd3fabc29a  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000576008
0xc0687be03b515406a84c49104f463534cedd90ffab91302c94ebf135b84edd512 hrs 14 mins ago0xe4e7f6e7d082aeaaa1dd20907ea426a3cc70b0df  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000481285
0xb0838dd651e1d224ecc53c960160eebf5b239939db45a0e9b958aff971a8a2882 hrs 17 mins ago0x7b9c0f8b2763be562e6e3a2c816bbd924fe0e17b  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000578032
0x08fcc24c253de651f3466b17b257f11ea34a9525e8733a3d15231cab77f1e9b310 hrs 15 mins ago0x389a1726ee3f464754c38e09e7ab9de7c067af98  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001504104
0xe975ce43d561da16d751c96e21ae5891f38812eed77e8b03446269a288565b4411 hrs 56 mins ago0x38acbfdc11ae6df7203f486266979908e6b409c1  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.00038554
0xc26ae531eeedf87659091a3faa8a8cc0bbe69fe0a683c892f9c4ba42fd7bd22612 hrs 11 mins ago0x69c9ad0da5ba3556db1530d6e5b12261b9edb142  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001505448
0xc2c1de733c35b51ea366d26d9105e4cc6db75fee6e49a8631e4d903e7ac698d912 hrs 27 mins ago0xbc1a639d02aeaf9d53998b5627d5b3d0e0f85f5a  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001505448
0xc36a83e59824453aa42ee3601a2ab7126a4d5f6dd24394e93aed230abf781b4613 hrs 35 mins ago0x76bb8ae15a16c6eb006082788840d9cd7b3cedd0  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.00057702
0xc199552aee81090e415ea26c01374e15399fe4e3788d5d77da5b72330acff35016 hrs 43 mins ago0x86cd0131bd8ce2054470b8a2fc47246eaefddaef  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001504104
0xc176bd98d544a14974b67b1d2ae203158abdd6296517462dd4ca32d02a7daa5621 hrs 45 mins ago0x08d766c548ce9bfcb0f59bada9b41ff342514fe8  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001505448
0x3299ff67e50a3d21a81252009b2297477fddfc48086842dfd498759363bcda5f21 hrs 45 mins ago0x08d766c548ce9bfcb0f59bada9b41ff342514fe8  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001654863
0x6eab0f1278ea4445d68e23d3fcec75baa0bca05fb8bc08dbcacbb9e99e8eb90c22 hrs 1 min ago0xa27fbf71b53954aee4fb123188942ce1363ccb31  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000628272
0xa51c6167ec0077f9c15fa9b07871c57b31ba786e14b0b33f75fed8c94623e5e41 day 2 hrs ago0xe4e7f6e7d082aeaaa1dd20907ea426a3cc70b0df  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.00078534
0xb2773aa297b1186863bd9aa31a7b051635ee4222031d81498a040df58ee662601 day 7 hrs ago0xff4a20a649a833a7be733c6531bb2e6f51f41457  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001505448
0x90c00f6f286a7ac2eeab6c66dc7c439adaaa6fd95a2a176334a7e305d5d66a981 day 9 hrs ago0xbac87f27cd613535d539a8bc5d2fd44de6ff0bb0  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001654863
0xe70bac9b56e935ec616fb29e859e8671a1ef627aaaf7372cce2e7542bd02e8b01 day 9 hrs ago0x8b2b2e2970d568f85d6eae3e4acc967df514fce6  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.001505448
0xcd99a9620d3af9267860bba9c1673dddb3461292686cf80eca62e48c7525687a1 day 15 hrs ago0x5cdfcf9843631046c38245f6eb59f38b81e665a8  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000628016
0x1421edd9e68ecba192fa3308037844e965aa235fbbdc1a2ad0484f63b3ccb9ce1 day 16 hrs ago0x801d4f1e8fc032355ef955f5dac19051d49dabfb  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000519812
0x2e26857ee901cd3ce8691dce0fa65ff6ff07dd995482bb6ba4fb8b4a6c49a54b1 day 16 hrs ago0x8b0b82b841470fa53f87dff9060e20595a01d6e9  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000325284
0x6f7571821c8ae9121302766c0ec44e68334a4e0a7da1a8be7e7882ad4fd69b831 day 16 hrs ago0xc00ab2771f5e647c0c154bc5a8ddb84d4fce2fb0  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000385284
0x580d9d32065b0cbe3a434af10fd382264d3afbf05374632f66d1b17fa3d304811 day 16 hrs ago0x7a31c79a29d89bf850696cb4691dae8aa3cf4758  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.0025422
0x67987eedc8ed8b0b16a6135af2753a3eb3281821f79c79a5ad29983b8c91eeed1 day 21 hrs ago0xfff08dc957840861ceb9ff77fd702e9d0bb256ce  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000522348
0xa9bb7beb393e5980b18f6783db4bc900aa1ec1240cf75226af83fae98ae7aed91 day 21 hrs ago0xbbf29f6d340cf9f7c9cfa735f841b63079ee29f5  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000325284
0x711af852678d03a824dc084af6395239027a9f982ccb58f492daa216359c21df2 days 2 hrs ago0xe4e7f6e7d082aeaaa1dd20907ea426a3cc70b0df  IN   0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether0.000481285
[ 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
0x714fe830afcd79953ba7584cde23a09bdc824d32bf4135cef3738ba361e8a26d2440530401 days 12 hrs ago0xa00d52431f51223b6cff30aefb8d08007d6a1c740xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xca761e4534db9b7c10fbff429a3b2ec050095c819389fb7f88222a584071e3692440527401 days 12 hrs ago0x178c793b18a1e53b6402a7454b61b1046f8adf990xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x88b6693e0f338c153bc1d990ae44e4c3409b561ccf19ec62654c45cadd74a7fe2439600401 days 15 hrs ago0x87fb2458ef0d5be4a43acb2e728d1741812bf6eb0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xaef0d0de5e4dd14731b900f6f4c8b01449a54769ae965a5156275fd24680d0242439594401 days 15 hrs ago0xa76151762bd6b8eefc5d70f297bd8f3e8ca8d2400xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x27470aa1d18588247386a3703b2f11a8ab4c4c4b4075a22069c291acea5901c82439592401 days 15 hrs ago0xb1ebfb6b7268e0ba004c1fe606815636057bb7740xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xe095db44c9d29b7d14e22eebdd92321d8a8019ef87858b28239a7d07342381962439149401 days 17 hrs ago0x880b322587937e0e1fe37b868dc2339575bc0a790xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x6fc0bfe696f4bf300fbf691313e55dbe39240af88135b9fbf1fc1e5fefb8b5ba2439074401 days 17 hrs ago0x273346fa685408cfde4b5f1d620c8e5c265df84a0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xb6f2bc0794302d6e2ec6195a07f317a3a6d278e6306fd252c735ef59c3ecbbbe2438948401 days 18 hrs ago0x1c6b5a73c53eca8c90cf8b7066610f3e18065aad0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xa06018177dbdb52c1e95ee5b91ee2e2ea5472646566d8cff96ff440cf7612d492438936401 days 18 hrs ago0xbe33f67647898a7342da8ac65765c6746040e0b80xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xd4ff20b8123e231d199333bb97ac3c08eb767157e93f2948ba5204211d2ef8912438863401 days 18 hrs ago0x889297dca98c10be6f7ad2ce98d8aace155d27b30xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x684acf4e91e28b54348460ed0e96e2685e075ec9ebc31fb279205ad815ffa9bc2438724401 days 19 hrs ago0x5e7aad31e35793ddee4996f84b39911a2b47ccf90xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x316ca7fda55f933e4c318bcc9bcabddf68e406eb91070d8638364a52b5cfa8162438517401 days 20 hrs ago0x713e473bcd07880ce4401512b91664951883cce70xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xefb932fce3c0580599c99aa4f34cc2dc711f2f3859a116ab8ded9624cd76bdf72438507401 days 20 hrs ago0xb8f9959c1f996236af2996413dd88308b6d9efc10xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x0326f57a16fb204d8da452589e69c8b6854dfc6125e9bedf3b2f486e5b1fcb4e2438465401 days 20 hrs ago0x690ac703e69138e37238a086d2eebcaeb2cf5abd0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x0414ccdbcddf309c2d86a6ad9850249190b2ad75c6823a8b59cca3d3d499b56b2438459401 days 20 hrs ago0xa69e954d4ca939bd22af794a8702c377876c53fa0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x261df5341e1aa09ebb63a9111733778dfe920dad29d82f4ac842a8b4e24041cd2438438401 days 20 hrs ago0x83859940431967251a48ee08014d52dfbfe6ce440xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x5cd7ff67f1004222aefe06ebc4d742e5bf8333f470a7334f25e7844bd06f7f3c2438435401 days 20 hrs ago0x1a8ec4f3b910b76f2b4e1f690aaeaa164e8d0ea20xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xd2a129377156f4ec5c719427c42f24b80468486091bc881bd48d43bdb2b6afcb2438433401 days 20 hrs ago0x77f70cc52fe611b70bafd2f2029ac39534189e2a0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x63f9f45958dfc581f3835e3e28c494ff0107669a8d2027c514c79ed8aa788ee52438388401 days 20 hrs ago0xc821aa24ad4080ab0dee22d03ad799efb0b297ed0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xfffc12100b50949dc499d060d0dbfc263ca1162973a1e4bad4d19cf0214b6d3a2438383401 days 20 hrs ago0x44a0932a883c40b73eeb0b14ad08b22d6fce05010xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xdf5d0fe33c1545af2ef70263b640764b3a79a2c8f21f8ca642eba10aaee5ec772438332401 days 21 hrs ago0xdab76543bf59cc8a7a05bb7d3d5df7f66821e8510xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0x92a2f324c003cf0488529bd8b4a4189b5a133520e2df820225ca92c70aeb1f6b2438321401 days 21 hrs ago0x1f6693bbc3a8c0f3d780912800787363523eb8e60xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xdfc118096e5c8c0c7a251dbc485d52fe1dcbf13cd8c39c95fcf9bae08f926eac2438287401 days 21 hrs ago0x7caaf6c22694766f66c6a1d9e859485eeb24f95e0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xe7fda5e8253156dad8788a2ab63cb59986916041a29987846a6a7d4b020037db2438276401 days 21 hrs ago0xf5fabdc5dc8631c7bed06ea7b9b92963464b3a1f0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
0xf4cda6f03d34d206f1a3986515879b913594f2c3e944dd8c0a5db582d5e283012438264401 days 21 hrs ago0x08151f5ae597fc9f0fe838cbb04ec6a0bbb1c66a0xe4c94d45f7aef7018a5d66f44af780ec6023378e0 Ether
[ Download CSV Export  ] 



  Contract Source Code   Find Similiar Contracts
contract MultiAsset {
    function isCreated(bytes32 _symbol) constant returns(bool);
    function owner(bytes32 _symbol) constant returns(address);
    function totalSupply(bytes32 _symbol) constant returns(uint);
    function balanceOf(address _holder, bytes32 _symbol) constant returns(uint);
    function transfer(address _to, uint _value, bytes32 _symbol) returns(bool);
    function proxyTransferWithReference(address _to, uint _value, bytes32 _symbol, string _reference) returns(bool);
    function proxyTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool);
    function proxyApprove(address _spender, uint _value, bytes32 _symbol) returns(bool);
    function allowance(address _from, address _spender, bytes32 _symbol) constant returns(uint);
    function transferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference) returns(bool);
    function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool);
    function proxyTransferFromWithReference(address _from, address _to, uint _value, bytes32 _symbol, string _reference) returns(bool);
    function proxyTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool);
    function proxySetCosignerAddress(address _address, bytes32 _symbol) returns(bool);
}

contract Ambi {
    function getNodeAddress(bytes32 _name) constant returns (address);
    function addNode(bytes32 _name, address _addr) external returns (bool);
    function hasRelation(bytes32 _from, bytes32 _role, address _to) constant returns (bool);
}

contract EtherTreasuryInterface {
    function withdraw(address _to, uint _value) returns(bool);
}

contract Safe {
    // Should always be placed as first modifier!
    modifier noValue {
        if (msg.value > 0) {
            // Internal Out Of Gas/Throw: revert this transaction too;
            // Call Stack Depth Limit reached: revert this transaction too;
            // Recursive Call: safe, no any changes applied yet, we are inside of modifier.
            _safeSend(msg.sender, msg.value);
        }
        _
    }

    modifier onlyHuman {
        if (_isHuman()) {
            _
        }
    }

    modifier noCallback {
        if (!isCall) {
            _
        }
    }

    modifier immutable(address _address) {
        if (_address == 0) {
            _
        }
    }

    address stackDepthLib;
    function setupStackDepthLib(address _stackDepthLib) immutable(address(stackDepthLib)) returns(bool) {
        stackDepthLib = _stackDepthLib;
        return true;
    }

    modifier requireStackDepth(uint16 _depth) {
        if (stackDepthLib == 0x0) {
            throw;
        }
        if (_depth > 1023) {
            throw;
        }
        if (!stackDepthLib.delegatecall(0x32921690, stackDepthLib, _depth)) {
            throw;
        }
        _
    }

    // Must not be used inside the functions that have noValue() modifier!
    function _safeFalse() internal noValue() returns(bool) {
        return false;
    }

    function _safeSend(address _to, uint _value) internal {
        if (!_unsafeSend(_to, _value)) {
            throw;
        }
    }

    function _unsafeSend(address _to, uint _value) internal returns(bool) {
        return _to.call.value(_value)();
    }

    function _isContract() constant internal returns(bool) {
        return msg.sender != tx.origin;
    }

    function _isHuman() constant internal returns(bool) {
        return !_isContract();
    }

    bool private isCall = false;
    function _setupNoCallback() internal {
        isCall = true;
    }

    function _finishNoCallback() internal {
        isCall = false;
    }
}

contract Asset is Safe {
    event Transfer(address indexed from, address indexed to, uint value);
    event Approve(address indexed from, address indexed spender, uint value);

    MultiAsset public multiAsset;
    bytes32 public symbol;

    function init(address _multiAsset, bytes32 _symbol) noValue() immutable(address(multiAsset)) returns(bool) {
        MultiAsset ma = MultiAsset(_multiAsset);
        if (!ma.isCreated(_symbol)) {
            return false;
        }
        multiAsset = ma;
        symbol = _symbol;
        return true;
    }

    modifier onlyMultiAsset() {
        if (msg.sender == address(multiAsset)) {
            _
        }
    }

    function totalSupply() constant returns(uint) {
        return multiAsset.totalSupply(symbol);
    }

    function balanceOf(address _owner) constant returns(uint) {
        return multiAsset.balanceOf(_owner, symbol);
    }

    function allowance(address _from, address _spender) constant returns(uint) {
        return multiAsset.allowance(_from, _spender, symbol);
    }

    function transfer(address _to, uint _value) returns(bool) {
        return __transferWithReference(_to, _value, "");
    }

    function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
        return __transferWithReference(_to, _value, _reference);
    }

    function __transferWithReference(address _to, uint _value, string _reference) private noValue() returns(bool) {
        return _isHuman() ?
            multiAsset.proxyTransferWithReference(_to, _value, symbol, _reference) :
            multiAsset.transferFromWithReference(msg.sender, _to, _value, symbol, _reference);
    }

    function transferToICAP(bytes32 _icap, uint _value) returns(bool) {
        return __transferToICAPWithReference(_icap, _value, "");
    }

    function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) {
        return __transferToICAPWithReference(_icap, _value, _reference);
    }

    function __transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) private noValue() returns(bool) {
        return _isHuman() ?
            multiAsset.proxyTransferToICAPWithReference(_icap, _value, _reference) :
            multiAsset.transferFromToICAPWithReference(msg.sender, _icap, _value, _reference);
    }
    
    function transferFrom(address _from, address _to, uint _value) returns(bool) {
        return __transferFromWithReference(_from, _to, _value, "");
    }

    function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) {
        return __transferFromWithReference(_from, _to, _value, _reference);
    }

    function __transferFromWithReference(address _from, address _to, uint _value, string _reference) private noValue() onlyHuman() returns(bool) {
        return multiAsset.proxyTransferFromWithReference(_from, _to, _value, symbol, _reference);
    }

    function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) {
        return __transferFromToICAPWithReference(_from, _icap, _value, "");
    }

    function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) {
        return __transferFromToICAPWithReference(_from, _icap, _value, _reference);
    }

    function __transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) private noValue() onlyHuman() returns(bool) {
        return multiAsset.proxyTransferFromToICAPWithReference(_from, _icap, _value, _reference);
    }

    function approve(address _spender, uint _value) noValue() onlyHuman() returns(bool) {
        return multiAsset.proxyApprove(_spender, _value, symbol);
    }

    function setCosignerAddress(address _cosigner) noValue() onlyHuman() returns(bool) {
        return multiAsset.proxySetCosignerAddress(_cosigner, symbol);
    }

    function emitTransfer(address _from, address _to, uint _value) onlyMultiAsset() {
        Transfer(_from, _to, _value);
    }

    function emitApprove(address _from, address _spender, uint _value) onlyMultiAsset() {
        Approve(_from, _spender, _value);
    }

    function sendToOwner() noValue() returns(bool) {
        address owner = multiAsset.owner(symbol);
        uint balance = this.balance;
        bool success = true;
        if (balance > 0) {
            success = _unsafeSend(owner, balance);
        }
        return multiAsset.transfer(owner, balanceOf(owner), symbol) && success;
    }
}

contract AmbiEnabled {
    Ambi public ambiC;
    bool public isImmortal;
    bytes32 public name;

    modifier checkAccess(bytes32 _role) {
        if(address(ambiC) != 0x0 && ambiC.hasRelation(name, _role, msg.sender)){
            _
        }
    }
    
    function getAddress(bytes32 _name) constant returns (address) {
        return ambiC.getNodeAddress(_name);
    }

    function setAmbiAddress(address _ambi, bytes32 _name) returns (bool){
        if(address(ambiC) != 0x0){
            return false;
        }
        Ambi ambiContract = Ambi(_ambi);
        if(ambiContract.getNodeAddress(_name)!=address(this)) {
            if (!ambiContract.addNode(_name, address(this))){
                return false;
            }
        }
        name = _name;
        ambiC = ambiContract;
        return true;
    }

    function immortality() checkAccess("owner") returns(bool) {
        isImmortal = true;
        return true;
    }

    function remove() checkAccess("owner") returns(bool) {
        if (isImmortal) {
            return false;
        }
        selfdestruct(msg.sender);
        return true;
    }
}

contract CryptoCarbon is Asset, AmbiEnabled {
    uint public txGasPriceLimit = 21000000000;
    uint public refundGas = 40000;
    uint public transferCallGas = 21000;
    uint public transferWithReferenceCallGas = 21000;
    uint public transferFromCallGas = 21000;
    uint public transferFromWithReferenceCallGas = 21000;
    uint public transferToICAPCallGas = 21000;
    uint public transferToICAPWithReferenceCallGas = 21000;
    uint public transferFromToICAPCallGas = 21000;
    uint public transferFromToICAPWithReferenceCallGas = 21000;
    uint public approveCallGas = 21000;
    uint public forwardCallGas = 21000;
    uint public setCosignerCallGas = 21000;
    uint public absMinFee;
    uint public feePercent; // set up in 1/100 of percent, 10 is 0.1%
    uint public absMaxFee;
    EtherTreasuryInterface public treasury;
    address public feeAddress;
    bool private __isAllowed;
    mapping(bytes32 => address) public allowedForwards;

    function setFeeStructure(uint _absMinFee, uint _feePercent, uint _absMaxFee) noValue() checkAccess("cron") returns (bool) {
        if(_feePercent > 10000 || _absMaxFee < _absMinFee) {
            return false;
        }
        absMinFee = _absMinFee;
        feePercent = _feePercent;
        absMaxFee = _absMaxFee;
        return true;
    }

    function setupFee(address _feeAddress) noValue() checkAccess("admin") returns(bool) {
        feeAddress = _feeAddress;
        return true;
    }

    function updateRefundGas() noValue() checkAccess("setup") returns(uint) {
        uint startGas = msg.gas;
        // just to simulate calculations
        uint refund = (startGas - msg.gas + refundGas) * tx.gasprice;
        if (tx.gasprice > txGasPriceLimit) {
            return 0;
        }
        // end
        if (!_refund(5000000000000000)) {
            return 0;
        }
        refundGas = startGas - msg.gas;
        return refundGas;
    }

    function setOperationsCallGas(
        uint _transfer,
        uint _transferFrom,
        uint _transferToICAP,
        uint _transferFromToICAP,
        uint _transferWithReference,
        uint _transferFromWithReference,
        uint _transferToICAPWithReference,
        uint _transferFromToICAPWithReference,
        uint _approve,
        uint _forward,
        uint _setCosigner
    )
        noValue()
        checkAccess("setup")
        returns(bool)
    {
        transferCallGas = _transfer;
        transferFromCallGas = _transferFrom;
        transferToICAPCallGas = _transferToICAP;
        transferFromToICAPCallGas = _transferFromToICAP;
        transferWithReferenceCallGas = _transferWithReference;
        transferFromWithReferenceCallGas = _transferFromWithReference;
        transferToICAPWithReferenceCallGas = _transferToICAPWithReference;
        transferFromToICAPWithReferenceCallGas = _transferFromToICAPWithReference;
        approveCallGas = _approve;
        forwardCallGas = _forward;
        setCosignerCallGas = _setCosigner;
        return true;
    }

    function setupTreasury(address _treasury, uint _txGasPriceLimit) checkAccess("admin") returns(bool) {
        if (_txGasPriceLimit == 0) {
            return _safeFalse();
        }
        treasury = EtherTreasuryInterface(_treasury);
        txGasPriceLimit = _txGasPriceLimit;
        if (msg.value > 0) {
            _safeSend(_treasury, msg.value);
        }
        return true;
    }

    function setForward(bytes4 _msgSig, address _forward) noValue() checkAccess("admin") returns(bool) {
        allowedForwards[sha3(_msgSig)] = _forward;
        return true;
    }

    function _stringGas(string _string) constant internal returns(uint) {
        return bytes(_string).length * 75; // ~75 gas per byte, empirical shown 68-72.
    }

    function _transferFee(address _feeFrom, uint _value, string _reference) internal returns(bool) {
        if (feeAddress == 0x0 || feeAddress == _feeFrom || _value == 0) {
            return true;
        }
        return multiAsset.transferFromWithReference(_feeFrom, feeAddress, _value, symbol, _reference);
    }

    function _returnFee(address _to, uint _value) internal returns(bool, bool) {
        if (feeAddress == 0x0 || feeAddress == _to || _value == 0) {
            return (false, true);
        }
        if (!multiAsset.transferFromWithReference(feeAddress, _to, _value, symbol, "Fee return")) {
            throw;
        }
        return (false, true);
    }

    function _applyRefund(uint _startGas) internal returns(bool) {
        uint refund = (_startGas - msg.gas + refundGas) * tx.gasprice;
        return _refund(refund);
    }

    function _refund(uint _value) internal returns(bool) {
        if (tx.gasprice > txGasPriceLimit) {
            return false;
        }
        return treasury.withdraw(tx.origin, _value);
    }

    function _allow() internal {
        __isAllowed = true;
    }

    function _disallow() internal {
        __isAllowed = false;
    }

    function calculateFee(uint _value) constant returns(uint) {
        uint fee = (_value * feePercent) / 10000;
        if (fee < absMinFee) {
            return absMinFee;
        }
        if (fee > absMaxFee) {
            return absMaxFee;
        }
        return fee;
    }

    function calculateFeeDynamic(uint _value, uint _additionalGas) constant returns(uint) {
        uint fee = calculateFee(_value);
        if (_additionalGas <= 7500) {
            return fee;
        }
        // Assuming that absMinFee covers at least 100000 gas refund, let's add another absMinFee
        // for every other 100000 additional gas.
        uint additionalFee = ((_additionalGas / 100000) + 1) * absMinFee;
        return fee + additionalFee;
    }

    function takeFee(address _feeFrom, uint _value, string _reference) noValue() checkAccess("fee") returns(bool) {
        return _transferFee(_feeFrom, _value, _reference);
    }

    function _transfer(address _to, uint _value) internal returns(bool, bool) {
        uint startGas = msg.gas + transferCallGas;
        uint fee = calculateFee(_value);
        if (!_transferFee(msg.sender, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transfer(_to, _value);
        _disallow();
        if (!success) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function _transferFrom(address _from, address _to, uint _value) internal returns(bool, bool) {
        uint startGas = msg.gas + transferFromCallGas;
        _allow();
        uint fee = calculateFee(_value);
        if (!_transferFee(_from, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferFrom(_from, _to, _value);
        _disallow();
        if (!success) {
            return _returnFee(_from, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function _transferToICAP(bytes32 _icap, uint _value) internal returns(bool, bool) {
        uint startGas = msg.gas + transferToICAPCallGas;
        uint fee = calculateFee(_value);
        if (!_transferFee(msg.sender, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferToICAP(_icap, _value);
        _disallow();
        if (!success) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function _transferFromToICAP(address _from, bytes32 _icap, uint _value) internal returns(bool, bool) {
        uint startGas = msg.gas + transferFromToICAPCallGas;
        uint fee = calculateFee(_value);
        if (!_transferFee(_from, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferFromToICAP(_from, _icap, _value);
        _disallow();
        if (!success) {
            return _returnFee(_from, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function _transferWithReference(address _to, uint _value, string _reference) internal returns(bool, bool) {
        uint startGas = msg.gas + transferWithReferenceCallGas;
        uint additionalGas = _stringGas(_reference);
        uint fee = calculateFeeDynamic(_value, additionalGas);
        if (!_transferFee(msg.sender, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferWithReference(_to, _value, _reference);
        _disallow();
        if (!success) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas + additionalGas));
    }

    function _transferFromWithReference(address _from, address _to, uint _value, string _reference) internal returns(bool, bool) {
        uint startGas = msg.gas + transferFromWithReferenceCallGas;
        uint additionalGas = _stringGas(_reference);
        uint fee = calculateFeeDynamic(_value, additionalGas);
        if (!_transferFee(_from, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferFromWithReference(_from, _to, _value, _reference);
        _disallow();
        if (!success) {
            return _returnFee(_from, fee);
        }
        return (true, _applyRefund(startGas + additionalGas));
    }

    function _transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) internal returns(bool, bool) {
        uint startGas = msg.gas + transferToICAPWithReferenceCallGas;
        uint additionalGas = _stringGas(_reference);
        uint fee = calculateFeeDynamic(_value, additionalGas);
        if (!_transferFee(msg.sender, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferToICAPWithReference(_icap, _value, _reference);
        _disallow();
        if (!success) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas + additionalGas));
    }

    function _transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) internal returns(bool, bool) {
        uint startGas = msg.gas + transferFromToICAPWithReferenceCallGas;
        uint additionalGas = _stringGas(_reference);
        uint fee = calculateFeeDynamic(_value, additionalGas);
        if (!_transferFee(_from, fee, "Transfer fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.transferFromToICAPWithReference(_from, _icap, _value, _reference);
        _disallow();
        if (!success) {
            return _returnFee(_from, fee);
        }
        return (true, _applyRefund(startGas + additionalGas));
    }

    function _approve(address _spender, uint _value) internal returns(bool, bool) {
        uint startGas = msg.gas + approveCallGas;
        // Don't take fee when enabling fee taking.
        // Don't refund either.
        if (_spender == address(this)) {
            return (super.approve(_spender, _value), false);
        }
        uint fee = calculateFee(0);
        if (!_transferFee(msg.sender, fee, "Approve fee")) {
            return (false, false);
        }
        _allow();
        bool success = super.approve(_spender, _value);
        _disallow();
        if (!success) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function _setCosignerAddress(address _cosigner) internal returns(bool, bool) {
        uint startGas = msg.gas + setCosignerCallGas;
        uint fee = calculateFee(0);
        if (!_transferFee(msg.sender, fee, "Cosigner fee")) {
            return (false, false);
        }
        if (!super.setCosignerAddress(_cosigner)) {
            return _returnFee(msg.sender, fee);
        }
        return (true, _applyRefund(startGas));
    }

    function transfer(address _to, uint _value) returns(bool) {
        bool success;
        (success,) = _transfer(_to, _value);
        return success;
    }

    function transferFrom(address _from, address _to, uint _value) returns(bool) {
        bool success;
        (success,) = _transferFrom(_from, _to, _value);
        return success;
    }

    function transferToICAP(bytes32 _icap, uint _value) returns(bool) {
        bool success;
        (success,) = _transferToICAP(_icap, _value);
        return success;
    }

    function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) {
        bool success;
        (success,) = _transferFromToICAP(_from, _icap, _value);
        return success;
    }

    function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
        bool success;
        (success,) = _transferWithReference(_to, _value, _reference);
        return success;
    }

    function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) {
        bool success;
        (success,) = _transferFromWithReference(_from, _to, _value, _reference);
        return success;
    }

    function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) {
        bool success;
        (success,) = _transferToICAPWithReference(_icap, _value, _reference);
        return success;
    }

    function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) {
        bool success;
        (success,) = _transferFromToICAPWithReference(_from, _icap, _value, _reference);
        return success;
    }

    function approve(address _spender, uint _value) returns(bool) {
        bool success;
        (success,) = _approve(_spender, _value);
        return success;
    }

    function setCosignerAddress(address _cosigner) returns(bool) {
        bool success;
        (success,) = _setCosignerAddress(_cosigner);
        return success;
    }

    function checkTransfer(address _to, uint _value) constant returns(bool, bool) {
        return _transfer(_to, _value);
    }

    function checkTransferFrom(address _from, address _to, uint _value) constant returns(bool, bool) {
        return _transferFrom(_from, _to, _value);
    }

    function checkTransferToICAP(bytes32 _icap, uint _value) constant returns(bool, bool) {
        return _transferToICAP(_icap, _value);
    }

    function checkTransferFromToICAP(address _from, bytes32 _icap, uint _value) constant returns(bool, bool) {
        return _transferFromToICAP(_from, _icap, _value);
    }

    function checkTransferWithReference(address _to, uint _value, string _reference) constant returns(bool, bool) {
        return _transferWithReference(_to, _value, _reference);
    }

    function checkTransferFromWithReference(address _from, address _to, uint _value, string _reference) constant returns(bool, bool) {
        return _transferFromWithReference(_from, _to, _value, _reference);
    }

    function checkTransferToICAPWithReference(bytes32 _icap, uint _value, string _reference) constant returns(bool, bool) {
        return _transferToICAPWithReference(_icap, _value, _reference);
    }

    function checkTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) constant returns(bool, bool) {
        return _transferFromToICAPWithReference(_from, _icap, _value, _reference);
    }

    function checkApprove(address _spender, uint _value) constant returns(bool, bool) {
        return _approve(_spender, _value);
    }

    function checkSetCosignerAddress(address _cosigner) constant returns(bool, bool) {
        return _setCosignerAddress(_cosigner);
    }

    function checkForward(bytes _data) constant returns(bool, bool) {
        return _forward(allowedForwards[sha3(_data[0], _data[1], _data[2], _data[3])], _data);
    }

    function _forward(address _to, bytes _data) internal returns(bool, bool) {
        uint startGas = msg.gas + forwardCallGas;
        uint additionalGas = (_data.length * 50);  // 50 gas per byte;
        if (_to == 0x0) {
            return (false, _safeFalse());
        }
        uint fee = calculateFeeDynamic(0, additionalGas);
        if (!_transferFee(msg.sender, fee, "Forward fee")) {
            return (false, false);
        }
        if (!_to.call.value(msg.value)(_data)) {
            _returnFee(msg.sender, fee);
            return (false, _safeFalse());
        }
        return (true, _applyRefund(startGas + additionalGas));
    }

    function () returns(bool) {
        bool success;
        (success,) = _forward(allowedForwards[sha3(msg.sig)], msg.data);
        return success;
    }

    function emitTransfer(address _from, address _to, uint _value) onlyMultiAsset() {
        Transfer(_from, _to, _value);
        if (__isAllowed) {
            return;
        }
        if (feeAddress == 0x0 || _to == feeAddress || _from == feeAddress) {
            return;
        }
        if (_transferFee(_from, calculateFee(_value), "Transfer fee")) {
            return;
        }
        throw;
    }

    function emitApprove(address _from, address _spender, uint _value) onlyMultiAsset() {
        Approve(_from, _spender, _value);
        if (__isAllowed) {
            return;
        }
        if (feeAddress == 0x0 || _spender == address(this)) {
            return;
        }
        if (_transferFee(_from, calculateFee(0), "Approve fee")) {
            return;
        }
        throw;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"checkTransferFromToICAP","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"multiAsset","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_msgSig","type":"bytes4"},{"name":"_forward","type":"address"}],"name":"setForward","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"checkTransferToICAPWithReference","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"type":"function"},{"constant":true,"inputs":[],"name":"setCosignerCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_data","type":"bytes"}],"name":"checkForward","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_stackDepthLib","type":"address"}],"name":"setupStackDepthLib","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferFromToICAPCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"txGasPriceLimit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"approveCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprove","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransfer","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"updateRefundGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_feeAddress","type":"address"}],"name":"setupFee","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_multiAsset","type":"address"},{"name":"_symbol","type":"bytes32"}],"name":"init","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_treasury","type":"address"},{"name":"_txGasPriceLimit","type":"uint256"}],"name":"setupTreasury","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"feeAddress","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"absMaxFee","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"refundGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"ambiC","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferToICAPWithReferenceCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferFromCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"treasury","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromWithReference","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_transfer","type":"uint256"},{"name":"_transferFrom","type":"uint256"},{"name":"_transferToICAP","type":"uint256"},{"name":"_transferFromToICAP","type":"uint256"},{"name":"_transferWithReference","type":"uint256"},{"name":"_transferFromWithReference","type":"uint256"},{"name":"_transferToICAPWithReference","type":"uint256"},{"name":"_transferFromToICAPWithReference","type":"uint256"},{"name":"_approve","type":"uint256"},{"name":"_forward","type":"uint256"},{"name":"_setCosigner","type":"uint256"}],"name":"setOperationsCallGas","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"sendToOwner","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"forwardCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferToICAP","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"isImmortal","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferToICAPWithReference","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_ambi","type":"address"},{"name":"_name","type":"bytes32"}],"name":"setAmbiAddress","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferFromWithReferenceCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"feePercent","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_cosigner","type":"address"}],"name":"setCosignerAddress","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"checkTransfer","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"checkTransferToICAP","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"allowedForwards","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes32"}],"type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"calculateFee","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferWithReferenceCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferFromToICAPWithReference","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferFromToICAPWithReferenceCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"}],"name":"transferFromToICAP","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"remove","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"transferWithReference","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"absMinFee","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferToICAPCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"_cosigner","type":"address"}],"name":"checkSetCosignerAddress","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_icap","type":"bytes32"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"checkTransferFromToICAPWithReference","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferCallGas","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"},{"name":"_additionalGas","type":"uint256"}],"name":"calculateFeeDynamic","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"checkTransferFrom","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"checkTransferFromWithReference","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"checkTransferWithReference","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_feeFrom","type":"address"},{"name":"_value","type":"uint256"},{"name":"_reference","type":"string"}],"name":"takeFee","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_absMinFee","type":"uint256"},{"name":"_feePercent","type":"uint256"},{"name":"_absMaxFee","type":"uint256"}],"name":"setFeeStructure","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"checkApprove","outputs":[{"name":"","type":"bool"},{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"immortality","outputs":[{"name":"","type":"bool"}],"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approve","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a60ff02191681556404e3b29200600555619c40600655615208600781905560088190556009819055600a819055600b819055600c819055600d819055600e819055600f8190556010819055601155612d3490819061006a90396000f3606060405236156102e95760e060020a6000350462a7d6b3811461038e578063029a8bf7146103c257806302aa274b146103d4578063058026d01461041e57806306fdde031461049a5780630787006d146104a3578063095ea7b3146104ac578063119aa5c8146104f757806312ab72421461063157806312b0b3ca1461066457806318160ddd1461066d5780631a1feae1146106e357806321538acb146106ec57806321f8a721146106f5578063233850891461076d57806323b872dd146107f457806323de66511461083b57806324c65f35146108c157806326881518146108dd5780632cc0b254146108f85780633f2f15961461091857806341275358146109c3578063431e83ce146109d55780634f6d3aed146109de57806352959d16146109e75780635b36fea6146109f9578063604f87d814610a0257806361d027b314610a0b5780636461fe3914610a1d5780636522893414610a955780636620a93514610ad157806370a0823114610aef57806371ce9a4a14610b77578063733480b714610b8057806377f18ed314610bb057806377fe38a414610bc35780637948f52314610c1e5780637afa838814610c435780637fd6f15c14610c4c57806382fc49b814610c5557806388e072b214610c805780638e4afa5114610cb05780639407a68814610cc757806395d89b4114610ce857806399a5d74714610cf1578063a39385de14610d1a578063a48a663c14610d23578063a4b7459a14610d9b578063a525f42c14610da4578063a7f4377914610dbf578063a9059cbb14610e6f578063ac35caee14610e86578063ace3088314610efc578063afa560b014610f05578063b623f5e514610f0e578063bd8c1d3314610f21578063be78bb7a14610f7e578063c1cc077514610f87578063c5575ef014610fa0578063c6e0c90814610fbb578063cbcaacab14611018578063d422e4e014611073578063dd62ed3e146110d4578063e5782fd514611166578063ede8ebf314611187578063f7c3ee7a1461119e575b61125160408051600160e060020a031960008035919091168252825191829003600401822081526017602090815283822054601f369081018390048302850183019095528484529193849361126593600160a060020a03169290918591819084018382808284375050505050505b600060006000600060006010600050545a0192508551603202915086600160a060020a0316600014156112cb5760006112bc6112de565b611270600435602435604435600060006114808585855b60006000600060006000600d600050545a019250611fc986610cf8565b61128b600154600160a060020a031681565b6112516004356024356000600034111561149b5761149b33345b61208882825b604051600090600160a060020a0384169083908381818185876185025a03f1925050509050611495565b604080516020604435600481810135601f8101849004840285018401909552848452611270948135946024803595939460649492939101918190840183828082843750949650505050505050600060006114808585855b600060006000600060006000600c600050545a0193506120a8875b8051604b0261157d565b6112a860045481565b6112a860115481565b6112516004356024356000600061148c84845b60006000600060006000600f600050545a01925030600160a060020a031687600160a060020a031614156121535761215d878761216e565b6040805160206004803580820135601f81018490048402850184019095528484526112709491936024939092918401919081908401838280828437509496505050505050506000600061156b6017600050600085600081518110156100025790602001015160f860020a900460f860020a0286600181518110156100025790602001015160f860020a900460f860020a0287600281518110156100025790602001015160f860020a900460f860020a02886003815181101561000257604080516023909301517fff0000000000000000000000000000000000000000000000000000000000000096871684529486166001840152928516600283015260f860020a938490049093029390931691830191909152805191829003600401909120909152602091909152822054600160a060020a031684610357565b61125160043560008054600160a060020a03168082141561157b57508054600160a060020a03191682179055600161157d565b6112a8600d5481565b6112a8604080516001546002547fb524abcf00000000000000000000000000000000000000000000000000000000835260048301529151600092600160a060020a03169163b524abcf916024828101926020929190829003018187876161da5a03f1156100025750506040515191506115869050565b6112a860055481565b6112a8600f5481565b61128b600435604080516003547f2ade6c36000000000000000000000000000000000000000000000000000000008252600482018490529151600092600160a060020a031691632ade6c36916024828101926020929190829003018187876161da5a03f11561000257505060405151915061157d9050565b6112ba600435602435604435600154600160a060020a039081163390911614156107ef5781600160a060020a031683600160a060020a03167f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e836040518082815260200191505060405180910390a360165460a060020a900460ff1615611589575b505050565b611251600435602435604435600060006116148585855b600060006000600060006009600050545a01925061220a5b6016805460a060020a60ff02191660a060020a179055565b6112ba600435602435604435600154600160a060020a039081163390911614156107ef5781600160a060020a031683600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360165460a060020a900460ff1615611623576107ef565b6112a860006000600060003411156117125761171233346103ee565b611251600435600060003411156117fb576117fb33346103ee565b6112516004356024356000600060003411156118a6576118a633346103ee565b61125160043560243560035460009060d960020a6430b236b4b70290600160a060020a031682148015906109ad5750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b156114935782600014156119555761197f6112de565b61128b601654600160a060020a031681565b6112a860145481565b6112a860065481565b61128b600354600160a060020a031681565b6112a8600c5481565b6112a860095481565b61128b601554600160a060020a031681565b604080516020606435600481810135601f81018490048402850184019095528484526112519481359460248035956044359560849492019190819084018382808284375094965050505050505060006000611991868686865b600060006000600060006000600a600050545a01935061232b87610490565b61125160043560243560443560643560843560a43560c43560e435610104356101243561014435600060003411156119ad576119ad33346103ee565b61125160006000600060006000341115611a7d57611a7d33346103ee565b6112a86004355b604080516001546002547f4d30b6be000000000000000000000000000000000000000000000000000000008352600160a060020a038581166004850152602484019190915292516000939190911691634d30b6be916044828101926020929190829003018187876161da5a03f11561000257505060405151915061157d9050565b6112a860105481565b6112516004356024356000600061148c84845b60006000600060006000600b600050545a0192506123c786610cf8565b61125160035460a060020a900460ff1681565b604080516020604435600481810135601f810184900484028501840190955284845261125194813594602480359593946064949293910191819084018382808284375094965050505050505060006000611614858585610475565b6112516004356024356003546000908190600160a060020a03168114611b2d57611493565b6112a8600a5481565b6112a860135481565b61125160043560006000611574835b60006000600060006011600050545a01915061244b6000610cf8565b61127060043560243560006000611c2284845b600060006000600060006007600050545a0192506124d886610cf8565b61127060043560243560006000611c228484610b93565b61128b600435601760205260009081526040902054600160a060020a031681565b6112a860025481565b6112a86004355b6013546012546000916127109084020490811015611c2e57601254915061157b565b6112a860085481565b604080516020606435600481810135601f81018490048402850184019095528484526112519481359460248035956044359560849492019190819084018382808284375094965050505050505060006000611991868686865b600060006000600060006000600e600050545a01935061256187610490565b6112a8600e5481565b611251600435602435604435600060006116148585856103a5565b61125160035460009060d960020a6437bbb732b90290600160a060020a03168214801590610e4e5750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b1561126c5760035460a060020a900460ff1615611c4a576000915050611586565b6112516004356024356000600061148c8484610c93565b604080516020604435600481810135601f8101849004840285018401909552848452611251948135946024803595939460649492939101918190840183828082843750949650505050505050600060006116148585855b6000600060006000600060006008600050545a0193506125d587610490565b6112a860125481565b6112a8600b5481565b6112706004356000600061156b83610c64565b604080516020606435600481810135601f81018490048402850184019095528484526112709481359460248035956044359560849492019190819084018382808284375094965050505050505060006000611c5686868686610d7c565b6112a860075481565b6112a86004356024355b600060006000611c6385610cf8565b6112706004356024356044356000600061148085858561080b565b604080516020606435600481810135601f81018490048402850184019095528484526112709481359460248035956044359560849492019190819084018382808284375094965050505050505060006000611c5686868686610a76565b604080516020604435600481810135601f810184900484028501840190955284845261127094813594602480359593946064949293910191819084018382808284375094965050505050505060006000611480858585610edd565b604080516020604435600481810135601f810184900484028501840190955284845261125194813594602480359593946064949293910191819084018382808284375094965050505050505060006000341115611c8157611c8133346103ee565b6112a8600435602435604080516001546002547f1c8d5d38000000000000000000000000000000000000000000000000000000008352600160a060020a0386811660048501528581166024850152604484019190915292516000939190911691631c8d5d38916064828101926020929190829003018187876161da5a03f1156100025750506040515191506114959050565b61125160043560243560443560006000341115611d3157611d3133346103ee565b61127060043560243560006000611c2284846104bf565b61125160035460009060d960020a6437bbb732b90290600160a060020a0316821480159061122d5750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b1561126c5750506003805460a060020a60ff02191660a060020a1790556001611586565b604080519115158252519081900360200190f35b5091508190505b5090565b60408051921515835290151560208301528051918290030190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b005b945094505b5050509250929050565b6112f3600083610f91565b505060006112bc5b600060003411156115825761158233346103ee565b90506113763382604060405190810160405280600b81526020017f466f7277617264206665650000000000000000000000000000000000000000008152602001505b601654600090600160a060020a031681148061135e5750601654600160a060020a038581169116145b806113695750826000145b15611e0c57506001611c7a565b15156113895760006000945094506112c1565b86600160a060020a03163487604051808280519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156113e25780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876185025a03f192505050151561144e576112d633825b6016546000908190600160a060020a03168114806114325750601654600160a060020a038581169116145b8061143d5750826000145b15611ef65750600090506001611c27565b60016112bc8385015b600060003a6006600050545a850301029050611fb2815b6005546000903a111561229e5761157d565b91509150935093915050565b5091508190505b505b92915050565b60035460d960020a6430b236b4b70290600160a060020a03166000148015906115265750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561149357505060408051600160e060020a031984168152815190819003600401902060009081526017602052208054600160a060020a031916821790556001611495565b91509150915091565b5091508190505b505b919050565b5060005b90565b601654600160a060020a0316600014806115b4575030600160a060020a031682600160a060020a0316145b156115be576107ef565b6115cc836115d66000610cf8565b1561160f576107ef565b60408051808201909152600b81527f417070726f7665206665650000000000000000000000000000000000000000006020820152611335565b610002565b5091508190505b509392505050565b601654600160a060020a03166000148061164b5750601654600160a060020a03908116908316145b806116645750601654600160a060020a03908116908416145b1561166e576107ef565b6115cc8361167b83610cf8565b60408051808201909152600c815260a060020a6b5472616e7366657220666565026020820152611335565b6002600050546040518460e060020a0281526004018084600160a060020a031681526020018381526020018260001916815260200193505050506020604051808303816000876161da5a03f11561000257505060405151905080156117085750805b93505b505b505090565b60035460dc60020a6407365747570290600160a060020a031660001480159061179d5750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561170b575a92503a6006600050545a8503010291506005600050543a11156117ca57600093505061170d565b6117da6611c37937e0800061146e565b15156117ea57600093505061170d565b5a83036006819055935061170d9050565b60035460d960020a6430b236b4b70290600160a060020a03166000148015906118865750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561157b57505060168054600160a060020a03191682179055600161157d565b600154600160a060020a0316600081141561192e5784915081600160a060020a0316632f553d31856040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f1156100025750506040515115159050611936576000925050611493565b50601254620186a084046001010280820192505b505092915050565b5060018054600160a060020a0319168217815560028490559150611493565b60158054600160a060020a03191685179055600583905560003411156119875761198784346103ee565b915050611495565b6001915050611495565b509695505050505050565b505b9b9a5050505050505050505050565b60035460dc60020a6407365747570290600160a060020a0316600014801590611a385750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561199c57505060078b905560098a9055600b899055600d8890556008879055600a869055600c859055600e849055600f83905560108290556011819055600161199e565b604080516001546002547f02571be300000000000000000000000000000000000000000000000000000000835260048301529151600160a060020a0392909216916302571be39160248181019260209290919082900301816000876161da5a03f115610002575050604051519350505030600160a060020a031631905060016000821115611b1257611b0f83836103f4565b90505b600154600160a060020a03166357cfeeee846116a681610af6565b83905030600160a060020a031681600160a060020a0316632ade6c36856040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f11561000257505060405151600160a060020a03169091149050611c025780600160a060020a0316637684937684306040518360e060020a028152600401808360001916815260200182600160a060020a03168152602001925050506020604051808303816000876161da5a03f1156100025750506040515115159050611c025760009150611493565b600483905560038054600160a060020a0319168217905560019150611493565b915091505b9250929050565b601454811115611c4257601454915061157b565b80915061157b565b33600160a060020a0316ff5b9150915094509492505050565b9150611d4c841161191a5781925061192e565b9150505b9392505050565b6003547f666565000000000000000000000000000000000000000000000000000000000090600160a060020a0316600014801590611d215750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561161b57611c76858585611335565b6003547f63726f6e0000000000000000000000000000000000000000000000000000000090600160a060020a0316600014801590611dd15750604080516003546004805460e460020a630a1add51028452908301526024820184905233600160a060020a039081166044840152925192169163a1add5109160648181019260209290919082900301816000876161da5a03f1156100025750506040515190505b1561161b57612710841180611de557508483105b15611df4576000915050611c7a565b50506012839055601382905560148190556001611c7a565b60165460405160015460025460e060020a6331c6c4cf028352600160a060020a03888116600485810191825295821660248601819052604486018a90526064860184905260a060848701908152895160a4880152895195909316966331c6c4cf968c9692958c9590948c949093919260c40191602086810192918291859183918691600091601f850104600f02600301f150905090810190601f168015611ec75780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303816000876161da5a03f115610002575050604051519150611c7a9050565b6016546040805160015460025460e060020a6331c6c4cf028352600160a060020a039485166004840152888516602484015260448301889052606483015260a06084830152600a60a48301527f4665652072657475726e0000000000000000000000000000000000000000000060c4830152915191909216916331c6c4cf9160e480830192602092919082900301816000876161da5a03f1156100025750506040515115159050611fa657610002565b50600090506001611c27565b915061157b565b945094505b505050935093915050565b91506120018883604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b1515612014576000600094509450611fbe565b61201c610823565b612054888888600061272684848460206040519081016040528060008152602001505b6000600034111561287c5761287c33346103ee565b905061206c5b6016805460a060020a60ff0219169055565b80151561207d57611fb98883611407565b6001611fb984611457565b151561209357610002565b5050565b955095505b50505050935093915050565b92506120b48884610f91565b91506120ec3383604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b15156120ff57600060009550955061209c565b612107610823565b61212b89898960006127268484845b6000600034111561296a5761296a33346103ee565b905061213561205a565b801515612146576120973383611407565b6001612097848601611457565b6121836000610cf8565b6000945094506112c1565b6121e487875b6000600034111561272d5761272d33346103ee565b91506121c93383604060405190810160405280600b81526020017f417070726f766520666565000000000000000000000000000000000000000000815260200150611335565b15156121dc5760006000945094506112c1565b612168610823565b90506121ee61205a565b8015156121ff576112bc3383611407565b60016112bc84611457565b61221386610cf8565b915061224b8883604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b151561225e576000600094509450611fbe565b612266610823565b612054888888600061272684848460206040519081016040528060008152602001505b60006000341115612a4a57612a4a33346103ee565b604080516015547ff3fef3a300000000000000000000000000000000000000000000000000000000825232600160a060020a03908116600484015260248301869052925192169163f3fef3a39160448082019260209290919082900301816000876161da5a03f11561000257505060405151915061157d9050565b955095505b5050505094509492505050565b92506123378884610f91565b915061236f8a83604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b151561238257600060009550955061231e565b61238a610823565b61239f8a8a8a8a60006127df85858585612289565b90506123a961205a565b8015156123ba576123198a83611407565b6001612319848601611457565b91506123ff3383604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b15156124125760006000945094506112c1565b61241a610823565b6121e4878760006127ea83836020604051908101604052806000815260200150612116565b935093505b5050915091565b90506124913382604060405190810160405280600c81526020017f436f7369676e6572206665650000000000000000000000000000000000000000815260200150611335565b15156124a4576000600093509350612444565b6124bd85600060003411156127f1576127f133346103ee565b15156124cd5761243f3382611407565b600161243f83611457565b91506125103383604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b15156125235760006000945094506112c1565b61252b610823565b6121e4878760006127ea838360206040519081016040528060008152602001505b60006000341115612b4e57612b4e33346103ee565b925061256d8884610f91565b91506125a58a83604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b15156125b857600060009550955061231e565b6125c0610823565b61239f8a8a8a8a60006127df8585858561203f565b92506125e18884610f91565b91506126193383604060405190810160405280600c815260200160a060020a6b5472616e736665722066656502815260200150611335565b151561262c57600060009550955061209c565b612634610823565b61212b898989600061272684848461254c565b61297257600160009054906101000a9004600160a060020a0316600160a060020a031663a48a663c338686866040518560e060020a0281526004018085600160a060020a0316815260200184600019168152602001838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156126fe5780820380516001836020036101000a031916815260200191505b50955050505050506020604051808303816000876161da5a03f1156100025750506040515190505b9050611c7a565b6127555b6000612a42600032600160a060020a031633600160a060020a031614159050611586565b1561149557604080516001546002547f4f09eba7000000000000000000000000000000000000000000000000000000008352600160a060020a0387811660048501526024840187905260448401919091529251921691634f09eba79160648181019260209290919082900301816000876161da5a03f1156100025750506040515191506114959050565b90505b949350505050565b9050611495565b6127f9612731565b1561157d57604080516001546002547fe82b7cb2000000000000000000000000000000000000000000000000000000008352600160a060020a0386811660048501526024840191909152925192169163e82b7cb29160448181019260209290919082900301816000876161da5a03f11561000257505060405151915061157d9050565b612884612731565b156127e257600160009054906101000a9004600160a060020a0316600160a060020a031663ea98e540868686866040518560e060020a0281526004018085600160a060020a0316815260200184600019168152602001838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f16801561293c5780820380516001836020036101000a031916815260200191505b50955050505050506020604051808303816000876161da5a03f1156100025750506040515191506127e29050565b612647612731565b600160009054906101000a9004600160a060020a0316600160a060020a031663c54876618585856040518460e060020a0281526004018084600019168152602001838152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015612a155780820380516001836020036101000a031916815260200191505b509450505050506020604051808303816000876161da5a03f1156100025750506040515190509050611c7a565b159050611586565b612a52612731565b156127e257600160009054906101000a9004600160a060020a0316600160a060020a031663f0cbe059868686600260005054876040518660e060020a0281526004018086600160a060020a0316815260200185600160a060020a0316815260200184815260200183600019168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015612b1f5780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303816000876161da5a03f1156100025750506040515191506127e29050565b612b56612731565b612c4f57600160009054906101000a9004600160a060020a0316600160a060020a03166331c6c4cf338686600260005054876040518660e060020a0281526004018086600160a060020a0316815260200185600160a060020a0316815260200184815260200183600019168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015612c225780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303816000876161da5a03f115610002575050604051519050612726565b600160009054906101000a9004600160a060020a0316600160a060020a03166364ef212e8585600260005054866040518560e060020a0281526004018085600160a060020a0316815260200184815260200183600019168152602001806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156126fe5780820380516001836020036101000a0319168152602001915050955050505050506020604051808303816000876161da5a03f1156100025750506040515190509050611c7a56
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.