More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 43,239 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Sanity Rates | 10684069 | 1669 days ago | IN | 0 ETH | 0.0037993 | ||||
Set Sanity Rates | 10684061 | 1669 days ago | IN | 0 ETH | 0.00405295 | ||||
Set Sanity Rates | 10684024 | 1669 days ago | IN | 0 ETH | 0.00397278 | ||||
Set Sanity Rates | 10683863 | 1669 days ago | IN | 0 ETH | 0.00487547 | ||||
Set Sanity Rates | 10683772 | 1669 days ago | IN | 0 ETH | 0.00304409 | ||||
Set Sanity Rates | 10683748 | 1669 days ago | IN | 0 ETH | 0.00359314 | ||||
Set Sanity Rates | 10683380 | 1670 days ago | IN | 0 ETH | 0.00454281 | ||||
Set Sanity Rates | 10683290 | 1670 days ago | IN | 0 ETH | 0.0038272 | ||||
Set Sanity Rates | 10683222 | 1670 days ago | IN | 0 ETH | 0.00362112 | ||||
Set Sanity Rates | 10682978 | 1670 days ago | IN | 0 ETH | 0.00338698 | ||||
Set Sanity Rates | 10682877 | 1670 days ago | IN | 0 ETH | 0.00324104 | ||||
Set Sanity Rates | 10682495 | 1670 days ago | IN | 0 ETH | 0.00388924 | ||||
Set Sanity Rates | 10682423 | 1670 days ago | IN | 0 ETH | 0.00371095 | ||||
Set Sanity Rates | 10682287 | 1670 days ago | IN | 0 ETH | 0.00323708 | ||||
Set Sanity Rates | 10682278 | 1670 days ago | IN | 0 ETH | 0.00356369 | ||||
Set Sanity Rates | 10682251 | 1670 days ago | IN | 0 ETH | 0.0033856 | ||||
Set Sanity Rates | 10682236 | 1670 days ago | IN | 0 ETH | 0.00335889 | ||||
Set Sanity Rates | 10682196 | 1670 days ago | IN | 0 ETH | 0.00332536 | ||||
Set Sanity Rates | 10682062 | 1670 days ago | IN | 0 ETH | 0.00282854 | ||||
Set Sanity Rates | 10681929 | 1670 days ago | IN | 0 ETH | 0.00362259 | ||||
Set Sanity Rates | 10681912 | 1670 days ago | IN | 0 ETH | 0.00326696 | ||||
Set Sanity Rates | 10681870 | 1670 days ago | IN | 0 ETH | 0.00301171 | ||||
Set Sanity Rates | 10681783 | 1670 days ago | IN | 0 ETH | 0.00362407 | ||||
Set Sanity Rates | 10681774 | 1670 days ago | IN | 0 ETH | 0.0044677 | ||||
Set Sanity Rates | 10681530 | 1670 days ago | IN | 0 ETH | 0.00391846 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SanityRates
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-06 */ pragma solidity 0.4.18; interface ERC20 { function totalSupply() public view returns (uint supply); function balanceOf(address _owner) public view returns (uint balance); function transfer(address _to, uint _value) public returns (bool success); function transferFrom(address _from, address _to, uint _value) public returns (bool success); function approve(address _spender, uint _value) public returns (bool success); function allowance(address _owner, address _spender) public view returns (uint remaining); function decimals() public view returns(uint digits); event Approval(address indexed _owner, address indexed _spender, uint _value); } contract PermissionGroups { address public admin; address public pendingAdmin; mapping(address=>bool) internal operators; mapping(address=>bool) internal alerters; address[] internal operatorsGroup; address[] internal alertersGroup; uint constant internal MAX_GROUP_SIZE = 50; function PermissionGroups() public { admin = msg.sender; } modifier onlyAdmin() { require(msg.sender == admin); _; } modifier onlyOperator() { require(operators[msg.sender]); _; } modifier onlyAlerter() { require(alerters[msg.sender]); _; } function getOperators () external view returns(address[]) { return operatorsGroup; } function getAlerters () external view returns(address[]) { return alertersGroup; } event TransferAdminPending(address pendingAdmin); /** * @dev Allows the current admin to set the pendingAdmin address. * @param newAdmin The address to transfer ownership to. */ function transferAdmin(address newAdmin) public onlyAdmin { require(newAdmin != address(0)); TransferAdminPending(pendingAdmin); pendingAdmin = newAdmin; } /** * @dev Allows the current admin to set the admin in one tx. Useful initial deployment. * @param newAdmin The address to transfer ownership to. */ function transferAdminQuickly(address newAdmin) public onlyAdmin { require(newAdmin != address(0)); TransferAdminPending(newAdmin); AdminClaimed(newAdmin, admin); admin = newAdmin; } event AdminClaimed( address newAdmin, address previousAdmin); /** * @dev Allows the pendingAdmin address to finalize the change admin process. */ function claimAdmin() public { require(pendingAdmin == msg.sender); AdminClaimed(pendingAdmin, admin); admin = pendingAdmin; pendingAdmin = address(0); } event AlerterAdded (address newAlerter, bool isAdd); function addAlerter(address newAlerter) public onlyAdmin { require(!alerters[newAlerter]); // prevent duplicates. require(alertersGroup.length < MAX_GROUP_SIZE); AlerterAdded(newAlerter, true); alerters[newAlerter] = true; alertersGroup.push(newAlerter); } function removeAlerter (address alerter) public onlyAdmin { require(alerters[alerter]); alerters[alerter] = false; for (uint i = 0; i < alertersGroup.length; ++i) { if (alertersGroup[i] == alerter) { alertersGroup[i] = alertersGroup[alertersGroup.length - 1]; alertersGroup.length--; AlerterAdded(alerter, false); break; } } } event OperatorAdded(address newOperator, bool isAdd); function addOperator(address newOperator) public onlyAdmin { require(!operators[newOperator]); // prevent duplicates. require(operatorsGroup.length < MAX_GROUP_SIZE); OperatorAdded(newOperator, true); operators[newOperator] = true; operatorsGroup.push(newOperator); } function removeOperator (address operator) public onlyAdmin { require(operators[operator]); operators[operator] = false; for (uint i = 0; i < operatorsGroup.length; ++i) { if (operatorsGroup[i] == operator) { operatorsGroup[i] = operatorsGroup[operatorsGroup.length - 1]; operatorsGroup.length -= 1; OperatorAdded(operator, false); break; } } } } contract Utils { ERC20 constant internal ETH_TOKEN_ADDRESS = ERC20(0x00eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee); uint constant internal PRECISION = (10**18); uint constant internal MAX_QTY = (10**28); // 10B tokens uint constant internal MAX_RATE = (PRECISION * 10**6); // up to 1M tokens per ETH uint constant internal MAX_DECIMALS = 18; uint constant internal ETH_DECIMALS = 18; mapping(address=>uint) internal decimals; function setDecimals(ERC20 token) internal { if (token == ETH_TOKEN_ADDRESS) decimals[token] = ETH_DECIMALS; else decimals[token] = token.decimals(); } function getDecimals(ERC20 token) internal view returns(uint) { if (token == ETH_TOKEN_ADDRESS) return ETH_DECIMALS; // save storage access uint tokenDecimals = decimals[token]; // technically, there might be token with decimals 0 // moreover, very possible that old tokens have decimals 0 // these tokens will just have higher gas fees. if(tokenDecimals == 0) return token.decimals(); return tokenDecimals; } function calcDstQty(uint srcQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) { require(srcQty <= MAX_QTY); require(rate <= MAX_RATE); if (dstDecimals >= srcDecimals) { require((dstDecimals - srcDecimals) <= MAX_DECIMALS); return (srcQty * rate * (10**(dstDecimals - srcDecimals))) / PRECISION; } else { require((srcDecimals - dstDecimals) <= MAX_DECIMALS); return (srcQty * rate) / (PRECISION * (10**(srcDecimals - dstDecimals))); } } function calcSrcQty(uint dstQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) { require(dstQty <= MAX_QTY); require(rate <= MAX_RATE); //source quantity is rounded up. to avoid dest quantity being too low. uint numerator; uint denominator; if (srcDecimals >= dstDecimals) { require((srcDecimals - dstDecimals) <= MAX_DECIMALS); numerator = (PRECISION * dstQty * (10**(srcDecimals - dstDecimals))); denominator = rate; } else { require((dstDecimals - srcDecimals) <= MAX_DECIMALS); numerator = (PRECISION * dstQty); denominator = (rate * (10**(dstDecimals - srcDecimals))); } return (numerator + denominator - 1) / denominator; //avoid rounding down errors } } contract Withdrawable is PermissionGroups { event TokenWithdraw(ERC20 token, uint amount, address sendTo); /** * @dev Withdraw all ERC20 compatible tokens * @param token ERC20 The address of the token contract */ function withdrawToken(ERC20 token, uint amount, address sendTo) external onlyAdmin { require(token.transfer(sendTo, amount)); TokenWithdraw(token, amount, sendTo); } event EtherWithdraw(uint amount, address sendTo); /** * @dev Withdraw Ethers */ function withdrawEther(uint amount, address sendTo) external onlyAdmin { sendTo.transfer(amount); EtherWithdraw(amount, sendTo); } } interface SanityRatesInterface { function getSanityRate(ERC20 src, ERC20 dest) public view returns(uint); } contract SanityRates is SanityRatesInterface, Withdrawable, Utils { mapping(address=>uint) public tokenRate; mapping(address=>uint) public reasonableDiffInBps; function SanityRates(address _admin) public { require(_admin != address(0)); admin = _admin; } function setReasonableDiff(ERC20[] srcs, uint[] diff) public onlyAdmin { require(srcs.length == diff.length); for (uint i = 0; i < srcs.length; i++) { require(diff[i] <= 100 * 100); reasonableDiffInBps[srcs[i]] = diff[i]; } } function setSanityRates(ERC20[] srcs, uint[] rates) public onlyOperator { require(srcs.length == rates.length); for (uint i = 0; i < srcs.length; i++) { require(rates[i] <= MAX_RATE); tokenRate[srcs[i]] = rates[i]; } } function getSanityRate(ERC20 src, ERC20 dest) public view returns(uint) { if (src != ETH_TOKEN_ADDRESS && dest != ETH_TOKEN_ADDRESS) return 0; uint rate; address token; if (src == ETH_TOKEN_ADDRESS) { rate = (PRECISION*PRECISION)/tokenRate[dest]; token = dest; } else { rate = tokenRate[src]; token = src; } return rate * (10000 + reasonableDiffInBps[token])/10000; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"alerter","type":"address"}],"name":"removeAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOperators","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAlerter","type":"address"}],"name":"addAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"reasonableDiffInBps","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"srcs","type":"address[]"},{"name":"diff","type":"uint256[]"}],"name":"setReasonableDiff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdminQuickly","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAlerters","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"}],"name":"getSanityRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"srcs","type":"address[]"},{"name":"rates","type":"uint256[]"}],"name":"setSanityRates","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_admin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"TokenWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"EtherWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pendingAdmin","type":"address"}],"name":"TransferAdminPending","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAdmin","type":"address"},{"indexed":false,"name":"previousAdmin","type":"address"}],"name":"AdminClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAlerter","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"AlerterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOperator","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"OperatorAdded","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b60405160208061115a8339810160405280805160008054600160a060020a03191633600160a060020a039081169190911790915590925082161515905061005557600080fd5b60008054600160a060020a03909216600160a060020a03199092169190911790556110d5806100856000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301a12fd38114610100578063267822471461012157806327a099d8146101505780633ccdbb28146101b6578063408ee7fe146101df5780635463a2e4146101fe5780635c53ec591461022f57806375829def146102be57806377f50f97146102dd5780637acc8678146102f05780637c423f541461030f5780639870d7fe14610322578063a58092b714610341578063ac8a584a14610366578063c57fbf9014610385578063ce56c454146103a4578063f5db370f146103c6578063f851a44014610455575b600080fd5b341561010b57600080fd5b61011f600160a060020a0360043516610468565b005b341561012c57600080fd5b6101346105d8565b604051600160a060020a03909116815260200160405180910390f35b341561015b57600080fd5b6101636105e7565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101a257808201518382015260200161018a565b505050509050019250505060405180910390f35b34156101c157600080fd5b61011f600160a060020a036004358116906024359060443516610650565b34156101ea57600080fd5b61011f600160a060020a0360043516610760565b341561020957600080fd5b61021d600160a060020a036004351661085c565b60405190815260200160405180910390f35b341561023a57600080fd5b61011f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061086e95505050505050565b34156102c957600080fd5b61011f600160a060020a0360043516610920565b34156102e857600080fd5b61011f6109bb565b34156102fb57600080fd5b61011f600160a060020a0360043516610a55565b341561031a57600080fd5b610163610b37565b341561032d57600080fd5b61011f600160a060020a0360043516610b9d565b341561034c57600080fd5b61021d600160a060020a0360043581169060243516610c6d565b341561037157600080fd5b61011f600160a060020a0360043516610d75565b341561039057600080fd5b61021d600160a060020a0360043516610ee1565b34156103af57600080fd5b61011f600435600160a060020a0360243516610ef3565b34156103d157600080fd5b61011f600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610f8695505050505050565b341561046057600080fd5b610134611046565b6000805433600160a060020a0390811691161461048457600080fd5b600160a060020a03821660009081526003602052604090205460ff1615156104ab57600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156105d45781600160a060020a03166005828154811015156104f057fe5b600091825260209091200154600160a060020a031614156105cc5760058054600019810190811061051d57fe5b60009182526020909120015460058054600160a060020a03909216918390811061054357fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061057f906000198301611055565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16105d4565b6001016104cd565b5050565b600154600160a060020a031681565b6105ef611079565b600480548060200260200160405190810160405280929190818152602001828054801561064557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610627575b505050505090505b90565b60005433600160a060020a0390811691161461066b57600080fd5b82600160a060020a031663a9059cbb82846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106e157600080fd5b6102c65a03f115156106f257600080fd5b50505060405180519050151561070757600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a0390811691161461077b57600080fd5b600160a060020a03811660009081526003602052604090205460ff16156107a157600080fd5b600554603290106107b157600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff1916600190811790915560058054909181016108308382611055565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b60086020526000908152604090205481565b6000805433600160a060020a0390811691161461088a57600080fd5b815183511461089857600080fd5b5060005b825181101561091b576127108282815181106108b457fe5b9060200190602002015111156108c957600080fd5b8181815181106108d557fe5b90602001906020020151600860008584815181106108ef57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205560010161089c565b505050565b60005433600160a060020a0390811691161461093b57600080fd5b600160a060020a038116151561095057600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146109d657600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a03908116911614610a7057600080fd5b600160a060020a0381161515610a8557600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b610b3f611079565b600580548060200260200160405190810160405280929190818152602001828054801561064557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610627575050505050905090565b60005433600160a060020a03908116911614610bb857600080fd5b600160a060020a03811660009081526002602052604090205460ff1615610bde57600080fd5b60045460329010610bee57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff1916600190811790915560048054909181016108308382611055565b60008080600160a060020a03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14801590610cbb5750600160a060020a03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14155b15610cc95760009250610d6d565b600160a060020a03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d2b57600160a060020a0384166000908152600760205260409020546ec097ce7bc90715b34b9f1000000000811515610d2057fe5b049150839050610d48565b5050600160a060020a038316600090815260076020526040902054835b600160a060020a03811660009081526008602052604090205461271090810183020492505b505092915050565b6000805433600160a060020a03908116911614610d9157600080fd5b600160a060020a03821660009081526002602052604090205460ff161515610db857600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156105d45781600160a060020a0316600482815481101515610dfd57fe5b600091825260209091200154600160a060020a03161415610ed957600480546000198101908110610e2a57fe5b60009182526020909120015460048054600160a060020a039092169183908110610e5057fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600480546000190190610e8c9082611055565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16105d4565b600101610dda565b60076020526000908152604090205481565b60005433600160a060020a03908116911614610f0e57600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515610f3f57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b600160a060020a03331660009081526002602052604081205460ff161515610fad57600080fd5b8151835114610fbb57600080fd5b5060005b825181101561091b5769d3c21bcecceda1000000828281518110610fdf57fe5b906020019060200201511115610ff457600080fd5b81818151811061100057fe5b906020019060200201516007600085848151811061101a57fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055600101610fbf565b600054600160a060020a031681565b81548183558181151161091b5760008381526020902061091b91810190830161108b565b60206040519081016040526000815290565b61064d91905b808211156110a55760008155600101611091565b50905600a165627a7a723058204e50a8fa39a18734741cc84ff04a63a840c3655af3919ea3bcb549a91a9ecd9a002900000000000000000000000031fd060138ed4ce512afe0d93f127ad1f4799142
Deployed Bytecode
0x6060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301a12fd38114610100578063267822471461012157806327a099d8146101505780633ccdbb28146101b6578063408ee7fe146101df5780635463a2e4146101fe5780635c53ec591461022f57806375829def146102be57806377f50f97146102dd5780637acc8678146102f05780637c423f541461030f5780639870d7fe14610322578063a58092b714610341578063ac8a584a14610366578063c57fbf9014610385578063ce56c454146103a4578063f5db370f146103c6578063f851a44014610455575b600080fd5b341561010b57600080fd5b61011f600160a060020a0360043516610468565b005b341561012c57600080fd5b6101346105d8565b604051600160a060020a03909116815260200160405180910390f35b341561015b57600080fd5b6101636105e7565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101a257808201518382015260200161018a565b505050509050019250505060405180910390f35b34156101c157600080fd5b61011f600160a060020a036004358116906024359060443516610650565b34156101ea57600080fd5b61011f600160a060020a0360043516610760565b341561020957600080fd5b61021d600160a060020a036004351661085c565b60405190815260200160405180910390f35b341561023a57600080fd5b61011f60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965061086e95505050505050565b34156102c957600080fd5b61011f600160a060020a0360043516610920565b34156102e857600080fd5b61011f6109bb565b34156102fb57600080fd5b61011f600160a060020a0360043516610a55565b341561031a57600080fd5b610163610b37565b341561032d57600080fd5b61011f600160a060020a0360043516610b9d565b341561034c57600080fd5b61021d600160a060020a0360043581169060243516610c6d565b341561037157600080fd5b61011f600160a060020a0360043516610d75565b341561039057600080fd5b61021d600160a060020a0360043516610ee1565b34156103af57600080fd5b61011f600435600160a060020a0360243516610ef3565b34156103d157600080fd5b61011f600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610f8695505050505050565b341561046057600080fd5b610134611046565b6000805433600160a060020a0390811691161461048457600080fd5b600160a060020a03821660009081526003602052604090205460ff1615156104ab57600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156105d45781600160a060020a03166005828154811015156104f057fe5b600091825260209091200154600160a060020a031614156105cc5760058054600019810190811061051d57fe5b60009182526020909120015460058054600160a060020a03909216918390811061054357fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061057f906000198301611055565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16105d4565b6001016104cd565b5050565b600154600160a060020a031681565b6105ef611079565b600480548060200260200160405190810160405280929190818152602001828054801561064557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610627575b505050505090505b90565b60005433600160a060020a0390811691161461066b57600080fd5b82600160a060020a031663a9059cbb82846000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156106e157600080fd5b6102c65a03f115156106f257600080fd5b50505060405180519050151561070757600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a0390811691161461077b57600080fd5b600160a060020a03811660009081526003602052604090205460ff16156107a157600080fd5b600554603290106107b157600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff1916600190811790915560058054909181016108308382611055565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b60086020526000908152604090205481565b6000805433600160a060020a0390811691161461088a57600080fd5b815183511461089857600080fd5b5060005b825181101561091b576127108282815181106108b457fe5b9060200190602002015111156108c957600080fd5b8181815181106108d557fe5b90602001906020020151600860008584815181106108ef57fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205560010161089c565b505050565b60005433600160a060020a0390811691161461093b57600080fd5b600160a060020a038116151561095057600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a039081169116146109d657600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a03908116911614610a7057600080fd5b600160a060020a0381161515610a8557600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b610b3f611079565b600580548060200260200160405190810160405280929190818152602001828054801561064557602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610627575050505050905090565b60005433600160a060020a03908116911614610bb857600080fd5b600160a060020a03811660009081526002602052604090205460ff1615610bde57600080fd5b60045460329010610bee57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff1916600190811790915560048054909181016108308382611055565b60008080600160a060020a03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14801590610cbb5750600160a060020a03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14155b15610cc95760009250610d6d565b600160a060020a03851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d2b57600160a060020a0384166000908152600760205260409020546ec097ce7bc90715b34b9f1000000000811515610d2057fe5b049150839050610d48565b5050600160a060020a038316600090815260076020526040902054835b600160a060020a03811660009081526008602052604090205461271090810183020492505b505092915050565b6000805433600160a060020a03908116911614610d9157600080fd5b600160a060020a03821660009081526002602052604090205460ff161515610db857600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156105d45781600160a060020a0316600482815481101515610dfd57fe5b600091825260209091200154600160a060020a03161415610ed957600480546000198101908110610e2a57fe5b60009182526020909120015460048054600160a060020a039092169183908110610e5057fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600480546000190190610e8c9082611055565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16105d4565b600101610dda565b60076020526000908152604090205481565b60005433600160a060020a03908116911614610f0e57600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f193505050501515610f3f57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b600160a060020a03331660009081526002602052604081205460ff161515610fad57600080fd5b8151835114610fbb57600080fd5b5060005b825181101561091b5769d3c21bcecceda1000000828281518110610fdf57fe5b906020019060200201511115610ff457600080fd5b81818151811061100057fe5b906020019060200201516007600085848151811061101a57fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055600101610fbf565b600054600160a060020a031681565b81548183558181151161091b5760008381526020902061091b91810190830161108b565b60206040519081016040526000815290565b61064d91905b808211156110a55760008155600101611091565b50905600a165627a7a723058204e50a8fa39a18734741cc84ff04a63a840c3655af3919ea3bcb549a91a9ecd9a0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000031fd060138ed4ce512afe0d93f127ad1f4799142
-----Decoded View---------------
Arg [0] : _admin (address): 0x31fD060138Ed4cE512AFE0d93f127AD1f4799142
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000031fd060138ed4ce512afe0d93f127ad1f4799142
Swarm Source
bzzr://4e50a8fa39a18734741cc84ff04a63a840c3655af3919ea3bcb549a91a9ecd9a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.