Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 7 from a total of 7 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Add Vesting Cont... | 21679564 | 406 days ago | IN | 0 ETH | 0.00072749 | ||||
| Add Vesting Cont... | 21679562 | 406 days ago | IN | 0 ETH | 0.00073001 | ||||
| Add Vesting Cont... | 21679560 | 406 days ago | IN | 0 ETH | 0.00069884 | ||||
| Add Vesting Cont... | 21679558 | 406 days ago | IN | 0 ETH | 0.00071619 | ||||
| Add Vesting Cont... | 21679528 | 406 days ago | IN | 0 ETH | 0.00076777 | ||||
| Add Vesting Cont... | 21679528 | 406 days ago | IN | 0 ETH | 0.00076766 | ||||
| Add Vesting Cont... | 21679528 | 406 days ago | IN | 0 ETH | 0.0009258 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DataReader
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import './platform/access_controller/PlatformAccessController.sol';
interface IStaking {
function totalPools() external view returns (uint256);
function getPoolInfo(
uint256 _pid
)
external
view
returns (uint256, address, address, uint256, uint256, bool, uint256, uint256, uint256, uint256, bool);
function allPendingRewardsToken(address _user) external view returns (uint256[] memory);
function getUserInfo(uint256 _pid, address _account) external view returns (uint256 amount);
}
interface IVesting {
struct UserProperties {
bool isActive;
uint256 claimedAmount;
uint256 vestingId;
}
struct VestingProperties {
uint256 amountForUser;
uint256 startTime;
uint256 tickCount;
uint256 tickDuration;
uint256 unallocatedAmount;
bool active;
}
function userPropertiesList(address wallet) external view returns (UserProperties memory);
function vestingPropertiesList() external view returns (VestingProperties[] memory);
function amountForClaim(address wallet, uint256 timestamp) external view returns (uint256);
}
/**
* @title DataReader
* @notice Reads vesting and staking data for Propchain's web3 dashboards.
* @dev Supports multiple staking and vesting contracts dynamically.
*/
contract DataReader is PlatformAccessController {
struct UserVestingProperties {
string pool;
uint256 claimable;
uint256 total;
}
struct PoolInfo {
uint256 apyPercent;
uint256 totalStaked;
uint256 claimTimeLimit;
uint256 penaltyFee;
uint256 penaltyTimeLimit;
}
struct UserStakingProperties {
string version;
uint256 totalStaked;
uint256[] pendingRewards;
uint256[] stakedAmounts;
PoolInfo[] pools;
}
error ZeroAddress();
error IndexOutOfBounds();
/// @notice Registered vesting contracts
mapping(uint256 => IVesting) public vestings;
mapping(uint256 => string) public vestingPools;
uint256 public vestingsCount;
/// @notice Registered staking contracts
mapping(uint256 => IStaking) public stakingContracts;
mapping(uint256 => string) public stakingVersions;
uint256 public stakingCount;
event VestingContractAdded(uint256 indexed id, address contractAddress, string poolName);
event VestingContractRemoved(uint256 indexed id, address contractAddress);
event StakingContractAdded(uint256 indexed id, address contractAddress, string version);
event StakingContractRemoved(uint256 indexed id, address contractAddress);
/**
* @notice Initializes the contract
* @param adminPanel The address of the platform admin panel
*/
constructor(address adminPanel) {
if (adminPanel == address(0)) revert ZeroAddress();
_initiatePlatformAccessController(adminPanel);
}
/**
* @notice Adds a new vesting contract
* @param _contract Address of the vesting contract
* @param poolName Name of the vesting pool
*/
function addVestingContract(IVesting _contract, string calldata poolName) external onlyPlatformAdmin {
if (address(_contract) == address(0)) revert ZeroAddress();
vestings[vestingsCount] = _contract;
vestingPools[vestingsCount] = poolName;
emit VestingContractAdded(vestingsCount, address(_contract), poolName);
vestingsCount++;
}
/**
* @notice Removes a vesting contract
* @param index Index of the vesting contract to remove
*/
function removeVestingContract(uint256 index) external onlyPlatformAdmin {
if (index >= vestingsCount) revert IndexOutOfBounds();
emit VestingContractRemoved(index, address(vestings[index]));
if (index < vestingsCount - 1) {
vestings[index] = vestings[vestingsCount - 1];
vestingPools[index] = vestingPools[vestingsCount - 1];
}
delete vestings[vestingsCount - 1];
delete vestingPools[vestingsCount - 1];
vestingsCount--;
}
/**
* @notice Adds a new staking contract
* @param _contract Address of the staking contract
* @param version Version name (e.g., "v1", "v2")
*/
function addStakingContract(IStaking _contract, string calldata version) external onlyPlatformAdmin {
if (address(_contract) == address(0)) revert ZeroAddress();
stakingContracts[stakingCount] = _contract;
stakingVersions[stakingCount] = version;
emit StakingContractAdded(stakingCount, address(_contract), version);
stakingCount++;
}
/**
* @notice Removes a staking contract
* @param index Index of the staking contract to remove
*/
function removeStakingContract(uint256 index) external onlyPlatformAdmin {
if (index >= stakingCount) revert IndexOutOfBounds();
emit StakingContractRemoved(index, address(stakingContracts[index]));
if (index < stakingCount - 1) {
stakingContracts[index] = stakingContracts[stakingCount - 1];
stakingVersions[index] = stakingVersions[stakingCount - 1];
}
delete stakingContracts[stakingCount - 1];
delete stakingVersions[stakingCount - 1];
stakingCount--;
}
/**
* @notice Fetches user vesting data
* @param wallet Address of the user
* @param timestamp Current timestamp
*/
function getVestingData(
address wallet,
uint256 timestamp
) external view returns (UserVestingProperties[] memory vestingList) {
vestingList = new UserVestingProperties[](vestingsCount);
for (uint256 i = 0; i < vestingsCount; i++) {
IVesting vesting = vestings[i];
IVesting.UserProperties memory user = vesting.userPropertiesList(wallet);
if (!user.isActive) continue;
IVesting.VestingProperties[] memory properties = vesting.vestingPropertiesList();
if (user.vestingId >= properties.length) continue;
IVesting.VestingProperties memory usersProperties = properties[user.vestingId];
uint256 claimable = vesting.amountForClaim(wallet, timestamp);
vestingList[i] = UserVestingProperties({
pool: vestingPools[i],
claimable: claimable,
total: usersProperties.amountForUser > user.claimedAmount
? usersProperties.amountForUser - user.claimedAmount
: 0
});
}
}
/**
* @notice Fetches user staking data dynamically
* @param wallet Address of the user
*/
function getStakingData(address wallet) external view returns (UserStakingProperties[] memory stakingList) {
stakingList = new UserStakingProperties[](stakingCount);
for (uint256 i = 0; i < stakingCount; i++) {
IStaking staking = stakingContracts[i];
uint256 poolCount = staking.totalPools();
uint256[] memory pendingRewards = staking.allPendingRewardsToken(wallet);
PoolInfo[] memory pools = new PoolInfo[](poolCount);
uint256[] memory stakedAmounts = new uint256[](poolCount);
uint256 totalStaked = 0;
for (uint256 j = 0; j < poolCount; j++) {
pools[j] = getPoolInfo(staking, j + 1);
stakedAmounts[j] = staking.getUserInfo(j + 1, wallet);
totalStaked += pools[j].totalStaked;
}
stakingList[i] = UserStakingProperties({
version: stakingVersions[i],
totalStaked: totalStaked,
pendingRewards: pendingRewards,
stakedAmounts: stakedAmounts,
pools: pools
});
}
}
function getPoolInfo(IStaking staking, uint256 poolId) private view returns (PoolInfo memory) {
(
,
,
,
uint256 apyPercent,
uint256 totalStaked,
,
uint256 claimTimeLimit,
,
uint256 penaltyFee,
uint256 penaltyTimeLimit,
) = staking.getPoolInfo(poolId);
return PoolInfo(apyPercent, totalStaked, claimTimeLimit, penaltyFee, penaltyTimeLimit);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import "../admin_panel/PlatformAdminPanel.sol";
/**
* @title Abstract contract from which platform contracts with admin function are inherited
* @dev Contains the platform admin panel
* Contains modifier that checks whether sender is platform admin, use platform admin panel
*/
abstract contract PlatformAccessController {
address public _panel;
error CallerNotAdmin();
error AlreadyInitialized();
function _initiatePlatformAccessController(address adminPanel) internal {
if(address(_panel) != address(0))
revert AlreadyInitialized();
_panel = adminPanel;
}
/**
* @dev Modifier that makes function available for platform admins only
*/
modifier onlyPlatformAdmin() {
if(!PlatformAdminPanel(_panel).isAdmin(msgSender()))
revert CallerNotAdmin();
_;
}
function _isAdmin() internal view returns (bool) {
return PlatformAdminPanel(_panel).isAdmin(msgSender());
}
function msgSender() internal view virtual returns (address) {
return msg.sender;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
interface IPlatformAdminPanel {
function isAdmin(address wallet) external view returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import "./Iplatform_admin_panel/IPlatformAdminPanel.sol";
/**
* @title Platform admins holder contract
* @notice Used to check accessibility of senders to admin functions in platform contracts
*/
contract PlatformAdminPanel is IPlatformAdminPanel {
/**
* @notice Emit during root admin set and reset
*/
event SetRootAdmin(address indexed wallet);
event InsertAdminList(address[] adminList);
event RemoveAdminList(address[] adminList);
mapping(address => bool) private _adminMap;
address private _rootAdmin;
modifier onlyRootAdmin() {
require(_rootAdmin == msg.sender, "sender is not root admin");
_;
}
/**
* @notice Specify the root admin, only he has the rights to add and remove admins
*/
constructor(address rootAdminWallet) {
_setRootAdmin(rootAdminWallet);
}
/**
* @notice Needed to determine if the user has admin rights for platform contracts
*/
function isAdmin(address wallet)
external
view
virtual
override
returns (bool)
{
return wallet == _rootAdmin || _adminMap[wallet];
}
function rootAdmin() external view returns (address) {
return _rootAdmin;
}
/**
* @notice Only root admin can call
*/
function insertAdminList(address[] calldata adminList)
external
onlyRootAdmin
{
require(0 < adminList.length, "empty admin list");
require(20 >= adminList.length, "list too large");
uint256 index = adminList.length;
while (0 < index) {
--index;
_adminMap[adminList[index]] = true;
}
emit InsertAdminList(adminList);
}
/**
* @notice Only root admin can call
*/
function removeAdminList(address[] calldata adminList)
external
onlyRootAdmin
{
require(0 < adminList.length, "empty admin list");
require(20 >= adminList.length, "list too large");
uint256 index = adminList.length;
while (0 < index) {
--index;
_adminMap[adminList[index]] = false;
}
emit RemoveAdminList(adminList);
}
/**
* @notice Only root admin can call
*/
function setRootAdmin(address rootAdminWallet) external onlyRootAdmin {
_setRootAdmin(rootAdminWallet);
}
function _setRootAdmin(address wallet) private {
require(wallet != address(0), "wallet is zero address");
_rootAdmin = wallet;
emit SetRootAdmin(wallet);
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"adminPanel","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CallerNotAdmin","type":"error"},{"inputs":[],"name":"IndexOutOfBounds","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"version","type":"string"}],"name":"StakingContractAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"}],"name":"StakingContractRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"string","name":"poolName","type":"string"}],"name":"VestingContractAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"}],"name":"VestingContractRemoved","type":"event"},{"inputs":[],"name":"_panel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IStaking","name":"_contract","type":"address"},{"internalType":"string","name":"version","type":"string"}],"name":"addStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IVesting","name":"_contract","type":"address"},{"internalType":"string","name":"poolName","type":"string"}],"name":"addVestingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getStakingData","outputs":[{"components":[{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256[]","name":"pendingRewards","type":"uint256[]"},{"internalType":"uint256[]","name":"stakedAmounts","type":"uint256[]"},{"components":[{"internalType":"uint256","name":"apyPercent","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"claimTimeLimit","type":"uint256"},{"internalType":"uint256","name":"penaltyFee","type":"uint256"},{"internalType":"uint256","name":"penaltyTimeLimit","type":"uint256"}],"internalType":"struct DataReader.PoolInfo[]","name":"pools","type":"tuple[]"}],"internalType":"struct DataReader.UserStakingProperties[]","name":"stakingList","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getVestingData","outputs":[{"components":[{"internalType":"string","name":"pool","type":"string"},{"internalType":"uint256","name":"claimable","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"internalType":"struct DataReader.UserVestingProperties[]","name":"vestingList","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeVestingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingContracts","outputs":[{"internalType":"contract IStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingVersions","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vestingPools","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vestings","outputs":[{"internalType":"contract IVesting","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162001d5038038062001d508339810160408190526200003491620000ba565b6001600160a01b0381166200005c5760405163d92e233d60e01b815260040160405180910390fd5b62000067816200006e565b50620000ec565b6000546001600160a01b031615620000985760405162dc149f60e41b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215620000cd57600080fd5b81516001600160a01b0381168114620000e557600080fd5b9392505050565b611c5480620000fc6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063821bee731161008c578063993b189311610066578063993b1893146101de578063a6031571146101f1578063bad1ec8d14610204578063e473e6e01461022457600080fd5b8063821bee731461018f5780638b4db06b146101b8578063929f3299146101cb57600080fd5b806303ccc472146100d45780630c540e14146100f05780631109b19a146100f957806367a7b5f61461013a57806370ab07951461015a5780637b43a0521461017a575b600080fd5b6100dd60035481565b6040519081526020015b60405180910390f35b6100dd60065481565b6101226101073660046112b9565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100e7565b61014d6101483660046112e7565b610237565b6040516100e7919061138c565b61016d6101683660046112b9565b61069b565b6040516100e7919061149a565b61018d6101883660046112b9565b610735565b005b61012261019d3660046112b9565b6001602052600090815260409020546001600160a01b031681565b600054610122906001600160a01b031681565b61018d6101d93660046114f5565b61095c565b61016d6101ec3660046112b9565b610ab5565b61018d6101ff3660046112b9565b610ace565b610217610212366004611549565b610cf0565b6040516100e79190611575565b61018d6102323660046114f5565b611030565b60606006546001600160401b03811115610253576102536115e8565b6040519080825280602002602001820160405280156102b657816020015b6102a36040518060a0016040528060608152602001600081526020016060815260200160608152602001606081525090565b8152602001906001900390816102715790505b50905060005b60065481101561069557600081815260046020818152604080842054815163559e3f2960e11b815291516001600160a01b039091169493859363ab3c7e5293808301939192908290030181865afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906115fe565b604051637d47ad0b60e11b81526001600160a01b03878116600483015291925060009184169063fa8f5a1690602401600060405180830381865afa15801561038b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103b39190810190611692565b90506000826001600160401b038111156103cf576103cf6115e8565b60405190808252806020026020018201604052801561043257816020015b61041f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816103ed5790505b5090506000836001600160401b0381111561044f5761044f6115e8565b604051908082528060200260200182016040528015610478578160200160208202803683370190505b5090506000805b8581101561059c5761049b8761049683600161173d565b61117f565b8482815181106104ad576104ad611750565b60209081029190910101526001600160a01b038716631069f3b56104d283600161173d565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038d166024820152604401602060405180830381865afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054191906115fe565b83828151811061055357610553611750565b60200260200101818152505083818151811061057157610571611750565b60200260200101516020015182610588919061173d565b91508061059481611766565b91505061047f565b506040518060a00160405280600560008a815260200190815260200160002080546105c69061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061177f565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b505050505081526020018281526020018581526020018381526020018481525088888151811061067157610671611750565b6020026020010181905250505050505050808061068d90611766565b9150506102bc565b50919050565b600560205260009081526040902080546106b49061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546106e09061177f565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b505050505081565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906117c8565b6107cc5760405163036c8cf960e11b815260040160405180910390fd5b60035481106107ee57604051634e23d03560e01b815260040160405180910390fd5b6000818152600160209081526040918290205491516001600160a01b03909216825282917f4c8609ed79092664bb9059e4694e99a3b14482f6fa59b3d4f5e2bb3d07c45928910160405180910390a2600160035461084c91906117e3565b8110156108e45760016000600160035461086691906117e3565b8152602080820192909252604090810160009081205484825260019384905291812080546001600160a01b0319166001600160a01b03909316929092179091556003546002926108b5916117e3565b81526020019081526020016000206002600083815260200190815260200160002090816108e29190611845565b505b6001600060016003546108f791906117e3565b81526020810191909152604001600090812080546001600160a01b03191690556003546002919061092a906001906117e3565b815260200190815260200160002060006109449190611263565b6003805490600061095483611925565b919050555050565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d691906117c8565b6109f35760405163036c8cf960e11b815260040160405180910390fd5b6001600160a01b038316610a1a5760405163d92e233d60e01b815260040160405180910390fd5b60038054600090815260016020908152604080832080546001600160a01b0319166001600160a01b038916179055925482526002905220610a5c82848361193c565b506003547febb6a38bd990983fdeccabf05729fe968f9bc99d9d719ffce251d481a0671124848484604051610a93939291906119fb565b60405180910390a260038054906000610aab83611766565b9190505550505050565b600260205260009081526040902080546106b49061177f565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4891906117c8565b610b655760405163036c8cf960e11b815260040160405180910390fd5b6006548110610b8757604051634e23d03560e01b815260040160405180910390fd5b6000818152600460209081526040918290205491516001600160a01b03909216825282917fbcefefd4afe5fa41ef327afb8dd781392442528836fe5f82e0db531da24a6529910160405180910390a26001600654610be591906117e3565b811015610c8057600460006001600654610bff91906117e3565b81526020808201929092526040908101600090812054848252600490935290812080546001600160a01b0319166001600160a01b039093169290921790915560065460059190610c51906001906117e3565b8152602001908152602001600020600560008381526020019081526020016000209081610c7e9190611845565b505b600460006001600654610c9391906117e3565b81526020810191909152604001600090812080546001600160a01b031916905560065460059190610cc6906001906117e3565b81526020019081526020016000206000610ce09190611263565b6006805490600061095483611925565b60606003546001600160401b03811115610d0c57610d0c6115e8565b604051908082528060200260200182016040528015610d6157816020015b610d4e60405180606001604052806060815260200160008152602001600081525090565b815260200190600190039081610d2a5790505b50905060005b60035481101561102957600081815260016020526040808220549051632f5db57360e01b81526001600160a01b03878116600483015290911691908290632f5db57390602401606060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190611a3b565b8051909150610dfe575050611017565b6000826001600160a01b031663dc2daffe6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e3e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e669190810190611a9b565b90508051826040015110610e7c57505050611017565b600081836040015181518110610e9457610e94611750565b6020908102919091010151604051636b59a3ab60e11b81526001600160a01b038a81166004830152602482018a905291925060009186169063d6b3475690604401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1691906115fe565b90506040518060600160405280600260008981526020019081526020016000208054610f419061177f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6d9061177f565b8015610fba5780601f10610f8f57610100808354040283529160200191610fba565b820191906000526020600020905b815481529060010190602001808311610f9d57829003601f168201915b505050505081526020018281526020018560200151846000015111610fe0576000610ff1565b60208601518451610ff191906117e3565b81525087878151811061100657611006611750565b602002602001018190525050505050505b8061102181611766565b915050610d67565b5092915050565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110aa91906117c8565b6110c75760405163036c8cf960e11b815260040160405180910390fd5b6001600160a01b0383166110ee5760405163d92e233d60e01b815260040160405180910390fd5b60068054600090815260046020908152604080832080546001600160a01b0319166001600160a01b03891617905592548252600590522061113082848361193c565b506006547f225748d69ee8f4771078d0869f3d3ec3acbd72c9c49b27f4ef8c5078cc4e9256848484604051611167939291906119fb565b60405180910390a260068054906000610aab83611766565b6111b16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000806000806000876001600160a01b0316632f380b35886040518263ffffffff1660e01b81526004016111e791815260200190565b61016060405180830381865afa158015611205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112299190611b7d565b506040805160a081018252978852602088019690965294860192909252506060840152506080820152985050505050505050505b92915050565b50805461126f9061177f565b6000825580601f1061127f575050565b601f01602090049060005260206000209081019061129d91906112a0565b50565b5b808211156112b557600081556001016112a1565b5090565b6000602082840312156112cb57600080fd5b5035919050565b6001600160a01b038116811461129d57600080fd5b6000602082840312156112f957600080fd5b8135611304816112d2565b9392505050565b6000815180845260005b8181101561133157602081850181015186830182015201611315565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101561138157815187529582019590820190600101611365565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561148c57603f19898403018552815160a081518186526113d98287018261130b565b9050898301518a870152888301518682038a8801526113f88282611351565b915050606080840151878303828901526114128382611351565b6080958601518982038a8801528051808352908e0196600095509250908d01905b80851015611474578651805183528e8101518f8401528d8101518e840152848101518584015283015183830152958d01956001949094019390850190611433565b50998c019997505050938901935050506001016113b3565b509098975050505050505050565b602081526000611304602083018461130b565b60008083601f8401126114bf57600080fd5b5081356001600160401b038111156114d657600080fd5b6020830191508360208285010111156114ee57600080fd5b9250929050565b60008060006040848603121561150a57600080fd5b8335611515816112d2565b925060208401356001600160401b0381111561153057600080fd5b61153c868287016114ad565b9497909650939450505050565b6000806040838503121561155c57600080fd5b8235611567816112d2565b946020939093013593505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561148c57603f198984030185528151606081518186526115c28287018261130b565b838b0151878c01529289015195890195909552509487019492509086019060010161159c565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561161057600080fd5b5051919050565b60405160c081016001600160401b0381118282101715611639576116396115e8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611667576116676115e8565b604052919050565b60006001600160401b03821115611688576116886115e8565b5060051b60200190565b600060208083850312156116a557600080fd5b82516001600160401b038111156116bb57600080fd5b8301601f810185136116cc57600080fd5b80516116df6116da8261166f565b61163f565b81815260059190911b820183019083810190878311156116fe57600080fd5b928401925b8284101561171c57835182529284019290840190611703565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561125d5761125d611727565b634e487b7160e01b600052603260045260246000fd5b60006001820161177857611778611727565b5060010190565b600181811c9082168061179357607f821691505b60208210810361069557634e487b7160e01b600052602260045260246000fd5b805180151581146117c357600080fd5b919050565b6000602082840312156117da57600080fd5b611304826117b3565b8181038181111561125d5761125d611727565b601f82111561184057600081815260208120601f850160051c8101602086101561181d5750805b601f850160051c820191505b8181101561183c57828155600101611829565b5050505b505050565b818103611850575050565b61185a825461177f565b6001600160401b03811115611871576118716115e8565b6118858161187f845461177f565b846117f6565b6000601f8211600181146118b957600083156118a15750848201545b600019600385901b1c1916600184901b17845561191e565b600085815260209020601f19841690600086815260209020845b838110156118f357828601548255600195860195909101906020016118d3565b50858310156119115781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60008161193457611934611727565b506000190190565b6001600160401b03831115611953576119536115e8565b61196783611961835461177f565b836117f6565b6000601f84116001811461199b57600085156119835750838201355b600019600387901b1c1916600186901b17835561191e565b600083815260209020601f19861690835b828110156119cc57868501358255602094850194600190920191016119ac565b50868210156119e95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060608284031215611a4d57600080fd5b604051606081018181106001600160401b0382111715611a6f57611a6f6115e8565b604052611a7b836117b3565b815260208301516020820152604083015160408201528091505092915050565b60006020808385031215611aae57600080fd5b82516001600160401b03811115611ac457600080fd5b8301601f81018513611ad557600080fd5b8051611ae36116da8261166f565b81815260c09182028301840191848201919088841115611b0257600080fd5b938501935b83851015611b715780858a031215611b1f5760008081fd5b611b27611617565b85518152868601518782015260408087015190820152606080870151908201526080808701519082015260a0611b5e8188016117b3565b9082015283529384019391850191611b07565b50979650505050505050565b60008060008060008060008060008060006101608c8e031215611b9f57600080fd5b8b519a5060208c0151611bb1816112d2565b60408d0151909a50611bc2816112d2565b60608d015160808e0151919a5098509650611bdf60a08d016117b3565b955060c08c0151945060e08c015193506101008c015192506101208c01519150611c0c6101408d016117b3565b90509295989b509295989b909396995056fea2646970667358221220a33819712effdeaafd2cb942ef361932bebef43100fb75db57ec3d55a8f891fa64736f6c6343000813003300000000000000000000000038d54fb707905b3979f011af2aec0f4ad166cda6
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063821bee731161008c578063993b189311610066578063993b1893146101de578063a6031571146101f1578063bad1ec8d14610204578063e473e6e01461022457600080fd5b8063821bee731461018f5780638b4db06b146101b8578063929f3299146101cb57600080fd5b806303ccc472146100d45780630c540e14146100f05780631109b19a146100f957806367a7b5f61461013a57806370ab07951461015a5780637b43a0521461017a575b600080fd5b6100dd60035481565b6040519081526020015b60405180910390f35b6100dd60065481565b6101226101073660046112b9565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100e7565b61014d6101483660046112e7565b610237565b6040516100e7919061138c565b61016d6101683660046112b9565b61069b565b6040516100e7919061149a565b61018d6101883660046112b9565b610735565b005b61012261019d3660046112b9565b6001602052600090815260409020546001600160a01b031681565b600054610122906001600160a01b031681565b61018d6101d93660046114f5565b61095c565b61016d6101ec3660046112b9565b610ab5565b61018d6101ff3660046112b9565b610ace565b610217610212366004611549565b610cf0565b6040516100e79190611575565b61018d6102323660046114f5565b611030565b60606006546001600160401b03811115610253576102536115e8565b6040519080825280602002602001820160405280156102b657816020015b6102a36040518060a0016040528060608152602001600081526020016060815260200160608152602001606081525090565b8152602001906001900390816102715790505b50905060005b60065481101561069557600081815260046020818152604080842054815163559e3f2960e11b815291516001600160a01b039091169493859363ab3c7e5293808301939192908290030181865afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906115fe565b604051637d47ad0b60e11b81526001600160a01b03878116600483015291925060009184169063fa8f5a1690602401600060405180830381865afa15801561038b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103b39190810190611692565b90506000826001600160401b038111156103cf576103cf6115e8565b60405190808252806020026020018201604052801561043257816020015b61041f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816103ed5790505b5090506000836001600160401b0381111561044f5761044f6115e8565b604051908082528060200260200182016040528015610478578160200160208202803683370190505b5090506000805b8581101561059c5761049b8761049683600161173d565b61117f565b8482815181106104ad576104ad611750565b60209081029190910101526001600160a01b038716631069f3b56104d283600161173d565b6040516001600160e01b031960e084901b16815260048101919091526001600160a01b038d166024820152604401602060405180830381865afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054191906115fe565b83828151811061055357610553611750565b60200260200101818152505083818151811061057157610571611750565b60200260200101516020015182610588919061173d565b91508061059481611766565b91505061047f565b506040518060a00160405280600560008a815260200190815260200160002080546105c69061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546105f29061177f565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b505050505081526020018281526020018581526020018381526020018481525088888151811061067157610671611750565b6020026020010181905250505050505050808061068d90611766565b9150506102bc565b50919050565b600560205260009081526040902080546106b49061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546106e09061177f565b801561072d5780601f106107025761010080835404028352916020019161072d565b820191906000526020600020905b81548152906001019060200180831161071057829003601f168201915b505050505081565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa15801561078b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107af91906117c8565b6107cc5760405163036c8cf960e11b815260040160405180910390fd5b60035481106107ee57604051634e23d03560e01b815260040160405180910390fd5b6000818152600160209081526040918290205491516001600160a01b03909216825282917f4c8609ed79092664bb9059e4694e99a3b14482f6fa59b3d4f5e2bb3d07c45928910160405180910390a2600160035461084c91906117e3565b8110156108e45760016000600160035461086691906117e3565b8152602080820192909252604090810160009081205484825260019384905291812080546001600160a01b0319166001600160a01b03909316929092179091556003546002926108b5916117e3565b81526020019081526020016000206002600083815260200190815260200160002090816108e29190611845565b505b6001600060016003546108f791906117e3565b81526020810191909152604001600090812080546001600160a01b03191690556003546002919061092a906001906117e3565b815260200190815260200160002060006109449190611263565b6003805490600061095483611925565b919050555050565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d691906117c8565b6109f35760405163036c8cf960e11b815260040160405180910390fd5b6001600160a01b038316610a1a5760405163d92e233d60e01b815260040160405180910390fd5b60038054600090815260016020908152604080832080546001600160a01b0319166001600160a01b038916179055925482526002905220610a5c82848361193c565b506003547febb6a38bd990983fdeccabf05729fe968f9bc99d9d719ffce251d481a0671124848484604051610a93939291906119fb565b60405180910390a260038054906000610aab83611766565b9190505550505050565b600260205260009081526040902080546106b49061177f565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4891906117c8565b610b655760405163036c8cf960e11b815260040160405180910390fd5b6006548110610b8757604051634e23d03560e01b815260040160405180910390fd5b6000818152600460209081526040918290205491516001600160a01b03909216825282917fbcefefd4afe5fa41ef327afb8dd781392442528836fe5f82e0db531da24a6529910160405180910390a26001600654610be591906117e3565b811015610c8057600460006001600654610bff91906117e3565b81526020808201929092526040908101600090812054848252600490935290812080546001600160a01b0319166001600160a01b039093169290921790915560065460059190610c51906001906117e3565b8152602001908152602001600020600560008381526020019081526020016000209081610c7e9190611845565b505b600460006001600654610c9391906117e3565b81526020810191909152604001600090812080546001600160a01b031916905560065460059190610cc6906001906117e3565b81526020019081526020016000206000610ce09190611263565b6006805490600061095483611925565b60606003546001600160401b03811115610d0c57610d0c6115e8565b604051908082528060200260200182016040528015610d6157816020015b610d4e60405180606001604052806060815260200160008152602001600081525090565b815260200190600190039081610d2a5790505b50905060005b60035481101561102957600081815260016020526040808220549051632f5db57360e01b81526001600160a01b03878116600483015290911691908290632f5db57390602401606060405180830381865afa158015610dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dee9190611a3b565b8051909150610dfe575050611017565b6000826001600160a01b031663dc2daffe6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e3e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e669190810190611a9b565b90508051826040015110610e7c57505050611017565b600081836040015181518110610e9457610e94611750565b6020908102919091010151604051636b59a3ab60e11b81526001600160a01b038a81166004830152602482018a905291925060009186169063d6b3475690604401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1691906115fe565b90506040518060600160405280600260008981526020019081526020016000208054610f419061177f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6d9061177f565b8015610fba5780601f10610f8f57610100808354040283529160200191610fba565b820191906000526020600020905b815481529060010190602001808311610f9d57829003601f168201915b505050505081526020018281526020018560200151846000015111610fe0576000610ff1565b60208601518451610ff191906117e3565b81525087878151811061100657611006611750565b602002602001018190525050505050505b8061102181611766565b915050610d67565b5092915050565b6000546001600160a01b03166324d7806c336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611086573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110aa91906117c8565b6110c75760405163036c8cf960e11b815260040160405180910390fd5b6001600160a01b0383166110ee5760405163d92e233d60e01b815260040160405180910390fd5b60068054600090815260046020908152604080832080546001600160a01b0319166001600160a01b03891617905592548252600590522061113082848361193c565b506006547f225748d69ee8f4771078d0869f3d3ec3acbd72c9c49b27f4ef8c5078cc4e9256848484604051611167939291906119fb565b60405180910390a260068054906000610aab83611766565b6111b16040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000806000806000876001600160a01b0316632f380b35886040518263ffffffff1660e01b81526004016111e791815260200190565b61016060405180830381865afa158015611205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112299190611b7d565b506040805160a081018252978852602088019690965294860192909252506060840152506080820152985050505050505050505b92915050565b50805461126f9061177f565b6000825580601f1061127f575050565b601f01602090049060005260206000209081019061129d91906112a0565b50565b5b808211156112b557600081556001016112a1565b5090565b6000602082840312156112cb57600080fd5b5035919050565b6001600160a01b038116811461129d57600080fd5b6000602082840312156112f957600080fd5b8135611304816112d2565b9392505050565b6000815180845260005b8181101561133157602081850181015186830182015201611315565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101561138157815187529582019590820190600101611365565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561148c57603f19898403018552815160a081518186526113d98287018261130b565b9050898301518a870152888301518682038a8801526113f88282611351565b915050606080840151878303828901526114128382611351565b6080958601518982038a8801528051808352908e0196600095509250908d01905b80851015611474578651805183528e8101518f8401528d8101518e840152848101518584015283015183830152958d01956001949094019390850190611433565b50998c019997505050938901935050506001016113b3565b509098975050505050505050565b602081526000611304602083018461130b565b60008083601f8401126114bf57600080fd5b5081356001600160401b038111156114d657600080fd5b6020830191508360208285010111156114ee57600080fd5b9250929050565b60008060006040848603121561150a57600080fd5b8335611515816112d2565b925060208401356001600160401b0381111561153057600080fd5b61153c868287016114ad565b9497909650939450505050565b6000806040838503121561155c57600080fd5b8235611567816112d2565b946020939093013593505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b8381101561148c57603f198984030185528151606081518186526115c28287018261130b565b838b0151878c01529289015195890195909552509487019492509086019060010161159c565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561161057600080fd5b5051919050565b60405160c081016001600160401b0381118282101715611639576116396115e8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611667576116676115e8565b604052919050565b60006001600160401b03821115611688576116886115e8565b5060051b60200190565b600060208083850312156116a557600080fd5b82516001600160401b038111156116bb57600080fd5b8301601f810185136116cc57600080fd5b80516116df6116da8261166f565b61163f565b81815260059190911b820183019083810190878311156116fe57600080fd5b928401925b8284101561171c57835182529284019290840190611703565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561125d5761125d611727565b634e487b7160e01b600052603260045260246000fd5b60006001820161177857611778611727565b5060010190565b600181811c9082168061179357607f821691505b60208210810361069557634e487b7160e01b600052602260045260246000fd5b805180151581146117c357600080fd5b919050565b6000602082840312156117da57600080fd5b611304826117b3565b8181038181111561125d5761125d611727565b601f82111561184057600081815260208120601f850160051c8101602086101561181d5750805b601f850160051c820191505b8181101561183c57828155600101611829565b5050505b505050565b818103611850575050565b61185a825461177f565b6001600160401b03811115611871576118716115e8565b6118858161187f845461177f565b846117f6565b6000601f8211600181146118b957600083156118a15750848201545b600019600385901b1c1916600184901b17845561191e565b600085815260209020601f19841690600086815260209020845b838110156118f357828601548255600195860195909101906020016118d3565b50858310156119115781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60008161193457611934611727565b506000190190565b6001600160401b03831115611953576119536115e8565b61196783611961835461177f565b836117f6565b6000601f84116001811461199b57600085156119835750838201355b600019600387901b1c1916600186901b17835561191e565b600083815260209020601f19861690835b828110156119cc57868501358255602094850194600190920191016119ac565b50868210156119e95760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060608284031215611a4d57600080fd5b604051606081018181106001600160401b0382111715611a6f57611a6f6115e8565b604052611a7b836117b3565b815260208301516020820152604083015160408201528091505092915050565b60006020808385031215611aae57600080fd5b82516001600160401b03811115611ac457600080fd5b8301601f81018513611ad557600080fd5b8051611ae36116da8261166f565b81815260c09182028301840191848201919088841115611b0257600080fd5b938501935b83851015611b715780858a031215611b1f5760008081fd5b611b27611617565b85518152868601518782015260408087015190820152606080870151908201526080808701519082015260a0611b5e8188016117b3565b9082015283529384019391850191611b07565b50979650505050505050565b60008060008060008060008060008060006101608c8e031215611b9f57600080fd5b8b519a5060208c0151611bb1816112d2565b60408d0151909a50611bc2816112d2565b60608d015160808e0151919a5098509650611bdf60a08d016117b3565b955060c08c0151945060e08c015193506101008c015192506101208c01519150611c0c6101408d016117b3565b90509295989b509295989b909396995056fea2646970667358221220a33819712effdeaafd2cb942ef361932bebef43100fb75db57ec3d55a8f891fa64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000038d54fb707905b3979f011af2aec0f4ad166cda6
-----Decoded View---------------
Arg [0] : adminPanel (address): 0x38d54fB707905B3979f011aF2aec0f4aD166cdA6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000038d54fb707905b3979f011af2aec0f4ad166cda6
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.