More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 43,951 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw Safe | 148992275 | 6 hrs ago | IN | 0 ETH | 0.0000001326 | ||||
| Approve | 148946510 | 31 hrs ago | IN | 0 ETH | 0.000000001234 | ||||
| Withdraw Safe | 148880114 | 2 days ago | IN | 0 ETH | 0.000000004581 | ||||
| Withdraw Safe | 148824686 | 4 days ago | IN | 0 ETH | 0.00000036746 | ||||
| Withdraw Safe | 148766763 | 5 days ago | IN | 0 ETH | 0.000000011415 | ||||
| Withdraw Safe | 148658894 | 7 days ago | IN | 0 ETH | 0.000000036264 | ||||
| Withdraw Safe | 148587929 | 9 days ago | IN | 0 ETH | 0.000000078364 | ||||
| Approve | 148558717 | 10 days ago | IN | 0 ETH | 0.000000001938 | ||||
| Approve | 148548129 | 10 days ago | IN | 0 ETH | 0.000003341578 | ||||
| Withdraw Safe | 148535831 | 10 days ago | IN | 0 ETH | 0.000000357028 | ||||
| Withdraw Safe | 148477379 | 12 days ago | IN | 0 ETH | 0.000000089965 | ||||
| Withdraw Safe | 148430246 | 13 days ago | IN | 0 ETH | 0.000000766919 | ||||
| Withdraw Safe | 148361088 | 14 days ago | IN | 0 ETH | 0.000000781811 | ||||
| Approve | 148290935 | 16 days ago | IN | 0 ETH | 0.000000005145 | ||||
| Withdraw Safe | 148281045 | 16 days ago | IN | 0 ETH | 0.000000098634 | ||||
| Withdraw Safe | 148191207 | 18 days ago | IN | 0 ETH | 0.000000098306 | ||||
| Approve | 148168335 | 19 days ago | IN | 0 ETH | 0.000003356385 | ||||
| Withdraw Safe | 148077424 | 21 days ago | IN | 0 ETH | 0.000000097136 | ||||
| Withdraw Safe | 148046457 | 22 days ago | IN | 0 ETH | 0.000000086366 | ||||
| Withdraw Safe | 147998650 | 23 days ago | IN | 0 ETH | 0.000010456454 | ||||
| Withdraw Safe | 147998609 | 23 days ago | IN | 0 ETH | 0.000010866883 | ||||
| Withdraw Safe | 147997571 | 23 days ago | IN | 0 ETH | 0.000000642543 | ||||
| Withdraw Safe | 147974783 | 23 days ago | IN | 0 ETH | 0.000000343114 | ||||
| Withdraw Safe | 147969102 | 23 days ago | IN | 0 ETH | 0.000000777356 | ||||
| Withdraw Safe | 147945385 | 24 days ago | IN | 0 ETH | 0.000000949249 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH | ||||
| 107557212 | 959 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
InitializableUpgradeabilityProxy
Compiler Version
v0.7.6+commit.7338295f
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.7.6;
import "./BaseUpgradeabilityProxy.sol";
import "../utils/AddressHelper.sol";
/**
* @title InitializableUpgradeabilityProxy
* @dev Extends BaseUpgradeabilityProxy with an initializer for initializing
* implementation and init data.
*/
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
using AddressHelper for address;
/**
* @dev Contract initializer.
* @param _factory Address of the factory containing the implementation.
* @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
* It should include the signature and the parameters of the function to be called, as described in
* https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
* This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
*/
function initialize(
address _factory,
bytes memory _data,
uint8 _proxyType
) public payable {
require(_implementation() == address(0), "Impl not zero");
assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
_setImplementation(_factory);
_setProxyType(_proxyType);
if (_data.length > 0) {
_implementation().tryAssemblyDelegateCall(_data);
}
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "./Proxy.sol";
import "./Address.sol";
import "./HasLogic.sol";
/**
* @title BaseUpgradeabilityProxy
* @dev This contract implements a proxy that allows to change the
* implementation address to which it will delegate.
* Such a change is called an implementation upgrade.
*/
contract BaseUpgradeabilityProxy is Proxy {
/**
* @dev Emitted when the implementation is upgraded.
* @param implementation Address of the new implementation.
*/
event Upgraded(address indexed implementation);
/**
* @dev Storage slot with the address of the current implementation.
* This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
* validated in the constructor.
*/
bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/**
* @dev Storing type of the proxy, 1 for managerLogic, 2 for pool.
*/
bytes32 internal constant PROXY_TYPE = 0x1000000000000000000000000000000000000000000000000000000000000000;
/**
* @notice Returns the current implementation.
* @return impl Address of the current implementation
*/
function _implementation() internal view override returns (address) {
address factory;
bytes32 slot = IMPLEMENTATION_SLOT;
assembly {
factory := sload(slot)
}
// Begin custom modification
if (factory == address(0x0)) return address(0x0); // If factory not initialized return empty
return HasLogic(factory).getLogic(_proxyType());
}
/// @notice Return the proxy type.
/// @return proxyType Return type of the proxy.
function _proxyType() internal view returns (uint8 proxyType) {
bytes32 slot = PROXY_TYPE;
assembly {
proxyType := sload(slot)
}
}
/**
* @notice Upgrades the proxy to a new implementation.
* @param newImplementation Address of the new implementation.
*/
function _upgradeTo(address newImplementation) internal {
_setImplementation(newImplementation);
emit Upgraded(newImplementation);
}
/**
* @notice Sets the implementation address of the proxy.
* @param newImplementation Address of the new implementation.
*/
function _setImplementation(address newImplementation) internal {
require(OpenZeppelinUpgradesAddress.isContract(newImplementation), "Cannot set implementation to EOA");
bytes32 slot = IMPLEMENTATION_SLOT;
assembly {
sstore(slot, newImplementation)
}
}
/**
* @notice Sets type of the proxy.
* @param proxyType Type of the proxy.
*/
function _setProxyType(uint8 proxyType) internal {
bytes32 slot = PROXY_TYPE;
assembly {
sstore(slot, proxyType)
}
}
}// __ __ __ ________ _______ ______ ________
// / |/ | / |/ |/ \ / \ / |
// ____$$ |$$ | $$ |$$$$$$$$/ $$$$$$$ |/$$$$$$ |$$$$$$$$/
// / $$ |$$ |__$$ |$$ |__ $$ | $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$ $$ |$$ | $$ | $$ |$$ |/ |$$ |
// $$ | $$ |$$$$$$$$ |$$$$$/ $$ | $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ | $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$ $$ |$$ | $$ |$$ |$$ $$/ $$ $$/ $$ |
// $$$$$$$/ $$/ $$/ $$$$$$$$/ $$$$$$$/ $$$$$$/ $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT
// import "./BytesLib.sol";
pragma solidity 0.7.6;
/**
* @title A library for Address utils.
*/
library AddressHelper {
/**
* @notice try a contract call via assembly
* @param to the contract address
* @param data the call data
* @return success if the contract call is successful or not
*/
function tryAssemblyCall(address to, bytes memory data) internal returns (bool success) {
assembly {
success := call(gas(), to, 0, add(data, 0x20), mload(data), 0, 0)
switch iszero(success)
case 1 {
let size := returndatasize()
returndatacopy(0x00, 0x00, size)
revert(0x00, size)
}
}
}
/**
* @notice try a contract delegatecall via assembly
* @param to the contract address
* @param data the call data
* @return success if the contract call is successful or not
*/
function tryAssemblyDelegateCall(address to, bytes memory data) internal returns (bool success) {
assembly {
success := delegatecall(gas(), to, add(data, 0x20), mload(data), 0, 0)
switch iszero(success)
case 1 {
let size := returndatasize()
returndatacopy(0x00, 0x00, size)
revert(0x00, size)
}
}
}
// /**
// * @notice try a contract call
// * @param to the contract address
// * @param data the call data
// * @return success if the contract call is successful or not
// */
// function tryCall(address to, bytes memory data) internal returns (bool) {
// (bool success, bytes memory res) = to.call(data);
// // Get the revert message of the call and revert with it if the call failed
// require(success, _getRevertMsg(res));
// return success;
// }
// /**
// * @dev Get the revert message from a call
// * @notice This is needed in order to get the human-readable revert message from a call
// * @param response Response of the call
// * @return Revert message string
// */
// function _getRevertMsg(bytes memory response) internal pure returns (string memory) {
// // If the response length is less than 68, then the transaction failed silently (without a revert message)
// if (response.length < 68) return "Transaction reverted silently";
// bytes memory revertData = response.slice(4, response.length - 4); // Remove the selector which is the first 4 bytes
// return abi.decode(revertData, (string)); // All that remains is the revert string
// }
}//
// __ __ __ ________ _______ ______ ________
// / |/ | / |/ |/ \ / \ / |
// ____$$ |$$ | $$ |$$$$$$$$/ $$$$$$$ |/$$$$$$ |$$$$$$$$/
// / $$ |$$ |__$$ |$$ |__ $$ | $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$ $$ |$$ | $$ | $$ |$$ |/ |$$ |
// $$ | $$ |$$$$$$$$ |$$$$$/ $$ | $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ | $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$ $$ |$$ | $$ |$$ |$$ $$/ $$ $$/ $$ |
// $$$$$$$/ $$/ $$/ $$$$$$$$/ $$$$$$$/ $$$$$$/ $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
/**
* @title Proxy
* @dev Implements delegation of calls to other contracts, with proper
* forwarding of return values and bubbling of failures.
* It defines a fallback function that delegates all calls to the address
* returned by the abstract _implementation() internal function.
*/
abstract contract Proxy {
/**
* @notice Fallback function.
* Implemented entirely in `_fallback`.
*/
fallback() external payable {
_fallback();
}
/**
* @notice Receive function.
* Implemented entirely in `_fallback`.
*/
receive() external payable {
_fallback();
}
/**
* @return The Address of the implementation.
*/
function _implementation() internal view virtual returns (address);
/**
* @notice Delegates execution to an implementation contract.
* This is a low level function that doesn't return to its internal call site.
* It will return to the external caller whatever the implementation returns.
* @param implementation Address to delegate.
*/
function _delegate(address implementation) internal {
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.
// Warning: OVM: Using RETURNDATASIZE or RETURNDATACOPY in user asm isn't guaranteed to work
returndatacopy(0, 0, returndatasize())
switch result
// delegatecall returns 0 on error.
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
}
}
/**
* @notice Function that is run as the first thing in the fallback function.
* Can be redefined in derived contracts to add functionality.
* Redefinitions must call super._willFallback().
*/
// solhint-disable-next-line no-empty-blocks
function _willFallback() internal virtual {}
/**
* @notice fallback implementation.
* Extracted to enable manual triggering.
*/
function _fallback() internal {
_willFallback();
_delegate(_implementation());
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
/**
* Utility library of inline functions on addresses
*
* Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/utils/Address.sol
* This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts
* when the user imports a zos-lib contract (that transitively causes this contract to be compiled and added to the
* build/artifacts folder) as well as the vanilla Address implementation from an openzeppelin version.
*/
library OpenZeppelinUpgradesAddress {
/**
* @notice Returns whether the target address is a contract
* @dev This function will return false if invoked during the constructor of a contract,
* as the code is not actually created until after the constructor finishes.
* @param account address of the account to check
* @return whether the target address is a contract
*/
function isContract(address account) internal view returns (bool) {
uint256 size;
// XXX Currently there is no better way to check if there is a contract in an address
// than to check the size of the code at that address.
// See https://ethereum.stackexchange.com/a/14016/36603
// for more details about how this works.
// TODO Check this again before the Serenity release, because all addresses will be
// contracts then.
// solhint-disable-next-line no-inline-assembly
assembly {
size := extcodesize(account)
}
return size > 0;
}
}//
// __ __ __ ________ _______ ______ ________
// / |/ | / |/ |/ \ / \ / |
// ____$$ |$$ | $$ |$$$$$$$$/ $$$$$$$ |/$$$$$$ |$$$$$$$$/
// / $$ |$$ |__$$ |$$ |__ $$ | $$ |$$ | _$$/ $$ |__
// /$$$$$$$ |$$ $$ |$$ | $$ | $$ |$$ |/ |$$ |
// $$ | $$ |$$$$$$$$ |$$$$$/ $$ | $$ |$$ |$$$$ |$$$$$/
// $$ \__$$ |$$ | $$ |$$ |_____ $$ |__$$ |$$ \__$$ |$$ |_____
// $$ $$ |$$ | $$ |$$ |$$ $$/ $$ $$/ $$ |
// $$$$$$$/ $$/ $$/ $$$$$$$$/ $$$$$$$/ $$$$$$/ $$$$$$$$/
//
// dHEDGE DAO - https://dhedge.org
//
// Copyright (c) 2021 dHEDGE DAO
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
//
// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
interface HasLogic {
function getLogic(uint8 _proxyType) external view returns (address);
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint8","name":"_proxyType","type":"uint8"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5061037f806100206000396000f3fe6080604052600436106100225760003560e01c8063e74a474a1461003957610031565b366100315761002f6100f4565b005b61002f6100f4565b61002f6004803603606081101561004f57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561007a57600080fd5b82018360208201111561008c57600080fd5b803590602001918460018302840111640100000000831117156100ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061010e9050565b6100fc61010c565b61010c61010761019e565b61025f565b565b600061011861019e565b6001600160a01b031614610163576040805162461bcd60e51b815260206004820152600d60248201526c496d706c206e6f74207a65726f60981b604482015290519081900360640190fd5b61016c83610283565b61017581610301565b815115610199576101978261018861019e565b6001600160a01b031690610309565b505b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546000916001600160a01b0382166101dd5760009250505061025c565b816001600160a01b031663ecef89d56101f461033a565b6040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561022b57600080fd5b505afa15801561023f573d6000803e3d6000fd5b505050506040513d602081101561025557600080fd5b5051925050505b90565b3660008037600080366000845af43d6000803e80801561027e573d6000f35b3d6000fd5b61028c81610343565b6102dd576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f20454f41604482015290519081900360640190fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b600160fc1b55565b6000806000835160208501865af4905080156001811461032857610333565b3d806000803e806000fd5b5092915050565b600160fc1b5490565b3b15159056fea2646970667358221220b4ffe86ea20645cee8da3f4a7acd422faf93e667491014f96c827b08e1cbba2564736f6c63430007060033
Deployed Bytecode
0x6080604052600436106100225760003560e01c8063e74a474a1461003957610031565b366100315761002f6100f4565b005b61002f6100f4565b61002f6004803603606081101561004f57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561007a57600080fd5b82018360208201111561008c57600080fd5b803590602001918460018302840111640100000000831117156100ae57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061010e9050565b6100fc61010c565b61010c61010761019e565b61025f565b565b600061011861019e565b6001600160a01b031614610163576040805162461bcd60e51b815260206004820152600d60248201526c496d706c206e6f74207a65726f60981b604482015290519081900360640190fd5b61016c83610283565b61017581610301565b815115610199576101978261018861019e565b6001600160a01b031690610309565b505b505050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546000916001600160a01b0382166101dd5760009250505061025c565b816001600160a01b031663ecef89d56101f461033a565b6040518263ffffffff1660e01b8152600401808260ff16815260200191505060206040518083038186803b15801561022b57600080fd5b505afa15801561023f573d6000803e3d6000fd5b505050506040513d602081101561025557600080fd5b5051925050505b90565b3660008037600080366000845af43d6000803e80801561027e573d6000f35b3d6000fd5b61028c81610343565b6102dd576040805162461bcd60e51b815260206004820181905260248201527f43616e6e6f742073657420696d706c656d656e746174696f6e20746f20454f41604482015290519081900360640190fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b600160fc1b55565b6000806000835160208501865af4905080156001811461032857610333565b3d806000803e806000fd5b5092915050565b600160fc1b5490565b3b15159056fea2646970667358221220b4ffe86ea20645cee8da3f4a7acd422faf93e667491014f96c827b08e1cbba2564736f6c63430007060033
Loading...
Loading
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 ]
[ 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.