Latest 25 from a total of 52,683 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Relayer Re... | 44137722 | 454 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44128742 | 454 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44126502 | 454 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44124302 | 454 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44121382 | 454 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44115861 | 455 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44096361 | 455 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44068300 | 456 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 44030980 | 457 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43984860 | 459 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43950282 | 460 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43921882 | 461 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43872104 | 463 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43795249 | 466 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43715994 | 468 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43574351 | 473 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43479552 | 477 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43342233 | 481 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43233182 | 485 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43136148 | 489 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 43026492 | 492 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 42911289 | 496 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 42799114 | 500 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 42688697 | 504 days ago | IN | 0 BNB | 0.00003639 | ||||
| Claim Relayer Re... | 42607459 | 507 days ago | IN | 0 BNB | 0.00003639 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 44139192 | 454 days ago | 0.001 BNB | ||||
| 44139192 | 454 days ago | 0.004 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139192 | 454 days ago | 0.011 BNB | ||||
| 44139185 | 454 days ago | 0.001 BNB | ||||
| 44139185 | 454 days ago | 0.004 BNB | ||||
| 44139181 | 454 days ago | 0.001 BNB | ||||
| 44139181 | 454 days ago | 0.004 BNB | ||||
| 44139177 | 454 days ago | 0.001 BNB | ||||
| 44139177 | 454 days ago | 0.004 BNB | ||||
| 44139159 | 454 days ago | 0.001 BNB | ||||
| 44139159 | 454 days ago | 0.004 BNB | ||||
| 44139156 | 454 days ago | 0.001 BNB | ||||
| 44139156 | 454 days ago | 0.004 BNB | ||||
| 44139144 | 454 days ago | 0.001 BNB |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
RelayerIncentivize
Compiler Version
v0.6.4+commit.1dca32f3
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2021-03-01
*/
pragma solidity 0.6.4;
interface IRelayerIncentivize {
function addReward(
address payable headerRelayerAddr,
address payable packageRelayer,
uint256 amount,
bool fromSystemReward
) external returns (bool);
}
interface ISystemReward {
function claimRewards(address payable to, uint256 amount) external returns (uint256 actualAmount);
}
interface IRelayerHub {
function isRelayer(address sender) external view returns (bool);
}
interface ILightClient {
function isHeaderSynced(uint64 height) external view returns (bool);
function getAppHash(uint64 height) external view returns (bytes32);
function getSubmitter(uint64 height) external view returns (address payable);
}
contract System {
bool public alreadyInit;
uint32 public constant CODE_OK = 0;
uint16 public constant bscChainID = 0x0038;
address public constant VALIDATOR_CONTRACT_ADDR = 0x0000000000000000000000000000000000001000;
address public constant SLASH_CONTRACT_ADDR = 0x0000000000000000000000000000000000001001;
address public constant SYSTEM_REWARD_ADDR = 0x0000000000000000000000000000000000001002;
address public constant LIGHT_CLIENT_ADDR = 0x0000000000000000000000000000000000001003;
address public constant TOKEN_HUB_ADDR = 0x0000000000000000000000000000000000001004;
address public constant INCENTIVIZE_ADDR = 0x0000000000000000000000000000000000001005;
address public constant RELAYERHUB_CONTRACT_ADDR = 0x0000000000000000000000000000000000001006;
address public constant GOV_HUB_ADDR = 0x0000000000000000000000000000000000001007;
address public constant TOKEN_MANAGER_ADDR = 0x0000000000000000000000000000000000001008;
address public constant CROSS_CHAIN_CONTRACT_ADDR = 0x0000000000000000000000000000000000002000;
address public constant STAKING_CONTRACT_ADDR = 0x0000000000000000000000000000000000002001;
address public constant STAKE_HUB_ADDR = 0x0000000000000000000000000000000000002002;
address public constant STAKE_CREDIT_ADDR = 0x0000000000000000000000000000000000002003;
address public constant GOVERNOR_ADDR = 0x0000000000000000000000000000000000002004;
address public constant GOV_TOKEN_ADDR = 0x0000000000000000000000000000000000002005;
address public constant TIMELOCK_ADDR = 0x0000000000000000000000000000000000002006;
address public constant TOKEN_RECOVER_PORTAL_ADDR = 0x0000000000000000000000000000000000003000;
modifier onlyCoinbase() {
require(msg.sender == block.coinbase, "the message sender must be the block producer");
_;
}
modifier onlyZeroGasPrice() {
require(tx.gasprice == 0, "gasprice is not zero");
_;
}
modifier onlyNotInit() {
require(!alreadyInit, "the contract already init");
_;
}
modifier onlyInit() {
require(alreadyInit, "the contract not init yet");
_;
}
modifier onlySlash() {
require(msg.sender == SLASH_CONTRACT_ADDR, "the message sender must be slash contract");
_;
}
modifier onlyTokenHub() {
require(msg.sender == TOKEN_HUB_ADDR, "the message sender must be token hub contract");
_;
}
modifier onlyGov() {
require(msg.sender == GOV_HUB_ADDR, "the message sender must be governance contract");
_;
}
modifier onlyValidatorContract() {
require(msg.sender == VALIDATOR_CONTRACT_ADDR, "the message sender must be validatorSet contract");
_;
}
modifier onlyCrossChainContract() {
require(msg.sender == CROSS_CHAIN_CONTRACT_ADDR, "the message sender must be cross chain contract");
_;
}
modifier onlyRelayerIncentivize() {
require(msg.sender == INCENTIVIZE_ADDR, "the message sender must be incentivize contract");
_;
}
modifier onlyRelayer() {
require(IRelayerHub(RELAYERHUB_CONTRACT_ADDR).isRelayer(msg.sender), "the msg sender is not a relayer");
_;
}
modifier onlyTokenManager() {
require(msg.sender == TOKEN_MANAGER_ADDR, "the msg sender must be tokenManager");
_;
}
modifier onlyStakeHub() {
require(msg.sender == STAKE_HUB_ADDR, "the msg sender must be stakeHub");
_;
}
modifier onlyGovernorTimelock() {
require(msg.sender == TIMELOCK_ADDR, "the msg sender must be governor timelock contract");
_;
}
modifier onlyTokenRecoverPortal() {
require(msg.sender == TOKEN_RECOVER_PORTAL_ADDR, "the msg sender must be token recover portal");
_;
}
// Not reliable, do not use when need strong verify
function isContract(address addr) internal view returns (bool) {
uint256 size;
assembly {
size := extcodesize(addr)
}
return size > 0;
}
}
/**
* Copyright (c) 2016-2019 zOS Global Limited
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Memory {
// Size of a word, in bytes.
uint256 internal constant WORD_SIZE = 32;
// Size of the header of a 'bytes' array.
uint256 internal constant BYTES_HEADER_SIZE = 32;
// Address of the free memory pointer.
uint256 internal constant FREE_MEM_PTR = 0x40;
// Compares the 'len' bytes starting at address 'addr' in memory with the 'len'
// bytes starting at 'addr2'.
// Returns 'true' if the bytes are the same, otherwise 'false'.
function equals(uint256 addr, uint256 addr2, uint256 len) internal pure returns (bool equal) {
assembly {
equal := eq(keccak256(addr, len), keccak256(addr2, len))
}
}
// Compares the 'len' bytes starting at address 'addr' in memory with the bytes stored in
// 'bts'. It is allowed to set 'len' to a lower value then 'bts.length', in which case only
// the first 'len' bytes will be compared.
// Requires that 'bts.length >= len'
function equals(uint256 addr, uint256 len, bytes memory bts) internal pure returns (bool equal) {
require(bts.length >= len);
uint256 addr2;
assembly {
addr2 := add(bts, /*BYTES_HEADER_SIZE*/ 32)
}
return equals(addr, addr2, len);
}
function compareStrings(string memory a, string memory b) internal pure returns (bool) {
return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b))));
}
// Copy 'len' bytes from memory address 'src', to address 'dest'.
// This function does not check the or destination, it only copies
// the bytes.
function copy(uint256 src, uint256 dest, uint256 len) internal pure {
// Copy word-length chunks while possible
for (; len >= WORD_SIZE; len -= WORD_SIZE) {
assembly {
mstore(dest, mload(src))
}
dest += WORD_SIZE;
src += WORD_SIZE;
}
// Copy remaining bytes
uint256 mask = 256 ** (WORD_SIZE - len) - 1;
assembly {
let srcpart := and(mload(src), not(mask))
let destpart := and(mload(dest), mask)
mstore(dest, or(destpart, srcpart))
}
}
// Returns a memory pointer to the provided bytes array.
function ptr(bytes memory bts) internal pure returns (uint256 addr) {
assembly {
addr := bts
}
}
// Returns a memory pointer to the data portion of the provided bytes array.
function dataPtr(bytes memory bts) internal pure returns (uint256 addr) {
assembly {
addr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
}
}
// This function does the same as 'dataPtr(bytes memory)', but will also return the
// length of the provided bytes array.
function fromBytes(bytes memory bts) internal pure returns (uint256 addr, uint256 len) {
len = bts.length;
assembly {
addr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
}
}
// Creates a 'bytes memory' variable from the memory address 'addr', with the
// length 'len'. The function will allocate new memory for the bytes array, and
// the 'len bytes starting at 'addr' will be copied into that new memory.
function toBytes(uint256 addr, uint256 len) internal pure returns (bytes memory bts) {
bts = new bytes(len);
uint256 btsptr;
assembly {
btsptr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
}
copy(addr, btsptr, len);
}
// Get the word stored at memory address 'addr' as a 'uint'.
function toUint(uint256 addr) internal pure returns (uint256 n) {
assembly {
n := mload(addr)
}
}
// Get the word stored at memory address 'addr' as a 'bytes32'.
function toBytes32(uint256 addr) internal pure returns (bytes32 bts) {
assembly {
bts := mload(addr)
}
}
}
/**
* @title BytesToTypes
* Copyright (c) 2016-2020 zpouladzade/Seriality
* @dev The BytesToTypes contract converts the memory byte arrays to the standard solidity types
* @author [email protected]
*/
library BytesToTypes {
function bytesToAddress(uint256 _offst, bytes memory _input) internal pure returns (address _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToBool(uint256 _offst, bytes memory _input) internal pure returns (bool _output) {
uint8 x;
assembly {
x := mload(add(_input, _offst))
}
x == 0 ? _output = false : _output = true;
}
function getStringSize(uint256 _offst, bytes memory _input) internal pure returns (uint256 size) {
assembly {
size := mload(add(_input, _offst))
let chunk_count := add(div(size, 32), 1) // chunk_count = size/32 + 1
if gt(mod(size, 32), 0) {
// if size%32 > 0
chunk_count := add(chunk_count, 1)
}
size := mul(chunk_count, 32) // first 32 bytes reseves for size in strings
}
}
function bytesToString(uint256 _offst, bytes memory _input, bytes memory _output) internal pure {
uint256 size = 32;
assembly {
let chunk_count
size := mload(add(_input, _offst))
chunk_count := add(div(size, 32), 1) // chunk_count = size/32 + 1
if gt(mod(size, 32), 0) { chunk_count := add(chunk_count, 1) } // chunk_count++
for { let index := 0 } lt(index, chunk_count) { index := add(index, 1) } {
mstore(add(_output, mul(index, 32)), mload(add(_input, _offst)))
_offst := sub(_offst, 32) // _offst -= 32
}
}
}
function bytesToBytes32(uint256 _offst, bytes memory _input, bytes32 _output) internal pure {
assembly {
mstore(_output, add(_input, _offst))
mstore(add(_output, 32), add(add(_input, _offst), 32))
}
}
function bytesToInt8(uint256 _offst, bytes memory _input) internal pure returns (int8 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt16(uint256 _offst, bytes memory _input) internal pure returns (int16 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt24(uint256 _offst, bytes memory _input) internal pure returns (int24 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt32(uint256 _offst, bytes memory _input) internal pure returns (int32 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt40(uint256 _offst, bytes memory _input) internal pure returns (int40 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt48(uint256 _offst, bytes memory _input) internal pure returns (int48 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt56(uint256 _offst, bytes memory _input) internal pure returns (int56 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt64(uint256 _offst, bytes memory _input) internal pure returns (int64 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt72(uint256 _offst, bytes memory _input) internal pure returns (int72 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt80(uint256 _offst, bytes memory _input) internal pure returns (int80 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt88(uint256 _offst, bytes memory _input) internal pure returns (int88 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt96(uint256 _offst, bytes memory _input) internal pure returns (int96 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt104(uint256 _offst, bytes memory _input) internal pure returns (int104 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt112(uint256 _offst, bytes memory _input) internal pure returns (int112 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt120(uint256 _offst, bytes memory _input) internal pure returns (int120 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt128(uint256 _offst, bytes memory _input) internal pure returns (int128 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt136(uint256 _offst, bytes memory _input) internal pure returns (int136 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt144(uint256 _offst, bytes memory _input) internal pure returns (int144 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt152(uint256 _offst, bytes memory _input) internal pure returns (int152 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt160(uint256 _offst, bytes memory _input) internal pure returns (int160 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt168(uint256 _offst, bytes memory _input) internal pure returns (int168 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt176(uint256 _offst, bytes memory _input) internal pure returns (int176 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt184(uint256 _offst, bytes memory _input) internal pure returns (int184 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt192(uint256 _offst, bytes memory _input) internal pure returns (int192 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt200(uint256 _offst, bytes memory _input) internal pure returns (int200 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt208(uint256 _offst, bytes memory _input) internal pure returns (int208 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt216(uint256 _offst, bytes memory _input) internal pure returns (int216 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt224(uint256 _offst, bytes memory _input) internal pure returns (int224 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt232(uint256 _offst, bytes memory _input) internal pure returns (int232 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt240(uint256 _offst, bytes memory _input) internal pure returns (int240 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt248(uint256 _offst, bytes memory _input) internal pure returns (int248 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToInt256(uint256 _offst, bytes memory _input) internal pure returns (int256 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint8(uint256 _offst, bytes memory _input) internal pure returns (uint8 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint16(uint256 _offst, bytes memory _input) internal pure returns (uint16 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint24(uint256 _offst, bytes memory _input) internal pure returns (uint24 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint32(uint256 _offst, bytes memory _input) internal pure returns (uint32 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint40(uint256 _offst, bytes memory _input) internal pure returns (uint40 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint48(uint256 _offst, bytes memory _input) internal pure returns (uint48 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint56(uint256 _offst, bytes memory _input) internal pure returns (uint56 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint64(uint256 _offst, bytes memory _input) internal pure returns (uint64 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint72(uint256 _offst, bytes memory _input) internal pure returns (uint72 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint80(uint256 _offst, bytes memory _input) internal pure returns (uint80 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint88(uint256 _offst, bytes memory _input) internal pure returns (uint88 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint96(uint256 _offst, bytes memory _input) internal pure returns (uint96 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint104(uint256 _offst, bytes memory _input) internal pure returns (uint104 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint112(uint256 _offst, bytes memory _input) internal pure returns (uint112 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint120(uint256 _offst, bytes memory _input) internal pure returns (uint120 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint128(uint256 _offst, bytes memory _input) internal pure returns (uint128 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint136(uint256 _offst, bytes memory _input) internal pure returns (uint136 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint144(uint256 _offst, bytes memory _input) internal pure returns (uint144 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint152(uint256 _offst, bytes memory _input) internal pure returns (uint152 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint160(uint256 _offst, bytes memory _input) internal pure returns (uint160 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint168(uint256 _offst, bytes memory _input) internal pure returns (uint168 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint176(uint256 _offst, bytes memory _input) internal pure returns (uint176 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint184(uint256 _offst, bytes memory _input) internal pure returns (uint184 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint192(uint256 _offst, bytes memory _input) internal pure returns (uint192 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint200(uint256 _offst, bytes memory _input) internal pure returns (uint200 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint208(uint256 _offst, bytes memory _input) internal pure returns (uint208 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint216(uint256 _offst, bytes memory _input) internal pure returns (uint216 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint224(uint256 _offst, bytes memory _input) internal pure returns (uint224 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint232(uint256 _offst, bytes memory _input) internal pure returns (uint232 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint240(uint256 _offst, bytes memory _input) internal pure returns (uint240 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint248(uint256 _offst, bytes memory _input) internal pure returns (uint248 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
function bytesToUint256(uint256 _offst, bytes memory _input) internal pure returns (uint256 _output) {
assembly {
_output := mload(add(_input, _offst))
}
}
}
interface IParamSubscriber {
function updateParam(string calldata key, bytes calldata value) external;
}
contract RelayerIncentivize is IRelayerIncentivize, System, IParamSubscriber {
using SafeMath for uint256;
uint256 public constant HEADER_RELAYER_REWARD_RATE_MOLECULE = 1;
uint256 public constant HEADER_RELAYER_REWARD_RATE_DENOMINATOR = 5;
uint256 public constant CALLER_COMPENSATION_MOLECULE = 1;
uint256 public constant CALLER_COMPENSATION_DENOMINATOR = 80;
uint256 public headerRelayerRewardRateMolecule;
uint256 public headerRelayerRewardRateDenominator;
uint256 public callerCompensationMolecule;
uint256 public callerCompensationDenominator;
mapping(address => uint256) public headerRelayersSubmitCount; // @dev deprecated
address payable[] public headerRelayerAddressRecord; // @dev deprecated
mapping(address => uint256) public packageRelayersSubmitCount; // @dev deprecated
address payable[] public packageRelayerAddressRecord; // @dev deprecated
uint256 public collectedRewardForHeaderRelayer = 0; // @dev deprecated
uint256 public collectedRewardForTransferRelayer = 0; // @dev deprecated
uint256 public roundSequence = 0; // @dev deprecated
uint256 public countInRound = 0; // @dev deprecated
mapping(address => uint256) public relayerRewardVault;
uint256 public dynamicExtraIncentiveAmount; // @dev deprecated
event rewardToRelayer(address relayer, uint256 amount);
event distributeCollectedReward(
uint256 sequence, uint256 roundRewardForHeaderRelayer, uint256 roundRewardForTransferRelayer
); // @dev deprecated
event paramChange(string key, bytes value); // @dev deprecated
function init() external onlyNotInit {
require(!alreadyInit, "already initialized");
headerRelayerRewardRateMolecule = HEADER_RELAYER_REWARD_RATE_MOLECULE;
headerRelayerRewardRateDenominator = HEADER_RELAYER_REWARD_RATE_DENOMINATOR;
callerCompensationMolecule = CALLER_COMPENSATION_MOLECULE;
callerCompensationDenominator = CALLER_COMPENSATION_DENOMINATOR;
alreadyInit = true;
}
receive() external payable { }
function addReward(
address payable headerRelayerAddr,
address payable packageRelayer,
uint256 amount,
bool fromSystemReward
) external override onlyInit onlyCrossChainContract returns (bool) {
revert("deprecated");
}
function updateParam(string calldata key, bytes calldata value) external override onlyGov {
revert("deprecated");
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous": false,"inputs": [{"indexed": false,"internalType": "uint256","name": "sequence","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "roundRewardForHeaderRelayer","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "roundRewardForTransferRelayer","type": "uint256"}],"name": "distributeCollectedReward","type": "event"},{"anonymous": false,"inputs": [{"indexed": false,"internalType": "string","name": "key","type": "string"},{"indexed": false,"internalType": "bytes","name": "value","type": "bytes"}],"name": "paramChange","type": "event"},{"anonymous": false,"inputs": [{"indexed": false,"internalType": "address","name": "relayer","type": "address"},{"indexed": false,"internalType": "uint256","name": "amount","type": "uint256"}],"name": "rewardToRelayer","type": "event"},{"inputs": [],"name": "CALLER_COMPENSATION_DENOMINATOR","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CALLER_COMPENSATION_MOLECULE","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CODE_OK","outputs": [{"internalType": "uint32","name": "","type": "uint32"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CROSS_CHAIN_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOVERNOR_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOV_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOV_TOKEN_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "HEADER_RELAYER_REWARD_RATE_DENOMINATOR","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "HEADER_RELAYER_REWARD_RATE_MOLECULE","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "INCENTIVIZE_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "LIGHT_CLIENT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "RELAYERHUB_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "SLASH_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKE_CREDIT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKE_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKING_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "SYSTEM_REWARD_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TIMELOCK_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_MANAGER_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_RECOVER_PORTAL_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "VALIDATOR_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address payable","name": "headerRelayerAddr","type": "address"},{"internalType": "address payable","name": "packageRelayer","type": "address"},{"internalType": "uint256","name": "amount","type": "uint256"},{"internalType": "bool","name": "fromSystemReward","type": "bool"}],"name": "addReward","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [],"name": "alreadyInit","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "bscChainID","outputs": [{"internalType": "uint16","name": "","type": "uint16"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "callerCompensationDenominator","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "callerCompensationMolecule","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "collectedRewardForHeaderRelayer","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "collectedRewardForTransferRelayer","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "countInRound","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "dynamicExtraIncentiveAmount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "uint256","name": "","type": "uint256"}],"name": "headerRelayerAddressRecord","outputs": [{"internalType": "address payable","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "headerRelayerRewardRateDenominator","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "headerRelayerRewardRateMolecule","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "headerRelayersSubmitCount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "init","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "uint256","name": "","type": "uint256"}],"name": "packageRelayerAddressRecord","outputs": [{"internalType": "address payable","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "packageRelayersSubmitCount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "relayerRewardVault","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "roundSequence","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "string","name": "key","type": "string"},{"internalType": "bytes","name": "value","type": "bytes"}],"name": "updateParam","outputs": [],"stateMutability": "nonpayable","type": "function"},{"stateMutability": "payable","type": "receive"}]Contract Creation Code
0x60806040526004361061024a5760003560e01c8063930e1b0911610139578063ace9fcc2116100b6578063df8079e91161007a578063df8079e9146106d5578063e1c7392a146106ea578063e89a3020146106ff578063f9a2bbc714610729578063fd6a68791461073e578063fdd31fcd1461075357610251565b8063ace9fcc21461066c578063c81b166214610681578063d0ab528a14610696578063dc927faf146106ab578063dcae76ab146106c057610251565b8063a7c6a59d116100fd578063a7c6a59d1461052e578063aa82dce114610543578063aad5606314610558578063ab51bb961461056d578063ac4317511461059b57610251565b8063930e1b09146104a75780639dc09262146104da578063a1a11bf5146104ef578063a3c3c0ad14610504578063a78abc161461051957610251565b806343756e5c116101c75780636f93d2e61161018b5780636f93d2e6146103f457806374f2272d1461045357806375d47a0a146104685780637e146cc51461047d5780637e434d541461049257610251565b806343756e5c14610374578063493279b11461038957806351b4dce3146103b557806351e80672146103ca5780636e47b482146103df57610251565b80631b20087c1161020e5780631b20087c146102ed5780631c64331214610302578063280870281461032c5780633a9756121461025657806340bb43c01461034157610251565b8063081e9d1314610256578063093f2fc41461027d5780630e2374a51461029257806310e06a76146102c357806312950c46146102d857610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610786565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b61078b565b34801561029e57600080fd5b506102a7610790565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b5061026b610796565b3480156102e457600080fd5b5061026b61079c565b3480156102f957600080fd5b5061026b6107a2565b34801561030e57600080fd5b506102a76004803603602081101561032557600080fd5b50356107a8565b34801561033857600080fd5b506102a76107cf565b34801561034d57600080fd5b5061026b6004803603602081101561036457600080fd5b50356001600160a01b03166107d5565b34801561038057600080fd5b506102a76107e7565b34801561039557600080fd5b5061039e6107ed565b6040805161ffff9092168252519081900360200190f35b3480156103c157600080fd5b506102a76107f2565b3480156103d657600080fd5b506102a76107f8565b3480156103eb57600080fd5b506102a76107fe565b34801561040057600080fd5b5061043f6004803603608081101561041757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515610804565b604080519115158252519081900360200190f35b34801561045f57600080fd5b5061026b6108d6565b34801561047457600080fd5b506102a76108dc565b34801561048957600080fd5b5061026b6108e2565b34801561049e57600080fd5b506102a76108e7565b3480156104b357600080fd5b5061026b600480360360208110156104ca57600080fd5b50356001600160a01b03166108ed565b3480156104e657600080fd5b506102a76108ff565b3480156104fb57600080fd5b506102a7610905565b34801561051057600080fd5b5061026b61090b565b34801561052557600080fd5b5061043f610911565b34801561053a57600080fd5b5061026b61091a565b34801561054f57600080fd5b506102a7610920565b34801561056457600080fd5b506102a7610926565b34801561057957600080fd5b5061058261092c565b6040805163ffffffff9092168252519081900360200190f35b3480156105a757600080fd5b5061066a600480360360408110156105be57600080fd5b8101906020810181356401000000008111156105d957600080fd5b8201836020820111156105eb57600080fd5b8035906020019184600183028401116401000000008311171561060d57600080fd5b91939092909160208101903564010000000081111561062b57600080fd5b82018360208201111561063d57600080fd5b8035906020019184600183028401116401000000008311171561065f57600080fd5b509092509050610931565b005b34801561067857600080fd5b5061026b610971565b34801561068d57600080fd5b506102a7610977565b3480156106a257600080fd5b5061026b61097d565b3480156106b757600080fd5b506102a7610983565b3480156106cc57600080fd5b5061026b610989565b3480156106e157600080fd5b506102a761098f565b3480156106f657600080fd5b5061066a610995565b34801561070b57600080fd5b506102a76004803603602081101561072257600080fd5b5035610a5e565b34801561073557600080fd5b506102a7610a6b565b34801561074a57600080fd5b506102a7610a71565b34801561075f57600080fd5b5061026b6004803603602081101561077657600080fd5b50356001600160a01b0316610a77565b600181565b605081565b61200181565b600b5481565b60015481565b600c5481565b600681815481106107b557fe5b6000918252602090912001546001600160a01b0316905081565b61200581565b60076020526000908152604090205481565b61100181565b603881565b61200681565b61200081565b61100581565b6000805460ff1661085c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336120001461089c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ab8602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b60035481565b61100881565b600581565b61200381565b60056020526000908152604090205481565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b61200281565b61300081565b600081565b336110071461089c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610a8a602e913960400191505060405180910390fd5b60025481565b61100281565b600e5481565b61100381565b60095481565b61200481565b60005460ff16156109ed576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615610a3b576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b600881815481106107b557fe5b61100081565b61100481565b600d602052600090815260409020548156fe746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a164736f6c6343000604000a
Deployed Bytecode
0x60806040526004361061024a5760003560e01c8063930e1b0911610139578063ace9fcc2116100b6578063df8079e91161007a578063df8079e9146106d5578063e1c7392a146106ea578063e89a3020146106ff578063f9a2bbc714610729578063fd6a68791461073e578063fdd31fcd1461075357610251565b8063ace9fcc21461066c578063c81b166214610681578063d0ab528a14610696578063dc927faf146106ab578063dcae76ab146106c057610251565b8063a7c6a59d116100fd578063a7c6a59d1461052e578063aa82dce114610543578063aad5606314610558578063ab51bb961461056d578063ac4317511461059b57610251565b8063930e1b09146104a75780639dc09262146104da578063a1a11bf5146104ef578063a3c3c0ad14610504578063a78abc161461051957610251565b806343756e5c116101c75780636f93d2e61161018b5780636f93d2e6146103f457806374f2272d1461045357806375d47a0a146104685780637e146cc51461047d5780637e434d541461049257610251565b806343756e5c14610374578063493279b11461038957806351b4dce3146103b557806351e80672146103ca5780636e47b482146103df57610251565b80631b20087c1161020e5780631b20087c146102ed5780631c64331214610302578063280870281461032c5780633a9756121461025657806340bb43c01461034157610251565b8063081e9d1314610256578063093f2fc41461027d5780630e2374a51461029257806310e06a76146102c357806312950c46146102d857610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610786565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b61078b565b34801561029e57600080fd5b506102a7610790565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b5061026b610796565b3480156102e457600080fd5b5061026b61079c565b3480156102f957600080fd5b5061026b6107a2565b34801561030e57600080fd5b506102a76004803603602081101561032557600080fd5b50356107a8565b34801561033857600080fd5b506102a76107cf565b34801561034d57600080fd5b5061026b6004803603602081101561036457600080fd5b50356001600160a01b03166107d5565b34801561038057600080fd5b506102a76107e7565b34801561039557600080fd5b5061039e6107ed565b6040805161ffff9092168252519081900360200190f35b3480156103c157600080fd5b506102a76107f2565b3480156103d657600080fd5b506102a76107f8565b3480156103eb57600080fd5b506102a76107fe565b34801561040057600080fd5b5061043f6004803603608081101561041757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515610804565b604080519115158252519081900360200190f35b34801561045f57600080fd5b5061026b6108d6565b34801561047457600080fd5b506102a76108dc565b34801561048957600080fd5b5061026b6108e2565b34801561049e57600080fd5b506102a76108e7565b3480156104b357600080fd5b5061026b600480360360208110156104ca57600080fd5b50356001600160a01b03166108ed565b3480156104e657600080fd5b506102a76108ff565b3480156104fb57600080fd5b506102a7610905565b34801561051057600080fd5b5061026b61090b565b34801561052557600080fd5b5061043f610911565b34801561053a57600080fd5b5061026b61091a565b34801561054f57600080fd5b506102a7610920565b34801561056457600080fd5b506102a7610926565b34801561057957600080fd5b5061058261092c565b6040805163ffffffff9092168252519081900360200190f35b3480156105a757600080fd5b5061066a600480360360408110156105be57600080fd5b8101906020810181356401000000008111156105d957600080fd5b8201836020820111156105eb57600080fd5b8035906020019184600183028401116401000000008311171561060d57600080fd5b91939092909160208101903564010000000081111561062b57600080fd5b82018360208201111561063d57600080fd5b8035906020019184600183028401116401000000008311171561065f57600080fd5b509092509050610931565b005b34801561067857600080fd5b5061026b610971565b34801561068d57600080fd5b506102a7610977565b3480156106a257600080fd5b5061026b61097d565b3480156106b757600080fd5b506102a7610983565b3480156106cc57600080fd5b5061026b610989565b3480156106e157600080fd5b506102a761098f565b3480156106f657600080fd5b5061066a610995565b34801561070b57600080fd5b506102a76004803603602081101561072257600080fd5b5035610a5e565b34801561073557600080fd5b506102a7610a6b565b34801561074a57600080fd5b506102a7610a71565b34801561075f57600080fd5b5061026b6004803603602081101561077657600080fd5b50356001600160a01b0316610a77565b600181565b605081565b61200181565b600b5481565b60015481565b600c5481565b600681815481106107b557fe5b6000918252602090912001546001600160a01b0316905081565b61200581565b60076020526000908152604090205481565b61100181565b603881565b61200681565b61200081565b61100581565b6000805460ff1661085c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336120001461089c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ab8602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b60035481565b61100881565b600581565b61200381565b60056020526000908152604090205481565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b61200281565b61300081565b600081565b336110071461089c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610a8a602e913960400191505060405180910390fd5b60025481565b61100281565b600e5481565b61100381565b60095481565b61200481565b60005460ff16156109ed576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615610a3b576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b600881815481106107b557fe5b61100081565b61100481565b600d602052600090815260409020548156fe746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a164736f6c6343000604000a
Deployed Bytecode Sourcemap
29323:10906:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;29531:63:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29531:63:0;;;:::i;:::-;;;;;;;;;;;;;;;;29483:41;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29483:41:0;;;:::i;29731:60::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29731:60:0;;;:::i;1155:46::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1155:46:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30358:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30358:30:0;;;:::i;29798:46::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29798:46:0;;;:::i;30393:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30393:29:0;;;:::i;30065:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30065:51:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30065:51:0;;:::i;:::-;;;;-1:-1:-1;;;;;30065:51:0;;;;;;;;;;;;;;1208:43;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1208:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30123:61;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30123:61:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30123:61:0;-1:-1:-1;;;;;30123:61:0;;:::i;1660:88::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1660:88:0;;;:::i;1514:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1514:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1367:46;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1367:46:0;;;:::i;2388:94::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2388:94:0;;;:::i;29440:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29440:38:0;;;:::i;2024:83::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2024:83:0;;;:::i;31223:1896::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;31223:1896:0;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;31223:1896:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1256:50;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1256:50:0;;;:::i;29903:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29903:41:0;;;:::i;2296:87::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2296:87:0;;;:::i;1465:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1465:44:0;;;:::i;29599:66::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29599:66:0;;;:::i;30000:60::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30000:60:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30000:60:0;-1:-1:-1;;;;;30000:60:0;;:::i;1418:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1418:42:0;;;:::i;2210:81::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2210:81:0;;;:::i;2112:93::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2112:93:0;;;:::i;30301:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30301:50:0;;;:::i;1086:23::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1086:23:0;;;:::i;29949:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29949:44:0;;;:::i;1116:34::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1116:34:0;;;:::i;37383:2843::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;37383:2843:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;37383:2843:0;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;37383:2843:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;37383:2843: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;37383:2843:0;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;37383:2843:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;37383:2843: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;-1:-1;37383:2843:0;;-1:-1:-1;37383:2843:0;-1:-1:-1;37383:2843:0;:::i;:::-;;29849:49;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29849:49:0;;;:::i;36747:428::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36747:428:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36747:428:0;;:::i;37181:196::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;37181:196:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;37181:196:0;;:::i;1753:87::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1753:87:0;;;:::i;30489:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30489:42:0;;;:::i;1845:86::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1845:86:0;;;:::i;30248:48::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30248:48:0;;;:::i;30776:403::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30776:403:0;;;:::i;33125:566::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33125:566:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;33125:566:0;-1:-1:-1;;;;;33125:566:0;;:::i;30189:52::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30189:52:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30189:52:0;;:::i;1563:92::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1563:92:0;;;:::i;1311:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1311:51:0;;;:::i;1936:83::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1936:83:0;;;:::i;30429:53::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30429:53:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30429:53:0;-1:-1:-1;;;;;30429:53:0;;:::i;29531:63::-;29593:1;29531:63;:::o;29483:41::-;29522:2;29483:41;:::o;29731:60::-;29789:2;29731:60;:::o;1155:46::-;1198:3;1155:46;:::o;30358:30::-;;;;:::o;29798:46::-;;;;:::o;30393:29::-;;;;:::o;30065:51::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30065:51:0;;-1:-1:-1;30065:51:0;:::o;30123:61::-;;;;;;;;;;;;;:::o;1660:88::-;1706:42;1660:88;:::o;1514:42::-;1550:6;1514:42;:::o;1367:46::-;1409:4;1367:46;:::o;2388:94::-;2440:42;2388:94;:::o;2024:83::-;2065:42;2024:83;:::o;31223:1896::-;31407:4;2763:11;;;;2755:49;;;;;-1:-1:-1;;;2755:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:10:::1;2440:42;3434:39;3426:99;;;;-1:-1:-1::0;;;3426:99:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31424:20:::2;31455:16;31451:513;;;1798:42;-1:-1:-1::0;;;;;31497:46:0::2;;2065:42;31580:39;31591:27;;31580:6;:10;;:39;;;;:::i;:::-;31497:123;;;;;;;;;;;;;-1:-1:-1::0;;;;;31497:123:0::2;-1:-1:-1::0;;;;;31497:123:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;31497:123:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31497:123:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31497:123:0;;-1:-1:-1;31451:513:0::2;;;31658:86;::::0;;-1:-1:-1;;;31658:86:0;;2065:42:::2;31658:86;::::0;::::2;::::0;;;;;;;;;1977:42:::2;::::0;31658::::2;::::0;:86;;;;;::::2;::::0;;;;;;;;-1:-1:-1;1977:42:0;31658:86;::::2;;2:2:-1::0;::::2;;;27:1;24::::0;17:12:::2;2:2;31658:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31658:86:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31658:86:0;31757:27:::2;::::0;31658:86;;-1:-1:-1;31757:31:0;31753:204:::2;;31918:27;::::0;31835:111:::2;::::0;;-1:-1:-1;;;31835:111:0;;2065:42:::2;31835:111;::::0;::::2;::::0;;;;;;;;;31818:129:::2;::::0;1798:42:::2;::::0;31835:46:::2;::::0;:111;;;;;::::2;::::0;;;;;;;;;-1:-1:-1;1798:42:0;31835:111;::::2;;2:2:-1::0;::::2;;;27:1;24::::0;17:12:::2;2:2;31835:111:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31835:111:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31835:111:0;31818:12;;:129:::2;:16;:129;:::i;:::-;31803:144;;31753:204;31972:12;:14:::0;;::::2;;::::0;;:12:::2;32012:45;32044:12:::0;32012:31:::2;:45::i;:::-;32098:31;::::0;31995:62;;-1:-1:-1;32098:43:0::2;::::0;31995:62;32098:43:::2;:35;:43;:::i;:::-;32064:31;:77:::0;32184:33:::2;::::0;:63:::2;::::0;32240:6;;32184:51:::2;::::0;32222:12;32184:51:::2;:37;:51;:::i;:::-;:55:::0;:63:::2;:55;:63;:::i;:::-;32148:33;:99:::0;-1:-1:-1;;;;;32260:44:0;::::2;;::::0;;;:25:::2;:44;::::0;;;;;32256:120:::2;;32318:26;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;32318:50:0;;;;;::::2;::::0;;-1:-1:-1;;;;;;32318:50:0::2;-1:-1:-1::0;;;;;32318:50:0;::::2;;::::0;;32256:120:::2;-1:-1:-1::0;;;;;32382:44:0;;::::2;;::::0;;;:25:::2;:44;::::0;;;;;;;:46;;::::2;;::::0;;32441:42;;::::2;::::0;;:26:::2;:42:::0;;;;32437:116:::2;;32497:27;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;32497:48:0;;;;;::::2;::::0;;-1:-1:-1;;;;;;32497:48:0::2;-1:-1:-1::0;;;;;32497:48:0;::::2;;::::0;;32437:116:::2;-1:-1:-1::0;;;;;32559:42:0;::::2;;::::0;;;:26:::2;:42;::::0;;;;:44;;::::2;;::::0;;32616:12:::2;::::0;29475:3:::2;-1:-1:-1::0;32612:484:0::2;;32682:13;::::0;32697:31:::2;::::0;32730:33:::2;::::0;32656:108:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;::::2;::::0;;;;;;;::::2;32775:26;32804:31;:29;:31::i;:::-;32775:60;;32844:27;32874:32;:30;:32::i;:::-;-1:-1:-1::0;;;;;32954:34:0;::::2;;::::0;;;:18:::2;:34;::::0;;;;;32844:62;;-1:-1:-1;32954:83:0::2;::::0;32844:62;;32954:58:::2;::::0;32993:18;32954:58:::2;:38;:58;:::i;:::-;:62:::0;:83:::2;:62;:83;:::i;:::-;-1:-1:-1::0;;;;;32917:34:0;::::2;;::::0;;;:18:::2;:34;::::0;;;;:120;;;;33048:13:::2;:15:::0;;::::2;;::::0;;33072:12:::2;:16:::0;-1:-1:-1;;32612:484:0::2;-1:-1:-1::0;33109:4:0::2;::::0;31223:1896;-1:-1:-1;;;;;;31223:1896:0:o;1256:50::-;1302:4;1256:50;:::o;29903:41::-;;;;:::o;2296:87::-;2341:42;2296:87;:::o;1465:44::-;1505:4;1465:44;:::o;29599:66::-;29664:1;29599:66;:::o;30000:60::-;;;;;;;;;;;;;:::o;1418:42::-;1456:4;1418:42;:::o;2210:81::-;2249:42;2210:81;:::o;2112:93::-;2163:42;2112:93;:::o;30301:50::-;;;;:::o;1086:23::-;;;;;;:::o;29949:44::-;;;;:::o;1116:34::-;1149:1;1116:34;:::o;37383:2843::-;3130:10;2249:42;3130:26;3122:85;;;;-1:-1:-1;;;3122:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37487:11:::1;::::0;::::1;;37479:57;;;;-1:-1:-1::0;;;37479:57:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37547:60;37569:3;;37547:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;37547:60:0::1;::::0;;;;::::1;::::0;;;137:4:-1::1;37547:60:0::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;37547:21:0::1;::::0;-1:-1:-1;37547:60:0:i:1;:::-;37543:2643;;;37642:2;37626:18:::0;::::1;37618:81;;;;-1:-1:-1::0;;;37618:81:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37753:38;::::0;;37781:2:::1;37753:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;37708:42:::1;::::0;37753:38:::1;::::0;37785:5;;;37753:38;;::::1;37785:5:::0;;;;37753:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;37753:27:0::1;::::0;-1:-1:-1;;;37753:38:0:i:1;:::-;37708:83;;37846:34;;37808;:72;;37800:181;;;;-1:-1:-1::0;;;37800:181:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37990:31;:68:::0;37543:2643:::1;;;38076:63;38098:3;;38076:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;38076:63:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;;-1:-1:-1;38076:63:0;-1:-1:-1;38076:63:0::1;;::::0;::::1;;:21;:63::i;:::-;38072:2114;;;38174:2;38158:18:::0;::::1;38150:77;;;;-1:-1:-1::0;;;38150:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38284:38;::::0;;38312:2:::1;38284:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;38236:45:::1;::::0;38284:38:::1;::::0;38316:5;;;38284:38;;::::1;38316:5:::0;;;;38284:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;38284:27:0::1;::::0;-1:-1:-1;;;38284:38:0:i:1;:::-;38236:86:::0;-1:-1:-1;38339:42:0;;;::::1;::::0;:118:::1;;;38426:31;;38385:37;:72;;38339:118;38331:239;;;;-1:-1:-1::0;;;38331:239:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38579:34;:74:::0;38072:2114:::1;;;38671:55;38693:3;;38671:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;38671:55:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;38671:21:0::1;::::0;-1:-1:-1;38671:55:0:i:1;:::-;38667:1519;;;38761:2;38745:18:::0;::::1;38737:77;;;;-1:-1:-1::0;;;38737:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38863:38;::::0;;38891:2:::1;38863:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;38823:37:::1;::::0;38863:38:::1;::::0;38895:5;;;38863:38;;::::1;38895:5:::0;;;;38863:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;38863:27:0::1;::::0;-1:-1:-1;;;38863:38:0:i:1;:::-;38823:78;;38951:29;;38918;:62;;38910:161;;;;-1:-1:-1::0;;;38910:161:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39080:26;:58:::0;38667:1519:::1;;;39156:58;39178:3;;39156:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;39156:58:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;39156:21:0::1;::::0;-1:-1:-1;39156:58:0:i:1;:::-;39152:1034;;;39249:2;39233:18:::0;::::1;39225:77;;;;-1:-1:-1::0;;;39225:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39354:38;::::0;;39382:2:::1;39354:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;39311:40:::1;::::0;39354:38:::1;::::0;39386:5;;;39354:38;;::::1;39386:5:::0;;;;39354:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;39354:27:0::1;::::0;-1:-1:-1;;;39354:38:0:i:1;:::-;39311:81:::0;-1:-1:-1;39409:37:0;;;::::1;::::0;:103:::1;;;39486:26;;39450:32;:62;;39409:103;39401:213;;;;-1:-1:-1::0;;;39401:213:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39623:29;:64:::0;39152:1034:::1;;;39705:56;39727:3;;39705:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;39705:56:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;39705:21:0::1;::::0;-1:-1:-1;39705:56:0:i:1;:::-;39701:485;;;39796:2;39780:18:::0;::::1;39772:77;;;;-1:-1:-1::0;;;39772:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39899:38;::::0;;39927:2:::1;39899:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;39858::::1;::::0;39899::::1;::::0;39931:5;;;39899:38;;::::1;39931:5:::0;;;;39899:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;39899:27:0::1;::::0;-1:-1:-1;;;39899:38:0:i:1;:::-;40064:27;:60:::0;-1:-1:-1;39701:485:0::1;;;40147:31;::::0;;-1:-1:-1;;;40147:31:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;40147:31:0;;;;;;;;;;;;;::::1;;40197:23;40209:3;;40214:5;;40197:23;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;;::::1;74:27:::0;137:4:::1;117:14;-1:-1:::0;;113:30:::1;157:16:::0;;::::1;40197:23:0::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;40197:23:0;;;;;1:33:-1::1;99:1;81:16:::0;;::::1;74:27:::0;40197:23:0::1;::::0;137:4:-1::1;117:14:::0;;::::1;-1:-1:::0;;113:30:::1;157:16:::0;;::::1;40197:23:0::0;;::::1;::::0;-1:-1:-1;40197:23:0;;-1:-1:-1;;;;;;;40197:23:0::1;37383:2843:::0;;;;:::o;29849:49::-;;;;:::o;36747:428::-;36822:7;29522:2;36842:5;:23;36838:332;;-1:-1:-1;36883:5:0;36876:12;;36838:332;36923:5;29522:2;36906:22;:51;;;;-1:-1:-1;36941:16:0;36932:25;;;36906:51;36902:268;;;-1:-1:-1;29522:2:0;36968:21;;36902:268;37007:16;:24;-1:-1:-1;37007:76:0;;;;-1:-1:-1;37045:37:0;37035:48;;;37007:76;37003:167;;;-1:-1:-1;37101:16:0;:24;;;37094:31;;37003:167;-1:-1:-1;37161:1:0;37155:7;;37003:167;36747:428;;;:::o;37181:196::-;37254:7;29522:2;37274:5;:23;37270:102;;-1:-1:-1;37315:5:0;37308:12;;37270:102;-1:-1:-1;29522:2:0;37343:21;;1753:87;1798:42;1753:87;:::o;30489:42::-;;;;:::o;1845:86::-;1889:42;1845:86;:::o;30248:48::-;;;;:::o;30776:403::-;2667:11;;;;2666:12;2658:50;;;;;-1:-1:-1;;;2658:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;30829:11:::1;::::0;::::1;;30828:12;30820:44;;;::::0;;-1:-1:-1;;;30820:44:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;30820:44:0;;;;;;;;;;;;;::::1;;29593:1;30871:67:::0;;;29664:1:::1;30945:34;:73:::0;31025:26:::1;:55:::0;;;29789:2:::1;31087:29;:61:::0;-1:-1:-1;31155:18:0;;-1:-1:-1;;31155:18:0::1;::::0;;::::1;::::0;;30776:403::o;33125:566::-;-1:-1:-1;;;;;33208:31:0;;33191:14;33208:31;;;:18;:31;;;;;;33255:10;33247:40;;;;;-1:-1:-1;;;33247:40:0;;;;;;;;;;;;-1:-1:-1;;;33247:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33295:31:0;;33329:1;33295:31;;;:18;:31;;;;;;:35;;;33408:22;33314:11;;33295:31;33408:22;;;;;33423:6;;33408:22;33329:1;33408:22;33423:6;33295:31;33408:22;;;;;;;33403:234;;33522:30;;1798:42;;;;33522:30;;;;;33545:6;;33443:29;33522:30;33443:29;33522:30;33545:6;1798:42;33522:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;33568:43:0;;;1798:42;33568:43;;;;;;;;;;;;;;;;;;;;;33622:7;;;;;33403:234;33649:36;;;-1:-1:-1;;;;;33649:36:0;;;;;;;;;;;;;;;;;;;;;;;33125:566;;;;:::o;30189:52::-;;;;;;;;;;1563:92;1613:42;1563:92;:::o;1311:51::-;1358:4;1311:51;:::o;1936:83::-;1977:42;1936:83;:::o;30429:53::-;;;;;;;;;;;;;:::o;5141:181::-;5199:7;5231:5;;;5255:6;;;;5247:46;;;;;-1:-1:-1;;;5247:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:1;-1:-1:-1;5141:181:0;;;;;:::o;33697:192::-;33777:7;33800:83;33848:34;;33800:43;33811:31;;33800:6;:10;;:43;;;;:::i;:::-;:47;:83;:47;:83;:::i;5597:136::-;5655:7;5682:43;5686:1;5689;5682:43;;;;;;;;;;;;;;;;;:3;:43::i;33895:1416::-;33992:31;;34096:26;34060:62;;;;;;;;;;;;;;;;;;;33954:7;;33992:31;33954:7;;34060:33;;:62;;34096:26;34060:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34060:62:0;;;;;;;;;;;;;;;;;;;;;;;34129:30;34176:8;:15;34162:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;34162:30:0;-1:-1:-1;34129:63:0;-1:-1:-1;34204:13:0;34199:282;34231:8;:15;34223:5;:23;34199:282;;;34266:15;34284:8;34293:5;34284:15;;;;;;;;;;;;;;34266:33;;34308:14;34325:64;34354:25;:34;34380:7;-1:-1:-1;;;;;34354:34:0;-1:-1:-1;;;;;34354:34:0;;;;;;;;;;;;;34325:28;:64::i;:::-;34308:81;;34421:6;34398:13;34412:5;34398:20;;;;;;;;;;;;;;;;;:29;34450:23;:11;34466:6;34450:23;:15;:23;:::i;:::-;34436:37;-1:-1:-1;;;34248:7:0;;34199:282;;;;34489:20;34512:78;34560:29;;34512:43;34528:26;;34512:11;:15;;:43;;;;:::i;:78::-;34489:101;-1:-1:-1;34611:29:0;:11;34489:101;34611:29;:15;:29;:::i;:::-;34597:43;-1:-1:-1;34597:43:0;34709:1;34688:288;34720:8;:15;34712:5;:23;34688:288;;;34755:14;34772:54;34814:11;34772:37;34797:11;34772:13;34786:5;34772:20;;;;;;;;;;;;;;:24;;:37;;;;:::i;:54::-;34755:71;;34873:47;34913:6;34873:18;:35;34892:8;34901:5;34892:15;;;;;;;;;;;;;;-1:-1:-1;;;;;34873:35:0;-1:-1:-1;;;;;34873:35:0;;;;;;;;;;;;;:39;;:47;;;;:::i;:::-;34835:18;:35;34854:8;34863:5;34854:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34835:35:0;;;;;;;;;;;-1:-1:-1;34835:35:0;:85;34944:24;:12;34961:6;34944:24;:16;:24;:::i;:::-;34929:39;-1:-1:-1;;34737:7:0;;34688:288;;;;35016:49;35052:12;35016:18;:31;35035:8;35044:1;35035:11;;;;;;;35016:49;34982:18;:31;35001:8;35010:1;35001:11;;;;;;;;;;;;;;-1:-1:-1;;;;;34982:31:0;-1:-1:-1;;;;;34982:31:0;;;;;;;;;;;;:83;;;;35108:1;35074:31;:35;;;;35121:13;35137:1;35121:17;;35116:124;35148:8;:15;35140:5;:23;35116:124;;;35190:25;:42;35216:8;35225:5;35216:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35190:42:0;;;;;;;;;;;-1:-1:-1;35190:42:0;;;35183:49;35165:7;;35116:124;;;-1:-1:-1;35246:33:0;35253:26;;35246:33;:::i;:::-;-1:-1:-1;35293:12:0;-1:-1:-1;;;;;33895:1416:0;;:::o;35317:1424::-;35415:33;;35521:27;35485:63;;;;;;;;;;;;;;;;;;;35377:7;;35415:33;35377:7;;35485:33;;:63;;35521:27;35485:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35485:63:0;;;;;;;;;;;;;;;;;;;;;;;35555:30;35602:8;:15;35588:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;35588:30:0;-1:-1:-1;35555:63:0;-1:-1:-1;35630:13:0;35625:282;35657:8;:15;35649:5;:23;35625:282;;;35692:15;35710:8;35719:5;35710:15;;;;;;;;;;;;;;35692:33;;35734:14;35751:67;35782:26;:35;35809:7;-1:-1:-1;;;;;35782:35:0;-1:-1:-1;;;;;35782:35:0;;;;;;;;;;;;;35751:30;:67::i;:::-;35734:84;;35850:6;35827:13;35841:5;35827:20;;;;;;;;;;;;;;;;;:29;35879:20;;;;;-1:-1:-1;35674:7:0;;35625:282;;;;35915:20;35938:78;35986:29;;35938:43;35954:26;;35938:11;:15;;:43;;;;:::i;:78::-;35915:101;-1:-1:-1;36037:29:0;:11;35915:101;36037:29;:15;:29;:::i;:::-;36023:43;-1:-1:-1;36023:43:0;36135:1;36114:288;36146:8;:15;36138:5;:23;36114:288;;;36181:14;36198:54;36240:11;36198:37;36223:11;36198:13;36212:5;36198:20;;;;;;;:54;36181:71;;36299:47;36339:6;36299:18;:35;36318:8;36327:5;36318:15;;;;;;;36299:47;36261:18;:35;36280:8;36289:5;36280:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36261:35:0;;;;;;;;;;;-1:-1:-1;36261:35:0;:85;36370:24;:12;36387:6;36370:24;:16;:24;:::i;:::-;36355:39;-1:-1:-1;;36163:7:0;;36114:288;;;;36442:49;36478:12;36442:18;:31;36461:8;36470:1;36461:11;;;;;;;36442:49;36408:18;:31;36427:8;36436:1;36427:11;;;;;;;;;;;;;;-1:-1:-1;;;;;36408:31:0;-1:-1:-1;;;;;36408:31:0;;;;;;;;;;;;:83;;;;36536:1;36500:33;:37;;;;36549:13;36565:1;36549:17;;36544:125;36576:8;:15;36568:5;:23;36544:125;;;36618:26;:43;36645:8;36654:5;36645:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36618:43:0;;;;;;;;;;;-1:-1:-1;36618:43:0;;;36611:50;36593:7;;36544:125;;;-1:-1:-1;36675:34:0;36682:27;;36675:34;:::i;10936:183::-;11017:4;11106:1;11088:21;;;;;;;;;;;;;;;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;;;11088:21:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11088:21:0;;;11078:32;;;;;;11070:1;11052:21;;;;;;;;;;;;;;;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;;;11052:21:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11052:21:0;;;11042:32;;;;;;:68;11034:77;;10936:183;;;;:::o;28833:198::-;28993:19;28987:26;;28961:63::o;6471:471::-;6529:7;6774:6;6770:47;;-1:-1:-1;6804:1:0;6797:8;;6770:47;6841:5;;;6845:1;6841;:5;:1;6865:5;;;;;:10;6857:56;;;;-1:-1:-1;;;6857:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7410:132;7468:7;7495:39;7499:1;7502;7495:39;;;;;;;;;;;;;;;;;:3;:39::i;6028:192::-;6114:7;6150:12;6142:6;;;;6134:29;;;;-1:-1:-1;;;6134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6186:5:0;;;6028:192::o;8030:345::-;8116:7;8218:12;8211:5;8203:28;;;;-1:-1:-1;;;8203:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;8203:28:0;;8242:9;8258:1;8254;:5;;;;;;;8030:345;-1:-1:-1;;;;;8030:345:0:o;29323:10906::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://e98544a55cfad5eae2f3157896ecf02194000e9989e5532d0612e61036807736
Loading...
Loading
Loading...
Loading
Net Worth in USD
$12,792.58
Net Worth in BNB
Token Allocations
BNB
98.00%
METAWAR
2.00%
MON
0.00%
Multichain Portfolio | 34 Chains
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 SPACE ID.
`;
}
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 100 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=0x0000000000000000000000000000000000001005"
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(
`