Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 194 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Sell | 20793209 | 51 days ago | IN | 0 ETH | 0.00175612 | ||||
Sell | 20003332 | 161 days ago | IN | 0 ETH | 0.00074492 | ||||
Buy | 19931886 | 171 days ago | IN | 0 ETH | 0.00066823 | ||||
Buy | 19931797 | 171 days ago | IN | 0 ETH | 0.00090165 | ||||
Buy | 19822071 | 186 days ago | IN | 0 ETH | 0.00041578 | ||||
Buy | 19822037 | 186 days ago | IN | 0 ETH | 0.00047749 | ||||
Sell | 18846322 | 323 days ago | IN | 0 ETH | 0.00170617 | ||||
Buy | 18838403 | 324 days ago | IN | 0 ETH | 0.00350029 | ||||
Sell | 18784498 | 332 days ago | IN | 0 ETH | 0.0043754 | ||||
Set Sell Fee | 18774411 | 333 days ago | IN | 0 ETH | 0.0016057 | ||||
Set Buy Fee | 18774405 | 333 days ago | IN | 0 ETH | 0.00141244 | ||||
Sell | 18760680 | 335 days ago | IN | 0 ETH | 0.00223941 | ||||
Buy | 18738499 | 338 days ago | IN | 0 ETH | 0.0058809 | ||||
Sell | 18605365 | 357 days ago | IN | 0 ETH | 0.00139321 | ||||
Buy | 18562446 | 363 days ago | IN | 0 ETH | 0.00366696 | ||||
Sell | 18033233 | 437 days ago | IN | 0 ETH | 0.00133 | ||||
Buy | 18010702 | 440 days ago | IN | 0 ETH | 0.00121706 | ||||
Buy | 17976648 | 445 days ago | IN | 0 ETH | 0.00254991 | ||||
Sell | 17969996 | 446 days ago | IN | 0 ETH | 0.00196036 | ||||
Buy | 17042984 | 576 days ago | IN | 0 ETH | 0.00317533 | ||||
Sell | 17009678 | 581 days ago | IN | 0 ETH | 0.00185514 | ||||
Buy | 16527010 | 649 days ago | IN | 0 ETH | 0.00175261 | ||||
Buy | 15488580 | 795 days ago | IN | 0 ETH | 0.00097775 | ||||
Buy | 15431063 | 804 days ago | IN | 0 ETH | 0.00110378 | ||||
Sell | 14967328 | 879 days ago | IN | 0 ETH | 0.00341301 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Stabilizer
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.5.16; import "./SafeMath.sol"; import "./ERC20.sol"; interface IStrat { function invest() external; // underlying amount must be sent from vault to strat address before function divest(uint amount) external; // should send requested amount to vault directly, not less or more function calcTotalValue() external returns (uint); function underlying() external view returns (address); } contract Stabilizer { using SafeMath for uint; uint public constant MAX_FEE = 1000; // 10% uint public constant FEE_DENOMINATOR = 10000; uint public buyFee; uint public sellFee; uint public supplyCap; uint public supply; ERC20 public synth; ERC20 public reserve; address public operator; IStrat public strat; address public governance; constructor(ERC20 synth_, ERC20 reserve_, address gov_, uint buyFee_, uint sellFee_, uint supplyCap_) public { require(buyFee_ <= MAX_FEE, "STABILIZER:BUYFEE_TOO_HIGH"); require(sellFee_ <= MAX_FEE, "STABILIZER:SELLFEE_TOO_HIGH"); synth = synth_; reserve = reserve_; governance = gov_; buyFee = buyFee_; sellFee = sellFee_; operator = msg.sender; supplyCap = supplyCap_; } modifier onlyOperator { require(msg.sender == operator || msg.sender == governance, "STABILIZER:ONLY_OPERATOR_OR_GOV"); _; } modifier onlyGovernance { require(msg.sender == governance, "STABILIZER:ONLY_GOV"); _; } function setOperator(address operator_) public { require(msg.sender == governance || msg.sender == operator, "STABILIZER:ONLY_GOV_OR_OPERATOR"); require(operator_ != address(0), "STABILIZER:NO_ADDRESS_ZERO"); operator = operator_; } function setBuyFee(uint amount) public onlyGovernance { require(amount <= MAX_FEE, "STABILIZER:AMOUNT_TOO_HIGH"); buyFee = amount; } function setSellFee(uint amount) public onlyGovernance { require(amount <= MAX_FEE, "STABILIZER:AMOUNT_TOO_HIGH"); sellFee = amount; } function setCap(uint amount) public onlyOperator { supplyCap = amount; } function setGovernance(address gov_) public onlyGovernance { require(gov_ != address(0), "STABILIZER:NO_ADDRESS_ZERO"); governance = gov_; } function setStrat(IStrat newStrat) public onlyGovernance { require(newStrat.underlying() == address(reserve), "STABILIZER:INVALID_STRAT"); if(address(strat) != address(0)) { uint prevTotalValue = strat.calcTotalValue(); strat.divest(prevTotalValue); } reserve.transfer(address(newStrat), reserve.balanceOf(address(this))); newStrat.invest(); strat = newStrat; } function removeStrat() public onlyGovernance { uint prevTotalValue = strat.calcTotalValue(); strat.divest(prevTotalValue); strat = IStrat(address(0)); } function takeProfit() public { uint totalReserves = getTotalReserves(); if(totalReserves > supply) { uint profit = totalReserves - supply; // underflow prevented by if condition if(address(strat) != address(0)) { uint bal = reserve.balanceOf(address(this)); if(bal < profit) { strat.divest(profit - bal); // underflow prevented by if condition } } reserve.transfer(governance, profit); } } function buy(uint amount) public { require(supply.add(amount) <= supplyCap, "STABILIZER:SUPPLY_EXCEEDED_CAP"); if(address(strat) != address(0)) { reserve.transferFrom(msg.sender, address(strat), amount); strat.invest(); } else { reserve.transferFrom(msg.sender, address(this), amount); } if(buyFee > 0) { uint fee = amount.mul(buyFee).div(FEE_DENOMINATOR); reserve.transferFrom(msg.sender, governance, fee); emit Buy(msg.sender, amount, amount.add(fee)); } else { emit Buy(msg.sender, amount, amount); } synth.mint(msg.sender, amount); supply = supply.add(amount); } function sell(uint amount) public { synth.transferFrom(msg.sender, address(this), amount); synth.burn(amount); uint reserveBal = reserve.balanceOf(address(this)); if(address(strat) != address(0) && reserveBal < amount) { strat.divest(amount - reserveBal); // underflow prevented by if condition } uint afterFee; if(sellFee > 0) { uint fee = amount.mul(sellFee).div(FEE_DENOMINATOR); afterFee = amount.sub(fee); reserve.transfer(governance, fee); } else { afterFee = amount; } reserve.transfer(msg.sender, afterFee); supply = supply.sub(amount); emit Sell(msg.sender, amount, afterFee); } function rescue(ERC20 token) public onlyGovernance { require(token != reserve, "STABILIZER:RESERVE_NOT_RESCUED"); token.transfer(governance, token.balanceOf(address(this))); } function getTotalReserves() internal returns (uint256 bal) { // new view function because strat.calcTotalValue() is not view function bal = reserve.balanceOf(address(this)); if(address(strat) != address(0)) { bal = bal.add(strat.calcTotalValue()); } } event Buy(address indexed user, uint purchased, uint spent); event Sell(address indexed user, uint sold, uint received); }
pragma solidity ^0.5.16; import "./SafeMath.sol"; contract ERC20 { using SafeMath for uint; string public name; string public symbol; uint8 public decimals; uint public totalSupply; address public operator; address public pendingOperator; mapping(address => uint) public balanceOf; mapping(address => mapping(address => uint)) public allowance; mapping (address => bool) public minters; bytes32 public DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public nonces; event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); event AddMinter(address indexed minter); event RemoveMinter(address indexed minter); event ChangeOperator(address indexed newOperator); modifier onlyOperator { require(msg.sender == operator, "ERC20:ONLY_OPERATOR"); _; } constructor(string memory name_, string memory symbol_, uint8 decimals_) public { name = name_; symbol = symbol_; decimals = decimals_; operator = msg.sender; uint chainId; assembly { chainId := chainid } DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this) ) ); } function setPendingOperator(address newOperator_) public onlyOperator { pendingOperator = newOperator_; } function claimOperator() public { require(msg.sender == pendingOperator, "ERC20:ONLY_PENDING_OPERATOR"); operator = pendingOperator; pendingOperator = address(0); emit ChangeOperator(operator); } function addMinter(address minter_) public onlyOperator { minters[minter_] = true; emit AddMinter(minter_); } function removeMinter(address minter_) public onlyOperator { minters[minter_] = false; emit RemoveMinter(minter_); } function mint(address to, uint amount) public { require(minters[msg.sender] == true || msg.sender == operator, "ERC20:ONLY_MINTERS_OR_OPERATOR"); _mint(to, amount); } function burn(uint amount) public { _burn(msg.sender, amount); } function _mint(address to, uint value) internal { totalSupply = totalSupply.add(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { balanceOf[from] = balanceOf[from].sub(value); totalSupply = totalSupply.sub(value); emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value) private { balanceOf[from] = balanceOf[from].sub(value); balanceOf[to] = balanceOf[to].add(value); emit Transfer(from, to, value); } function approve(address spender, uint value) external returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint value) external returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom(address from, address to, uint value) external returns (bool) { if (allowance[from][msg.sender] != uint(-1)) { allowance[from][msg.sender] = allowance[from][msg.sender].sub(value); } _transfer(from, to, value); return true; } function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external { require(deadline >= block.timestamp, 'ERC20:EXPIRED'); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', DOMAIN_SEPARATOR, keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress != address(0) && recoveredAddress == owner, 'ERC20:SIGNATURE_INVALID'); _approve(owner, spender, value); } }
pragma solidity ^0.5.16; // From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol // Subject to the MIT license. /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SAFEMATH:ADD_OVERFLOW"); return c; } /** * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SAFEMATH:SUB_UNDERFLOW"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot underflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SAFEMATH:MUL_OVERFLOW"); return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, errorMessage); return c; } /** * @dev Returns the integer division of two unsigned integers. * Reverts on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. * Reverts with custom message on division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract ERC20","name":"synth_","type":"address"},{"internalType":"contract ERC20","name":"reserve_","type":"address"},{"internalType":"address","name":"gov_","type":"address"},{"internalType":"uint256","name":"buyFee_","type":"uint256"},{"internalType":"uint256","name":"sellFee_","type":"uint256"},{"internalType":"uint256","name":"supplyCap_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"purchased","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"spent","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"sold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"received","type":"uint256"}],"name":"Sell","type":"event"},{"constant":true,"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"removeStrat","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"}],"name":"rescue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"reserve","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBuyFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"gov_","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"operator_","type":"address"}],"name":"setOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSellFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IStrat","name":"newStrat","type":"address"}],"name":"setStrat","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"strat","outputs":[{"internalType":"contract IStrat","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"supplyCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"synth","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"takeProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051611b72380380611b72833981810160405260c081101561003357600080fd5b508051602082015160408301516060840151608085015160a09095015193949293919290916103e88311156100af576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a4255594645455f544f4f5f48494748000000000000604482015290519081900360640190fd5b6103e8821115610106576040805162461bcd60e51b815260206004820152601b60248201527f53544142494c495a45523a53454c4c4645455f544f4f5f484947480000000000604482015290519081900360640190fd5b600480546001600160a01b039788166001600160a01b03199182161790915560058054968816968216969096179095556008805494909616938516939093179094556000556001929092556006805490911633179055600255611a048061016e6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063839006f2116100b8578063bc063e1a1161007c578063bc063e1a146102ae578063cd3293de146102b6578063d73792a9146102be578063d96a094a146102c6578063e4849b32146102e3578063f4de5aa11461030057610142565b8063839006f2146102175780638b4cee081461023d5780638f770ad01461025a578063ab033ea914610262578063b3ab15fb1461028857610142565b80632b14ca561161010a5780632b14ca56146101d257806347062402146101da57806347786d37146101e2578063570ca735146101ff5780635aa6e6751461020757806370c105781461020f57610142565b8063047fc9aa14610147578063059b2a10146101615780630cc835a314610185578063115f4fee146101a457806316cc3b07146101ac575b600080fd5b61014f610308565b60408051918252519081900360200190f35b61016961030e565b604080516001600160a01b039092168252519081900360200190f35b6101a26004803603602081101561019b57600080fd5b503561031d565b005b6101696103ce565b6101a2600480360360208110156101c257600080fd5b50356001600160a01b03166103dd565b61014f610764565b61014f61076a565b6101a2600480360360208110156101f857600080fd5b5035610770565b6101696107e9565b6101696107f8565b6101a2610807565b6101a26004803603602081101561022d57600080fd5b50356001600160a01b03166109a9565b6101a26004803603602081101561025357600080fd5b5035610b60565b61014f610c11565b6101a26004803603602081101561027857600080fd5b50356001600160a01b0316610c17565b6101a26004803603602081101561029e57600080fd5b50356001600160a01b0316610ce9565b61014f610dda565b610169610de0565b61014f610def565b6101a2600480360360208110156102dc57600080fd5b5035610df5565b6101a2600480360360208110156102f957600080fd5b50356111b5565b6101a2611540565b60035481565b6007546001600160a01b031681565b6008546001600160a01b03163314610372576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6103e88111156103c9576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600055565b6004546001600160a01b031681565b6008546001600160a01b03163314610432576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b60055460408051636f307dc360e01b815290516001600160a01b0392831692841691636f307dc3916004808301926020929190829003018186803b15801561047957600080fd5b505afa15801561048d573d6000803e3d6000fd5b505050506040513d60208110156104a357600080fd5b50516001600160a01b031614610500576040805162461bcd60e51b815260206004820152601860248201527f53544142494c495a45523a494e56414c49445f53545241540000000000000000604482015290519081900360640190fd5b6007546001600160a01b0316156105ed576007546040805163500128e360e11b815290516000926001600160a01b03169163a00251c691600480830192602092919082900301818787803b15801561055757600080fd5b505af115801561056b573d6000803e3d6000fd5b505050506040513d602081101561058157600080fd5b505160075460408051638ca1799560e01b81526004810184905290519293506001600160a01b0390911691638ca179959160248082019260009290919082900301818387803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b50505050505b600554604080516370a0823160e01b815230600482015290516001600160a01b039092169163a9059cbb91849184916370a08231916024808301926020929190829003018186803b15801561064157600080fd5b505afa158015610655573d6000803e3d6000fd5b505050506040513d602081101561066b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050506040513d60208110156106e657600080fd5b50506040805163e8b5e51f60e01b815290516001600160a01b0383169163e8b5e51f91600480830192600092919082900301818387803b15801561072957600080fd5b505af115801561073d573d6000803e3d6000fd5b5050600780546001600160a01b0319166001600160a01b0394909416939093179092555050565b60015481565b60005481565b6006546001600160a01b031633148061079357506008546001600160a01b031633145b6107e4576040805162461bcd60e51b815260206004820152601f60248201527f53544142494c495a45523a4f4e4c595f4f50455241544f525f4f525f474f5600604482015290519081900360640190fd5b600255565b6006546001600160a01b031681565b6008546001600160a01b031681565b6000610811611682565b90506003548111156109a657600354600754908203906001600160a01b03161561091f57600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561088057600080fd5b505afa158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b505190508181101561091d5760075460408051638ca1799560e01b8152838503600482015290516001600160a01b0390921691638ca179959160248082019260009290919082900301818387803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b505050505b505b6005546008546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561097857600080fd5b505af115801561098c573d6000803e3d6000fd5b505050506040513d60208110156109a257600080fd5b5050505b50565b6008546001600160a01b031633146109fe576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6005546001600160a01b0382811691161415610a61576040805162461bcd60e51b815260206004820152601e60248201527f53544142494c495a45523a524553455256455f4e4f545f524553435545440000604482015290519081900360640190fd5b600854604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b158015610ab657600080fd5b505afa158015610aca573d6000803e3d6000fd5b505050506040513d6020811015610ae057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b505050565b6008546001600160a01b03163314610bb5576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6103e8811115610c0c576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600155565b60025481565b6008546001600160a01b03163314610c6c576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6001600160a01b038116610cc7576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a4e4f5f414444524553535f5a45524f000000000000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316331480610d0c57506006546001600160a01b031633145b610d5d576040805162461bcd60e51b815260206004820152601f60248201527f53544142494c495a45523a4f4e4c595f474f565f4f525f4f50455241544f5200604482015290519081900360640190fd5b6001600160a01b038116610db8576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a4e4f5f414444524553535f5a45524f000000000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6103e881565b6005546001600160a01b031681565b61271081565b600254600354610e0b908363ffffffff61179416565b1115610e5e576040805162461bcd60e51b815260206004820152601e60248201527f53544142494c495a45523a535550504c595f45584345454445445f4341500000604482015290519081900360640190fd5b6007546001600160a01b031615610f5d57600554600754604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b505050506040513d6020811015610ef857600080fd5b50506007546040805163e8b5e51f60e01b815290516001600160a01b039092169163e8b5e51f9160048082019260009290919082900301818387803b158015610f4057600080fd5b505af1158015610f54573d6000803e3d6000fd5b50505050610fe4565b600554604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b505050506040513d6020811015610fe157600080fd5b50505b600054156110f4576000611015612710611009600054856117ef90919063ffffffff16565b9063ffffffff61185616565b600554600854604080516323b872dd60e01b81523360048201526001600160a01b0392831660248201526044810185905290519394509116916323b872dd916064808201926020929091908290030181600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d60208110156110a057600080fd5b503390507f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed836110d6818563ffffffff61179416565b6040805192835260208301919091528051918290030190a25061112f565b6040805182815260208101839052815133927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a25b60048054604080516340c10f1960e01b8152339381019390935260248301849052516001600160a01b03909116916340c10f1991604480830192600092919082900301818387803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b50506003546111af925090508263ffffffff61179416565b60035550565b60048054604080516323b872dd60e01b8152339381019390935230602484015260448301849052516001600160a01b03909116916323b872dd9160648083019260209291908290030181600087803b15801561121057600080fd5b505af1158015611224573d6000803e3d6000fd5b505050506040513d602081101561123a57600080fd5b50506004805460408051630852cd8d60e31b8152928301849052516001600160a01b03909116916342966c6891602480830192600092919082900301818387803b15801561128757600080fd5b505af115801561129b573d6000803e3d6000fd5b5050600554604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d602081101561131657600080fd5b50516007549091506001600160a01b03161580159061133457508181105b156113a05760075460408051638ca1799560e01b8152838503600482015290516001600160a01b0390921691638ca179959160248082019260009290919082900301818387803b15801561138757600080fd5b505af115801561139b573d6000803e3d6000fd5b505050505b600154600090156114685760006113c8612710611009600154876117ef90919063ffffffff16565b90506113da848263ffffffff61189816565b6005546008546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101869052905193955091169163a9059cbb916044808201926020929091908290030181600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506040513d602081101561145f57600080fd5b5061146b915050565b50815b6005546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156114bf57600080fd5b505af11580156114d3573d6000803e3d6000fd5b505050506040513d60208110156114e957600080fd5b50506003546114fe908463ffffffff61189816565b6003556040805184815260208101839052815133927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a2505050565b6008546001600160a01b03163314611595576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6007546040805163500128e360e11b815290516000926001600160a01b03169163a00251c691600480830192602092919082900301818787803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b505160075460408051638ca1799560e01b81526004810184905290519293506001600160a01b0390911691638ca179959160248082019260009290919082900301818387803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b5050600780546001600160a01b0319169055505050565b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116cd57600080fd5b505afa1580156116e1573d6000803e3d6000fd5b505050506040513d60208110156116f757600080fd5b50516007549091506001600160a01b031615611791576007546040805163500128e360e11b8152905161178e926001600160a01b03169163a00251c69160048083019260209291908290030181600087803b15801561175557600080fd5b505af1158015611769573d6000803e3d6000fd5b505050506040513d602081101561177f57600080fd5b5051829063ffffffff61179416565b90505b90565b6000828201838110156117e6576040805162461bcd60e51b8152602060048201526015602482015274534146454d4154483a4144445f4f564552464c4f5760581b604482015290519081900360640190fd5b90505b92915050565b6000826117fe575060006117e9565b8282028284828161180b57fe5b04146117e6576040805162461bcd60e51b8152602060048201526015602482015274534146454d4154483a4d554c5f4f564552464c4f5760581b604482015290519081900360640190fd5b60006117e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118d3565b60006117e6838360405180604001604052806016815260200175534146454d4154483a5355425f554e444552464c4f5760501b815250611975565b6000818361195f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561192457818101518382015260200161190c565b50505050905090810190601f1680156119515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161196b57fe5b0495945050505050565b600081848411156119c75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561192457818101518382015260200161190c565b50505090039056fea265627a7a723158206aefd2811ac8b8e4165e6d1ffee51563eba5cbfc37e8a16d880401f645f2313764736f6c6343000510003200000000000000000000000003b471d24cec15829fa602d38b046b4f2e8cdaf00000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000001dd1fb688200be97d312399ece57cda7fdaa5aab000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000d3c21bcecceda1000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063839006f2116100b8578063bc063e1a1161007c578063bc063e1a146102ae578063cd3293de146102b6578063d73792a9146102be578063d96a094a146102c6578063e4849b32146102e3578063f4de5aa11461030057610142565b8063839006f2146102175780638b4cee081461023d5780638f770ad01461025a578063ab033ea914610262578063b3ab15fb1461028857610142565b80632b14ca561161010a5780632b14ca56146101d257806347062402146101da57806347786d37146101e2578063570ca735146101ff5780635aa6e6751461020757806370c105781461020f57610142565b8063047fc9aa14610147578063059b2a10146101615780630cc835a314610185578063115f4fee146101a457806316cc3b07146101ac575b600080fd5b61014f610308565b60408051918252519081900360200190f35b61016961030e565b604080516001600160a01b039092168252519081900360200190f35b6101a26004803603602081101561019b57600080fd5b503561031d565b005b6101696103ce565b6101a2600480360360208110156101c257600080fd5b50356001600160a01b03166103dd565b61014f610764565b61014f61076a565b6101a2600480360360208110156101f857600080fd5b5035610770565b6101696107e9565b6101696107f8565b6101a2610807565b6101a26004803603602081101561022d57600080fd5b50356001600160a01b03166109a9565b6101a26004803603602081101561025357600080fd5b5035610b60565b61014f610c11565b6101a26004803603602081101561027857600080fd5b50356001600160a01b0316610c17565b6101a26004803603602081101561029e57600080fd5b50356001600160a01b0316610ce9565b61014f610dda565b610169610de0565b61014f610def565b6101a2600480360360208110156102dc57600080fd5b5035610df5565b6101a2600480360360208110156102f957600080fd5b50356111b5565b6101a2611540565b60035481565b6007546001600160a01b031681565b6008546001600160a01b03163314610372576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6103e88111156103c9576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600055565b6004546001600160a01b031681565b6008546001600160a01b03163314610432576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b60055460408051636f307dc360e01b815290516001600160a01b0392831692841691636f307dc3916004808301926020929190829003018186803b15801561047957600080fd5b505afa15801561048d573d6000803e3d6000fd5b505050506040513d60208110156104a357600080fd5b50516001600160a01b031614610500576040805162461bcd60e51b815260206004820152601860248201527f53544142494c495a45523a494e56414c49445f53545241540000000000000000604482015290519081900360640190fd5b6007546001600160a01b0316156105ed576007546040805163500128e360e11b815290516000926001600160a01b03169163a00251c691600480830192602092919082900301818787803b15801561055757600080fd5b505af115801561056b573d6000803e3d6000fd5b505050506040513d602081101561058157600080fd5b505160075460408051638ca1799560e01b81526004810184905290519293506001600160a01b0390911691638ca179959160248082019260009290919082900301818387803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b50505050505b600554604080516370a0823160e01b815230600482015290516001600160a01b039092169163a9059cbb91849184916370a08231916024808301926020929190829003018186803b15801561064157600080fd5b505afa158015610655573d6000803e3d6000fd5b505050506040513d602081101561066b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156106bc57600080fd5b505af11580156106d0573d6000803e3d6000fd5b505050506040513d60208110156106e657600080fd5b50506040805163e8b5e51f60e01b815290516001600160a01b0383169163e8b5e51f91600480830192600092919082900301818387803b15801561072957600080fd5b505af115801561073d573d6000803e3d6000fd5b5050600780546001600160a01b0319166001600160a01b0394909416939093179092555050565b60015481565b60005481565b6006546001600160a01b031633148061079357506008546001600160a01b031633145b6107e4576040805162461bcd60e51b815260206004820152601f60248201527f53544142494c495a45523a4f4e4c595f4f50455241544f525f4f525f474f5600604482015290519081900360640190fd5b600255565b6006546001600160a01b031681565b6008546001600160a01b031681565b6000610811611682565b90506003548111156109a657600354600754908203906001600160a01b03161561091f57600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561088057600080fd5b505afa158015610894573d6000803e3d6000fd5b505050506040513d60208110156108aa57600080fd5b505190508181101561091d5760075460408051638ca1799560e01b8152838503600482015290516001600160a01b0390921691638ca179959160248082019260009290919082900301818387803b15801561090457600080fd5b505af1158015610918573d6000803e3d6000fd5b505050505b505b6005546008546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561097857600080fd5b505af115801561098c573d6000803e3d6000fd5b505050506040513d60208110156109a257600080fd5b5050505b50565b6008546001600160a01b031633146109fe576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6005546001600160a01b0382811691161415610a61576040805162461bcd60e51b815260206004820152601e60248201527f53544142494c495a45523a524553455256455f4e4f545f524553435545440000604482015290519081900360640190fd5b600854604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b158015610ab657600080fd5b505afa158015610aca573d6000803e3d6000fd5b505050506040513d6020811015610ae057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610b3157600080fd5b505af1158015610b45573d6000803e3d6000fd5b505050506040513d6020811015610b5b57600080fd5b505050565b6008546001600160a01b03163314610bb5576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6103e8811115610c0c576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a414d4f554e545f544f4f5f48494748000000000000604482015290519081900360640190fd5b600155565b60025481565b6008546001600160a01b03163314610c6c576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6001600160a01b038116610cc7576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a4e4f5f414444524553535f5a45524f000000000000604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b0316331480610d0c57506006546001600160a01b031633145b610d5d576040805162461bcd60e51b815260206004820152601f60248201527f53544142494c495a45523a4f4e4c595f474f565f4f525f4f50455241544f5200604482015290519081900360640190fd5b6001600160a01b038116610db8576040805162461bcd60e51b815260206004820152601a60248201527f53544142494c495a45523a4e4f5f414444524553535f5a45524f000000000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6103e881565b6005546001600160a01b031681565b61271081565b600254600354610e0b908363ffffffff61179416565b1115610e5e576040805162461bcd60e51b815260206004820152601e60248201527f53544142494c495a45523a535550504c595f45584345454445445f4341500000604482015290519081900360640190fd5b6007546001600160a01b031615610f5d57600554600754604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b505050506040513d6020811015610ef857600080fd5b50506007546040805163e8b5e51f60e01b815290516001600160a01b039092169163e8b5e51f9160048082019260009290919082900301818387803b158015610f4057600080fd5b505af1158015610f54573d6000803e3d6000fd5b50505050610fe4565b600554604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b505050506040513d6020811015610fe157600080fd5b50505b600054156110f4576000611015612710611009600054856117ef90919063ffffffff16565b9063ffffffff61185616565b600554600854604080516323b872dd60e01b81523360048201526001600160a01b0392831660248201526044810185905290519394509116916323b872dd916064808201926020929091908290030181600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d60208110156110a057600080fd5b503390507f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed836110d6818563ffffffff61179416565b6040805192835260208301919091528051918290030190a25061112f565b6040805182815260208101839052815133927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a25b60048054604080516340c10f1960e01b8152339381019390935260248301849052516001600160a01b03909116916340c10f1991604480830192600092919082900301818387803b15801561118357600080fd5b505af1158015611197573d6000803e3d6000fd5b50506003546111af925090508263ffffffff61179416565b60035550565b60048054604080516323b872dd60e01b8152339381019390935230602484015260448301849052516001600160a01b03909116916323b872dd9160648083019260209291908290030181600087803b15801561121057600080fd5b505af1158015611224573d6000803e3d6000fd5b505050506040513d602081101561123a57600080fd5b50506004805460408051630852cd8d60e31b8152928301849052516001600160a01b03909116916342966c6891602480830192600092919082900301818387803b15801561128757600080fd5b505af115801561129b573d6000803e3d6000fd5b5050600554604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d602081101561131657600080fd5b50516007549091506001600160a01b03161580159061133457508181105b156113a05760075460408051638ca1799560e01b8152838503600482015290516001600160a01b0390921691638ca179959160248082019260009290919082900301818387803b15801561138757600080fd5b505af115801561139b573d6000803e3d6000fd5b505050505b600154600090156114685760006113c8612710611009600154876117ef90919063ffffffff16565b90506113da848263ffffffff61189816565b6005546008546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101869052905193955091169163a9059cbb916044808201926020929091908290030181600087803b15801561143557600080fd5b505af1158015611449573d6000803e3d6000fd5b505050506040513d602081101561145f57600080fd5b5061146b915050565b50815b6005546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156114bf57600080fd5b505af11580156114d3573d6000803e3d6000fd5b505050506040513d60208110156114e957600080fd5b50506003546114fe908463ffffffff61189816565b6003556040805184815260208101839052815133927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a2505050565b6008546001600160a01b03163314611595576040805162461bcd60e51b815260206004820152601360248201527229aa20a124a624ad22a91d27a7262cafa3a7ab60691b604482015290519081900360640190fd5b6007546040805163500128e360e11b815290516000926001600160a01b03169163a00251c691600480830192602092919082900301818787803b1580156115db57600080fd5b505af11580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b505160075460408051638ca1799560e01b81526004810184905290519293506001600160a01b0390911691638ca179959160248082019260009290919082900301818387803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b5050600780546001600160a01b0319169055505050565b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156116cd57600080fd5b505afa1580156116e1573d6000803e3d6000fd5b505050506040513d60208110156116f757600080fd5b50516007549091506001600160a01b031615611791576007546040805163500128e360e11b8152905161178e926001600160a01b03169163a00251c69160048083019260209291908290030181600087803b15801561175557600080fd5b505af1158015611769573d6000803e3d6000fd5b505050506040513d602081101561177f57600080fd5b5051829063ffffffff61179416565b90505b90565b6000828201838110156117e6576040805162461bcd60e51b8152602060048201526015602482015274534146454d4154483a4144445f4f564552464c4f5760581b604482015290519081900360640190fd5b90505b92915050565b6000826117fe575060006117e9565b8282028284828161180b57fe5b04146117e6576040805162461bcd60e51b8152602060048201526015602482015274534146454d4154483a4d554c5f4f564552464c4f5760581b604482015290519081900360640190fd5b60006117e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118d3565b60006117e6838360405180604001604052806016815260200175534146454d4154483a5355425f554e444552464c4f5760501b815250611975565b6000818361195f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561192457818101518382015260200161190c565b50505050905090810190601f1680156119515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161196b57fe5b0495945050505050565b600081848411156119c75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561192457818101518382015260200161190c565b50505090039056fea265627a7a723158206aefd2811ac8b8e4165e6d1ffee51563eba5cbfc37e8a16d880401f645f2313764736f6c63430005100032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000003b471d24cec15829fa602d38b046b4f2e8cdaf00000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000001dd1fb688200be97d312399ece57cda7fdaa5aab000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000d3c21bcecceda1000000
-----Decoded View---------------
Arg [0] : synth_ (address): 0x03b471D24cEC15829FA602D38b046B4F2e8cdAF0
Arg [1] : reserve_ (address): 0x6B175474E89094C44Da98b954EedeAC495271d0F
Arg [2] : gov_ (address): 0x1DD1FB688200BE97d312399ECe57CDA7FDAa5aAb
Arg [3] : buyFee_ (uint256): 10
Arg [4] : sellFee_ (uint256): 10
Arg [5] : supplyCap_ (uint256): 1000000000000000000000000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000003b471d24cec15829fa602d38b046b4f2e8cdaf0
Arg [1] : 0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f
Arg [2] : 0000000000000000000000001dd1fb688200be97d312399ece57cda7fdaa5aab
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 00000000000000000000000000000000000000000000d3c21bcecceda1000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.