Contract 0xB18713Ac02Fc2090c0447e539524a5c76f327a3b 7

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x08baff1575278a16ec32d4d3ccb02147de47a48724b927b070e545a88a673e63Makeoffer218059012021-11-26 2:18:134 days 18 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.0023303
0x7603d6716fc2b8d010d541f8d3449a8df536de86359d20e5c7d4de2c486fafa2Makeoffer217429342021-11-24 10:54:246 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349509
0xce71c6ad9253ec0f5823800d747bae1a3803f31ac49dae72e09e94b00703433fDeleteoffer217427542021-11-24 10:48:126 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0xb25717d1ac30740afd2f2f4a411ca3161fcebfbf68037cc971c7541e748afffaDeleteoffer217426602021-11-24 10:45:006 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0x4369cb7708e608ca19c308bb8605e0bf4b0f84de74ba03fe9e290b13de44fce8Deleteoffer217426472021-11-24 10:44:306 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0xa77c637124eb3ce37c75c1b14b5f0c86d904805b5ef5f41211c5321ac7577b9cDeleteoffer217426292021-11-24 10:43:546 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0xcc9138f9368aef775354aba1c0360ced8e99954ee99cda38000d1e6a5f5df6ffMakeoffer215270772021-11-18 20:01:2012 days 1 hr ago0xca344178ff4d740c7227f97c56575c4879d3669c IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349509
0xbe9602a3189ed2d40f94273018a039d373f2b44d408d9cc9623bcfac66b305f2Makeoffer214823952021-11-17 16:10:0013 days 4 hrs ago0x9b17d04d46795d2d878c74774c9a29c0c43d25b1 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349545
0x3332d65634643aeca13a8641072d9822aa0a2869912e8b668a4baac9737f879dMakeoffer214819182021-11-17 15:53:2213 days 5 hrs ago0x9b17d04d46795d2d878c74774c9a29c0c43d25b1 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.014331345
0x3932a31f573a990768b6fafb5871198baf2c3990d1745a57970f50554d66fe96Makeoffer213565732021-11-14 11:02:2316 days 10 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.0008856
0xf6bbcaf0b2da6a3af35f1222750a9cd12e79c29ee2a655ab08b1a6b1dd31ebeaMakeoffer210620632021-11-06 19:38:3124 days 1 hr ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349581
0x4f840dddafb44190fe8359d297b2169cd65059adf9ff9ef34a7e2c6cb6d9b11fDeleteoffer210619912021-11-06 19:36:0324 days 1 hr ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0xf045ad2779387b94e94f62c356be850135322db8b59747a0d8e6108b6ce02141Makeoffer210613052021-11-06 19:10:5924 days 1 hr ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349581
0x3cf34cd366a84ae4cedc7b9c63427cb2f26c681871a5454b5b24de931ac3fd71Makeoffer210611512021-11-06 19:05:4324 days 1 hr ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.003845391
0x6aa5841dbdde7d460770d5ea41748a8662d390521ce7d68cd1af8909d2c3ec10Deleteoffer210605942021-11-06 18:46:3324 days 2 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00063747
0x225d6da8ca77a9a8e6c0225bfa64289a78a5af22adee53196674203b94994639Buy210594862021-11-06 18:03:3624 days 2 hrs ago0x6ea605f4dc6ab879321173980cc22dbeccafb24a IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00226299
0xe8706d8af770406d75eeec7733d67bae54ee929fef7e0eefacb0364f38452e58Makeoffer210591642021-11-06 17:52:3224 days 3 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349509
0xb30ff7335647c2e4be0fae99e481d1721859d9c0fdb0e8af2e12820c7f8186d5Buy210588432021-11-06 17:37:1424 days 3 hrs ago0x6ea605f4dc6ab879321173980cc22dbeccafb24a IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00226299
0x784f1ec154fbf3ff2837455ee7a771520810feb7964cc13cbda8a780a510f8f1Buy210588432021-11-06 17:37:1424 days 3 hrs ago0x6ea605f4dc6ab879321173980cc22dbeccafb24a IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.002489289
0xa5edb31d5f5c0cc399cd4c18dd7ba5b72a2d58b9ab3b3755fea13538f76c55d8Buy210580202021-11-06 17:08:5224 days 3 hrs ago0x6ea605f4dc6ab879321173980cc22dbeccafb24a IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00277563
0xdc6f5f998ed0595e243afcedc78860c03bbc0063b3af46694ec5d2272e12c7fcMakeoffer210577822021-11-06 16:59:2624 days 4 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00088452
0x5e445bc130374e17142ea70f2fddde554f7aeec48bb47ead41d48a8e43d47250Makeoffer210577192021-11-06 16:57:1624 days 4 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.003844599
0xf6c98a667647f8fb1d6c8690b87950bb08b2623bd07689a00288f1c0eeedeef3Makeoffer210576732021-11-06 16:55:4424 days 4 hrs ago0x375da94131428a620b08e96904a885430070f040 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.003844599
0xa81501cafd737b87858a5a964a2ccb6bb156626865257a111fb2a9374fe1e02fMakeoffer210352812021-11-06 3:07:1624 days 17 hrs ago0x9bdbdb4a8f7f816c87a67f5281484ed902c6b942 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00349617
0x1023a28763aed5474b03b075f5aa85ad497e16d4e35ac5ccfc2b1cae76b2ccb6Buy202443072021-10-15 13:24:2246 days 7 hrs ago0x77f1894552a6336bd0fb2f0e904d30858f67cfa4 IN  0xb18713ac02fc2090c0447e539524a5c76f327a3b0 MATIC0.00853713
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SWAPCAT

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.20;

// 😸 WWW.SWAP.CAT 😸
//
// a simple DEX for fixed price token offers directly from wallet to wallet
//
// users can set up erc20 tokens for sale for any other erc20
//
// funds stay in users wallets, dex contract gets a spending allowance
//
// payments go directly into the sellers wallet
//
// this DEX takes no fees
//
// mostly useful to provide stablecoin liquidity or sell tokens for a premium
//
// offers have to be adjusted by the user if prices change
//




// we need the erc20 interface to access the tokens details

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    // no return value on transfer and transferFrom to tolerate old erc20 tokens
    // we work around that in the buy function by checking balance twice
    function transferFrom(address sender, address recipient, uint256 amount) external;
    function transfer(address to, uint256 amount) external;
    function decimals() external view returns (uint256);
    function symbol() external view returns (string);
    function name() external view returns (string);

}





contract SWAPCAT {

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// lets make mappings to store offer data

    mapping (uint24 => uint256) internal price;
    mapping (uint24 => address) internal offertoken;
    mapping (uint24 => address) internal buyertoken;
    mapping (uint24 => address) internal seller;
    uint24 internal offercount;


// admin address, receives donations and can move stuck funds, nothing else    
    address internal admin = 0xc965E082B0082449047501032F0E9e7F3DC5Cc12;






////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// set up your erc20 offer. give token addresses and the price in baseunits
// to change a price simply call this again with the changed price + offerid

function makeoffer(address _offertoken, address _buyertoken, uint256 _price, uint24 _offerid) public returns (uint24) {

// if no offerid is given a new offer is made, if offerid is given only the offers price is changed if owner matches
        if(_offerid==0)
                    {
                    _offerid=offercount;
                    offercount++;seller[_offerid]=msg.sender;
                    offertoken[_offerid]=_offertoken;
                    buyertoken[_offerid]=_buyertoken;
                    }
                    else
                    {
                    require(seller[_offerid]==msg.sender,"only original seller can change offer!");
                    }
        price[_offerid]=_price;

// returns the offerid
        return _offerid;
    }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////









////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// delete an offer

function deleteoffer(uint24 _offerid) public returns (string) {
        require(seller[_offerid]==msg.sender,"only original seller can change offer!");
        delete seller[_offerid];
        delete offertoken[_offerid];
        delete buyertoken[_offerid];
        delete price[_offerid];
        return "offer deleted";
    }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// return the total number of offers to loop through all offers
// its the web frontends job to keep track of offers

function getoffercount() public view returns (uint24){ return offercount-1;}

//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////






////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// get a tokens name, symbol and decimals 

    function tokeninfo(address _tokenaddr) public view returns (uint256, string, string) {
        IERC20 tokeni = IERC20(_tokenaddr);
        return (tokeni.decimals(),tokeni.symbol(),tokeni.name());
        }   
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////











////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// get a single offers details

    function showoffer(uint24 _offerid) public view returns (address, address, address, uint256, uint256) {
        

        IERC20 offertokeni = IERC20(offertoken[_offerid]);


// get offertokens balance and allowance, whichever is lower is the available amount        
        uint256 availablebalance = offertokeni.balanceOf(seller[_offerid]);
        uint256 availableallow = offertokeni.allowance(seller[_offerid],address(this));

        if(availableallow<availablebalance){availablebalance = availableallow;}

        return (offertoken[_offerid],buyertoken[_offerid],seller[_offerid],price[_offerid],availablebalance);
        
    }   
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// return the price in buyertokens for the specified amount of offertokens

function pricepreview(uint24 _offerid, uint256 _amount) public view returns (uint256) {
        IERC20 offertokeni = IERC20(offertoken[_offerid]);
        return  _amount * price[_offerid] / (uint256(10) ** offertokeni.decimals())+1;
    }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////






////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// return the amount in offertokens for the specified amount of buyertokens, for debugging

//function pricepreviewreverse(uint24 _offerid, uint256 _amount) public view returns (uint256) {
//        IERC20 offertokeni = IERC20(offertoken[_offerid]);
//        return  _amount * (uint256(10) ** offertokeni.decimals()) / price[_offerid];
//    }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////






////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// the actual exchange function
// the buyer must bring the price correctly to ensure no frontrunning / changed offer
// if the offer is changed in meantime, it will not execute

function buy(uint24 _offerid, uint256 _offertokenamount, uint256 _price) public returns (string) {

        IERC20 offertokeninterface = IERC20(offertoken[_offerid]);
        IERC20 buyertokeninterface = IERC20(buyertoken[_offerid]);


// given price is being checked with recorded data from mappings
       require(price[_offerid] == _price,"offer price wrong");


// calculate the price of the order
        uint256 buyertokenAmount =  _offertokenamount * _price / (uint256(10) ** offertokeninterface.decimals())+1;


////// these 4 checks have been spared out since the final check suffices, this save ~50000 gas
////        // check if the buyers allowance and balance are right
////                require(buyertokeninterface.allowance(msg.sender, address(this)) >= buyertokenAmount, "Check the buyers token allowance");
////                require(buyertokeninterface.balanceOf(msg.sender) >= buyertokenAmount,"buyer not enough to pay");
////        // check if the sellers allowance and balance are right        
////                require(offertokeninterface.allowance(seller[_offerid], address(this)) >= _offertokenamount, "Check the sellers token allowance");
////                require(offertokeninterface.balanceOf(seller[_offerid]) >= _offertokenamount,"seller not enough on stock");
  
        
// some old erc20 tokens give no return value so we must work around by getting their balance before and after the exchange        
        uint256 oldbuyerbalance = buyertokeninterface.balanceOf(msg.sender);
        uint256 oldsellerbalance = offertokeninterface.balanceOf(seller[_offerid]);


// finally do the exchange        
        buyertokeninterface.transferFrom(msg.sender,seller[_offerid], buyertokenAmount);
        offertokeninterface.transferFrom(seller[_offerid],msg.sender,_offertokenamount);


// now check if the balances changed on both accounts.
// we do not check for exact amounts since some tokens behave differently with fees, burnings, etc
// we assume if both balances are higher than before all is good
        require(oldbuyerbalance > buyertokeninterface.balanceOf(msg.sender),"buyer error");
        require(oldsellerbalance > offertokeninterface.balanceOf(seller[_offerid]),"seller error");
        return "tokens exchanged. ENJOY!";
    }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////












////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// in case someone wrongfully directly sends erc20 to this contract address, the admin can move them out
function losttokens(address token) public {
        IERC20 tokeninterface = IERC20(token);
        tokeninterface.transfer(admin,tokeninterface.balanceOf(address(this)));
}
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// straight ether payments to this contract are considered donations. thank you!
function () public payable {admin.transfer(address(this).balance);        }
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////






}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_tokenaddr","type":"address"}],"name":"tokeninfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"string"},{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"losttokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offerid","type":"uint24"}],"name":"deleteoffer","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offertoken","type":"address"},{"name":"_buyertoken","type":"address"},{"name":"_price","type":"uint256"},{"name":"_offerid","type":"uint24"}],"name":"makeoffer","outputs":[{"name":"","type":"uint24"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_offerid","type":"uint24"}],"name":"showoffer","outputs":[{"name":"","type":"address"},{"name":"","type":"address"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_offerid","type":"uint24"},{"name":"_amount","type":"uint256"}],"name":"pricepreview","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_offerid","type":"uint24"},{"name":"_offertokenamount","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"buy","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getoffercount","outputs":[{"name":"","type":"uint24"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

608060405260048054630100000060b860020a03191676c965e082b0082449047501032f0e9e7f3dc5cc1200000017905534801561003c57600080fd5b5061112c8061004c6000396000f3006080604052600436106100745763ffffffff60e060020a60003504166364473a1281146100ba578063657ce0ef146101c05780636a540b74146101e357806374759ae41461027557806394b1a131146102bf578063c2250f8b14610316578063e3ca70b014610348578063e3fb4aea1461036b575b600454604051600160a060020a0363010000009092049190911690303180156108fc02916000818181858888f193505050501580156100b7573d6000803e3d6000fd5b50005b3480156100c657600080fd5b506100db600160a060020a0360043516610380565b604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561012257818101518382015260200161010a565b50505050905090810190601f16801561014f5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561018257818101518382015260200161016a565b50505050905090810190601f1680156101af5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156101cc57600080fd5b506101e1600160a060020a03600435166105ab565b005b3480156101ef57600080fd5b5061020062ffffff600435166106a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023a578181015183820152602001610222565b50505050905090810190601f1680156102675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028157600080fd5b506102a7600160a060020a036004358116906024351660443562ffffff606435166107d2565b6040805162ffffff9092168252519081900360200190f35b3480156102cb57600080fd5b506102dc62ffffff60043516610922565b60408051600160a060020a039687168152948616602086015292909416838301526060830152608082019290925290519081900360a00190f35b34801561032257600080fd5b5061033662ffffff60043516602435610ad1565b60408051918252519081900360200190f35b34801561035457600080fd5b5061020062ffffff60043516602435604435610ba0565b34801561037757600080fd5b506102a76110f1565b6000606080600084905080600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156103c857600080fd5b505af11580156103dc573d6000803e3d6000fd5b505050506040513d60208110156103f257600080fd5b5051604080517f95d89b410000000000000000000000000000000000000000000000000000000081529051600160a060020a038416916395d89b4191600480830192600092919082900301818387803b15801561044e57600080fd5b505af1158015610462573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561048b57600080fd5b8101908080516401000000008111156104a357600080fd5b820160208101848111156104b657600080fd5b81516401000000008111828201871017156104d057600080fd5b505092919050505082600160a060020a03166306fdde036040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561051657600080fd5b505af115801561052a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561055357600080fd5b81019080805164010000000081111561056b57600080fd5b8201602081018481111561057e57600080fd5b815164010000000081118282018710171561059857600080fd5b50959b949a509850929650505050505050565b600480546040805160e060020a6370a082310281523093810193909352518392600160a060020a038085169363a9059cbb9363010000009091049091169184916370a08231916024808201926020929091908290030181600087803b15801561061357600080fd5b505af1158015610627573d6000803e3d6000fd5b505050506040513d602081101561063d57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915251604480830192600092919082900301818387803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b505050505050565b62ffffff8116600090815260036020526040902054606090600160a060020a03163314610744576040805160e560020a62461bcd02815260206004820152602660248201527f6f6e6c79206f726967696e616c2073656c6c65722063616e206368616e67652060448201527f6f66666572210000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5062ffffff166000908152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff19908116909155600183528184208054821690556002835281842080549091169055828252808320929092558151808301909252600d82527f6f666665722064656c65746564000000000000000000000000000000000000009082015290565b600062ffffff82161515610869576004805462ffffff198116600162ffffff92831681810190931691909117909255600081815260036020908152604080832080543373ffffffffffffffffffffffffffffffffffffffff199182161790915594825280832080548616600160a060020a038c81169190911790915560029092529091208054909316908716179091559150610903565b62ffffff8216600090815260036020526040902054600160a060020a03163314610903576040805160e560020a62461bcd02815260206004820152602660248201527f6f6e6c79206f726967696e616c2073656c6c65722063616e206368616e67652060448201527f6f66666572210000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5062ffffff811660009081526020819052604090209190915592915050565b62ffffff81166000908152600160209081526040808320546003835281842054825160e060020a6370a08231028152600160a060020a0391821660048201529251859485948594859416928492839285926370a082319260248084019391929182900301818787803b15801561099757600080fd5b505af11580156109ab573d6000803e3d6000fd5b505050506040513d60208110156109c157600080fd5b505162ffffff8a1660009081526003602090815260408083205481517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820152306024820152915194965087169363dd62ed3e93604480840194938390030190829087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b505050506040513d6020811015610a6b57600080fd5b5051905081811015610a7b578091505b5062ffffff9790971660009081526001602090815260408083205460028352818420546003845282852054938590529190932054600160a060020a039384169b9184169a93909216985090965090945092505050565b62ffffff821660009081526001602090815260408083205481517f313ce5670000000000000000000000000000000000000000000000000000000081529151600160a060020a0390911692839263313ce567926004808301939282900301818887803b158015610b4057600080fd5b505af1158015610b54573d6000803e3d6000fd5b505050506040513d6020811015610b6a57600080fd5b505162ffffff8516600090815260208190526040902054600a9190910a908402811515610b9357fe5b0460010191505092915050565b62ffffff831660009081526001602090815260408083205460028352818420549284905290832054606093600160a060020a03928316939092169190819081908714610c36576040805160e560020a62461bcd02815260206004820152601160248201527f6f666665722070726963652077726f6e67000000000000000000000000000000604482015290519081900360640190fd5b84600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c7457600080fd5b505af1158015610c88573d6000803e3d6000fd5b505050506040513d6020811015610c9e57600080fd5b5051600a0a888802811515610caf57fe5b04600101925083600160a060020a03166370a08231336040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b505050506040513d6020811015610d3a57600080fd5b505162ffffff8a16600090815260036020908152604080832054815160e060020a6370a08231028152600160a060020a03918216600482015291519496508916936370a0823193602480840194938390030190829087803b158015610d9e57600080fd5b505af1158015610db2573d6000803e3d6000fd5b505050506040513d6020811015610dc857600080fd5b505162ffffff8a166000908152600360205260408082205481517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0391821660248201526044810188905291519394508716926323b872dd9260648084019391929182900301818387803b158015610e4e57600080fd5b505af1158015610e62573d6000803e3d6000fd5b5050505062ffffff89166000908152600360205260408082205481517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039182166004820152336024820152604481018c90529151908816926323b872dd926064808201939182900301818387803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b50506040805160e060020a6370a082310281523360048201529051600160a060020a03881693506370a08231925060248083019260209291908290030181600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050506040513d6020811015610f7357600080fd5b50518211610fcb576040805160e560020a62461bcd02815260206004820152600b60248201527f6275796572206572726f72000000000000000000000000000000000000000000604482015290519081900360640190fd5b62ffffff8916600090815260036020908152604080832054815160e060020a6370a08231028152600160a060020a0391821660048201529151908916936370a0823193602480850194919392918390030190829087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050506040513d602081101561105857600080fd5b505181116110b0576040805160e560020a62461bcd02815260206004820152600c60248201527f73656c6c6572206572726f720000000000000000000000000000000000000000604482015290519081900360640190fd5b505060408051808201909152601881527f746f6b656e732065786368616e6765642e20454e4a4f592100000000000000006020820152979650505050505050565b60045462ffffff1660001901905600a165627a7a723058202ded0a597920941cbcfd5a0e7cfc098b605cc8bb98f1dcf9dd76aa4e73fe3c980029

Deployed ByteCode Sourcemap

1254:9300:0:-;;;;;;;;;-1:-1:-1;;;1254:9300:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10366:5;;:37;;-1:-1:-1;;;;;10366:5:0;;;;;;;;;10389:4;10381:21;10366:37;;;;;;;;;10381:21;10366:5;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10366:37:0;1254:9300;4315:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4315:209:0;-1:-1:-1;;;;;4315:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4315:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4315:209:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4315:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9825:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9825:175:0;-1:-1:-1;;;;;9825:175:0;;;;;;;3213:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3213:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3213:335:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2133:790;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2133:790:0;-1:-1:-1;;;;;2133:790:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4837:652;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4837:652:0;;;;;;;;;;;-1:-1:-1;;;;;4837:652:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828:242;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5828:242:0;;;;;;;;;;;;;;;;;;;;;;;;;7126:2319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7126:2319:0;;;;;;;;;;;3925:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3925:76:0;;;;4315:209;4375:7;4384:6;4392;4411:13;4434:10;4411:34;;4464:6;-1:-1:-1;;;;;4464:15:0;;:17;;;;;-1:-1:-1;;;4464:17:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4464:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4464:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4464:17:0;4482:15;;;;;;;;-1:-1:-1;;;;;4482:13:0;;;;;:15;;;;;;;;;;;;;;;:13;:15;;;5:2:-1;;;;30:1;27;20:12;5:2;4482:15:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4482:15:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4482:15:0;80::-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4482:15:0;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;0:382;;4482:15:0;;;;;;4498:6;-1:-1:-1;;;;;4498:11:0;;:13;;;;;-1:-1:-1;;;4498:13:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4498:13:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4498:13:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4498:13:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;4498:13:0;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;4456:56:0;;;;-1:-1:-1;4498:13:0;-1:-1:-1;4315:209:0;;-1:-1:-1;;;;;;;4315:209:0:o;9825:175::-;9950:5;;;9956:39;;;-1:-1:-1;;;;;9956:39:0;;9989:4;9956:39;;;;;;;;9909:5;;-1:-1:-1;;;;;9926:23:0;;;;;;9950:5;;;;;;;;9926:23;;9956:24;;:39;;;;;;;;;;;;;;;9878:21;9926:23;9956:39;;;5:2:-1;;;;30:1;27;20:12;5:2;9956:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9956:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9956:39:0;9926:70;;;-1:-1:-1;;;9926:70:0;;;;;;-1:-1:-1;;;;;9926:70:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9926:70:0;;;;;;;-1:-1:-1;9926:70:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;9926:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9926:70:0;;;;9825:175;;:::o;3213:335::-;3294:16;;;;;;;:6;:16;;;;;;3267:6;;-1:-1:-1;;;;;3294:16:0;3312:10;3294:28;3286:78;;;;;-1:-1:-1;;;;;3286:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3382:16:0;;;;;;:6;:16;;;;;;;;3375:23;;-1:-1:-1;;3375:23:0;;;;;;-1:-1:-1;3416:20:0;;;;;3409:27;;;;;;3454:10;:20;;;;;3447:27;;;;;;;3492:15;;;;;;3485:22;;;;3518;;;;;;;;;;;;;;;;;3213:335::o;2133:790::-;2243:6;2385:11;;;;2382:449;;;2451:10;;;-1:-1:-1;;2484:12:0;;2451:10;;;;;2484:12;;;;;;;;;;;;;-1:-1:-1;2497:16:0;;;:6;:16;;;;;;;;:27;;2514:10;-1:-1:-1;;2497:27:0;;;;;;;2547:20;;;;;;:32;;;;-1:-1:-1;;;;;2547:32:0;;;;;;;;;;2602:10;:20;;;;;;:32;;;;;;;;;;;;2451:10;-1:-1:-1;2382:449:0;;;2737:16;;;;;;;:6;:16;;;;;;-1:-1:-1;;;;;2737:16:0;2755:10;2737:28;2729:78;;;;;-1:-1:-1;;;;;2729:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2841:15:0;;;:5;:15;;;;;;;;;;:22;;;;:15;2133:790;-1:-1:-1;;2133:790:0:o;4837:652::-;4990:20;;;4894:7;4990:20;;;:10;:20;;;;;;;;;5169:6;:16;;;;;;5147:39;;-1:-1:-1;;;;;5147:39:0;;-1:-1:-1;;;;;5169:16:0;;;5147:39;;;;;;4894:7;;;;;;;;4990:20;;4894:7;;;;4990:20;;5147:21;;:39;;;;;4990:20;;5147:39;;;;;;4894:7;4990:20;5147:39;;;5:2:-1;;;;30:1;27;20:12;5:2;5147:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5147:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5147:39:0;5244:16;;;;;;;:6;5147:39;5244:16;;;;;;;;5222:53;;;;;-1:-1:-1;;;;;5244:16:0;;;5222:53;;;;5269:4;5222:53;;;;;;5147:39;;-1:-1:-1;5222:21:0;;;;;:53;;;;;5147:39;5222:53;;;;;;;:21;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;5222:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5222:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5222:53:0;;-1:-1:-1;5291:31:0;;;5288:71;;;5343:14;5324:33;;5288:71;-1:-1:-1;5379:20:0;;;;;;;;;:10;:20;;;;;;;;;5400:10;:20;;;;;;5421:6;:16;;;;;;5438:15;;;;;;;;;-1:-1:-1;;;;;5379:20:0;;;;5400;;;;5421:16;;;;;-1:-1:-1;5438:15:0;;-1:-1:-1;5454:16:0;;-1:-1:-1;4837:652:0;-1:-1:-1;;;4837:652:0:o;5828:242::-;5953:20;;;5905:7;5953:20;;;:10;:20;;;;;;;;;6037:22;;;;;;;-1:-1:-1;;;;;5953:20:0;;;;;;6037;;:22;;;;;5953:20;6037:22;;;;;5905:7;5953:20;6037:22;;;5:2:-1;;;;30:1;27;20:12;5:2;6037:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6037:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6037:22:0;6003:15;;;:5;:15;;;6037:22;6003:15;;;;;;;6030:2;6022:37;;;;;5993:25;;:67;;;;;;;;6061:1;5993:69;5985:77;;5828:242;;;;;:::o;7126:2319::-;7272:20;;;7236:26;7272:20;;;:10;:20;;;;;;;;;7340:10;:20;;;;;;7449:15;;;;;;;;7215:6;;-1:-1:-1;;;;;7272:20:0;;;;7340;;;;7236:26;;;;;7449:25;;7441:54;;;;;-1:-1:-1;;;;;7441:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7620:19;-1:-1:-1;;;;;7620:28:0;;:30;;;;;-1:-1:-1;;;7620:30:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7620:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7620:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7620:30:0;7613:2;7605:45;7575:26;;;:76;;;;;;;;7652:1;7575:78;7547:106;;8627:19;-1:-1:-1;;;;;8627:29:0;;8657:10;8627:41;;;;;-1:-1:-1;;;8627:41:0;;;;;;;-1:-1:-1;;;;;8627:41:0;-1:-1:-1;;;;;8627:41:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8627:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8627:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8627:41:0;8736:16;;;;;;;:6;8627:41;8736:16;;;;;;;;8706:47;;-1:-1:-1;;;;;8706:47:0;;-1:-1:-1;;;;;8736:16:0;;;8706:47;;;;;;8627:41;;-1:-1:-1;8706:29:0;;;;;:47;;;;;8627:41;8706:47;;;;;;;:29;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;8706:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8706:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8706:47:0;8848:16;;;;;;;:6;8706:47;8848:16;;;;;;8804:79;;;;;8837:10;8804:79;;;;-1:-1:-1;;;;;8848:16:0;;;8804:79;;;;;;;;;;;;8706:47;;-1:-1:-1;8804:32:0;;;;;:79;;;;;8848:16;;8804:79;;;;;;8848:16;8804:32;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;8804:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;8927:16:0;;;;;;;:6;:16;;;;;;;8894:79;;;;;-1:-1:-1;;;;;8927:16:0;;;8894:79;;;;8944:10;8894:79;;;;;;;;;;;;:32;;;;;;:79;;;;;;;;;;;8927:16;8894:32;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;8894:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9236:41:0;;;-1:-1:-1;;;;;9236:41:0;;9266:10;9236:41;;;;;;-1:-1:-1;;;;;9236:29:0;;;-1:-1:-1;9236:29:0;;-1:-1:-1;9236:41:0;;;;;;;;;;;;;;-1:-1:-1;9236:29:0;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;9236:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9236:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9236:41:0;9218:59;;9210:82;;;;;-1:-1:-1;;;;;9210:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9360:16;;;;;;;:6;:16;;;;;;;;;9330:47;;-1:-1:-1;;;;;9330:47:0;;-1:-1:-1;;;;;9360:16:0;;;9330:47;;;;;;:29;;;;;;:47;;;;;9360:16;;9330:47;;;;;;;;;:29;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;9330:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9330:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9330:47:0;9311:66;;9303:90;;;;;-1:-1:-1;;;;;9303:90:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9404:33:0;;;;;;;;;;;;;;;;;;7126:2319;-1:-1:-1;;;;;;;7126:2319:0:o;3925:76::-;3987:10;;;;-1:-1:-1;;3987:12:0;;3925:76::o

Swarm Source

bzzr://2ded0a597920941cbcfd5a0e7cfc098b605cc8bb98f1dcf9dd76aa4e73fe3c98
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.