Contract 0xd77203cdbd33b849dc0b03a4f906f579a766c0a6 9

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x447378739f2c1c4a09fc3436f9fbb16d3f79b75785074bdeaf56b53ac59fd2a5Update Params685877182023-09-25 11:05:069 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.003572792192
0xb38ab1b0e12491f78373a7426ae380b16fb59ace2503f3a8acc8baa58ed271edUpdate Params685869202023-09-25 10:35:4038 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002897851752
0xcb83881ecbeeeca09db7b2b4cddd963de7f14f465a0bb97d4a11fc48b4745482Update Params685861432023-09-25 10:05:401 hr 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002970785297
0x87c733a56a1ba385d5d82ef3f2bec5f2af9674ff3369463c50259208efcfce57Update Params685853012023-09-25 9:35:051 hr 39 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.004756682519
0xf3726a4888ea1c2118e3f709e31ddffe90d9f2511e12dbaf403d45455b62c777Update Params685844082023-09-25 9:04:562 hrs 9 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002540566875
0x93f66be26d3f74abf6d48211379f5cd7f5efd29674880f9677d7570889462b43Update Params685835782023-09-25 8:35:122 hrs 38 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.005819639526
0xbf1177cde44791016b2b48c2b2f33717eb26a1d5745bec1a25c059c78d51356dUpdate Params685826912023-09-25 8:06:133 hrs 7 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002464301486
0x9dd469ed26bfb02519bd54bc45101b62073f09b59c44d09c630b385525a9c539Update Params685817392023-09-25 7:34:593 hrs 39 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.053570775903
0x1593b23674f823ea2bb28c5bc825dcbc05f3f84ef84ba4d3969eb19eb033900fUpdate Params685809592023-09-25 7:05:494 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002069719228
0x18ac618c5a56eae92bef79aa333b4b4f39a411e462bcb56a2e40a636bc57512cUpdate Params685801802023-09-25 6:36:334 hrs 37 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002051331638
0x60ae17837820f8aedd175782bb8217f5d9cfbcf4e8d505d2f34b3e2166a616b7Update Params685793802023-09-25 6:06:005 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.00281552
0x71aaa70fa1ce7dda351dd29947e962443bbb5b4208990d6f237d202a1204807bUpdate Params685785322023-09-25 5:35:045 hrs 39 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.005256948754
0x042c3a550838f2715583d9b2e675e63bb2cdd36fc0ab5f0bc45680cbffa9ed12Update Params685777662023-09-25 5:05:596 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002149802299
0x1b8b20694c7142a03755798116127ff6005d29dc2a61a4379a6710cd9faed737Update Params685770322023-09-25 4:36:466 hrs 37 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002170673815
0xb3d9c38e9d286f136a61f431796c4f8d92d1eeb72a96633208713a2c9ee8ed66Update Params685761392023-09-25 4:05:177 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002161511226
0x263a8fea01a8ebed2ac033414ef3ebbc6b38285a0edba995e40de43f657b754bUpdate Params685752102023-09-25 3:35:077 hrs 38 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002230268983
0x9fc5c0a36180380f7214667bcc21b4cc877a4586b2ccbe164269c0174b47febcUpdate Params685742742023-09-25 3:05:038 hrs 9 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.00941407582
0x2ee6e4144c076345d131e1f9abb1aa10d8692995ae5ef1d4306a3692c9648c79Update Params685732462023-09-25 2:35:068 hrs 39 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002287812138
0x4037b8861c1d46e47dfeb656c78a0848f4665b8755e2859fa5bea0db0b835dc9Update Params685720242023-09-25 2:05:189 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002388048387
0x0f184f46deb5f9f9ac044d44a97f29acd09eab86e32f8efe438d702753a190d4Update Params685707302023-09-25 1:35:309 hrs 38 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.00259106277
0x086efb8a2d5c8c0145e0dc46e0bd024db8266c359bdde67704e5fc819922b3d1Update Params685694662023-09-25 1:06:0410 hrs 8 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002596461227
0x3b6bea163c50b98409615f31ceadeb3abe3e08fc61be569a7ddfe8635ac9b4f5Update Params685683292023-09-25 0:35:4810 hrs 38 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002400084079
0x87b6114540110f7a09e3d89e6ac27038ca7998a17bf51e11ac0a2c812c9db8feUpdate Params685670932023-09-25 0:05:0311 hrs 9 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002335638279
0x187547b1f13d592bf06df18fb72fee8e24c9ee69d1539e38c561b9d5d7e77b84Update Params685658682023-09-24 23:34:5111 hrs 39 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002447664869
0xbb2d5fc84c87e3e472855bbb6157cff9548f8599a48d15f42f877795cc8cbd0eUpdate Params685648252023-09-24 23:06:1012 hrs 7 mins ago0x3f4e64b3a78d13187b2c613fab0c2f984e3e4b2e IN  Premia: IVOL Oracle Proxy0 FTM0.002445553078
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xbdbe1655254aaa8177542ca6898e40c2e58fed57230735cd159113e863c383a3347440632022-03-29 22:56:21544 days 12 hrs ago 0xc391791ecbb9b8cccc9e708fc847e941af8025b2  Contract Creation0 FTM
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
ProxyUpgradeableOwnable

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 12 : ProxyUpgradeableOwnable.sol
// SPDX-License-Identifier: BUSL-1.1
// For further clarification please see https://license.premia.legal

pragma solidity ^0.8.0;

import {Proxy} from "@solidstate/contracts/proxy/Proxy.sol";
import {SafeOwnable, OwnableStorage} from "@solidstate/contracts/access/SafeOwnable.sol";
import {ProxyUpgradeableOwnableStorage} from "./ProxyUpgradeableOwnableStorage.sol";

contract ProxyUpgradeableOwnable is Proxy, SafeOwnable {
    using ProxyUpgradeableOwnableStorage for ProxyUpgradeableOwnableStorage.Layout;
    using OwnableStorage for OwnableStorage.Layout;

    constructor(address implementation) {
        OwnableStorage.layout().setOwner(msg.sender);
        ProxyUpgradeableOwnableStorage.layout().implementation = implementation;
    }

    receive() external payable {}

    /**
     * @inheritdoc Proxy
     */
    function _getImplementation() internal view override returns (address) {
        return ProxyUpgradeableOwnableStorage.layout().implementation;
    }

    /**
     * @notice get address of implementation contract
     * @return implementation address
     */
    function getImplementation() external view returns (address) {
        return _getImplementation();
    }

    /**
     * @notice set address of implementation contract
     * @param implementation address of the new implementation
     */
    function setImplementation(address implementation) external onlyOwner {
        ProxyUpgradeableOwnableStorage.layout().implementation = implementation;
    }
}

File 2 of 12 : Proxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { AddressUtils } from '../utils/AddressUtils.sol';

/**
 * @title Base proxy contract
 */
abstract contract Proxy {
    using AddressUtils for address;

    /**
     * @notice delegate all calls to implementation contract
     * @dev reverts if implementation address contains no code, for compatibility with metamorphic contracts
     * @dev memory location in use by assembly may be unsafe in other contexts
     */
    fallback() external payable virtual {
        address implementation = _getImplementation();

        require(
            implementation.isContract(),
            'Proxy: implementation must be contract'
        );

        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(
                gas(),
                implementation,
                0,
                calldatasize(),
                0,
                0
            )
            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @notice get logic implementation address
     * @return implementation address
     */
    function _getImplementation() internal virtual returns (address);
}

File 3 of 12 : SafeOwnable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { Ownable, OwnableStorage } from './Ownable.sol';
import { SafeOwnableInternal } from './SafeOwnableInternal.sol';
import { SafeOwnableStorage } from './SafeOwnableStorage.sol';

/**
 * @title Ownership access control based on ERC173 with ownership transfer safety check
 */
abstract contract SafeOwnable is Ownable, SafeOwnableInternal {
    using OwnableStorage for OwnableStorage.Layout;
    using SafeOwnableStorage for SafeOwnableStorage.Layout;

    function nomineeOwner() public view virtual returns (address) {
        return SafeOwnableStorage.layout().nomineeOwner;
    }

    /**
     * @inheritdoc Ownable
     * @dev ownership transfer must be accepted by beneficiary before transfer is complete
     */
    function transferOwnership(address account)
        public
        virtual
        override
        onlyOwner
    {
        SafeOwnableStorage.layout().setNomineeOwner(account);
    }

    /**
     * @notice accept transfer of contract ownership
     */
    function acceptOwnership() public virtual onlyNomineeOwner {
        OwnableStorage.Layout storage l = OwnableStorage.layout();
        emit OwnershipTransferred(l.owner, msg.sender);
        l.setOwner(msg.sender);
        SafeOwnableStorage.layout().setNomineeOwner(address(0));
    }
}

File 4 of 12 : ProxyUpgradeableOwnableStorage.sol
// SPDX-License-Identifier: BUSL-1.1
// For further clarification please see https://license.premia.legal

pragma solidity ^0.8.0;

library ProxyUpgradeableOwnableStorage {
    bytes32 internal constant STORAGE_SLOT =
        keccak256("premia.contracts.storage.ProxyUpgradeableOwnable");

    struct Layout {
        address implementation;
    }

    function layout() internal pure returns (Layout storage l) {
        bytes32 slot = STORAGE_SLOT;
        assembly {
            l.slot := slot
        }
    }
}

File 5 of 12 : AddressUtils.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { UintUtils } from './UintUtils.sol';

library AddressUtils {
    using UintUtils for uint256;

    function toString(address account) internal pure returns (string memory) {
        return uint256(uint160(account)).toHexString(20);
    }

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable account, uint256 amount) internal {
        (bool success, ) = account.call{ value: amount }('');
        require(success, 'AddressUtils: failed to send value');
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return
            functionCall(target, data, 'AddressUtils: failed low-level call');
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory error
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, error);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                'AddressUtils: failed low-level call with value'
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory error
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            'AddressUtils: insufficient balance for call'
        );
        return _functionCallWithValue(target, data, value, error);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory error
    ) private returns (bytes memory) {
        require(
            isContract(target),
            'AddressUtils: function call to non-contract'
        );

        (bool success, bytes memory returnData) = target.call{ value: value }(
            data
        );

        if (success) {
            return returnData;
        } else if (returnData.length > 0) {
            assembly {
                let returnData_size := mload(returnData)
                revert(add(32, returnData), returnData_size)
            }
        } else {
            revert(error);
        }
    }
}

File 6 of 12 : UintUtils.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title utility functions for uint256 operations
 * @dev derived from https://github.com/OpenZeppelin/openzeppelin-contracts/ (MIT license)
 */
library UintUtils {
    bytes16 private constant HEX_SYMBOLS = '0123456789abcdef';

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return '0';
        }

        uint256 temp = value;
        uint256 digits;

        while (temp != 0) {
            digits++;
            temp /= 10;
        }

        bytes memory buffer = new bytes(digits);

        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }

        return string(buffer);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return '0x00';
        }

        uint256 length = 0;

        for (uint256 temp = value; temp != 0; temp >>= 8) {
            unchecked {
                length++;
            }
        }

        return toHexString(value, length);
    }

    function toHexString(uint256 value, uint256 length)
        internal
        pure
        returns (string memory)
    {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = '0';
        buffer[1] = 'x';

        unchecked {
            for (uint256 i = 2 * length + 1; i > 1; --i) {
                buffer[i] = HEX_SYMBOLS[value & 0xf];
                value >>= 4;
            }
        }

        require(value == 0, 'UintUtils: hex length insufficient');

        return string(buffer);
    }
}

File 7 of 12 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { IERC173 } from './IERC173.sol';
import { OwnableInternal } from './OwnableInternal.sol';
import { OwnableStorage } from './OwnableStorage.sol';

/**
 * @title Ownership access control based on ERC173
 */
abstract contract Ownable is IERC173, OwnableInternal {
    using OwnableStorage for OwnableStorage.Layout;

    /**
     * @inheritdoc IERC173
     */
    function owner() public view virtual returns (address) {
        return OwnableStorage.layout().owner;
    }

    /**
     * @inheritdoc IERC173
     */
    function transferOwnership(address account) public virtual onlyOwner {
        OwnableStorage.layout().setOwner(account);
        emit OwnershipTransferred(msg.sender, account);
    }
}

File 8 of 12 : SafeOwnableInternal.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { SafeOwnableStorage } from './SafeOwnableStorage.sol';

abstract contract SafeOwnableInternal {
    using SafeOwnableStorage for SafeOwnableStorage.Layout;

    modifier onlyNomineeOwner() {
        require(
            msg.sender == SafeOwnableStorage.layout().nomineeOwner,
            'SafeOwnable: sender must be nominee owner'
        );
        _;
    }
}

File 9 of 12 : SafeOwnableStorage.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library SafeOwnableStorage {
    struct Layout {
        address nomineeOwner;
    }

    bytes32 internal constant STORAGE_SLOT =
        keccak256('solidstate.contracts.storage.SafeOwnable');

    function layout() internal pure returns (Layout storage l) {
        bytes32 slot = STORAGE_SLOT;
        assembly {
            l.slot := slot
        }
    }

    function setNomineeOwner(Layout storage l, address nomineeOwner) internal {
        l.nomineeOwner = nomineeOwner;
    }
}

File 10 of 12 : IERC173.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title Contract ownership standard interface
 * @dev see https://eips.ethereum.org/EIPS/eip-173
 */
interface IERC173 {
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @notice get the ERC173 contract owner
     * @return conract owner
     */
    function owner() external view returns (address);

    /**
     * @notice transfer contract ownership to new account
     * @param account address of new owner
     */
    function transferOwnership(address account) external;
}

File 11 of 12 : OwnableInternal.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import { OwnableStorage } from './OwnableStorage.sol';

abstract contract OwnableInternal {
    using OwnableStorage for OwnableStorage.Layout;

    modifier onlyOwner() {
        require(
            msg.sender == OwnableStorage.layout().owner,
            'Ownable: sender must be owner'
        );
        _;
    }
}

File 12 of 12 : OwnableStorage.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library OwnableStorage {
    struct Layout {
        address owner;
    }

    bytes32 internal constant STORAGE_SLOT =
        keccak256('solidstate.contracts.storage.Ownable');

    function layout() internal pure returns (Layout storage l) {
        bytes32 slot = STORAGE_SLOT;
        assembly {
            l.slot := slot
        }
    }

    function setOwner(Layout storage l, address owner) internal {
        l.owner = owner;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nomineeOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516105fb3803806105fb83398101604081905261002f916100f3565b6100573361004561008e60201b6103de1760201c565b6100b260201b6104021790919060201c565b8061006a6100cf60201b61041f1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550610123565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b7fec1bacb76164b9264bf407e47c681dddfa298268d816c359f3290c1efbd02ab290565b60006020828403121561010557600080fd5b81516001600160a01b038116811461011c57600080fd5b9392505050565b6104c9806101326000396000f3fe6080604052600436106100595760003560e01c806379ba5097146100fb5780638ab5150a146101125780638da5cb5b14610143578063aaf10f4214610158578063d784d4261461016d578063f2fde38b1461018d57610060565b3661006057005b600061006a6101ad565b90506001600160a01b0381163b6100d75760405162461bcd60e51b815260206004820152602660248201527f50726f78793a20696d706c656d656e746174696f6e206d75737420626520636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100f6573d6000f35b3d6000fd5b34801561010757600080fd5b506101106101c6565b005b34801561011e57600080fd5b506101276102ad565b6040516001600160a01b03909116815260200160405180910390f35b34801561014f57600080fd5b506101276102c3565b34801561016457600080fd5b506101276102cd565b34801561017957600080fd5b50610110610188366004610443565b6102dc565b34801561019957600080fd5b506101106101a8366004610443565b610366565b60006101b761041f565b546001600160a01b0316919050565b600080516020610474833981519152546001600160a01b0316331461023f5760405162461bcd60e51b815260206004820152602960248201527f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d696044820152683732b29037bbb732b960b91b60648201526084016100ce565b60006102496103de565b805460405191925033916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a361028f8133610402565b6102aa60006000805160206104748339815191525b90610402565b50565b60006000805160206104748339815191526101b7565b60006101b76103de565b60006102d76101ad565b905090565b6102e46103de565b546001600160a01b0316331461033c5760405162461bcd60e51b815260206004820152601d60248201527f4f776e61626c653a2073656e646572206d757374206265206f776e657200000060448201526064016100ce565b8061034561041f565b80546001600160a01b0319166001600160a01b039290921691909117905550565b61036e6103de565b546001600160a01b031633146103c65760405162461bcd60e51b815260206004820152601d60248201527f4f776e61626c653a2073656e646572206d757374206265206f776e657200000060448201526064016100ce565b6102aa816000805160206104748339815191526102a4565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b7fec1bacb76164b9264bf407e47c681dddfa298268d816c359f3290c1efbd02ab290565b60006020828403121561045557600080fd5b81356001600160a01b038116811461046c57600080fd5b939250505056fe24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890a2646970667358221220cb2919731683401f0ab7e5677dde322df8f24cbe6bddca61fab070e8c37ccb3d64736f6c634300080c003300000000000000000000000013b303ff970d1b1d420c19d0b71a9895d9762d2d

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000013b303ff970d1b1d420c19d0b71a9895d9762d2d

-----Decoded View---------------
Arg [0] : implementation (address): 0x13b303ff970d1b1d420c19d0b71a9895d9762d2d

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000013b303ff970d1b1d420c19d0b71a9895d9762d2d


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.