More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 141 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Send Eth | 12434053 | 1364 days ago | IN | 0 ETH | 0.00528104 | ||||
Swap | 12342248 | 1378 days ago | IN | 0.08159999 ETH | 0.00329799 | ||||
Swap | 12315982 | 1382 days ago | IN | 1 ETH | 0.00445735 | ||||
Swap | 12186839 | 1402 days ago | IN | 0.01 ETH | 0.01671229 | ||||
Send Eth | 12017446 | 1428 days ago | IN | 0 ETH | 0.00459796 | ||||
Swap | 12014047 | 1429 days ago | IN | 0.02413457 ETH | 0.00936985 | ||||
Swap | 12013655 | 1429 days ago | IN | 0.035 ETH | 0.00818909 | ||||
Swap | 12001537 | 1431 days ago | IN | 0.5 ETH | 0.01402599 | ||||
Send Eth | 11953522 | 1438 days ago | IN | 0 ETH | 0.00702707 | ||||
Swap | 11937667 | 1441 days ago | IN | 0.82762025 ETH | 0.00844928 | ||||
Send Eth | 11914859 | 1444 days ago | IN | 0 ETH | 0.00737409 | ||||
Swap | 11911149 | 1445 days ago | IN | 0.00342055 ETH | 0.01431703 | ||||
Swap | 11871934 | 1451 days ago | IN | 1.09577689 ETH | 0.00719269 | ||||
Swap | 11862976 | 1452 days ago | IN | 0.21262523 ETH | 0.00795148 | ||||
Send Eth | 11861694 | 1452 days ago | IN | 0 ETH | 0.00485822 | ||||
Swap | 11861155 | 1452 days ago | IN | 0.06878503 ETH | 0.00588922 | ||||
Swap | 11860785 | 1452 days ago | IN | 0.06878503 ETH | 0.00745499 | ||||
Swap | 11860702 | 1452 days ago | IN | 0.00066304 ETH | 0.01081204 | ||||
Swap | 11854780 | 1453 days ago | IN | 1.52163918 ETH | 0.00916884 | ||||
Swap | 11852616 | 1454 days ago | IN | 0.36125983 ETH | 0.01065155 | ||||
Swap | 11850235 | 1454 days ago | IN | 0.4 ETH | 0.01564958 | ||||
Swap | 11845905 | 1455 days ago | IN | 0.65 ETH | 0.01190145 | ||||
Swap | 11835997 | 1456 days ago | IN | 0.12 ETH | 0.00981563 | ||||
Swap | 11820405 | 1459 days ago | IN | 0.53872448 ETH | 0.01137368 | ||||
Send Eth | 11790816 | 1463 days ago | IN | 0 ETH | 0.00824163 |
Latest 14 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12434053 | 1364 days ago | 1.09159999 ETH | ||||
12017446 | 1428 days ago | 0.55913457 ETH | ||||
11953522 | 1438 days ago | 0.82762025 ETH | ||||
11914859 | 1444 days ago | 1.31182267 ETH | ||||
11861694 | 1452 days ago | 3.72985659 ETH | ||||
11790816 | 1463 days ago | 3.66843338 ETH | ||||
11725935 | 1473 days ago | 15.94742708 ETH | ||||
11705973 | 1476 days ago | 70.51510406 ETH | ||||
11680794 | 1480 days ago | 5.39916965 ETH | ||||
11662341 | 1483 days ago | 4.25136295 ETH | ||||
11661155 | 1483 days ago | 40.9109585 ETH | ||||
11655600 | 1484 days ago | 72.53773723 ETH | ||||
11634272 | 1487 days ago | 275.71389761 ETH | ||||
11552102 | 1500 days ago | 0.0013 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Swapper
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.6.12; import "SwapperSimpleBase.sol"; import "SwapPriceCalculatorInterface.sol"; contract Swapper { using SafeMath for uint256; address private admin; IERC20 private token; ISwapPriceCalculator private priceCalculator; uint256 private ethReserve; uint256 private ethReserveTaken; uint256 private ethFee; uint256 private ethFeeTaken; uint256 private tokensSold; string private constant ERR_MSG_SENDER = "ERR_MSG_SENDER"; string private constant ERR_AMOUNT = "ERR_AMOUNT"; string private constant ERR_ZERO_ETH = "ERR_ZERO_ETH"; event Swap(uint256 receivedEth, uint256 expectedTokens, uint16 slippage, uint256 ethFeeAdd, uint256 actualTokens, uint256 tokensSold); // constructor: //-------------------------------------------------------------------------------------------------------------------------- constructor(address _admin, address _token, address _priceCalculator) public { admin = _admin; token = IERC20(_token); priceCalculator = ISwapPriceCalculator(_priceCalculator); } function getAdmin() external view returns (address) { return admin; } function getToken() external view returns (address) { return address(token); } //-------------------------------------------------------------------------------------------------------------------------- // ETH balance methods: //-------------------------------------------------------------------------------------------------------------------------- function getTotalEthBalance() external view returns (uint256) { return address(this).balance; } function sendEth(address payable _to) external returns (uint256 ethReserveTaken_, uint256 ethFeeTaken_) { require(msg.sender == admin, ERR_MSG_SENDER); _to.transfer(address(this).balance); ethReserveTaken_ = ethReserve - ethReserveTaken; ethFeeTaken_ = ethFee - ethFeeTaken; ethReserveTaken = ethReserve; ethFeeTaken = ethFee; } //-------------------------------------------------------------------------------------------------------------------------- // Tokens balance methods: //-------------------------------------------------------------------------------------------------------------------------- function getTotalTokensBalance() external view returns (uint256) { return token.balanceOf(address(this)); } function sendTokens(address _to, uint256 _amount) external { require(msg.sender == admin, ERR_MSG_SENDER); if(_amount == 0) { token.transfer(_to, token.balanceOf(address(this))); } else { token.transfer(_to, _amount); } } //-------------------------------------------------------------------------------------------------------------------------- // Price calculator: //-------------------------------------------------------------------------------------------------------------------------- function getPriceCalculator() external view returns (address) { return address(priceCalculator); } function setPriceCalculator(address _priceCalculator) external { require(msg.sender == admin, ERR_MSG_SENDER); priceCalculator = ISwapPriceCalculator(_priceCalculator); } function calcPrice(uint256 _ethAmount, bool _excludeFee) external view returns (uint256, uint256, uint256) { require(_ethAmount > 0, ERR_ZERO_ETH); return priceCalculator.calc(_ethAmount, 0, 0, ethReserve, tokensSold, _excludeFee); } //-------------------------------------------------------------------------------------------------------------------------- // Current state: //-------------------------------------------------------------------------------------------------------------------------- function getState() external view returns (uint256 ethReserve_, uint256 ethReserveTaken_, uint256 ethFee_, uint256 ethFeeTaken_, uint256 tokensSold_) { ethReserve_ = ethReserve; ethReserveTaken_ = ethReserveTaken; ethFee_ = ethFee; ethFeeTaken_ = ethFeeTaken; tokensSold_ = tokensSold; } //-------------------------------------------------------------------------------------------------------------------------- // Swap logic methods: //-------------------------------------------------------------------------------------------------------------------------- function swap(uint256 _expectedTokensAmount, uint16 _slippage, bool _excludeFee) external payable { require(msg.value > 0, ERR_ZERO_ETH); require(_expectedTokensAmount > 0, "ERR_ZERO_EXP_AMOUNT"); require(_slippage <= 500, "ERR_SLIPPAGE_TOO_BIG"); (uint256 actualTokensAmount, uint256 ethFeeAdd, uint256 actualEthAmount) = priceCalculator.calc(msg.value, _expectedTokensAmount, _slippage, ethReserve, tokensSold, _excludeFee); require(actualTokensAmount > 0, "ERR_ZERO_ACTUAL_TOKENS"); require(msg.value == actualEthAmount, "ERR_WRONG_ETH_AMOUNT"); ethFee = ethFee.add(ethFeeAdd); ethReserve = ethReserve.add(msg.value.sub(ethFeeAdd)); tokensSold = tokensSold.add(actualTokensAmount); token.transfer(msg.sender, actualTokensAmount); emit Swap(msg.value, _expectedTokensAmount, _slippage, ethFeeAdd, actualTokensAmount, tokensSold); } //-------------------------------------------------------------------------------------------------------------------------- }
// SPDX-License-Identifier: UNLICENSED pragma solidity >=0.6.0 <0.8.0; // use 0.6.12 to compile this file /** * @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; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.6.12; interface ISwapPriceCalculator { function calc(uint256 receivedEthAmount, uint256 expectedTokensAmount, uint16 slippage, uint256 ethReserve, uint256 tokensSold, bool excludeFee) external view returns (uint256 actualTokensAmount, uint256 ethFeeAdd, uint256 actualEthAmount); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_priceCalculator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"receivedEth","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"expectedTokens","type":"uint256"},{"indexed":false,"internalType":"uint16","name":"slippage","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"ethFeeAdd","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"actualTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensSold","type":"uint256"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"uint256","name":"_ethAmount","type":"uint256"},{"internalType":"bool","name":"_excludeFee","type":"bool"}],"name":"calcPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceCalculator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"uint256","name":"ethReserve_","type":"uint256"},{"internalType":"uint256","name":"ethReserveTaken_","type":"uint256"},{"internalType":"uint256","name":"ethFee_","type":"uint256"},{"internalType":"uint256","name":"ethFeeTaken_","type":"uint256"},{"internalType":"uint256","name":"tokensSold_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalEthBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalTokensBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"}],"name":"sendEth","outputs":[{"internalType":"uint256","name":"ethReserveTaken_","type":"uint256"},{"internalType":"uint256","name":"ethFeeTaken_","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceCalculator","type":"address"}],"name":"setPriceCalculator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_expectedTokensAmount","type":"uint256"},{"internalType":"uint16","name":"_slippage","type":"uint16"},{"internalType":"bool","name":"_excludeFee","type":"bool"}],"name":"swap","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161111e38038061111e8339818101604052606081101561003357600080fd5b5080516020820151604090920151600080546001600160a01b039384166001600160a01b031991821617909155600180549484169482169490941790935560028054929091169190921617905561108f8061008f6000396000f3fe6080604052600436106100bc5760003560e01c80636922d7b61161007457806376a54c601161004e57806376a54c6014610247578063916efaaf146102a0578063d4d5b1b1146102b5576100bc565b80636922d7b6146101dd5780636e9960c31461021d5780636f36e56a14610232576100bc565b806321df0da7116100a557806321df0da714610149578063287cc96b146101875780634fb1bf4c146101ae576100bc565b806305ab421d146100c15780631865c57d14610109575b600080fd5b3480156100cd57600080fd5b50610107600480360360408110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610305565b005b34801561011557600080fd5b5061011e6105f6565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561015557600080fd5b5061015e610610565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561019357600080fd5b5061019c61062c565b60408051918252519081900360200190f35b610107600480360360608110156101c457600080fd5b5080359061ffff60208201351690604001351515610630565b3480156101e957600080fd5b506101076004803603602081101561020057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ab1565b34801561022957600080fd5b5061015e610bae565b34801561023e57600080fd5b5061015e610bca565b34801561025357600080fd5b506102876004803603602081101561026a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610be6565b6040805192835260208301919091528051918290030190f35b3480156102ac57600080fd5b5061019c610d04565b3480156102c157600080fd5b506102e7600480360360408110156102d857600080fd5b50803590602001351515610da6565b60408051938452602084019290925282820152519081900360600190f35b60005460408051808201909152600e81527f4552525f4d53475f53454e44455200000000000000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff1633146103f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103bc5781810151838201526020016103a4565b50505050905090810190601f1680156103e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508061054957600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb91859184916370a08231916024808301926020929190829003018186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d60208110156104a157600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091525160448083019260209291908290030181600087803b15801561051757600080fd5b505af115801561052b573d6000803e3d6000fd5b505050506040513d602081101561054157600080fd5b506105f29050565b600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b505050506040513d60208110156105ef57600080fd5b50505b5050565b600354600454600554600654600754939492939192909190565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b4790565b60408051808201909152600c81527f4552525f5a45524f5f45544800000000000000000000000000000000000000006020820152346106ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b506000831161073a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5a45524f5f4558505f414d4f554e5400000000000000000000000000604482015290519081900360640190fd5b6101f48261ffff1611156107af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552525f534c4950504147455f544f4f5f424947000000000000000000000000604482015290519081900360640190fd5b600254600354600754604080517f72b5e81f0000000000000000000000000000000000000000000000000000000081523460048201526024810188905261ffff871660448201526064810193909352608483019190915283151560a4830152516000928392839273ffffffffffffffffffffffffffffffffffffffff909216916372b5e81f9160c480820192606092909190829003018186803b15801561085557600080fd5b505afa158015610869573d6000803e3d6000fd5b505050506040513d606081101561087f57600080fd5b508051602082015160409092015190945090925090508261090157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552525f5a45524f5f41435455414c5f544f4b454e5300000000000000000000604482015290519081900360640190fd5b80341461096f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552525f57524f4e475f4554485f414d4f554e54000000000000000000000000604482015290519081900360640190fd5b60055461097c9083610f2d565b60055561099561098c3484610fa8565b60035490610f2d565b6003556007546109a59084610f2d565b600755600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101869052905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb916044808201926020929091908290030181600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6020811015610a4c57600080fd5b5050600754604080513481526020810189905261ffff881681830152606081018590526080810186905260a0810192909252517f02b3b3e8d1a49a602813b09da25ec1dfbfd741df61c5297a3868b9cc556e73389181900360c00190a1505050505050565b60005460408051808201909152600e81527f4552525f4d53475f53454e44455200000000000000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610b66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6000805460408051808201909152600e81527f4552525f4d53475f53454e4445520000000000000000000000000000000000006020820152829173ffffffffffffffffffffffffffffffffffffffff163314610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8416904780156108fc02916000818181858888f19350505050158015610ce0573d6000803e3d6000fd5b50506004805460035460068054600554948390559084905591900394910392509050565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015610d7557600080fd5b505afa158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b5051905090565b60008060008085116040518060400160405280600c81526020017f4552525f5a45524f5f455448000000000000000000000000000000000000000081525090610e4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50600254600354600754604080517f72b5e81f000000000000000000000000000000000000000000000000000000008152600481018a905260006024820181905260448201526064810193909352608483019190915286151560a48301525173ffffffffffffffffffffffffffffffffffffffff909216916372b5e81f9160c480820192606092909190829003018186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d6060811015610f1257600080fd5b50805160208201516040909201519097919650945092505050565b600082820183811015610fa157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610fa183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115611051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50505090039056fea26469706673582212200426d78ac6a23aa062cd079d4ed35a710dabad99828b573d712b49470b3f080f64736f6c634300060c003300000000000000000000000027c79ac9f179380ef836c4151754337ecff53b7a000000000000000000000000b0dfce22af9d6ded6a2d2e83a7ecd2bd9f08d5960000000000000000000000008c3f2be95cbda68031c79409de5c0a597fe028da
Deployed Bytecode
0x6080604052600436106100bc5760003560e01c80636922d7b61161007457806376a54c601161004e57806376a54c6014610247578063916efaaf146102a0578063d4d5b1b1146102b5576100bc565b80636922d7b6146101dd5780636e9960c31461021d5780636f36e56a14610232576100bc565b806321df0da7116100a557806321df0da714610149578063287cc96b146101875780634fb1bf4c146101ae576100bc565b806305ab421d146100c15780631865c57d14610109575b600080fd5b3480156100cd57600080fd5b50610107600480360360408110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610305565b005b34801561011557600080fd5b5061011e6105f6565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561015557600080fd5b5061015e610610565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561019357600080fd5b5061019c61062c565b60408051918252519081900360200190f35b610107600480360360608110156101c457600080fd5b5080359061ffff60208201351690604001351515610630565b3480156101e957600080fd5b506101076004803603602081101561020057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610ab1565b34801561022957600080fd5b5061015e610bae565b34801561023e57600080fd5b5061015e610bca565b34801561025357600080fd5b506102876004803603602081101561026a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610be6565b6040805192835260208301919091528051918290030190f35b3480156102ac57600080fd5b5061019c610d04565b3480156102c157600080fd5b506102e7600480360360408110156102d857600080fd5b50803590602001351515610da6565b60408051938452602084019290925282820152519081900360600190f35b60005460408051808201909152600e81527f4552525f4d53475f53454e44455200000000000000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff1633146103f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103bc5781810151838201526020016103a4565b50505050905090810190601f1680156103e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508061054957600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb91859184916370a08231916024808301926020929190829003018186803b15801561047757600080fd5b505afa15801561048b573d6000803e3d6000fd5b505050506040513d60208110156104a157600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091525160448083019260209291908290030181600087803b15801561051757600080fd5b505af115801561052b573d6000803e3d6000fd5b505050506040513d602081101561054157600080fd5b506105f29050565b600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b505050506040513d60208110156105ef57600080fd5b50505b5050565b600354600454600554600654600754939492939192909190565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b4790565b60408051808201909152600c81527f4552525f5a45524f5f45544800000000000000000000000000000000000000006020820152346106ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b506000831161073a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552525f5a45524f5f4558505f414d4f554e5400000000000000000000000000604482015290519081900360640190fd5b6101f48261ffff1611156107af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552525f534c4950504147455f544f4f5f424947000000000000000000000000604482015290519081900360640190fd5b600254600354600754604080517f72b5e81f0000000000000000000000000000000000000000000000000000000081523460048201526024810188905261ffff871660448201526064810193909352608483019190915283151560a4830152516000928392839273ffffffffffffffffffffffffffffffffffffffff909216916372b5e81f9160c480820192606092909190829003018186803b15801561085557600080fd5b505afa158015610869573d6000803e3d6000fd5b505050506040513d606081101561087f57600080fd5b508051602082015160409092015190945090925090508261090157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552525f5a45524f5f41435455414c5f544f4b454e5300000000000000000000604482015290519081900360640190fd5b80341461096f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552525f57524f4e475f4554485f414d4f554e54000000000000000000000000604482015290519081900360640190fd5b60055461097c9083610f2d565b60055561099561098c3484610fa8565b60035490610f2d565b6003556007546109a59084610f2d565b600755600154604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101869052905173ffffffffffffffffffffffffffffffffffffffff9092169163a9059cbb916044808201926020929091908290030181600087803b158015610a2257600080fd5b505af1158015610a36573d6000803e3d6000fd5b505050506040513d6020811015610a4c57600080fd5b5050600754604080513481526020810189905261ffff881681830152606081018590526080810186905260a0810192909252517f02b3b3e8d1a49a602813b09da25ec1dfbfd741df61c5297a3868b9cc556e73389181900360c00190a1505050505050565b60005460408051808201909152600e81527f4552525f4d53475f53454e44455200000000000000000000000000000000000060208201529073ffffffffffffffffffffffffffffffffffffffff163314610b66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b6000805460408051808201909152600e81527f4552525f4d53475f53454e4445520000000000000000000000000000000000006020820152829173ffffffffffffffffffffffffffffffffffffffff163314610c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b5060405173ffffffffffffffffffffffffffffffffffffffff8416904780156108fc02916000818181858888f19350505050158015610ce0573d6000803e3d6000fd5b50506004805460035460068054600554948390559084905591900394910392509050565b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015610d7557600080fd5b505afa158015610d89573d6000803e3d6000fd5b505050506040513d6020811015610d9f57600080fd5b5051905090565b60008060008085116040518060400160405280600c81526020017f4552525f5a45524f5f455448000000000000000000000000000000000000000081525090610e4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50600254600354600754604080517f72b5e81f000000000000000000000000000000000000000000000000000000008152600481018a905260006024820181905260448201526064810193909352608483019190915286151560a48301525173ffffffffffffffffffffffffffffffffffffffff909216916372b5e81f9160c480820192606092909190829003018186803b158015610ee857600080fd5b505afa158015610efc573d6000803e3d6000fd5b505050506040513d6060811015610f1257600080fd5b50805160208201516040909201519097919650945092505050565b600082820183811015610fa157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000610fa183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115611051576040517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482018181528351602484015283519092839260449091019190850190808383600083156103bc5781810151838201526020016103a4565b50505090039056fea26469706673582212200426d78ac6a23aa062cd079d4ed35a710dabad99828b573d712b49470b3f080f64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000027c79ac9f179380ef836c4151754337ecff53b7a000000000000000000000000b0dfce22af9d6ded6a2d2e83a7ecd2bd9f08d5960000000000000000000000008c3f2be95cbda68031c79409de5c0a597fe028da
-----Decoded View---------------
Arg [0] : _admin (address): 0x27c79aC9f179380Ef836C4151754337EcfF53b7A
Arg [1] : _token (address): 0xB0dfcE22aF9d6Ded6A2d2E83a7EcD2BD9f08d596
Arg [2] : _priceCalculator (address): 0x8C3f2be95cBdA68031C79409De5c0a597Fe028DA
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000027c79ac9f179380ef836c4151754337ecff53b7a
Arg [1] : 000000000000000000000000b0dfce22af9d6ded6a2d2e83a7ecd2bd9f08d596
Arg [2] : 0000000000000000000000008c3f2be95cbda68031c79409de5c0a597fe028da
Deployed Bytecode Sourcemap
148:6143:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2775:330;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2775:330:1;;;;;;;;;:::i;:::-;;4318:534;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1387:97;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1785:114;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5152:1006;;;;;;;;;;;;;;;;-1:-1:-1;5152:1006:1;;;;;;;;;;;;;;;;:::i;3532:208::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3532:208:1;;;;:::i;1287:88::-;;;;;;;;;;;;;:::i;3403:117::-;;;;;;;;;;;;;:::i;1911:422::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1911:422:1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2637:126;;;;;;;;;;;;;:::i;3752:271::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3752:271:1;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2775:330;2872:5;;2879:14;;;;;;;;;;;;;;;;;;2872:5;;2858:10;:19;2850:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2918:12:1;2915:183;;2956:5;;2976:30;;;;;;3000:4;2976:30;;;;;;2956:5;;;;;:14;;2971:3;;2956:5;;2976:15;;:30;;;;;;;;;;;;;;2956:5;2976:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2976:30:1;2956:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2976:30;;2956:51;;;;;;;-1:-1:-1;2956:51:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2915:183:1;;-1:-1:-1;2915:183:1;;3058:5;;:28;;;;;;:5;:28;;;;;;;;;;;;;;;:5;;;;;:14;;:28;;;;;;;;;;;;;;:5;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2915:183:1;2775:330;;:::o;4318:534::-;4690:10;;4730:15;;4766:6;;4798:11;;4834:10;;4690;;4730:15;;4766:6;;4798:11;;4834:10;4318:534::o;1387:97::-;1470:5;;;;1387:97;:::o;1785:114::-;1870:21;1785:114;:::o;5152:1006::-;5289:12;;;;;;;;;;;;;;;;;5274:9;5266:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5345:1;5321:21;:25;5313:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5402:3;5389:9;:16;;;;5381:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5539:15;;5605:10;;5617;;5539:102;;;;;;5560:9;5539:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5452:26;;;;;;5539:15;;;;;:20;;:102;;;;;;;;;;;;;;;:15;:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5539:102:1;;;;;;;;;;;;;-1:-1:-1;5539:102:1;;-1:-1:-1;5539:102:1;-1:-1:-1;5674:22:1;5666:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5755:15;5742:9;:28;5734:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5825:6;;:21;;5836:9;5825:10;:21::i;:::-;5816:6;:30;5870:40;5885:24;:9;5899;5885:13;:24::i;:::-;5870:10;;;:14;:40::i;:::-;5857:10;:53;5934:10;;:34;;5949:18;5934:14;:34::i;:::-;5921:10;:47;5989:5;;:46;;;;;;6004:10;5989:46;;;;;;;;;;;;:5;;;;;:14;;:46;;;;;;;;;;;;;;;:5;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6139:10:1;;6058:92;;;6063:9;6058:92;;5989:46;6058:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5152:1006;;;;;;:::o;3532:208::-;3633:5;;3640:14;;;;;;;;;;;;;;;;;;3633:5;;3619:10;:19;3611:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3676:15:1;:56;;;;;;;;;;;;;;;3532:208::o;1287:88::-;1330:7;1362:5;;;1287:88;:::o;3403:117::-;3496:15;;;;3403:117;:::o;1911:422::-;1967:24;2053:5;;2060:14;;;;;;;;;;;;;;;;;1967:24;;2053:5;;2039:10;:19;2031:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2096:35:1;;:12;;;;2109:21;2096:35;;;;;;;;;2109:21;2096:12;:35;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2184:15:1;;;2171:10;;2234:11;;;2225:6;;2266:28;;;;2305:20;;;;2171:28;;;;2225:20;;;-1:-1:-1;1911:422:1;-1:-1:-1;1911:422:1:o;2637:126::-;2725:5;;:30;;;;;;2749:4;2725:30;;;;;;2693:7;;2725:5;;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2725:30:1;;-1:-1:-1;2637:126:1;:::o;3752:271::-;3832:7;3841;3850;3896:1;3883:10;:14;3899:12;;;;;;;;;;;;;;;;;3875:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3940:15:1;;3979:10;;3991;;3940:75;;;;;;;;;;;;:15;:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;;:20;;:75;;;;;;;;;;;;;;;:15;:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3940:75:1;;;;;;;;;;;;;;;-1:-1:-1;3940:75:1;-1:-1:-1;3752:271:1;-1:-1:-1;;;3752:271:1:o;952:181:2:-;1010:7;1042:5;;;1066:6;;;;1058:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1124:1;952:181;-1:-1:-1;;;952:181:2:o;1416:136::-;1474:7;1501:43;1505:1;1508;1501:43;;;;;;;;;;;;;;;;;1941:7;1977:12;1969:6;;;;1961:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2013:5:2;;;1855:192::o
Swarm Source
ipfs://0426d78ac6a23aa062cd079d4ed35a710dabad99828b573d712b49470b3f080f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.