More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 115 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy | 12360794 | 1343 days ago | IN | 0.03 ETH | 0.0034252 | ||||
Ethremove | 12024451 | 1395 days ago | IN | 0 ETH | 0.00590371 | ||||
Withdraw | 11898378 | 1414 days ago | IN | 0 ETH | 0.00721067 | ||||
Buy | 11828468 | 1425 days ago | IN | 1 ETH | 0.02268569 | ||||
Buy | 11811834 | 1428 days ago | IN | 0.3 ETH | 0.01305497 | ||||
Withdraw | 11742343 | 1438 days ago | IN | 0 ETH | 0.00510377 | ||||
Buy | 11724452 | 1441 days ago | IN | 0.5 ETH | 0.0067415 | ||||
Withdraw | 11703274 | 1444 days ago | IN | 0 ETH | 0.00619965 | ||||
Withdraw | 11692106 | 1446 days ago | IN | 0 ETH | 0.00273304 | ||||
Withdraw | 11692103 | 1446 days ago | IN | 0 ETH | 0.00695444 | ||||
Withdraw | 11671057 | 1449 days ago | IN | 0 ETH | 0.00254098 | ||||
Buy | 11657397 | 1451 days ago | IN | 1.55 ETH | 0.00512098 | ||||
Withdraw | 11656803 | 1451 days ago | IN | 0 ETH | 0.00538225 | ||||
Withdraw | 11656775 | 1451 days ago | IN | 0 ETH | 0.00702521 | ||||
Withdraw | 11656029 | 1452 days ago | IN | 0 ETH | 0.00301647 | ||||
Buy | 11651312 | 1452 days ago | IN | 0.19 ETH | 0.00588544 | ||||
Withdraw | 11649873 | 1452 days ago | IN | 0 ETH | 0.0037309 | ||||
Withdraw | 11645196 | 1453 days ago | IN | 0 ETH | 0.00317524 | ||||
Withdraw | 11641663 | 1454 days ago | IN | 0 ETH | 0.00420719 | ||||
Buy | 11630098 | 1455 days ago | IN | 0.15 ETH | 0.00471905 | ||||
Buy | 11623105 | 1457 days ago | IN | 2 ETH | 0.00511748 | ||||
Withdraw | 11623070 | 1457 days ago | IN | 0 ETH | 0.01031867 | ||||
Withdraw | 11619738 | 1457 days ago | IN | 0 ETH | 0.00579481 | ||||
Buy | 11619604 | 1457 days ago | IN | 4 ETH | 0.01284096 | ||||
Withdraw | 11610993 | 1458 days ago | IN | 0 ETH | 0.01143086 |
Loading...
Loading
Contract Name:
synSales
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity Multiple files format)
pragma solidity >= 0.6.4; import './ownable.sol'; import './SafeMath.sol'; import './IERC20.sol'; contract synSales is Owned { using SafeMath for uint256; constructor() public { SYN = IERC20(0x1695936d6a953df699C38CA21c2140d497C08BD9); maxSYN = 2 * 10**6 * 10**18; initPrice = 101089 * 10**10; maxPriceInc = 2 * 10**15; maxETH = maxSYN.mul(initPrice).div(10**18) .add(maxSYN.mul(maxPriceInc).div(2 * 10**18)); } event userBuy( address account, uint256 syn, uint256 eth, uint256 date ); event userWithdraw( address account, uint256 syn ); struct buyStruct { uint256 syn; uint256 date; bool withdrawn; } IERC20 public SYN; uint256 public maxSYN; uint256 public maxETH; uint256 public initPrice; uint256 public maxPriceInc; mapping(address => uint256) public userNonce; mapping(address => mapping(uint256 => buyStruct)) public userBuys; uint256 public synSold; uint256 public ethPaid; function buy(uint256 maxPrice) public payable { require(msg.value > 0); uint256 eth = msg.value; uint256 buyPrice = getBuyPrice(eth); require(maxPrice >= buyPrice); uint256 syn = eth.mul(1 ether).div(buyPrice); uint256 date = block.timestamp.add(1 weeks); userBuys[msg.sender][userNonce[msg.sender]].syn = syn; userBuys[msg.sender][userNonce[msg.sender]].date = date; require(maxSYN >= synSold.add(syn)); synSold = synSold.add(syn); ethPaid = ethPaid.add(eth); userNonce[msg.sender] += 1; emit userBuy(msg.sender, syn, eth, date); } function withdraw(uint256[] memory nonces) public returns(uint256) { for(uint256 i = 0; i < nonces.length; i++) { if(userBuys[msg.sender][nonces[i]].date <= block.timestamp && userBuys[msg.sender][nonces[i]].date != 0){ if(userBuys[msg.sender][nonces[i]].withdrawn == false){ userBuys[msg.sender][nonces[i]].withdrawn = true; SYN.transfer(msg.sender, userBuys[msg.sender][nonces[i]].syn); } } } return(block.timestamp); } function getBuyPrice(uint256 eth) public view returns(uint256) { uint256 p1 = ethPaid.mul(maxPriceInc).div(maxETH); uint256 p2 = ethPaid.add(eth).mul(maxPriceInc).div(maxETH); return(p1.add(p2).div(2).add(initPrice)); } function tokenremove(IERC20 token, uint256 amount) public onlyOwner() { require(token != SYN); token.transfer(msg.sender, amount); } function ethremove() public onlyOwner() { address payable owner = msg.sender; owner.transfer(address(this).balance); } }
pragma solidity >= 0.6.4; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function mint(address account, uint256 amount) external; function burn(uint256 amount) external; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); }
pragma solidity ^0.6.0; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Owned is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @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: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ 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: multiplication overflow"); 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) { 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; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"syn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"date","type":"uint256"}],"name":"userBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"syn","type":"uint256"}],"name":"userWithdraw","type":"event"},{"inputs":[],"name":"SYN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxPrice","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ethPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethremove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"getBuyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPriceInc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSYN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"synSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokenremove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userBuys","outputs":[{"internalType":"uint256","name":"syn","type":"uint256"},{"internalType":"uint256","name":"date","type":"uint256"},{"internalType":"bool","name":"withdrawn","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nonces","type":"uint256[]"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506000620000276001600160e01b036200014916565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018054731695936d6a953df699c38ca21c2140d497c08bd96001600160a01b03199091161790556a01a784379d99db420000006002819055660397662b5b640060045566071afd498d0000600581905562000140916200010191671bc16d674ec8000091620000ed916200014d602090811b62000b5a17901c565b620001b460201b62000bbc1790919060201c565b6200012c670de0b6b3a7640000620000ed6004546002546200014d60201b62000b5a1790919060201c565b620001fe60201b62000bfe1790919060201c565b60035562000300565b3390565b6000826200015e57506000620001ae565b828202828482816200016c57fe5b0414620001ab5760405162461bcd60e51b8152600401808060200182810382526021815260200180620010ab6021913960400191505060405180910390fd5b90505b92915050565b6000620001ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200025960201b60201c565b600082820183811015620001ab576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183620002e95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620002ad57818101518382015260200162000293565b50505050905090810190601f168015620002db5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620002f657fe5b0495945050505050565b610d9b80620003106000396000f3fe6080604052600436106100fe5760003560e01c806390ed1bca11610095578063cb75839c11610064578063cb75839c14610321578063d96a094a1461037a578063e71bfbeb14610397578063f2fde38b146103ac578063f92e0c8c146103df576100fe565b806390ed1bca1461020e578063983d95ce14610247578063b6add0f4146102f7578063b878b86c1461030c576100fe565b8063715018a6116100d1578063715018a61461019c5780637ab29c3b146101b35780637bf8f0fc146101c85780638da5cb5b146101dd576100fe565b806302814b861461010357806308d4db141461012a5780632dca3727146101545780632e04b8e714610169575b600080fd5b34801561010f57600080fd5b506101186103f4565b60408051918252519081900360200190f35b34801561013657600080fd5b506101186004803603602081101561014d57600080fd5b50356103fa565b34801561016057600080fd5b5061011861048a565b34801561017557600080fd5b506101186004803603602081101561018c57600080fd5b50356001600160a01b0316610490565b3480156101a857600080fd5b506101b16104a2565b005b3480156101bf57600080fd5b50610118610544565b3480156101d457600080fd5b506101b161054a565b3480156101e957600080fd5b506101f26105d4565b604080516001600160a01b039092168252519081900360200190f35b34801561021a57600080fd5b506101b16004803603604081101561023157600080fd5b506001600160a01b0381351690602001356105e3565b34801561025357600080fd5b506101186004803603602081101561026a57600080fd5b81019060208101813564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460208302840111640100000000831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106d5945050505050565b34801561030357600080fd5b506101186108d7565b34801561031857600080fd5b506101f26108dd565b34801561032d57600080fd5b5061035a6004803603604081101561034457600080fd5b506001600160a01b0381351690602001356108ec565b604080519384526020840192909252151582820152519081900360600190f35b6101b16004803603602081101561039057600080fd5b503561091b565b3480156103a357600080fd5b50610118610a56565b3480156103b857600080fd5b506101b1600480360360208110156103cf57600080fd5b50356001600160a01b0316610a5c565b3480156103eb57600080fd5b50610118610b54565b60035481565b60008061042660035461041a600554600954610b5a90919063ffffffff16565b9063ffffffff610bbc16565b9050600061045760035461041a60055461044b88600954610bfe90919063ffffffff16565b9063ffffffff610b5a16565b60045490915061048290610476600261041a868663ffffffff610bfe16565b9063ffffffff610bfe16565b949350505050565b60025481565b60066020526000908152604090205481565b6104aa610c58565b6000546001600160a01b039081169116146104fa576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b610552610c58565b6000546001600160a01b039081169116146105a2576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b604051339081904780156108fc02916000818181858888f193505050501580156105d0573d6000803e3d6000fd5b5050565b6000546001600160a01b031690565b6105eb610c58565b6000546001600160a01b0390811691161461063b576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b6001546001600160a01b038381169116141561065657600080fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b1580156106a557600080fd5b505af11580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b50505050565b6000805b82518110156108cf57336000908152600760205260408120845142929086908590811061070257fe5b6020026020010151815260200190815260200160002060010154111580156107645750336000908152600760205260408120845190919085908490811061074557fe5b6020026020010151815260200190815260200160002060010154600014155b156108c757336000908152600760205260408120845190919085908490811061078957fe5b60209081029190910181015182528101919091526040016000206002015460ff166108c7573360009081526007602052604081208451600192908690859081106107cf57fe5b60209081029190910181015182528181019290925260409081016000908120600201805460ff19169415159490941790935560015433808552600790935290832086516001600160a01b039092169363a9059cbb939288908790811061083157fe5b60200260200101518152602001908152602001600020600001546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561089a57600080fd5b505af11580156108ae573d6000803e3d6000fd5b505050506040513d60208110156108c457600080fd5b50505b6001016106d9565b504292915050565b60045481565b6001546001600160a01b031681565b600760209081526000928352604080842090915290825290208054600182015460029092015490919060ff1683565b6000341161092857600080fd5b346000610934826103fa565b90508083101561094357600080fd5b60006109618261041a85670de0b6b3a764000063ffffffff610b5a16565b905060006109784262093a8063ffffffff610bfe16565b336000908152600760209081526040808320600683528184208054855292528083208690559054825290206001018190556008549091506109b99083610bfe565b60025410156109c757600080fd5b6008546109da908363ffffffff610bfe16565b6008556009546109f0908563ffffffff610bfe16565b60095533600081815260066020908152604091829020805460010190558151928352820184905281810186905260608201839052517f73d3b891254b1708d399ee05c85cd4b6aa3c18b8763b42578939b98be8ffbb769181900360800190a15050505050565b60095481565b610a64610c58565b6000546001600160a01b03908116911614610ab4576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b6001600160a01b038116610af95760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b600082610b6957506000610bb6565b82820282848281610b7657fe5b0414610bb35760405162461bcd60e51b8152600401808060200182810382526021815260200180610d256021913960400191505060405180910390fd5b90505b92915050565b6000610bb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c5c565b600082820183811015610bb3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b60008183610ce85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cad578181015183820152602001610c95565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610cf457fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220345fdd68ab434d60963c576a5a53cf541eab1beebc9dcf52727fdce5e0f7468164736f6c63430006060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77
Deployed Bytecode
0x6080604052600436106100fe5760003560e01c806390ed1bca11610095578063cb75839c11610064578063cb75839c14610321578063d96a094a1461037a578063e71bfbeb14610397578063f2fde38b146103ac578063f92e0c8c146103df576100fe565b806390ed1bca1461020e578063983d95ce14610247578063b6add0f4146102f7578063b878b86c1461030c576100fe565b8063715018a6116100d1578063715018a61461019c5780637ab29c3b146101b35780637bf8f0fc146101c85780638da5cb5b146101dd576100fe565b806302814b861461010357806308d4db141461012a5780632dca3727146101545780632e04b8e714610169575b600080fd5b34801561010f57600080fd5b506101186103f4565b60408051918252519081900360200190f35b34801561013657600080fd5b506101186004803603602081101561014d57600080fd5b50356103fa565b34801561016057600080fd5b5061011861048a565b34801561017557600080fd5b506101186004803603602081101561018c57600080fd5b50356001600160a01b0316610490565b3480156101a857600080fd5b506101b16104a2565b005b3480156101bf57600080fd5b50610118610544565b3480156101d457600080fd5b506101b161054a565b3480156101e957600080fd5b506101f26105d4565b604080516001600160a01b039092168252519081900360200190f35b34801561021a57600080fd5b506101b16004803603604081101561023157600080fd5b506001600160a01b0381351690602001356105e3565b34801561025357600080fd5b506101186004803603602081101561026a57600080fd5b81019060208101813564010000000081111561028557600080fd5b82018360208201111561029757600080fd5b803590602001918460208302840111640100000000831117156102b957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106d5945050505050565b34801561030357600080fd5b506101186108d7565b34801561031857600080fd5b506101f26108dd565b34801561032d57600080fd5b5061035a6004803603604081101561034457600080fd5b506001600160a01b0381351690602001356108ec565b604080519384526020840192909252151582820152519081900360600190f35b6101b16004803603602081101561039057600080fd5b503561091b565b3480156103a357600080fd5b50610118610a56565b3480156103b857600080fd5b506101b1600480360360208110156103cf57600080fd5b50356001600160a01b0316610a5c565b3480156103eb57600080fd5b50610118610b54565b60035481565b60008061042660035461041a600554600954610b5a90919063ffffffff16565b9063ffffffff610bbc16565b9050600061045760035461041a60055461044b88600954610bfe90919063ffffffff16565b9063ffffffff610b5a16565b60045490915061048290610476600261041a868663ffffffff610bfe16565b9063ffffffff610bfe16565b949350505050565b60025481565b60066020526000908152604090205481565b6104aa610c58565b6000546001600160a01b039081169116146104fa576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b610552610c58565b6000546001600160a01b039081169116146105a2576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b604051339081904780156108fc02916000818181858888f193505050501580156105d0573d6000803e3d6000fd5b5050565b6000546001600160a01b031690565b6105eb610c58565b6000546001600160a01b0390811691161461063b576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b6001546001600160a01b038381169116141561065657600080fd5b6040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b0384169163a9059cbb9160448083019260209291908290030181600087803b1580156106a557600080fd5b505af11580156106b9573d6000803e3d6000fd5b505050506040513d60208110156106cf57600080fd5b50505050565b6000805b82518110156108cf57336000908152600760205260408120845142929086908590811061070257fe5b6020026020010151815260200190815260200160002060010154111580156107645750336000908152600760205260408120845190919085908490811061074557fe5b6020026020010151815260200190815260200160002060010154600014155b156108c757336000908152600760205260408120845190919085908490811061078957fe5b60209081029190910181015182528101919091526040016000206002015460ff166108c7573360009081526007602052604081208451600192908690859081106107cf57fe5b60209081029190910181015182528181019290925260409081016000908120600201805460ff19169415159490941790935560015433808552600790935290832086516001600160a01b039092169363a9059cbb939288908790811061083157fe5b60200260200101518152602001908152602001600020600001546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561089a57600080fd5b505af11580156108ae573d6000803e3d6000fd5b505050506040513d60208110156108c457600080fd5b50505b6001016106d9565b504292915050565b60045481565b6001546001600160a01b031681565b600760209081526000928352604080842090915290825290208054600182015460029092015490919060ff1683565b6000341161092857600080fd5b346000610934826103fa565b90508083101561094357600080fd5b60006109618261041a85670de0b6b3a764000063ffffffff610b5a16565b905060006109784262093a8063ffffffff610bfe16565b336000908152600760209081526040808320600683528184208054855292528083208690559054825290206001018190556008549091506109b99083610bfe565b60025410156109c757600080fd5b6008546109da908363ffffffff610bfe16565b6008556009546109f0908563ffffffff610bfe16565b60095533600081815260066020908152604091829020805460010190558151928352820184905281810186905260608201839052517f73d3b891254b1708d399ee05c85cd4b6aa3c18b8763b42578939b98be8ffbb769181900360800190a15050505050565b60095481565b610a64610c58565b6000546001600160a01b03908116911614610ab4576040805162461bcd60e51b81526020600482018190526024820152600080516020610d46833981519152604482015290519081900360640190fd5b6001600160a01b038116610af95760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b600082610b6957506000610bb6565b82820282848281610b7657fe5b0414610bb35760405162461bcd60e51b8152600401808060200182810382526021815260200180610d256021913960400191505060405180910390fd5b90505b92915050565b6000610bb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c5c565b600082820183811015610bb3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b60008183610ce85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cad578181015183820152602001610c95565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610cf457fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220345fdd68ab434d60963c576a5a53cf541eab1beebc9dcf52727fdce5e0f7468164736f6c63430006060033
Deployed Bytecode Sourcemap
100:2505:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;756:21:3;;5:9:-1;2:2;;;27:1;24;17:12;2:2;756:21:3;;;:::i;:::-;;;;;;;;;;;;;;;;2091:233;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2091:233:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2091:233:3;;:::i;731:21::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;731:21:3;;;:::i;840:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;840:44:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;840:44:3;-1:-1:-1;;;;;840:44:3;;:::i;922:145:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;922:145:2;;;:::i;:::-;;958:22:3;;5:9:-1;2:2;;;27:1;24;17:12;2:2;958:22:3;;;:::i;2474:128::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2474:128:3;;;:::i;717:77:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;717:77:2;;;:::i;:::-;;;;-1:-1:-1;;;;;717:77:2;;;;;;;;;;;;;;2328:142:3;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2328:142:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2328:142:3;;;;;;;;:::i;1604:483::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1604:483:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1604:483:3;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;1604:483:3;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1604:483:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1604:483:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1604:483:3;;-1:-1:-1;1604:483:3;;-1:-1:-1;;;;;1604:483:3:i;781:24::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;781:24:3;;;:::i;710:17::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;710:17:3;;;:::i;888:65::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;888:65:3;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;888:65:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1011:589;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1011:589:3;;:::i;984:22::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;984:22:3;;;:::i;1073:240:2:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1073:240:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1073:240:2;-1:-1:-1;;;;;1073:240:2;;:::i;809:26:3:-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;809:26:3;;;:::i;756:21::-;;;;:::o;2091:233::-;2145:7;2160:10;2173:36;2202:6;;2173:24;2185:11;;2173:7;;:11;;:24;;;;:::i;:::-;:28;:36;:28;:36;:::i;:::-;2160:49;;2215:10;2228:45;2266:6;;2228:33;2249:11;;2228:16;2240:3;2228:7;;:11;;:16;;;;:::i;:::-;:20;:33;:20;:33;:::i;:45::-;2308:9;;2215:58;;-1:-1:-1;2286:32:3;;:17;2301:1;2286:10;:2;2215:58;2286:10;:6;:10;:::i;:17::-;:21;:32;:21;:32;:::i;:::-;2279:40;2091:233;-1:-1:-1;;;;2091:233:3:o;731:21::-;;;;:::o;840:44::-;;;;;;;;;;;;;:::o;922:145:2:-;849:12;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;1028:1:::1;1012:6:::0;;991:40:::1;::::0;-1:-1:-1;;;;;1012:6:2;;::::1;::::0;991:40:::1;::::0;1028:1;;991:40:::1;1058:1;1041:19:::0;;-1:-1:-1;;;;;;1041:19:2::1;::::0;;922:145::o;958:22:3:-;;;;:::o;2474:128::-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;2560:37:3::1;::::0;2544:10:::1;::::0;;;2575:21:::1;2560:37:::0;::::1;;;::::0;2520:21:::1;2560:37:::0;2520:21;2560:37;2575:21;2544:10;2560:37;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2560:37:3;908:1:2;2474:128:3:o:0;717:77:2:-;755:7;781:6;-1:-1:-1;;;;;781:6:2;717:77;:::o;2328:142:3:-;849:12:2;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;2421:3:3::1;::::0;-1:-1:-1;;;;;2412:12:3;;::::1;2421:3:::0;::::1;2412:12;;2404:21;;12:1:-1;9::::0;2:12:::1;2404:21:3;2431:34;::::0;;-1:-1:-1;;;2431:34:3;;2446:10:::1;2431:34;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;2431:14:3;::::1;::::0;::::1;::::0;:34;;;;;::::1;::::0;;;;;;;;-1:-1:-1;2431:14:3;:34;::::1;;2:2:-1::0;::::1;;;27:1;24::::0;17:12:::1;2:2;2431:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2431:34:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;-1:-1:::0;;;;2328:142:3:o;1604:483::-;1662:7;;1677:377;1700:6;:13;1696:1;:17;1677:377;;;1740:10;1731:20;;;;:8;:20;;;;;1752:9;;1771:15;;1731:20;1752:6;;1759:1;;1752:9;;;;;;;;;;;;1731:31;;;;;;;;;;;:36;;;:55;;:100;;;;-1:-1:-1;1799:10:3;1790:20;;;;:8;:20;;;;;1811:9;;1790:20;;;1811:6;;1818:1;;1811:9;;;;;;;;;;;;1790:31;;;;;;;;;;;:36;;;1830:1;1790:41;;1731:100;1728:320;;;1854:10;1845:20;;;;:8;:20;;;;;1866:9;;1845:20;;;1866:6;;1873:1;;1866:9;;;;;;;;;;;;;;;;;1845:31;;;;;;;;;;-1:-1:-1;1845:31:3;:41;;;;;1842:198;;1917:10;1908:20;;;;:8;:20;;;;;1929:9;;1952:4;;1908:20;1929:6;;1936:1;;1929:9;;;;;;;;;;;;;;;;;1908:31;;;;;;;;;;;;;-1:-1:-1;1908:31:3;;;:41;;:48;;-1:-1:-1;;1908:48:3;;;;;;;;;;;-1:-1:-1;1968:3:3;1981:10;1993:20;;;:8;:20;;;;;;2014:9;;-1:-1:-1;;;;;1968:3:3;;;;:12;;1981:10;2014:9;;2021:1;;2014:9;;;;;;;;;;;;1993:31;;;;;;;;;;;:35;;;1968:61;;;;;;;;;;;;;-1:-1:-1;;;;;1968:61:3;-1:-1:-1;;;;;1968:61:3;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1968:61:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1968:61:3;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;1842:198:3;1715:3;;1677:377;;;-1:-1:-1;2066:15:3;;1604:483;-1:-1:-1;;1604:483:3:o;781:24::-;;;;:::o;710:17::-;;;-1:-1:-1;;;;;710:17:3;;:::o;888:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1011:589::-;1083:1;1071:9;:13;1063:22;;12:1:-1;9;2:12;1063:22:3;1105:9;1091:11;1139:16;1105:9;1139:11;:16::i;:::-;1120:35;;1181:8;1169;:20;;1161:29;;12:1:-1;9;2:12;1161:29:3;1196:11;1210:30;1231:8;1210:16;:3;1218:7;1210:16;:7;:16;:::i;:30::-;1196:44;-1:-1:-1;1246:12:3;1261:28;:15;1281:7;1261:28;:19;:28;:::i;:::-;1304:10;1295:20;;;;:8;:20;;;;;;;;1316:9;:21;;;;;;;1295:43;;;;;;;:53;;;1375:21;;1354:43;;;;:48;;:55;;;1434:7;;1354:55;;-1:-1:-1;1434:16:3;;1295:53;1434:11;:16::i;:::-;1424:6;;:26;;1416:35;;12:1:-1;9;2:12;1416:35:3;1467:7;;:16;;1479:3;1467:16;:11;:16;:::i;:::-;1457:7;:26;1499:7;;:16;;1511:3;1499:16;:11;:16;:::i;:::-;1489:7;:26;1532:10;1522:21;;;;:9;:21;;;;;;;;;:26;;1547:1;1522:26;;;1560:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1011:589;;;;;:::o;984:22::-;;;;:::o;1073:240:2:-;849:12;:10;:12::i;:::-;839:6;;-1:-1:-1;;;;;839:6:2;;;:22;;;831:67;;;;;-1:-1:-1;;;831:67:2;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;831:67:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;1161:22:2;::::1;1153:73;;;;-1:-1:-1::0;;;1153:73:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1262:6;::::0;;1241:38:::1;::::0;-1:-1:-1;;;;;1241:38:2;;::::1;::::0;1262:6;::::1;::::0;1241:38:::1;::::0;::::1;1289:6;:17:::0;;-1:-1:-1;;;;;;1289:17:2::1;-1:-1:-1::0;;;;;1289:17:2;;;::::1;::::0;;;::::1;::::0;;1073:240::o;809:26:3:-;;;;:::o;2180:459:1:-;2238:7;2479:6;2475:45;;-1:-1:-1;2508:1:1;2501:8;;2475:45;2542:5;;;2546:1;2542;:5;:1;2565:5;;;;;:10;2557:56;;;;-1:-1:-1;;;2557:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2631:1;-1:-1:-1;2180:459:1;;;;;:::o;3101:130::-;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;874:176::-;932:7;963:5;;;986:6;;;;978:46;;;;;-1:-1:-1;;;978:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;57:104:2;144:10;57:104;:::o;3713:272:1:-;3799:7;3833:12;3826:5;3818:28;;;;-1:-1:-1;;;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;;3713:272;-1:-1:-1;;;;;3713:272:1:o
Swarm Source
ipfs://345fdd68ab434d60963c576a5a53cf541eab1beebc9dcf52727fdce5e0f74681
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.