Latest 25 from a total of 5,773,480 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 80893892 | 3 days ago | IN | 0.00001 BNB | 0.00000193 | ||||
| Claim Rewards | 80117576 | 7 days ago | IN | 0 BNB | 0.00000329 | ||||
| Claim Rewards | 74782788 | 36 days ago | IN | 0 BNB | 0.00000131 | ||||
| 0x44d227ae | 71321524 | 66 days ago | IN | 0 BNB | 0.00000158 | ||||
| 0x44d227ae | 71055328 | 68 days ago | IN | 0 BNB | 0.00000158 | ||||
| 0x44d227ae | 71055296 | 68 days ago | IN | 0 BNB | 0.00000158 | ||||
| Transfer | 70712947 | 71 days ago | IN | 0.001 BNB | 0.00000112 | ||||
| Transfer | 70381049 | 74 days ago | IN | 0.00011936 BNB | 0.00000112 | ||||
| 0x44d227ae | 66048582 | 112 days ago | IN | 0 BNB | 0.00000158 | ||||
| 0x44d227ae | 66034572 | 112 days ago | IN | 0 BNB | 0.00000158 | ||||
| 0x44d227ae | 66032969 | 112 days ago | IN | 0 BNB | 0.00000158 | ||||
| 0x44d227ae | 65894759 | 113 days ago | IN | 0 BNB | 0.00000158 | ||||
| Claim Rewards | 63376507 | 135 days ago | IN | 0 BNB | 0.00000145 | ||||
| 0x44d227ae | 60682969 | 158 days ago | IN | 0 BNB | 0.00000316 | ||||
| 0x44d227ae | 60516099 | 160 days ago | IN | 0 BNB | 0.00000316 | ||||
| 0x44d227ae | 60515680 | 160 days ago | IN | 0 BNB | 0.00000316 | ||||
| Transfer | 59325356 | 170 days ago | IN | 0.00052 BNB | 0.0000045 | ||||
| Transfer | 59324173 | 170 days ago | IN | 0.0005073 BNB | 0.0000045 | ||||
| Transfer | 57616110 | 185 days ago | IN | 0.002993 BNB | 0.00000225 | ||||
| Transfer | 57000641 | 190 days ago | IN | 0.00021152 BNB | 0.00000225 | ||||
| 0x44d227ae | 53729461 | 219 days ago | IN | 0 BNB | 0.00000298 | ||||
| 0x44d227ae | 53729458 | 219 days ago | IN | 0 BNB | 0.00000296 | ||||
| 0x44d227ae | 53729396 | 219 days ago | IN | 0 BNB | 0.00000298 | ||||
| 0x44d227ae | 53729391 | 219 days ago | IN | 0 BNB | 0.00000296 | ||||
| 0x44d227ae | 52433988 | 230 days ago | IN | 0 BNB | 0.00000325 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 81559555 | 6 secs ago | 0.00083933 BNB | ||||
| 81559554 | 6 secs ago | 0.00030532 BNB | ||||
| 81559553 | 6 secs ago | 0.00015611 BNB | ||||
| 81559552 | 7 secs ago | 0.00017542 BNB | ||||
| 81559551 | 7 secs ago | 0.0002547 BNB | ||||
| 81559550 | 8 secs ago | 0.0004149 BNB | ||||
| 81559549 | 8 secs ago | 0.00022823 BNB | ||||
| 81559548 | 9 secs ago | 0.00040454 BNB | ||||
| 81559547 | 9 secs ago | 0.0003088 BNB | ||||
| 81559546 | 10 secs ago | 0.00030374 BNB | ||||
| 81559545 | 10 secs ago | 0.000525 BNB | ||||
| 81559544 | 10 secs ago | 0.00022123 BNB | ||||
| 81559543 | 11 secs ago | 0.00008545 BNB | ||||
| 81559542 | 11 secs ago | 0.00015127 BNB | ||||
| 81559541 | 12 secs ago | 0.00025712 BNB | ||||
| 81559540 | 12 secs ago | 0.00050799 BNB | ||||
| 81559539 | 13 secs ago | 0.00059033 BNB | ||||
| 81559538 | 13 secs ago | 0.00011657 BNB | ||||
| 81559537 | 14 secs ago | 0.00028122 BNB | ||||
| 81559536 | 14 secs ago | 0.00033125 BNB | ||||
| 81559535 | 15 secs ago | 0.00016411 BNB | ||||
| 81559534 | 15 secs ago | 0.0002184 BNB | ||||
| 81559533 | 15 secs ago | 0.00029896 BNB | ||||
| 81559532 | 16 secs ago | 0.00021994 BNB | ||||
| 81559531 | 16 secs ago | 0.00040137 BNB |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SystemReward
Compiler Version
v0.6.4+commit.1dca32f3
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2020-09-02
*/
pragma solidity 0.6.4;
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;
}
}
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)
}
}
}
interface IParamSubscriber {
function updateParam(string calldata key, bytes calldata value) external;
}
contract SystemReward is System, IParamSubscriber, ISystemReward {
uint256 public constant MAX_REWARDS = 5e18;
uint256 public numOperator;
mapping(address => bool) operators;
modifier doInit() {
if (!alreadyInit) {
operators[LIGHT_CLIENT_ADDR] = true;
operators[INCENTIVIZE_ADDR] = true;
numOperator = 2;
alreadyInit = true;
}
_;
}
modifier onlyOperator() {
require(operators[msg.sender], "only operator is allowed to call the method");
_;
}
event rewardTo(address indexed to, uint256 amount);
event rewardEmpty();
event receiveDeposit(address indexed from, uint256 amount);
event addOperator(address indexed operator);
event deleteOperator(address indexed operator);
event paramChange(string key, bytes value);
receive() external payable {
if (msg.value > 0) {
emit receiveDeposit(msg.sender, msg.value);
}
}
function claimRewards(
address payable to,
uint256 amount
) external override(ISystemReward) doInit onlyOperator returns (uint256) {
uint256 actualAmount = amount < address(this).balance ? amount : address(this).balance;
if (actualAmount > MAX_REWARDS) {
actualAmount = MAX_REWARDS;
}
if (actualAmount != 0) {
to.transfer(actualAmount);
emit rewardTo(to, actualAmount);
} else {
emit rewardEmpty();
}
return actualAmount;
}
function isOperator(address addr) external view returns (bool) {
return operators[addr];
}
function updateParam(string calldata key, bytes calldata value) external override onlyGov {
if (Memory.compareStrings(key, "addOperator")) {
bytes memory valueLocal = value;
require(valueLocal.length == 20, "length of value for addOperator should be 20");
address operatorAddr;
assembly {
operatorAddr := mload(add(valueLocal, 20))
}
operators[operatorAddr] = true;
emit addOperator(operatorAddr);
} else if (Memory.compareStrings(key, "deleteOperator")) {
bytes memory valueLocal = value;
require(valueLocal.length == 20, "length of value for deleteOperator should be 20");
address operatorAddr;
assembly {
operatorAddr := mload(add(valueLocal, 20))
}
delete operators[operatorAddr];
emit deleteOperator(operatorAddr);
} else {
require(false, "unknown param");
}
emit paramChange(key, value);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "operator","type": "address"}],"name": "addOperator","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "operator","type": "address"}],"name": "deleteOperator","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": true,"internalType": "address","name": "from","type": "address"},{"indexed": false,"internalType": "uint256","name": "amount","type": "uint256"}],"name": "receiveDeposit","type": "event"},{"anonymous": false,"inputs": [],"name": "rewardEmpty","type": "event"},{"anonymous": false,"inputs": [{"indexed": true,"internalType": "address","name": "to","type": "address"},{"indexed": false,"internalType": "uint256","name": "amount","type": "uint256"}],"name": "rewardTo","type": "event"},{"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": "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": "MAX_REWARDS","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"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": [],"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": [{"internalType": "address payable","name": "to","type": "address"},{"internalType": "uint256","name": "amount","type": "uint256"}],"name": "claimRewards","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "address","name": "addr","type": "address"}],"name": "isOperator","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "numOperator","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
0x60806040526004361061016a5760003560e01c80639dc09262116100d1578063ac4317511161008a578063df8079e911610064578063df8079e9146104da578063f9a2bbc7146104ef578063fb5478b314610504578063fd6a687914610519576101ae565b8063ac431751146103e1578063c81b1662146104b0578063dc927faf146104c5576101ae565b80639dc092621461034a578063a1a11bf51461035f578063a78abc1614610374578063aa82dce114610389578063aad560631461039e578063ab51bb96146103b3576101ae565b806351e806721161012357806351e80672146102765780636d70f7ae1461028b5780636e47b482146102d257806375d47a0a146102e75780637e434d54146102fc5780639a99b4f014610311576101ae565b80630e2374a5146101b357806328087028146101e45780633a0b0eff146101f957806343756e5c14610220578063493279b11461023557806351b4dce314610261576101ae565b366101ae5734156101ac5760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101bf57600080fd5b506101c861052e565b604080516001600160a01b039092168252519081900360200190f35b3480156101f057600080fd5b506101c8610534565b34801561020557600080fd5b5061020e61053a565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101c8610540565b34801561024157600080fd5b5061024a610546565b6040805161ffff9092168252519081900360200190f35b34801561026d57600080fd5b506101c861054b565b34801561028257600080fd5b506101c8610551565b34801561029757600080fd5b506102be600480360360208110156102ae57600080fd5b50356001600160a01b0316610557565b604080519115158252519081900360200190f35b3480156102de57600080fd5b506101c8610575565b3480156102f357600080fd5b506101c861057b565b34801561030857600080fd5b506101c8610581565b34801561031d57600080fd5b5061020e6004803603604081101561033457600080fd5b506001600160a01b038135169060200135610587565b34801561035657600080fd5b506101c8610732565b34801561036b57600080fd5b506101c8610738565b34801561038057600080fd5b506102be61073e565b34801561039557600080fd5b506101c8610747565b3480156103aa57600080fd5b506101c861074d565b3480156103bf57600080fd5b506103c8610753565b6040805163ffffffff9092168252519081900360200190f35b3480156103ed57600080fd5b506101ac6004803603604081101561040457600080fd5b81019060208101813564010000000081111561041f57600080fd5b82018360208201111561043157600080fd5b8035906020019184600183028401116401000000008311171561045357600080fd5b91939092909160208101903564010000000081111561047157600080fd5b82018360208201111561048357600080fd5b803590602001918460018302840111640100000000831117156104a557600080fd5b509092509050610758565b3480156104bc57600080fd5b506101c8610adb565b3480156104d157600080fd5b506101c8610ae1565b3480156104e657600080fd5b506101c8610ae7565b3480156104fb57600080fd5b506101c8610aed565b34801561051057600080fd5b5061020e610af3565b34801561052557600080fd5b506101c8610aff565b61200181565b61200581565b60015481565b61100181565b603881565b61200681565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b61100881565b61200381565b6000805460ff1661060457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106525760405162461bcd60e51b815260040180806020018281038252602b815260200180610bed602b913960400191505060405180910390fd5b60004783106106615747610663565b825b9050674563918244f400008111156106805750674563918244f400005b8015610701576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156106bc573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261072b565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b33611007146107985760405162461bcd60e51b815260040180806020018281038252602e815260200180610c47602e913960400191505060405180910390fd5b6107fa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b059050565b156108d257606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508251929350506014909114905061087d5760405162461bcd60e51b815260040180806020018281038252602c815260200180610c75602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610a49565b61093784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b059050565b15610a0c57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506109ba5760405162461bcd60e51b815260040180806020018281038252602f815260200180610c18602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610a49565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61200481565b61100081565b674563918244f4000081565b61100481565b6000816040516020018082805190602001908083835b60208310610b3a5780518252601f199092019160209182019101610b1b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610ba85780518252601f199092019160209182019101610b89565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a
Deployed Bytecode
0x60806040526004361061016a5760003560e01c80639dc09262116100d1578063ac4317511161008a578063df8079e911610064578063df8079e9146104da578063f9a2bbc7146104ef578063fb5478b314610504578063fd6a687914610519576101ae565b8063ac431751146103e1578063c81b1662146104b0578063dc927faf146104c5576101ae565b80639dc092621461034a578063a1a11bf51461035f578063a78abc1614610374578063aa82dce114610389578063aad560631461039e578063ab51bb96146103b3576101ae565b806351e806721161012357806351e80672146102765780636d70f7ae1461028b5780636e47b482146102d257806375d47a0a146102e75780637e434d54146102fc5780639a99b4f014610311576101ae565b80630e2374a5146101b357806328087028146101e45780633a0b0eff146101f957806343756e5c14610220578063493279b11461023557806351b4dce314610261576101ae565b366101ae5734156101ac5760408051348152905133917f6c98249d85d88c3753a04a22230f595e4dc8d3dc86c34af35deeeedc861b89db919081900360200190a25b005b600080fd5b3480156101bf57600080fd5b506101c861052e565b604080516001600160a01b039092168252519081900360200190f35b3480156101f057600080fd5b506101c8610534565b34801561020557600080fd5b5061020e61053a565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101c8610540565b34801561024157600080fd5b5061024a610546565b6040805161ffff9092168252519081900360200190f35b34801561026d57600080fd5b506101c861054b565b34801561028257600080fd5b506101c8610551565b34801561029757600080fd5b506102be600480360360208110156102ae57600080fd5b50356001600160a01b0316610557565b604080519115158252519081900360200190f35b3480156102de57600080fd5b506101c8610575565b3480156102f357600080fd5b506101c861057b565b34801561030857600080fd5b506101c8610581565b34801561031d57600080fd5b5061020e6004803603604081101561033457600080fd5b506001600160a01b038135169060200135610587565b34801561035657600080fd5b506101c8610732565b34801561036b57600080fd5b506101c8610738565b34801561038057600080fd5b506102be61073e565b34801561039557600080fd5b506101c8610747565b3480156103aa57600080fd5b506101c861074d565b3480156103bf57600080fd5b506103c8610753565b6040805163ffffffff9092168252519081900360200190f35b3480156103ed57600080fd5b506101ac6004803603604081101561040457600080fd5b81019060208101813564010000000081111561041f57600080fd5b82018360208201111561043157600080fd5b8035906020019184600183028401116401000000008311171561045357600080fd5b91939092909160208101903564010000000081111561047157600080fd5b82018360208201111561048357600080fd5b803590602001918460018302840111640100000000831117156104a557600080fd5b509092509050610758565b3480156104bc57600080fd5b506101c8610adb565b3480156104d157600080fd5b506101c8610ae1565b3480156104e657600080fd5b506101c8610ae7565b3480156104fb57600080fd5b506101c8610aed565b34801561051057600080fd5b5061020e610af3565b34801561052557600080fd5b506101c8610aff565b61200181565b61200581565b60015481565b61100181565b603881565b61200681565b61200081565b6001600160a01b031660009081526002602052604090205460ff1690565b61100581565b61100881565b61200381565b6000805460ff1661060457600260208190527fe57bda0a954a7c7381b17b2c763e646ba2c60f67292d287ba583603e2c1c41668054600160ff19918216811790925561100560009081527fe25235fc0de9d7165652bef0846fefda506174abb9a190f03d0f7bcc6146dbce80548316841790559282558254161790555b3360009081526002602052604090205460ff166106525760405162461bcd60e51b815260040180806020018281038252602b815260200180610bed602b913960400191505060405180910390fd5b60004783106106615747610663565b825b9050674563918244f400008111156106805750674563918244f400005b8015610701576040516001600160a01b0385169082156108fc029083906000818181858888f193505050501580156106bc573d6000803e3d6000fd5b506040805182815290516001600160a01b038616917ff8b71c64315fc33b2ead2adfa487955065152a8ac33d9d5193aafd7f45dc15a0919081900360200190a261072b565b6040517fe589651933c2457488cc0d8e0941518abf748e799435e4e396d9c4d0b2db2d4d90600090a15b9392505050565b61100781565b61100681565b60005460ff1681565b61200281565b61300081565b600081565b33611007146107985760405162461bcd60e51b815260040180806020018281038252602e815260200180610c47602e913960400191505060405180910390fd5b6107fa84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600b81526a30b23227b832b930ba37b960a91b60208201529150610b059050565b156108d257606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250508251929350506014909114905061087d5760405162461bcd60e51b815260040180806020018281038252602c815260200180610c75602c913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19166001179055517f9870d7fe5d112134c55844951dedf365363006d9c588db07c4c85af6322a06199190a25050610a49565b61093784848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051808201909152600e81526d3232b632ba32a7b832b930ba37b960911b60208201529150610b059050565b15610a0c57606082828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050825192935050601490911490506109ba5760405162461bcd60e51b815260040180806020018281038252602f815260200180610c18602f913960400191505060405180910390fd5b60148101516001600160a01b038116600081815260026020526040808220805460ff19169055517fb40992a19dba61ea600e87fce607102bf5908dc89076217b6ca6ae195224f7029190a25050610a49565b6040805162461bcd60e51b815260206004820152600d60248201526c756e6b6e6f776e20706172616d60981b604482015290519081900360640190fd5b7f6cdb0ac70ab7f2e2d035cca5be60d89906f2dede7648ddbd7402189c1eeed17a848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050565b61100281565b61100381565b61200481565b61100081565b674563918244f4000081565b61100481565b6000816040516020018082805190602001908083835b60208310610b3a5780518252601f199092019160209182019101610b1b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b60208310610ba85780518252601f199092019160209182019101610b89565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490509291505056fe6f6e6c79206f70657261746f7220697320616c6c6f77656420746f2063616c6c20746865206d6574686f646c656e677468206f662076616c756520666f722064656c6574654f70657261746f722073686f756c64206265203230746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e74726163746c656e677468206f662076616c756520666f72206164644f70657261746f722073686f756c64206265203230a164736f6c6343000604000a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$64,416.55
Net Worth in BNB
Token Allocations
BNB
97.45%
POL
0.96%
TERK
0.72%
Others
0.87%
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BSC | 97.45% | $627.31 | 100.0704 | $62,775.29 | |
| BSC | 0.72% | $0.00 | 10,000 | $0.00 | |
| BSC | 0.40% | $0.00 | 10,000 | $0.00 | |
| BSC | 0.04% | 200,000,000 | $26.68 | ||
| BSC | 0.02% | $0.999582 | 16.01 | $16 | |
| BSC | $0.000089 | 50,000 | $4.43 | ||
| BSC | $0.000007 | 603,333 | $4.01 | ||
| BSC | 9,813,292,109.9193 | $1.59 | |||
| BSC | $628.06 | 0.0005012 | $0.3147 | ||
| BSC | $69,587.24 | 0.00000306 | $0.2127 | ||
| BSC | $0.000027 | 5,147.5322 | $0.1391 | ||
| POL | 0.96% | $0.106321 | 5,804.4899 | $617.14 | |
| POL | $0.000001 | 500,000 | $0.2737 | ||
| ETH | 0.35% | $2,011.91 | 0.111 | $223.37 | |
| ETH | 0.03% | $0.999956 | 20 | $20 | |
| ETH | $8.54 | 0.1908 | $1.63 | ||
| ETH | $51.64 | 0.006 | $0.3098 | ||
| HYPEREVM | $30.57 | 0.1 | $3.06 | ||
| OP | $2,009.73 | 0.000783 | $1.57 | ||
| MANTLE | $0.642223 | 1.2 | $0.770668 | ||
| BASE | $2,011.9 | 0.0001 | $0.20119 |
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 102 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=0x0000000000000000000000000000000000001002"
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(
`