Feature Tip: Add private address tag to any address under My Name Tag !
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
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 13714156 | 1051 days ago | IN | 0 ETH | 0.05447205 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ConnectV2UniverseFinance
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.7.6; pragma abicoder v2; import {TokenInterface} from "../../common/interfaces.sol"; import {Helpers} from "./helpers.sol"; import {Events} from "./events.sol"; abstract contract UniverseFinanceConnect is Helpers, Events { /** * @notice Deposit in Universe Vault by Adapter * @param universeVault Universe Official Vault Address * @param amountA Amount of tokenA * @param amountB Amount of tokenB * @param getIds ID to retrieve amountA and amountB */ function deposit( address universeVault, uint256 amountA, uint256 amountB, uint256[] calldata getIds, uint256[] calldata setIds ) external returns (string memory _eventName, bytes memory _eventParam){ amountA = getUint(getIds[0], amountA); amountB = getUint(getIds[1], amountB); _approve(universeVault, amountA, amountB); (uint256 share0, uint256 share1) = _deposit(universeVault, amountA, amountB); setUint(setIds[0], share0); setUint(setIds[1], share1); // EVENT _eventName = "LogDeposit(address,uint256,uint256,uint256,uint256)"; _eventParam = abi.encode(universeVault, amountA, amountB, share0, share1); } /** * @notice Withdraw Token0 & Token1 From Universe Vault * @param universeVault Universe Official Vault Address * @param share0 Amount of uToken0. * @param share1 Amount of uToken1. * @param setIds stores the amount of output tokens */ function withdraw( address universeVault, uint256 share0, uint256 share1, uint256[] calldata getIds, uint256[] calldata setIds ) external returns (string memory _eventName, bytes memory _eventParam){ share0 = getUint(getIds[0], share0); share1 = getUint(getIds[1], share1); (uint256 _amtA, uint256 _amtB) = _withdraw(universeVault, share0, share1); setUint(setIds[0], _amtA); setUint(setIds[1], _amtB); // EVENT _eventName = "LogWithdraw(address,uint256,uint256,uint256,uint256)"; _eventParam = abi.encode(universeVault, _amtA, _amtB, share0, share1); } } contract ConnectV2UniverseFinance is UniverseFinanceConnect { string public constant name = "UniverseFinance-v1"; }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.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; } }
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 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); } } }
pragma solidity ^0.7.0; 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); } 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); }
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 toRad(uint wad) internal pure returns (uint rad) { rad = mul(wad, 10 ** 27); } }
pragma solidity ^0.7.0; import { MemoryInterface, InstaMapping } 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 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); } }
pragma solidity ^0.7.0; contract Events { event LogDeposit( address indexed universeVault, uint256 amountA, uint256 amountB, uint256 share0, uint256 share1 ); event LogWithdraw( address indexed universeVault, uint256 amountA, uint256 amountB, uint256 share0, uint256 share1 ); }
pragma solidity ^0.7.6; import {TokenInterface} from "../../common/interfaces.sol"; import {DSMath} from "../../common/math.sol"; import {Basic} from "../../common/basic.sol"; import "./interface.sol"; abstract contract Helpers is DSMath, Basic { IUniverseAdapter constant universeAdapter = IUniverseAdapter(0x876861Ad49f911442720cF97c9b3fCe4070F07d5); function _deposit( address universeVault, uint256 amount0, uint256 amount1 ) internal returns(uint256, uint256){ return universeAdapter.depositProxy(universeVault, amount0, amount1); } function _withdraw( address universeVault, uint256 share0, uint256 share1 ) internal returns(uint256, uint256){ require(share0 > 0 || share1 > 0, "ZERO"); return IVaultV3(universeVault).withdraw(share0, share1); } function _approve(address universeVault, uint256 amount0, uint256 amount1) internal { IVaultV3 universe = IVaultV3(universeVault); TokenInterface token; if (amount0 > 0) { token = universe.token0(); token.approve(address(universeAdapter), amount0); } if (amount1 > 0) { token = universe.token1(); token.approve(address(universeAdapter), amount1); } } }
pragma solidity ^0.7.6; import "../../common/interfaces.sol"; pragma abicoder v2; interface IUniverseAdapter { function depositProxy( address universeVault, uint256 amount0, uint256 amount1 ) external returns(uint256, uint256); } interface IVaultV3 { function token0() external returns(TokenInterface); function token1() external returns(TokenInterface); function withdraw(uint256 share0, uint256 share1) external returns(uint256, uint256); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 10000 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"universeVault","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share1","type":"uint256"}],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"universeVault","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountA","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share1","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"universeVault","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256[]","name":"getIds","type":"uint256[]"},{"internalType":"uint256[]","name":"setIds","type":"uint256[]"}],"name":"deposit","outputs":[{"internalType":"string","name":"_eventName","type":"string"},{"internalType":"bytes","name":"_eventParam","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"universeVault","type":"address"},{"internalType":"uint256","name":"share0","type":"uint256"},{"internalType":"uint256","name":"share1","type":"uint256"},{"internalType":"uint256[]","name":"getIds","type":"uint256[]"},{"internalType":"uint256[]","name":"setIds","type":"uint256[]"}],"name":"withdraw","outputs":[{"internalType":"string","name":"_eventName","type":"string"},{"internalType":"bytes","name":"_eventParam","type":"bytes"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610a08806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde031461004657806341889cee14610064578063633ddd6514610085575b600080fd5b61004e610098565b60405161005b919061092a565b60405180910390f35b6100776100723660046107db565b6100d1565b60405161005b92919061093d565b6100776100933660046107db565b6101bc565b6040518060400160405280601281526020017f556e69766572736546696e616e63652d7631000000000000000000000000000081525081565b6060806100f1868660008181106100e457fe5b9050602002013589610249565b97506101108686600181811061010357fe5b9050602002013588610249565b965061011d8989896102f2565b60008061012b8b8b8b61053a565b9150915061014c8686600081811061013f57fe5b905060200201358361060b565b6101698686600181811061015c57fe5b905060200201358261060b565b60405180606001604052806033815260200161096c6033913993508a8a8a848460405160200161019d9594939291906108ef565b6040516020818303038152906040529250505097509795505050505050565b6060806101cf868660008181106100e457fe5b97506101e18686600181811061010357fe5b96506000806101f18b8b8b6106a1565b915091506102058686600081811061013f57fe5b6102158686600181811061015c57fe5b60405180606001604052806034815260200161099f6034913993508a82828c8c60405160200161019d9594939291906108ef565b600082156102e957738a5419cfc711b2343c17a6abf4b2bafabb06957f73ffffffffffffffffffffffffffffffffffffffff1663a9c70eaa846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156102b857600080fd5b505af11580156102cc573d6000803e3d6000fd5b505050506040513d60208110156102e257600080fd5b50516102eb565b815b9392505050565b8260008315610414578173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050506040513d602081101561036d57600080fd5b5051604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273876861ad49f911442720cf97c9b3fce4070f07d5600482015260248101879052905191925073ffffffffffffffffffffffffffffffffffffffff83169163095ea7b39160448082019260009290919082900301818387803b1580156103fb57600080fd5b505af115801561040f573d6000803e3d6000fd5b505050505b8215610533578173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561046257600080fd5b505af1158015610476573d6000803e3d6000fd5b505050506040513d602081101561048c57600080fd5b5051604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273876861ad49f911442720cf97c9b3fce4070f07d5600482015260248101869052905191925073ffffffffffffffffffffffffffffffffffffffff83169163095ea7b39160448082019260009290919082900301818387803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b505050505b5050505050565b604080517f4b37a52f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101849052604481018390528151600092839273876861ad49f911442720cf97c9b3fce4070f07d592634b37a52f9260648084019391929182900301818787803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505050506040513d60408110156105f657600080fd5b50805160209091015190969095509350505050565b811561069d57604080517f61e3c94400000000000000000000000000000000000000000000000000000000815260048101849052602481018390529051738a5419cfc711b2343c17a6abf4b2bafabb06957f916361e3c94491604480830192600092919082900301818387803b15801561068457600080fd5b505af1158015610698573d6000803e3d6000fd5b505050505b5050565b60008060008411806106b35750600083115b61072057604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f5a45524f00000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f441a3e700000000000000000000000000000000000000000000000000000000081526004810186905260248101859052815173ffffffffffffffffffffffffffffffffffffffff88169263441a3e7092604480820193918290030181600087803b1580156105cc57600080fd5b60008083601f8401126107a3578182fd5b50813567ffffffffffffffff8111156107ba578182fd5b60208301915083602080830285010111156107d457600080fd5b9250929050565b600080600080600080600060a0888a0312156107f5578283fd5b873573ffffffffffffffffffffffffffffffffffffffff81168114610818578384fd5b96506020880135955060408801359450606088013567ffffffffffffffff80821115610842578485fd5b61084e8b838c01610792565b909650945060808a0135915080821115610866578384fd5b506108738a828b01610792565b989b979a50959850939692959293505050565b60008151808452815b818110156108ab5760208185018101518683018201520161088f565b818111156108bc5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff959095168552602085019390935260408401919091526060830152608082015260a00190565b6000602082526102eb6020830184610886565b6000604082526109506040830185610886565b82810360208401526109628185610886565b9594505050505056fe4c6f674465706f73697428616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e74323536294c6f67576974686472617728616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e7432353629a2646970667358221220cdbb0c4abe7b90245fee6f5b836d6da4f2882200631367a6f0d1a1729b9fd16764736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde031461004657806341889cee14610064578063633ddd6514610085575b600080fd5b61004e610098565b60405161005b919061092a565b60405180910390f35b6100776100723660046107db565b6100d1565b60405161005b92919061093d565b6100776100933660046107db565b6101bc565b6040518060400160405280601281526020017f556e69766572736546696e616e63652d7631000000000000000000000000000081525081565b6060806100f1868660008181106100e457fe5b9050602002013589610249565b97506101108686600181811061010357fe5b9050602002013588610249565b965061011d8989896102f2565b60008061012b8b8b8b61053a565b9150915061014c8686600081811061013f57fe5b905060200201358361060b565b6101698686600181811061015c57fe5b905060200201358261060b565b60405180606001604052806033815260200161096c6033913993508a8a8a848460405160200161019d9594939291906108ef565b6040516020818303038152906040529250505097509795505050505050565b6060806101cf868660008181106100e457fe5b97506101e18686600181811061010357fe5b96506000806101f18b8b8b6106a1565b915091506102058686600081811061013f57fe5b6102158686600181811061015c57fe5b60405180606001604052806034815260200161099f6034913993508a82828c8c60405160200161019d9594939291906108ef565b600082156102e957738a5419cfc711b2343c17a6abf4b2bafabb06957f73ffffffffffffffffffffffffffffffffffffffff1663a9c70eaa846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156102b857600080fd5b505af11580156102cc573d6000803e3d6000fd5b505050506040513d60208110156102e257600080fd5b50516102eb565b815b9392505050565b8260008315610414578173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561034357600080fd5b505af1158015610357573d6000803e3d6000fd5b505050506040513d602081101561036d57600080fd5b5051604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273876861ad49f911442720cf97c9b3fce4070f07d5600482015260248101879052905191925073ffffffffffffffffffffffffffffffffffffffff83169163095ea7b39160448082019260009290919082900301818387803b1580156103fb57600080fd5b505af115801561040f573d6000803e3d6000fd5b505050505b8215610533578173ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561046257600080fd5b505af1158015610476573d6000803e3d6000fd5b505050506040513d602081101561048c57600080fd5b5051604080517f095ea7b300000000000000000000000000000000000000000000000000000000815273876861ad49f911442720cf97c9b3fce4070f07d5600482015260248101869052905191925073ffffffffffffffffffffffffffffffffffffffff83169163095ea7b39160448082019260009290919082900301818387803b15801561051a57600080fd5b505af115801561052e573d6000803e3d6000fd5b505050505b5050505050565b604080517f4b37a52f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101849052604481018390528151600092839273876861ad49f911442720cf97c9b3fce4070f07d592634b37a52f9260648084019391929182900301818787803b1580156105cc57600080fd5b505af11580156105e0573d6000803e3d6000fd5b505050506040513d60408110156105f657600080fd5b50805160209091015190969095509350505050565b811561069d57604080517f61e3c94400000000000000000000000000000000000000000000000000000000815260048101849052602481018390529051738a5419cfc711b2343c17a6abf4b2bafabb06957f916361e3c94491604480830192600092919082900301818387803b15801561068457600080fd5b505af1158015610698573d6000803e3d6000fd5b505050505b5050565b60008060008411806106b35750600083115b61072057604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f5a45524f00000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b604080517f441a3e700000000000000000000000000000000000000000000000000000000081526004810186905260248101859052815173ffffffffffffffffffffffffffffffffffffffff88169263441a3e7092604480820193918290030181600087803b1580156105cc57600080fd5b60008083601f8401126107a3578182fd5b50813567ffffffffffffffff8111156107ba578182fd5b60208301915083602080830285010111156107d457600080fd5b9250929050565b600080600080600080600060a0888a0312156107f5578283fd5b873573ffffffffffffffffffffffffffffffffffffffff81168114610818578384fd5b96506020880135955060408801359450606088013567ffffffffffffffff80821115610842578485fd5b61084e8b838c01610792565b909650945060808a0135915080821115610866578384fd5b506108738a828b01610792565b989b979a50959850939692959293505050565b60008151808452815b818110156108ab5760208185018101518683018201520161088f565b818111156108bc5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff959095168552602085019390935260408401919091526060830152608082015260a00190565b6000602082526102eb6020830184610886565b6000604082526109506040830185610886565b82810360208401526109628185610886565b9594505050505056fe4c6f674465706f73697428616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e74323536294c6f67576974686472617728616464726573732c75696e743235362c75696e743235362c75696e743235362c75696e7432353629a2646970667358221220cdbb0c4abe7b90245fee6f5b836d6da4f2882200631367a6f0d1a1729b9fd16764736f6c63430007060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.