Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
EldersInventoryManager
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.12;
//import "hardhat/console.sol"; ///REMOVE BEFORE DEPLOYMENT
//v 1.0.3
import "./EldersDataStructures.sol";
import "./Interfaces.sol";
contract EldersInventoryManager {
using EldersDataStructures for EldersDataStructures.EldersMeta;
struct EldersInventoryItem {
string folder;
string name;
}
string public constant header = '<svg id="elf" viewBox="0 0 160 160" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet">';
string public constant footer = "<style>#elf{shape-rendering: crispedges; image-rendering: -webkit-crisp-edges; image-rendering: -moz-crisp-edges; image-rendering: crisp-edges; image-rendering: pixelated; -ms-interpolation-mode: nearest-neighbor;}</style></svg>";
string[6] public CLASS;
string[6] public LAYERS;
string[8] public ATTRIBUTES;
string[5] public DISPLAYTYPES;
uint256[6] public RACE_CODE;
uint256[6] public BODY_CODE;
uint256[6] public HEAD_CODE;
uint256[6] public PRIMARY_WEAPON_CODE;
uint256[6] public SECONDARY_WEAPON_CODE;
uint256[6] public ARMOR_CODE;
//layer code, followed by itemId
mapping(uint256 => EldersInventoryItem) public EldersInventory;
bool isInitialized;
address admin;
string ipfsBase;
function initialize() public {
admin = msg.sender;
isInitialized = true;
CLASS = ["Druid", "Sorceress", "Ranger", "Assassin", "Berserker", "Mauler"];
LAYERS = ["Primary Weapon","Race", "Body", "Head", "Armor", "Secondary Weapon"];
ATTRIBUTES = ["Strength", "Agility", "Intellegence", "Attack Points","Health Points","Mana"];
DISPLAYTYPES = ["boost_number", "boost_percentage", "date", "number", ""];
RACE_CODE = [700,800,900,1000,1100,1200];
BODY_CODE = [1300,1400,1500,1600,1700,1800];
HEAD_CODE = [1900,2000,2100,2200,2300,2400];
PRIMARY_WEAPON_CODE = [2500,2600,2700,2800,2900,3000];
SECONDARY_WEAPON_CODE =[3100,3200,3300,3400,3500,3600];
ARMOR_CODE = [3700,3800,3900,4000,4100,4200];
ipfsBase = "https://huskies.mypinata.cloud/ipfs/";
}
function setIPFSBase (string calldata _ipfsBase) public {
onlyOwner();
ipfsBase = _ipfsBase;
}
function addItem(uint256 [] calldata itemId, string[] memory name, string calldata folder ) public {
onlyOwner();
for(uint i = 0; i < itemId.length; i++) {
EldersInventory[itemId[i]].folder = folder;
EldersInventory[itemId[i]].name = name[i];
}
}
function getTokenURI(uint16 id_, uint256 elder, bool isRevealed)
external
view
returns (string memory)
{
string memory docURI = string.concat('<html><body><iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" frameborder="0" height="100%" sandbox="allow-scripts" src="',
'data:image/svg+xml;base64,', Base64.encode(bytes(getSVG(elder))),'" width="100%"/></body></html>');
//bytes memory imageSvg = abi.encodePacked('"image": "data:image/svg+xml;base64,', Base64.encode(bytes(getSVG(elder))),'",');
bytes memory imageSvg = abi.encodePacked('"animation_url": "data:text/html;base64,', Base64.encode(bytes(docURI)),'",');
bytes memory imagePng = abi.encodePacked('"image": "https://imagedelivery.net/UsEuOeZz7eUzV1E1xlJ0hw/d34b45a8-fe1f-488d-e0d6-3cb6941a0600/public",');
bytes memory name = abi.encodePacked( '"name":"Elder #', toString(id_),'",');
bytes memory description = abi.encodePacked('"description":"Etherna Elves Elders is a collection of 2222 Heroes roaming the Elvenverse in search of the Mires. Play Ethernal Elves to upgrade your abilities and grow your army. !onward",');
string memory dnaString = string.concat('"attributes": [{"trait_type":"DNA","value":"',toString(elder), '"}]');
return
string(
abi.encodePacked(
"data:application/json;base64,",
Base64.encode(
bytes(
abi.encodePacked(
'{',
name,
description,
isRevealed ? imageSvg : imagePng,
isRevealed ? getAttributes(elder) : dnaString,
'}'
)
)
)
)
);
}
function getSVG(uint256 elder) public view returns (string memory) {
EldersDataStructures.EldersMeta memory item = EldersDataStructures.getElder(elder);
uint256 elderClass = item.elderClass;
string memory elder = string(
abi.encodePacked(
header,
get(PRIMARY_WEAPON_CODE[elderClass], uint(item.primaryWeapon)),
get(RACE_CODE[elderClass], uint(item.race) ),
get(BODY_CODE[elderClass], uint(item.body) ),
get(HEAD_CODE[elderClass], uint(item.head) ),
get(ARMOR_CODE[elderClass], uint(item.armor)),
get(SECONDARY_WEAPON_CODE[elderClass], uint(item.secondaryWeapon)),
footer
)
);
return elder;
}
function getAttributes(uint256 elder) internal view returns (string memory) {
EldersDataStructures.EldersMeta memory item = EldersDataStructures.getElder(elder);
return
string(
abi.encodePacked(
'"attributes": [',
string.concat('{"trait_type":"Class","value":"',CLASS[item.elderClass], '"}'),
",",
getLayerAttributes(elder),
",",
getValueAttributes(elder),
"]"
)
);
}
function getLayerAttributes(uint256 elder) internal view returns (string memory) {
EldersDataStructures.EldersMeta memory item = EldersDataStructures.getElder(elder);
return
string(
abi.encodePacked(
getLayerAttribute(0, uint8(item.primaryWeapon), PRIMARY_WEAPON_CODE[item.elderClass]),
",",
getLayerAttribute(1, uint8(item.race), RACE_CODE[item.elderClass]),
",",
getLayerAttribute(2, uint8(item.body), BODY_CODE[item.elderClass]),
",",
getLayerAttribute(3, uint8(item.head), HEAD_CODE[item.elderClass]),
",",
getLayerAttribute(4, uint8(item.armor), ARMOR_CODE[item.elderClass]),
",",
getLayerAttribute(5, uint8(item.secondaryWeapon), SECONDARY_WEAPON_CODE[item.elderClass])
)
);
}
function getValueAttributes(uint256 elder) internal view returns (string memory) {
EldersDataStructures.EldersMeta memory item = EldersDataStructures.getElder(elder);
return
string(
abi.encodePacked(
getValueAttribute(0, uint(item.strength), 3),
",",
getValueAttribute(1, uint(item.agility), 3),
",",
getValueAttribute(2, uint(item.intellegence), 3),
",",
getValueAttribute(3, uint(item.attackPoints), 0),
",",
getValueAttribute(4, uint(item.healthPoints), 0),
",",
getValueAttribute(5, uint(item.mana), 0)
)
);
}
function getItem(uint256 itemId) external returns(EldersInventoryItem memory item) {
return EldersInventory[itemId];
}
function getLayerAttribute(uint256 layerId, uint256 code, uint256 itemId)
internal
view
returns (string memory)
{
uint256 identifier = code + itemId;
return
string(
abi.encodePacked(
'{"trait_type":"',
LAYERS[layerId],
'","value":"',
EldersInventory[identifier].name,
'"}'
)
);
}
function getValueAttribute(uint8 attributeId, uint value, uint8 displayType)
internal
view
returns (string memory)
{
return
string(
abi.encodePacked(
'{"trait_type":"',
ATTRIBUTES[attributeId],
'","value":"',
toString(value),
'", "display_type":"',
DISPLAYTYPES[displayType],
'"}'
)
);
}
/*
█▀▄▀█ █▀█ █▀▄ █ █▀▀ █ █▀▀ █▀█ █▀
█░▀░█ █▄█ █▄▀ █ █▀░ █ ██▄ █▀▄ ▄█
*/
function onlyOwner() internal view {
require(admin == msg.sender, "not admin");
}
/*
█░█ █▀▀ █░░ █▀█ █▀▀ █▀█ █▀
█▀█ ██▄ █▄▄ █▀▀ ██▄ █▀▄ ▄█
*/
function get(uint256 code, uint256 itemId) internal view returns (string memory data_)
{
uint256 identifier = code + itemId;
string memory folderName = EldersInventory[identifier].folder;
string memory fileName = string.concat(toString(identifier), ".png");
string memory ipfs = string.concat(ipfsBase,folderName,"/",fileName);
data_ = string(
abi.encodePacked(
'<image href="',
ipfs,
'"/>'
)
);
return data_;
}
function toString(uint256 value) internal pure returns (string memory) {
// Inspired by OraclizeAPI's implementation - MIT licence
// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
}
/// @title Base64
/// @author Brecht Devos - <brecht@loopring.org>
/// @notice Provides a function for encoding some bytes in base64
/// @notice NOT BUILT BY ETHERNAL ELVES TEAM.
library Base64 {
string internal constant TABLE =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
function encode(bytes memory data) internal pure returns (string memory) {
if (data.length == 0) return "";
// load the table into memory
string memory table = TABLE;
// multiply by 4/3 rounded up
uint256 encodedLen = 4 * ((data.length + 2) / 3);
// add some extra buffer at the end required for the writing
string memory result = new string(encodedLen + 32);
assembly {
// set the actual output length
mstore(result, encodedLen)
// prepare the lookup table
let tablePtr := add(table, 1)
// input ptr
let dataPtr := data
let endPtr := add(dataPtr, mload(data))
// result ptr, jump over length
let resultPtr := add(result, 32)
// run over the input, 3 bytes at a time
for {
} lt(dataPtr, endPtr) {
} {
dataPtr := add(dataPtr, 3)
// read 3 bytes
let input := mload(dataPtr)
// write 4 characters
mstore(
resultPtr,
shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F))))
)
resultPtr := add(resultPtr, 1)
mstore(
resultPtr,
shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F))))
)
resultPtr := add(resultPtr, 1)
mstore(
resultPtr,
shl(248, mload(add(tablePtr, and(shr(6, input), 0x3F))))
)
resultPtr := add(resultPtr, 1)
mstore(
resultPtr,
shl(248, mload(add(tablePtr, and(input, 0x3F))))
)
resultPtr := add(resultPtr, 1)
}
// padding with '='
switch mod(mload(data), 3)
case 1 {
mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
}
case 2 {
mstore(sub(resultPtr, 1), shl(248, 0x3d))
}
}
return result;
}
}// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.12;
library EldersDataStructures {
struct EldersMeta {
uint256 strength;
uint256 agility;
uint256 intellegence;
uint256 healthPoints;
uint256 attackPoints;
uint256 mana;
uint256 primaryWeapon;
uint256 secondaryWeapon;
uint256 armor;
uint256 level;
uint256 head;
uint256 body;
uint256 race;
uint256 elderClass;
}
function getElder(uint256 _elder) internal pure returns(EldersMeta memory elder) {
elder.strength = uint256(uint16(_elder));
elder.agility = uint256(uint16(_elder>>16));
elder.intellegence = uint256(uint16(_elder>>32));
elder.attackPoints = uint256(uint16(_elder>>48));
elder.healthPoints = uint256(uint16(_elder>>64));
elder.mana = uint256(uint16(_elder>>80));
elder.primaryWeapon = uint256(uint16(_elder>>96));
elder.secondaryWeapon = uint256(uint16(_elder>>112));
elder.armor = uint256(uint16(_elder>>128));
elder.level = uint256(uint16(_elder>>144));
elder.head = uint256(uint16(_elder>>160));
elder.body = uint256(uint16(_elder>>176));
elder.race = uint256(uint16(_elder>>192));
elder.elderClass = uint256(uint16(_elder>>208));
}
function setElder(
uint256 strength,
uint256 agility,
uint256 intellegence,
uint256 attackPoints,
uint256 healthPoints,
uint256 mana,
uint256 primaryWeapon,
uint256 secondaryWeapon,
uint256 armor,
uint256 level,
uint256 head,
uint256 body,
uint256 race,
uint256 elderClass )
internal pure returns (uint256 character) {
character = uint256(strength);
character |= agility<<16;
character |= intellegence<<32;
character |= attackPoints<<48;
character |= healthPoints<<64;
character |= mana<<80;
character |= primaryWeapon<<96;
character |= secondaryWeapon<<112;
character |= armor<<128;
character |= level<<144;
character |= head<<160;
character |= body<<176;
character |= race<<192;
character |= elderClass<<208;
return character;
}
}// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.12;
interface IERC20Lite {
function transfer(address to, uint256 value) external returns (bool);
function burn(address from, uint256 value) external;
function mint(address to, uint256 value) external;
function approve(address spender, uint256 value) external returns (bool);
function balanceOf(address account) external returns (uint256);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}
interface IElfMetaDataHandler {
function getTokenURI(uint16 id_, uint256 sentinel) external view returns (string memory);
}
interface IEldersMetaDataHandler {
function getTokenURI(uint16 id_, uint256 sentinel, bool isRevealed) external view returns (string memory);
}
interface ICampaigns {
function gameEngine(uint256 _campId, uint256 _sector, uint256 _level, uint256 _attackPoints, uint256 _healthPoints, uint256 _inventory, bool _useItem) external
returns(uint256 level, uint256 rewards, uint256 timestamp, uint256 inventory);
}
interface IElves {
function prismBridge(uint256[] calldata id, uint256[] calldata sentinel, address owner) external;
function exitElf(uint256[] calldata ids, address owner) external;
function setAccountBalance(address _owner, uint256 _amount, bool _subtract, uint256 _index) external;
}
interface IERC721Lite {
function transferFrom(address from, address to, uint256 id) external;
function transfer(address to, uint256 id) external;
function ownerOf(uint256 id) external returns (address owner);
function mint(address to, uint256 tokenid) external;
}
interface IERC1155Lite {
function burn(address from,uint256 id, uint256 value) external;
function balanceOf(address _owner, uint256 _id) external returns (uint256);
}
//1155
interface IERC165 {
function supportsInterface(bytes4 _interfaceId) external view returns (bool);
}
interface IERC1155 is IERC165 {
event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _amount);
event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _amounts);
event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data) external;
function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external;
function balanceOf(address _owner, uint256 _id) external view returns (uint256);
function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);
function setApprovalForAll(address _operator, bool _approved) external;
function isApprovedForAll(address _owner, address _operator) external view returns (bool isOperator);
}
interface IERC1155Metadata {
event URI(string _uri, uint256 indexed _id);
function uri(uint256 _id) external view returns (string memory);
}
interface IERC1155TokenReceiver {
function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4);
function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ARMOR_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ATTRIBUTES","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"BODY_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"CLASS","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"DISPLAYTYPES","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"EldersInventory","outputs":[{"internalType":"string","name":"folder","type":"string"},{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"HEAD_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"LAYERS","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"PRIMARY_WEAPON_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RACE_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"SECONDARY_WEAPON_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"itemId","type":"uint256[]"},{"internalType":"string[]","name":"name","type":"string[]"},{"internalType":"string","name":"folder","type":"string"}],"name":"addItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"footer","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"getItem","outputs":[{"components":[{"internalType":"string","name":"folder","type":"string"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct EldersInventoryManager.EldersInventoryItem","name":"item","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"elder","type":"uint256"}],"name":"getSVG","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"id_","type":"uint16"},{"internalType":"uint256","name":"elder","type":"uint256"},{"internalType":"bool","name":"isRevealed","type":"bool"}],"name":"getTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"header","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ipfsBase","type":"string"}],"name":"setIPFSBase","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50612982806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80634830f3e7116100ad578063b4d1fe9c11610071578063b4d1fe9c14610250578063b9ee5a4814610263578063be985ac914610276578063f586bb1414610289578063f8c9b6201461029c57600080fd5b80634830f3e7146101ee5780636cc18e22146102015780637621c4c8146102145780638129fc1c1461022757806389c3e0421461022f57600080fd5b806313fc9ad2116100f457806313fc9ad21461018d5780631ea9dae8146101a05780632e0d7133146101b35780633129e773146101c65780633ce30185146101e657600080fd5b80630a924848146101265780630c9030a01461013b5780630d7163c61461016457806313b4ec7e1461016c575b600080fd5b610139610134366004611cff565b6102af565b005b61014e610149366004611dc2565b610376565b60405161015b9190611e37565b60405180910390f35b61014e610416565b61017f61017a366004611dc2565b610432565b60405190815260200161015b565b61014e61019b366004611e51565b610449565b61017f6101ae366004611dc2565b610729565b61017f6101c1366004611dc2565b610739565b6101d96101d4366004611dc2565b610749565b60405161015b9190611e9f565b61014e61089f565b61014e6101fc366004611dc2565b6108bc565b61017f61020f366004611dc2565b6108cc565b61014e610222366004611dc2565b6108dc565b6101396108ec565b61024261023d366004611dc2565b610e6c565b60405161015b929190611ee1565b61014e61025e366004611dc2565b610f98565b61017f610271366004611dc2565b610fa8565b61014e610284366004611dc2565b610fb8565b610139610297366004611f06565b611106565b61017f6102aa366004611dc2565b61111f565b6102b761112f565b60005b8481101561036e578282603d60008989868181106102da576102da611f48565b90506020020135815260200190815260200160002060000191906102ff929190611916565b5083818151811061031257610312611f48565b6020026020010151603d600088888581811061033057610330611f48565b905060200201358152602001908152602001600020600101908051906020019061035b92919061199a565b508061036681611f74565b9150506102ba565b505050505050565b600c816008811061038657600080fd5b01805490915061039590611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190611f8f565b801561040e5780601f106103e35761010080835404028352916020019161040e565b820191906000526020600020905b8154815290600101906020018083116103f157829003601f168201915b505050505081565b6040518060a00160405280606b81526020016128e2606b913981565b6031816006811061044257600080fd5b0154905081565b6060600061045e61045985610fb8565b611180565b60405160200161046e9190611fca565b6040516020818303038152906040529050600061048a82611180565b60405160200161049a91906120f4565b6040516020818303038152906040529050600060405160200161053d907f22696d616765223a202268747470733a2f2f696d61676564656c69766572792e81527f6e65742f557345754f655a7a3765557a56314531786c4a3068772f643334623460208201527f3561382d666531662d343838642d653064362d3363623639343161303630302f6040820152671c1d589b1a58c88b60c21b606082015260680190565b6040516020818303038152906040529050600061055d8861ffff166112e8565b60405160200161056d9190612156565b60405160208183030381529060405290506000604051602001610671907f226465736372697074696f6e223a2245746865726e6120456c76657320456c6481527f657273206973206120636f6c6c656374696f6e206f662032323232204865726f60208201527f657320726f616d696e672074686520456c76656e766572736520696e2073656160408201527f726368206f6620746865204d697265732e20506c61792045746865726e616c2060608201527f456c76657320746f207570677261646520796f7572206162696c69746965732060808201527f616e642067726f7720796f75722061726d792e20216f6e77617264222c00000060a082015260bd0190565b6040516020818303038152906040529050600061068d896112e8565b60405160200161069d919061219a565b60405160208183030381529060405290506106fb83838a6106be57866106c0565b875b8b6106cb57846106d4565b6106d48d6113ee565b6040516020016106e79493929190612201565b604051602081830303815290604052611180565b60405160200161070b919061227c565b60405160208183030381529060405296505050505050509392505050565b602b816006811061044257600080fd5b6037816006811061044257600080fd5b60408051808201909152606080825260208201526000828152603d602052604090819020815180830190925280548290829061078490611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090611f8f565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050815260200160018201805461081690611f8f565b80601f016020809104026020016040519081016040528092919081815260200182805461084290611f8f565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050815250509050919050565b60405180610120016040528060e481526020016127be60e4913981565b6006816006811061038657600080fd5b6025816006811061044257600080fd5b6014816005811061038657600080fd5b603e805460ff19610100338102919091166001600160a81b031990921691909117600117909155604080519182018152600560c0830190815264111c9d5a5960da1b60e0840152825280518082018252600980825268536f7263657265737360b81b60208381019190915280850192909252825180840184526006808252652930b733b2b960d11b828501528585019190915283518085018552600881526720b9b9b0b9b9b4b760c11b81850152606086015283518085018552918252682132b939b2b935b2b960b91b82840152608085019190915282518084019093528083526526b0bab632b960d11b9183019190915260a08301919091526109f291600091611a0e565b506040805161010081018252600e60c082019081526d283934b6b0b93c902bb2b0b837b760911b60e08301528152815180830183526004808252635261636560e01b602083810191909152808401929092528351808501855281815263426f647960e01b818401528385015283518085018552908152631219585960e21b81830152606083015282518084018452600581526420b936b7b960d91b8183015260808301528251808401909352601083526f29b2b1b7b73230b93c902bb2b0b837b760811b9083015260a0810191909152610acf9060069081611a0e565b506040518060c00160405280604051806040016040528060088152602001670a6e8e4cadccee8d60c31b8152508152602001604051806040016040528060078152602001664167696c69747960c81b81525081526020016040518060400160405280600c81526020016b496e74656c6c6567656e636560a01b81525081526020016040518060400160405280600d81526020016c41747461636b20506f696e747360981b81525081526020016040518060400160405280600d81526020016c4865616c746820506f696e747360981b8152508152602001604051806040016040528060048152602001634d616e6160e01b815250815250600c906006610bd6929190611a5a565b506040805160e081018252600c60a082019081526b3137b7b9ba2fb73ab6b132b960a11b60c0830152815281518083018352601081526f626f6f73745f70657263656e7461676560801b602082810191909152808301919091528251808401845260048152636461746560e01b8183015282840152825180840184526006815265373ab6b132b960d11b8183015260608301528251908101909252600082526080810191909152610c8b906014906005611a9a565b506040805160c0810182526102bc81526103206020820152610384918101919091526103e8606082015261044c60808201526104b060a0820152610cd3906019906006611ada565b506040805160c081018252610514815261057860208201526105dc9181019190915261064060608201526106a4608082015261070860a0820152610d1b90601f906006611ada565b506040805160c08101825261076c81526107d060208201526108349181019190915261089860608201526108fc608082015261096060a0820152610d63906025906006611ada565b506040805160c0810182526109c48152610a286020820152610a8c91810191909152610af06060820152610b546080820152610bb860a0820152610dab90602b906006611ada565b506040805160c081018252610c1c8152610c806020820152610ce491810191909152610d486060820152610dac6080820152610e1060a0820152610df3906031906006611ada565b506040805160c081018252610e748152610ed86020820152610f3c91810191909152610fa06060820152611004608082015261106860a0820152610e3b906037906006611ada565b5060405180606001604052806024815260200161279a602491398051610e6991603f9160209091019061199a565b50565b603d60205260009081526040902080548190610e8790611f8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390611f8f565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090806001018054610f1590611f8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4190611f8f565b8015610f8e5780601f10610f6357610100808354040283529160200191610f8e565b820191906000526020600020905b815481529060010190602001808311610f7157829003601f168201915b5050505050905082565b6000816006811061038657600080fd5b6019816006811061044257600080fd5b60606000610fc583611470565b90506000816101a00151905060006040518060a00160405280606b81526020016128e2606b913961100e602b846006811061100257611002611f48565b01548560c001516115a0565b6110316019856006811061102457611024611f48565b01548661018001516115a0565b611054601f866006811061104757611047611f48565b01548761016001516115a0565b6110776025876006811061106a5761106a611f48565b01548861014001516115a0565b61109a6037886006811061108d5761108d611f48565b01548961010001516115a0565b6110bc603189600681106110b0576110b0611f48565b01548a60e001516115a0565b60405180610120016040528060e481526020016127be60e491396040516020016110ed9897969594939291906122c1565b60408051601f1981840301815291905295945050505050565b61110e61112f565b61111a603f8383611916565b505050565b601f816006811061044257600080fd5b603e5461010090046001600160a01b0316331461117e5760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015260640160405180910390fd5b565b60608151600014156111a057505060408051602081019091526000815290565b60006040518060600160405280604081526020016128a260409139905060006003845160026111cf9190612366565b6111d99190612394565b6111e49060046123a8565b905060006111f3826020612366565b67ffffffffffffffff81111561120b5761120b611b7a565b6040519080825280601f01601f191660200182016040528015611235576020820181803683370190505b509050818152600183018586518101602084015b818310156112a35760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401611249565b6003895106600181146112bd57600281146112ce576112da565b613d3d60f01b6001198301526112da565b603d60f81b6000198301525b509398975050505050505050565b60608161130c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611336578061132081611f74565b915061132f9050600a83612394565b9150611310565b60008167ffffffffffffffff81111561135157611351611b7a565b6040519080825280601f01601f19166020018201604052801561137b576020820181803683370190505b5090505b84156113e6576113906001836123c7565b915061139d600a866123de565b6113a8906030612366565b60f81b8183815181106113bd576113bd611f48565b60200101906001600160f81b031916908160001a9053506113df600a86612394565b945061137f565b949350505050565b606060006113fb83611470565b90506000816101a001516006811061141557611415611f48565b01604051602001611426919061248c565b60405160208183030381529060405261143e846116cd565b611447856117da565b604051602001611459939291906124d0565b604051602081830303815290604052915050919050565b6114e2604051806101c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61ffff8083168252601083901c811660208084019190915283901c8116604080840191909152603084901c82166080808501919091529084901c8216606080850191909152605085901c831660a0808601919091529085901c831660c080860191909152607086901c841660e08601529185901c8316610100850152609085901c831661012085015284901c821661014084015260b084901c821661016084015283901c811661018083015260d09290921c9091166101a082015290565b606060006115ae8385612366565b6000818152603d60205260408120805492935090916115cc90611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546115f890611f8f565b80156116455780601f1061161a57610100808354040283529160200191611645565b820191906000526020600020905b81548152906001019060200180831161162857829003601f168201915b505050505090506000611657836112e8565b6040516020016116679190612554565b60405160208183030381529060405290506000603f83836040516020016116909392919061257c565b6040516020818303038152906040529050806040516020016116b291906125c2565b60405160208183030381529060405294505050505092915050565b606060006116da83611470565b905061170860008260c0015160ff16602b846101a001516006811061170157611701611f48565b015461184f565b61172e600183610180015160ff166019856101a001516006811061170157611701611f48565b611754600284610160015160ff16601f866101a001516006811061170157611701611f48565b61177a600385610140015160ff166025876101a001516006811061170157611701611f48565b6117a0600486610100015160ff166037886101a001516006811061170157611701611f48565b6117c560058760e0015160ff166031896101a001516006811061170157611701611f48565b60405160200161145996959493929190612605565b606060006117e783611470565b90506117fa6000826000015160036118b3565b61180b6001836020015160036118b3565b61181c6002846040015160036118b3565b61182d6003856080015160006118b3565b61183e6004866060015160006118b3565b6117c560058760a0015160006118b3565b6060600061185d8385612366565b90506006856006811061187257611872611f48565b01603d600083815260200190815260200160002060010160405160200161189a9291906126b8565b6040516020818303038152906040529150509392505050565b6060600c8460ff16600881106118cb576118cb611f48565b016118d5846112e8565b60148460ff16600581106118eb576118eb611f48565b016040516020016118fe9392919061270e565b60405160208183030381529060405290509392505050565b82805461192290611f8f565b90600052602060002090601f016020900481019282611944576000855561198a565b82601f1061195d5782800160ff1982351617855561198a565b8280016001018555821561198a579182015b8281111561198a57823582559160200191906001019061196f565b50611996929150611b0e565b5090565b8280546119a690611f8f565b90600052602060002090601f0160209004810192826119c8576000855561198a565b82601f106119e157805160ff191683800117855561198a565b8280016001018555821561198a579182015b8281111561198a5782518255916020019190600101906119f3565b8260068101928215611a4e579160200282015b82811115611a4e5782518051611a3e91849160209091019061199a565b5091602001919060010190611a21565b50611996929150611b23565b8260088101928215611a4e579160200282015b82811115611a4e5782518051611a8a91849160209091019061199a565b5091602001919060010190611a6d565b8260058101928215611a4e579160200282015b82811115611a4e5782518051611aca91849160209091019061199a565b5091602001919060010190611aad565b826006810192821561198a579160200282015b8281111561198a578251829061ffff16905591602001919060010190611aed565b5b808211156119965760008155600101611b0f565b80821115611996576000611b378282611b40565b50600101611b23565b508054611b4c90611f8f565b6000825580601f10611b5c575050565b601f016020900490600052602060002090810190610e699190611b0e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611bb957611bb9611b7a565b604052919050565b6000601f8381840112611bd357600080fd5b8235602067ffffffffffffffff80831115611bf057611bf0611b7a565b8260051b611bff838201611b90565b9384528681018301938381019089861115611c1957600080fd5b84890192505b85831015611ca957823584811115611c375760008081fd5b8901603f81018b13611c495760008081fd5b85810135604086821115611c5f57611c5f611b7a565b611c70828b01601f19168901611b90565b8281528d82848601011115611c855760008081fd5b828285018a8301376000928101890192909252508352509184019190840190611c1f565b9998505050505050505050565b60008083601f840112611cc857600080fd5b50813567ffffffffffffffff811115611ce057600080fd5b602083019150836020828501011115611cf857600080fd5b9250929050565b600080600080600060608688031215611d1757600080fd5b853567ffffffffffffffff80821115611d2f57600080fd5b818801915088601f830112611d4357600080fd5b813581811115611d5257600080fd5b8960208260051b8501011115611d6757600080fd5b602092830197509550908701359080821115611d8257600080fd5b611d8e89838a01611bc1565b94506040880135915080821115611da457600080fd5b50611db188828901611cb6565b969995985093965092949392505050565b600060208284031215611dd457600080fd5b5035919050565b60005b83811015611df6578181015183820152602001611dde565b83811115611e05576000848401525b50505050565b60008151808452611e23816020860160208601611ddb565b601f01601f19169290920160200192915050565b602081526000611e4a6020830184611e0b565b9392505050565b600080600060608486031215611e6657600080fd5b833561ffff81168114611e7857600080fd5b92506020840135915060408401358015158114611e9457600080fd5b809150509250925092565b602081526000825160406020840152611ebb6060840182611e0b565b90506020840151601f19848303016040850152611ed88282611e0b565b95945050505050565b604081526000611ef46040830185611e0b565b8281036020840152611ed88185611e0b565b60008060208385031215611f1957600080fd5b823567ffffffffffffffff811115611f3057600080fd5b611f3c85828601611cb6565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f8857611f88611f5e565b5060010190565b600181811c90821680611fa357607f821691505b60208210811415611fc457634e487b7160e01b600052602260045260246000fd5b50919050565b7f3c68746d6c3e3c626f64793e3c696672616d6520616c6c6f773d22616363656c81527f65726f6d657465723b206175746f706c61793b20656e637279707465642d6d6560208201527f6469613b206779726f73636f70653b20706963747572652d696e2d706963747560408201527f726522206672616d65626f726465723d223022206865696768743d223130302560608201527f222073616e64626f783d22616c6c6f772d7363726970747322207372633d220060808201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000609f820152600082516120c08160b9850160208701611ddb565b7f222077696474683d2231303025222f3e3c2f626f64793e3c2f68746d6c3e000060b993909101928301525060d701919050565b7f22616e696d6174696f6e5f75726c223a2022646174613a746578742f68746d6c8152670ed8985cd94d8d0b60c21b60208201526000825161213d816028850160208701611ddb565b61088b60f21b6028939091019283015250602a01919050565b6e226e616d65223a22456c646572202360881b8152815160009061218181600f850160208701611ddb565b61088b60f21b600f939091019283015250601101919050565b7f2261747472696275746573223a205b7b2274726169745f74797065223a22444e81526b209116113b30b63ab2911d1160a11b6020820152600082516121e781602c850160208701611ddb565b62227d5d60e81b602c939091019283015250602f01919050565b607b60f81b81526000855161221d816001850160208a01611ddb565b855190830190612234816001840160208a01611ddb565b855191019061224a816001840160208901611ddb565b8451910190612260816001840160208801611ddb565b607d60f81b600192909101918201526002019695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516122b481601d850160208701611ddb565b91909101601d0192915050565b6000895160206122d48285838f01611ddb565b8a51918401916122e78184848f01611ddb565b8a519201916122f98184848e01611ddb565b895192019161230b8184848d01611ddb565b885192019161231d8184848c01611ddb565b875192019161232f8184848b01611ddb565b86519201916123418184848a01611ddb565b85519201916123538184848901611ddb565b919091019b9a5050505050505050505050565b6000821982111561237957612379611f5e565b500190565b634e487b7160e01b600052601260045260246000fd5b6000826123a3576123a361237e565b500490565b60008160001904831182151516156123c2576123c2611f5e565b500290565b6000828210156123d9576123d9611f5e565b500390565b6000826123ed576123ed61237e565b500690565b8054600090600181811c908083168061240c57607f831692505b602080841082141561242e57634e487b7160e01b600052602260045260246000fd5b818015612442576001811461245357612480565b60ff19861689528489019650612480565b60008881526020902060005b868110156124785781548b82015290850190830161245f565b505084890196505b50505050505092915050565b7f7b2274726169745f74797065223a22436c617373222c2276616c7565223a2200815260006124be601f8301846123f2565b61227d60f01b81526002019392505050565b6e2261747472696275746573223a205b60881b815283516000906124fb81600f850160208901611ddb565b8083019050600b60fa1b80600f830152855161251e816010850160208a01611ddb565b60109201918201528351612539816011840160208801611ddb565b605d60f81b6011929091019182015260120195945050505050565b60008251612566818460208701611ddb565b632e706e6760e01b920191825250600401919050565b600061258882866123f2565b8451612598818360208901611ddb565b602f60f81b910190815283516125b5816001840160208801611ddb565b0160010195945050505050565b6c1e34b6b0b3b290343932b31e9160991b815281516000906125eb81600d850160208701611ddb565b6211179f60e91b600d939091019283015250601001919050565b6000875160206126188285838d01611ddb565b8184019150600b60fa1b80835289516126378160018601858e01611ddb565b6001930192830181905288516126538160028601858d01611ddb565b60029301928301819052875161266f8160038601858c01611ddb565b60039301928301819052865161268b8160048601858b01611ddb565b600493019283015284516126a58160058501848901611ddb565b9091016005019998505050505050505050565b6e3d913a3930b4ba2fba3cb832911d1160891b815260006126dc600f8301856123f2565b6a1116113b30b63ab2911d1160a91b81526126fa600b8201856123f2565b61227d60f01b815260020195945050505050565b6e3d913a3930b4ba2fba3cb832911d1160891b81526000612732600f8301866123f2565b6a1116113b30b63ab2911d1160a91b8152845161275681600b840160208901611ddb565b72111610113234b9b83630bcafba3cb832911d1160691b600b9290910191820152612784601e8201856123f2565b61227d60f01b8152600201969550505050505056fe68747470733a2f2f6875736b6965732e6d7970696e6174612e636c6f75642f697066732f3c7374796c653e23656c667b73686170652d72656e646572696e673a20637269737065646765733b20696d6167652d72656e646572696e673a202d7765626b69742d63726973702d65646765733b20696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b20696d6167652d72656e646572696e673a2063726973702d65646765733b20696d6167652d72656e646572696e673a20706978656c617465643b202d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b7d3c2f7374796c653e3c2f7376673e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c7376672069643d22656c66222076696577426f783d2230203020313630203136302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574223ea264697066735822122001b1994cff7da15892c517e51ac8d57987be60db68ec28ccb9ca0d02ce0f04a564736f6c634300080c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c80634830f3e7116100ad578063b4d1fe9c11610071578063b4d1fe9c14610250578063b9ee5a4814610263578063be985ac914610276578063f586bb1414610289578063f8c9b6201461029c57600080fd5b80634830f3e7146101ee5780636cc18e22146102015780637621c4c8146102145780638129fc1c1461022757806389c3e0421461022f57600080fd5b806313fc9ad2116100f457806313fc9ad21461018d5780631ea9dae8146101a05780632e0d7133146101b35780633129e773146101c65780633ce30185146101e657600080fd5b80630a924848146101265780630c9030a01461013b5780630d7163c61461016457806313b4ec7e1461016c575b600080fd5b610139610134366004611cff565b6102af565b005b61014e610149366004611dc2565b610376565b60405161015b9190611e37565b60405180910390f35b61014e610416565b61017f61017a366004611dc2565b610432565b60405190815260200161015b565b61014e61019b366004611e51565b610449565b61017f6101ae366004611dc2565b610729565b61017f6101c1366004611dc2565b610739565b6101d96101d4366004611dc2565b610749565b60405161015b9190611e9f565b61014e61089f565b61014e6101fc366004611dc2565b6108bc565b61017f61020f366004611dc2565b6108cc565b61014e610222366004611dc2565b6108dc565b6101396108ec565b61024261023d366004611dc2565b610e6c565b60405161015b929190611ee1565b61014e61025e366004611dc2565b610f98565b61017f610271366004611dc2565b610fa8565b61014e610284366004611dc2565b610fb8565b610139610297366004611f06565b611106565b61017f6102aa366004611dc2565b61111f565b6102b761112f565b60005b8481101561036e578282603d60008989868181106102da576102da611f48565b90506020020135815260200190815260200160002060000191906102ff929190611916565b5083818151811061031257610312611f48565b6020026020010151603d600088888581811061033057610330611f48565b905060200201358152602001908152602001600020600101908051906020019061035b92919061199a565b508061036681611f74565b9150506102ba565b505050505050565b600c816008811061038657600080fd5b01805490915061039590611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546103c190611f8f565b801561040e5780601f106103e35761010080835404028352916020019161040e565b820191906000526020600020905b8154815290600101906020018083116103f157829003601f168201915b505050505081565b6040518060a00160405280606b81526020016128e2606b913981565b6031816006811061044257600080fd5b0154905081565b6060600061045e61045985610fb8565b611180565b60405160200161046e9190611fca565b6040516020818303038152906040529050600061048a82611180565b60405160200161049a91906120f4565b6040516020818303038152906040529050600060405160200161053d907f22696d616765223a202268747470733a2f2f696d61676564656c69766572792e81527f6e65742f557345754f655a7a3765557a56314531786c4a3068772f643334623460208201527f3561382d666531662d343838642d653064362d3363623639343161303630302f6040820152671c1d589b1a58c88b60c21b606082015260680190565b6040516020818303038152906040529050600061055d8861ffff166112e8565b60405160200161056d9190612156565b60405160208183030381529060405290506000604051602001610671907f226465736372697074696f6e223a2245746865726e6120456c76657320456c6481527f657273206973206120636f6c6c656374696f6e206f662032323232204865726f60208201527f657320726f616d696e672074686520456c76656e766572736520696e2073656160408201527f726368206f6620746865204d697265732e20506c61792045746865726e616c2060608201527f456c76657320746f207570677261646520796f7572206162696c69746965732060808201527f616e642067726f7720796f75722061726d792e20216f6e77617264222c00000060a082015260bd0190565b6040516020818303038152906040529050600061068d896112e8565b60405160200161069d919061219a565b60405160208183030381529060405290506106fb83838a6106be57866106c0565b875b8b6106cb57846106d4565b6106d48d6113ee565b6040516020016106e79493929190612201565b604051602081830303815290604052611180565b60405160200161070b919061227c565b60405160208183030381529060405296505050505050509392505050565b602b816006811061044257600080fd5b6037816006811061044257600080fd5b60408051808201909152606080825260208201526000828152603d602052604090819020815180830190925280548290829061078490611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090611f8f565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050815260200160018201805461081690611f8f565b80601f016020809104026020016040519081016040528092919081815260200182805461084290611f8f565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050815250509050919050565b60405180610120016040528060e481526020016127be60e4913981565b6006816006811061038657600080fd5b6025816006811061044257600080fd5b6014816005811061038657600080fd5b603e805460ff19610100338102919091166001600160a81b031990921691909117600117909155604080519182018152600560c0830190815264111c9d5a5960da1b60e0840152825280518082018252600980825268536f7263657265737360b81b60208381019190915280850192909252825180840184526006808252652930b733b2b960d11b828501528585019190915283518085018552600881526720b9b9b0b9b9b4b760c11b81850152606086015283518085018552918252682132b939b2b935b2b960b91b82840152608085019190915282518084019093528083526526b0bab632b960d11b9183019190915260a08301919091526109f291600091611a0e565b506040805161010081018252600e60c082019081526d283934b6b0b93c902bb2b0b837b760911b60e08301528152815180830183526004808252635261636560e01b602083810191909152808401929092528351808501855281815263426f647960e01b818401528385015283518085018552908152631219585960e21b81830152606083015282518084018452600581526420b936b7b960d91b8183015260808301528251808401909352601083526f29b2b1b7b73230b93c902bb2b0b837b760811b9083015260a0810191909152610acf9060069081611a0e565b506040518060c00160405280604051806040016040528060088152602001670a6e8e4cadccee8d60c31b8152508152602001604051806040016040528060078152602001664167696c69747960c81b81525081526020016040518060400160405280600c81526020016b496e74656c6c6567656e636560a01b81525081526020016040518060400160405280600d81526020016c41747461636b20506f696e747360981b81525081526020016040518060400160405280600d81526020016c4865616c746820506f696e747360981b8152508152602001604051806040016040528060048152602001634d616e6160e01b815250815250600c906006610bd6929190611a5a565b506040805160e081018252600c60a082019081526b3137b7b9ba2fb73ab6b132b960a11b60c0830152815281518083018352601081526f626f6f73745f70657263656e7461676560801b602082810191909152808301919091528251808401845260048152636461746560e01b8183015282840152825180840184526006815265373ab6b132b960d11b8183015260608301528251908101909252600082526080810191909152610c8b906014906005611a9a565b506040805160c0810182526102bc81526103206020820152610384918101919091526103e8606082015261044c60808201526104b060a0820152610cd3906019906006611ada565b506040805160c081018252610514815261057860208201526105dc9181019190915261064060608201526106a4608082015261070860a0820152610d1b90601f906006611ada565b506040805160c08101825261076c81526107d060208201526108349181019190915261089860608201526108fc608082015261096060a0820152610d63906025906006611ada565b506040805160c0810182526109c48152610a286020820152610a8c91810191909152610af06060820152610b546080820152610bb860a0820152610dab90602b906006611ada565b506040805160c081018252610c1c8152610c806020820152610ce491810191909152610d486060820152610dac6080820152610e1060a0820152610df3906031906006611ada565b506040805160c081018252610e748152610ed86020820152610f3c91810191909152610fa06060820152611004608082015261106860a0820152610e3b906037906006611ada565b5060405180606001604052806024815260200161279a602491398051610e6991603f9160209091019061199a565b50565b603d60205260009081526040902080548190610e8790611f8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb390611f8f565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b505050505090806001018054610f1590611f8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4190611f8f565b8015610f8e5780601f10610f6357610100808354040283529160200191610f8e565b820191906000526020600020905b815481529060010190602001808311610f7157829003601f168201915b5050505050905082565b6000816006811061038657600080fd5b6019816006811061044257600080fd5b60606000610fc583611470565b90506000816101a00151905060006040518060a00160405280606b81526020016128e2606b913961100e602b846006811061100257611002611f48565b01548560c001516115a0565b6110316019856006811061102457611024611f48565b01548661018001516115a0565b611054601f866006811061104757611047611f48565b01548761016001516115a0565b6110776025876006811061106a5761106a611f48565b01548861014001516115a0565b61109a6037886006811061108d5761108d611f48565b01548961010001516115a0565b6110bc603189600681106110b0576110b0611f48565b01548a60e001516115a0565b60405180610120016040528060e481526020016127be60e491396040516020016110ed9897969594939291906122c1565b60408051601f1981840301815291905295945050505050565b61110e61112f565b61111a603f8383611916565b505050565b601f816006811061044257600080fd5b603e5461010090046001600160a01b0316331461117e5760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015260640160405180910390fd5b565b60608151600014156111a057505060408051602081019091526000815290565b60006040518060600160405280604081526020016128a260409139905060006003845160026111cf9190612366565b6111d99190612394565b6111e49060046123a8565b905060006111f3826020612366565b67ffffffffffffffff81111561120b5761120b611b7a565b6040519080825280601f01601f191660200182016040528015611235576020820181803683370190505b509050818152600183018586518101602084015b818310156112a35760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401611249565b6003895106600181146112bd57600281146112ce576112da565b613d3d60f01b6001198301526112da565b603d60f81b6000198301525b509398975050505050505050565b60608161130c5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611336578061132081611f74565b915061132f9050600a83612394565b9150611310565b60008167ffffffffffffffff81111561135157611351611b7a565b6040519080825280601f01601f19166020018201604052801561137b576020820181803683370190505b5090505b84156113e6576113906001836123c7565b915061139d600a866123de565b6113a8906030612366565b60f81b8183815181106113bd576113bd611f48565b60200101906001600160f81b031916908160001a9053506113df600a86612394565b945061137f565b949350505050565b606060006113fb83611470565b90506000816101a001516006811061141557611415611f48565b01604051602001611426919061248c565b60405160208183030381529060405261143e846116cd565b611447856117da565b604051602001611459939291906124d0565b604051602081830303815290604052915050919050565b6114e2604051806101c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61ffff8083168252601083901c811660208084019190915283901c8116604080840191909152603084901c82166080808501919091529084901c8216606080850191909152605085901c831660a0808601919091529085901c831660c080860191909152607086901c841660e08601529185901c8316610100850152609085901c831661012085015284901c821661014084015260b084901c821661016084015283901c811661018083015260d09290921c9091166101a082015290565b606060006115ae8385612366565b6000818152603d60205260408120805492935090916115cc90611f8f565b80601f01602080910402602001604051908101604052809291908181526020018280546115f890611f8f565b80156116455780601f1061161a57610100808354040283529160200191611645565b820191906000526020600020905b81548152906001019060200180831161162857829003601f168201915b505050505090506000611657836112e8565b6040516020016116679190612554565b60405160208183030381529060405290506000603f83836040516020016116909392919061257c565b6040516020818303038152906040529050806040516020016116b291906125c2565b60405160208183030381529060405294505050505092915050565b606060006116da83611470565b905061170860008260c0015160ff16602b846101a001516006811061170157611701611f48565b015461184f565b61172e600183610180015160ff166019856101a001516006811061170157611701611f48565b611754600284610160015160ff16601f866101a001516006811061170157611701611f48565b61177a600385610140015160ff166025876101a001516006811061170157611701611f48565b6117a0600486610100015160ff166037886101a001516006811061170157611701611f48565b6117c560058760e0015160ff166031896101a001516006811061170157611701611f48565b60405160200161145996959493929190612605565b606060006117e783611470565b90506117fa6000826000015160036118b3565b61180b6001836020015160036118b3565b61181c6002846040015160036118b3565b61182d6003856080015160006118b3565b61183e6004866060015160006118b3565b6117c560058760a0015160006118b3565b6060600061185d8385612366565b90506006856006811061187257611872611f48565b01603d600083815260200190815260200160002060010160405160200161189a9291906126b8565b6040516020818303038152906040529150509392505050565b6060600c8460ff16600881106118cb576118cb611f48565b016118d5846112e8565b60148460ff16600581106118eb576118eb611f48565b016040516020016118fe9392919061270e565b60405160208183030381529060405290509392505050565b82805461192290611f8f565b90600052602060002090601f016020900481019282611944576000855561198a565b82601f1061195d5782800160ff1982351617855561198a565b8280016001018555821561198a579182015b8281111561198a57823582559160200191906001019061196f565b50611996929150611b0e565b5090565b8280546119a690611f8f565b90600052602060002090601f0160209004810192826119c8576000855561198a565b82601f106119e157805160ff191683800117855561198a565b8280016001018555821561198a579182015b8281111561198a5782518255916020019190600101906119f3565b8260068101928215611a4e579160200282015b82811115611a4e5782518051611a3e91849160209091019061199a565b5091602001919060010190611a21565b50611996929150611b23565b8260088101928215611a4e579160200282015b82811115611a4e5782518051611a8a91849160209091019061199a565b5091602001919060010190611a6d565b8260058101928215611a4e579160200282015b82811115611a4e5782518051611aca91849160209091019061199a565b5091602001919060010190611aad565b826006810192821561198a579160200282015b8281111561198a578251829061ffff16905591602001919060010190611aed565b5b808211156119965760008155600101611b0f565b80821115611996576000611b378282611b40565b50600101611b23565b508054611b4c90611f8f565b6000825580601f10611b5c575050565b601f016020900490600052602060002090810190610e699190611b0e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611bb957611bb9611b7a565b604052919050565b6000601f8381840112611bd357600080fd5b8235602067ffffffffffffffff80831115611bf057611bf0611b7a565b8260051b611bff838201611b90565b9384528681018301938381019089861115611c1957600080fd5b84890192505b85831015611ca957823584811115611c375760008081fd5b8901603f81018b13611c495760008081fd5b85810135604086821115611c5f57611c5f611b7a565b611c70828b01601f19168901611b90565b8281528d82848601011115611c855760008081fd5b828285018a8301376000928101890192909252508352509184019190840190611c1f565b9998505050505050505050565b60008083601f840112611cc857600080fd5b50813567ffffffffffffffff811115611ce057600080fd5b602083019150836020828501011115611cf857600080fd5b9250929050565b600080600080600060608688031215611d1757600080fd5b853567ffffffffffffffff80821115611d2f57600080fd5b818801915088601f830112611d4357600080fd5b813581811115611d5257600080fd5b8960208260051b8501011115611d6757600080fd5b602092830197509550908701359080821115611d8257600080fd5b611d8e89838a01611bc1565b94506040880135915080821115611da457600080fd5b50611db188828901611cb6565b969995985093965092949392505050565b600060208284031215611dd457600080fd5b5035919050565b60005b83811015611df6578181015183820152602001611dde565b83811115611e05576000848401525b50505050565b60008151808452611e23816020860160208601611ddb565b601f01601f19169290920160200192915050565b602081526000611e4a6020830184611e0b565b9392505050565b600080600060608486031215611e6657600080fd5b833561ffff81168114611e7857600080fd5b92506020840135915060408401358015158114611e9457600080fd5b809150509250925092565b602081526000825160406020840152611ebb6060840182611e0b565b90506020840151601f19848303016040850152611ed88282611e0b565b95945050505050565b604081526000611ef46040830185611e0b565b8281036020840152611ed88185611e0b565b60008060208385031215611f1957600080fd5b823567ffffffffffffffff811115611f3057600080fd5b611f3c85828601611cb6565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611f8857611f88611f5e565b5060010190565b600181811c90821680611fa357607f821691505b60208210811415611fc457634e487b7160e01b600052602260045260246000fd5b50919050565b7f3c68746d6c3e3c626f64793e3c696672616d6520616c6c6f773d22616363656c81527f65726f6d657465723b206175746f706c61793b20656e637279707465642d6d6560208201527f6469613b206779726f73636f70653b20706963747572652d696e2d706963747560408201527f726522206672616d65626f726465723d223022206865696768743d223130302560608201527f222073616e64626f783d22616c6c6f772d7363726970747322207372633d220060808201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000609f820152600082516120c08160b9850160208701611ddb565b7f222077696474683d2231303025222f3e3c2f626f64793e3c2f68746d6c3e000060b993909101928301525060d701919050565b7f22616e696d6174696f6e5f75726c223a2022646174613a746578742f68746d6c8152670ed8985cd94d8d0b60c21b60208201526000825161213d816028850160208701611ddb565b61088b60f21b6028939091019283015250602a01919050565b6e226e616d65223a22456c646572202360881b8152815160009061218181600f850160208701611ddb565b61088b60f21b600f939091019283015250601101919050565b7f2261747472696275746573223a205b7b2274726169745f74797065223a22444e81526b209116113b30b63ab2911d1160a11b6020820152600082516121e781602c850160208701611ddb565b62227d5d60e81b602c939091019283015250602f01919050565b607b60f81b81526000855161221d816001850160208a01611ddb565b855190830190612234816001840160208a01611ddb565b855191019061224a816001840160208901611ddb565b8451910190612260816001840160208801611ddb565b607d60f81b600192909101918201526002019695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516122b481601d850160208701611ddb565b91909101601d0192915050565b6000895160206122d48285838f01611ddb565b8a51918401916122e78184848f01611ddb565b8a519201916122f98184848e01611ddb565b895192019161230b8184848d01611ddb565b885192019161231d8184848c01611ddb565b875192019161232f8184848b01611ddb565b86519201916123418184848a01611ddb565b85519201916123538184848901611ddb565b919091019b9a5050505050505050505050565b6000821982111561237957612379611f5e565b500190565b634e487b7160e01b600052601260045260246000fd5b6000826123a3576123a361237e565b500490565b60008160001904831182151516156123c2576123c2611f5e565b500290565b6000828210156123d9576123d9611f5e565b500390565b6000826123ed576123ed61237e565b500690565b8054600090600181811c908083168061240c57607f831692505b602080841082141561242e57634e487b7160e01b600052602260045260246000fd5b818015612442576001811461245357612480565b60ff19861689528489019650612480565b60008881526020902060005b868110156124785781548b82015290850190830161245f565b505084890196505b50505050505092915050565b7f7b2274726169745f74797065223a22436c617373222c2276616c7565223a2200815260006124be601f8301846123f2565b61227d60f01b81526002019392505050565b6e2261747472696275746573223a205b60881b815283516000906124fb81600f850160208901611ddb565b8083019050600b60fa1b80600f830152855161251e816010850160208a01611ddb565b60109201918201528351612539816011840160208801611ddb565b605d60f81b6011929091019182015260120195945050505050565b60008251612566818460208701611ddb565b632e706e6760e01b920191825250600401919050565b600061258882866123f2565b8451612598818360208901611ddb565b602f60f81b910190815283516125b5816001840160208801611ddb565b0160010195945050505050565b6c1e34b6b0b3b290343932b31e9160991b815281516000906125eb81600d850160208701611ddb565b6211179f60e91b600d939091019283015250601001919050565b6000875160206126188285838d01611ddb565b8184019150600b60fa1b80835289516126378160018601858e01611ddb565b6001930192830181905288516126538160028601858d01611ddb565b60029301928301819052875161266f8160038601858c01611ddb565b60039301928301819052865161268b8160048601858b01611ddb565b600493019283015284516126a58160058501848901611ddb565b9091016005019998505050505050505050565b6e3d913a3930b4ba2fba3cb832911d1160891b815260006126dc600f8301856123f2565b6a1116113b30b63ab2911d1160a91b81526126fa600b8201856123f2565b61227d60f01b815260020195945050505050565b6e3d913a3930b4ba2fba3cb832911d1160891b81526000612732600f8301866123f2565b6a1116113b30b63ab2911d1160a91b8152845161275681600b840160208901611ddb565b72111610113234b9b83630bcafba3cb832911d1160691b600b9290910191820152612784601e8201856123f2565b61227d60f01b8152600201969550505050505056fe68747470733a2f2f6875736b6965732e6d7970696e6174612e636c6f75642f697066732f3c7374796c653e23656c667b73686170652d72656e646572696e673a20637269737065646765733b20696d6167652d72656e646572696e673a202d7765626b69742d63726973702d65646765733b20696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b20696d6167652d72656e646572696e673a2063726973702d65646765733b20696d6167652d72656e646572696e673a20706978656c617465643b202d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b7d3c2f7374796c653e3c2f7376673e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c7376672069643d22656c66222076696577426f783d2230203020313630203136302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574223ea264697066735822122001b1994cff7da15892c517e51ac8d57987be60db68ec28ccb9ca0d02ce0f04a564736f6c634300080c0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.