false
false
0

Contract Address Details

0x2d0611127cc48671B60D2EEba44df50BF1e571ED

Contract Name
DumperShieldToken
Creator
0x3e8ae9–209335 at 0x5fb04f–3a55df
Balance
0 CLO
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
18597368
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
DumperShieldToken




Optimization enabled
true
Compiler version
v0.8.19+commit.7dd6d404




Optimization runs
200
EVM Version
default




Verified at
2024-09-26T15:31:24.122051Z

Contract source code

// Copyright (c) [2023], [Qwantum Finance Labs]
// All rights reserved.
// SPDX-License-Identifier: No License (None)
pragma solidity ^0.8.0;

interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

interface IDSFactory {
    function totalSupply(address token) external view returns (uint256);
    function getLock(address token, address user) external view returns(uint256);
    function setLock(address token, address user, uint256 time) external returns(bool);
}

contract DumperShieldUser {

    address public factory; // dumper shield factory
    address public user;
    error OnlyFactory();
/*
    address public dumperShield;
    modifier onlyDumperShield() {
        require(dumperShield == msg.sender, "Only dumperShield allowed");
        _;
    }
*/
    modifier onlyFactory() {
        if (factory != msg.sender) revert OnlyFactory();
        _;
    }

    constructor (address _user, address _factory) {
        require(_user != address(0) && _factory != address(0));
        user = _user;
        factory = _factory;
    }

    function safeTransfer(address token, address to, uint value) external onlyFactory {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'DSU1'); //DumperShieldUser: TRANSFER_FAILED
    }
}

contract DumperShieldToken {
    IERC20 public shieldedToken;   // address of shielded token
    address public factory; // dumper shield factory
    //address public router;
    mapping(address => address) public dumperShieldUsers;   // user address => DumperShieldUser contract
    address public DAO; // address of global voting contract

    event CreateDumperShieldUser(address user, address dsUserContract);

    modifier onlyFactory() {
        require(factory == msg.sender, "onlyFactory");
        _;
    }

    function initialize(address _token, address _dao) external {
        require(address(shieldedToken) == address(0) && _token != address(0));
        shieldedToken = IERC20(_token);
        DAO = _dao;
        //router = _router;
        factory = msg.sender;
    }
    /**
     * @dev Gets the balance of the specified address.
     * @param user The address to query the the balance of.
     * @return balance an uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address user) external view returns (uint256 balance) {
        return shieldedToken.balanceOf(dumperShieldUsers[user]);
    }

    // returns DumperShieldUser contract address. If user has not contract - create it.
    function createDumperShieldUser(address user, address dsUser) external onlyFactory returns(address) {

        if (dsUser == address(0)) {
            dsUser = address(new DumperShieldUser(user, factory));
            emit CreateDumperShieldUser(user, dsUser);
        } else if (dumperShieldUsers[user] == dsUser) {
            return dsUser;
        }
        dumperShieldUsers[user] = dsUser;
        return dsUser;
    }

    function totalSupply() external view returns (uint256) {
        return IDSFactory(factory).totalSupply(address(shieldedToken));
    }

    function setLock(address user, uint256 time) external returns(bool) {
        require(msg.sender == DAO, "Only DAO");
        return IDSFactory(factory).setLock(address(shieldedToken), user, time);
    }

    function getLock(address user) external view returns(uint256) {
        return IDSFactory(factory).getLock(address(shieldedToken),user);
    }

    function setDAO(address _dao) external returns (bool) {
        require(msg.sender == factory, "Only factory");
        DAO = _dao;
        return true;
    }

    // allow to rescue tokens that were transferet to this contract by mistake
    function safeTransfer(address token, address to, uint value) external onlyFactory {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TRANSFER_FAILED');
    }
}
        

Contract ABI

[{"type":"event","name":"CreateDumperShieldUser","inputs":[{"type":"address","name":"user","internalType":"address","indexed":false},{"type":"address","name":"dsUserContract","internalType":"address","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"DAO","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"balance","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"user","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"createDumperShieldUser","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"address","name":"dsUser","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dumperShieldUsers","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"factory","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getLock","inputs":[{"type":"address","name":"user","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"_token","internalType":"address"},{"type":"address","name":"_dao","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"safeTransfer","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"setDAO","inputs":[{"type":"address","name":"_dao","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"setLock","inputs":[{"type":"address","name":"user","internalType":"address"},{"type":"uint256","name":"time","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20"}],"name":"shieldedToken","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]}]
              

Contract Creation Code

Verify & Publish
0x608060405234801561001057600080fd5b50610c90806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806398fabd3a1161007157806398fabd3a14610163578063b0fc29e614610176578063c45a015514610199578063cc9ae595146101ac578063d1660f99146101bf578063e73a914c146101d257600080fd5b806318160ddd146100b957806345ba8489146100d4578063485cc9551461011557806351bb50e61461012a5780636b9db4e61461013d57806370a0823114610150575b600080fd5b6100c16101e5565b6040519081526020015b60405180910390f35b6100fd6100e236600461079a565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100cb565b6101286101233660046107b5565b61025c565b005b6100fd6101383660046107b5565b6102c4565b6100c161014b36600461079a565b61041e565b6100c161015e36600461079a565b610499565b6003546100fd906001600160a01b031681565b6101896101843660046107e8565b6104da565b60405190151581526020016100cb565b6001546100fd906001600160a01b031681565b6000546100fd906001600160a01b031681565b6101286101cd366004610812565b6105aa565b6101896101e036600461079a565b6106ff565b600154600080546040516339370aa960e21b81526001600160a01b0391821660048201529192169063e4dc2aa490602401602060405180830381865afa158015610233573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610257919061084e565b905090565b6000546001600160a01b031615801561027d57506001600160a01b03821615155b61028657600080fd5b600080546001600160a01b039384166001600160a01b0319918216179091556003805492909316918116919091179091556001805490911633179055565b6001546000906001600160a01b031633146103145760405162461bcd60e51b815260206004820152600b60248201526a6f6e6c79466163746f727960a81b60448201526064015b60405180910390fd5b6001600160a01b0382166103bc5760015460405184916001600160a01b03169061033d90610771565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610370573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529193507f326b0c8847d196b508808bef01c8cadb0b718f12f4cdf79f702100ad0e77d6e2910160405180910390a16103e7565b6001600160a01b038381166000908152600260205260409020548184169116036103e7575080610418565b506001600160a01b03828116600090815260026020526040902080546001600160a01b031916918316919091179055805b92915050565b600154600080546040516310cfa87b60e21b81526001600160a01b03918216600482015284821660248201529192169063433ea1ec906044015b602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610418919061084e565b600080546001600160a01b038381168352600260205260408084205490516370a0823160e01b815290821660048201529116906370a0823190602401610458565b6003546000906001600160a01b031633146105225760405162461bcd60e51b81526020600482015260086024820152674f6e6c792044414f60c01b604482015260640161030b565b600154600054604051631ac8874560e21b81526001600160a01b039182166004820152858216602482015260448101859052911690636b221d14906064016020604051808303816000875af115801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610867565b9392505050565b6001546001600160a01b031633146105f25760405162461bcd60e51b815260206004820152600b60248201526a6f6e6c79466163746f727960a81b604482015260640161030b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161064e9190610889565b6000604051808303816000865af19150503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b50915091508180156106ba5750805115806106ba5750808060200190518101906106ba9190610867565b6106f85760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161030b565b5050505050565b6001546000906001600160a01b0316331461074b5760405162461bcd60e51b815260206004820152600c60248201526b4f6e6c7920666163746f727960a01b604482015260640161030b565b50600380546001600160a01b0319166001600160a01b0392909216919091179055600190565b6103a2806108b983390190565b80356001600160a01b038116811461079557600080fd5b919050565b6000602082840312156107ac57600080fd5b6105a38261077e565b600080604083850312156107c857600080fd5b6107d18361077e565b91506107df6020840161077e565b90509250929050565b600080604083850312156107fb57600080fd5b6108048361077e565b946020939093013593505050565b60008060006060848603121561082757600080fd5b6108308461077e565b925061083e6020850161077e565b9150604084013590509250925092565b60006020828403121561086057600080fd5b5051919050565b60006020828403121561087957600080fd5b815180151581146105a357600080fd5b6000825160005b818110156108aa5760208186018101518583015201610890565b50600092019182525091905056fe608060405234801561001057600080fd5b506040516103a23803806103a283398101604081905261002f916100a5565b6001600160a01b0382161580159061004f57506001600160a01b03811615155b61005857600080fd5b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100d8565b80516001600160a01b03811681146100a057600080fd5b919050565b600080604083850312156100b857600080fd5b6100c183610089565b91506100cf60208401610089565b90509250929050565b6102bb806100e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80634f8632ba14610046578063c45a015514610075578063d1660f9914610088575b600080fd5b600154610059906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600054610059906001600160a01b031681565b61009b6100963660046101f1565b61009d565b005b6000546001600160a01b031633146100c857604051630636a15760e11b815260040160405180910390fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610124919061022d565b6000604051808303816000865af19150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5091509150818015610190575080511580610190575080806020019051810190610190919061025c565b6101ce5760405162461bcd60e51b81526004016101c5906020808252600490820152634453553160e01b604082015260600190565b60405180910390fd5b5050505050565b80356001600160a01b03811681146101ec57600080fd5b919050565b60008060006060848603121561020657600080fd5b61020f846101d5565b925061021d602085016101d5565b9150604084013590509250925092565b6000825160005b8181101561024e5760208186018101518583015201610234565b506000920191825250919050565b60006020828403121561026e57600080fd5b8151801515811461027e57600080fd5b939250505056fea26469706673582212207ce5413e76c54a3af1b1e521da6c55dafbbb72a534b28a7b06aee5836d86f0ff64736f6c63430008130033a2646970667358221220d90469e6424323282480c1e22b97912e016e2192b17c41d6f3588f3a91e3817664736f6c63430008130033

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806398fabd3a1161007157806398fabd3a14610163578063b0fc29e614610176578063c45a015514610199578063cc9ae595146101ac578063d1660f99146101bf578063e73a914c146101d257600080fd5b806318160ddd146100b957806345ba8489146100d4578063485cc9551461011557806351bb50e61461012a5780636b9db4e61461013d57806370a0823114610150575b600080fd5b6100c16101e5565b6040519081526020015b60405180910390f35b6100fd6100e236600461079a565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016100cb565b6101286101233660046107b5565b61025c565b005b6100fd6101383660046107b5565b6102c4565b6100c161014b36600461079a565b61041e565b6100c161015e36600461079a565b610499565b6003546100fd906001600160a01b031681565b6101896101843660046107e8565b6104da565b60405190151581526020016100cb565b6001546100fd906001600160a01b031681565b6000546100fd906001600160a01b031681565b6101286101cd366004610812565b6105aa565b6101896101e036600461079a565b6106ff565b600154600080546040516339370aa960e21b81526001600160a01b0391821660048201529192169063e4dc2aa490602401602060405180830381865afa158015610233573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610257919061084e565b905090565b6000546001600160a01b031615801561027d57506001600160a01b03821615155b61028657600080fd5b600080546001600160a01b039384166001600160a01b0319918216179091556003805492909316918116919091179091556001805490911633179055565b6001546000906001600160a01b031633146103145760405162461bcd60e51b815260206004820152600b60248201526a6f6e6c79466163746f727960a81b60448201526064015b60405180910390fd5b6001600160a01b0382166103bc5760015460405184916001600160a01b03169061033d90610771565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015610370573d6000803e3d6000fd5b50604080516001600160a01b038087168252831660208201529193507f326b0c8847d196b508808bef01c8cadb0b718f12f4cdf79f702100ad0e77d6e2910160405180910390a16103e7565b6001600160a01b038381166000908152600260205260409020548184169116036103e7575080610418565b506001600160a01b03828116600090815260026020526040902080546001600160a01b031916918316919091179055805b92915050565b600154600080546040516310cfa87b60e21b81526001600160a01b03918216600482015284821660248201529192169063433ea1ec906044015b602060405180830381865afa158015610475573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610418919061084e565b600080546001600160a01b038381168352600260205260408084205490516370a0823160e01b815290821660048201529116906370a0823190602401610458565b6003546000906001600160a01b031633146105225760405162461bcd60e51b81526020600482015260086024820152674f6e6c792044414f60c01b604482015260640161030b565b600154600054604051631ac8874560e21b81526001600160a01b039182166004820152858216602482015260448101859052911690636b221d14906064016020604051808303816000875af115801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610867565b9392505050565b6001546001600160a01b031633146105f25760405162461bcd60e51b815260206004820152600b60248201526a6f6e6c79466163746f727960a81b604482015260640161030b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161064e9190610889565b6000604051808303816000865af19150503d806000811461068b576040519150601f19603f3d011682016040523d82523d6000602084013e610690565b606091505b50915091508180156106ba5750805115806106ba5750808060200190518101906106ba9190610867565b6106f85760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161030b565b5050505050565b6001546000906001600160a01b0316331461074b5760405162461bcd60e51b815260206004820152600c60248201526b4f6e6c7920666163746f727960a01b604482015260640161030b565b50600380546001600160a01b0319166001600160a01b0392909216919091179055600190565b6103a2806108b983390190565b80356001600160a01b038116811461079557600080fd5b919050565b6000602082840312156107ac57600080fd5b6105a38261077e565b600080604083850312156107c857600080fd5b6107d18361077e565b91506107df6020840161077e565b90509250929050565b600080604083850312156107fb57600080fd5b6108048361077e565b946020939093013593505050565b60008060006060848603121561082757600080fd5b6108308461077e565b925061083e6020850161077e565b9150604084013590509250925092565b60006020828403121561086057600080fd5b5051919050565b60006020828403121561087957600080fd5b815180151581146105a357600080fd5b6000825160005b818110156108aa5760208186018101518583015201610890565b50600092019182525091905056fe608060405234801561001057600080fd5b506040516103a23803806103a283398101604081905261002f916100a5565b6001600160a01b0382161580159061004f57506001600160a01b03811615155b61005857600080fd5b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100d8565b80516001600160a01b03811681146100a057600080fd5b919050565b600080604083850312156100b857600080fd5b6100c183610089565b91506100cf60208401610089565b90509250929050565b6102bb806100e76000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80634f8632ba14610046578063c45a015514610075578063d1660f9914610088575b600080fd5b600154610059906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600054610059906001600160a01b031681565b61009b6100963660046101f1565b61009d565b005b6000546001600160a01b031633146100c857604051630636a15760e11b815260040160405180910390fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610124919061022d565b6000604051808303816000865af19150503d8060008114610161576040519150601f19603f3d011682016040523d82523d6000602084013e610166565b606091505b5091509150818015610190575080511580610190575080806020019051810190610190919061025c565b6101ce5760405162461bcd60e51b81526004016101c5906020808252600490820152634453553160e01b604082015260600190565b60405180910390fd5b5050505050565b80356001600160a01b03811681146101ec57600080fd5b919050565b60008060006060848603121561020657600080fd5b61020f846101d5565b925061021d602085016101d5565b9150604084013590509250925092565b6000825160005b8181101561024e5760208186018101518583015201610234565b506000920191825250919050565b60006020828403121561026e57600080fd5b8151801515811461027e57600080fd5b939250505056fea26469706673582212207ce5413e76c54a3af1b1e521da6c55dafbbb72a534b28a7b06aee5836d86f0ff64736f6c63430008130033a2646970667358221220d90469e6424323282480c1e22b97912e016e2192b17c41d6f3588f3a91e3817664736f6c63430008130033