Feature Tip: Add private address tag to any address under My Name Tag !
Latest 20 from a total of 20 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw From St... | 24522421 | 24 days ago | IN | 0 ETH | 0.00000407 | ||||
| Deposit To Strat... | 24522066 | 24 days ago | IN | 0 ETH | 0.00000302 | ||||
| Deposit To Strat... | 24522057 | 24 days ago | IN | 0 ETH | 0.00000333 | ||||
| Deposit To Strat... | 24521814 | 24 days ago | IN | 0 ETH | 0.00000413 | ||||
| Pull From Vault | 24521812 | 24 days ago | IN | 0 ETH | 0.00000738 | ||||
| Update Supported... | 24521753 | 24 days ago | IN | 0 ETH | 0.00000375 | ||||
| Update Supported... | 24521458 | 25 days ago | IN | 0 ETH | 0.00000785 | ||||
| Update Rebalance... | 24521454 | 25 days ago | IN | 0 ETH | 0.00000438 | ||||
| Add Strategy | 24521452 | 25 days ago | IN | 0 ETH | 0.00000811 | ||||
| Add Strategy | 24521450 | 25 days ago | IN | 0 ETH | 0.00000891 | ||||
| Add Strategy | 24521448 | 25 days ago | IN | 0 ETH | 0.00001023 | ||||
| Update Fixed Rat... | 24521418 | 25 days ago | IN | 0 ETH | 0.00001163 | ||||
| Add Implementati... | 24520913 | 25 days ago | IN | 0 ETH | 0.00002744 | ||||
| Add Implementati... | 24520911 | 25 days ago | IN | 0 ETH | 0.00002373 | ||||
| Remove Implement... | 24520909 | 25 days ago | IN | 0 ETH | 0.00000614 | ||||
| Remove Implement... | 24520907 | 25 days ago | IN | 0 ETH | 0.00000586 | ||||
| Initialize | 24513562 | 26 days ago | IN | 0 ETH | 0.00000228 | ||||
| Add Implementati... | 24513560 | 26 days ago | IN | 0 ETH | 0.00000881 | ||||
| Add Implementati... | 24513558 | 26 days ago | IN | 0 ETH | 0.00001848 | ||||
| Add Implementati... | 24513556 | 26 days ago | IN | 0 ETH | 0.00001754 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 24513535 | 26 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FluidStrategyHandlerProxy
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 200 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
import { Proxy } from "../infiniteProxy/proxy.sol";
/// @title FluidStrategyHandlerProxy
/// @notice InfiniteProxy for StrategyHandler. Modules registered by admin via addImplementation().
contract FluidStrategyHandlerProxy is Proxy {
constructor(
address admin_,
address dummyImplementation_
) Proxy(admin_, dummyImplementation_) { }
}//SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
contract Error {
error FluidInfiniteProxyError(uint256 errorId_);
}//SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
library ErrorTypes {
/***********************************|
| Infinite proxy |
|__________________________________*/
/// @notice thrown when an implementation does not exist
uint256 internal constant InfiniteProxy__ImplementationNotExist = 50_001;
}// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.27;
contract Events {
/// @notice emitted when a new admin is set
event LogSetAdmin(address indexed oldAdmin, address indexed newAdmin);
/// @notice emitted when a new dummy implementation is set
event LogSetDummyImplementation(address indexed oldDummyImplementation, address indexed newDummyImplementation);
/// @notice emitted when a new implementation is set with certain sigs
event LogSetImplementation(address indexed implementation, bytes4[] sigs);
/// @notice emitted when an implementation is removed
event LogRemoveImplementation(address indexed implementation);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
import { Events } from "./events.sol";
import { ErrorTypes } from "./errorTypes.sol";
import { Error } from "./error.sol";
import { StorageRead } from "../libraries/storageRead.sol";
contract CoreInternals is StorageRead, Events, Error {
struct SigsSlot {
bytes4[] value;
}
/// @dev Storage slot with the admin of the contract.
/// This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
/// validated in the constructor.
bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
/// @dev Storage slot with the address of the current dummy-implementation.
/// This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
/// validated in the constructor.
bytes32 internal constant _DUMMY_IMPLEMENTATION_SLOT =
0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/// @dev use EIP1967 proxy slot (see _DUMMY_IMPLEMENTATION_SLOT) except for first 4 bytes,
// which are set to 0. This is combined with a sig which will be set in those first 4 bytes
bytes32 internal constant _SIG_SLOT_BASE = 0x000000003ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
/// @dev Returns the storage slot which stores the sigs array set for the implementation.
function _getSlotImplSigsSlot(
address implementation_
) internal pure returns (bytes32) {
return keccak256(abi.encode("eip1967.proxy.implementation", implementation_));
}
/// @dev Returns the storage slot which stores the implementation address for the function sig.
function _getSlotSigsImplSlot(
bytes4 sig_
) internal pure returns (bytes32 result_) {
assembly {
// or operator sets sig_ in first 4 bytes with rest of bytes32 having default value of _SIG_SLOT_BASE
result_ := or(_SIG_SLOT_BASE, sig_)
}
}
/// @dev Returns an address `data_` located at `slot_`.
function _getAddressSlot(
bytes32 slot_
) internal view returns (address data_) {
assembly {
data_ := sload(slot_)
}
}
/// @dev Sets an address `data_` located at `slot_`.
function _setAddressSlot(
bytes32 slot_,
address data_
) internal {
assembly {
sstore(slot_, data_)
}
}
/// @dev Returns an `SigsSlot` with member `value` located at `slot`.
function _getSigsSlot(
bytes32 slot_
) internal pure returns (SigsSlot storage _r) {
assembly {
_r.slot := slot_
}
}
/// @dev Sets new implementation and adds mapping from implementation to sigs and sig to implementation.
function _setImplementationSigs(
address implementation_,
bytes4[] memory sigs_
) internal {
require(sigs_.length != 0, "no-sigs");
bytes32 slot_ = _getSlotImplSigsSlot(implementation_);
bytes4[] memory sigsCheck_ = _getSigsSlot(slot_).value;
require(sigsCheck_.length == 0, "implementation-already-exist");
for (uint256 i; i < sigs_.length; i++) {
bytes32 sigSlot_ = _getSlotSigsImplSlot(sigs_[i]);
require(_getAddressSlot(sigSlot_) == address(0), "sig-already-exist");
_setAddressSlot(sigSlot_, implementation_);
}
_getSigsSlot(slot_).value = sigs_;
emit LogSetImplementation(implementation_, sigs_);
}
/// @dev Removes implementation and the mappings corresponding to it.
function _removeImplementationSigs(
address implementation_
) internal {
bytes32 slot_ = _getSlotImplSigsSlot(implementation_);
bytes4[] memory sigs_ = _getSigsSlot(slot_).value;
require(sigs_.length != 0, "implementation-not-exist");
for (uint256 i; i < sigs_.length; i++) {
bytes32 sigSlot_ = _getSlotSigsImplSlot(sigs_[i]);
_setAddressSlot(sigSlot_, address(0));
}
delete _getSigsSlot(slot_).value;
emit LogRemoveImplementation(implementation_);
}
/// @dev Returns bytes4[] sigs from implementation address. If implemenatation is not registered then returns empty array.
function _getImplementationSigs(
address implementation_
) internal view returns (bytes4[] memory) {
bytes32 slot_ = _getSlotImplSigsSlot(implementation_);
return _getSigsSlot(slot_).value;
}
/// @dev Returns implementation address from bytes4 sig. If sig is not registered then returns address(0).
function _getSigImplementation(
bytes4 sig_
) internal view returns (address implementation_) {
bytes32 slot_ = _getSlotSigsImplSlot(sig_);
return _getAddressSlot(slot_);
}
/// @dev Returns the current admin.
function _getAdmin() internal view returns (address) {
return _getAddressSlot(_ADMIN_SLOT);
}
/// @dev Returns the current dummy-implementation.
function _getDummyImplementation() internal view returns (address) {
return _getAddressSlot(_DUMMY_IMPLEMENTATION_SLOT);
}
/// @dev Stores a new address in the EIP1967 admin slot.
function _setAdmin(
address newAdmin_
) internal {
address oldAdmin_ = _getAdmin();
require(newAdmin_ != address(0), "ERC1967: new admin is the zero address");
_setAddressSlot(_ADMIN_SLOT, newAdmin_);
emit LogSetAdmin(oldAdmin_, newAdmin_);
}
/// @dev Stores a new address in the EIP1967 implementation slot.
function _setDummyImplementation(
address newDummyImplementation_
) internal {
address oldDummyImplementation_ = _getDummyImplementation();
_setAddressSlot(_DUMMY_IMPLEMENTATION_SLOT, newDummyImplementation_);
emit LogSetDummyImplementation(oldDummyImplementation_, newDummyImplementation_);
}
}
contract AdminInternals is CoreInternals {
/// @dev Only admin guard
modifier onlyAdmin() {
require(msg.sender == _getAdmin(), "only-admin");
_;
}
constructor(
address admin_,
address dummyImplementation_
) {
_setAdmin(admin_);
_setDummyImplementation(dummyImplementation_);
}
/// @dev Sets new admin.
function setAdmin(
address newAdmin_
) external onlyAdmin {
_setAdmin(newAdmin_);
}
/// @dev Sets new dummy-implementation.
function setDummyImplementation(
address newDummyImplementation_
) external onlyAdmin {
_setDummyImplementation(newDummyImplementation_);
}
/// @dev Adds new implementation address.
function addImplementation(
address implementation_,
bytes4[] calldata sigs_
) external onlyAdmin {
_setImplementationSigs(implementation_, sigs_);
}
/// @dev Removes an existing implementation address.
function removeImplementation(
address implementation_
) external onlyAdmin {
_removeImplementationSigs(implementation_);
}
}
/// @title Proxy
/// @notice This abstract contract provides a fallback function that delegates all calls to another contract using the EVM.
/// It implements the Instadapp infinite-proxy: https://github.com/Instadapp/infinite-proxy
abstract contract Proxy is AdminInternals {
constructor(
address admin_,
address dummyImplementation_
) AdminInternals(admin_, dummyImplementation_) { }
/// @dev Returns admin's address.
function getAdmin() external view returns (address) {
return _getAdmin();
}
/// @dev Returns dummy-implementations's address.
function getDummyImplementation() external view returns (address) {
return _getDummyImplementation();
}
/// @dev Returns bytes4[] sigs from implementation address If not registered then returns empty array.
function getImplementationSigs(
address impl_
) external view returns (bytes4[] memory) {
return _getImplementationSigs(impl_);
}
/// @dev Returns implementation address from bytes4 sig. If sig is not registered then returns address(0).
function getSigsImplementation(
bytes4 sig_
) external view returns (address) {
return _getSigImplementation(sig_);
}
/// @dev Fallback function that delegates calls to the address returned by Implementations registry.
fallback() external payable {
address implementation_;
assembly {
// get slot for sig and directly SLOAD implementation address from storage at that slot
implementation_ := sload(
// same as in `_getSlotSigsImplSlot()` but we must also load msg.sig from calldata.
// msg.sig is first 4 bytes of calldata, so we can use calldataload(0) with a mask
or(
// or operator sets sig_ in first 4 bytes with rest of bytes32 having default value of _SIG_SLOT_BASE
_SIG_SLOT_BASE,
and(calldataload(0), 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000)
)
)
}
if (implementation_ == address(0)) {
revert FluidInfiniteProxyError(ErrorTypes.InfiniteProxy__ImplementationNotExist);
}
// Delegate the current call to `implementation`.
// This does not return to its internall call site, it will return directly to the external caller.
// 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())
if eq(result, 0) {
// delegatecall returns 0 on error.
revert(0, returndatasize())
}
return(0, returndatasize())
}
}
receive() external payable {
// receive method can never have calldata in EVM so no need for any logic here
}
}// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.27;
/// @notice implements a method to read uint256 data from storage at a bytes32 storage slot key.
contract StorageRead {
function readFromStorage(
bytes32 slot_
) public view returns (uint256 result_) {
assembly {
result_ := sload(slot_) // read value from the storage slot
}
}
}{
"evmVersion": "cancun",
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"dummyImplementation_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"errorId_","type":"uint256"}],"name":"FluidInfiniteProxyError","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"LogRemoveImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"LogSetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldDummyImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newDummyImplementation","type":"address"}],"name":"LogSetDummyImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"},{"indexed":false,"internalType":"bytes4[]","name":"sigs","type":"bytes4[]"}],"name":"LogSetImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"},{"internalType":"bytes4[]","name":"sigs_","type":"bytes4[]"}],"name":"addImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDummyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"getImplementationSigs","outputs":[{"internalType":"bytes4[]","name":"","type":"bytes4[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"sig_","type":"bytes4"}],"name":"getSigsImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot_","type":"bytes32"}],"name":"readFromStorage","outputs":[{"internalType":"uint256","name":"result_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation_","type":"address"}],"name":"removeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin_","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDummyImplementation_","type":"address"}],"name":"setDummyImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561000f575f5ffd5b50604051610eab380380610eab83398101604081905261002e916101c9565b8181818161003b8261004f565b6100448161011d565b5050505050506101fa565b5f610058610193565b90506001600160a01b0382166100c35760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b606482015260840160405180910390fd5b6100d95f516020610e6b5f395f51905f52839055565b816001600160a01b0316816001600160a01b03167fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073360405160405180910390a35050565b5f6101375f6101a95f516020610e8b5f395f51905f525490565b905061014f5f516020610e8b5f395f51905f52839055565b816001600160a01b0316816001600160a01b03167f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d5450260405160405180910390a35050565b5f6101a95f516020610e6b5f395f51905f525490565b905090565b80516001600160a01b03811681146101c4575f5ffd5b919050565b5f5f604083850312156101da575f5ffd5b6101e3836101ae565b91506101f1602084016101ae565b90509250929050565b610c64806102075f395ff3fe608060405260043610610089575f3560e01c8063908bfe5e11610058578063908bfe5e146101a5578063a5fcc8bc146101b9578063b5c736e4146101d8578063c39aa07d14610204578063f0c01b421461022357610090565b806322175a32146101085780636e9960c314610129578063704b6c021461015a57806389396dc81461017957610090565b3661009057005b7b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f356001600160e01b03191617546001600160a01b0381166100eb5760405163c44f8d3b60e01b815261c35160048201526024015b60405180910390fd5b365f5f375f5f365f845af43d5f5f3e80610103573d5ffd5b503d5ff35b348015610113575f5ffd5b50610127610122366004610ad2565b610242565b005b348015610134575f5ffd5b5061013d610286565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610165575f5ffd5b50610127610174366004610ad2565b610294565b348015610184575f5ffd5b50610198610193366004610ad2565b6102d5565b6040516101519190610aeb565b3480156101b0575f5ffd5b5061013d6102e6565b3480156101c4575f5ffd5b5061013d6101d3366004610b37565b6102ef565b3480156101e3575f5ffd5b506101f66101f2366004610b5e565b5490565b604051908152602001610151565b34801561020f575f5ffd5b5061012761021e366004610ad2565b6102f9565b34801561022e575f5ffd5b5061012761023d366004610b75565b61033a565b61024a6103b3565b6001600160a01b0316336001600160a01b03161461027a5760405162461bcd60e51b81526004016100e290610bf6565b610283816103dc565b50565b5f61028f6103b3565b905090565b61029c6103b3565b6001600160a01b0316336001600160a01b0316146102cc5760405162461bcd60e51b81526004016100e290610bf6565b6102838161054b565b60606102e082610628565b92915050565b5f61028f6106b5565b5f6102e0826106de565b6103016103b3565b6001600160a01b0316336001600160a01b0316146103315760405162461bcd60e51b81526004016100e290610bf6565b6102838161070a565b6103426103b3565b6001600160a01b0316336001600160a01b0316146103725760405162461bcd60e51b81526004016100e290610bf6565b6103ae838383808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061078292505050565b505050565b5f61028f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b5f6103e68261096d565b90505f8180546040805160208084028201810190925282815292919083018282801561045b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161041d5790505b5050505050905080515f036104b25760405162461bcd60e51b815260206004820152601860248201527f696d706c656d656e746174696f6e2d6e6f742d6578697374000000000000000060448201526064016100e2565b5f5b8151811015610508575f6104fc8383815181106104d3576104d3610c1a565b60200260200101517b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1790565b5f9055506001016104b4565b50610513825f6109d8565b6040516001600160a01b038416907fda53aaefabec4c3f8ba693a2e3c67fa0152fbd71c369d51f669e66b28a4a0864905f90a2505050565b5f6105546103b3565b90506001600160a01b0382166105bb5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016100e2565b6105e47fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055565b816001600160a01b0316816001600160a01b03167fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073360405160405180910390a35050565b60605f6106348361096d565b9050808054604080516020808402820181019092528281529291908301828280156106a857602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161066a5790505b5050505050915050919050565b5f61028f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b7b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811780545f91905b9392505050565b5f6107136106b5565b905061073e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc839055565b816001600160a01b0316816001600160a01b03167f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d5450260405160405180910390a35050565b80515f036107bc5760405162461bcd60e51b81526020600482015260076024820152666e6f2d7369677360c81b60448201526064016100e2565b5f6107c68361096d565b90505f8180546040805160208084028201810190925282815292919083018282801561083b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116107fd5790505b5050505050905080515f146108925760405162461bcd60e51b815260206004820152601c60248201527f696d706c656d656e746174696f6e2d616c72656164792d65786973740000000060448201526064016100e2565b5f5b8351811015610913575f6108b38583815181106104d3576104d3610c1a565b90505f6108be825490565b6001600160a01b0316146109085760405162461bcd60e51b81526020600482015260116024820152701cda59cb585b1c9958591e4b595e1a5cdd607a1b60448201526064016100e2565b859055600101610894565b508282815161092592602001906109fa565b50836001600160a01b03167fd613a4a18e567ee1f2db4d5b528a5fee09f7dff92d6fb708afd6c095070a9c6d8460405161095f9190610aeb565b60405180910390a250505050565b6040805160208101829052601c60608201527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000060808201526001600160a01b038316918101919091525f9060a001604051602081830303815290604052805190602001209050919050565b5080545f825560070160089004905f5260205f20908101906102839190610aa3565b828054828255905f5260205f2090600701600890048101928215610a93579160200282015f5b83821115610a6157835183826101000a81548163ffffffff021916908360e01c02179055509260200192600401602081600301049283019260010302610a20565b8015610a915782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610a61565b505b50610a9f929150610aa3565b5090565b5b80821115610a9f575f8155600101610aa4565b80356001600160a01b0381168114610acd575f5ffd5b919050565b5f60208284031215610ae2575f5ffd5b61070382610ab7565b602080825282518282018190525f918401906040840190835b81811015610b2c5783516001600160e01b031916835260209384019390920191600101610b04565b509095945050505050565b5f60208284031215610b47575f5ffd5b81356001600160e01b031981168114610703575f5ffd5b5f60208284031215610b6e575f5ffd5b5035919050565b5f5f5f60408486031215610b87575f5ffd5b610b9084610ab7565b9250602084013567ffffffffffffffff811115610bab575f5ffd5b8401601f81018613610bbb575f5ffd5b803567ffffffffffffffff811115610bd1575f5ffd5b8660208260051b8401011115610be5575f5ffd5b939660209190910195509293505050565b6020808252600a908201526937b7363c96b0b236b4b760b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffdfea26469706673582212201287dca9da6e5063ae8220c3f0925da45aa256fec484b0266f9cc9435650ce4a64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc00000000000000000000000078e52dfa64e1f035639b42d88f268153b2eead8f00000000000000000000000006053cc6e98e250f999e53021ba542fe9a071da9
Deployed Bytecode
0x608060405260043610610089575f3560e01c8063908bfe5e11610058578063908bfe5e146101a5578063a5fcc8bc146101b9578063b5c736e4146101d8578063c39aa07d14610204578063f0c01b421461022357610090565b806322175a32146101085780636e9960c314610129578063704b6c021461015a57806389396dc81461017957610090565b3661009057005b7b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f356001600160e01b03191617546001600160a01b0381166100eb5760405163c44f8d3b60e01b815261c35160048201526024015b60405180910390fd5b365f5f375f5f365f845af43d5f5f3e80610103573d5ffd5b503d5ff35b348015610113575f5ffd5b50610127610122366004610ad2565b610242565b005b348015610134575f5ffd5b5061013d610286565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610165575f5ffd5b50610127610174366004610ad2565b610294565b348015610184575f5ffd5b50610198610193366004610ad2565b6102d5565b6040516101519190610aeb565b3480156101b0575f5ffd5b5061013d6102e6565b3480156101c4575f5ffd5b5061013d6101d3366004610b37565b6102ef565b3480156101e3575f5ffd5b506101f66101f2366004610b5e565b5490565b604051908152602001610151565b34801561020f575f5ffd5b5061012761021e366004610ad2565b6102f9565b34801561022e575f5ffd5b5061012761023d366004610b75565b61033a565b61024a6103b3565b6001600160a01b0316336001600160a01b03161461027a5760405162461bcd60e51b81526004016100e290610bf6565b610283816103dc565b50565b5f61028f6103b3565b905090565b61029c6103b3565b6001600160a01b0316336001600160a01b0316146102cc5760405162461bcd60e51b81526004016100e290610bf6565b6102838161054b565b60606102e082610628565b92915050565b5f61028f6106b5565b5f6102e0826106de565b6103016103b3565b6001600160a01b0316336001600160a01b0316146103315760405162461bcd60e51b81526004016100e290610bf6565b6102838161070a565b6103426103b3565b6001600160a01b0316336001600160a01b0316146103725760405162461bcd60e51b81526004016100e290610bf6565b6103ae838383808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061078292505050565b505050565b5f61028f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b5f6103e68261096d565b90505f8180546040805160208084028201810190925282815292919083018282801561045b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161041d5790505b5050505050905080515f036104b25760405162461bcd60e51b815260206004820152601860248201527f696d706c656d656e746174696f6e2d6e6f742d6578697374000000000000000060448201526064016100e2565b5f5b8151811015610508575f6104fc8383815181106104d3576104d3610c1a565b60200260200101517b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1790565b5f9055506001016104b4565b50610513825f6109d8565b6040516001600160a01b038416907fda53aaefabec4c3f8ba693a2e3c67fa0152fbd71c369d51f669e66b28a4a0864905f90a2505050565b5f6105546103b3565b90506001600160a01b0382166105bb5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016100e2565b6105e47fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103839055565b816001600160a01b0316816001600160a01b03167fb2396a4169c0fac3eb0713eb7d54220cbe5e21e585a59578ec4de929657c073360405160405180910390a35050565b60605f6106348361096d565b9050808054604080516020808402820181019092528281529291908301828280156106a857602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161066a5790505b5050505050915050919050565b5f61028f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b7b3ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811780545f91905b9392505050565b5f6107136106b5565b905061073e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc839055565b816001600160a01b0316816001600160a01b03167f761380f4203cd2fcc7ee1ae32561463bc08bbf6761cb9d5caa925f99a6d5450260405160405180910390a35050565b80515f036107bc5760405162461bcd60e51b81526020600482015260076024820152666e6f2d7369677360c81b60448201526064016100e2565b5f6107c68361096d565b90505f8180546040805160208084028201810190925282815292919083018282801561083b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116107fd5790505b5050505050905080515f146108925760405162461bcd60e51b815260206004820152601c60248201527f696d706c656d656e746174696f6e2d616c72656164792d65786973740000000060448201526064016100e2565b5f5b8351811015610913575f6108b38583815181106104d3576104d3610c1a565b90505f6108be825490565b6001600160a01b0316146109085760405162461bcd60e51b81526020600482015260116024820152701cda59cb585b1c9958591e4b595e1a5cdd607a1b60448201526064016100e2565b859055600101610894565b508282815161092592602001906109fa565b50836001600160a01b03167fd613a4a18e567ee1f2db4d5b528a5fee09f7dff92d6fb708afd6c095070a9c6d8460405161095f9190610aeb565b60405180910390a250505050565b6040805160208101829052601c60608201527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000060808201526001600160a01b038316918101919091525f9060a001604051602081830303815290604052805190602001209050919050565b5080545f825560070160089004905f5260205f20908101906102839190610aa3565b828054828255905f5260205f2090600701600890048101928215610a93579160200282015f5b83821115610a6157835183826101000a81548163ffffffff021916908360e01c02179055509260200192600401602081600301049283019260010302610a20565b8015610a915782816101000a81549063ffffffff0219169055600401602081600301049283019260010302610a61565b505b50610a9f929150610aa3565b5090565b5b80821115610a9f575f8155600101610aa4565b80356001600160a01b0381168114610acd575f5ffd5b919050565b5f60208284031215610ae2575f5ffd5b61070382610ab7565b602080825282518282018190525f918401906040840190835b81811015610b2c5783516001600160e01b031916835260209384019390920191600101610b04565b509095945050505050565b5f60208284031215610b47575f5ffd5b81356001600160e01b031981168114610703575f5ffd5b5f60208284031215610b6e575f5ffd5b5035919050565b5f5f5f60408486031215610b87575f5ffd5b610b9084610ab7565b9250602084013567ffffffffffffffff811115610bab575f5ffd5b8401601f81018613610bbb575f5ffd5b803567ffffffffffffffff811115610bd1575f5ffd5b8660208260051b8401011115610be5575f5ffd5b939660209190910195509293505050565b6020808252600a908201526937b7363c96b0b236b4b760b11b604082015260600190565b634e487b7160e01b5f52603260045260245ffdfea26469706673582212201287dca9da6e5063ae8220c3f0925da45aa256fec484b0266f9cc9435650ce4a64736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000078e52dfa64e1f035639b42d88f268153b2eead8f00000000000000000000000006053cc6e98e250f999e53021ba542fe9a071da9
-----Decoded View---------------
Arg [0] : admin_ (address): 0x78e52DfA64e1f035639B42d88f268153B2eead8F
Arg [1] : dummyImplementation_ (address): 0x06053cC6E98e250F999e53021Ba542fE9A071DA9
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000078e52dfa64e1f035639b42d88f268153b2eead8f
Arg [1] : 00000000000000000000000006053cc6e98e250f999e53021ba542fe9a071da9
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.