Contract 0x43f81b81370d644357d7ad50f5e6f1dc34eca590

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x12085812786712f1928c2882bb5e278a282ae5c1d77c37ef7e66b5f28fa21572Reset219629442021-11-30 5:52:153 hrs 34 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0084087
0xa226155035b1f623f39d0fe482597fdc272ec5cf9bfce532e849108108548a17Reset219629362021-11-30 5:51:553 hrs 35 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0x557b0479b9c53e5708fe3645739915d39b48f67792e6efef2914e8021c1b76c9Reset219629272021-11-30 5:51:373 hrs 35 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0x54bdda83409a826d75632bb81dfdbc759c4467df27874c404c745d5dd7613a97Reset219629182021-11-30 5:51:193 hrs 35 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0xc065edfa96d0ce31f3b609932624b30ba69e7b006de2598ecec596fd2225dc77Reset219629082021-11-30 5:50:593 hrs 36 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0x8fa8c472f07e0c25dc730f0034bd746b480870548f4d3a7ecd716dc9dab893c4Reset219628992021-11-30 5:50:413 hrs 36 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x1f94bfbe8fd410c4a577d859efbe3a1c718b051d5e39467537779ab2a874f67eReset219628902021-11-30 5:50:233 hrs 36 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x6f7df4b285ed393c225f505a4232f33cd20282dfdd2475743120b18ce665b8b1Reset219628802021-11-30 5:50:033 hrs 37 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0xfefc2227007dde01e42f88b1224b5ac1b53ea4bdd1969cea90ca0e36bb45f8cbReset219628702021-11-30 5:49:393 hrs 37 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x7dea2f9b86f81914533f0c8cc26723765d78d941fe053befd0c049adc31e2a87Reset219628602021-11-30 5:49:193 hrs 37 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0xd14c2104b506871e99ec114934e63354942a8d1fa953398754c119d121ef8e37Reset219628512021-11-30 5:49:013 hrs 38 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x4c80a9e8175ff86e79a3e55bde49f798f95663c3ff14b65a3743477ab3cd9af4Reset219628422021-11-30 5:48:433 hrs 38 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x94cbc76f84c58178358cec50caea2358364b89a7ef4b5368c523bc8c44d90dc5Reset219628332021-11-30 5:48:253 hrs 38 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x2f5c7281fcf3738d5b2998f4b68da12574f8ff3fa3ad91df2db8781e318b985cReset219628232021-11-30 5:48:053 hrs 39 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x77ca337ef714935d20728c26fe07b24e043ebb2f166c0099b017f2dee78ba229Reset219628132021-11-30 5:47:413 hrs 39 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x8cb59a88f8bcddce2e95c057e3a6c9c12116b1d3937511f1b4b0441ecbcfba6bReset219628042021-11-30 5:47:233 hrs 39 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0xc6ec87e45d090992021711e6988fbaaf103f55291779515b89218a50166a5bbfReset219627952021-11-30 5:47:053 hrs 40 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0xa252ca3f08ec8ebd2744f1f270235a677343c0109d737de2d16a8feadd74e37aReset219627862021-11-30 5:46:473 hrs 40 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x0745098e55d2f5707193ab61129301f89ae8dddb3839b0a02a0d45ac061f75dcReset219627762021-11-30 5:46:273 hrs 40 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0xa771d7462bf62720b9ce245c28a146ec569b961f21197525b4dfb91632fd576eReset219627662021-11-30 5:46:073 hrs 41 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0081287
0x77649ff00cdf3cc596abe00c071f1834221aaf5364d9db8d0dd1142b4cd84712Reset219627572021-11-30 5:45:493 hrs 41 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0xc51a4d9764d7516d1d5c7b633e94124ce1a1096d1d8be54a3f02d01126ea6daaReset219627482021-11-30 5:45:273 hrs 41 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x13e93b1df670961c6065bb7425d5bb1dd460e10b9a1e10e79cc6053a5a9c83d1Reset219627392021-11-30 5:45:093 hrs 41 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x9deb9d0fa9b078e0d43027524ed4fcd4487e52198c0de20d96c669c9e17b00fbReset219627282021-11-30 5:44:473 hrs 42 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.0078487
0x4642780929d0ceacab508c0265a0a03434bd44455171d78cde23c5dc014d2c0fReset219627192021-11-30 5:44:293 hrs 42 mins ago0xbafdd9b705cc46d82cc06b0a0406e875ecaf769d IN  0x43f81b81370d644357d7ad50f5e6f1dc34eca5900 MATIC0.00627896
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x824bc0888f9068e4db60d682e065b3331c6916098fb0f0262fc496894e2a4ba9205813422021-10-25 3:18:5136 days 6 hrs ago 0x729f7f44bf64ce814716b6261e267dbe6cdf021c  Contract Creation0 MATIC
[ Download CSV Export 
Loading

Minimal Proxy Contract for 0x43f81b81370d644357d7ad50f5e6f1dc34eca590

Contract Name:
DPPAdmin

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
Decompile ByteCode
/**
 *Submitted for verification at polygonscan.com on 2021-06-11
*/

// File: contracts/DODOPrivatePool/intf/IDPP.sol

/*

    Copyright 2020 DODO ZOO.
    SPDX-License-Identifier: Apache-2.0

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

interface IDPP {
    function init(
        address owner,
        address maintainer,
        address baseTokenAddress,
        address quoteTokenAddress,
        uint256 lpFeeRate,
        address mtFeeRateModel,
        uint256 k,
        uint256 i,
        bool isOpenTWAP
    ) external;

    function _MT_FEE_RATE_MODEL_() external returns (address);

    //=========== admin ==========
    function ratioSync() external;

    function retrieve(
        address payable to,
        address token,
        uint256 amount
    ) external;

    function reset(
        address assetTo,
        uint256 newLpFeeRate,
        uint256 newI,
        uint256 newK,
        uint256 baseOutAmount,
        uint256 quoteOutAmount,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);

    //========== advanced ========
    function tuneParameters(
        uint256 newLpFeeRate,
        uint256 newI,
        uint256 newK,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);

    function tunePrice(
        uint256 newI,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external returns (bool);
}

// File: contracts/intf/IDODOApprove.sol

interface IDODOApprove {
    function claimTokens(address token,address who,address dest,uint256 amount) external;
    function getDODOProxy() external view returns (address);
}

// File: contracts/lib/InitializableOwnable.sol

/**
 * @title Ownable
 * @author DODO Breeder
 *
 * @notice Ownership related functions
 */
contract InitializableOwnable {
    address public _OWNER_;
    address public _NEW_OWNER_;
    bool internal _INITIALIZED_;

    // ============ Events ============

    event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    // ============ Modifiers ============

    modifier notInitialized() {
        require(!_INITIALIZED_, "DODO_INITIALIZED");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == _OWNER_, "NOT_OWNER");
        _;
    }

    // ============ Functions ============

    function initOwner(address newOwner) public notInitialized {
        _INITIALIZED_ = true;
        _OWNER_ = newOwner;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

    function claimOwnership() public {
        require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
        emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
        _OWNER_ = _NEW_OWNER_;
        _NEW_OWNER_ = address(0);
    }
}

// File: contracts/SmartRoute/DODOApproveProxy.sol



interface IDODOApproveProxy {
    function isAllowedProxy(address _proxy) external view returns (bool);
    function claimTokens(address token,address who,address dest,uint256 amount) external;
}

/**
 * @title DODOApproveProxy
 * @author DODO Breeder
 *
 * @notice Allow different version dodoproxy to claim from DODOApprove
 */
contract DODOApproveProxy is InitializableOwnable {
    
    // ============ Storage ============
    uint256 private constant _TIMELOCK_DURATION_ = 3 days;
    mapping (address => bool) public _IS_ALLOWED_PROXY_;
    uint256 public _TIMELOCK_;
    address public _PENDING_ADD_DODO_PROXY_;
    address public immutable _DODO_APPROVE_;

    // ============ Modifiers ============
    modifier notLocked() {
        require(
            _TIMELOCK_ <= block.timestamp,
            "SetProxy is timelocked"
        );
        _;
    }

    constructor(address dodoApporve) public {
        _DODO_APPROVE_ = dodoApporve;
    }

    function init(address owner, address[] memory proxies) external {
        initOwner(owner);
        for(uint i = 0; i < proxies.length; i++) 
            _IS_ALLOWED_PROXY_[proxies[i]] = true;
    }

    function unlockAddProxy(address newDodoProxy) public onlyOwner {
        _TIMELOCK_ = block.timestamp + _TIMELOCK_DURATION_;
        _PENDING_ADD_DODO_PROXY_ = newDodoProxy;
    }

    function lockAddProxy() public onlyOwner {
       _PENDING_ADD_DODO_PROXY_ = address(0);
       _TIMELOCK_ = 0;
    }


    function addDODOProxy() external onlyOwner notLocked() {
        _IS_ALLOWED_PROXY_[_PENDING_ADD_DODO_PROXY_] = true;
        lockAddProxy();
    }

    function removeDODOProxy (address oldDodoProxy) public onlyOwner {
        _IS_ALLOWED_PROXY_[oldDodoProxy] = false;
    }
    
    function claimTokens(
        address token,
        address who,
        address dest,
        uint256 amount
    ) external {
        require(_IS_ALLOWED_PROXY_[msg.sender], "DODOApproveProxy:Access restricted");
        IDODOApprove(_DODO_APPROVE_).claimTokens(
            token,
            who,
            dest,
            amount
        );
    }

    function isAllowedProxy(address _proxy) external view returns (bool) {
        return _IS_ALLOWED_PROXY_[_proxy];
    }
}

// File: contracts/DODOPrivatePool/impl/DPPAdmin.sol



/**
 * @title DPPAdmin
 * @author DODO Breeder
 *
 * @notice Admin of DODOPrivatePool
 */
contract DPPAdmin is InitializableOwnable {
    address public _DPP_;
    address public _OPERATOR_;
    address public _DODO_APPROVE_PROXY_;
    uint256 public _FREEZE_TIMESTAMP_;


    modifier notFreezed() {
        require(block.timestamp >= _FREEZE_TIMESTAMP_, "ADMIN_FREEZED");
        _;
    }

    function init(
        address owner,
        address dpp,
        address operator,
        address dodoApproveProxy
    ) external {
        initOwner(owner);
        _DPP_ = dpp;
        _OPERATOR_ = operator;
        _DODO_APPROVE_PROXY_ = dodoApproveProxy;
    }

    function sync() external notFreezed onlyOwner {
        IDPP(_DPP_).ratioSync();
    }

    function setFreezeTimestamp(uint256 timestamp) external notFreezed onlyOwner {
        _FREEZE_TIMESTAMP_ = timestamp;
    }

    function setOperator(address newOperator) external notFreezed onlyOwner {
        _OPERATOR_ = newOperator;
    }

    function retrieve(
        address payable to,
        address token,
        uint256 amount
    ) external notFreezed onlyOwner {
        IDPP(_DPP_).retrieve(to, token, amount);
    }

    function reset(
        address operator,
        uint256 newLpFeeRate,
        uint256 newI,
        uint256 newK,
        uint256 baseOutAmount,
        uint256 quoteOutAmount,
        uint256 minBaseReserve,
        uint256 minQuoteReserve
    ) external notFreezed returns (bool) {
        require(
            msg.sender == _OWNER_ ||
                (IDODOApproveProxy(_DODO_APPROVE_PROXY_).isAllowedProxy(msg.sender) &&
                    operator == _OPERATOR_),
            "RESET FORBIDDEN!"
        );
        return
            IDPP(_DPP_).reset(
                msg.sender,
                newLpFeeRate,
                newI,
                newK,
                baseOutAmount,
                quoteOutAmount,
                minBaseReserve,
                minQuoteReserve
            );
    }

    // ============ Admin Version Control ============

    function version() external pure returns (string memory) {
        return "DPPAdmin 1.0.0"; // 1.0.0
    }
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"_DODO_APPROVE_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DPP_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FREEZE_TIMESTAMP_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OPERATOR_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"dpp","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"dodoApproveProxy","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"newLpFeeRate","type":"uint256"},{"internalType":"uint256","name":"newI","type":"uint256"},{"internalType":"uint256","name":"newK","type":"uint256"},{"internalType":"uint256","name":"baseOutAmount","type":"uint256"},{"internalType":"uint256","name":"quoteOutAmount","type":"uint256"},{"internalType":"uint256","name":"minBaseReserve","type":"uint256"},{"internalType":"uint256","name":"minQuoteReserve","type":"uint256"}],"name":"reset","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setFreezeTimestamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.