Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 12935968 | 1241 days ago | IN | 0 ETH | 0.00147324 | ||||
Transfer From | 12797456 | 1263 days ago | IN | 0 ETH | 0.00064951 | ||||
Set Approval For... | 12797415 | 1263 days ago | IN | 0 ETH | 0.00073662 | ||||
Transfer From | 12797384 | 1263 days ago | IN | 0 ETH | 0.00090601 | ||||
Set Approval For... | 12135725 | 1366 days ago | IN | 0 ETH | 0.00916753 | ||||
Mint | 12125384 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125383 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125383 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125379 | 1367 days ago | IN | 0 ETH | 0.00658201 | ||||
Mint | 12125375 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125371 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125367 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125361 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125358 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125352 | 1367 days ago | IN | 0 ETH | 0.005846 | ||||
Mint | 12125337 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125333 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125331 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125329 | 1367 days ago | IN | 0 ETH | 0.007346 | ||||
Mint | 12125322 | 1367 days ago | IN | 0 ETH | 0.00786022 | ||||
Mint | 12125310 | 1367 days ago | IN | 0 ETH | 0.00526032 | ||||
Mint | 12125270 | 1367 days ago | IN | 0 ETH | 0.0088448 | ||||
Base | 12125258 | 1367 days ago | IN | 0 ETH | 0.0084828 | ||||
Permit | 12125254 | 1367 days ago | IN | 0 ETH | 0.0043657 | ||||
Permit | 12125249 | 1367 days ago | IN | 0 ETH | 0.00392805 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BlobDefinition
Compiler Version
v0.5.10+commit.5a6ea5b1
Contract Source Code (Solidity Multiple files format)
pragma solidity 0.5.10; import './LibAddress.sol'; import './LibInteger.sol'; /** * @title BlobDefinition * @dev HBD token contract adhering to ERC721 standard */ contract BlobDefinition { using LibAddress for address; using LibInteger for uint; event Transfer(address indexed from, address indexed to, uint indexed id); event Approval(address indexed owner, address indexed approved, uint indexed id); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev The admin of the contract */ address payable private _admin; /** * @dev The total minted tokens */ uint private _supply; /** * @dev The base url of token info page */ string private _base_uri; /** * @dev Permitted addresses to carry out special functions */ mapping (address => bool) private _permissions; /** * @dev Number of tokens held by an address */ mapping (address => uint) private _token_balances; /** * @dev Owners of each token */ mapping (uint => address) private _token_owners; /** * @dev Approved third party addresses for each token */ mapping (uint => address) private _token_approvals; /** * @dev Approved third party addresses to manage all tokens belonging to some address */ mapping (address => mapping (address => bool)) private _token_operators; /** * @dev Interfaces supported by this contract */ mapping(bytes4 => bool) private _supported_interfaces; /** * @dev The name of token */ string private constant _name = "Hash Blob Definition"; /** * @dev The symbol of token */ string private constant _symbol = "HBD"; /** * Interface id for ERC165 */ bytes4 private constant _interface_165 = 0x01ffc9a7; /** * Interface id for ERC721 */ bytes4 private constant _interface_721 = 0x80ac58cd; /** * Maximum number of tokens to be minted */ uint private constant _max_supply = 16384; /** * @dev Initialise the contract */ constructor () public { //The contract creator becomes the admin _admin = msg.sender; //Register supported interfaces _supported_interfaces[_interface_165] = true; _supported_interfaces[_interface_721] = true; } /** * @dev Allow access only for the admin of contract */ modifier onlyAdmin() { require(msg.sender == _admin); _; } /** * @dev Allow access only for the permitted addresses */ modifier onlyPermitted() { require(_permissions[msg.sender]); _; } /** * @dev Give or revoke permission of accounts * @param account The address to change permission * @param permission True if the permission should be granted, false if it should be revoked */ function permit(address account, bool permission) public onlyAdmin { _permissions[account] = permission; } /** * @dev Withdraw from the balance of this contract * @param amount The amount to be withdrawn, if zero is provided the whole balance will be withdrawn */ function clean(uint amount) public onlyAdmin { if (amount == 0){ _admin.transfer(address(this).balance); } else { _admin.transfer(amount); } } /** * @dev Set the base uri * @param uri The base uri */ function base(string memory uri) public onlyAdmin { _base_uri = uri; } /** * @dev Move token from one account to another * @param from The token sender address * @param to The recipient address * @param id The token id to transfer */ function transferFrom(address from, address to, uint id) public { //The token must exist require(_isExist(id)); //Caller must be approved or the owner of token require(_isApprovedOrOwner(msg.sender, id)); //Do the transfer _send(from, to, id, ""); } /** * @dev Safely move token from one account to another * @param from The token sender address * @param to The recipient address * @param id The token id to transfer */ function safeTransferFrom(address from, address to, uint id) public { //The token must exist require(_isExist(id)); //Caller must be approved or the owner of token require(_isApprovedOrOwner(msg.sender, id)); //Do the transfer _send(from, to, id, ""); } /** * @dev Safely move token from one account to another * @param from The token sender address * @param to The recipient address * @param id The token id to transfer * @param data Additional extra data */ function safeTransferFrom(address from, address to, uint id, bytes memory data) public { //The token must exist require(_isExist(id)); //Caller must be approved or the owner of token require(_isApprovedOrOwner(msg.sender, id)); //Do the transfer _send(from, to, id, data); } /** * @dev Allow a third party to transfer caller's token * @param to The address to allow * @param id The token id to allow transfer */ function approve(address to, uint id) public { //The token must exist require(_isExist(id)); //No need to approve the owner address owner = ownerOf(id); require(to != owner); //Caller must be the owner of token or an approved operator require(msg.sender == owner || isApprovedForAll(owner, msg.sender)); //Grant approval _token_approvals[id] = to; //Emit events emit Approval(owner, to, id); } /** * @dev Grant or revoke approval for a third party to transfer all of caller's tokens * @param to The address to grant or revoke * @param approved Grant or revoke approval */ function setApprovalForAll(address to, bool approved) public { //Cannot set own settings require(to != msg.sender); //Grant or revoke approval _token_operators[msg.sender][to] = approved; //Emit events emit ApprovalForAll(msg.sender, to, approved); } /** * @dev Mint tokens * @param to The owner of token */ function mint(address to) public onlyPermitted returns (uint) { //No point of minting to zero address require(!to.isOriginAddress()); //Must not exceed the maximum available tokens to be minted require(_supply < _max_supply); //Mint the token uint id = _supply.add(1); _token_owners[id] = to; _token_balances[to] = _token_balances[to].add(1); //Increment supply _supply = id; //Emit events emit Transfer(address(0), to, id); return id; } /** * @dev Enable tokens * @param to The owner of token * @param id The token id to enable */ function enable(address to, uint id) public onlyPermitted { //Must be a valid id require(id > 0); //No point of minting to zero address require(!to.isOriginAddress()); //Token does not already exists require(!_isExist(id)); //Enable the token _token_owners[id] = to; _token_balances[to] = _token_balances[to].add(1); //Emit events emit Transfer(address(0), to, id); } /** * @dev Burn tokens * @param owner The owner of token * @param id The token id to burn */ function disable(address owner, uint id) public onlyPermitted { //Token must exist require(_isExist(id)); //Token must be owned by sent in address require(ownerOf(id) == owner); //Disable the token _token_approvals[id] = address(0); _token_balances[owner] = _token_balances[owner].sub(1); _token_owners[id] = address(0); //Emit events emit Transfer(owner, address(0), id); } /** * @dev Safely move token from one account to another * @param from The token sender address * @param to The recipient address * @param id The token id to transfer */ function move(address from, address to, uint id) public onlyPermitted { //The token must exist require(_isExist(id)); //Do the transfer _send(from, to, id, ""); } /** * @dev Get the approved address for a token * @param id The token id * @return address The approved address */ function getApproved(uint id) public view returns (address) { return _token_approvals[id]; } /** * @dev Check whether the provided operator is approved to manage owner's tokens * @param owner The token owner address * @param operator The operator address to check against * @return bool True if the operator is approved, otherwise false */ function isApprovedForAll(address owner, address operator) public view returns (bool) { return _token_operators[owner][operator]; } /** * @dev Get number of tokens belonging to an account * @param account The address of account to check * @return uint The tokens balance */ function balanceOf(address account) public view returns (uint) { return _token_balances[account]; } /** * @dev Get the owner of a token * @param id The id of token * @return address The owner of token */ function ownerOf(uint id) public view returns (address) { return _token_owners[id]; } /** * @dev Get the url of token info page * @param id The id of token * @return string The url of token info page */ function tokenURI(uint id) public view returns (string memory) { if(_isExist(id)) { return string(abi.encodePacked(_base_uri, id.toString())); } else { return ""; } } /** * @dev Get the url of contract info page * @return string The url of contract info page */ function contractURI() public view returns (string memory) { return _base_uri; } /** * @dev Check whether the given interface is supported by this contract * @param id The interface id to check * @return True if the interface is supported */ function supportsInterface(bytes4 id) external view returns (bool) { return _supported_interfaces[id]; } /** * @dev Get the total number of tokens in existance * @return uint Number of tokens */ function totalSupply() public view returns (uint) { return _supply; } /** * @dev Get the maximum number of tokens minted * @return uint Maximum number of tokens */ function maxSupply() public pure returns (uint) { return _max_supply; } /** * @dev Get name of token * @return string The name */ function name() public pure returns (string memory) { return _name; } /** * @dev Get symbol of token * @return string The symbol */ function symbol() public pure returns (string memory) { return _symbol; } /** * @dev Check whether the provided address is permitted * @param account The address to check * @return bool True if the address is permitted, otherwise false */ function isPermitted(address account) public view returns (bool) { return _permissions[account]; } /** * @dev Check whether the token exists * @param id The id of token * @return bool True if the token exists, otherwise false */ function _isExist(uint id) private view returns (bool) { return ownerOf(id) != address(0); } /** * @dev Check whether the provided address is the owner of token or a approved address * @param spender The address to check * @param id The id of token * @return bool True if the provided address is the owner of token or a approved address, otherwise false */ function _isApprovedOrOwner(address spender, uint id) private view returns (bool) { address owner = ownerOf(id); return (spender == owner || getApproved(id) == spender || isApprovedForAll(owner, spender)); } /** * @dev Transfer tokens from one account to another * @param from The token owner * @param to The token receiver * @param id The token id to transfer * @param data Additional data to add to the transaction */ function _send(address from, address to, uint id, bytes memory data) private { //The token must be owned by the provided address require(ownerOf(id) == from); //No point of transferring to zero address require(!to.isOriginAddress()); //Do nothing with the data delete data; //Clear approvals _token_approvals[id] = address(0); //Reduce the balance from owner _token_balances[from] = _token_balances[from].sub(1); //Increase the balance of receiver _token_balances[to] = _token_balances[to].add(1); //Set the new owner _token_owners[id] = to; //Emit events emit Transfer(from, to, id); } }
pragma solidity 0.5.10; /** * @title LibAddress * @dev Address related utility functions */ library LibAddress { /** * @dev Check whether the given address is zero address * @param account The address to check against * @return bool True if the given address is zero address */ function isOriginAddress(address account) internal pure returns (bool) { return (account == address(0)); } }
pragma solidity 0.5.10; /** * @title LibInteger * @dev Integer related utility functions */ library LibInteger { /** * @dev Safely multiply, revert on overflow * @param a The first number * @param b The second number * @return uint The answer */ function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; require(c / a == b); return c; } /** * @dev Safely divide, revert if divisor is zero * @param a The first number * @param b The second number * @return uint The answer */ function div(uint a, uint b) internal pure returns (uint) { require(b > 0, ""); uint c = a / b; return c; } /** * @dev Safely substract, revert if answer is negative * @param a The first number * @param b The second number * @return uint The answer */ function sub(uint a, uint b) internal pure returns (uint) { require(b <= a, ""); uint c = a - b; return c; } /** * @dev Safely add, revert if overflow * @param a The first number * @param b The second number * @return uint The answer */ function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; require(c >= a, ""); return c; } /** * @dev Convert number to string * @param value The number to convert * @return string The string representation */ function toString(uint value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint temp = value; uint digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); uint index = digits - 1; temp = value; while (temp != 0) { buffer[index--] = byte(uint8(48 + temp % 10)); temp /= 10; } return string(buffer); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"id","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"uri","type":"string"}],"name":"base","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPermitted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"clean","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"id","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"id","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"contractURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"permission","type":"bool"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"id","type":"uint256"}],"name":"enable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"id","type":"uint256"}],"name":"disable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b0319163317815560086020527f9c1077d48c1ee2b23ae7e47ca8a0ebdbffc921a368b14a8244a53034b67dcd47805460ff1990811660019081179092557f80ac58cd000000000000000000000000000000000000000000000000000000009092527fb64e51f96476f71a82a586ff6df0320abb1ea1ca8eef8a1f644f514b4d62b5128054909216179055611228806100b56000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063d5abeb011161007c578063d5abeb011461056d578063e8a3d48514610575578063e985e9c51461057d578063f186c67f146105ab578063fe102e88146105d9578063fe9f841e1461060557610158565b806370a08231146103f857806395d89b411461041e578063a22cb46514610426578063b88d4fde14610454578063bb35783b1461051a578063c87b56dd1461055057610158565b80632a18d71d116101155780632a18d71d146102cc5780633fd8cc4e1461037257806342842e0e146102965780636352211e14610398578063674ef0fa146103b55780636a627842146103d257610158565b806301ffc9a71461015d57806306fdde0314610198578063081812fc14610215578063095ea7b31461024e57806318160ddd1461027c57806323b872dd14610296575b600080fd5b6101846004803603602081101561017357600080fd5b50356001600160e01b031916610631565b604080519115158252519081900360200190f35b6101a0610654565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101da5781810151838201526020016101c2565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102326004803603602081101561022b57600080fd5b5035610683565b604080516001600160a01b039092168252519081900360200190f35b61027a6004803603604081101561026457600080fd5b506001600160a01b03813516906020013561069e565b005b61028461075d565b60408051918252519081900360200190f35b61027a600480360360608110156102ac57600080fd5b506001600160a01b03813581169160208101359091169060400135610763565b61027a600480360360208110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107a8945050505050565b6101846004803603602081101561038857600080fd5b50356001600160a01b03166107d6565b610232600480360360208110156103ae57600080fd5b50356107f4565b61027a600480360360208110156103cb57600080fd5b503561080f565b610284600480360360208110156103e857600080fd5b50356001600160a01b03166108a8565b6102846004803603602081101561040e57600080fd5b50356001600160a01b031661098c565b6101a06109a7565b61027a6004803603604081101561043c57600080fd5b506001600160a01b03813516906020013515156109c4565b61027a6004803603608081101561046a57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104a557600080fd5b8201836020820111156104b757600080fd5b803590602001918460018302840111640100000000831117156104d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a48945050505050565b61027a6004803603606081101561053057600080fd5b506001600160a01b03813581169160208101359091169060400135610a7f565b6101a06004803603602081101561056657600080fd5b5035610aa4565b610284610b9a565b6101a0610ba0565b6101846004803603604081101561059357600080fd5b506001600160a01b0381358116916020013516610c33565b61027a600480360360408110156105c157600080fd5b506001600160a01b0381351690602001351515610c61565b61027a600480360360408110156105ef57600080fd5b506001600160a01b038135169060200135610ca3565b61027a6004803603604081101561061b57600080fd5b506001600160a01b038135169060200135610d76565b6001600160e01b0319811660009081526008602052604090205460ff165b919050565b6040805180820190915260148152732430b9b410213637b1102232b334b734ba34b7b760611b60208201525b90565b6000908152600660205260409020546001600160a01b031690565b6106a781610e62565b6106b057600080fd5b60006106bb826107f4565b9050806001600160a01b0316836001600160a01b031614156106dc57600080fd5b336001600160a01b03821614806106f857506106f88133610c33565b61070157600080fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60015490565b61076c81610e62565b61077557600080fd5b61077f3382610e7f565b61078857600080fd5b6107a383838360405180602001604052806000815250610ede565b505050565b6000546001600160a01b031633146107bf57600080fd5b80516107d290600290602084019061113b565b5050565b6001600160a01b031660009081526003602052604090205460ff1690565b6000908152600560205260409020546001600160a01b031690565b6000546001600160a01b0316331461082657600080fd5b8061086c57600080546040516001600160a01b0390911691303180156108fc02929091818181858888f19350505050158015610866573d6000803e3d6000fd5b506108a5565b600080546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156107d2573d6000803e3d6000fd5b50565b3360009081526003602052604081205460ff166108c457600080fd5b6108d6826001600160a01b0316610ff8565b156108e057600080fd5b614000600154106108f057600080fd5b60006109076001805461100590919063ffffffff16565b600081815260056020908152604080832080546001600160a01b0319166001600160a01b0389169081179091558352600490915290205490915061094c906001611005565b6001600160a01b03841660008181526004602052604080822093909355600184905591518392906000805160206111d4833981519152908290a492915050565b6001600160a01b031660009081526004602052604090205490565b60408051808201909152600381526212109160ea1b602082015290565b6001600160a01b0382163314156109da57600080fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610a5182610e62565b610a5a57600080fd5b610a643383610e7f565b610a6d57600080fd5b610a7984848484610ede565b50505050565b3360009081526003602052604090205460ff16610a9b57600080fd5b61077f81610e62565b6060610aaf82610e62565b15610b85576002610abf83611040565b6040516020018083805460018160011615610100020316600290048015610b1d5780601f10610afb576101008083540402835291820191610b1d565b820191906000526020600020905b815481529060010190602001808311610b09575b5050825160208401908083835b60208310610b495780518252601f199092019160209182019101610b2a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905061064f565b5060408051602081019091526000815261064f565b61400090565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610c295780601f10610bfe57610100808354040283529160200191610c29565b820191906000526020600020905b815481529060010190602001808311610c0c57829003601f168201915b5050505050905090565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6000546001600160a01b03163314610c7857600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610cbf57600080fd5b60008111610ccc57600080fd5b610cde826001600160a01b0316610ff8565b15610ce857600080fd5b610cf181610e62565b15610cfb57600080fd5b600081815260056020908152604080832080546001600160a01b0319166001600160a01b03871690811790915583526004909152902054610d3d906001611005565b6001600160a01b0383166000818152600460205260408082209390935591518392906000805160206111d4833981519152908290a45050565b3360009081526003602052604090205460ff16610d9257600080fd5b610d9b81610e62565b610da457600080fd5b816001600160a01b0316610db7826107f4565b6001600160a01b031614610dca57600080fd5b600081815260066020908152604080832080546001600160a01b03191690556001600160a01b03851683526004909152902054610e0e90600163ffffffff61110416565b6001600160a01b0383166000818152600460209081526040808320949094558482526005905282812080546001600160a01b03191690559151839291906000805160206111d4833981519152908390a45050565b600080610e6e836107f4565b6001600160a01b0316141592915050565b600080610e8b836107f4565b9050806001600160a01b0316846001600160a01b03161480610ec65750836001600160a01b0316610ebb84610683565b6001600160a01b0316145b80610ed65750610ed68185610c33565b949350505050565b836001600160a01b0316610ef1836107f4565b6001600160a01b031614610f0457600080fd5b610f16836001600160a01b0316610ff8565b15610f2057600080fd5b50600081815260066020908152604080832080546001600160a01b03191690556001600160a01b03861683526004909152902054606090610f6890600163ffffffff61110416565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610f9e90600163ffffffff61100516565b6001600160a01b038085166000818152600460209081526040808320959095558682526005905283812080546001600160a01b031916831790559251859391928816916000805160206111d483398151915291a450505050565b6001600160a01b03161590565b600082820183811015611039576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b9392505050565b60608161106557506040805180820190915260018152600360fc1b602082015261064f565b8160005b811561107d57600101600a82049150611069565b6060816040519080825280601f01601f1916602001820160405280156110aa576020820181803883390190505b50859350905060001982015b83156110fb57600a840660300160f81b828280600190039350815181106110d957fe5b60200101906001600160f81b031916908160001a905350600a840493506110b6565b50949350505050565b600082821115611135576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117c57805160ff19168380011785556111a9565b828001600101855582156111a9579182015b828111156111a957825182559160200191906001019061118e565b506111b59291506111b9565b5090565b61068091905b808211156111b557600081556001016111bf56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7230582046bfacd158a3cc57e80d012440f28a7dbe70e97a8aef448caeb68a2f90740c3864736f6c634300050a0032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063d5abeb011161007c578063d5abeb011461056d578063e8a3d48514610575578063e985e9c51461057d578063f186c67f146105ab578063fe102e88146105d9578063fe9f841e1461060557610158565b806370a08231146103f857806395d89b411461041e578063a22cb46514610426578063b88d4fde14610454578063bb35783b1461051a578063c87b56dd1461055057610158565b80632a18d71d116101155780632a18d71d146102cc5780633fd8cc4e1461037257806342842e0e146102965780636352211e14610398578063674ef0fa146103b55780636a627842146103d257610158565b806301ffc9a71461015d57806306fdde0314610198578063081812fc14610215578063095ea7b31461024e57806318160ddd1461027c57806323b872dd14610296575b600080fd5b6101846004803603602081101561017357600080fd5b50356001600160e01b031916610631565b604080519115158252519081900360200190f35b6101a0610654565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101da5781810151838201526020016101c2565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102326004803603602081101561022b57600080fd5b5035610683565b604080516001600160a01b039092168252519081900360200190f35b61027a6004803603604081101561026457600080fd5b506001600160a01b03813516906020013561069e565b005b61028461075d565b60408051918252519081900360200190f35b61027a600480360360608110156102ac57600080fd5b506001600160a01b03813581169160208101359091169060400135610763565b61027a600480360360208110156102e257600080fd5b8101906020810181356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107a8945050505050565b6101846004803603602081101561038857600080fd5b50356001600160a01b03166107d6565b610232600480360360208110156103ae57600080fd5b50356107f4565b61027a600480360360208110156103cb57600080fd5b503561080f565b610284600480360360208110156103e857600080fd5b50356001600160a01b03166108a8565b6102846004803603602081101561040e57600080fd5b50356001600160a01b031661098c565b6101a06109a7565b61027a6004803603604081101561043c57600080fd5b506001600160a01b03813516906020013515156109c4565b61027a6004803603608081101561046a57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156104a557600080fd5b8201836020820111156104b757600080fd5b803590602001918460018302840111640100000000831117156104d957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a48945050505050565b61027a6004803603606081101561053057600080fd5b506001600160a01b03813581169160208101359091169060400135610a7f565b6101a06004803603602081101561056657600080fd5b5035610aa4565b610284610b9a565b6101a0610ba0565b6101846004803603604081101561059357600080fd5b506001600160a01b0381358116916020013516610c33565b61027a600480360360408110156105c157600080fd5b506001600160a01b0381351690602001351515610c61565b61027a600480360360408110156105ef57600080fd5b506001600160a01b038135169060200135610ca3565b61027a6004803603604081101561061b57600080fd5b506001600160a01b038135169060200135610d76565b6001600160e01b0319811660009081526008602052604090205460ff165b919050565b6040805180820190915260148152732430b9b410213637b1102232b334b734ba34b7b760611b60208201525b90565b6000908152600660205260409020546001600160a01b031690565b6106a781610e62565b6106b057600080fd5b60006106bb826107f4565b9050806001600160a01b0316836001600160a01b031614156106dc57600080fd5b336001600160a01b03821614806106f857506106f88133610c33565b61070157600080fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60015490565b61076c81610e62565b61077557600080fd5b61077f3382610e7f565b61078857600080fd5b6107a383838360405180602001604052806000815250610ede565b505050565b6000546001600160a01b031633146107bf57600080fd5b80516107d290600290602084019061113b565b5050565b6001600160a01b031660009081526003602052604090205460ff1690565b6000908152600560205260409020546001600160a01b031690565b6000546001600160a01b0316331461082657600080fd5b8061086c57600080546040516001600160a01b0390911691303180156108fc02929091818181858888f19350505050158015610866573d6000803e3d6000fd5b506108a5565b600080546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156107d2573d6000803e3d6000fd5b50565b3360009081526003602052604081205460ff166108c457600080fd5b6108d6826001600160a01b0316610ff8565b156108e057600080fd5b614000600154106108f057600080fd5b60006109076001805461100590919063ffffffff16565b600081815260056020908152604080832080546001600160a01b0319166001600160a01b0389169081179091558352600490915290205490915061094c906001611005565b6001600160a01b03841660008181526004602052604080822093909355600184905591518392906000805160206111d4833981519152908290a492915050565b6001600160a01b031660009081526004602052604090205490565b60408051808201909152600381526212109160ea1b602082015290565b6001600160a01b0382163314156109da57600080fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b610a5182610e62565b610a5a57600080fd5b610a643383610e7f565b610a6d57600080fd5b610a7984848484610ede565b50505050565b3360009081526003602052604090205460ff16610a9b57600080fd5b61077f81610e62565b6060610aaf82610e62565b15610b85576002610abf83611040565b6040516020018083805460018160011615610100020316600290048015610b1d5780601f10610afb576101008083540402835291820191610b1d565b820191906000526020600020905b815481529060010190602001808311610b09575b5050825160208401908083835b60208310610b495780518252601f199092019160209182019101610b2a565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905061064f565b5060408051602081019091526000815261064f565b61400090565b60028054604080516020601f6000196101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610c295780601f10610bfe57610100808354040283529160200191610c29565b820191906000526020600020905b815481529060010190602001808311610c0c57829003601f168201915b5050505050905090565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6000546001600160a01b03163314610c7857600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b3360009081526003602052604090205460ff16610cbf57600080fd5b60008111610ccc57600080fd5b610cde826001600160a01b0316610ff8565b15610ce857600080fd5b610cf181610e62565b15610cfb57600080fd5b600081815260056020908152604080832080546001600160a01b0319166001600160a01b03871690811790915583526004909152902054610d3d906001611005565b6001600160a01b0383166000818152600460205260408082209390935591518392906000805160206111d4833981519152908290a45050565b3360009081526003602052604090205460ff16610d9257600080fd5b610d9b81610e62565b610da457600080fd5b816001600160a01b0316610db7826107f4565b6001600160a01b031614610dca57600080fd5b600081815260066020908152604080832080546001600160a01b03191690556001600160a01b03851683526004909152902054610e0e90600163ffffffff61110416565b6001600160a01b0383166000818152600460209081526040808320949094558482526005905282812080546001600160a01b03191690559151839291906000805160206111d4833981519152908390a45050565b600080610e6e836107f4565b6001600160a01b0316141592915050565b600080610e8b836107f4565b9050806001600160a01b0316846001600160a01b03161480610ec65750836001600160a01b0316610ebb84610683565b6001600160a01b0316145b80610ed65750610ed68185610c33565b949350505050565b836001600160a01b0316610ef1836107f4565b6001600160a01b031614610f0457600080fd5b610f16836001600160a01b0316610ff8565b15610f2057600080fd5b50600081815260066020908152604080832080546001600160a01b03191690556001600160a01b03861683526004909152902054606090610f6890600163ffffffff61110416565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610f9e90600163ffffffff61100516565b6001600160a01b038085166000818152600460209081526040808320959095558682526005905283812080546001600160a01b031916831790559251859391928816916000805160206111d483398151915291a450505050565b6001600160a01b03161590565b600082820183811015611039576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b9392505050565b60608161106557506040805180820190915260018152600360fc1b602082015261064f565b8160005b811561107d57600101600a82049150611069565b6060816040519080825280601f01601f1916602001820160405280156110aa576020820181803883390190505b50859350905060001982015b83156110fb57600a840660300160f81b828280600190039350815181106110d957fe5b60200101906001600160f81b031916908160001a905350600a840493506110b6565b50949350505050565b600082821115611135576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117c57805160ff19168380011785556111a9565b828001600101855582156111a9579182015b828111156111a957825182559160200191906001019061118e565b506111b59291506111b9565b5090565b61068091905b808211156111b557600081556001016111bf56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa265627a7a7230582046bfacd158a3cc57e80d012440f28a7dbe70e97a8aef448caeb68a2f90740c3864736f6c634300050a0032
Deployed Bytecode Sourcemap
169:13407:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;169:13407:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10620:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10620:116:0;-1:-1:-1;;;;;;10620:116:0;;:::i;:::-;;;;;;;;;;;;;;;;;;11225:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11225:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8785:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8785:108:0;;:::i;:::-;;;;-1:-1:-1;;;;;8785:108:0;;;;;;;;;;;;;;5400:501;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5400:501:0;;;;;;;;:::i;:::-;;10851:85;;;:::i;:::-;;;;;;;;;;;;;;;;3832:307;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3832:307:0;;;;;;;;;;;;;;;;;:::i;3548:86::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3548:86:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3548:86:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3548:86:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3548:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3548:86:0;;-1:-1:-1;3548:86:0;;-1:-1:-1;;;;;3548:86:0:i;11681:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11681:114:0;-1:-1:-1;;;;;11681:114:0;;:::i;9743:101::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9743:101:0;;:::i;3268:198::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3268:198:0;;:::i;6499:554::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6499:554:0;-1:-1:-1;;;;;6499:554:0;;:::i;9494:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9494:115:0;-1:-1:-1;;;;;9494:115:0;;:::i;11397:89::-;;;:::i;6109:308::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6109:308:0;;;;;;;;;;:::i;4901:332::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4901:332:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4901:332:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4901:332:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4901:332:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4901:332:0;;-1:-1:-1;4901:332:0;;-1:-1:-1;;;;;4901:332:0:i;8437:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8437:203:0;;;;;;;;;;;;;;;;;:::i;9991:222::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9991:222:0;;:::i;11055:87::-;;;:::i;10333:96::-;;;:::i;9175:147::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9175:147:0;;;;;;;;;;:::i;2964:122::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2964:122:0;;;;;;;;;;:::i;7177:467::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7177:467:0;;;;;;;;:::i;7767:465::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7767:465:0;;;;;;;;:::i;10620:116::-;-1:-1:-1;;;;;;10704:25:0;;10681:4;10704:25;;;:21;:25;;;;;;;;10620:116;;;;:::o;11225:85::-;11298:5;;;;;;;;;;;;-1:-1:-1;;;11298:5:0;;;;11225:85;;:::o;8785:108::-;8836:7;8866:20;;;:16;:20;;;;;;-1:-1:-1;;;;;8866:20:0;;8785:108::o;5400:501::-;5498:12;5507:2;5498:8;:12::i;:::-;5490:21;;;;;;5561:13;5577:11;5585:2;5577:7;:11::i;:::-;5561:27;;5612:5;-1:-1:-1;;;;;5606:11:0;:2;-1:-1:-1;;;;;5606:11:0;;;5598:20;;;;;;5705:10;-1:-1:-1;;;;;5705:19:0;;;;:58;;;5728:35;5745:5;5752:10;5728:16;:35::i;:::-;5697:67;;;;;;5808:20;;;;:16;:20;;;;;;:25;;-1:-1:-1;;;;;;5808:25:0;-1:-1:-1;;;;;5808:25:0;;;;;;;;;5871:23;;5808:20;;5871:23;;;;;;;5400:501;;;:::o;10851:85::-;10922:7;;10851:85;:::o;3832:307::-;3949:12;3958:2;3949:8;:12::i;:::-;3941:21;;;;;;4037:34;4056:10;4068:2;4037:18;:34::i;:::-;4029:43;;;;;;4109:23;4115:4;4121:2;4125;4109:23;;;;;;;;;;;;:5;:23::i;:::-;3832:307;;;:::o;3548:86::-;2545:6;;-1:-1:-1;;;;;2545:6:0;2531:10;:20;2523:29;;;;;;3612:15;;;;:9;;:15;;;;;:::i;:::-;;3548:86;:::o;11681:114::-;-1:-1:-1;;;;;11767:21:0;11740:4;11767:21;;;:12;:21;;;;;;;;;11681:114::o;9743:101::-;9790:7;9820:17;;;:13;:17;;;;;;-1:-1:-1;;;;;9820:17:0;;9743:101::o;3268:198::-;2545:6;;-1:-1:-1;;;;;2545:6:0;2531:10;:20;2523:29;;;;;;3331:11;3327:133;;3357:6;;;:38;;-1:-1:-1;;;;;3357:6:0;;;;3381:4;3373:21;3357:38;;;;;3373:21;;3357:38;:6;:38;3373:21;3357:6;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3357:38:0;3327:133;;;3426:6;;;:23;;-1:-1:-1;;;;;3426:6:0;;;;:23;;;;;3442:6;;3426:23;:6;:23;3442:6;3426;:23;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;3327:133:0;3268:198;:::o;6499:554::-;2710:10;6555:4;2697:24;;;:12;:24;;;;;;;;2689:33;;;;;;6630:20;:2;-1:-1:-1;;;;;6630:18:0;;:20::i;:::-;6629:21;6621:30;;;;;;2086:5;6738:7;;:21;6730:30;;;;;;6796:7;6806:14;6818:1;6806:7;;:11;;:14;;;;:::i;:::-;6830:17;;;;:13;:17;;;;;;;;:22;;-1:-1:-1;;;;;;6830:22:0;-1:-1:-1;;;;;6830:22:0;;;;;;;;6884:19;;:15;:19;;;;;;6830:17;;-1:-1:-1;6884:26:0;;-1:-1:-1;6884:23:0;:26::i;:::-;-1:-1:-1;;;;;6862:19:0;;;;;;:15;:19;;;;;;:48;;;;6948:7;:12;;;6998:28;;6958:2;;6862:19;-1:-1:-1;;;;;;;;;;;6998:28:0;6862:19;;6998:28;7044:2;6499:554;-1:-1:-1;;6499:554:0:o;9494:115::-;-1:-1:-1;;;;;9578:24:0;9551:4;9578:24;;;:15;:24;;;;;;;9494:115::o;11397:89::-;11472:7;;;;;;;;;;;;-1:-1:-1;;;11472:7:0;;;;11397:89;:::o;6109:308::-;-1:-1:-1;;;;;6226:16:0;;6232:10;6226:16;;6218:25;;;;;;6306:10;6289:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;6289:32:0;;;;;;;;;;;;:43;;-1:-1:-1;;6289:43:0;;;;;;;;;;6370:40;;;;;;;6289:32;;6306:10;6370:40;;;;;;;;;;;6109:308;;:::o;4901:332::-;5041:12;5050:2;5041:8;:12::i;:::-;5033:21;;;;;;5129:34;5148:10;5160:2;5129:18;:34::i;:::-;5121:43;;;;;;5201:25;5207:4;5213:2;5217;5221:4;5201:5;:25::i;:::-;4901:332;;;;:::o;8437:203::-;2710:10;2697:24;;;;:12;:24;;;;;;;;2689:33;;;;;;8560:12;8569:2;8560:8;:12::i;9991:222::-;10039:13;10071:12;10080:2;10071:8;:12::i;:::-;10068:139;;;10130:9;10141:13;:2;:11;:13::i;:::-;10113:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10113:42:0;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10113:42:0;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10113:42:0;;;10099:57;;;;10068:139;-1:-1:-1;10187:9:0;;;;;;;;;-1:-1:-1;10187:9:0;;;;11055:87;2086:5;11055:87;:::o;10333:96::-;10413:9;10406:16;;;;;;;-1:-1:-1;;10406:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10377:13;;10406:16;;10413:9;;10406:16;;10413:9;10406:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10333:96;:::o;9175:147::-;-1:-1:-1;;;;;9282:23:0;;;9255:4;9282:23;;;:16;:23;;;;;;;;:33;;;;;;;;;;;;;;;9175:147::o;2964:122::-;2545:6;;-1:-1:-1;;;;;2545:6:0;2531:10;:20;2523:29;;;;;;-1:-1:-1;;;;;3045:21:0;;;;;;;;:12;:21;;;;;:34;;-1:-1:-1;;3045:34:0;;;;;;;;;;2964:122::o;7177:467::-;2710:10;2697:24;;;;:12;:24;;;;;;;;2689:33;;;;;;7291:1;7286:2;:6;7278:15;;;;;;7359:20;:2;-1:-1:-1;;;;;7359:18:0;;:20::i;:::-;7358:21;7350:30;;;;;;7440:12;7449:2;7440:8;:12::i;:::-;7439:13;7431:22;;;;;;7491:17;;;;:13;:17;;;;;;;;:22;;-1:-1:-1;;;;;;7491:22:0;-1:-1:-1;;;;;7491:22:0;;;;;;;;7545:19;;:15;:19;;;;;;:26;;-1:-1:-1;7545:23:0;:26::i;:::-;-1:-1:-1;;;;;7523:19:0;;;;;;:15;:19;;;;;;:48;;;;7609:28;;7634:2;;7523:19;-1:-1:-1;;;;;;;;;;;7609:28:0;7523:19;;7609:28;7177:467;;:::o;7767:465::-;2710:10;2697:24;;;;:12;:24;;;;;;;;2689:33;;;;;;7878:12;7887:2;7878:8;:12::i;:::-;7870:21;;;;;;7974:5;-1:-1:-1;;;;;7959:20:0;:11;7967:2;7959:7;:11::i;:::-;-1:-1:-1;;;;;7959:20:0;;7951:29;;;;;;8050:1;8019:20;;;:16;:20;;;;;;;;:33;;-1:-1:-1;;;;;;8019:33:0;;;-1:-1:-1;;;;;8087:22:0;;;;:15;:22;;;;;;:29;;8019:33;8087:29;:26;:29;:::i;:::-;-1:-1:-1;;;;;8062:22:0;;;;;;:15;:22;;;;;;;;:54;;;;8126:17;;;:13;:17;;;;;:30;;-1:-1:-1;;;;;;8126:30:0;;;8194:31;;8140:2;;8062:22;;-1:-1:-1;;;;;;;;;;;8194:31:0;8062:22;;8194:31;7767:465;;:::o;11955:108::-;12004:4;;12031:11;12039:2;12031:7;:11::i;:::-;-1:-1:-1;;;;;12031:25:0;;;;11955:108;-1:-1:-1;;11955:108:0:o;12362:231::-;12438:4;12458:13;12474:11;12482:2;12474:7;:11::i;:::-;12458:27;;12514:5;-1:-1:-1;;;;;12503:16:0;:7;-1:-1:-1;;;;;12503:16:0;;:46;;;;12542:7;-1:-1:-1;;;;;12523:26:0;:15;12535:2;12523:11;:15::i;:::-;-1:-1:-1;;;;;12523:26:0;;12503:46;:82;;;;12553:32;12570:5;12577:7;12553:16;:32::i;:::-;12495:91;12362:231;-1:-1:-1;;;;12362:231:0:o;12845:729::-;13017:4;-1:-1:-1;;;;;13002:19:0;:11;13010:2;13002:7;:11::i;:::-;-1:-1:-1;;;;;13002:19:0;;12994:28;;;;;;13093:20;:2;-1:-1:-1;;;;;13093:18:0;;:20::i;:::-;13092:21;13084:30;;;;;;-1:-1:-1;13239:1:0;13208:20;;;:16;:20;;;;;;;;:33;;-1:-1:-1;;;;;;13208:33:0;;;-1:-1:-1;;;;;13316:21:0;;;;:15;:21;;;;;;13160:11;;13316:28;;13208:33;13316:28;:25;:28;:::i;:::-;-1:-1:-1;;;;;13292:21:0;;;;;;;:15;:21;;;;;;:52;;;;13420:19;;;;;;;:26;;13444:1;13420:26;:23;:26;:::i;:::-;-1:-1:-1;;;;;13398:19:0;;;;;;;:15;:19;;;;;;;;:48;;;;13485:17;;;:13;:17;;;;;:22;;-1:-1:-1;;;;;;13485:22:0;;;;;13545;;13499:2;;13398:19;;13545:22;;;-1:-1:-1;;;;;;;;;;;13545:22:0;;12845:729;;;;:::o;311:122:1:-;-1:-1:-1;;;;;404:21:1;;;311:122::o;1276:141:2:-;1328:4;1357:5;;;1380:6;;;;1372:19;;;;;-1:-1:-1;;;1372:19:2;;;;;;;;;;;;;;;;;;;;;;;1409:1;1276:141;-1:-1:-1;;;1276:141:2:o;1565:547::-;1618:13;1651:10;1647:51;;-1:-1:-1;1677:10:2;;;;;;;;;;;;-1:-1:-1;;;1677:10:2;;;;;;1647:51;1720:5;1708:9;1756:75;1763:9;;1756:75;;1788:8;;1818:2;1810:10;;;;1756:75;;;1841:19;1873:6;1863:17;;;;;;;;;;;;;;;;;;;;;;;;;21:6:-1;;104:10;1863:17:2;87:34:-1;135:17;;-1:-1;1863:17:2;-1:-1:-1;1939:5:2;;-1:-1:-1;1841:39:2;-1:-1:-1;;;1903:10:2;;1954:112;1961:9;;1954:112;;2027:2;2020:4;:9;2015:2;:14;2004:27;;1986:6;1993:7;;;;;;;1986:15;;;;;;;;;;;:45;-1:-1:-1;;;;;1986:45:2;;;;;;;;-1:-1:-1;2053:2:2;2045:10;;;;1954:112;;;-1:-1:-1;2098:6:2;1565:547;-1:-1:-1;;;;1565:547:2:o;973:141::-;1025:4;1058:1;1053;:6;;1045:19;;;;;-1:-1:-1;;;1045:19:2;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1083:5:2;;;973:141::o;169:13407:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;169:13407:0;;;-1:-1:-1;169:13407:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://46bfacd158a3cc57e80d012440f28a7dbe70e97a8aef448caeb68a2f90740c38
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.