Polygon Sponsored slots available. Book your slot here!
More Info
Private Name Tags
ContractCreator
N/A (Genesis Contract)
TokenTracker
Latest 25 from a total of 342,791 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 83018723 | 2 hrs ago | IN | 3.8638356 POL | 0.02354817 | ||||
| Transfer | 83018532 | 2 hrs ago | IN | 34.68207 POL | 0.09135556 | ||||
| Transfer | 83018524 | 2 hrs ago | IN | 80.92482999 POL | 0.09371919 | ||||
| Transfer | 83007771 | 8 hrs ago | IN | 0 POL | 0.02385781 | ||||
| Transfer | 83007757 | 8 hrs ago | IN | 0 POL | 0.02328255 | ||||
| Withdraw | 82997431 | 14 hrs ago | IN | 50 POL | 0.03424103 | ||||
| Transfer | 82996463 | 14 hrs ago | IN | 0 POL | 0.01502617 | ||||
| Transfer | 82996445 | 14 hrs ago | IN | 0 POL | 0.01503781 | ||||
| Transfer | 82996255 | 14 hrs ago | IN | 0 POL | 0.01345868 | ||||
| Transfer | 82996142 | 14 hrs ago | IN | 0 POL | 0.01419692 | ||||
| Transfer | 82987492 | 19 hrs ago | IN | 0 POL | 0.02100955 | ||||
| Withdraw | 82987285 | 19 hrs ago | IN | 0.07021886 POL | 0.02739788 | ||||
| Transfer | 82983835 | 21 hrs ago | IN | 38.33865 POL | 0.14910364 | ||||
| Transfer | 82983827 | 21 hrs ago | IN | 89.45684999 POL | 0.15029541 | ||||
| Transfer | 82983613 | 21 hrs ago | IN | 0 POL | 0.10568185 | ||||
| Transfer | 82979671 | 24 hrs ago | IN | 0 POL | 0.13168537 | ||||
| Transfer | 82979634 | 24 hrs ago | IN | 0 POL | 0.13574911 | ||||
| Transfer | 82979515 | 24 hrs ago | IN | 0 POL | 0.11370277 | ||||
| Transfer | 82979277 | 24 hrs ago | IN | 0 POL | 0.1242735 | ||||
| Transfer | 82968379 | 30 hrs ago | IN | 0 POL | 0.01490148 | ||||
| Transfer | 82968367 | 30 hrs ago | IN | 0 POL | 0.01539095 | ||||
| Transfer | 82965605 | 31 hrs ago | IN | 9.8 POL | 0.05014324 | ||||
| Transfer | 82963722 | 32 hrs ago | IN | 38.70969 POL | 0.03417253 | ||||
| Transfer | 82963720 | 32 hrs ago | IN | 90.32260999 POL | 0.03458966 | ||||
| Transfer | 82959944 | 34 hrs ago | IN | 38.70969 POL | 0.11952963 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 83018532 | 2 hrs ago | 34.68207 POL | ||||
| 83018524 | 2 hrs ago | 80.92482999 POL | ||||
| 82983835 | 21 hrs ago | 38.33865 POL | ||||
| 82983827 | 21 hrs ago | 89.45684999 POL | ||||
| 82965605 | 31 hrs ago | 9.8 POL | ||||
| 82963722 | 32 hrs ago | 38.70969 POL | ||||
| 82963720 | 32 hrs ago | 90.32260999 POL | ||||
| 82959944 | 34 hrs ago | 38.70969 POL | ||||
| 82959942 | 34 hrs ago | 90.32260999 POL | ||||
| 82957010 | 36 hrs ago | 37.97469 POL | ||||
| 82957007 | 36 hrs ago | 88.60760999 POL | ||||
| 82880773 | 3 days ago | 42.70464 POL | ||||
| 82880768 | 3 days ago | 99.64416 POL | ||||
| 82787596 | 5 days ago | 40.67796 POL | ||||
| 82787592 | 5 days ago | 94.91524 POL | ||||
| 82772586 | 5 days ago | 2 POL | ||||
| 82772448 | 5 days ago | 5 POL | ||||
| 82759703 | 6 days ago | 39.34425 POL | ||||
| 82759701 | 6 days ago | 91.80324999 POL | ||||
| 82705134 | 7 days ago | 39.34425 POL | ||||
| 82705131 | 7 days ago | 91.80324999 POL | ||||
| 82704948 | 7 days ago | 39.34425 POL | ||||
| 82704945 | 7 days ago | 91.80324999 POL | ||||
| 82633252 | 9 days ago | 50 POL | ||||
| 82576969 | 10 days ago | 35.29413 POL |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MRC20
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity 0.5.17;
import "./BaseERC20NoSig.sol";
/**
* @title Polygon Ecosystem Token contract
* @notice This contract is an ECR20 like wrapper over native gas token transfers on the Polygon PoS chain
* @dev ERC20 methods have been made payable while keeping their method signature same as other ChildERC20s on PoS
*/
contract MRC20 is BaseERC20NoSig {
event Transfer(address indexed from, address indexed to, uint256 value);
uint256 public currentSupply = 0;
uint8 private constant DECIMALS = 18;
bool isInitialized;
uint256 locked = 0; // append to storage layout
modifier nonReentrant() {
require(locked == 0, "reentrancy");
locked = 1;
_;
locked = 0;
}
constructor() public {}
function initialize(address _childChain, address _token) public {
require(!isInitialized, "The contract is already initialized");
isInitialized = true;
token = _token;
_transferOwnership(_childChain);
}
function setParent(address) public {
revert("Disabled feature");
}
function deposit(address user, uint256 amount) public onlyOwner {
// check for amount and user
require(
amount > 0 && user != address(0x0),
"Insufficient amount or invalid user"
);
// input balance
uint256 input1 = balanceOf(user);
currentSupply = currentSupply.add(amount);
// transfer amount to user
// not reenterant since this method is only called by commitState on StateReceiver which is onlySystem
_nativeTransfer(user, amount);
// deposit events
emit Deposit(token, user, amount, input1, balanceOf(user));
}
function withdraw(uint256 amount) public payable {
address user = msg.sender;
// input balance
uint256 input = balanceOf(user);
currentSupply = currentSupply.sub(amount);
// check for amount
require(
amount > 0 && msg.value == amount,
"Insufficient amount"
);
// withdraw event
emit Withdraw(token, user, amount, input, balanceOf(user));
}
function name() public pure returns (string memory) {
return "Polygon Ecosystem Token";
}
function symbol() public pure returns (string memory) {
return "POL";
}
function decimals() public pure returns (uint8) {
return DECIMALS;
}
function totalSupply() public pure returns (uint256) {
return 10000000000 * 10**uint256(DECIMALS);
}
function balanceOf(address account) public view returns (uint256) {
return account.balance;
}
/// @dev Function that is called when a user or another contract wants to transfer funds.
/// @param to Address of token receiver.
/// @param value Number of tokens to transfer.
/// @return Returns success of function call.
function transfer(address to, uint256 value) public payable returns (bool) {
if (msg.value != value) {
return false;
}
return _transferFrom(msg.sender, to, value);
}
/**
* @dev _transfer is invoked by _transferFrom method that is inherited from BaseERC20.
* This enables us to transfer Polygon ETH between users while keeping the interface same as that of an ERC20 Token.
*/
function _transfer(address sender, address recipient, uint256 amount)
internal
{
require(recipient != address(this), "can't send to MRC20");
_nativeTransfer(recipient, amount);
emit Transfer(sender, recipient, amount);
}
// @notice method to transfer native asset to receiver (nonReentrant)
// @dev 5000 gas is forwarded in the call to receiver
// @dev msg.value checks (if req), emitting logs are handled seperately
// @param receiver address to transfer native token to
// @param amount amount of native token to transfer
function _nativeTransfer(address receiver, uint256 amount) internal nonReentrant {
uint256 txGasLimit = 5000;
(bool success, bytes memory ret) = receiver.call.value(amount).gas(txGasLimit)("");
if (!success) {
assembly {
revert(add(ret, 0x20), mload(ret)) // bubble up revert
}
}
}
}pragma solidity ^0.5.2;
import "./ChildToken.sol";
contract BaseERC20NoSig is ChildToken {
event Deposit(
address indexed token,
address indexed from,
uint256 amount,
uint256 input1,
uint256 output1
);
event Withdraw(
address indexed token,
address indexed from,
uint256 amount,
uint256 input1,
uint256 output1
);
event LogTransfer(
address indexed token,
address indexed from,
address indexed to,
uint256 amount,
uint256 input1,
uint256 input2,
uint256 output1,
uint256 output2
);
constructor() public {}
function transferWithSig(
bytes calldata sig,
uint256 amount,
bytes32 data,
uint256 expiration,
address to
) external returns (address from) {
revert("Disabled feature");
}
function balanceOf(address account) external view returns (uint256);
function _transfer(address sender, address recipient, uint256 amount)
internal;
/// @param from Address from where tokens are withdrawn.
/// @param to Address to where tokens are sent.
/// @param value Number of tokens to transfer.
/// @return Returns success of function call.
function _transferFrom(address from, address to, uint256 value)
internal
returns (bool)
{
uint256 input1 = this.balanceOf(from);
uint256 input2 = this.balanceOf(to);
_transfer(from, to, value);
emit LogTransfer(
token,
from,
to,
value,
input1,
input2,
this.balanceOf(from),
this.balanceOf(to)
);
return true;
}
}pragma solidity ^0.5.2;
import "openzeppelin-solidity/contracts/math/SafeMath.sol";
import "openzeppelin-solidity/contracts/ownership/Ownable.sol";
import "./misc/LibTokenTransferOrder.sol";
contract ChildToken is Ownable, LibTokenTransferOrder {
using SafeMath for uint256;
// ERC721/ERC20 contract token address on root chain
address public token;
address public childChain;
address public parent;
mapping(bytes32 => bool) public disabledHashes;
modifier onlyChildChain() {
require(
msg.sender == childChain,
"Child token: caller is not the child chain contract"
);
_;
}
event LogFeeTransfer(
address indexed token,
address indexed from,
address indexed to,
uint256 amount,
uint256 input1,
uint256 input2,
uint256 output1,
uint256 output2
);
event ChildChainChanged(
address indexed previousAddress,
address indexed newAddress
);
event ParentChanged(
address indexed previousAddress,
address indexed newAddress
);
function deposit(address user, uint256 amountOrTokenId) public;
function withdraw(uint256 amountOrTokenId) public payable;
function ecrecovery(bytes32 hash, bytes memory sig)
public
pure
returns (address result)
{
bytes32 r;
bytes32 s;
uint8 v;
if (sig.length != 65) {
return address(0x0);
}
assembly {
r := mload(add(sig, 32))
s := mload(add(sig, 64))
v := and(mload(add(sig, 65)), 255)
}
// https://github.com/ethereum/go-ethereum/issues/2053
if (v < 27) {
v += 27;
}
if (v != 27 && v != 28) {
return address(0x0);
}
// get address out of hash and signature
result = ecrecover(hash, v, r, s);
// ecrecover returns zero on error
require(result != address(0x0), "Error in ecrecover");
}
// change child chain address
function changeChildChain(address newAddress) public onlyOwner {
require(
newAddress != address(0),
"Child token: new child address is the zero address"
);
emit ChildChainChanged(childChain, newAddress);
childChain = newAddress;
}
// change parent address
function setParent(address newAddress) public onlyOwner {
require(
newAddress != address(0),
"Child token: new parent address is the zero address"
);
emit ParentChanged(parent, newAddress);
parent = newAddress;
}
}pragma solidity ^0.5.2;
/**
* @title SafeMath
* @dev Unsigned math operations with safety checks that revert on error
*/
library SafeMath {
/**
* @dev Multiplies two unsigned integers, reverts on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
/**
* @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
/**
* @dev Adds two unsigned integers, reverts on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
/**
* @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
* reverts when dividing by zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}pragma solidity ^0.5.2;
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor () internal {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @return the address of the owner.
*/
function owner() public view returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner());
_;
}
/**
* @return true if `msg.sender` is the owner of the contract.
*/
function isOwner() public view returns (bool) {
return msg.sender == _owner;
}
/**
* @dev Allows the current owner to relinquish control of the contract.
* It will not be possible to call the functions with the `onlyOwner`
* modifier anymore.
* @notice Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}pragma solidity ^0.5.2;
import {LibEIP712Domain} from "./EIP712.sol";
contract LibTokenTransferOrder is LibEIP712Domain {
string internal constant EIP712_TOKEN_TRANSFER_ORDER_SCHEMA = "TokenTransferOrder(address spender,uint256 tokenIdOrAmount,bytes32 data,uint256 expiration)";
bytes32 public constant EIP712_TOKEN_TRANSFER_ORDER_SCHEMA_HASH = keccak256(
abi.encodePacked(EIP712_TOKEN_TRANSFER_ORDER_SCHEMA)
);
struct TokenTransferOrder {
address spender;
uint256 tokenIdOrAmount;
bytes32 data;
uint256 expiration;
}
function getTokenTransferOrderHash(
address spender,
uint256 tokenIdOrAmount,
bytes32 data,
uint256 expiration
) public view returns (bytes32 orderHash) {
orderHash = hashEIP712Message(
hashTokenTransferOrder(spender, tokenIdOrAmount, data, expiration)
);
}
function hashTokenTransferOrder(
address spender,
uint256 tokenIdOrAmount,
bytes32 data,
uint256 expiration
) internal pure returns (bytes32 result) {
bytes32 schemaHash = EIP712_TOKEN_TRANSFER_ORDER_SCHEMA_HASH;
// Assembly for more efficiently computing:
// return keccak256(abi.encode(
// schemaHash,
// spender,
// tokenIdOrAmount,
// data,
// expiration
// ));
assembly {
// Load free memory pointer
let memPtr := mload(64)
mstore(memPtr, schemaHash) // hash of schema
mstore(
add(memPtr, 32),
and(spender, 0xffffffffffffffffffffffffffffffffffffffff)
) // spender
mstore(add(memPtr, 64), tokenIdOrAmount) // tokenIdOrAmount
mstore(add(memPtr, 96), data) // hash of data
mstore(add(memPtr, 128), expiration) // expiration
// Compute hash
result := keccak256(memPtr, 160)
}
return result;
}
}pragma solidity ^0.5.2;
import {ChainIdMixin} from "../../common/mixin/ChainIdMixin.sol";
contract LibEIP712Domain is ChainIdMixin {
string internal constant EIP712_DOMAIN_SCHEMA = "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)";
bytes32 public constant EIP712_DOMAIN_SCHEMA_HASH = keccak256(
abi.encodePacked(EIP712_DOMAIN_SCHEMA)
);
string internal constant EIP712_DOMAIN_NAME = "Polygon Ecosystem Token";
string internal constant EIP712_DOMAIN_VERSION = "2";
uint256 internal constant EIP712_DOMAIN_CHAINID = CHAINID;
bytes32 public EIP712_DOMAIN_HASH;
constructor() public {
EIP712_DOMAIN_HASH = keccak256(
abi.encode(
EIP712_DOMAIN_SCHEMA_HASH,
keccak256(bytes(EIP712_DOMAIN_NAME)),
keccak256(bytes(EIP712_DOMAIN_VERSION)),
EIP712_DOMAIN_CHAINID,
address(this)
)
);
}
function hashEIP712Message(bytes32 hashStruct)
internal
view
returns (bytes32 result)
{
return _hashEIP712Message(hashStruct, EIP712_DOMAIN_HASH);
}
function hashEIP712MessageWithAddress(bytes32 hashStruct, address add)
internal
view
returns (bytes32 result)
{
bytes32 domainHash = keccak256(
abi.encode(
EIP712_DOMAIN_SCHEMA_HASH,
keccak256(bytes(EIP712_DOMAIN_NAME)),
keccak256(bytes(EIP712_DOMAIN_VERSION)),
EIP712_DOMAIN_CHAINID,
add
)
);
return _hashEIP712Message(hashStruct, domainHash);
}
function _hashEIP712Message(bytes32 hashStruct, bytes32 domainHash)
internal
pure
returns (bytes32 result)
{
assembly {
// Load free memory pointer
let memPtr := mload(64)
mstore(
memPtr,
0x1901000000000000000000000000000000000000000000000000000000000000
) // EIP191 header
mstore(add(memPtr, 2), domainHash) // EIP712 domain hash
mstore(add(memPtr, 34), hashStruct) // Hash of struct
// Compute hash
result := keccak256(memPtr, 66)
}
}
}pragma solidity ^0.5.2;
contract ChainIdMixin {
bytes constant public networkId = hex"3A99";
uint256 constant public CHAINID = 15001;
}{
"remappings": [
"openzeppelin-solidity/=node_modules/openzeppelin-solidity/",
"solidity-rlp/=node_modules/solidity-rlp/",
"@ensdomains/=node_modules/@ensdomains/",
"eth-gas-reporter/=node_modules/eth-gas-reporter/",
"forge-std/=lib/forge-std/src/",
"hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"useLiteralContent": false
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"evmVersion": "istanbul",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"ChildChainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output1","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input2","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output2","type":"uint256"}],"name":"LogFeeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input2","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output2","type":"uint256"}],"name":"LogTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"ParentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"input1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"output1","type":"uint256"}],"name":"Withdraw","type":"event"},{"constant":true,"inputs":[],"name":"CHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_DOMAIN_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_DOMAIN_SCHEMA_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EIP712_TOKEN_TRANSFER_ORDER_SCHEMA_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeChildChain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"childChain","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"disabledHashes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"ecrecovery","outputs":[{"internalType":"address","name":"result","type":"address"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenIdOrAmount","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"getTokenTransferOrderHash","outputs":[{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_childChain","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"networkId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parent","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"setParent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"sig","type":"bytes"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"transferWithSig","outputs":[{"internalType":"address","name":"from","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}]Contract Creation Code
60806040526000600655600060085534801561001a57600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3604051806080016040528060528152602001611686605291396040516020018082805190602001908083835b602083106100af5780518252601f199092019160209182019101610090565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183528085528251928201929092208285018552601783527f506f6c79676f6e2045636f73797374656d20546f6b656e00000000000000000092820192909252835180850185526001808252601960f91b918301919091528451808301939093527fafdc6b3596f2bc7878c706fa55d5aabb82790c51a37e088a158406cea4025910838601527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060840152613a9960808401523060a0808501919091528551808503909101815260c09093019094528151910120909155506114c391508190506101c36000396000f3fe0x6080604052600436106101b75760003560e01c80638da5cb5b116100ec578063b789543c1161008a578063e614d0d611610064578063e614d0d614610695578063ed9ef524146106aa578063f2fde38b146106dd578063fc0c546a14610710576101b7565b8063b789543c14610626578063cc79f97b1461066b578063e306f77914610680576101b7565b806395d89b41116100c657806395d89b41146105a6578063a9059cbb146105bb578063abceeba2146105e7578063acd06cb3146105fc576101b7565b80638da5cb5b146105535780638f32d59b146105685780639025e64c14610591576101b7565b806347e7ef241161015957806370a082311161013357806370a082311461043c578063715018a61461046f578063771282f61461048457806377d32e9414610499576101b7565b806347e7ef24146103b3578063485cc955146103ec57806360f96a8f14610427576101b7565b806319d27d9c1161019557806319d27d9c146102a25780632e1a7d4d14610356578063313ce5671461037357806342fc47fb1461039e576101b7565b806306fdde03146101bc5780631499c5921461024657806318160ddd1461027b575b600080fd5b3480156101c857600080fd5b506101d1610725565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025257600080fd5b506102796004803603602081101561026957600080fd5b50356001600160a01b031661075c565b005b34801561028757600080fd5b5061029061079c565b60408051918252519081900360200190f35b3480156102ae57600080fd5b5061033a600480360360a08110156102c557600080fd5b8101906020810181356401000000008111156102e057600080fd5b8201836020820111156102f257600080fd5b8035906020019184600183028401116401000000008311171561031457600080fd5b9193509150803590602081013590604081013590606001356001600160a01b03166107ac565b604080516001600160a01b039092168252519081900360200190f35b6102796004803603602081101561036c57600080fd5b50356107ee565b34801561037f57600080fd5b506103886108c6565b6040805160ff9092168252519081900360200190f35b3480156103aa57600080fd5b5061033a6108cb565b3480156103bf57600080fd5b50610279600480360360408110156103d657600080fd5b506001600160a01b0381351690602001356108da565b3480156103f857600080fd5b506102796004803603604081101561040f57600080fd5b506001600160a01b03813581169160200135166109a8565b34801561043357600080fd5b5061033a610a21565b34801561044857600080fd5b506102906004803603602081101561045f57600080fd5b50356001600160a01b0316610a30565b34801561047b57600080fd5b50610279610a3d565b34801561049057600080fd5b50610290610a98565b3480156104a557600080fd5b5061033a600480360360408110156104bc57600080fd5b813591908101906040810160208201356401000000008111156104de57600080fd5b8201836020820111156104f057600080fd5b8035906020019184600183028401116401000000008311171561051257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9e945050505050565b34801561055f57600080fd5b5061033a610bc2565b34801561057457600080fd5b5061057d610bd1565b604080519115158252519081900360200190f35b34801561059d57600080fd5b506101d1610be2565b3480156105b257600080fd5b506101d1610c00565b61057d600480360360408110156105d157600080fd5b506001600160a01b038135169060200135610c1d565b3480156105f357600080fd5b50610290610c40565b34801561060857600080fd5b5061057d6004803603602081101561061f57600080fd5b5035610cc9565b34801561063257600080fd5b506102906004803603608081101561064957600080fd5b506001600160a01b038135169060208101359060408101359060600135610cde565b34801561067757600080fd5b50610290610cfd565b34801561068c57600080fd5b50610290610d03565b3480156106a157600080fd5b50610290610d09565b3480156106b657600080fd5b50610279600480360360208110156106cd57600080fd5b50356001600160a01b0316610d53565b3480156106e957600080fd5b506102796004803603602081101561070057600080fd5b50356001600160a01b0316610e05565b34801561071c57600080fd5b5061033a610e22565b60408051808201909152601781527f506f6c79676f6e2045636f73797374656d20546f6b656e000000000000000000602082015290565b6040805162461bcd60e51b815260206004820152601060248201526f44697361626c6564206665617475726560801b604482015290519081900360640190fd5b6b204fce5e3e2502611000000090565b6040805162461bcd60e51b815260206004820152601060248201526f44697361626c6564206665617475726560801b6044820152905160009181900360640190fd5b3360006107fa82610a30565b600654909150610810908463ffffffff610e3116565b600655821580159061082157508234145b610868576040805162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015290519081900360640190fd5b6002546001600160a01b0380841691167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f85846108a487610a30565b60408051938452602084019290925282820152519081900360600190a3505050565b601290565b6003546001600160a01b031681565b6108e2610bd1565b6108eb57600080fd5b60008111801561090357506001600160a01b03821615155b61093e5760405162461bcd60e51b815260040180806020018281038252602381526020018061138d6023913960400191505060405180910390fd5b600061094983610a30565b60065490915061095f908363ffffffff610e4616565b60065561096c8383610e58565b6002546001600160a01b0380851691167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f684846108a488610a30565b60075460ff16156109ea5760405162461bcd60e51b815260040180806020018281038252602381526020018061136a6023913960400191505060405180910390fd5b6007805460ff19166001179055600280546001600160a01b0383166001600160a01b0319909116179055610a1d82610f17565b5050565b6004546001600160a01b031681565b6001600160a01b03163190565b610a45610bd1565b610a4e57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60065481565b6000806000808451604114610ab95760009350505050610bbc565b50505060208201516040830151604184015160ff16601b811015610adb57601b015b8060ff16601b14158015610af357508060ff16601c14155b15610b045760009350505050610bbc565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610b5b573d6000803e3d6000fd5b5050604051601f1901519450506001600160a01b038416610bb8576040805162461bcd60e51b815260206004820152601260248201527122b93937b91034b71032b1b932b1b7bb32b960711b604482015290519081900360640190fd5b5050505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b604051806040016040528060028152602001613a9960f01b81525081565b6040805180820190915260038152621413d360ea1b602082015290565b6000813414610c2e57506000610bbc565b610c39338484610f85565b9392505050565b6040518060800160405280605b8152602001611434605b91396040516020018082805190602001908083835b60208310610c8b5780518252601f199092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020526000908152604090205460ff1681565b6000610cf4610cef868686866111d2565b61128b565b95945050505050565b613a9981565b60015481565b6040518060800160405280605281526020016113b06052913960405160200180828051906020019080838360208310610c8b5780518252601f199092019160209182019101610c6c565b610d5b610bd1565b610d6457600080fd5b6001600160a01b038116610da95760405162461bcd60e51b81526004018080602001828103825260328152602001806114026032913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f1f9f3556dd336016cdf20adaead7d5c73665dba664b60e8c17e9a4eb91ce1d3990600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b610e0d610bd1565b610e1657600080fd5b610e1f81610f17565b50565b6002546001600160a01b031681565b600082821115610e4057600080fd5b50900390565b600082820183811015610c3957600080fd5b60085415610e9a576040805162461bcd60e51b815260206004820152600a6024820152697265656e7472616e637960b01b604482015290519081900360640190fd5b6001600855604051611388906000906060906001600160a01b038616908490869085818181858888f193505050503d8060008114610ef4576040519150601f19603f3d011682016040523d82523d6000602084013e610ef9565b606091505b509150915081610f0b57805160208201fd5b50506000600855505050565b6001600160a01b038116610f2a57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b604080516370a0823160e01b81526001600160a01b03851660048201529051600091829130916370a08231916024808301926020929190829003018186803b158015610fd057600080fd5b505afa158015610fe4573d6000803e3d6000fd5b505050506040513d6020811015610ffa57600080fd5b5051604080516370a0823160e01b81526001600160a01b0387166004820152905191925060009130916370a08231916024808301926020929190829003018186803b15801561104857600080fd5b505afa15801561105c573d6000803e3d6000fd5b505050506040513d602081101561107257600080fd5b50519050611081868686611299565b600254604080516370a0823160e01b81526001600160a01b03898116600483018190529251818a1694909116917fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c49189918891889130916370a0823191602480820192602092909190829003018186803b1580156110fe57600080fd5b505afa158015611112573d6000803e3d6000fd5b505050506040513d602081101561112857600080fd5b5051604080516370a0823160e01b81526001600160a01b038f166004820152905130916370a08231916024808301926020929190829003018186803b15801561117057600080fd5b505afa158015611184573d6000803e3d6000fd5b505050506040513d602081101561119a57600080fd5b50516040805195865260208601949094528484019290925260608401526080830152519081900360a00190a450600195945050505050565b6000806040518060800160405280605b8152602001611434605b91396040516020018082805190602001908083835b602083106112205780518252601f199092019160209182019101611201565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f1901835280855282519282019290922082526001600160a01b039b909b169a81019a909a5250880196909652505050606084019190915260808301525060a0902090565b6000610bbc82600154611347565b6001600160a01b0382163014156112ed576040805162461bcd60e51b8152602060048201526013602482015272063616e27742073656e6420746f204d5243323606c1b604482015290519081900360640190fd5b6112f78282610e58565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60405161190160f01b815260028101919091526022810191909152604290209056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294368696c6420746f6b656e3a206e6577206368696c64206164647265737320697320746865207a65726f2061646472657373546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a723158205f23be7574e70cfc01d0cfd6803b871f92465e9ae4a10fe95ed31ccb810bda3e64736f6c63430005110032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429
Deployed Bytecode
0x6080604052600436106101b75760003560e01c80638da5cb5b116100ec578063b789543c1161008a578063e614d0d611610064578063e614d0d614610695578063ed9ef524146106aa578063f2fde38b146106dd578063fc0c546a14610710576101b7565b8063b789543c14610626578063cc79f97b1461066b578063e306f77914610680576101b7565b806395d89b41116100c657806395d89b41146105a6578063a9059cbb146105bb578063abceeba2146105e7578063acd06cb3146105fc576101b7565b80638da5cb5b146105535780638f32d59b146105685780639025e64c14610591576101b7565b806347e7ef241161015957806370a082311161013357806370a082311461043c578063715018a61461046f578063771282f61461048457806377d32e9414610499576101b7565b806347e7ef24146103b3578063485cc955146103ec57806360f96a8f14610427576101b7565b806319d27d9c1161019557806319d27d9c146102a25780632e1a7d4d14610356578063313ce5671461037357806342fc47fb1461039e576101b7565b806306fdde03146101bc5780631499c5921461024657806318160ddd1461027b575b600080fd5b3480156101c857600080fd5b506101d1610725565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561020b5781810151838201526020016101f3565b50505050905090810190601f1680156102385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025257600080fd5b506102796004803603602081101561026957600080fd5b50356001600160a01b031661075c565b005b34801561028757600080fd5b5061029061079c565b60408051918252519081900360200190f35b3480156102ae57600080fd5b5061033a600480360360a08110156102c557600080fd5b8101906020810181356401000000008111156102e057600080fd5b8201836020820111156102f257600080fd5b8035906020019184600183028401116401000000008311171561031457600080fd5b9193509150803590602081013590604081013590606001356001600160a01b03166107ac565b604080516001600160a01b039092168252519081900360200190f35b6102796004803603602081101561036c57600080fd5b50356107ee565b34801561037f57600080fd5b506103886108c6565b6040805160ff9092168252519081900360200190f35b3480156103aa57600080fd5b5061033a6108cb565b3480156103bf57600080fd5b50610279600480360360408110156103d657600080fd5b506001600160a01b0381351690602001356108da565b3480156103f857600080fd5b506102796004803603604081101561040f57600080fd5b506001600160a01b03813581169160200135166109a8565b34801561043357600080fd5b5061033a610a21565b34801561044857600080fd5b506102906004803603602081101561045f57600080fd5b50356001600160a01b0316610a30565b34801561047b57600080fd5b50610279610a3d565b34801561049057600080fd5b50610290610a98565b3480156104a557600080fd5b5061033a600480360360408110156104bc57600080fd5b813591908101906040810160208201356401000000008111156104de57600080fd5b8201836020820111156104f057600080fd5b8035906020019184600183028401116401000000008311171561051257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a9e945050505050565b34801561055f57600080fd5b5061033a610bc2565b34801561057457600080fd5b5061057d610bd1565b604080519115158252519081900360200190f35b34801561059d57600080fd5b506101d1610be2565b3480156105b257600080fd5b506101d1610c00565b61057d600480360360408110156105d157600080fd5b506001600160a01b038135169060200135610c1d565b3480156105f357600080fd5b50610290610c40565b34801561060857600080fd5b5061057d6004803603602081101561061f57600080fd5b5035610cc9565b34801561063257600080fd5b506102906004803603608081101561064957600080fd5b506001600160a01b038135169060208101359060408101359060600135610cde565b34801561067757600080fd5b50610290610cfd565b34801561068c57600080fd5b50610290610d03565b3480156106a157600080fd5b50610290610d09565b3480156106b657600080fd5b50610279600480360360208110156106cd57600080fd5b50356001600160a01b0316610d53565b3480156106e957600080fd5b506102796004803603602081101561070057600080fd5b50356001600160a01b0316610e05565b34801561071c57600080fd5b5061033a610e22565b60408051808201909152601781527f506f6c79676f6e2045636f73797374656d20546f6b656e000000000000000000602082015290565b6040805162461bcd60e51b815260206004820152601060248201526f44697361626c6564206665617475726560801b604482015290519081900360640190fd5b6b204fce5e3e2502611000000090565b6040805162461bcd60e51b815260206004820152601060248201526f44697361626c6564206665617475726560801b6044820152905160009181900360640190fd5b3360006107fa82610a30565b600654909150610810908463ffffffff610e3116565b600655821580159061082157508234145b610868576040805162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08185b5bdd5b9d606a1b604482015290519081900360640190fd5b6002546001600160a01b0380841691167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f85846108a487610a30565b60408051938452602084019290925282820152519081900360600190a3505050565b601290565b6003546001600160a01b031681565b6108e2610bd1565b6108eb57600080fd5b60008111801561090357506001600160a01b03821615155b61093e5760405162461bcd60e51b815260040180806020018281038252602381526020018061138d6023913960400191505060405180910390fd5b600061094983610a30565b60065490915061095f908363ffffffff610e4616565b60065561096c8383610e58565b6002546001600160a01b0380851691167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f684846108a488610a30565b60075460ff16156109ea5760405162461bcd60e51b815260040180806020018281038252602381526020018061136a6023913960400191505060405180910390fd5b6007805460ff19166001179055600280546001600160a01b0383166001600160a01b0319909116179055610a1d82610f17565b5050565b6004546001600160a01b031681565b6001600160a01b03163190565b610a45610bd1565b610a4e57600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60065481565b6000806000808451604114610ab95760009350505050610bbc565b50505060208201516040830151604184015160ff16601b811015610adb57601b015b8060ff16601b14158015610af357508060ff16601c14155b15610b045760009350505050610bbc565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015610b5b573d6000803e3d6000fd5b5050604051601f1901519450506001600160a01b038416610bb8576040805162461bcd60e51b815260206004820152601260248201527122b93937b91034b71032b1b932b1b7bb32b960711b604482015290519081900360640190fd5b5050505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b604051806040016040528060028152602001613a9960f01b81525081565b6040805180820190915260038152621413d360ea1b602082015290565b6000813414610c2e57506000610bbc565b610c39338484610f85565b9392505050565b6040518060800160405280605b8152602001611434605b91396040516020018082805190602001908083835b60208310610c8b5780518252601f199092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020526000908152604090205460ff1681565b6000610cf4610cef868686866111d2565b61128b565b95945050505050565b613a9981565b60015481565b6040518060800160405280605281526020016113b06052913960405160200180828051906020019080838360208310610c8b5780518252601f199092019160209182019101610c6c565b610d5b610bd1565b610d6457600080fd5b6001600160a01b038116610da95760405162461bcd60e51b81526004018080602001828103825260328152602001806114026032913960400191505060405180910390fd5b6003546040516001600160a01b038084169216907f1f9f3556dd336016cdf20adaead7d5c73665dba664b60e8c17e9a4eb91ce1d3990600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b610e0d610bd1565b610e1657600080fd5b610e1f81610f17565b50565b6002546001600160a01b031681565b600082821115610e4057600080fd5b50900390565b600082820183811015610c3957600080fd5b60085415610e9a576040805162461bcd60e51b815260206004820152600a6024820152697265656e7472616e637960b01b604482015290519081900360640190fd5b6001600855604051611388906000906060906001600160a01b038616908490869085818181858888f193505050503d8060008114610ef4576040519150601f19603f3d011682016040523d82523d6000602084013e610ef9565b606091505b509150915081610f0b57805160208201fd5b50506000600855505050565b6001600160a01b038116610f2a57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b604080516370a0823160e01b81526001600160a01b03851660048201529051600091829130916370a08231916024808301926020929190829003018186803b158015610fd057600080fd5b505afa158015610fe4573d6000803e3d6000fd5b505050506040513d6020811015610ffa57600080fd5b5051604080516370a0823160e01b81526001600160a01b0387166004820152905191925060009130916370a08231916024808301926020929190829003018186803b15801561104857600080fd5b505afa15801561105c573d6000803e3d6000fd5b505050506040513d602081101561107257600080fd5b50519050611081868686611299565b600254604080516370a0823160e01b81526001600160a01b03898116600483018190529251818a1694909116917fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c49189918891889130916370a0823191602480820192602092909190829003018186803b1580156110fe57600080fd5b505afa158015611112573d6000803e3d6000fd5b505050506040513d602081101561112857600080fd5b5051604080516370a0823160e01b81526001600160a01b038f166004820152905130916370a08231916024808301926020929190829003018186803b15801561117057600080fd5b505afa158015611184573d6000803e3d6000fd5b505050506040513d602081101561119a57600080fd5b50516040805195865260208601949094528484019290925260608401526080830152519081900360a00190a450600195945050505050565b6000806040518060800160405280605b8152602001611434605b91396040516020018082805190602001908083835b602083106112205780518252601f199092019160209182019101611201565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f1901835280855282519282019290922082526001600160a01b039b909b169a81019a909a5250880196909652505050606084019190915260808301525060a0902090565b6000610bbc82600154611347565b6001600160a01b0382163014156112ed576040805162461bcd60e51b8152602060048201526013602482015272063616e27742073656e6420746f204d5243323606c1b604482015290519081900360640190fd5b6112f78282610e58565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60405161190160f01b815260028101919091526022810191909152604290209056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294368696c6420746f6b656e3a206e6577206368696c64206164647265737320697320746865207a65726f2061646472657373546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a723158205f23be7574e70cfc01d0cfd6803b871f92465e9ae4a10fe95ed31ccb810bda3e64736f6c63430005110032
Deployed Bytecode Sourcemap
330:3982:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2180:101:2;;;:::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;2180:101:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1009:78:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1009:78:2;-1:-1:-1;;;;;1009:78:2;;:::i;:::-;;2462:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:112:2;;;:::i;:::-;;;;;;;;;;;;;;;;688:228:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;688:228:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;688:228:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;688:228:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;688:228: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;688:228:0;;-1:-1:-1;688:228:0;-1:-1:-1;688:228:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;688:228:0;;:::i;:::-;;;;-1:-1:-1;;;;;688:228:0;;;;;;;;;;;;;;1733:441:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1733:441:2;;:::i;2376:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2376:80:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;370:25:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:25:1;;;:::i;1093:634:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1093:634:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1093:634:2;;;;;;;;:::i;765:238::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;765:238:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;765:238:2;;;;;;;;;;:::i;401:21:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:21:1;;;:::i;2580:105:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2580:105:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2580:105:2;-1:-1:-1;;;;;2580:105:2;;:::i;1423:137:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1423:137:7;;;:::i;447:32:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;447:32:2;;;:::i;1262:795:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:795:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1262:795:1;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1262:795:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1262:795:1;;;;;;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;1262:795:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1262:795:1;;-1:-1:-1;1262:795:1;;-1:-1:-1;;;;;1262:795:1:i;659:77:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:77:7;;;:::i;979:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;979:90:7;;;:::i;:::-;;;;;;;;;;;;;;;;;;51:43:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:43:5;;;:::i;2287:83:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2287:83:2;;;:::i;2931:205::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2931:205:2;;;;;;;;:::i;289:143:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:143:4;;;:::i;429:46:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;429:46:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;429:46:1;;:::i;586:325:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;586:325:4;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;586:325:4;;;;;;;;;;;;;;;;;;:::i;98:39:5:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:39:5;;;:::i;598:33:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;598:33:3;;;:::i;277:115::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:115:3;;;:::i;2097:290:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2097:290:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2097:290:1;-1:-1:-1;;;;;2097:290:1;;:::i;1731:107:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1731:107:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1731:107:7;-1:-1:-1;;;;;1731:107:7;;:::i;344:20:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:20:1;;;:::i;2180:101:2:-;2242:32;;;;;;;;;;;;;;;;;2180:101;:::o;1009:78::-;1054:26;;;-1:-1:-1;;;1054:26:2;;;;;;;;;;;;-1:-1:-1;;;1054:26:2;;;;;;;;;;;;;;2462:112;2532:35;2462:112;:::o;688:228:0:-;883:26;;;-1:-1:-1;;;883:26:0;;;;;;;;;;;;-1:-1:-1;;;883:26:0;;;;;;859:12;;883:26;;;;;;;1733:441:2;1807:10;1792:12;1868:15;1807:10;1868:9;:15::i;:::-;1910:13;;1852:31;;-1:-1:-1;1910:25:2;;1928:6;1910:25;:17;:25;:::i;:::-;1894:13;:41;1994:10;;;;;:33;;;2021:6;2008:9;:19;1994:33;1973:99;;;;;-1:-1:-1;;;1973:99:2;;;;;;;;;;;;-1:-1:-1;;;1973:99:2;;;;;;;;;;;;;;;2123:5;;-1:-1:-1;;;;;2114:53:2;;;;2123:5;2114:53;2136:6;2144:5;2151:15;2130:4;2151:9;:15::i;:::-;2114:53;;;;;;;;;;;;;;;;;;;;;;;;;;1733:441;;;:::o;2376:80::-;519:2;2376:80;:::o;370:25:1:-;;;-1:-1:-1;;;;;370:25:1;;:::o;1093:634:2:-;863:9:7;:7;:9::i;:::-;855:18;;;;;;1234:1:2;1225:6;:10;:34;;;;-1:-1:-1;;;;;;1239:20:2;;;;1225:34;1204:116;;;;-1:-1:-1;;;1204:116:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1356:14;1373:15;1383:4;1373:9;:15::i;:::-;1414:13;;1356:32;;-1:-1:-1;1414:25:2;;1432:6;1414:25;:17;:25;:::i;:::-;1398:13;:41;1596:29;1612:4;1618:6;1596:15;:29::i;:::-;1675:5;;-1:-1:-1;;;;;1667:53:2;;;;1675:5;1667:53;1688:6;1696;1704:15;1682:4;1704:9;:15::i;765:238::-;848:13;;;;847:14;839:62;;;;-1:-1:-1;;;839:62:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:13;:20;;-1:-1:-1;;911:20:2;927:4;911:20;;;941:5;:14;;-1:-1:-1;;;;;941:14:2;;-1:-1:-1;;;;;;941:14:2;;;;;;965:31;984:11;965:18;:31::i;:::-;765:238;;:::o;401:21:1:-;;;-1:-1:-1;;;;;401:21:1;;:::o;2580:105:2:-;-1:-1:-1;;;;;2663:15:2;;;2580:105::o;1423:137:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1521:1;1505:6;;1484:40;;-1:-1:-1;;;;;1505:6:7;;;;1484:40;;1521:1;;1484:40;1551:1;1534:19;;-1:-1:-1;;;;;;1534:19:7;;;1423:137::o;447:32:2:-;;;;:::o;1262:795:1:-;1359:14;1389:9;1408;1427:7;1448:3;:10;1462:2;1448:16;1444:66;;1495:3;1480:19;;;;;;;1444:66;-1:-1:-1;;;1562:2:1;1553:12;;1547:19;1599:2;1590:12;;1584:19;1640:2;1631:12;;1625:19;1646:3;1621:29;1740:2;1736:6;;1732:44;;;1763:2;1758:7;1732:44;1789:1;:7;;1794:2;1789:7;;:18;;;;;1800:1;:7;;1805:2;1800:7;;1789:18;1785:68;;;1838:3;1823:19;;;;;;;1785:68;1920:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1920:24:1;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1920:24:1;;-1:-1:-1;;1920:24:1;;;-1:-1:-1;;;;;;;2005:22:1;;1997:53;;;;;-1:-1:-1;;;1997:53:1;;;;;;;;;;;;-1:-1:-1;;;1997:53:1;;;;;;;;;;;;;;;1262:795;;;;;;;;:::o;659:77:7:-;697:7;723:6;-1:-1:-1;;;;;723:6:7;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:7;1042:10;:20;;979:90::o;51:43:5:-;;;;;;;;;;;;;;-1:-1:-1;;;51:43:5;;;;:::o;2287:83:2:-;2351:12;;;;;;;;;;;;-1:-1:-1;;;2351:12:2;;;;2287:83;:::o;2931:205::-;3000:4;3033:5;3020:9;:18;3016:61;;-1:-1:-1;3061:5:2;3054:12;;3016:61;3093:36;3107:10;3119:2;3123:5;3093:13;:36::i;:::-;3086:43;2931:205;-1:-1:-1;;;2931:205:2:o;289:143:4:-;391:34;;;;;;;;;;;;;;;;;374:52;;;;;;;;;;;;;;;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;;;374:52:4;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;374:52:4;;;355:77;;;;;;289:143;:::o;429:46:1:-;;;;;; ;;;;;;;;;:::o;586:325:4:-;756:17;797:107;828:66;851:7;860:15;877:4;883:10;828:22;:66::i;:::-;797:17;:107::i;:::-;785:119;586:325;-1:-1:-1;;;;;586:325:4:o;98:39:5:-;132:5;98:39;:::o;598:33:3:-;;;;:::o;277:115::-;365:20;;;;;;;;;;;;;;;;;348:38;;;;;;;;;;;;;;;66:2:-1;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2097:290:1;863:9:7;:7;:9::i;:::-;855:18;;;;;;-1:-1:-1;;;;;2191:24:1;;2170:121;;;;-1:-1:-1;;;2170:121:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:10;;2306:41;;-1:-1:-1;;;;;2306:41:1;;;;2324:10;;2306:41;;2324:10;;2306:41;2357:10;:23;;-1:-1:-1;;;;;;2357:23:1;-1:-1:-1;;;;;2357:23:1;;;;;;;;;;2097:290::o;1731:107:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1803:28;1822:8;1803:18;:28::i;:::-;1731:107;:::o;344:20:1:-;;;-1:-1:-1;;;;;344:20:1;;:::o;1211:145:6:-;1269:7;1301:1;1296;:6;;1288:15;;;;;;-1:-1:-1;1325:5:6;;;1211:145::o;1439:::-;1497:7;1528:5;;;1551:6;;;;1543:15;;;;;3953:357:2;646:6;;:11;638:34;;;;;-1:-1:-1;;;638:34:2;;;;;;;;;;;;-1:-1:-1;;;638:34:2;;;;;;;;;;;;;;;691:1;682:6;:10;4114:47;;4065:4;;4044:18;;4094:16;;-1:-1:-1;;;;;4114:13:2;;;4065:4;;4134:6;;4044:18;4114:47;4044:18;4114:47;4134:6;4114:13;4065:4;4114:47;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4079:82:2;;;;4176:7;4171:133;;4255:3;4249:10;4242:4;4237:3;4233:14;4226:34;4208:86;-1:-1:-1;;722:1:2;713:6;:10;-1:-1:-1;;;3953:357:2:o;1982:183:7:-;-1:-1:-1;;;;;2055:22:7;;2047:31;;;;;;2114:6;;;2093:38;;-1:-1:-1;;;;;2093:38:7;;;;2114:6;;;2093:38;;;2141:6;:17;;-1:-1:-1;;;;;;2141:17:7;-1:-1:-1;;;;;2141:17:7;;;;;;;;;;1982:183::o;1302:478:0:-;1437:20;;;-1:-1:-1;;;1437:20:0;;-1:-1:-1;;;;;1437:20:0;;;;;;;;1400:4;;;;1437;;:14;;:20;;;;;;;;;;;;;;:4;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;1437:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1437:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1437:20:0;1484:18;;;-1:-1:-1;;;1484:18:0;;-1:-1:-1;;;;;1484:18:0;;;;;;;;1437:20;;-1:-1:-1;1467:14:0;;1484:4;;:14;;:18;;;;;1437:20;;1484:18;;;;;;;:4;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;1484:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1484:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1484:18:0;;-1:-1:-1;1512:26:0;1522:4;1528:2;1532:5;1512:9;:26::i;:::-;1578:5;;1690:20;;;-1:-1:-1;;;1690:20:0;;-1:-1:-1;;;;;1553:199:0;;;1690:20;;;;;;;;1553:199;;;;1578:5;;;;1553:199;;1631:5;;1650:6;;1670;;1690:4;;:14;;:20;;;;;;;;;;;;;;;:4;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;1690:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1690:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1690:20:0;1724:18;;;-1:-1:-1;;;1724:18:0;;-1:-1:-1;;;;;1724:18:0;;;;;;;;:4;;:14;;:18;;;;;1690:20;;1724:18;;;;;;;:4;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;1724:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1724:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1724:18:0;1553:199;;;;;;1724:18;1553:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1769:4:0;;1302:478;-1:-1:-1;;;;;1302:478:0:o;917:1095:4:-;1086:14;1112:18;391:34;;;;;;;;;;;;;;;;;374:52;;;;;;;;;;;;;;;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;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;374:52:4;;;;;;;26:21:-1;;;-1:-1;;22:32;6:49;;374:52:4;;;355:77;;;;;;;;;1511:26;;-1:-1:-1;;;;;1625:56:4;;;;1592:15;;;1568:127;;;;-1:-1:-1;1726:15:4;;1719:40;;;;-1:-1:-1;;;1810:2:4;1798:15;;1791:29;;;;1868:3;1856:16;;1849:36;-1:-1:-1;1969:3:4;1951:22;;;917:1095::o;984:188:3:-;1078:14;1115:50;1134:10;1146:18;;1115;:50::i;3364:260:2:-;-1:-1:-1;;;;;3473:26:2;;3494:4;3473:26;;3465:58;;;;;-1:-1:-1;;;3465:58:2;;;;;;;;;;;;-1:-1:-1;;;3465:58:2;;;;;;;;;;;;;;;3533:34;3549:9;3560:6;3533:15;:34::i;:::-;3599:9;-1:-1:-1;;;;;3582:35:2;3591:6;-1:-1:-1;;;;;3582:35:2;;3610:6;3582:35;;;;;;;;;;;;;;;;;;3364:260;;;:::o;1690:614:3:-;1918:2;1912:9;-1:-1:-1;;;1935:128:3;;2112:1;2100:14;;2093:34;;;;2181:2;2169:15;;2162:35;;;;2285:2;2267:21;;;1844:454::o
Swarm Source
bzzr://5f23be7574e70cfc01d0cfd6803b871f92465e9ae4a10fe95ed31ccb810bda3e
Loading...
Loading
Loading...
Loading
OVERVIEW
Polygon is a protocol and a framework for building and connecting Ethereum-compatible blockchain networks. Aggregating scalable solutions on Ethereum supporting a multi-chain Ethereum ecosystem.Loading...
Loading
Net Worth in USD
$4,284,245,001.51
Net Worth in POL
Token Allocations
BTTC
82.43%
POL
17.57%
ETH
0.00%
Others
0.00%
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BTTC | 82.43% | 9,971,906,557,775,900 | $3,531,621,137.29 | ||
| BTTC | $618.66 | 0.321 | $198.59 | ||
| BTTC | $0.280303 | 100 | $28.03 | ||
| POL | 17.57% | $0.104822 | 7,179,718,378.7832 | $752,590,559.07 | |
| POL | $0.998295 | 6,566.1526 | $6,554.96 | ||
| POL | $1 | 3,290.299 | $3,290.3 | ||
| POL | $1 | 763.1528 | $763.15 | ||
| POL | $1,998.07 | 0.242 | $483.53 | ||
| POL | $0.011348 | 10,200 | $115.75 | ||
| POL | $0.004571 | 8,000 | $36.57 | ||
| POL | $0.000004 | 7,266,900 | $29.87 | ||
| POL | $0.042616 | 494 | $21.05 | ||
| POL | $0.000229 | 70,000 | $16.06 | ||
| POL | $0.10511 | 54.5954 | $5.74 | ||
| POL | $0.000001 | 4,400,000 | $4.25 | ||
| POL | $0.087734 | 40 | $3.51 | ||
| POL | $123.94 | 0.0239 | $2.97 | ||
| POL | $11.42 | 0.21 | $2.4 | ||
| POL | $0.028413 | 83.9053 | $2.38 | ||
| POL | $17.16 | 0.1277 | $2.19 | ||
| POL | $1 | 1.2102 | $1.21 | ||
| POL | $0.000024 | 47,405 | $1.11 | ||
| POL | $0.007375 | 101 | $0.7448 | ||
| POL | $0.514996 | 1 | $0.5149 | ||
| POL | $0.000007 | 69,568.6893 | $0.4563 | ||
| POL | $76,114 | 0.00000307 | $0.2336 | ||
| POL | $0.105031 | 1.5477 | $0.1625 | ||
| ETH | $2,001.86 | 9.7859 | $19,589.99 | ||
| ETH | $0.104904 | 3,122.9212 | $327.61 | ||
| ETH | $1 | 180.1172 | $180.12 | ||
| ETH | $0.021311 | 8,160.0868 | $173.9 | ||
| ETH | $0.999689 | 104.0646 | $104.03 | ||
| ETH | $8.4 | 0.1908 | $1.6 | ||
| ETH | $0.000016 | 45,864.5105 | $0.7465 | ||
| BSC | $619.17 | 1.3503 | $836.09 | ||
| BSC | $0.999961 | 163.6778 | $163.67 | ||
| BSC | $1,998.07 | 0.0695 | $138.92 | ||
| BSC | $0.999679 | 103.0982 | $103.07 | ||
| BSC | 5,138,695,382.0245 | $30.17 | |||
| BSC | $1 | 8.001 | $8 | ||
| BSC | $1.52 | 4.987 | $7.58 | ||
| BSC | 16,354,239.0005 | $5.8 | |||
| BSC | $0.001769 | 235.1884 | $0.416 | ||
| BSC | $0.000332 | 1,222.4949 | $0.4055 | ||
| BSC | $0.002696 | 100 | $0.2696 | ||
| BSC | $54.76 | 0.00224 | $0.1226 | ||
| WORLD | $0.40716 | 81.435 | $33.16 | ||
| WORLD | $1 | 5.9745 | $5.97 | ||
| BASE | $2,001.82 | 0.0091002 | $18.22 | ||
| BASE | $0.019895 | 160 | $3.18 | ||
| ARB | $1 | 2.2984 | $2.3 | ||
| ARB | $2,001.17 | 0.001 | $2 | ||
| ARB | $1 | 0.4887 | $0.4887 | ||
| LINEA | $2,001.86 | 0.00069901 | $1.4 | ||
| OP | $0.406197 | 0.4212 | $0.171 | ||
| AVAX | $9.32 | 0.00150933 | $0.014069 | ||
| GNO | $1 | 0.005 | $0.005 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.
${zeroWidthWarningMessage} Check the actual text at ENS.
`;
}
const ensOnL2NoteHtml = ensOnL2Note != "" ? `Additional Info
Full Name:
${ensNameForkIconSrc}
Note:
- Name tag is displayed due to forward and reverse resolution. Find out more.
- A Domain Name is not necessarily held by a person popularly associated with the name. ${ensOnL2NoteHtml}
Other names resolving to this address:
${listOtherENSNames}
${moreOtherENSNames}
`;
return result;
}
function removeSpecificDomain(url, domain) {
return url.replace(new RegExp(domain + '$'), '');
}
// ===== UD name tag
const displayUDName = '';
const primaryUDName = '';
const showUDPublicNote = 'false';
let otherUDNamesHtml = "";
function initUDNamePopOver() {
//required to allow bootstrap popover to support table
$.fn.popover.Constructor.Default.allowList.table = [];
$.fn.popover.Constructor.Default.allowList.tr = [];
$.fn.popover.Constructor.Default.allowList.td = [];
$.fn.popover.Constructor.Default.allowList.th = [];
$.fn.popover.Constructor.Default.allowList.div = [];
$.fn.popover.Constructor.Default.allowList.tbody = [];
$.fn.popover.Constructor.Default.allowList.thead = [];
//allowList my inline styling for bootstrap
$.fn.popover.Constructor.Default.allowList['*'].push('style')
let unicodeWarningHtml = "";
if ($("#hdnIsUDContainUnicodeChars").val() == "true") {
unicodeWarningHtml =
`
${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
`;
}
let zeroWidthWarningHtml = "";
if ($("#hdnIsUDContainZeroWidthChars").val() == "true") {
zeroWidthWarningHtml =
`
${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
`;
}
const contentHtml =
`Additional Info
Full Name:
Note:
- Name tag is displayed due to forward and reverse resolution. Find out more
- A Domain Name is not necessarily held by a person popularly associated with the name.
Other names resolving to this address:
${listOtherUDNames}
${moreOtherUDNames}
`;
return result;
}
// ===== end UD name tag
const tooltipForTokenHolding = 'More than 201 tokens found, listing and displaying the total balance of the first 100 tokens only. Click on the Coins icon to see the full list and balance.';
var adjustPosition = 0;
$(document).ready(function () {
switchAmountToValue(document.getElementById("headerAmountValue"), 'Value (USD)', 'Amount', true);
switchAmountToValue(document.getElementById("headerIntAmountValue"), 'Value (USD)', 'Amount', true);
switchMethodColumn(document.getElementById("headerMethod"), 'Method', 'Action', true);
onDocumentReady();
$("[rel='tooltip']").tooltip();
$("[data-bs-toggle-second='tooltip']").tooltip({ trigger: 'hover' });
$("[rel='tooltipEns']").each(function () {
$(this).tooltip({ title: $(this).attr("tooltip-title") });
});
if (hash != '') {
activaTab(hash);
};
onAddressDocReady();
// Note: this is causing "Copied" tooltip not showing when copy button is clicked in V3, and seems like not applicable to v3, comment out first in case there is issue
//$('[data-bs-toggle="tooltip"]').click(function () {
// $('[data-bs-toggle="tooltip"]').tooltip("hide");
//});
document.getElementById("copyaddressbutton").classList.remove("disabled");
if ($("#txtSearchContract").length) {
initialiseKeyupOnDocReady();
}
if (!!$('#ensName')[0]) {
initEnsNamePopOver();
}
if (!!$("#udName")[0]) {
initUDNamePopOver();
}
handleToggle();
if (window.matchMedia("(max-width: 767px)").matches) {
// Mobile
adjustPosition = 90;
} else {
// Others
adjustPosition = 50;
}
if (tooltipForTokenHolding) {
const dropdownMenuBalance = document.getElementById("dropdownMenuBalance");
if (dropdownMenuBalance) {
const dropdownWrapper = dropdownMenuBalance.closest(".dropdown");
if (dropdownWrapper) {
dropdownWrapper.setAttribute("title", tooltipForTokenHolding);
new bootstrap.Tooltip(dropdownWrapper);
}
}
}
});
function displayAudit() {
$('html, body').animate({
scrollTop: $("#auditReportId").offset().top - adjustPosition
});
}
var cThemeMode = getCookie('displaymode');
function handleToggle() {
var className = document.getElementsByClassName('editor');
var classNameCount = className.length;
for (var j = 0; j t.innerWidth()) {
if (mb + d > tb) {
t.css('padding-bottom', ((mb + d) - tb));
}
}
else {
t.css('overflow', 'visible');
}
}).on('hidden.bs.dropdown', function () {
$(this).css({ 'padding-bottom': '', 'overflow': '' });
});
var btn_ERC20_sort = {
count: 0,
reminder_count: 2,
list: [],
default_list: [],
ERC20_sort_start: function (count) {
if (document.getElementsByClassName('list-custom-divider-ERC20')[0]) {
var self = this
if (count != undefined) {
self.count = count
}
var before_el = document.getElementsByClassName('list-custom-divider-ERC20')[0]
var parent_el = before_el.parentNode
var element_selector = parent_el.querySelectorAll(".list-custom-ERC20");
if (self.list.length == 0) {
element_selector.forEach(function (e) {
self.list.push(e);
self.default_list.push(e);
});
}
$(".list-custom-ERC20").remove()
var type = self.count % self.reminder_count
self.sortList(type, parent_el, before_el);
self.count++
}
},
sortList: function (type, parent_el, before_el) {
var self = this
var sorted_list = []
var icon_el = $(before_el).find('button').find('i')
switch (type) {
case 1:
icon_el.attr("class", "fad fa-sort-up")
sorted_list = self.sortUsdAsc()
break;
default:
icon_el.attr("class", "fad fa-sort-down")
sorted_list = self.sortUsdDesc()
}
for (var i = sorted_list.length - 1; i >= 0; i--) {
before_el.insertAdjacentElement('afterend', sorted_list[i])
}
},
sortUsdAsc: function () {
var self = this
var sort_list = self.list
sort_list.sort(function (a, b) {
var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1);
var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1);
if (target_a_value == -1 || target_b_value == -1) {
return 1;
}
if (target_a_value target_b_value) {
return 1;
}
return 0
});
return sort_list
},
sortUsdDesc: function () {
var self = this
var sort_list = self.list
sort_list.sort(function (a, b) {
var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1);
var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1);
if (target_a_value target_b_value) {
return -1;
}
return 0
});
return sort_list
},
formatCurrencyToNumber: function (strCurrency) {
if (typeof strCurrency == "number")
return strCurrency
else
return Number(strCurrency.replace(/[^0-9.-]+/g, ""));
},
}
function hrefTokenHolding() {
var location = "/tokenholdings?a=0x0000000000000000000000000000000000001010"
var queryString = $("input.form-control.form-control-xs.search.mb-3")[0].value
if (queryString) {
location += "&q=" + queryString
}
window.location.href = location
}
$(document).ready(function () {
$("#btn_ERC20_sort").on("click", function (event) {
event.preventDefault();
setTimeout(function () {
btn_ERC20_sort.ERC20_sort_start()
}, 10)
})
btn_ERC20_sort.ERC20_sort_start()
var mainAddress = $("#hdnAddress").val();
// user search for method filters
var searchFuncTimeOut;
$("#ContentPlaceHolder1_inputMethodName").on("keyup", function ($event) {
if (searchFuncTimeOut) {
clearTimeout(searchFuncTimeOut)
}
var searchTerm = $(this).val();
searchFuncTimeOut = setTimeout(function () {
searchFunctions(searchTerm);
}, 350);
});
var isSearchFunctions = false;
$("#dropdownMethod").on("click", function (e) {
if (isSearchFunctions === false) {
searchFunctions('');
isSearchFunctions = true;
}
});
const litDefaultMethodFilterHtml = '';
function searchFunctions(searchTerm) {
if (searchTerm === '' || searchTerm.length > 3) {
const curPath = encodeURIComponent(window.location.search);
$.ajax({
type: 'Get',
url: `/functionSearchHandler.ashx?ca=${mainAddress}&func=${searchTerm ?? ''}&curPath=${curPath}`,
success: function (response) {
$("#searchFunctionResult").html('');
if (response && response.length > 0) {
for (var i = 0; i
${response[i].name}
${response[i].methodId}
`
);
}
$("[data-bs-toggle='tooltip']").tooltip();
}
else {
$("#searchFunctionResult").append(
`