| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| 0xcf6b39b90fa36c83e518e37030da7fcc0d62fee2333c1c8f7359406b8fea8e94 | Shield | (pending) | 23 hrs ago | IN | 0 ETH | (Pending) | |||
| Transact | 24566451 | 10 mins ago | IN | 0 ETH | 0.000091 | ||||
| Transact | 24566380 | 25 mins ago | IN | 0 ETH | 0.00004286 | ||||
| Transact | 24566373 | 26 mins ago | IN | 0 ETH | 0.00004239 | ||||
| Transact | 24566322 | 36 mins ago | IN | 0 ETH | 0.00004555 | ||||
| Shield | 24566133 | 1 hr ago | IN | 0 ETH | 0.00003431 | ||||
| Transact | 24566072 | 1 hr ago | IN | 0 ETH | 0.00014158 | ||||
| Transact | 24566056 | 1 hr ago | IN | 0 ETH | 0.0000411 | ||||
| Transact | 24565998 | 1 hr ago | IN | 0 ETH | 0.00002297 | ||||
| Shield | 24565994 | 1 hr ago | IN | 0 ETH | 0.00003339 | ||||
| Shield | 24565989 | 1 hr ago | IN | 0 ETH | 0.00003643 | ||||
| Shield | 24565970 | 1 hr ago | IN | 0 ETH | 0.00004004 | ||||
| Transact | 24565936 | 1 hr ago | IN | 0 ETH | 0.00007413 | ||||
| Transact | 24565907 | 2 hrs ago | IN | 0 ETH | 0.0000555 | ||||
| Transact | 24565896 | 2 hrs ago | IN | 0 ETH | 0.00006726 | ||||
| Shield | 24565695 | 2 hrs ago | IN | 0 ETH | 0.00009278 | ||||
| Transact | 24565632 | 2 hrs ago | IN | 0 ETH | 0.00006883 | ||||
| Transact | 24565456 | 3 hrs ago | IN | 0 ETH | 0.0000989 | ||||
| Transact | 24565398 | 3 hrs ago | IN | 0 ETH | 0.00007555 | ||||
| Transact | 24565194 | 4 hrs ago | IN | 0 ETH | 0.0001418 | ||||
| Shield | 24565174 | 4 hrs ago | IN | 0 ETH | 0.00020147 | ||||
| Transact | 24565158 | 4 hrs ago | IN | 0 ETH | 0.00015609 | ||||
| Transact | 24565133 | 4 hrs ago | IN | 0 ETH | 0.00014977 | ||||
| Transact | 24565100 | 4 hrs ago | IN | 0 ETH | 0.00016475 | ||||
| Shield | 24564982 | 5 hrs ago | IN | 0 ETH | 0.00007293 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PausableUpgradableProxy
Compiler Version
v0.8.12+commit.f00d7308
Optimization Enabled:
Yes with 1600 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
pragma abicoder v2;
// OpenZeppelin v4
import { StorageSlot } from "@openzeppelin/contracts/utils/StorageSlot.sol";
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
/**
* @title PausableUpgradableProxy
* @author Railgun Contributors
* @notice Delegates calls to implementation address
* @dev Calls are reverted if the contract is paused
*/
contract PausableUpgradableProxy {
// Storage slot locations
bytes32 private constant IMPLEMENTATION_SLOT = bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1);
bytes32 private constant ADMIN_SLOT = bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1);
bytes32 private constant PAUSED_SLOT = bytes32(uint256(keccak256("eip1967.proxy.paused")) - 1);
// Events
event ProxyUpgrade(address previousImplementation, address newImplementation);
event ProxyOwnershipTransfer(address previousOwner, address newOwner);
event ProxyPause();
event ProxyUnpause();
/**
* @notice Sets initial specified admin value
* Implementation is set as 0x0 and contract is created as paused
* @dev Implementation must be set before unpausing
*/
constructor(address _admin) {
// Set initial value for admin
StorageSlot.getAddressSlot(ADMIN_SLOT).value = _admin;
// Explicitly initialize implementation as 0
StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = address(0);
// Explicitly initialize as paused
StorageSlot.getBooleanSlot(PAUSED_SLOT).value = true;
}
/**
* @notice Reverts if proxy is paused
*/
modifier notPaused() {
// Revert if the contract is paused
require(!StorageSlot.getBooleanSlot(PAUSED_SLOT).value, "Proxy: Contract is paused");
_;
}
/**
* @notice Delegates call to implementation
*/
function delegate() internal notPaused {
// Get implementation
address implementation = StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;
// Check that implementation exists
require(Address.isContract(implementation), "Proxy: Implementation doesn't exist");
// solhint-disable-next-line no-inline-assembly
assembly {
// Copy msg.data. We take full control of memory in this inline assembly
// block because it will not return to Solidity code. We overwrite the
// Solidity scratch pad at memory position 0.
calldatacopy(0, 0, calldatasize())
// Call the implementation.
// out and outsize are 0 because we don't know the size yet.
let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
// Copy the returned data.
returndatacopy(0, 0, returndatasize())
switch result
// delegatecall returns 0 on error.
case 0 { revert(0, returndatasize()) }
default { return(0, returndatasize()) }
}
}
/**
* @notice Prevents calls unless caller is owner
* @dev This should be on all external/public functions that aren't the fallback
*/
modifier onlyOwner() {
if (msg.sender == StorageSlot.getAddressSlot(ADMIN_SLOT).value) {
_;
} else {
// Redirect to delegate if caller isn't owner
delegate();
}
}
/**
* @notice fallback function that delegates calls with calladata
*/
fallback() external payable {
delegate();
}
/**
* @notice fallback function that delegates calls with no calladata
*/
receive() external payable {
delegate();
}
/**
* @notice Transfers ownership to new address
* @param _newOwner - Address to transfer ownership to
*/
function transferOwnership(address _newOwner) external onlyOwner {
require(_newOwner != address(0), "Proxy: Preventing potential accidental burn");
// Get admin slot
StorageSlot.AddressSlot storage admin = StorageSlot.getAddressSlot(ADMIN_SLOT);
// Emit event
emit ProxyOwnershipTransfer(admin.value, _newOwner);
// Store new admin
admin.value = _newOwner;
}
/**
* @notice Upgrades implementation
* @param _newImplementation - Address of the new implementation
*/
function upgrade(address _newImplementation) external onlyOwner {
// Get implementation slot
StorageSlot.AddressSlot storage implementation = StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT);
// If new implementation is identical to old, skip
if (implementation.value != _newImplementation) {
// Emit event
emit ProxyUpgrade(implementation.value, _newImplementation);
// Store new implementation
implementation.value = _newImplementation;
}
}
/**
* @notice Pauses contract
*/
function pause() external onlyOwner {
// Get paused slot
StorageSlot.BooleanSlot storage paused = StorageSlot.getBooleanSlot(PAUSED_SLOT);
// If not already paused, pause
if (!paused.value) {
// Set paused to true
paused.value = true;
// Emit paused event
emit ProxyPause();
}
}
/**
* @notice Unpauses contract
*/
function unpause() external onlyOwner {
// Get paused slot
StorageSlot.BooleanSlot storage paused = StorageSlot.getBooleanSlot(PAUSED_SLOT);
// If already unpaused, do nothing
if (paused.value) {
// Set paused to true
paused.value = false;
// Emit paused event
emit ProxyUnpause();
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/StorageSlot.sol)
pragma solidity ^0.8.0;
/**
* @dev Library for reading and writing primitive types to specific storage slots.
*
* Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
* This library helps with reading and writing to such slots without the need for inline assembly.
*
* The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
*
* Example usage to set ERC1967 implementation slot:
* ```
* contract ERC1967 {
* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
*
* function _getImplementation() internal view returns (address) {
* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
* }
*
* function _setImplementation(address newImplementation) internal {
* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
* }
* }
* ```
*
* _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
*/
library StorageSlot {
struct AddressSlot {
address value;
}
struct BooleanSlot {
bool value;
}
struct Bytes32Slot {
bytes32 value;
}
struct Uint256Slot {
uint256 value;
}
/**
* @dev Returns an `AddressSlot` with member `value` located at `slot`.
*/
function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `BooleanSlot` with member `value` located at `slot`.
*/
function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
*/
function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
assembly {
r.slot := slot
}
}
/**
* @dev Returns an `Uint256Slot` with member `value` located at `slot`.
*/
function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
assembly {
r.slot := slot
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}{
"optimizer": {
"enabled": true,
"runs": 1600
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[],"name":"ProxyPause","type":"event"},{"anonymous":false,"inputs":[],"name":"ProxyUnpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ProxyUpgrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b506040516107f53803806107f583398101604081905261002f91610123565b8061007061005e60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104610153565b60001b61012060201b6100f21760201c565b80546001600160a01b0319166001600160a01b039290921691909117905560006100be61005e60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610153565b80546001600160a01b0319166001600160a01b0392909216919091179055600161010b61005e827f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa0248711451610153565b805460ff191691151591909117905550610178565b90565b60006020828403121561013557600080fd5b81516001600160a01b038116811461014c57600080fd5b9392505050565b60008282101561017357634e487b7160e01b600052601160045260246000fd5b500390565b61066e806101876000396000f3fe6080604052600436106100435760003560e01c80630900f0101461005a5780633f4ba83a1461007a5780638456cb591461008f578063f2fde38b146100a457610052565b36610052576100506100c4565b005b6100506100c4565b34801561006657600080fd5b506100506100753660046105ca565b61021f565b34801561008657600080fd5b5061005061032d565b34801561009b57600080fd5b506100506103e7565b3480156100b057600080fd5b506100506100bf3660046105ca565b610499565b6100f56100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b90565b5460ff161561014b5760405162461bcd60e51b815260206004820152601960248201527f50726f78793a20436f6e7472616374206973207061757365640000000000000060448201526064015b60405180910390fd5b600061017b6100f260017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6105fa565b546001600160a01b03169050803b6101fb5760405162461bcd60e51b815260206004820152602360248201527f50726f78793a20496d706c656d656e746174696f6e20646f65736e277420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152608401610142565b3660008037600080366000845af43d6000803e80801561021a573d6000f35b3d6000fd5b61024d6100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b031633141561032257600061028e6100f260017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6105fa565b80549091506001600160a01b0383811691161461031e578054604080516001600160a01b03928316815291841660208301527f85aeb0b8dd2de94a068da6d2ccd785fea888eee68ec95d9a17c74446a865839d91015b60405180910390a180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161781555b5050565b61032a6100c4565b50565b61035b6100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b03163314156103dd57600061039c6100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b805490915060ff161561032a57805460ff191681556040517f5b5349b254d5540f4586f24c7afd4c990fc8a991b611d7f2c00a020a67f2f29290600090a150565b6103e56100c4565b565b6104156100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b03163314156103dd5760006104566100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b805490915060ff1661032a57805460ff191660011781556040517fa51641ae9e6ff3082f83f718f043efc36fa8eb06274cd78c3e7251af263ebb6f90600090a150565b6104c76100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b0316331415610322576001600160a01b0381166105545760405162461bcd60e51b815260206004820152602b60248201527f50726f78793a2050726576656e74696e6720706f74656e7469616c206163636960448201527f64656e74616c206275726e0000000000000000000000000000000000000000006064820152608401610142565b60006105846100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b8054604080516001600160a01b03928316815291851660208301529192507fab1e9974b911ffe4a29b0d786b57a5f5defde2e77960d0e9f954b053e7de325991016102e4565b6000602082840312156105dc57600080fd5b81356001600160a01b03811681146105f357600080fd5b9392505050565b600082821015610633577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea2646970667358221220ae6409b31636b2af19fdc845ae6d02b8ad636c9274188f3d6fae1649e8f0a40164736f6c634300080c00330000000000000000000000004f8e20f55f879bee7bc010bd6bd2138b34ac65c8
Deployed Bytecode
0x6080604052600436106100435760003560e01c80630900f0101461005a5780633f4ba83a1461007a5780638456cb591461008f578063f2fde38b146100a457610052565b36610052576100506100c4565b005b6100506100c4565b34801561006657600080fd5b506100506100753660046105ca565b61021f565b34801561008657600080fd5b5061005061032d565b34801561009b57600080fd5b506100506103e7565b3480156100b057600080fd5b506100506100bf3660046105ca565b610499565b6100f56100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b90565b5460ff161561014b5760405162461bcd60e51b815260206004820152601960248201527f50726f78793a20436f6e7472616374206973207061757365640000000000000060448201526064015b60405180910390fd5b600061017b6100f260017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6105fa565b546001600160a01b03169050803b6101fb5760405162461bcd60e51b815260206004820152602360248201527f50726f78793a20496d706c656d656e746174696f6e20646f65736e277420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152608401610142565b3660008037600080366000845af43d6000803e80801561021a573d6000f35b3d6000fd5b61024d6100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b031633141561032257600061028e6100f260017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6105fa565b80549091506001600160a01b0383811691161461031e578054604080516001600160a01b03928316815291841660208301527f85aeb0b8dd2de94a068da6d2ccd785fea888eee68ec95d9a17c74446a865839d91015b60405180910390a180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161781555b5050565b61032a6100c4565b50565b61035b6100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b03163314156103dd57600061039c6100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b805490915060ff161561032a57805460ff191681556040517f5b5349b254d5540f4586f24c7afd4c990fc8a991b611d7f2c00a020a67f2f29290600090a150565b6103e56100c4565b565b6104156100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b03163314156103dd5760006104566100f260017f8dea8703c3cf94703383ce38a9c894669dccd4ca8e65ddb43267aa02487114516105fa565b805490915060ff1661032a57805460ff191660011781556040517fa51641ae9e6ff3082f83f718f043efc36fa8eb06274cd78c3e7251af263ebb6f90600090a150565b6104c76100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b546001600160a01b0316331415610322576001600160a01b0381166105545760405162461bcd60e51b815260206004820152602b60248201527f50726f78793a2050726576656e74696e6720706f74656e7469616c206163636960448201527f64656e74616c206275726e0000000000000000000000000000000000000000006064820152608401610142565b60006105846100f260017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61046105fa565b8054604080516001600160a01b03928316815291851660208301529192507fab1e9974b911ffe4a29b0d786b57a5f5defde2e77960d0e9f954b053e7de325991016102e4565b6000602082840312156105dc57600080fd5b81356001600160a01b03811681146105f357600080fd5b9392505050565b600082821015610633577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50039056fea2646970667358221220ae6409b31636b2af19fdc845ae6d02b8ad636c9274188f3d6fae1649e8f0a40164736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004f8e20f55f879bee7bc010bd6bd2138b34ac65c8
-----Decoded View---------------
Arg [0] : _admin (address): 0x4F8E20f55f879beE7Bc010Bd6bD2138B34aC65c8
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004f8e20f55f879bee7bc010bd6bd2138b34ac65c8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$81,546,448.05
Net Worth in ETH
41,376.14967
Token Allocations
WETH
46.79%
USDT
25.23%
USDC
12.03%
Others
15.95%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 44.42% | $1,970.86 | 18,378.401 | $36,221,188.59 | |
| ETH | 25.23% | $1 | 20,574,415.6293 | $20,574,415.63 | |
| ETH | 10.80% | $0.999998 | 8,807,859.5569 | $8,807,841.94 | |
| ETH | 10.18% | $1 | 8,302,927.7951 | $8,302,927.8 | |
| ETH | 2.67% | $66,505.51 | 32.6985 | $2,174,632.17 | |
| ETH | 1.19% | $1.17 | 832,877.5825 | $974,466.77 | |
| ETH | 0.57% | $1.08 | 427,015.2487 | $462,457.51 | |
| ETH | 0.45% | $2.15 | 170,724.4986 | $367,057.67 | |
| ETH | 0.12% | $1.18 | 81,406.069 | $96,059.16 | |
| ETH | 0.05% | $1.08 | 41,227.513 | $44,566.94 | |
| ETH | 0.03% | $0.007027 | 3,295,371.5097 | $23,156.87 | |
| ETH | 0.02% | $0.256287 | 75,908.9508 | $19,454.48 | |
| ETH | 0.02% | $5,305.93 | 3.5843 | $19,017.85 | |
| ETH | 0.02% | $177.49 | 106.8055 | $18,956.92 | |
| ETH | 0.02% | $5,378.17 | 2.6246 | $14,115.4 | |
| ETH | 0.01% | $0.022419 | 533,954.6704 | $11,970.89 | |
| ETH | 0.01% | $0.036192 | 273,323.4427 | $9,892.18 | |
| ETH | <0.01% | $0.000057 | 134,749,497.96 | $7,648.38 | |
| ETH | <0.01% | $0.000779 | 8,216,370.58 | $6,399.81 | |
| ETH | <0.01% | $115.04 | 54.261 | $6,242.18 | |
| ETH | <0.01% | $1.02 | 5,953.949 | $6,055.81 | |
| ETH | <0.01% | $3.82 | 1,431.9838 | $5,470.18 | |
| ETH | <0.01% | $8.8 | 576.8522 | $5,076.3 | |
| ETH | <0.01% | $0.000003 | 1,293,371,309.3079 | $4,513.87 | |
| ETH | <0.01% | $0.020323 | 184,941.4875 | $3,758.64 | |
| ETH | <0.01% | $0.077883 | 46,823.7921 | $3,646.78 | |
| ETH | <0.01% | $0.134676 | 26,867.4349 | $3,618.41 | |
| ETH | <0.01% | $0.322466 | 9,691.3436 | $3,125.13 | |
| ETH | <0.01% | $3.06 | 747.3481 | $2,283.77 | |
| ETH | <0.01% | $0.020011 | 106,331.7767 | $2,127.8 | |
| ETH | <0.01% | $0.996128 | 1,995.0631 | $1,987.34 | |
| ETH | <0.01% | $1.74 | 1,055.245 | $1,838.28 | |
| ETH | <0.01% | $1,599.97 | 0.9998 | $1,599.67 | |
| ETH | <0.01% | $6.06 | 230.7824 | $1,398.54 | |
| ETH | <0.01% | $0.306573 | 4,240 | $1,299.87 | |
| ETH | <0.01% | $0.000044 | 22,939,581.9553 | $1,016.45 | |
| ETH | <0.01% | <$0.000001 | 80,470,632,538.3618 | $551.79 | |
| ETH | <0.01% | $0.001127 | 399,996.5025 | $450.85 | |
| ETH | <0.01% | $181.58 | 2.4308 | $441.39 | |
| ETH | <0.01% | $0.10292 | 4,149.7443 | $427.09 | |
| ETH | <0.01% | $0.033632 | 9,481.9327 | $318.9 | |
| ETH | <0.01% | $1.36 | 216.9363 | $295.03 | |
| ETH | <0.01% | $0.272187 | 1,000 | $272.19 | |
| ETH | <0.01% | $0.000006 | 44,733,433.919 | $252.74 | |
| ETH | <0.01% | $0.017803 | 8,435.5056 | $150.18 | |
| ETH | <0.01% | <$0.000001 | 1,257,930,140.1017 | $90.91 | |
| ETH | <0.01% | $0.294889 | 287.2803 | $84.72 | |
| ETH | <0.01% | $0.127164 | 642.9281 | $81.76 | |
| ETH | <0.01% | $0.03298 | 1,863.9039 | $61.47 | |
| ETH | <0.01% | <$0.000001 | 386,671,255.0338 | $61.41 | |
| ETH | <0.01% | $16.17 | 3.6468 | $58.97 | |
| ETH | <0.01% | $1.18 | 49.8246 | $58.79 | |
| ETH | <0.01% | $0.284211 | 199.5 | $56.7 | |
| ETH | <0.01% | $1 | 55.5689 | $55.79 | |
| ETH | <0.01% | $0.001894 | 25,739.0734 | $48.74 | |
| ETH | <0.01% | $0.005157 | 8,268.5779 | $42.64 | |
| ETH | <0.01% | $0.019418 | 2,144.0144 | $41.63 | |
| ETH | <0.01% | $0.000032 | 1,303,984.1551 | $41.18 | |
| ETH | <0.01% | $0.017394 | 1,990.0125 | $34.61 | |
| ETH | <0.01% | $0.109779 | 227.8699 | $25.02 | |
| ETH | <0.01% | $0.003552 | 6,982.5 | $24.8 | |
| ETH | <0.01% | $1.18 | 19.95 | $23.48 | |
| ETH | <0.01% | $1.18 | 19.95 | $23.48 | |
| ETH | <0.01% | $0.019597 | 1,027.526 | $20.14 | |
| ETH | <0.01% | $0.992004 | 19.7471 | $19.59 | |
| ETH | <0.01% | $0.000185 | 99,750 | $18.42 | |
| ETH | <0.01% | $1.22 | 12.1332 | $14.8 | |
| ETH | <0.01% | $0.023722 | 598.5 | $14.2 | |
| ETH | <0.01% | $14.12 | 0.9975 | $14.08 | |
| ETH | <0.01% | $0.092966 | 130.4559 | $12.13 | |
| ETH | <0.01% | $0.697312 | 15.8782 | $11.07 | |
| ETH | <0.01% | $0.99924 | 9.975 | $9.97 | |
| ETH | <0.01% | $0.019465 | 454.0621 | $8.84 | |
| ETH | <0.01% | <$0.000001 | 4,987,500,000 | $7.86 | |
| ETH | <0.01% | $0.055902 | 132.9297 | $7.43 | |
| ETH | <0.01% | $0.586798 | 12.6338 | $7.41 | |
| ETH | <0.01% | $0.101755 | 72.3311 | $7.36 | |
| ETH | <0.01% | $0.921427 | 7.8643 | $7.25 | |
| ETH | <0.01% | $0.011835 | 498.75 | $5.9 | |
| ETH | <0.01% | $0.020908 | 266.7944 | $5.58 | |
| ETH | <0.01% | $0.000021 | 253,025.0033 | $5.43 | |
| ETH | <0.01% | $0.244598 | 21.8773 | $5.35 | |
| ETH | <0.01% | $3,080.54 | 0.00172012 | $5.3 | |
| ETH | <0.01% | $0.003532 | 1,496.25 | $5.29 | |
| ETH | <0.01% | $0.000995 | 4,918.3149 | $4.89 | |
| ETH | <0.01% | $0.0418 | 101.2531 | $4.23 | |
| ETH | <0.01% | $0.000006 | 619,182.5268 | $3.98 | |
| ETH | <0.01% | $0.400381 | 6.0528 | $2.42 | |
| ETH | <0.01% | $0.000207 | 11,616.1656 | $2.4 | |
| ETH | <0.01% | $0.000616 | 3,243.6473 | $2 | |
| ETH | <0.01% | $0.306234 | 5.5928 | $1.71 | |
| ETH | <0.01% | $0.001475 | 1,119.3631 | $1.65 | |
| ETH | <0.01% | $0.084315 | 17.6402 | $1.49 | |
| ETH | <0.01% | $1.38 | 1.0322 | $1.42 | |
| ETH | <0.01% | $2,410 | 0.00050131 | $1.21 | |
| ETH | <0.01% | $0.290791 | 4.01 | $1.17 | |
| ETH | <0.01% | $0.000943 | 997.5 | $0.9408 | |
| ETH | <0.01% | $0.061012 | 14.6301 | $0.8926 | |
| ETH | <0.01% | $0.081697 | 10.5126 | $0.8588 | |
| ETH | <0.01% | $0.00178 | 419.2709 | $0.7464 | |
| ETH | <0.01% | <$0.000001 | 7,769,000 | $0.7298 | |
| ETH | <0.01% | $0.000007 | 99,750 | $0.6683 | |
| ETH | <0.01% | $0.316087 | 1.715 | $0.5421 | |
| ETH | <0.01% | $0.108477 | 4.9875 | $0.541 | |
| ETH | <0.01% | $2,273.16 | 0.00022342 | $0.5078 | |
| ETH | <0.01% | $0.072533 | 5.985 | $0.4341 | |
| ETH | <0.01% | $0.000004 | 100,000.697 | $0.425 | |
| ETH | <0.01% | $0.030937 | 8.8161 | $0.2727 | |
| ETH | <0.01% | $0.202343 | 1.225 | $0.2478 | |
| ETH | <0.01% | $0.000241 | 1,000 | $0.2406 | |
| ETH | <0.01% | $0.999739 | 0.1978 | $0.1977 | |
| ETH | <0.01% | $0.00 | 0.0154 | $0.00 | |
| ETH | <0.01% | $0.999976 | 0.1574 | $0.1574 | |
| ETH | <0.01% | $0.002315 | 66.6737 | $0.1543 | |
| ETH | <0.01% | $0.124753 | 0.9975 | $0.1244 | |
| ETH | <0.01% | $0.00097 | 103.5968 | $0.1004 | |
| ARB | 2.38% | $2,258.88 | 857.7647 | $1,937,587.49 | |
| ARB | 1.23% | $0.999998 | 1,000,727.4783 | $1,000,725.48 | |
| ARB | 0.19% | $0.998438 | 153,256.4577 | $153,017.07 | |
| ARB | 0.15% | $76,177 | 1.6508 | $125,751.53 | |
| ARB | 0.06% | $0.999925 | 52,509.6552 | $52,505.72 | |
| ARB | 0.04% | $0.999998 | 36,048.8121 | $36,048.74 | |
| ARB | <0.01% | $0.001127 | 4,987,450.125 | $5,621.5 | |
| ARB | <0.01% | $0.002741 | 2,000,000 | $5,481.05 | |
| ARB | <0.01% | $2,624.38 | 1.2389 | $3,251.33 | |
| ARB | <0.01% | $0.262507 | 10,072.755 | $2,644.17 | |
| ARB | <0.01% | $8.8 | 299.9469 | $2,639.53 | |
| ARB | <0.01% | $0.101754 | 24,677.4488 | $2,511.03 | |
| ARB | <0.01% | $2,317.13 | 0.4236 | $981.62 | |
| ARB | <0.01% | $0.000003 | 273,437,549.9054 | $954.3 | |
| ARB | <0.01% | $0.005385 | 101,745 | $547.93 | |
| ARB | <0.01% | $0.78133 | 418.6778 | $327.13 | |
| ARB | <0.01% | $0.00423 | 47,305.9335 | $200.12 | |
| ARB | <0.01% | $0.000497 | 43,967.3261 | $21.87 | |
| ARB | <0.01% | $3.82 | 1.4734 | $5.63 | |
| ARB | <0.01% | $82.57 | 0.0215 | $1.77 | |
| ARB | <0.01% | $0.001254 | 997.5 | $1.25 | |
| ARB | <0.01% | $0.00523 | 89.75 | $0.4694 | |
| ARB | <0.01% | $0.145583 | 2.415 | $0.3515 | |
| ARB | <0.01% | $6.85 | 0.0388 | $0.2656 | |
| ARB | <0.01% | $0.244235 | 0.855 | $0.2088 | |
| ARB | <0.01% | $0.00 | 500 | $0.00 | |
| BASE | <0.01% | $0.019895 | 320 | $6.37 | |
| BASE | <0.01% | $0.00 | 521.7777 | $0.00 | |
| BASE | <0.01% | $0.000001 | 225,004.2069 | $0.1324 | |
| BASE | <0.01% | $0.00 | 225 | $0.00 |
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.