Contract 0x0389996552f5da35fa6ddc80b083f78622df3a6f 1

 

Contract Overview

Balance:
0 FTM

FTM Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x16662c4966d91c495ccfb9ba7a41e5fa16c6cb16169136ff0a4c349b10e2c662Multi Claim548953602023-02-02 5:38:415 hrs 3 mins ago0x85c5489f74fe5000ff0701535d9ec8ef49dfe704 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.039987721636
0xb9e03808ab15b519811d6ac5d22f9c265ecd947c498b895df7a02d11136d8d5fMulti Claim548895202023-02-02 3:31:467 hrs 10 mins ago0x95c3f3f5f805e604462dfd51fbea5330f5963b35 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.032765785171
0xe04ec4a66309588acb24838075081918c792f14583681ebd8098b0a158859a65Multi Claim548640122023-02-01 18:59:5015 hrs 42 mins ago0x4ffad6ac852c0af0aa301376f4c5dea3a928b120 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.01119297
0x270313c0ba687a2a47308ed2f3b4d17f83ff17b289e8ceee4332ce4c03f6c074Multi Claim548315052023-02-01 6:23:531 day 4 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.0081564
0xe27dcff8b1b4e783934f07e2fbcb2e73a98da48b56027e7e56164c5a0b108cfaMulti Claim548112012023-01-31 23:06:511 day 11 hrs ago0x51f059c07e03d330b007b48630a857e582be8236 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.01665247012
0xcea1bcbdf211145c2c14c4a180e529e7ddb26c01e198bc3cf6682aec934c31c4Multi Claim547829772023-01-31 13:11:571 day 21 hrs ago0xe76bc1cc2a58176249d92be86d988470b8c5760e IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.0081053924
0x9bef10f11cdfa9806a887536fb7714747f73e8981b08d868b4618c38f58b92a1Multi Claim547740352023-01-31 9:27:282 days 1 hr ago0x77aee779a64cf7c4556ffcdbbdfb29af70fe87bc IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.00840596
0x40264e97f130d8cf3a408300f459128f3d06c2001c7d1e7b806fccbe423749d6Multi Claim547605222023-01-31 3:45:552 days 6 hrs ago0xd63da94c6a7e8d15f8eed6d008815fd9e978cc1f IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.00739925451
0x10c10c27fcc6777f56521c9d6f1784ca5ac86df64e21a8ada9a8e06180a0875eMulti Claim547187742023-01-30 12:19:162 days 22 hrs ago0xfb17d5cd85854b6bee89e714591de521f3169de5 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.007883679
0x648c2cf6d079e07be5d297af296ff99a3b7bb24927a2be6eaf7fa337b6b21281Multi Claim546623062023-01-29 13:10:053 days 21 hrs ago0x85c5489f74fe5000ff0701535d9ec8ef49dfe704 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.02834121345
0x67e00b8a324abc8d2a4c2a9a0d660859c6cd80da8a3fcbf26208347c683562dbMulti Claim546429442023-01-29 7:02:274 days 3 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.006268832258
0x82102d14db8cdc82bcdd6fde7dfba9eb7d8391c1ec2f3939c0cf60c95d4b2532Multi Claim545406952023-01-27 11:43:535 days 22 hrs ago0x05e774a23c386a6a092d40b2a7008e8502f34993 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.008732453857
0xb65b7bd4d5571a3ef05ad1e7217cea6509c1d8f4bfd214e87975c8fff38083b6Multi Claim545308692023-01-27 8:35:446 days 2 hrs ago0x35c0578375d034b10dc73d8bb4d26f8c1bff0001 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.014710781368
0x1ed044da36159147f2aa7538cac4dda7b13024f46c8bb2d6805476c9273bbabcMulti Claim545260312023-01-27 6:52:166 days 3 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.068223717903
0x76384fddde6c6e0af845744c16d24421a8a01c4bbd65f423c2ff06f7eb26c9cbMulti Claim544813212023-01-26 15:54:426 days 18 hrs ago0xe76bc1cc2a58176249d92be86d988470b8c5760e IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.19385485
0x5f25d1939f306229c38457a18a6ca24008f6cc01d26eb1654938f314cd262ce8Multi Claim544096072023-01-25 14:25:327 days 20 hrs ago0xd63da94c6a7e8d15f8eed6d008815fd9e978cc1f IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.015269429
0xf92a564e00d2838c6cb590b2fd624bed581cc468119d164aec51ea442b9bbeacMulti Claim543916882023-01-25 7:34:368 days 3 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.01020236
0x3704eab24eddb994884bac478a8f98f616f95c45e8c312567b6a87e2f7f359e6Multi Claim543263392023-01-24 6:18:249 days 4 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.034497460174
0x997fa1b18adbf7e7cc6b89e72da1bc52252bfa779b547fd579904b5bb4e84088Multi Claim543202392023-01-24 4:25:459 days 6 hrs ago0x85c5489f74fe5000ff0701535d9ec8ef49dfe704 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.02692259269
0xf105a9c789334c4669ee9a24512c84654953cd4ca042d1b29ad99b68856fa83aMulti Claim541629672023-01-21 20:38:1311 days 14 hrs ago0xeebc8b70f714ed861fb33255fbedb80813606e07 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.003342389
0xdd2d6b21c4458fcd0cb088e194c024705fd5894722f9458193ae8181ade6109aMulti Claim541517522023-01-21 15:34:4511 days 19 hrs ago0xfb17d5cd85854b6bee89e714591de521f3169de5 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.00713401327
0x960131467c19b81d0b046f847eeb982d5dd2efe3f646f0d43e8382f944abedacMulti Claim541512542023-01-21 15:21:1411 days 19 hrs ago0xe76bc1cc2a58176249d92be86d988470b8c5760e IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.010002091421
0xbb46f58227dfb3f547f68023ca35ffff4a43b26b6a4c4209cffdd3638f550764Multi Claim541374252023-01-21 10:34:5912 days 7 mins ago0xddc60d163015cf5ca1369d557a2ca1cc2de1f1e3 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.0109846825
0x8c4097c1a0ca7d61ebd592a9a46ddd1c9e2ab1211369c8d2873a43631052f0a6Multi Claim541272612023-01-21 6:46:3912 days 3 hrs ago0x8f22cee99b55ffba8c55f27181d14bcd34e202ed IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.017246178649
0xeb6c4b97c768b5a91b8af9c583e81b7f54bca7e24fc8af776a633fd6da554f5aMulti Claim541073142023-01-21 0:42:2712 days 10 hrs ago0xdb611d682cb1ad72fcbacd944a8a6e2606a6d158 IN  0x0389996552f5da35fa6ddc80b083f78622df3a6f0 FTM0.0415832252
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xb6e7b9de71af01c5d67c42f67acc389c422409220a28638ca32119d0432ffdb9371044242022-04-27 23:16:01280 days 11 hrs ago 0xc7f8d87734ab2cbf70030ac8aa82abfe3e8126cb  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:
PremiaMiningProxy

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.8.0;

import {ProxyUpgradeableOwnable} from "../ProxyUpgradeableOwnable.sol";
import {PremiaMiningStorage} from "./PremiaMiningStorage.sol";

contract PremiaMiningProxy is ProxyUpgradeableOwnable {
    constructor(address implementation, uint256 premiaPerYear)
        ProxyUpgradeableOwnable(implementation)
    {
        PremiaMiningStorage.layout().premiaPerYear = premiaPerYear;
    }
}

File 2 of 14 : 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 3 of 14 : PremiaMiningStorage.sol
// SPDX-License-Identifier: BUSL-1.1
// For further clarification please see https://license.premia.legal

pragma solidity ^0.8.0;

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

    // Info of each pool.
    struct PoolInfo {
        uint256 allocPoint; // How many allocation points assigned to this pool. PREMIA to distribute per block.
        uint256 lastRewardTimestamp; // Last timestamp that PREMIA distribution occurs
        uint256 accPremiaPerShare; // Accumulated PREMIA per share, times 1e12. See below.
    }

    // Info of each user.
    struct UserInfo {
        uint256 reward; // Total allocated unclaimed reward
        uint256 rewardDebt; // Reward debt. See explanation below.
        //
        // We do some fancy math here. Basically, any point in time, the amount of PREMIA
        // entitled to a user but is pending to be distributed is:
        //
        //   pending reward = (user.amount * pool.accPremiaPerShare) - user.rewardDebt
        //
        // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens:
        //   1. The pool's `accPremiaPerShare` (and `lastRewardBlock`) gets updated.
        //   2. User receives the pending reward sent to his/her address.
        //   3. User's `amount` gets updated.
        //   4. User's `rewardDebt` gets updated.
    }

    struct Layout {
        // Total PREMIA left to distribute
        uint256 premiaAvailable;
        // Amount of premia distributed per year
        uint256 premiaPerYear;
        // pool -> isCallPool -> PoolInfo
        mapping(address => mapping(bool => PoolInfo)) poolInfo;
        // pool -> isCallPool -> user -> UserInfo
        mapping(address => mapping(bool => mapping(address => UserInfo))) userInfo;
        // Total allocation points. Must be the sum of all allocation points in all pools.
        uint256 totalAllocPoint;
    }

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

File 4 of 14 : 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 5 of 14 : 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 6 of 14 : 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 7 of 14 : 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 8 of 14 : 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 9 of 14 : 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 10 of 14 : 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 11 of 14 : 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 12 of 14 : 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 13 of 14 : 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 14 of 14 : 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"},{"internalType":"uint256","name":"premiaPerYear","type":"uint256"}],"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"}]

608060405234801561001057600080fd5b5060405161067138038061067183398101604081905261002f9161013b565b81610058336100466100b260201b6103de1760201c565b6100d660201b6104021790919060201c565b8061006b6100f360201b61041f1760201c565b60000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050806100a661011760201b6104431760201c565b60010155506101759050565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b7fec1bacb76164b9264bf407e47c681dddfa298268d816c359f3290c1efbd02ab290565b7fbc3d0f4e527eb7d9d4c8c04935880d70508034a03e9e2dcd581650e0921fbe9d90565b6000806040838503121561014e57600080fd5b82516001600160a01b038116811461016557600080fd5b6020939093015192949293505050565b6104ed806101846000396000f3fe6080604052600436106100595760003560e01c806379ba5097146100fb5780638ab5150a146101125780638da5cb5b14610143578063aaf10f4214610158578063d784d4261461016d578063f2fde38b1461018d57610060565b3661006057005b600061006a6101ad565b90506001600160a01b0381163b6100d75760405162461bcd60e51b815260206004820152602660248201527f50726f78793a20696d706c656d656e746174696f6e206d75737420626520636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100f6573d6000f35b3d6000fd5b34801561010757600080fd5b506101106101c6565b005b34801561011e57600080fd5b506101276102ad565b6040516001600160a01b03909116815260200160405180910390f35b34801561014f57600080fd5b506101276102c3565b34801561016457600080fd5b506101276102cd565b34801561017957600080fd5b50610110610188366004610467565b6102dc565b34801561019957600080fd5b506101106101a8366004610467565b610366565b60006101b761041f565b546001600160a01b0316919050565b600080516020610498833981519152546001600160a01b0316331461023f5760405162461bcd60e51b815260206004820152602960248201527f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d696044820152683732b29037bbb732b960b91b60648201526084016100ce565b60006102496103de565b805460405191925033916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a361028f8133610402565b6102aa60006000805160206104988339815191525b90610402565b50565b60006000805160206104988339815191526101b7565b60006101b76103de565b60006102d76101ad565b905090565b6102e46103de565b546001600160a01b0316331461033c5760405162461bcd60e51b815260206004820152601d60248201527f4f776e61626c653a2073656e646572206d757374206265206f776e657200000060448201526064016100ce565b8061034561041f565b80546001600160a01b0319166001600160a01b039290921691909117905550565b61036e6103de565b546001600160a01b031633146103c65760405162461bcd60e51b815260206004820152601d60248201527f4f776e61626c653a2073656e646572206d757374206265206f776e657200000060448201526064016100ce565b6102aa816000805160206104988339815191526102a4565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b7fec1bacb76164b9264bf407e47c681dddfa298268d816c359f3290c1efbd02ab290565b7fbc3d0f4e527eb7d9d4c8c04935880d70508034a03e9e2dcd581650e0921fbe9d90565b60006020828403121561047957600080fd5b81356001600160a01b038116811461049057600080fd5b939250505056fe24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890a2646970667358221220ba78e04c676bca69aca096c96ef5284c30826d0c748431ee8c1937430049766f64736f6c634300080c00330000000000000000000000007518ea3bc20474d4d9871f40e3ed4dc31ab2b48d00000000000000000000000000000000000000000000000006f05b59d3b20000

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

0000000000000000000000007518ea3bc20474d4d9871f40e3ed4dc31ab2b48d00000000000000000000000000000000000000000000000006f05b59d3b20000

-----Decoded View---------------
Arg [0] : implementation (address): 0x7518ea3bc20474d4d9871f40e3ed4dc31ab2b48d
Arg [1] : premiaPerYear (uint256): 500000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007518ea3bc20474d4d9871f40e3ed4dc31ab2b48d
Arg [1] : 00000000000000000000000000000000000000000000000006f05b59d3b20000


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.