Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60c06040 | 16161217 | 635 days ago | IN | 0 ETH | 0.01451256 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ConnectV2OneInchV5
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; pragma experimental ABIEncoderV2; /** * @title 1InchV5. * @dev On-chain DEX Aggregator. */ // import files from common directory import { TokenInterface , MemoryInterface } from "../../../common/interfaces.sol"; import { Stores } from "../../../common/stores.sol"; import { OneInchInterace, OneInchData } from "./interface.sol"; import { Helpers } from "./helpers.sol"; import { Events } from "./events.sol"; abstract contract OneInchResolver is Helpers, Events { /** * @dev 1inch API swap handler * @param oneInchData - contains data returned from 1inch API. Struct defined in interfaces.sol * @param ethAmt - Eth to swap for .value() */ function oneInchSwap( OneInchData memory oneInchData, uint ethAmt ) internal returns (uint buyAmt) { TokenInterface buyToken = oneInchData.buyToken; (uint _buyDec, uint _sellDec) = getTokensDec(buyToken, oneInchData.sellToken); uint _sellAmt18 = convertTo18(_sellDec, oneInchData._sellAmt); uint _slippageAmt = convert18ToDec(_buyDec, wmul(oneInchData.unitAmt, _sellAmt18)); uint initalBal = getTokenBal(buyToken); // solium-disable-next-line security/no-call-value (bool success, ) = oneInchAddr.call{value: ethAmt}(oneInchData.callData); if (!success) revert("1Inch-swap-failed"); uint finalBal = getTokenBal(buyToken); buyAmt = sub(finalBal, initalBal); require(_slippageAmt <= buyAmt, "Too much slippage"); } } abstract contract OneInchResolverHelpers is OneInchResolver { /** * @dev Gets the swapping data from 1inch's API. * @param oneInchData Struct with multiple swap data defined in interfaces.sol * @param setId Set token amount at this ID in `InstaMemory` Contract. */ function _sell( OneInchData memory oneInchData, uint setId ) internal returns (OneInchData memory) { TokenInterface _sellAddr = oneInchData.sellToken; uint ethAmt; if (address(_sellAddr) == ethAddr) { ethAmt = oneInchData._sellAmt; } else { approve(TokenInterface(_sellAddr), oneInchAddr, oneInchData._sellAmt); } oneInchData._buyAmt = oneInchSwap(oneInchData, ethAmt); setUint(setId, oneInchData._buyAmt); return oneInchData; } } abstract contract OneInch is OneInchResolverHelpers { /** * @dev Sell ETH/ERC20_Token using 1Inch. * @notice Swap tokens from exchanges like kyber, 0x etc, with calculation done off-chain. * @param buyAddr The address of the token to buy.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) * @param sellAddr The address of the token to sell.(For ETH: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE) * @param sellAmt The amount of the token to sell. * @param unitAmt The amount of buyAmt/sellAmt with slippage. * @param callData Data from 1inch API. * @param setId ID stores the amount of token brought. */ function sell( address buyAddr, address sellAddr, uint sellAmt, uint unitAmt, bytes calldata callData, uint setId ) external payable returns (string memory _eventName, bytes memory _eventParam) { OneInchData memory oneInchData = OneInchData({ buyToken: TokenInterface(buyAddr), sellToken: TokenInterface(sellAddr), unitAmt: unitAmt, callData: callData, _sellAmt: sellAmt, _buyAmt: 0 }); oneInchData = _sell(oneInchData, setId); _eventName = "LogSell(address,address,uint256,uint256,uint256,uint256)"; _eventParam = abi.encode(buyAddr, sellAddr, oneInchData._buyAmt, oneInchData._sellAmt, 0, setId); } } contract ConnectV2OneInchV5 is OneInch { string public name = "1Inch-v5"; }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; pragma abicoder v2; interface TokenInterface { function approve(address, uint256) external; function transfer(address, uint) external; function transferFrom(address, address, uint) external; function deposit() external payable; function withdraw(uint) external; function balanceOf(address) external view returns (uint); function decimals() external view returns (uint); function totalSupply() external view returns (uint); function allowance(address owner, address spender) external view returns (uint256); } interface MemoryInterface { function getUint(uint id) external returns (uint num); function setUint(uint id, uint val) external; } interface InstaMapping { function cTokenMapping(address) external view returns (address); function gemJoinMapping(bytes32) external view returns (address); } interface AccountInterface { function enable(address) external; function disable(address) external; function isAuth(address) external view returns (bool); function cast( string[] calldata _targetNames, bytes[] calldata _datas, address _origin ) external payable returns (bytes32[] memory responses); } interface ListInterface { function accountID(address) external returns (uint64); } interface InstaConnectors { function isConnectors(string[] calldata) external returns (bool, address[] memory); }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import { MemoryInterface, InstaMapping, ListInterface, InstaConnectors } from "./interfaces.sol"; abstract contract Stores { /** * @dev Return ethereum address */ address constant internal ethAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; /** * @dev Return Wrapped ETH address */ address constant internal wethAddr = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; /** * @dev Return memory variable address */ MemoryInterface constant internal instaMemory = MemoryInterface(0x8a5419CfC711B2343c17a6ABf4B2bAFaBb06957F); /** * @dev Return InstaDApp Mapping Addresses */ InstaMapping constant internal instaMapping = InstaMapping(0xe81F70Cc7C0D46e12d70efc60607F16bbD617E88); /** * @dev Return InstaList Address */ ListInterface internal constant instaList = ListInterface(0x4c8a1BEb8a87765788946D6B19C6C6355194AbEb); /** * @dev Return connectors registry address */ InstaConnectors internal constant instaConnectors = InstaConnectors(0x97b0B3A8bDeFE8cB9563a3c610019Ad10DB8aD11); /** * @dev Get Uint value from InstaMemory Contract. */ function getUint(uint getId, uint val) internal returns (uint returnVal) { returnVal = getId == 0 ? val : instaMemory.getUint(getId); } /** * @dev Set Uint value in InstaMemory Contract. */ function setUint(uint setId, uint val) virtual internal { if (setId != 0) instaMemory.setUint(setId, val); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import { TokenInterface } from "../../../common/interfaces.sol"; interface OneInchInterace { function swap( TokenInterface fromToken, TokenInterface toToken, uint256 fromTokenAmount, uint256 minReturnAmount, uint256 guaranteedAmount, address payable referrer, address[] calldata callAddresses, bytes calldata callDataConcat, uint256[] calldata starts, uint256[] calldata gasLimitsAndValues ) external payable returns (uint256 returnAmount); } struct OneInchData { TokenInterface sellToken; TokenInterface buyToken; uint _sellAmt; uint _buyAmt; uint unitAmt; bytes callData; }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import { TokenInterface } from "../../../common/interfaces.sol"; import { DSMath } from "../../../common/math.sol"; import { Basic } from "../../../common/basic.sol"; abstract contract Helpers is DSMath, Basic { /** * @dev 1Inch Router v5 Address */ address internal constant oneInchAddr = 0x1111111254EEB25477B68fb85Ed929f73A960582; }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; contract Events { event LogSell( address indexed buyToken, address indexed sellToken, uint256 buyAmt, uint256 sellAmt, uint256 getId, uint256 setId ); }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import { SafeMath } from "@openzeppelin/contracts/math/SafeMath.sol"; contract DSMath { uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; function add(uint x, uint y) internal pure returns (uint z) { z = SafeMath.add(x, y); } function sub(uint x, uint y) internal virtual pure returns (uint z) { z = SafeMath.sub(x, y); } function mul(uint x, uint y) internal pure returns (uint z) { z = SafeMath.mul(x, y); } function div(uint x, uint y) internal pure returns (uint z) { z = SafeMath.div(x, y); } function wmul(uint x, uint y) internal pure returns (uint z) { z = SafeMath.add(SafeMath.mul(x, y), WAD / 2) / WAD; } function wdiv(uint x, uint y) internal pure returns (uint z) { z = SafeMath.add(SafeMath.mul(x, WAD), y / 2) / y; } function rdiv(uint x, uint y) internal pure returns (uint z) { z = SafeMath.add(SafeMath.mul(x, RAY), y / 2) / y; } function rmul(uint x, uint y) internal pure returns (uint z) { z = SafeMath.add(SafeMath.mul(x, y), RAY / 2) / RAY; } function toInt(uint x) internal pure returns (int y) { y = int(x); require(y >= 0, "int-overflow"); } function toUint(int256 x) internal pure returns (uint256) { require(x >= 0, "int-overflow"); return uint256(x); } function toRad(uint wad) internal pure returns (uint rad) { rad = mul(wad, 10 ** 27); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import { TokenInterface } from "./interfaces.sol"; import { Stores } from "./stores.sol"; import { DSMath } from "./math.sol"; abstract contract Basic is DSMath, Stores { function convert18ToDec(uint _dec, uint256 _amt) internal pure returns (uint256 amt) { amt = (_amt / 10 ** (18 - _dec)); } function convertTo18(uint _dec, uint256 _amt) internal pure returns (uint256 amt) { amt = mul(_amt, 10 ** (18 - _dec)); } function getTokenBal(TokenInterface token) internal view returns(uint _amt) { _amt = address(token) == ethAddr ? address(this).balance : token.balanceOf(address(this)); } function getTokensDec(TokenInterface buyAddr, TokenInterface sellAddr) internal view returns(uint buyDec, uint sellDec) { buyDec = address(buyAddr) == ethAddr ? 18 : buyAddr.decimals(); sellDec = address(sellAddr) == ethAddr ? 18 : sellAddr.decimals(); } function encodeEvent(string memory eventName, bytes memory eventParam) internal pure returns (bytes memory) { return abi.encode(eventName, eventParam); } function approve(TokenInterface token, address spender, uint256 amount) internal { try token.approve(spender, amount) { } catch { token.approve(spender, 0); token.approve(spender, amount); } } function changeEthAddress(address buy, address sell) internal pure returns(TokenInterface _buy, TokenInterface _sell){ _buy = buy == ethAddr ? TokenInterface(wethAddr) : TokenInterface(buy); _sell = sell == ethAddr ? TokenInterface(wethAddr) : TokenInterface(sell); } function changeEthAddrToWethAddr(address token) internal pure returns(address tokenAddr){ tokenAddr = token == ethAddr ? wethAddr : token; } function convertEthToWeth(bool isEth, TokenInterface token, uint amount) internal { if(isEth) token.deposit{value: amount}(); } function convertWethToEth(bool isEth, TokenInterface token, uint amount) internal { if(isEth) { approve(token, address(token), amount); token.withdraw(amount); } } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @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"); return a - b; } /** * @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) { 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, reverting 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) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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 Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyToken","type":"address"},{"indexed":true,"internalType":"address","name":"sellToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"getId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"setId","type":"uint256"}],"name":"LogSell","type":"event"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyAddr","type":"address"},{"internalType":"address","name":"sellAddr","type":"address"},{"internalType":"uint256","name":"sellAmt","type":"uint256"},{"internalType":"uint256","name":"unitAmt","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"setId","type":"uint256"}],"name":"sell","outputs":[{"internalType":"string","name":"_eventName","type":"string"},{"internalType":"bytes","name":"_eventParam","type":"bytes"}],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60c0604052600860808190526731496e63682d763560c01b60a0908152610029916000919061003c565b5034801561003657600080fd5b506100dd565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261007257600085556100b8565b82601f1061008b57805160ff19168380011785556100b8565b828001600101855582156100b8579182015b828111156100b857825182559160200191906001019061009d565b506100c49291506100c8565b5090565b5b808211156100c457600081556001016100c9565b610bb5806100ec6000396000f3fe6080604052600436106100295760003560e01c806306fdde031461002e578063f892b2ad14610059575b600080fd5b34801561003a57600080fd5b5061004361007a565b6040516100509190610a5f565b60405180910390f35b61006c610067366004610932565b610108565b604051610050929190610a72565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101005780601f106100d557610100808354040283529160200191610100565b820191906000526020600020905b8154815290600101906020018083116100e357829003601f168201915b505050505081565b60608060006040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018981526020016000815260200188815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250905061018d81856101ec565b9050604051806060016040528060388152602001610b276038913992508989826060015183604001516000886040516020016101ce96959493929190610a26565b60405160208183030381529060405291505097509795505050505050565b6101f46108ce565b825160006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156102285750604084015161024b565b61024b82731111111254eeb25477b68fb85ed929f73a9605828760400151610273565b61025585826103bb565b606086018190526102679085906104fa565b84925050505b92915050565b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156102ca57600080fd5b505af19250505080156102db575060015b6103b6576040805163095ea7b360e01b81526001600160a01b03848116600483015260006024830181905292519086169263095ea7b3926044808201939182900301818387803b15801561032e57600080fd5b505af1158015610342573d6000803e3d6000fd5b50505050826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050505b505050565b600080836020015190506000806103d6838760000151610577565b9150915060006103ea8288604001516106a7565b90506000610405846104008a60800151856106c0565b6106f5565b9050600061041286610706565b90506000731111111254eeb25477b68fb85ed929f73a9605826001600160a01b0316898b60a001516040516104479190610a0a565b60006040518083038185875af1925050503d8060008114610484576040519150601f19603f3d011682016040523d82523d6000602084013e610489565b606091505b50509050806104b35760405162461bcd60e51b81526004016104aa90610acb565b60405180910390fd5b60006104be88610706565b90506104ca81846107aa565b9850888411156104ec5760405162461bcd60e51b81526004016104aa90610aa0565b505050505050505092915050565b81156105735760408051631878f25160e21b815260048101849052602481018390529051738a5419cfc711b2343c17a6abf4b2bafabb06957f916361e3c94491604480830192600092919082900301818387803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050505b5050565b6000806001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461060857836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d602081101561060157600080fd5b505161060b565b60125b91506001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461069b57826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561066a57600080fd5b505afa15801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b505161069e565b60125b90509250929050565b60006106b98284601203600a0a6107b6565b9392505050565b6000670de0b6b3a76400006106e66106d885856107be565b6706f05b59d3b20000610817565b816106ed57fe5b049392505050565b600082601203600a0a82816106ed57fe5b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146107a357604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d602081101561079c57600080fd5b505161026d565b4792915050565b60006106b98383610871565b60006106b983835b6000826107cd5750600061026d565b828202828482816107da57fe5b04146106b95760405162461bcd60e51b8152600401808060200182810382526021815260200180610b5f6021913960400191505060405180910390fd5b6000828201838110156106b9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156108c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b80356001600160a01b038116811461092d57600080fd5b919050565b600080600080600080600060c0888a03121561094c578283fd5b61095588610916565b965061096360208901610916565b95506040880135945060608801359350608088013567ffffffffffffffff8082111561098d578485fd5b818a0191508a601f8301126109a0578485fd5b8135818111156109ae578586fd5b8b60208285010111156109bf578586fd5b60208301955080945050505060a0880135905092959891949750929550565b600081518084526109f6816020860160208601610af6565b601f01601f19169290920160200192915050565b60008251610a1c818460208701610af6565b9190910192915050565b6001600160a01b0396871681529490951660208501526040840192909252606083015260ff16608082015260a081019190915260c00190565b6000602082526106b960208301846109de565b600060408252610a8560408301856109de565b8281036020840152610a9781856109de565b95945050505050565b602080825260119082015270546f6f206d75636820736c69707061676560781b604082015260600190565b6020808252601190820152700c525b98da0b5cddd85c0b59985a5b1959607a1b604082015260600190565b60005b83811015610b11578181015183820152602001610af9565b83811115610b20576000848401525b5050505056fe4c6f6753656c6c28616464726573732c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e7432353629536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220ff477fe42165766cb71bf5538841e057f7c660a3e750b16b168a1b89d6c251e064736f6c63430007060033
Deployed Bytecode
0x6080604052600436106100295760003560e01c806306fdde031461002e578063f892b2ad14610059575b600080fd5b34801561003a57600080fd5b5061004361007a565b6040516100509190610a5f565b60405180910390f35b61006c610067366004610932565b610108565b604051610050929190610a72565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101005780601f106100d557610100808354040283529160200191610100565b820191906000526020600020905b8154815290600101906020018083116100e357829003601f168201915b505050505081565b60608060006040518060c001604052808a6001600160a01b031681526020018b6001600160a01b031681526020018981526020016000815260200188815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050915250905061018d81856101ec565b9050604051806060016040528060388152602001610b276038913992508989826060015183604001516000886040516020016101ce96959493929190610a26565b60405160208183030381529060405291505097509795505050505050565b6101f46108ce565b825160006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156102285750604084015161024b565b61024b82731111111254eeb25477b68fb85ed929f73a9605828760400151610273565b61025585826103bb565b606086018190526102679085906104fa565b84925050505b92915050565b826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156102ca57600080fd5b505af19250505080156102db575060015b6103b6576040805163095ea7b360e01b81526001600160a01b03848116600483015260006024830181905292519086169263095ea7b3926044808201939182900301818387803b15801561032e57600080fd5b505af1158015610342573d6000803e3d6000fd5b50505050826001600160a01b031663095ea7b383836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561039d57600080fd5b505af11580156103b1573d6000803e3d6000fd5b505050505b505050565b600080836020015190506000806103d6838760000151610577565b9150915060006103ea8288604001516106a7565b90506000610405846104008a60800151856106c0565b6106f5565b9050600061041286610706565b90506000731111111254eeb25477b68fb85ed929f73a9605826001600160a01b0316898b60a001516040516104479190610a0a565b60006040518083038185875af1925050503d8060008114610484576040519150601f19603f3d011682016040523d82523d6000602084013e610489565b606091505b50509050806104b35760405162461bcd60e51b81526004016104aa90610acb565b60405180910390fd5b60006104be88610706565b90506104ca81846107aa565b9850888411156104ec5760405162461bcd60e51b81526004016104aa90610aa0565b505050505050505092915050565b81156105735760408051631878f25160e21b815260048101849052602481018390529051738a5419cfc711b2343c17a6abf4b2bafabb06957f916361e3c94491604480830192600092919082900301818387803b15801561055a57600080fd5b505af115801561056e573d6000803e3d6000fd5b505050505b5050565b6000806001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461060857836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d602081101561060157600080fd5b505161060b565b60125b91506001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461069b57826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561066a57600080fd5b505afa15801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b505161069e565b60125b90509250929050565b60006106b98284601203600a0a6107b6565b9392505050565b6000670de0b6b3a76400006106e66106d885856107be565b6706f05b59d3b20000610817565b816106ed57fe5b049392505050565b600082601203600a0a82816106ed57fe5b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146107a357604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561077257600080fd5b505afa158015610786573d6000803e3d6000fd5b505050506040513d602081101561079c57600080fd5b505161026d565b4792915050565b60006106b98383610871565b60006106b983835b6000826107cd5750600061026d565b828202828482816107da57fe5b04146106b95760405162461bcd60e51b8152600401808060200182810382526021815260200180610b5f6021913960400191505060405180910390fd5b6000828201838110156106b9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156108c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b80356001600160a01b038116811461092d57600080fd5b919050565b600080600080600080600060c0888a03121561094c578283fd5b61095588610916565b965061096360208901610916565b95506040880135945060608801359350608088013567ffffffffffffffff8082111561098d578485fd5b818a0191508a601f8301126109a0578485fd5b8135818111156109ae578586fd5b8b60208285010111156109bf578586fd5b60208301955080945050505060a0880135905092959891949750929550565b600081518084526109f6816020860160208601610af6565b601f01601f19169290920160200192915050565b60008251610a1c818460208701610af6565b9190910192915050565b6001600160a01b0396871681529490951660208501526040840192909252606083015260ff16608082015260a081019190915260c00190565b6000602082526106b960208301846109de565b600060408252610a8560408301856109de565b8281036020840152610a9781856109de565b95945050505050565b602080825260119082015270546f6f206d75636820736c69707061676560781b604082015260600190565b6020808252601190820152700c525b98da0b5cddd85c0b59985a5b1959607a1b604082015260600190565b60005b83811015610b11578181015183820152602001610af9565b83811115610b20576000848401525b5050505056fe4c6f6753656c6c28616464726573732c616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e7432353629536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220ff477fe42165766cb71bf5538841e057f7c660a3e750b16b168a1b89d6c251e064736f6c63430007060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.