Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 6 from a total of 6 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Beneficiary | 10997527 | 1471 days ago | IN | 0 ETH | 0.0021689 | ||||
Setbasis Points | 10823831 | 1498 days ago | IN | 0 ETH | 0.00251988 | ||||
Transfer Ownersh... | 10555789 | 1539 days ago | IN | 0 ETH | 0.00254257 | ||||
Setbasis Points | 10555767 | 1539 days ago | IN | 0 ETH | 0.00251988 | ||||
Set Beneficiary | 10555766 | 1539 days ago | IN | 0 ETH | 0.00261456 | ||||
0x60806040 | 10524377 | 1544 days ago | IN | 0 ETH | 0.19300762 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
11200764 | 1440 days ago | 9.60190425 ETH | ||||
11200764 | 1440 days ago | 0.01685394 ETH | ||||
11200764 | 1440 days ago | 0.06741577 ETH | ||||
11200764 | 1440 days ago | 9.68617396 ETH | ||||
11200504 | 1440 days ago | 9.46554246 ETH | ||||
11200504 | 1440 days ago | 0.01661459 ETH | ||||
11200504 | 1440 days ago | 0.06645836 ETH | ||||
11200504 | 1440 days ago | 9.54861542 ETH | ||||
11200447 | 1440 days ago | 0.45 ETH | ||||
11200447 | 1440 days ago | 0.45 ETH | ||||
11200433 | 1440 days ago | 1 ETH | ||||
11200433 | 1440 days ago | 1 ETH | ||||
11200419 | 1440 days ago | 20 ETH | ||||
11200419 | 1440 days ago | 20 ETH | ||||
11200396 | 1440 days ago | 1 ETH | ||||
11200396 | 1440 days ago | 1 ETH | ||||
11200348 | 1440 days ago | 5.08476817 ETH | ||||
11200348 | 1440 days ago | 0.00892514 ETH | ||||
11200348 | 1440 days ago | 0.03570058 ETH | ||||
11200348 | 1440 days ago | 5.1293939 ETH | ||||
11200332 | 1440 days ago | 4 ETH | ||||
11200332 | 1440 days ago | 4 ETH | ||||
11200318 | 1440 days ago | 1 ETH | ||||
11200318 | 1440 days ago | 1 ETH | ||||
11200215 | 1440 days ago | 0.06 ETH |
Loading...
Loading
Contract Name:
DexTradingWithCollection
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-24 */ pragma solidity ^0.5.10; pragma experimental ABIEncoderV2; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return msg.sender == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * > Note: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @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) { require(b <= a, "SafeMath: subtraction overflow"); 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-solidity/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) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); 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) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see `ERC20Detailed`. */ 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. * * > 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); } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * > It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } /** * @dev Converts an `address` into `address payable`. Note that this is * simply a type cast: the actual underlying value is not changed. */ function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length require(address(token).isContract(), "SafeERC20: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract Callable { // Source: https://github.com/gnosis/MultiSigWallet/blob/master/contracts/MultiSigWallet.sol // call has been separated into its own function in order to take advantage // of the Solidity's code generator to produce a loop that copies tx.data into memory. function external_call(address destination, uint value, uint dataOffset, uint dataLength, bytes memory data) internal returns (bool) { bool result; assembly { let x := mload(0x40) // "Allocate" memory for output (0x40 is where "free memory" pointer is stored by convention) let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that result := call( sub(gas, 34710), // 34710 is the value that solidity is currently emitting // It includes callGas (700) + callVeryLow (3, to pay for SUB) + callValueTransferGas (9000) + // callNewAccountGas (25000, in case the destination address does not exist and needs creating) destination, value, add(d, dataOffset), dataLength, // Size of the input (in bytes) - this is what fixes the padding problem x, 0 // Output is ignored, therefore the output size is zero ) } return result; } } contract IWETH is IERC20 { function withdraw(uint256 amount) external; } contract ApprovalHandler is Ownable { using SafeERC20 for IERC20; function transferFrom(IERC20 erc, address sender, address receiver, uint256 numTokens) external onlyOwner { erc.safeTransferFrom(sender, receiver, numTokens); } } contract DexTradingWithCollection is Ownable, Callable { using SafeMath for uint256; using SafeERC20 for IERC20; ApprovalHandler public approvalHandler; event Trade(address indexed from, address indexed to, uint256 toAmount, address indexed trader, address[] exchanges, uint256 tradeType); event BasisPointsSet(uint256 indexed newBasisPoints); event BeneficiarySet(address indexed newBeneficiary); event DexagSet(address indexed newDexag); IWETH public WETH = IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); address payable beneficiary; address payable dexag; uint256 public basisPoints; constructor(address payable _beneficiary, address payable _dexag, uint256 _basisPoints) public { approvalHandler = new ApprovalHandler(); beneficiary = _beneficiary; dexag = _dexag; basisPoints = _basisPoints; } function trade( IERC20 from, IERC20 to, uint256 fromAmount, address[] memory exchanges, address[] memory approvals, bytes memory data, uint256[] memory offsets, uint256[] memory etherValues, uint256 limitAmount, uint256 tradeType ) public payable { require(exchanges.length > 0, 'No Exchanges'); require(exchanges.length == approvals.length, 'Every exchange must have an approval'); require(limitAmount > 0, 'Limit Amount must be set'); // if from is an ERC20, pull tokens from msg.sender if (address(from) != 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) { approvalHandler.transferFrom(from, msg.sender, address(this), fromAmount); } // execute trades on dexes executeTrades(from, exchanges, approvals, data, offsets, etherValues); // check how many tokens were received after trade execution uint256 tradeReturn = viewBalance(to, address(this)); require(tradeReturn >= limitAmount, 'Trade returned less than the minimum amount'); // return any unspent funds uint256 leftover = viewBalance(from, address(this)); if (leftover > 0) { sendFunds(from, msg.sender, leftover); } sendCollectionAmount(to, tradeReturn); sendFunds(to, msg.sender, viewBalance(to, address(this))); // check for leftover ethFee address self = address(this); msg.sender.transfer(self.balance); emit Trade(address(from), address(to), tradeReturn, msg.sender, exchanges, tradeType); } function tradeAndSend( IERC20 from, IERC20 to, address payable recipient, uint256 fromAmount, address[] memory exchanges, address[] memory approvals, bytes memory data, uint256[] memory offsets, uint256[] memory etherValues, uint256 limitAmount, uint256 tradeType ) public payable { require(exchanges.length > 0, 'No Exchanges'); require(exchanges.length == approvals.length, 'Every exchange must have an approval'); require(limitAmount > 0, 'Limit Amount must be set'); require(recipient != address(0), 'Must set a recipient'); // if from is an ERC20, pull tokens from msg.sender if (address(from) != 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) { approvalHandler.transferFrom(from, msg.sender, address(this), fromAmount); } // execute trades on dexes executeTrades(from, exchanges, approvals, data, offsets, etherValues); // check how many tokens were received after trade execution uint256 tradeReturn = viewBalance(to, address(this)); require(tradeReturn >= limitAmount, 'Trade returned less than the minimum amount'); // return any unspent funds uint256 leftover = viewBalance(from, address(this)); if (leftover > 0) { sendFunds(from, msg.sender, leftover); } sendCollectionAmount(to, tradeReturn); sendFunds(to, recipient, viewBalance(to, address(this))); // check for leftover ethFee address self = address(this); msg.sender.transfer(self.balance); emit Trade(address(from), address(to), tradeReturn, msg.sender, exchanges, tradeType); } function executeTrades( IERC20 from, address[] memory exchanges, address[] memory approvals, bytes memory data, uint256[] memory offsets, uint256[] memory etherValues) internal { for (uint i = 0; i < exchanges.length; i++) { // prevent calling the approvalHandler and check that exchange is a valid contract address require(exchanges[i] != address(approvalHandler) && isContract(exchanges[i]), 'Invalid Address'); if (approvals[i] != address(0)) { // handle approval if the aprovee is not the exchange address approve(from, approvals[i]); } else { // handle approval if the approvee is the exchange address approve(from, exchanges[i]); } // do trade require(external_call(exchanges[i], etherValues[i], offsets[i], offsets[i + 1] - offsets[i], data), 'External Call Failed'); } } // ERC20 Utility Functions function approve(IERC20 erc, address approvee) internal { if ( address(erc) != 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE && erc.allowance(address(this), approvee) == 0 ) { erc.safeApprove(approvee, uint256(-1)); } } function viewBalance(IERC20 erc, address owner) internal view returns(uint256) { if (address(erc) == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) { return owner.balance; } else { return erc.balanceOf(owner); } } function sendFunds(IERC20 erc, address payable receiver, uint256 funds) internal { if (address(erc) == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) { receiver.transfer(funds); } else { erc.safeTransfer(receiver, funds); } } // Send collection amounts function sendCollectionAmount(IERC20 erc, uint256 tradeReturn) internal { uint256 collectionAmount = tradeReturn.mul(basisPoints).div(10000); uint256 platformFee = collectionAmount.mul(4).div(5); sendFunds(erc, beneficiary, platformFee); sendFunds(erc, dexag, collectionAmount.sub(platformFee)); } // Contract Settings function setbasisPoints(uint256 _basisPoints) external onlyOwner { basisPoints = _basisPoints; emit BasisPointsSet(basisPoints); } function setBeneficiary(address payable _beneficiary) external onlyOwner { require(_beneficiary != address(0)); beneficiary = _beneficiary; emit BeneficiarySet(_beneficiary); } function setDexag(address payable _dexag) external { require(msg.sender == address(dexag)); require(_dexag != address(0)); dexag = _dexag; emit DexagSet(dexag); } /** * @dev Returns true if `account` is a contract. * * This test is non-exhaustive, and there may be false-negatives: during the * execution of a contract's constructor, its address will be reported as * not containing a contract. * * > It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != 0x0 && codehash != accountHash); } function withdrawWeth() external { uint256 amount = WETH.balanceOf(address(this)); WETH.withdraw(amount); } function () external payable { require(msg.sender != tx.origin); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"address payable","name":"_dexag","type":"address"},{"internalType":"uint256","name":"_basisPoints","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newBasisPoints","type":"uint256"}],"name":"BasisPointsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newBeneficiary","type":"address"}],"name":"BeneficiarySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newDexag","type":"address"}],"name":"DexagSet","type":"event"},{"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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"toAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"address[]","name":"exchanges","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"tradeType","type":"uint256"}],"name":"Trade","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"approvalHandler","outputs":[{"internalType":"contract ApprovalHandler","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_dexag","type":"address"}],"name":"setDexag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_basisPoints","type":"uint256"}],"name":"setbasisPoints","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"from","type":"address"},{"internalType":"contract IERC20","name":"to","type":"address"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"address[]","name":"exchanges","type":"address[]"},{"internalType":"address[]","name":"approvals","type":"address[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256[]","name":"offsets","type":"uint256[]"},{"internalType":"uint256[]","name":"etherValues","type":"uint256[]"},{"internalType":"uint256","name":"limitAmount","type":"uint256"},{"internalType":"uint256","name":"tradeType","type":"uint256"}],"name":"trade","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"from","type":"address"},{"internalType":"contract IERC20","name":"to","type":"address"},{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"fromAmount","type":"uint256"},{"internalType":"address[]","name":"exchanges","type":"address[]"},{"internalType":"address[]","name":"approvals","type":"address[]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256[]","name":"offsets","type":"uint256[]"},{"internalType":"uint256[]","name":"etherValues","type":"uint256[]"},{"internalType":"uint256","name":"limitAmount","type":"uint256"},{"internalType":"uint256","name":"tradeType","type":"uint256"}],"name":"tradeAndSend","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawWeth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600280546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790553480156200003757600080fd5b50604051620030c2380380620030c28339810160408190526200005a9162000145565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3604051620000b19062000117565b604051809103906000f080158015620000ce573d6000803e3d6000fd5b50600180546001600160a01b03199081166001600160a01b03938416179091556003805482169583169590951790945560048054909416921691909117909155600555620001d3565b610a0480620026be83390190565b80516200013281620001ae565b92915050565b80516200013281620001c8565b6000806000606084860312156200015b57600080fd5b600062000169868662000125565b93505060206200017c8682870162000125565b92505060406200018f8682870162000138565b9150509250925092565b60006001600160a01b03821662000132565b90565b620001b98162000199565b8114620001c557600080fd5b50565b620001b981620001ab565b6124db80620001e36000396000f3fe6080604052600436106100d25760003560e01c80638da5cb5b1161007f578063ad5c464811610059578063ad5c4648146101ef578063ef3f3d0b14610204578063f062b9d314610217578063f2fde38b14610237576100d2565b80638da5cb5b1461018b5780638f32d59b146101ad5780639cfdaf5e146101cf576100d2565b80635d46ec34116100b05780635d46ec34146101415780635fa2336a14610154578063715018a614610176576100d2565b80631c31f710146100e15780632922a751146101015780635a862dcc1461012c575b333214156100df57600080fd5b005b3480156100ed57600080fd5b506100df6100fc3660046118d6565b610257565b34801561010d57600080fd5b5061011661032d565b60405161012391906121c9565b60405180910390f35b34801561013857600080fd5b506100df610349565b6100df61014f366004611a78565b61047c565b34801561016057600080fd5b5061016961073e565b604051610123919061230c565b34801561018257600080fd5b506100df610744565b34801561019757600080fd5b506101a06107f1565b604051610123919061215b565b3480156101b957600080fd5b506101c261080d565b60405161012391906121bb565b3480156101db57600080fd5b506100df6101ea3660046118d6565b61082b565b3480156101fb57600080fd5b506101166108e4565b6100df610212366004611912565b610900565b34801561022357600080fd5b506100df610232366004611bc9565b610c0b565b34801561024357600080fd5b506100df6102523660046118d6565b610c7c565b61025f61080d565b61029e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166102be57600080fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a2490600090a250565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6002546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a08231906103a0903090600401612169565b60206040518083038186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103f09190810190611be7565b6002546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d9061044790849060040161230c565b600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050565b60008751116104b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061225c565b85518751146104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061220c565b6000821161052c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122cc565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8b16146105ec576001546040517f15dacbea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906315dacbea906105b9908d90339030908e906004016121d7565b600060405180830381600087803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b505050505b6105fa8a8888888888610cc6565b60006106068a30610ea6565b905082811015610642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061222c565b600061064e8c30610ea6565b90508015610661576106618c3383610fa3565b61066b8b8361104a565b61067f8b3361067a8e30610ea6565b610fa3565b60405130903390823180156108fc02916000818181858888f193505050501580156106ae573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff167f7d76860f120f877ecdc289aa48a7ccc6d0782d9fc59f154c29bc262b7f8308cc868e896040516107279392919061231a565b60405180910390a450505050505050505050505050565b60055481565b61074c61080d565b610782576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331490565b60045473ffffffffffffffffffffffffffffffffffffffff16331461084f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811661086f57600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f0c1b5ffba24e81e63584d7422031c28d136f01bf3cce2257025186cd623a427f90600090a250565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600087511161093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061225c565b8551875114610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061220c565b600082116109b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122cc565b73ffffffffffffffffffffffffffffffffffffffff89166109fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122ac565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8c1614610abd576001546040517f15dacbea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906315dacbea90610a8a908e90339030908e906004016121d7565b600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505b610acb8b8888888888610cc6565b6000610ad78b30610ea6565b905082811015610b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061222c565b6000610b1f8d30610ea6565b90508015610b3257610b328d3383610fa3565b610b3c8c8361104a565b610b4b8c8c61067a8f30610ea6565b60405130903390823180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff168f73ffffffffffffffffffffffffffffffffffffffff167f7d76860f120f877ecdc289aa48a7ccc6d0782d9fc59f154c29bc262b7f8308cc868e89604051610bf39392919061231a565b60405180910390a45050505050505050505050505050565b610c1361080d565b610c49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b600581905560405181907f1ddc2741598aa63e608a6be81f604c9fae7ac7e28ba654db4500439c76c24aae90600090a250565b610c8461080d565b610cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b610cc3816110ea565b50565b60005b8551811015610e9d57600154865173ffffffffffffffffffffffffffffffffffffffff90911690879083908110610cfc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610d3f5750610d3f868281518110610d3257fe5b60200260200101516111c4565b610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122bc565b600073ffffffffffffffffffffffffffffffffffffffff16858281518110610d9957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610dde57610dd987868381518110610dcc57fe5b6020026020010151611200565b610dee565b610dee87878381518110610dcc57fe5b610e5f868281518110610dfd57fe5b6020026020010151838381518110610e1157fe5b6020026020010151858481518110610e2557fe5b6020026020010151868581518110610e3957fe5b6020026020010151878660010181518110610e5057fe5b6020026020010151038861132b565b610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061223c565b600101610cc9565b50505050505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff84161415610ef8575073ffffffffffffffffffffffffffffffffffffffff811631610f9d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610f4a90859060040161215b565b60206040518083038186803b158015610f6257600080fd5b505afa158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f9a9190810190611be7565b90505b92915050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8416141561101e5760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611018573d6000803e3d6000fd5b50611045565b61104573ffffffffffffffffffffffffffffffffffffffff8416838363ffffffff61135316565b505050565b60006110736127106110676005548561141090919063ffffffff16565b9063ffffffff61146416565b9050600061108d600561106784600463ffffffff61141016565b6003549091506110b590859073ffffffffffffffffffffffffffffffffffffffff1683610fa3565b6004546110e490859073ffffffffffffffffffffffffffffffffffffffff1661067a858563ffffffff6114b316565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116611137576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061221c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906111f85750808214155b949350505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8316148015906112db57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e906112899030908590600401612177565b60206040518083038186803b1580156112a157600080fd5b505afa1580156112b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d99190810190611be7565b155b156113275761132773ffffffffffffffffffffffffffffffffffffffff8316827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff6114f516565b5050565b60008060405160208401600082878984018b8d6187965a03f193505050505b95945050505050565b6040516110459084907fa9059cbb000000000000000000000000000000000000000000000000000000009061138e90869086906024016121a0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611614565b60008261141f57506000610f9d565b8282028284828161142c57fe5b0414610f9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061228c565b600080821161149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061227c565b60008284816114aa57fe5b04949350505050565b6000828211156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061226c565b50900390565b8015806115a357506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e906115519030908690600401612192565b60206040518083038186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115a19190810190611be7565b155b6115d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122ec565b6040516110459084907f095ea7b3000000000000000000000000000000000000000000000000000000009061138e90869086906024016121a0565b6116338273ffffffffffffffffffffffffffffffffffffffff166111c4565b611669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122fc565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516116929190612148565b6000604051808303816000865af19150503d80600081146116cf576040519150601f19603f3d011682016040523d82523d6000602084013e6116d4565b606091505b509150915081611710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061224c565b8051156110e4578080602001905161172b91908101906118f4565b6110e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122dc565b8035610f9d81612469565b600082601f83011261177d57600080fd5b813561179061178b82612370565b612349565b915081818352602084019350602081019050838560208402820111156117b557600080fd5b60005b838110156117e157816117cb8882611761565b84525060209283019291909101906001016117b8565b5050505092915050565b600082601f8301126117fc57600080fd5b813561180a61178b82612370565b9150818183526020840193506020810190508385602084028201111561182f57600080fd5b60005b838110156117e1578161184588826118c0565b8452506020928301929190910190600101611832565b8051610f9d8161247d565b600082601f83011261187757600080fd5b813561188561178b82612391565b915080825260208301602083018583830111156118a157600080fd5b6118ac838284612431565b50505092915050565b8035610f9d81612486565b8035610f9d8161248f565b8051610f9d8161248f565b6000602082840312156118e857600080fd5b60006111f88484611761565b60006020828403121561190657600080fd5b60006111f8848461185b565b60008060008060008060008060008060006101608c8e03121561193457600080fd5b60006119408e8e6118b5565b9b505060206119518e828f016118b5565b9a505060406119628e828f01611761565b99505060606119738e828f016118c0565b98505060808c013567ffffffffffffffff81111561199057600080fd5b61199c8e828f0161176c565b97505060a08c013567ffffffffffffffff8111156119b957600080fd5b6119c58e828f0161176c565b96505060c08c013567ffffffffffffffff8111156119e257600080fd5b6119ee8e828f01611866565b95505060e08c013567ffffffffffffffff811115611a0b57600080fd5b611a178e828f016117eb565b9450506101008c013567ffffffffffffffff811115611a3557600080fd5b611a418e828f016117eb565b935050610120611a538e828f016118c0565b925050610140611a658e828f016118c0565b9150509295989b509295989b9093969950565b6000806000806000806000806000806101408b8d031215611a9857600080fd5b6000611aa48d8d6118b5565b9a50506020611ab58d828e016118b5565b9950506040611ac68d828e016118c0565b98505060608b013567ffffffffffffffff811115611ae357600080fd5b611aef8d828e0161176c565b97505060808b013567ffffffffffffffff811115611b0c57600080fd5b611b188d828e0161176c565b96505060a08b013567ffffffffffffffff811115611b3557600080fd5b611b418d828e01611866565b95505060c08b013567ffffffffffffffff811115611b5e57600080fd5b611b6a8d828e016117eb565b94505060e08b013567ffffffffffffffff811115611b8757600080fd5b611b938d828e016117eb565b935050610100611ba58d828e016118c0565b925050610120611bb78d828e016118c0565b9150509295989b9194979a5092959850565b600060208284031215611bdb57600080fd5b60006111f884846118c0565b600060208284031215611bf957600080fd5b60006111f884846118cb565b6000611c118383611c28565b505060200190565b611c2281612426565b82525050565b611c22816123ef565b6000611c3c826123dd565b611c4681856123e1565b9350611c51836123d7565b8060005b83811015611c7f578151611c698882611c05565b9750611c74836123d7565b925050600101611c55565b509495945050505050565b611c22816123fa565b6000611c9e826123dd565b611ca881856123ea565b9350611cb881856020860161243d565b9290920192915050565b611c22816123ff565b6000611cd86024836123e1565b7f45766572792065786368616e6765206d757374206861766520616e206170707281527f6f76616c00000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d376026836123e1565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d96602b836123e1565b7f54726164652072657475726e6564206c657373207468616e20746865206d696e81527f696d756d20616d6f756e74000000000000000000000000000000000000000000602082015260400192915050565b6000611df56014836123e1565b7f45787465726e616c2043616c6c204661696c6564000000000000000000000000815260200192915050565b6000611e2e6020836123e1565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000611e67600c836123e1565b7f4e6f2045786368616e6765730000000000000000000000000000000000000000815260200192915050565b6000611ea0601e836123e1565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611ed9601a836123e1565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611f126021836123e1565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611f716020836123e1565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000611faa6014836123e1565b7f4d75737420736574206120726563697069656e74000000000000000000000000815260200192915050565b6000611fe3600f836123e1565b7f496e76616c696420416464726573730000000000000000000000000000000000815260200192915050565b600061201c6018836123e1565b7f4c696d697420416d6f756e74206d757374206265207365740000000000000000815260200192915050565b6000612055602a836123e1565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b60006120b46036836123e1565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b6000612113601f836123e1565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b611c2281612423565b60006121548284611c93565b9392505050565b60208101610f9d8284611c28565b60208101610f9d8284611c19565b604081016121858285611c19565b6121546020830184611c28565b604081016121858285611c28565b604081016121ae8285611c28565b612154602083018461213f565b60208101610f9d8284611c8a565b60208101610f9d8284611cc2565b608081016121e58287611cc2565b6121f26020830186611c19565b6121ff6040830185611c19565b61134a606083018461213f565b60208082528101610f9d81611ccb565b60208082528101610f9d81611d2a565b60208082528101610f9d81611d89565b60208082528101610f9d81611de8565b60208082528101610f9d81611e21565b60208082528101610f9d81611e5a565b60208082528101610f9d81611e93565b60208082528101610f9d81611ecc565b60208082528101610f9d81611f05565b60208082528101610f9d81611f64565b60208082528101610f9d81611f9d565b60208082528101610f9d81611fd6565b60208082528101610f9d8161200f565b60208082528101610f9d81612048565b60208082528101610f9d816120a7565b60208082528101610f9d81612106565b60208101610f9d828461213f565b60608101612328828661213f565b818103602083015261233a8185611c31565b90506111f8604083018461213f565b60405181810167ffffffffffffffff8111828210171561236857600080fd5b604052919050565b600067ffffffffffffffff82111561238757600080fd5b5060209081020190565b600067ffffffffffffffff8211156123a857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b919050565b6000610f9d8261240a565b151590565b6000610f9d826123ef565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b6000610f9d826123ff565b82818337506000910152565b60005b83811015612458578181015183820152602001612440565b838111156110e45750506000910152565b612472816123ef565b8114610cc357600080fd5b612472816123fa565b612472816123ff565b6124728161242356fea365627a7a7231582048b0e5a7be17cdc00440bcebb65641a08c134514f7f4cc555dc09b55eac9ffbe6c6578706572696d656e74616cf564736f6c6343000511004060806040819052600080546001600160a01b03191633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36109ad806100576000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80638da5cb5b116100505780638da5cb5b146100895780638f32d59b146100a7578063f2fde38b146100bc57610067565b806315dacbea1461006c578063715018a614610081575b600080fd5b61007f61007a366004610605565b6100cf565b005b61007f610144565b6100916101f1565b60405161009e9190610832565b60405180910390f35b6100af61020d565b60405161009e9190610868565b61007f6100ca3660046105c9565b61022b565b6100d761020d565b610116576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d90610896565b60405180910390fd5b61013e73ffffffffffffffffffffffffffffffffffffffff851684848463ffffffff61027516565b50505050565b61014c61020d565b610182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d90610896565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331490565b61023361020d565b610269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d90610896565b61027281610334565b50565b60405161013e9085907f23b872dd00000000000000000000000000000000000000000000000000000000906102b290879087908790602401610840565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261040e565b73ffffffffffffffffffffffffffffffffffffffff8116610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d90610876565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61042d8273ffffffffffffffffffffffffffffffffffffffff1661055b565b610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d906108b6565b600060608373ffffffffffffffffffffffffffffffffffffffff168360405161048c919061081f565b6000604051808303816000865af19150503d80600081146104c9576040519150601f19603f3d011682016040523d82523d6000602084013e6104ce565b606091505b50915091508161050a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d90610886565b80511561013e578080602001905161052591908101906105e7565b61013e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010d906108a6565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470811580159061058f5750808214155b949350505050565b80356105a28161093b565b92915050565b80516105a28161094f565b80356105a281610958565b80356105a281610961565b6000602082840312156105db57600080fd5b600061058f8484610597565b6000602082840312156105f957600080fd5b600061058f84846105a8565b6000806000806080858703121561061b57600080fd5b600061062787876105b3565b945050602061063887828801610597565b935050604061064987828801610597565b925050606061065a878288016105be565b91505092959194509250565b61066f816108d8565b82525050565b61066f816108e3565b6000610689826108c6565b61069381856108ca565b93506106a381856020860161090f565b9290920192915050565b60006106ba6026836108cf565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b60006107196020836108cf565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b60006107526020836108cf565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b600061078b602a836108cf565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b60006107ea601f836108cf565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b61066f8161090c565b600061082b828461067e565b9392505050565b602081016105a28284610666565b6060810161084e8286610666565b61085b6020830185610666565b61058f6040830184610816565b602081016105a28284610675565b602080825281016105a2816106ad565b602080825281016105a28161070c565b602080825281016105a281610745565b602080825281016105a28161077e565b602080825281016105a2816107dd565b5190565b919050565b90815260200190565b60006105a2826108f3565b151590565b60006105a2826108d8565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b60005b8381101561092a578181015183820152602001610912565b8381111561013e5750506000910152565b610944816108d8565b811461027257600080fd5b610944816108e3565b610944816108e8565b6109448161090c56fea365627a7a7231582015d9cdcd3849ad6593a1522d8e87caf2b81bb8102e49a793eadc816b6b4d50036c6578706572696d656e74616cf564736f6c63430005110040000000000000000000000000d0c81e82abddf29c6505d660f5bebe60cdff03c500000000000000000000000092c1f48ad7ef2ae00801620325af996f843293a300000000000000000000000000000000000000000000000000000000000000c8
Deployed Bytecode
0x6080604052600436106100d25760003560e01c80638da5cb5b1161007f578063ad5c464811610059578063ad5c4648146101ef578063ef3f3d0b14610204578063f062b9d314610217578063f2fde38b14610237576100d2565b80638da5cb5b1461018b5780638f32d59b146101ad5780639cfdaf5e146101cf576100d2565b80635d46ec34116100b05780635d46ec34146101415780635fa2336a14610154578063715018a614610176576100d2565b80631c31f710146100e15780632922a751146101015780635a862dcc1461012c575b333214156100df57600080fd5b005b3480156100ed57600080fd5b506100df6100fc3660046118d6565b610257565b34801561010d57600080fd5b5061011661032d565b60405161012391906121c9565b60405180910390f35b34801561013857600080fd5b506100df610349565b6100df61014f366004611a78565b61047c565b34801561016057600080fd5b5061016961073e565b604051610123919061230c565b34801561018257600080fd5b506100df610744565b34801561019757600080fd5b506101a06107f1565b604051610123919061215b565b3480156101b957600080fd5b506101c261080d565b60405161012391906121bb565b3480156101db57600080fd5b506100df6101ea3660046118d6565b61082b565b3480156101fb57600080fd5b506101166108e4565b6100df610212366004611912565b610900565b34801561022357600080fd5b506100df610232366004611bc9565b610c0b565b34801561024357600080fd5b506100df6102523660046118d6565b610c7c565b61025f61080d565b61029e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166102be57600080fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f04d55a8be181fb8d75b76f2d48aa0b2ee40f47e53d6e61763eeeec46feea8a2490600090a250565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6002546040517f70a0823100000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff16906370a08231906103a0903090600401612169565b60206040518083038186803b1580156103b857600080fd5b505afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103f09190810190611be7565b6002546040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d9061044790849060040161230c565b600060405180830381600087803b15801561046157600080fd5b505af1158015610475573d6000803e3d6000fd5b5050505050565b60008751116104b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061225c565b85518751146104f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061220c565b6000821161052c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122cc565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8b16146105ec576001546040517f15dacbea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906315dacbea906105b9908d90339030908e906004016121d7565b600060405180830381600087803b1580156105d357600080fd5b505af11580156105e7573d6000803e3d6000fd5b505050505b6105fa8a8888888888610cc6565b60006106068a30610ea6565b905082811015610642576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061222c565b600061064e8c30610ea6565b90508015610661576106618c3383610fa3565b61066b8b8361104a565b61067f8b3361067a8e30610ea6565b610fa3565b60405130903390823180156108fc02916000818181858888f193505050501580156106ae573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff167f7d76860f120f877ecdc289aa48a7ccc6d0782d9fc59f154c29bc262b7f8308cc868e896040516107279392919061231a565b60405180910390a450505050505050505050505050565b60055481565b61074c61080d565b610782576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331490565b60045473ffffffffffffffffffffffffffffffffffffffff16331461084f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811661086f57600080fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907f0c1b5ffba24e81e63584d7422031c28d136f01bf3cce2257025186cd623a427f90600090a250565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b600087511161093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061225c565b8551875114610976576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061220c565b600082116109b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122cc565b73ffffffffffffffffffffffffffffffffffffffff89166109fd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122ac565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8c1614610abd576001546040517f15dacbea00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906315dacbea90610a8a908e90339030908e906004016121d7565b600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b505050505b610acb8b8888888888610cc6565b6000610ad78b30610ea6565b905082811015610b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061222c565b6000610b1f8d30610ea6565b90508015610b3257610b328d3383610fa3565b610b3c8c8361104a565b610b4b8c8c61067a8f30610ea6565b60405130903390823180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff168f73ffffffffffffffffffffffffffffffffffffffff167f7d76860f120f877ecdc289aa48a7ccc6d0782d9fc59f154c29bc262b7f8308cc868e89604051610bf39392919061231a565b60405180910390a45050505050505050505050505050565b610c1361080d565b610c49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b600581905560405181907f1ddc2741598aa63e608a6be81f604c9fae7ac7e28ba654db4500439c76c24aae90600090a250565b610c8461080d565b610cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061229c565b610cc3816110ea565b50565b60005b8551811015610e9d57600154865173ffffffffffffffffffffffffffffffffffffffff90911690879083908110610cfc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610d3f5750610d3f868281518110610d3257fe5b60200260200101516111c4565b610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122bc565b600073ffffffffffffffffffffffffffffffffffffffff16858281518110610d9957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610dde57610dd987868381518110610dcc57fe5b6020026020010151611200565b610dee565b610dee87878381518110610dcc57fe5b610e5f868281518110610dfd57fe5b6020026020010151838381518110610e1157fe5b6020026020010151858481518110610e2557fe5b6020026020010151868581518110610e3957fe5b6020026020010151878660010181518110610e5057fe5b6020026020010151038861132b565b610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061223c565b600101610cc9565b50505050505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff84161415610ef8575073ffffffffffffffffffffffffffffffffffffffff811631610f9d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610f4a90859060040161215b565b60206040518083038186803b158015610f6257600080fd5b505afa158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f9a9190810190611be7565b90505b92915050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8416141561101e5760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611018573d6000803e3d6000fd5b50611045565b61104573ffffffffffffffffffffffffffffffffffffffff8416838363ffffffff61135316565b505050565b60006110736127106110676005548561141090919063ffffffff16565b9063ffffffff61146416565b9050600061108d600561106784600463ffffffff61141016565b6003549091506110b590859073ffffffffffffffffffffffffffffffffffffffff1683610fa3565b6004546110e490859073ffffffffffffffffffffffffffffffffffffffff1661067a858563ffffffff6114b316565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116611137576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061221c565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906111f85750808214155b949350505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff8316148015906112db57506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063dd62ed3e906112899030908590600401612177565b60206040518083038186803b1580156112a157600080fd5b505afa1580156112b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112d99190810190611be7565b155b156113275761132773ffffffffffffffffffffffffffffffffffffffff8316827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff63ffffffff6114f516565b5050565b60008060405160208401600082878984018b8d6187965a03f193505050505b95945050505050565b6040516110459084907fa9059cbb000000000000000000000000000000000000000000000000000000009061138e90869086906024016121a0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611614565b60008261141f57506000610f9d565b8282028284828161142c57fe5b0414610f9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061228c565b600080821161149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061227c565b60008284816114aa57fe5b04949350505050565b6000828211156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061226c565b50900390565b8015806115a357506040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063dd62ed3e906115519030908690600401612192565b60206040518083038186803b15801561156957600080fd5b505afa15801561157d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115a19190810190611be7565b155b6115d9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122ec565b6040516110459084907f095ea7b3000000000000000000000000000000000000000000000000000000009061138e90869086906024016121a0565b6116338273ffffffffffffffffffffffffffffffffffffffff166111c4565b611669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122fc565b600060608373ffffffffffffffffffffffffffffffffffffffff16836040516116929190612148565b6000604051808303816000865af19150503d80600081146116cf576040519150601f19603f3d011682016040523d82523d6000602084013e6116d4565b606091505b509150915081611710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102959061224c565b8051156110e4578080602001905161172b91908101906118f4565b6110e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610295906122dc565b8035610f9d81612469565b600082601f83011261177d57600080fd5b813561179061178b82612370565b612349565b915081818352602084019350602081019050838560208402820111156117b557600080fd5b60005b838110156117e157816117cb8882611761565b84525060209283019291909101906001016117b8565b5050505092915050565b600082601f8301126117fc57600080fd5b813561180a61178b82612370565b9150818183526020840193506020810190508385602084028201111561182f57600080fd5b60005b838110156117e1578161184588826118c0565b8452506020928301929190910190600101611832565b8051610f9d8161247d565b600082601f83011261187757600080fd5b813561188561178b82612391565b915080825260208301602083018583830111156118a157600080fd5b6118ac838284612431565b50505092915050565b8035610f9d81612486565b8035610f9d8161248f565b8051610f9d8161248f565b6000602082840312156118e857600080fd5b60006111f88484611761565b60006020828403121561190657600080fd5b60006111f8848461185b565b60008060008060008060008060008060006101608c8e03121561193457600080fd5b60006119408e8e6118b5565b9b505060206119518e828f016118b5565b9a505060406119628e828f01611761565b99505060606119738e828f016118c0565b98505060808c013567ffffffffffffffff81111561199057600080fd5b61199c8e828f0161176c565b97505060a08c013567ffffffffffffffff8111156119b957600080fd5b6119c58e828f0161176c565b96505060c08c013567ffffffffffffffff8111156119e257600080fd5b6119ee8e828f01611866565b95505060e08c013567ffffffffffffffff811115611a0b57600080fd5b611a178e828f016117eb565b9450506101008c013567ffffffffffffffff811115611a3557600080fd5b611a418e828f016117eb565b935050610120611a538e828f016118c0565b925050610140611a658e828f016118c0565b9150509295989b509295989b9093969950565b6000806000806000806000806000806101408b8d031215611a9857600080fd5b6000611aa48d8d6118b5565b9a50506020611ab58d828e016118b5565b9950506040611ac68d828e016118c0565b98505060608b013567ffffffffffffffff811115611ae357600080fd5b611aef8d828e0161176c565b97505060808b013567ffffffffffffffff811115611b0c57600080fd5b611b188d828e0161176c565b96505060a08b013567ffffffffffffffff811115611b3557600080fd5b611b418d828e01611866565b95505060c08b013567ffffffffffffffff811115611b5e57600080fd5b611b6a8d828e016117eb565b94505060e08b013567ffffffffffffffff811115611b8757600080fd5b611b938d828e016117eb565b935050610100611ba58d828e016118c0565b925050610120611bb78d828e016118c0565b9150509295989b9194979a5092959850565b600060208284031215611bdb57600080fd5b60006111f884846118c0565b600060208284031215611bf957600080fd5b60006111f884846118cb565b6000611c118383611c28565b505060200190565b611c2281612426565b82525050565b611c22816123ef565b6000611c3c826123dd565b611c4681856123e1565b9350611c51836123d7565b8060005b83811015611c7f578151611c698882611c05565b9750611c74836123d7565b925050600101611c55565b509495945050505050565b611c22816123fa565b6000611c9e826123dd565b611ca881856123ea565b9350611cb881856020860161243d565b9290920192915050565b611c22816123ff565b6000611cd86024836123e1565b7f45766572792065786368616e6765206d757374206861766520616e206170707281527f6f76616c00000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d376026836123e1565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611d96602b836123e1565b7f54726164652072657475726e6564206c657373207468616e20746865206d696e81527f696d756d20616d6f756e74000000000000000000000000000000000000000000602082015260400192915050565b6000611df56014836123e1565b7f45787465726e616c2043616c6c204661696c6564000000000000000000000000815260200192915050565b6000611e2e6020836123e1565b7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815260200192915050565b6000611e67600c836123e1565b7f4e6f2045786368616e6765730000000000000000000000000000000000000000815260200192915050565b6000611ea0601e836123e1565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000611ed9601a836123e1565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000611f126021836123e1565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b6000611f716020836123e1565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000611faa6014836123e1565b7f4d75737420736574206120726563697069656e74000000000000000000000000815260200192915050565b6000611fe3600f836123e1565b7f496e76616c696420416464726573730000000000000000000000000000000000815260200192915050565b600061201c6018836123e1565b7f4c696d697420416d6f756e74206d757374206265207365740000000000000000815260200192915050565b6000612055602a836123e1565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e81527f6f74207375636365656400000000000000000000000000000000000000000000602082015260400192915050565b60006120b46036836123e1565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f81527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015260400192915050565b6000612113601f836123e1565b7f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400815260200192915050565b611c2281612423565b60006121548284611c93565b9392505050565b60208101610f9d8284611c28565b60208101610f9d8284611c19565b604081016121858285611c19565b6121546020830184611c28565b604081016121858285611c28565b604081016121ae8285611c28565b612154602083018461213f565b60208101610f9d8284611c8a565b60208101610f9d8284611cc2565b608081016121e58287611cc2565b6121f26020830186611c19565b6121ff6040830185611c19565b61134a606083018461213f565b60208082528101610f9d81611ccb565b60208082528101610f9d81611d2a565b60208082528101610f9d81611d89565b60208082528101610f9d81611de8565b60208082528101610f9d81611e21565b60208082528101610f9d81611e5a565b60208082528101610f9d81611e93565b60208082528101610f9d81611ecc565b60208082528101610f9d81611f05565b60208082528101610f9d81611f64565b60208082528101610f9d81611f9d565b60208082528101610f9d81611fd6565b60208082528101610f9d8161200f565b60208082528101610f9d81612048565b60208082528101610f9d816120a7565b60208082528101610f9d81612106565b60208101610f9d828461213f565b60608101612328828661213f565b818103602083015261233a8185611c31565b90506111f8604083018461213f565b60405181810167ffffffffffffffff8111828210171561236857600080fd5b604052919050565b600067ffffffffffffffff82111561238757600080fd5b5060209081020190565b600067ffffffffffffffff8211156123a857600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b919050565b6000610f9d8261240a565b151590565b6000610f9d826123ef565b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b6000610f9d826123ff565b82818337506000910152565b60005b83811015612458578181015183820152602001612440565b838111156110e45750506000910152565b612472816123ef565b8114610cc357600080fd5b612472816123fa565b612472816123ff565b6124728161242356fea365627a7a7231582048b0e5a7be17cdc00440bcebb65641a08c134514f7f4cc555dc09b55eac9ffbe6c6578706572696d656e74616cf564736f6c63430005110040
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d0c81e82abddf29c6505d660f5bebe60cdff03c500000000000000000000000092c1f48ad7ef2ae00801620325af996f843293a300000000000000000000000000000000000000000000000000000000000000c8
-----Decoded View---------------
Arg [0] : _beneficiary (address): 0xd0C81E82AbDdF29C6505d660f5bEBe60CDFf03c5
Arg [1] : _dexag (address): 0x92c1f48aD7eF2aE00801620325aF996F843293a3
Arg [2] : _basisPoints (uint256): 200
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d0c81e82abddf29c6505d660f5bebe60cdff03c5
Arg [1] : 00000000000000000000000092c1f48ad7ef2ae00801620325af996f843293a3
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c8
Deployed Bytecode Sourcemap
15988:8858:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24811:10;24825:9;24811:23;;24803:32;;;;;;15988:8858;22936:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22936:208:0;;;;;;;;:::i;16118:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16118:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;24625:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24625:130:0;;;:::i;16907:1681::-;;;;;;;;;:::i;16612:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16612:26:0;;;:::i;:::-;;;;;;;;1693:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1693:140:0;;;:::i;882:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;882:79:0;;;:::i;:::-;;;;;;;;1248:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1248:92:0;;;:::i;:::-;;;;;;;;23152:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23152:203:0;;;;;;;;:::i;16474:69::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16474:69:0;;;:::i;18596:1790::-;;;;;;;;;:::i;22775:153::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22775:153:0;;;;;;;;:::i;1988:109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1988:109:0;;;;;;;;:::i;22936:208::-;1094:9;:7;:9::i;:::-;1086:54;;;;;;;;;;;;;;;;;;;;;;23028:26;;;23020:35;;;;;;23066:11;:26;;;;;;;;;;;;;23108:28;;;;-1:-1:-1;;23108:28:0;22936:208;:::o;16118:38::-;;;;;;:::o;24625:130::-;24686:4;;:29;;;;;24669:14;;24686:4;;;:14;;:29;;24709:4;;24686:29;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24686:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24686:29:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;24686:29:0;;;;;;;;;24726:4;;:21;;;;;24669:46;;-1:-1:-1;24726:4:0;;;:13;;:21;;24669:46;;24726:21;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24726:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24726:21:0;;;;24625:130;:::o;16907:1681::-;17287:1;17268:9;:16;:20;17260:45;;;;;;;;;;;;;;17344:9;:16;17324:9;:16;:36;17316:85;;;;;;;;;;;;;;17434:1;17420:11;:15;17412:52;;;;;;;;;;;;;;17559:42;17542:59;;;;17538:165;;17618:15;;:73;;;;;:15;;;;;:28;;:73;;17647:4;;17653:10;;17673:4;;17680:10;;17618:73;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17618:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17618:73:0;;;;17538:165;17751:69;17765:4;17771:9;17782;17793:4;17799:7;17808:11;17751:13;:69::i;:::-;17903:19;17925:30;17937:2;17949:4;17925:11;:30::i;:::-;17903:52;;17989:11;17974;:26;;17966:82;;;;;;;;;;;;;;18098:16;18117:32;18129:4;18143;18117:11;:32::i;:::-;18098:51;-1:-1:-1;18164:12:0;;18160:82;;18193:37;18203:4;18209:10;18221:8;18193:9;:37::i;:::-;18254;18275:2;18279:11;18254:20;:37::i;:::-;18302:57;18312:2;18316:10;18328:30;18340:2;18352:4;18328:11;:30::i;:::-;18302:9;:57::i;:::-;18449:33;;18433:4;;18449:10;;18469:12;;18449:33;;;;;18410:12;18449:33;18410:12;18449:33;18469:12;18449:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18449:33:0;18547:10;18500:80;;18529:2;18500:80;;18514:4;18500:80;;;18534:11;18559:9;18570;18500:80;;;;;;;;;;;;;;;;;16907:1681;;;;;;;;;;;;;:::o;16612:26::-;;;;:::o;1693:140::-;1094:9;:7;:9::i;:::-;1086:54;;;;;;;;;;;;;;1792:1;1776:6;;1755:40;;;1776:6;;;;1755:40;;1792:1;;1755:40;1823:1;1806:19;;;;;;1693:140::o;882:79::-;920:7;947:6;;;882:79;:::o;1248:92::-;1288:4;1326:6;;;1312:10;:20;;1248:92::o;23152:203::-;23244:5;;;;23222:10;:28;23214:37;;;;;;23270:20;;;23262:29;;;;;;23302:5;:14;;;;;;;;;;;;;;;;23332:15;;23341:5;;;23332:15;;-1:-1:-1;;23332:15:0;23152:203;:::o;16474:69::-;;;;;;:::o;18596:1790::-;19019:1;19000:9;:16;:20;18992:45;;;;;;;;;;;;;;19076:9;:16;19056:9;:16;:36;19048:85;;;;;;;;;;;;;;19166:1;19152:11;:15;19144:52;;;;;;;;;;;;;;19215:23;;;19207:56;;;;;;;;;;;;;;19358:42;19341:59;;;;19337:165;;19417:15;;:73;;;;;:15;;;;;:28;;:73;;19446:4;;19452:10;;19472:4;;19479:10;;19417:73;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19417:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19417:73:0;;;;19337:165;19550:69;19564:4;19570:9;19581;19592:4;19598:7;19607:11;19550:13;:69::i;:::-;19702:19;19724:30;19736:2;19748:4;19724:11;:30::i;:::-;19702:52;;19788:11;19773;:26;;19765:82;;;;;;;;;;;;;;19897:16;19916:32;19928:4;19942;19916:11;:32::i;:::-;19897:51;-1:-1:-1;19963:12:0;;19959:82;;19992:37;20002:4;20008:10;20020:8;19992:9;:37::i;:::-;20053;20074:2;20078:11;20053:20;:37::i;:::-;20101:56;20111:2;20115:9;20126:30;20138:2;20150:4;20126:11;:30::i;20101:56::-;20247:33;;20231:4;;20247:10;;20267:12;;20247:33;;;;;20208:12;20247:33;20208:12;20247:33;20267:12;20247:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20247:33:0;20345:10;20298:80;;20327:2;20298:80;;20312:4;20298:80;;;20332:11;20357:9;20368;20298:80;;;;;;;;;;;;;;;;;18596:1790;;;;;;;;;;;;;;:::o;22775:153::-;1094:9;:7;:9::i;:::-;1086:54;;;;;;;;;;;;;;22851:11;:26;;;22893:27;;22865:12;;22893:27;;;;;22775:153;:::o;1988:109::-;1094:9;:7;:9::i;:::-;1086:54;;;;;;;;;;;;;;2061:28;2080:8;2061:18;:28::i;:::-;1988:109;:::o;20394:1070::-;20645:6;20640:813;20661:9;:16;20657:1;:20;20640:813;;;20843:15;;20819:12;;20843:15;;;;;20819:9;;20829:1;;20819:12;;;;;;;;;;;;:40;;;;:68;;;;;20863:24;20874:9;20884:1;20874:12;;;;;;;;;;;;;;20863:10;:24::i;:::-;20811:96;;;;;;;;;;;;;;20954:1;20930:26;;:9;20940:1;20930:12;;;;;;;;;;;;;;:26;;;20926:341;;21064:27;21072:4;21078:9;21088:1;21078:12;;;;;;;;;;;;;;21064:7;:27::i;:::-;20926:341;;;21220:27;21228:4;21234:9;21244:1;21234:12;;;;;;;21220:27;21322:90;21336:9;21346:1;21336:12;;;;;;;;;;;;;;21350:11;21362:1;21350:14;;;;;;;;;;;;;;21366:7;21374:1;21366:10;;;;;;;;;;;;;;21395:7;21403:1;21395:10;;;;;;;;;;;;;;21378:7;21386:1;21390;21386:5;21378:14;;;;;;;;;;;;;;:27;21407:4;21322:13;:90::i;:::-;21314:123;;;;;;;;;;;;;;20679:3;;20640:813;;;;20394:1070;;;;;;:::o;21801:268::-;21871:7;21911:42;21895:58;;;;21891:171;;;-1:-1:-1;21977:13:0;;;;21970:20;;21891:171;22030:20;;;;;:13;;;;;;:20;;22044:5;;22030:20;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22030:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22030:20:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;22030:20:0;;;;;;;;;22023:27;;21891:171;21801:268;;;;:::o;22077:280::-;22189:42;22173:58;;;;22169:181;;;22248:24;;:17;;;;:24;;;;;22266:5;;22248:24;;;;22266:5;22248:17;:24;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22248:24:0;22169:181;;;22305:33;:16;;;22322:8;22332:5;22305:33;:16;:33;:::i;:::-;22077:280;;;:::o;22399:340::-;22482:24;22509:39;22542:5;22509:28;22525:11;;22509;:15;;:28;;;;:::i;:::-;:32;:39;:32;:39;:::i;:::-;22482:66;-1:-1:-1;22559:19:0;22581:30;22609:1;22581:23;22482:66;22602:1;22581:23;:20;:23;:::i;:30::-;22639:11;;22559:52;;-1:-1:-1;22624:40:0;;22634:3;;22639:11;;22559:52;22624:9;:40::i;:::-;22690:5;;22675:56;;22685:3;;22690:5;;22697:33;:16;22718:11;22697:33;:20;:33;:::i;22675:56::-;22399:340;;;;:::o;2203:229::-;2277:22;;;2269:73;;;;;;;;;;;;;;2379:6;;;2358:38;;;;;;;2379:6;;;2358:38;;;2407:6;:17;;;;;;;;;;;;;;;2203:229::o;23799:818::-;23859:4;24526:20;;24369:66;24566:15;;;;;:42;;;24597:11;24585:8;:23;;24566:42;24558:51;23799:818;-1:-1:-1;;;;23799:818:0:o;21506:287::-;21607:42;21591:58;;;;;;;:118;;-1:-1:-1;21666:38:0;;;;;:13;;;;;;:38;;21688:4;;21695:8;;21666:38;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21666:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21666:38:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;21666:38:0;;;;;;;;;:43;21591:118;21573:213;;;21736:38;:15;;;21752:8;21770:2;21736:38;:15;:38;:::i;:::-;21506:287;;:::o;14476:1162::-;14603:4;14620:11;14681:4;14675:11;14815:2;14809:4;14805:13;15507:1;15487;15378:10;15348;15345:1;15341:18;15317:5;15287:11;14939:5;14934:3;14930:15;14907:689;14897:699;-1:-1:-1;;;;14476:1162:0;;;;;;;;:::o;11063:176::-;11172:58;;11146:85;;11165:5;;11195:23;;11172:58;;11220:2;;11224:5;;11172:58;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;11172:58:0;;;49:4:-1;25:18;;61:17;;11172:58:0;182:15:-1;11172:58:0;;;;179:29:-1;;;;160:49;;;11146:18:0;:85::i;4164:470::-;4222:7;4466:6;4462:47;;-1:-1:-1;4496:1:0;4489:8;;4462:47;4533:5;;;4537:1;4533;:5;:1;4557:5;;;;;:10;4549:56;;;;;;;;;;;;;5102:333;5160:7;5259:1;5255;:5;5247:44;;;;;;;;;;;;;;5302:9;5318:1;5314;:5;;;;;;;5102:333;-1:-1:-1;;;;5102:333:0:o;3729:184::-;3787:7;3820:1;3815;:6;;3807:49;;;;;;;;;;;;;;-1:-1:-1;3879:5:0;;;3729:184::o;11459:621::-;11829:10;;;11828:62;;-1:-1:-1;11845:39:0;;;;;:15;;;;;;:39;;11869:4;;11876:7;;11845:39;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11845:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11845:39:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11845:39:0;;;;;;;;;:44;11828:62;11820:152;;;;;;;;;;;;;;12009:62;;11983:89;;12002:5;;12032:22;;12009:62;;12056:7;;12065:5;;12009:62;;;;13057:1114;13661:27;13669:5;13661:25;;;:27::i;:::-;13653:71;;;;;;;;;;;;;;13798:12;13812:23;13847:5;13839:19;;13859:4;13839:25;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;13797:67:0;;;;13883:7;13875:52;;;;;;;;;;;;;;13944:17;;:21;13940:224;;14086:10;14075:30;;;;;;;;;;;;;;14067:85;;;;;;;;;;;;;5:130:-1;72:20;;97:33;72:20;97:33;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;448:1;445;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;;;507:80;;;498:89;;604:5;629:6;622:5;615:21;659:4;651:6;647:17;637:27;;681:4;676:3;672:14;665:21;;734:6;781:3;773:4;765:6;761:17;756:3;752:27;749:36;746:2;;;798:1;795;788:12;746:2;823:1;808:206;833:6;830:1;827:13;808:206;;;891:3;913:37;946:3;934:10;913:37;;;901:50;;-1:-1;974:4;965:14;;;;993;;;;;855:1;848:9;808:206;;;812:14;390:630;;;;;;;;1046:707;;1163:3;1156:4;1148:6;1144:17;1140:27;1130:2;;1181:1;1178;1171:12;1130:2;1218:6;1205:20;1240:80;1255:64;1312:6;1255:64;;1240:80;1231:89;;1337:5;1362:6;1355:5;1348:21;1392:4;1384:6;1380:17;1370:27;;1414:4;1409:3;1405:14;1398:21;;1467:6;1514:3;1506:4;1498:6;1494:17;1489:3;1485:27;1482:36;1479:2;;;1531:1;1528;1521:12;1479:2;1556:1;1541:206;1566:6;1563:1;1560:13;1541:206;;;1624:3;1646:37;1679:3;1667:10;1646:37;;;1634:50;;-1:-1;1707:4;1698:14;;;;1726;;;;;1588:1;1581:9;1541:206;;1761:128;1836:13;;1854:30;1836:13;1854:30;;1897:440;;1998:3;1991:4;1983:6;1979:17;1975:27;1965:2;;2016:1;2013;2006:12;1965:2;2053:6;2040:20;2075:64;2090:48;2131:6;2090:48;;2075:64;2066:73;;2159:6;2152:5;2145:21;2195:4;2187:6;2183:17;2228:4;2221:5;2217:16;2263:3;2254:6;2249:3;2245:16;2242:25;2239:2;;;2280:1;2277;2270:12;2239:2;2290:41;2324:6;2319:3;2314;2290:41;;;1958:379;;;;;;;;2345:158;2426:20;;2451:47;2426:20;2451:47;;2510:130;2577:20;;2602:33;2577:20;2602:33;;2647:134;2725:13;;2743:33;2725:13;2743:33;;2788:241;;2892:2;2880:9;2871:7;2867:23;2863:32;2860:2;;;2908:1;2905;2898:12;2860:2;2943:1;2960:53;3005:7;2985:9;2960:53;;3300:257;;3412:2;3400:9;3391:7;3387:23;3383:32;3380:2;;;3428:1;3425;3418:12;3380:2;3463:1;3480:61;3533:7;3513:9;3480:61;;3564:2221;;;;;;;;;;;;3984:3;3972:9;3963:7;3959:23;3955:33;3952:2;;;4001:1;3998;3991:12;3952:2;4036:1;4053:67;4112:7;4092:9;4053:67;;;4043:77;;4015:111;4157:2;4175:67;4234:7;4225:6;4214:9;4210:22;4175:67;;;4165:77;;4136:112;4279:2;4297:61;4350:7;4341:6;4330:9;4326:22;4297:61;;;4287:71;;4258:106;4395:2;4413:53;4458:7;4449:6;4438:9;4434:22;4413:53;;;4403:63;;4374:98;4531:3;4520:9;4516:19;4503:33;4556:18;4548:6;4545:30;4542:2;;;4588:1;4585;4578:12;4542:2;4608:78;4678:7;4669:6;4658:9;4654:22;4608:78;;;4598:88;;4482:210;4751:3;4740:9;4736:19;4723:33;4776:18;4768:6;4765:30;4762:2;;;4808:1;4805;4798:12;4762:2;4828:78;4898:7;4889:6;4878:9;4874:22;4828:78;;;4818:88;;4702:210;4971:3;4960:9;4956:19;4943:33;4996:18;4988:6;4985:30;4982:2;;;5028:1;5025;5018:12;4982:2;5048:62;5102:7;5093:6;5082:9;5078:22;5048:62;;;5038:72;;4922:194;5175:3;5164:9;5160:19;5147:33;5200:18;5192:6;5189:30;5186:2;;;5232:1;5229;5222:12;5186:2;5252:78;5322:7;5313:6;5302:9;5298:22;5252:78;;;5242:88;;5126:210;5395:3;5384:9;5380:19;5367:33;5420:18;5412:6;5409:30;5406:2;;;5452:1;5449;5442:12;5406:2;5472:78;5542:7;5533:6;5522:9;5518:22;5472:78;;;5462:88;;5346:210;5587:3;5606:53;5651:7;5642:6;5631:9;5627:22;5606:53;;;5596:63;;5566:99;5696:3;5716:53;5761:7;5752:6;5741:9;5737:22;5716:53;;;5705:64;;5675:100;3946:1839;;;;;;;;;;;;;;;5792:2077;;;;;;;;;;;6186:3;6174:9;6165:7;6161:23;6157:33;6154:2;;;6203:1;6200;6193:12;6154:2;6238:1;6255:67;6314:7;6294:9;6255:67;;;6245:77;;6217:111;6359:2;6377:67;6436:7;6427:6;6416:9;6412:22;6377:67;;;6367:77;;6338:112;6481:2;6499:53;6544:7;6535:6;6524:9;6520:22;6499:53;;;6489:63;;6460:98;6617:2;6606:9;6602:18;6589:32;6641:18;6633:6;6630:30;6627:2;;;6673:1;6670;6663:12;6627:2;6693:78;6763:7;6754:6;6743:9;6739:22;6693:78;;;6683:88;;6568:209;6836:3;6825:9;6821:19;6808:33;6861:18;6853:6;6850:30;6847:2;;;6893:1;6890;6883:12;6847:2;6913:78;6983:7;6974:6;6963:9;6959:22;6913:78;;;6903:88;;6787:210;7056:3;7045:9;7041:19;7028:33;7081:18;7073:6;7070:30;7067:2;;;7113:1;7110;7103:12;7067:2;7133:62;7187:7;7178:6;7167:9;7163:22;7133:62;;;7123:72;;7007:194;7260:3;7249:9;7245:19;7232:33;7285:18;7277:6;7274:30;7271:2;;;7317:1;7314;7307:12;7271:2;7337:78;7407:7;7398:6;7387:9;7383:22;7337:78;;;7327:88;;7211:210;7480:3;7469:9;7465:19;7452:33;7505:18;7497:6;7494:30;7491:2;;;7537:1;7534;7527:12;7491:2;7557:78;7627:7;7618:6;7607:9;7603:22;7557:78;;;7547:88;;7431:210;7672:3;7691:53;7736:7;7727:6;7716:9;7712:22;7691:53;;;7681:63;;7651:99;7781:3;7800:53;7845:7;7836:6;7825:9;7821:22;7800:53;;;7790:63;;7760:99;6148:1721;;;;;;;;;;;;;;7876:241;;7980:2;7968:9;7959:7;7955:23;7951:32;7948:2;;;7996:1;7993;7986:12;7948:2;8031:1;8048:53;8093:7;8073:9;8048:53;;8124:263;;8239:2;8227:9;8218:7;8214:23;8210:32;8207:2;;;8255:1;8252;8245:12;8207:2;8290:1;8307:64;8363:7;8343:9;8307:64;;8395:173;;8482:46;8524:3;8516:6;8482:46;;;-1:-1;;8557:4;8548:14;;8475:93;8576:142;8667:45;8706:5;8667:45;;;8662:3;8655:58;8649:69;;;8725:103;8798:24;8816:5;8798:24;;8986:690;;9131:54;9179:5;9131:54;;;9198:86;9277:6;9272:3;9198:86;;;9191:93;;9305:56;9355:5;9305:56;;;9381:7;9409:1;9394:260;9419:6;9416:1;9413:13;9394:260;;;9486:6;9480:13;9507:63;9566:3;9551:13;9507:63;;;9500:70;;9587:60;9640:6;9587:60;;;9577:70;-1:-1;;9441:1;9434:9;9394:260;;;-1:-1;9667:3;;9110:566;-1:-1;;;;;9110:566;9684:104;9761:21;9776:5;9761:21;;9795:356;;9923:38;9955:5;9923:38;;;9973:88;10054:6;10049:3;9973:88;;;9966:95;;10066:52;10111:6;10106:3;10099:4;10092:5;10088:16;10066:52;;;10130:16;;;;;9903:248;-1:-1;;9903:248;10158:172;10264:60;10318:5;10264:60;;10658:373;;10818:67;10882:2;10877:3;10818:67;;;10918:34;10898:55;;10987:6;10982:2;10973:12;;10966:28;11022:2;11013:12;;10804:227;-1:-1;;10804:227;11040:375;;11200:67;11264:2;11259:3;11200:67;;;11300:34;11280:55;;11369:8;11364:2;11355:12;;11348:30;11406:2;11397:12;;11186:229;-1:-1;;11186:229;11424:380;;11584:67;11648:2;11643:3;11584:67;;;11684:34;11664:55;;11753:13;11748:2;11739:12;;11732:35;11795:2;11786:12;;11570:234;-1:-1;;11570:234;11813:320;;11973:67;12037:2;12032:3;11973:67;;;12073:22;12053:43;;12124:2;12115:12;;11959:174;-1:-1;;11959:174;12142:332;;12302:67;12366:2;12361:3;12302:67;;;12402:34;12382:55;;12465:2;12456:12;;12288:186;-1:-1;;12288:186;12483:312;;12643:67;12707:2;12702:3;12643:67;;;12743:14;12723:35;;12786:2;12777:12;;12629:166;-1:-1;;12629:166;12804:330;;12964:67;13028:2;13023:3;12964:67;;;13064:32;13044:53;;13125:2;13116:12;;12950:184;-1:-1;;12950:184;13143:326;;13303:67;13367:2;13362:3;13303:67;;;13403:28;13383:49;;13460:2;13451:12;;13289:180;-1:-1;;13289:180;13478:370;;13638:67;13702:2;13697:3;13638:67;;;13738:34;13718:55;;13807:3;13802:2;13793:12;;13786:25;13839:2;13830:12;;13624:224;-1:-1;;13624:224;13857:332;;14017:67;14081:2;14076:3;14017:67;;;14117:34;14097:55;;14180:2;14171:12;;14003:186;-1:-1;;14003:186;14198:320;;14358:67;14422:2;14417:3;14358:67;;;14458:22;14438:43;;14509:2;14500:12;;14344:174;-1:-1;;14344:174;14527:315;;14687:67;14751:2;14746:3;14687:67;;;14787:17;14767:38;;14833:2;14824:12;;14673:169;-1:-1;;14673:169;14851:324;;15011:67;15075:2;15070:3;15011:67;;;15111:26;15091:47;;15166:2;15157:12;;14997:178;-1:-1;;14997:178;15184:379;;15344:67;15408:2;15403:3;15344:67;;;15444:34;15424:55;;15513:12;15508:2;15499:12;;15492:34;15554:2;15545:12;;15330:233;-1:-1;;15330:233;15572:391;;15732:67;15796:2;15791:3;15732:67;;;15832:34;15812:55;;15901:24;15896:2;15887:12;;15880:46;15954:2;15945:12;;15718:245;-1:-1;;15718:245;15972:331;;16132:67;16196:2;16191:3;16132:67;;;16232:33;16212:54;;16294:2;16285:12;;16118:185;-1:-1;;16118:185;16311:113;16394:24;16412:5;16394:24;;16431:262;;16575:93;16664:3;16655:6;16575:93;;;16568:100;16556:137;-1:-1;;;16556:137;16700:213;16818:2;16803:18;;16832:71;16807:9;16876:6;16832:71;;16920:229;17046:2;17031:18;;17060:79;17035:9;17112:6;17060:79;;17156:340;17310:2;17295:18;;17324:79;17299:9;17376:6;17324:79;;;17414:72;17482:2;17471:9;17467:18;17458:6;17414:72;;17503:324;17649:2;17634:18;;17663:71;17638:9;17707:6;17663:71;;17834:324;17980:2;17965:18;;17994:71;17969:9;18038:6;17994:71;;;18076:72;18144:2;18133:9;18129:18;18120:6;18076:72;;18165:201;18277:2;18262:18;;18291:65;18266:9;18329:6;18291:65;;18373:259;18514:2;18499:18;;18528:94;18503:9;18595:6;18528:94;;18639:607;18871:3;18856:19;;18886:85;18860:9;18944:6;18886:85;;;18982:80;19058:2;19047:9;19043:18;19034:6;18982:80;;;19073;19149:2;19138:9;19134:18;19125:6;19073:80;;;19164:72;19232:2;19221:9;19217:18;19208:6;19164:72;;19499:407;19690:2;19704:47;;;19675:18;;19765:131;19675:18;19765:131;;19913:407;20104:2;20118:47;;;20089:18;;20179:131;20089:18;20179:131;;20327:407;20518:2;20532:47;;;20503:18;;20593:131;20503:18;20593:131;;20741:407;20932:2;20946:47;;;20917:18;;21007:131;20917:18;21007:131;;21155:407;21346:2;21360:47;;;21331:18;;21421:131;21331:18;21421:131;;21569:407;21760:2;21774:47;;;21745:18;;21835:131;21745:18;21835:131;;21983:407;22174:2;22188:47;;;22159:18;;22249:131;22159:18;22249:131;;22397:407;22588:2;22602:47;;;22573:18;;22663:131;22573:18;22663:131;;22811:407;23002:2;23016:47;;;22987:18;;23077:131;22987:18;23077:131;;23225:407;23416:2;23430:47;;;23401:18;;23491:131;23401:18;23491:131;;23639:407;23830:2;23844:47;;;23815:18;;23905:131;23815:18;23905:131;;24053:407;24244:2;24258:47;;;24229:18;;24319:131;24229:18;24319:131;;24467:407;24658:2;24672:47;;;24643:18;;24733:131;24643:18;24733:131;;24881:407;25072:2;25086:47;;;25057:18;;25147:131;25057:18;25147:131;;25295:407;25486:2;25500:47;;;25471:18;;25561:131;25471:18;25561:131;;25709:407;25900:2;25914:47;;;25885:18;;25975:131;25885:18;25975:131;;26123:213;26241:2;26226:18;;26255:71;26230:9;26299:6;26255:71;;26343:583;26567:2;26552:18;;26581:71;26556:9;26625:6;26581:71;;;26700:9;26694:4;26690:20;26685:2;26674:9;26670:18;26663:48;26725:108;26828:4;26819:6;26725:108;;;26717:116;;26844:72;26912:2;26901:9;26897:18;26888:6;26844:72;;26933:256;26995:2;26989:9;27021:17;;;27096:18;27081:34;;27117:22;;;27078:62;27075:2;;;27153:1;27150;27143:12;27075:2;27169;27162:22;26973:216;;-1:-1;26973:216;27196:304;;27355:18;27347:6;27344:30;27341:2;;;27387:1;27384;27377:12;27341:2;-1:-1;27422:4;27410:17;;;27475:15;;27278:222;27818:321;;27961:18;27953:6;27950:30;27947:2;;;27993:1;27990;27983:12;27947:2;-1:-1;28124:4;28060;28037:17;;;;28056:9;28033:33;28114:15;;27884:255;28146:151;28270:4;28261:14;;28218:79;28304:137;28407:12;;28378:63;28692:178;28810:19;;;28859:4;28850:14;;28803:67;28879:144;29014:3;28992:31;-1:-1;28992:31;29203:91;;29265:24;29283:5;29265:24;;29407:85;29473:13;29466:21;;29449:43;29499:105;;29575:24;29593:5;29575:24;;29611:121;29684:42;29673:54;;29656:76;29739:72;29801:5;29784:27;29818:129;;29905:37;29936:5;29905:37;;31077:145;31158:6;31153:3;31148;31135:30;-1:-1;31214:1;31196:16;;31189:27;31128:94;31231:268;31296:1;31303:101;31317:6;31314:1;31311:13;31303:101;;;31384:11;;;31378:18;31365:11;;;31358:39;31339:2;31332:10;31303:101;;;31419:6;31416:1;31413:13;31410:2;;;-1:-1;;31484:1;31466:16;;31459:27;31280:219;31507:117;31576:24;31594:5;31576:24;;;31569:5;31566:35;31556:2;;31615:1;31612;31605:12;31771:111;31837:21;31852:5;31837:21;;31889:145;31972:38;32004:5;31972:38;;32041:117;32110:24;32128:5;32110:24;
Swarm Source
bzzr://15d9cdcd3849ad6593a1522d8e87caf2b81bb8102e49a793eadc816b6b4d5003
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $4.72 | 1 | $4.72 |
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.