ETH Price: $2,613.31 (+0.76%)

Contract

0xFF678c8c79537bb4e581C32F7be5eB2F16B10007
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Admin185402422023-11-10 8:06:11340 days ago1699603571IN
0xFF678c8c...F16B10007
0 ETH0.0012463343.54786631
Transfer Ownersh...185402362023-11-10 8:04:59340 days ago1699603499IN
0xFF678c8c...F16B10007
0 ETH0.0014230842.21286577
Withdraw Token166456002023-02-17 2:55:11607 days ago1676602511IN
0xFF678c8c...F16B10007
0 ETH0.003935828.0889835
Withdraw Token166383172023-02-16 2:28:59608 days ago1676514539IN
0xFF678c8c...F16B10007
0 ETH0.0059233137.67843031
Init165179762023-01-30 6:53:47624 days ago1675061627IN
0xFF678c8c...F16B10007
0 ETH0.011567713.61368998
0x60806040164161702023-01-16 1:48:23639 days ago1673833703IN
 Create: IncentivePorxy
0 ETH0.0045915714.66062477

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IncentivePorxy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 2: Incentive_proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./proxy.sol";

contract IncentivePorxy is basePorxy{
       constructor(address impl) {
        _setAdmin(msg.sender);
        _setLogic(impl);
    }
}

File 2 of 2: proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library StorageSlot {
    struct AddressSlot {
        address value;
    }

    struct BooleanSlot {
        bool value;
    }

    struct Bytes32Slot {
        bytes32 value;
    }

    struct Uint256Slot {
        uint256 value;
    }

    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
        assembly {
            r.slot := slot
        }
    }

    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
        assembly {
            r.slot := slot
        }
    }


    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
        assembly {
            r.slot := slot
        }
    }


    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
        assembly {
            r.slot := slot
        }
    }
}

contract Proxy {
    //EIP1967 Impl_solt: keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1
    bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
    //EIP1967 Admin_solt: keccak-256 hash of "eip1967.proxy.admin" subtracted by 1
    bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
  
    function _setAdmin(address admin_) internal {
        StorageSlot.getAddressSlot(_ADMIN_SLOT).value = admin_;
    }
    
    function _setLogic(address logic_) internal {
        StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = logic_;
    }
    
    function logic() public view returns (address) {
        return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
    }
    
    function admin() public view returns (address) {
       return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;
    }
    
    
    fallback () external payable {
        assembly {
            let impl := sload(_IMPLEMENTATION_SLOT)
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), impl, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }
    
    receive () external payable virtual {}
}


contract basePorxy is Proxy {
    event Upgraded(address indexed impl);
    event AdminChanged(address preAdmin, address newAdmin);
    
    modifier onlyAmdin(){
        require(msg.sender == admin(), "LucaPorxy: Caller not admin");
        _;
    }
    
    function changeAdmin(address newAdmin) external onlyAmdin returns(bool) {
        _setAdmin(newAdmin);
        emit AdminChanged(admin(), newAdmin);
        return true;
    } 
    
    function upgrad(address newLogic) external onlyAmdin returns(bool) {
        _setLogic(newLogic);
        emit Upgraded(newLogic);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"impl","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logic","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newLogic","type":"address"}],"name":"upgrad","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516104ea3803806104ea83398101604081905261002f916100d9565b61003833610047565b6100418161009f565b50610109565b8061007e7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b6100d660201b6102fe1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b8061007e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6100d660201b6102fe1760201c565b90565b6000602082840312156100eb57600080fd5b81516001600160a01b038116811461010257600080fd5b9392505050565b6103d2806101186000396000f3fe6080604052600436106100435760003560e01c806331079f6e146100925780638f283970146100c7578063d7dfa0dd146100e7578063f851a440146101145761004a565b3661004a57005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc543660008037600080366000845af490503d6000803e80801561008d573d6000f35b3d6000fd5b34801561009e57600080fd5b506100b26100ad36600461036c565b610129565b60405190151581526020015b60405180910390f35b3480156100d357600080fd5b506100b26100e236600461036c565b6101dd565b3480156100f357600080fd5b506100fc6102a3565b6040516001600160a01b0390911681526020016100be565b34801561012057600080fd5b506100fc6102d6565b60006101336102d6565b6001600160a01b0316336001600160a01b0316146101985760405162461bcd60e51b815260206004820152601b60248201527f4c756361506f7278793a2043616c6c6572206e6f742061646d696e000000000060448201526064015b60405180910390fd5b6101a182610301565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2506001919050565b60006101e76102d6565b6001600160a01b0316336001600160a01b0316146102475760405162461bcd60e51b815260206004820152601b60248201527f4c756361506f7278793a2043616c6c6572206e6f742061646d696e0000000000604482015260640161018f565b61025082610345565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6102796102d6565b604080516001600160a01b03928316815291851660208301520160405180910390a1506001919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036102c7565b90565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103610324565b60006020828403121561037e57600080fd5b81356001600160a01b038116811461039557600080fd5b939250505056fea26469706673582212203637e29350cfbb9e410c4f853ea91e188988fc3ea37ab298e4820ac01e0ce7d964736f6c634300081100330000000000000000000000006c218f7aebe88aa10ee1e25733e4ce700215be1f

Deployed Bytecode

0x6080604052600436106100435760003560e01c806331079f6e146100925780638f283970146100c7578063d7dfa0dd146100e7578063f851a440146101145761004a565b3661004a57005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc543660008037600080366000845af490503d6000803e80801561008d573d6000f35b3d6000fd5b34801561009e57600080fd5b506100b26100ad36600461036c565b610129565b60405190151581526020015b60405180910390f35b3480156100d357600080fd5b506100b26100e236600461036c565b6101dd565b3480156100f357600080fd5b506100fc6102a3565b6040516001600160a01b0390911681526020016100be565b34801561012057600080fd5b506100fc6102d6565b60006101336102d6565b6001600160a01b0316336001600160a01b0316146101985760405162461bcd60e51b815260206004820152601b60248201527f4c756361506f7278793a2043616c6c6572206e6f742061646d696e000000000060448201526064015b60405180910390fd5b6101a182610301565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2506001919050565b60006101e76102d6565b6001600160a01b0316336001600160a01b0316146102475760405162461bcd60e51b815260206004820152601b60248201527f4c756361506f7278793a2043616c6c6572206e6f742061646d696e0000000000604482015260640161018f565b61025082610345565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6102796102d6565b604080516001600160a01b03928316815291851660208301520160405180910390a1506001919050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b546001600160a01b0316919050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61036102c7565b90565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103610324565b60006020828403121561037e57600080fd5b81356001600160a01b038116811461039557600080fd5b939250505056fea26469706673582212203637e29350cfbb9e410c4f853ea91e188988fc3ea37ab298e4820ac01e0ce7d964736f6c63430008110033

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

0000000000000000000000006c218f7aebe88aa10ee1e25733e4ce700215be1f

-----Decoded View---------------
Arg [0] : impl (address): 0x6c218f7AEbe88aA10Ee1e25733E4cE700215be1F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c218f7aebe88aa10ee1e25733e4ce700215be1f


Deployed Bytecode Sourcemap

85:141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2019:20:1;2013:27;2073:14;2070:1;2067;2054:34;2164:1;2161;2145:14;2142:1;2136:4;2129:5;2116:50;2102:64;;2201:16;2198:1;2195;2180:38;2239:6;2259:38;;;;2331:16;2328:1;2321:27;2259:38;2278:16;2275:1;2268:27;2888:161;;;;;;;;;;-1:-1:-1;2888:161:1;;;;;:::i;:::-;;:::i;:::-;;;470:14:2;;463:22;445:41;;433:2;418:18;2888:161:1;;;;;;;;2696:179;;;;;;;;;;-1:-1:-1;2696:179:1;;;;;:::i;:::-;;:::i;1663:127::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;661:32:2;;;643:51;;631:2;616:18;1663:127:1;497:203:2;1802:117:1;;;;;;;;;;;;;:::i;2888:161::-;2949:4;2625:7;:5;:7::i;:::-;-1:-1:-1;;;;;2611:21:1;:10;-1:-1:-1;;;;;2611:21:1;;2603:61;;;;-1:-1:-1;;;2603:61:1;;907:2:2;2603:61:1;;;889:21:2;946:2;926:18;;;919:30;985:29;965:18;;;958:57;1032:18;;2603:61:1;;;;;;;;;2966:19:::1;2976:8;2966:9;:19::i;:::-;3001:18;::::0;-1:-1:-1;;;;;3001:18:1;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;3037:4:1::1;2888:161:::0;;;:::o;2696:179::-;2762:4;2625:7;:5;:7::i;:::-;-1:-1:-1;;;;;2611:21:1;:10;-1:-1:-1;;;;;2611:21:1;;2603:61;;;;-1:-1:-1;;;2603:61:1;;907:2:2;2603:61:1;;;889:21:2;946:2;926:18;;;919:30;985:29;965:18;;;958:57;1032:18;;2603:61:1;705:351:2;2603:61:1;2779:19:::1;2789:8;2779:9;:19::i;:::-;2814:31;2827:7;:5;:7::i;:::-;2814:31;::::0;;-1:-1:-1;;;;;1291:15:2;;;1273:34;;1343:15;;;1338:2;1323:18;;1316:43;1208:18;2814:31:1::1;;;;;;;-1:-1:-1::0;2863:4:1::1;2696:179:::0;;;:::o;1663:127::-;1701:7;1122:66;1728:48;:54;-1:-1:-1;;;;;1728:54:1;;1663:127;-1:-1:-1;1663:127:1:o;1802:117::-;1840:7;1319:66;1866:39;320:151;;449:4;320:151::o;1525:126::-;1637:6;1122:66;1580:48;:63;;-1:-1:-1;;;;;;1580:63:1;-1:-1:-1;;;;;1580:63:1;;;;;;;;;;-1:-1:-1;1525:126:1:o;1396:117::-;1499:6;1319:66;1451:39;320:151;14:286:2;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:2;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:2:o

Swarm Source

ipfs://3637e29350cfbb9e410c4f853ea91e188988fc3ea37ab298e4820ac01e0ce7d9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.