Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Normalizer
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity Multiple files format)
pragma solidity 0.5.17;
import './safeMath.sol';
interface Curve {
function get_virtual_price() external view returns (uint);
}
interface Yearn {
function getPricePerFullShare() external view returns (uint);
function token() external view returns (address);
}
interface UnderlyingToken {
function decimals() external view returns (uint8);
}
interface Compound {
function exchangeRateStored() external view returns (uint);
function underlying() external view returns (address);
}
interface Cream {
function exchangeRateStored() external view returns (uint);
function underlying() external view returns (address);
}
contract Normalizer {
using SafeMath for uint;
address public governance;
address public creamY;
mapping(address => bool) public native;
mapping(address => bool) public yearn;
mapping(address => bool) public curve;
mapping(address => address) public curveSwap;
mapping(address => bool) public vaults;
mapping(address => bool) public compound;
mapping(address => bool) public cream;
mapping(address => uint) public underlyingDecimals;
constructor() public {
governance = msg.sender;
native[0xdAC17F958D2ee523a2206206994597C13D831ec7] = true; // USDT
native[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48] = true; // USDC
native[0x4Fabb145d64652a948d72533023f6E7A623C7C53] = true; // BUSD
native[0x0000000000085d4780B73119b644AE5ecd22b376] = true; // TUSD
yearn[0xACd43E627e64355f1861cEC6d3a6688B31a6F952] = true; // vault yDAI
yearn[0x37d19d1c4E1fa9DC47bD1eA12f742a0887eDa74a] = true; // vault yTUSD
yearn[0x597aD1e0c13Bfe8025993D9e79C69E1c0233522e] = true; // vault yUSDC
yearn[0x2f08119C6f07c006695E079AAFc638b8789FAf18] = true; // vault yUSDT
yearn[0x5dbcF33D8c2E976c6b560249878e6F1491Bca25c] = true; // vault yCRV
yearn[0x16de59092dAE5CcF4A1E6439D611fd0653f0Bd01] = true; // yDAI
yearn[0xd6aD7a6750A7593E092a9B218d66C0A814a3436e] = true; // yUSDC
yearn[0x83f798e925BcD4017Eb265844FDDAbb448f1707D] = true; // yUSDT
yearn[0x73a052500105205d34Daf004eAb301916DA8190f] = true; // yTUSD
yearn[0xF61718057901F84C4eEC4339EF8f0D86D2B45600] = true; // ySUSD
yearn[0xC2cB1040220768554cf699b0d863A3cd4324ce32] = true; // bDAI
yearn[0x26EA744E5B887E5205727f55dFBE8685e3b21951] = true; // bUSDC
yearn[0xE6354ed5bC4b393a5Aad09f21c46E101e692d447] = true; // bUSDT
yearn[0x04bC0Ab673d88aE9dbC9DA2380cB6B79C4BCa9aE] = true; // bBUSD
curve[0x845838DF265Dcd2c412A1Dc9e959c7d08537f8a2] = true; // cCompound
curveSwap[0x845838DF265Dcd2c412A1Dc9e959c7d08537f8a2] = 0xA2B47E3D5c44877cca798226B7B8118F9BFb7A56;
curve[0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8] = true; // cYearn
curveSwap[0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8] = 0x45F783CCE6B7FF23B2ab2D70e416cdb7D6055f51;
curve[0x3B3Ac5386837Dc563660FB6a0937DFAa5924333B] = true; // cBUSD
curveSwap[0x3B3Ac5386837Dc563660FB6a0937DFAa5924333B] = 0x79a8C46DeA5aDa233ABaFFD40F3A0A2B1e5A4F27;
curve[0xC25a3A3b969415c80451098fa907EC722572917F] = true; // cSUSD
curveSwap[0xC25a3A3b969415c80451098fa907EC722572917F] = 0xA5407eAE9Ba41422680e2e00537571bcC53efBfD;
curve[0xD905e2eaeBe188fc92179b6350807D8bd91Db0D8] = true; // cPAX
curveSwap[0xD905e2eaeBe188fc92179b6350807D8bd91Db0D8] = 0x06364f10B501e868329afBc005b3492902d6C763;
compound[0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643] = true; // cDAI
underlyingDecimals[0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643] = 1e18;
compound[0x39AA39c021dfbaE8faC545936693aC917d5E7563] = true; // cUSDC
underlyingDecimals[0x39AA39c021dfbaE8faC545936693aC917d5E7563] = 1e6;
compound[0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9] = true; // cUSDT
underlyingDecimals[0xf650C3d88D12dB855b8bf7D11Be6C55A4e07dCC9] = 1e6;
cream[0x44fbeBd2F576670a6C33f6Fc0B00aA8c5753b322] = true; // crUSDC
underlyingDecimals[0x44fbeBd2F576670a6C33f6Fc0B00aA8c5753b322] = 1e6;
cream[0x797AAB1ce7c01eB727ab980762bA88e7133d2157] = true; // crUSDT
underlyingDecimals[0x797AAB1ce7c01eB727ab980762bA88e7133d2157] = 1e6;
cream[0x1FF8CDB51219a8838b52E9cAc09b71e591BC998e] = true; // crBUSD
underlyingDecimals[0x1FF8CDB51219a8838b52E9cAc09b71e591BC998e] = 1e18;
}
function setGovernance(address _governance) external {
require(msg.sender == governance, "!governance");
governance = _governance;
}
function setCreamY(address _creamY) external {
require(msg.sender == governance, "!governance");
creamY = _creamY;
}
function getPrice(address token) external view returns (uint) {
if (native[token] || token == creamY) {
return 1e18;
} else if (yearn[token]) {
uint price = Yearn(token).getPricePerFullShare();
// underlying of vault yCRV (yyCRV) is yCRV. Need to consider the price of yCRV
if (token == 0x5dbcF33D8c2E976c6b560249878e6F1491Bca25c) {
address udnerlying = Yearn(token).token();
uint underlyingPrice = Curve(curveSwap[udnerlying]).get_virtual_price();
price = price.mul(underlyingPrice).div(1e18);
}
return price;
} else if (curve[token]) {
return Curve(curveSwap[token]).get_virtual_price();
} else if (compound[token]) {
return getCompoundPrice(token);
} else if (cream[token]) {
return getCreamPrice(token);
} else {
return uint(0);
}
}
function getCompoundPrice(address token) public view returns (uint) {
address underlying = Compound(token).underlying();
uint8 decimals = UnderlyingToken(underlying).decimals();
return Compound(token).exchangeRateStored().mul(1e8).div(uint(10) ** decimals);
}
function getCreamPrice(address token) public view returns (uint) {
address underlying = Cream(token).underlying();
uint8 decimals = UnderlyingToken(underlying).decimals();
return Cream(token).exchangeRateStored().mul(1e8).div(uint(10) ** decimals);
}
}
pragma solidity 0.5.17;
library SafeMath {
function add(uint a, uint b) internal pure returns (uint) {
uint c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint a, uint b) internal pure returns (uint) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
require(b <= a, errorMessage);
uint c = a - b;
return c;
}
function mul(uint a, uint b) internal pure returns (uint) {
if (a == 0) {
return 0;
}
uint c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint a, uint b) internal pure returns (uint) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint c = a / b;
return c;
}
function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0);
uint256 c = a / b;
if(a % b != 0)
c = c + 1;
return c;
}
}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"compound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cream","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"creamY","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"curve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"curveSwap","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getCompoundPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getCreamPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"native","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_creamY","type":"address"}],"name":"setCreamY","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"underlyingDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vaults","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"yearn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b0319908116331782557ff4f699a1ef35e64890828cc562d137cceeab28af8455567ef14b6ec385c8e441805460ff1990811660019081179092557fb7598821b71eb990d952f174dec3507a6d48dc93be8e23cae785c98ca310bfbb80548216831790557f09bc20e983ac290d985fc9a3e723c4a2cc4ff2de9aa4f853fdbd964cb792c1f680548216831790557f169a875b857ac28eb58f4e7cfffb50b5b96177c694f61f42f8b29eecd0bfee6880548216831790557f519ceb6c0c2ed0a5976fdac5fae5ea8c5f3df4086431cf6b1f5d5206d931692980548216831790557f5ecd83b074bae713f7377ef4c310a261ffc4a90549505a3b66925cf7d335333680548216831790557f7dd5d179f4ce125e927b1fca647d96717a542aa16af267fef0ca4f58e009cdce80548216831790557fd4b25891c330bb2c958c5cfee200a346ef1cf096724665f3c62bd0963792f2d080548216831790557f460a67a6717ba12851de2f7400d56bf2918f911cc8730938fac5715c6a8a235e80548216831790557fbaca8432cfc60e461be196fc3bd0da5e6d1660daa28a3a644df4241eb0852b1e80548216831790557f8a53ab9d5379dcd139c005c8c5e9180d3e51e40207886aca046d618f8be3b9c880548216831790557f6bb03eb6adc715926fe14593673bb894c388a1d9c7241e7da979bc792fad42ad80548216831790557f4e40e91bd9c6e34d95b2206c52d9a497d0c833f556ee9fb0c1774bccb0be45d080548216831790557fc8ff442ae1123071fe59bca77d82100f1a3e4cd7a8917e118987de0c901a9e9a80548216831790557fd2df2b0249c8885bb92068d61249094f9bac6f3e1baf75ab2c2b6c05802fee6880548216831790557faec146e5e1227c1fd28f89fa168173193ab5c4acb04c4a39c26551b6b83fef1880548216831790557fd29e47473ad4cd367a1af7c16bcdb8645c11a0235e1555bcd6f3319faadff3a680548216831790557f31789f65e2d738ca889a0671305f1abefddbdaa58ef2103fc4171101807a756e80548216831790557f2e35651a9981b84d3382e162960e5873da4f64086a28e4c79125631f04b7b9ce80548216831790557f13023624f9d5ee38af4d786449d9cb13205f9c96f0f0a100d08c6e8bac46542d8054841673a2b47e3d5c44877cca798226b7b8118f9bfb7a561790557fdb0d3319e3aa65f55fe423a9dae5b99f192ba351d568d48d402ccf1ab347382e80548216831790557fa9f20595ec86fea0d46d4432c970c4e54ca31ad9095efd7afe1d3b07ffd0ad9f805484167345f783cce6b7ff23b2ab2d70e416cdb7d6055f511790557f1e3eed9690704035a04eacaceca34e96bce22d281827df84322a115037131b9380548216831790557fcdff4c2f98e0579fc409cc8da960760fb089bb4f6ca92016f0771e595d4c55b4805484167379a8c46dea5ada233abaffd40f3a0a2b1e5a4f271790557f2cc523539df09bf8fc58b1b7e1f57626a99580a48ba00cdb6d01b87326a37f5a80548216831790557f4baac6fd997a9e26ebb81b7386f8f698fe295374d3940222e69e6e7337aafa3e8054841673a5407eae9ba41422680e2e00537571bcc53efbfd1790557fadde5cad457c16f458b7572238487440577e8b2ab975f9b364f826f258a787f980548216831790557fb13d1c11db515a4d6202c163adda00720b16a3f2ef9292feeac2820f1cbb740e80549093167306364f10b501e868329afbc005b3492902d6c763179092557f57d2f12ab94cd750d83294676c296e9ab4ccfa80086297e063de98f14554b51a8054831682179055670de0b6b3a76400007f4c8571269d605467d44763c73e8fa19be535e4e50ea0ba639c10705cb1c835598190557fa10975ac63473f4436b9928fc51aef783a6bcf7e1e8e10340b39cce66a17c73d8054841683179055620f42407fbccdc544072f1d154275788f84bcf1a9429a7563287106936a820738716d6e848190557f5577acca8c45166da5d0474d64afba9de10451e361afc35aa3a8b50d0efde83080548516841790557f27748cc516f06e168d2c78c65f3a9e991d4f090c5221adc3adf56ee1eb4838fb8190557f080495109d031c2758f1a52dec095d7c81db39ba4d38f15e1496076ddaa1a2dc80548516841790557ff46dc0fa7bfa630133c0853067950ae5255fb16598610441e8b831fc4e942b228190557fe6f51ce7410aa34bb4dcab439985110ef5ff6d91284f42a4129240d91799b72e80548516841790557feb8ad0f142a0378be91b72648db03b58b826fa45cd3725f7b7ee48506eaccbd455731ff8cdb51219a8838b52e9cac09b71e591bc998e9093527f5d73c783de0deb9caba000412d8444002d98a6918f4736f31ab0e3c8c31c9eb9805490921617905560096020527f6ada9550c2a0864b6ee7fa2bc8528d08919a5fae146037830d7957e0353f61d655610ae0806107126000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80635aa6e675116100975780639bb0fb4f116100665780639bb0fb4f1461027e578063a622ee7c146102a4578063ab033ea9146102ca578063dfc71be9146102f0576100f5565b80635aa6e6751461024657806367e67e331461024e5780637ec21cd914610276578063974c647214610220576100f5565b806321c0dcc4116100d357806321c0dcc4146101ae578063284dac23146101d457806341976e09146101fa5780635499d02614610220576100f5565b806306d8d7db146100fa57806308390a9d146101345780631b1c4f231461016c575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b0316610316565b604080519115158252519081900360200190f35b61015a6004803603602081101561014a57600080fd5b50356001600160a01b031661032b565b60408051918252519081900360200190f35b6101926004803603602081101561018257600080fd5b50356001600160a01b031661033d565b604080516001600160a01b039092168252519081900360200190f35b610120600480360360208110156101c457600080fd5b50356001600160a01b0316610358565b610120600480360360208110156101ea57600080fd5b50356001600160a01b031661036d565b61015a6004803603602081101561021057600080fd5b50356001600160a01b0316610382565b61015a6004803603602081101561023657600080fd5b50356001600160a01b031661069a565b61019261080e565b6102746004803603602081101561026457600080fd5b50356001600160a01b031661081d565b005b61019261088c565b6101206004803603602081101561029457600080fd5b50356001600160a01b031661089b565b610120600480360360208110156102ba57600080fd5b50356001600160a01b03166108b0565b610274600480360360208110156102e057600080fd5b50356001600160a01b03166108c5565b6101206004803603602081101561030657600080fd5b50356001600160a01b0316610934565b60046020526000908152604090205460ff1681565b60096020526000908152604090205481565b6005602052600090815260409020546001600160a01b031681565b60086020526000908152604090205460ff1681565b60076020526000908152604090205460ff1681565b6001600160a01b03811660009081526002602052604081205460ff16806103b657506001546001600160a01b038381169116145b156103ca5750670de0b6b3a7640000610695565b6001600160a01b03821660009081526003602052604090205460ff1615610598576000826001600160a01b03166377c7b8fc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d602081101561045057600080fd5b50519050735dbcf33d8c2e976c6b560249878e6f1491bca25c6001600160a01b0384161415610591576000836001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b457600080fd5b505afa1580156104c8573d6000803e3d6000fd5b505050506040513d60208110156104de57600080fd5b50516001600160a01b038082166000908152600560209081526040808320548151630176f71760e71b815291519596509294929093169263bb7b8b809260048083019392829003018186803b15801561053657600080fd5b505afa15801561054a573d6000803e3d6000fd5b505050506040513d602081101561056057600080fd5b5051905061058c670de0b6b3a7640000610580858463ffffffff61094916565b9063ffffffff6109ab16565b925050505b9050610695565b6001600160a01b03821660009081526004602052604090205460ff161561063d576001600160a01b03808316600090815260056020908152604091829020548251630176f71760e71b8152925193169263bb7b8b80926004808201939291829003018186803b15801561060a57600080fd5b505afa15801561061e573d6000803e3d6000fd5b505050506040513d602081101561063457600080fd5b50519050610695565b6001600160a01b03821660009081526007602052604090205460ff1615610667576105918261069a565b6001600160a01b03821660009081526008602052604090205460ff1615610691576105918261069a565b5060005b919050565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa1580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561074857600080fd5b505afa15801561075c573d6000803e3d6000fd5b505050506040513d602081101561077257600080fd5b50516040805163182df0f560e01b815290519192506108069160ff8416600a0a91610580916305f5e100916001600160a01b038a169163182df0f591600480820192602092909190829003018186803b1580156107ce57600080fd5b505afa1580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b50519063ffffffff61094916565b949350505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461086a576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b60026020526000908152604090205460ff1681565b60066020526000908152604090205460ff1681565b6000546001600160a01b03163314610912576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60036020526000908152604090205460ff1681565b600082610958575060006109a5565b8282028284828161096557fe5b04146109a25760405162461bcd60e51b8152600401808060200182810382526021815260200180610a8b6021913960400191505060405180910390fd5b90505b92915050565b60006109a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183610a745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a39578181015183820152602001610a21565b50505050905090810190601f168015610a665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610a8057fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582028c03e6c95061da135b862f229246ff5b147f1f259ccac86d3ea89f0353f12b064736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80635aa6e675116100975780639bb0fb4f116100665780639bb0fb4f1461027e578063a622ee7c146102a4578063ab033ea9146102ca578063dfc71be9146102f0576100f5565b80635aa6e6751461024657806367e67e331461024e5780637ec21cd914610276578063974c647214610220576100f5565b806321c0dcc4116100d357806321c0dcc4146101ae578063284dac23146101d457806341976e09146101fa5780635499d02614610220576100f5565b806306d8d7db146100fa57806308390a9d146101345780631b1c4f231461016c575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b0316610316565b604080519115158252519081900360200190f35b61015a6004803603602081101561014a57600080fd5b50356001600160a01b031661032b565b60408051918252519081900360200190f35b6101926004803603602081101561018257600080fd5b50356001600160a01b031661033d565b604080516001600160a01b039092168252519081900360200190f35b610120600480360360208110156101c457600080fd5b50356001600160a01b0316610358565b610120600480360360208110156101ea57600080fd5b50356001600160a01b031661036d565b61015a6004803603602081101561021057600080fd5b50356001600160a01b0316610382565b61015a6004803603602081101561023657600080fd5b50356001600160a01b031661069a565b61019261080e565b6102746004803603602081101561026457600080fd5b50356001600160a01b031661081d565b005b61019261088c565b6101206004803603602081101561029457600080fd5b50356001600160a01b031661089b565b610120600480360360208110156102ba57600080fd5b50356001600160a01b03166108b0565b610274600480360360208110156102e057600080fd5b50356001600160a01b03166108c5565b6101206004803603602081101561030657600080fd5b50356001600160a01b0316610934565b60046020526000908152604090205460ff1681565b60096020526000908152604090205481565b6005602052600090815260409020546001600160a01b031681565b60086020526000908152604090205460ff1681565b60076020526000908152604090205460ff1681565b6001600160a01b03811660009081526002602052604081205460ff16806103b657506001546001600160a01b038381169116145b156103ca5750670de0b6b3a7640000610695565b6001600160a01b03821660009081526003602052604090205460ff1615610598576000826001600160a01b03166377c7b8fc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d602081101561045057600080fd5b50519050735dbcf33d8c2e976c6b560249878e6f1491bca25c6001600160a01b0384161415610591576000836001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b457600080fd5b505afa1580156104c8573d6000803e3d6000fd5b505050506040513d60208110156104de57600080fd5b50516001600160a01b038082166000908152600560209081526040808320548151630176f71760e71b815291519596509294929093169263bb7b8b809260048083019392829003018186803b15801561053657600080fd5b505afa15801561054a573d6000803e3d6000fd5b505050506040513d602081101561056057600080fd5b5051905061058c670de0b6b3a7640000610580858463ffffffff61094916565b9063ffffffff6109ab16565b925050505b9050610695565b6001600160a01b03821660009081526004602052604090205460ff161561063d576001600160a01b03808316600090815260056020908152604091829020548251630176f71760e71b8152925193169263bb7b8b80926004808201939291829003018186803b15801561060a57600080fd5b505afa15801561061e573d6000803e3d6000fd5b505050506040513d602081101561063457600080fd5b50519050610695565b6001600160a01b03821660009081526007602052604090205460ff1615610667576105918261069a565b6001600160a01b03821660009081526008602052604090205460ff1615610691576105918261069a565b5060005b919050565b600080826001600160a01b0316636f307dc36040518163ffffffff1660e01b815260040160206040518083038186803b1580156106d657600080fd5b505afa1580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0384169163313ce567916004808301926020929190829003018186803b15801561074857600080fd5b505afa15801561075c573d6000803e3d6000fd5b505050506040513d602081101561077257600080fd5b50516040805163182df0f560e01b815290519192506108069160ff8416600a0a91610580916305f5e100916001600160a01b038a169163182df0f591600480820192602092909190829003018186803b1580156107ce57600080fd5b505afa1580156107e2573d6000803e3d6000fd5b505050506040513d60208110156107f857600080fd5b50519063ffffffff61094916565b949350505050565b6000546001600160a01b031681565b6000546001600160a01b0316331461086a576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b60026020526000908152604090205460ff1681565b60066020526000908152604090205460ff1681565b6000546001600160a01b03163314610912576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60036020526000908152604090205460ff1681565b600082610958575060006109a5565b8282028284828161096557fe5b04146109a25760405162461bcd60e51b8152600401808060200182810382526021815260200180610a8b6021913960400191505060405180910390fd5b90505b92915050565b60006109a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183610a745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a39578181015183820152602001610a21565b50505050905090810190601f168015610a665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610a8057fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a7231582028c03e6c95061da135b862f229246ff5b147f1f259ccac86d3ea89f0353f12b064736f6c63430005110032
Deployed Bytecode Sourcemap
653:5630:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;653:5630:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;854:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;854:37:0;-1:-1:-1;;;;;854:37:0;;:::i;:::-;;;;;;;;;;;;;;;;;;1080:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1080:50:0;-1:-1:-1;;;;;1080:50:0;;:::i;:::-;;;;;;;;;;;;;;;;897:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;897:44:0;-1:-1:-1;;;;;897:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;897:44:0;;;;;;;;;;;;;;1037:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1037:37:0;-1:-1:-1;;;;;1037:37:0;;:::i;991:40::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:40:0;-1:-1:-1;;;;;991:40:0;;:::i;4737:967::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4737:967:0;-1:-1:-1;;;;;4737:967:0;;:::i;6003:278::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6003:278:0;-1:-1:-1;;;;;6003:278:0;;:::i;709:25::-;;;:::i;4595:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4595:136:0;-1:-1:-1;;;;;4595:136:0;;:::i;:::-;;740:21;;;:::i;767:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;767:38:0;-1:-1:-1;;;;;767:38:0;;:::i;947:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;947:38:0;-1:-1:-1;;;;;947:38:0;;:::i;4437:152::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4437:152:0;-1:-1:-1;;;;;4437:152:0;;:::i;811:37::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;811:37:0;-1:-1:-1;;;;;811:37:0;;:::i;854:::-;;;;;;;;;;;;;;;:::o;1080:50::-;;;;;;;;;;;;;:::o;897:44::-;;;;;;;;;;;;-1:-1:-1;;;;;897:44:0;;:::o;1037:37::-;;;;;;;;;;;;;;;:::o;991:40::-;;;;;;;;;;;;;;;:::o;4737:967::-;-1:-1:-1;;;;;4813:13:0;;4793:4;4813:13;;;:6;:13;;;;;;;;;:32;;-1:-1:-1;4839:6:0;;-1:-1:-1;;;;;4830:15:0;;;4839:6;;4830:15;4813:32;4809:889;;;-1:-1:-1;4868:4:0;4861:11;;4809:889;-1:-1:-1;;;;;4893:12:0;;;;;;:5;:12;;;;;;;;4889:809;;;4921:10;4940:5;-1:-1:-1;;;;;4934:33:0;;:35;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4934:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4934:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4934:35:0;;-1:-1:-1;5088:42:0;-1:-1:-1;;;;;5079:51:0;;;5075:285;;;5151:18;5178:5;-1:-1:-1;;;;;5172:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5172:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5172:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5172:20:0;-1:-1:-1;;;;;5240:21:0;;;5211:20;5240:21;;;:9;5172:20;5240:21;;;;;;;;5234:48;;-1:-1:-1;;;5234:48:0;;;;5172:20;;-1:-1:-1;5211:20:0;;5240:21;;;;;5234:46;;:48;;;;;5172:20;5234:48;;;;;5240:21;5234:48;;;5:2:-1;;;;30:1;27;20:12;5:2;5234:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5234:48:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5234:48:0;;-1:-1:-1;5309:36:0;5340:4;5309:26;:5;5234:48;5309:26;:9;:26;:::i;:::-;:30;:36;:30;:36;:::i;:::-;5301:44;;5075:285;;;5380:5;-1:-1:-1;5373:12:0;;4889:809;-1:-1:-1;;;;;5406:12:0;;;;;;:5;:12;;;;;;;;5402:296;;;-1:-1:-1;;;;;5447:16:0;;;;;;;:9;:16;;;;;;;;;;5441:43;;-1:-1:-1;;;5441:43:0;;;;5447:16;;;5441:41;;:43;;;;;5447:16;5441:43;;;;;;5447:16;5441:43;;;5:2:-1;;;;30:1;27;20:12;5:2;5441:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5441:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5441:43:0;;-1:-1:-1;5434:50:0;;5402:296;-1:-1:-1;;;;;5505:15:0;;;;;;:8;:15;;;;;;;;5501:197;;;5543:23;5560:5;5543:16;:23::i;5501:197::-;-1:-1:-1;;;;;5587:12:0;;;;;;:5;:12;;;;;;;;5583:115;;;5622:20;5636:5;5622:13;:20::i;5583:115::-;-1:-1:-1;5685:1:0;5583:115;4737:967;;;:::o;6003:278::-;6062:4;6078:18;6105:5;-1:-1:-1;;;;;6099:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6099:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6099:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6099:25:0;6151:38;;;-1:-1:-1;;;6151:38:0;;;;6099:25;;-1:-1:-1;6134:14:0;;-1:-1:-1;;;;;6151:36:0;;;;;:38;;;;;6099:25;;6151:38;;;;;;;:36;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;6151:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6151:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6151:38:0;6206:33;;;-1:-1:-1;;;6206:33:0;;;;6151:38;;-1:-1:-1;6206:68:0;;6253:20;;;6258:2;6253:20;;6206:42;;6244:3;;-1:-1:-1;;;;;6206:31:0;;;;;:33;;;;;6151:38;;6206:33;;;;;;;;:31;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;6206:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6206:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6206:33:0;;:42;:37;:42;:::i;:68::-;6199:75;6003:278;-1:-1:-1;;;;6003:278:0:o;709:25::-;;;-1:-1:-1;;;;;709:25:0;;:::o;4595:136::-;4672:10;;-1:-1:-1;;;;;4672:10:0;4658;:24;4650:48;;;;;-1:-1:-1;;;4650:48:0;;;;;;;;;;;;-1:-1:-1;;;4650:48:0;;;;;;;;;;;;;;;4708:6;:16;;-1:-1:-1;;;;;;4708:16:0;-1:-1:-1;;;;;4708:16:0;;;;;;;;;;4595:136::o;740:21::-;;;-1:-1:-1;;;;;740:21:0;;:::o;767:38::-;;;;;;;;;;;;;;;:::o;947:::-;;;;;;;;;;;;;;;:::o;4437:152::-;4522:10;;-1:-1:-1;;;;;4522:10:0;4508;:24;4500:48;;;;;-1:-1:-1;;;4500:48:0;;;;;;;;;;;;-1:-1:-1;;;4500:48:0;;;;;;;;;;;;;;;4558:10;:24;;-1:-1:-1;;;;;;4558:24:0;-1:-1:-1;;;;;4558:24:0;;;;;;;;;;4437:152::o;811:37::-;;;;;;;;;;;;;;;:::o;527:229:1:-;579:4;599:6;595:45;;-1:-1:-1;628:1:1;621:8;;595:45;659:5;;;663:1;659;:5;:1;682:5;;;;;:10;674:56;;;;-1:-1:-1;;;674:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;748:1;-1:-1:-1;527:229:1;;;;;:::o;761:121::-;813:4;836:39;840:1;843;836:39;;;;;;;;;;;;;;;;;967:4;1064:12;1057:5;1049:28;;;;-1:-1:-1;;;1049:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1049:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1087:6;1100:1;1096;:5;;;;;;;887:240;-1:-1:-1;;;;;887:240:1:o
Swarm Source
bzzr://28c03e6c95061da135b862f229246ff5b147f1f259ccac86d3ea89f0353f12b0
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.