false
true
0

Contract Address Details

0x5D40c724ba3e7Ffa6a91db223368977C522BdACD

Contract Name
MVDWallet
Creator
0x74ef70–d501ed at 0x85569d–c1c5fb
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
3,962 Transfers
Gas Used
Fetching gas used...
Last Balance Update
26316351
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
MVDWallet




Optimization enabled
true
Compiler version
v0.6.8+commit.0bbfe453




Optimization runs
200
EVM Version
istanbul




Verified at
2026-04-18T14:52:58.689534Z

MVDWallet.sol

pragma solidity ^0.6.0;

import "./IMVDWallet.sol";
import "./IMVDProxy.sol";
import "./IERC20.sol";
import "./IERC721.sol";
import "./IERC721Receiver.sol";

contract MVDWallet is IMVDWallet, IERC721Receiver {

    address private _proxy;
    address payable private _newWallet;

    function setNewWallet(address payable newWallet, address tokenAddress) public override {
        require(msg.sender == _proxy, "Unauthorized Access!");
        _newWallet = newWallet;
        _newWallet.transfer(address(this).balance);
        IERC20 token = IERC20(tokenAddress);
        token.transfer(_newWallet, token.balanceOf(address(this)));
    }

    function flushToNewWallet(address tokenAddress) public override {
        require(_newWallet != address(0), "Unauthorized Access!");
        if(tokenAddress == address(0)) {
            payable(_newWallet).transfer(address(this).balance);
            return;
        }
        IERC20 token = IERC20(tokenAddress);
        token.transfer(_newWallet, token.balanceOf(address(this)));
    }

    function flush721ToNewWallet(uint256 tokenId, bytes memory data, bool safe, address tokenAddress) public override {
        require(_newWallet != address(0), "Unauthorized Access!");
        _transfer(_newWallet, tokenId, data, safe, tokenAddress);
    }

    function transfer(address receiver, uint256 value, address token) public override {
        require(msg.sender == _proxy, "Unauthorized Access!");
        if(value == 0) {
            return;
        }
        if(token == address(0)) {
            payable(receiver).transfer(value);
            return;
        }
        IERC20(token).transfer(receiver, value);
    }

    function transfer(address receiver, uint256 tokenId, bytes memory data, bool safe, address token) public override {
        require(msg.sender == _proxy, "Unauthorized Access!");
        _transfer(receiver, tokenId, data, safe, token);
    }

    function _transfer(address receiver, uint256 tokenId, bytes memory data, bool safe, address token) private {
        if(safe) {
            IERC721(token).safeTransferFrom(address(this), receiver, tokenId, data);
        } else {
            IERC721(token).transferFrom(address(this), receiver, tokenId);
        }
    }

    receive() external payable {
        if(_newWallet != address(0)) {
            _newWallet.transfer(address(this).balance);
        }
    }

    function getProxy() public override view returns(address) {
        return _proxy;
    }

    function setProxy() public override {
        require(_proxy == address(0) || _proxy == msg.sender, _proxy != address(0) ? "Proxy already set!" : "Only Proxy can toggle itself!");
        _proxy = _proxy == address(0) ?  msg.sender : address(0);
    }

    function onERC721Received(address, address, uint256 tokenId, bytes memory data) public override returns (bytes4) {
        if(_newWallet != address(0)) {
            _transfer(_newWallet, tokenId, data, true, msg.sender);
        }
        return 0x150b7a02;
    }
}
        

/

pragma solidity ^0.6.0;

interface IMVDWallet {

    function getProxy() external view returns (address);

    function setProxy() external;

    function setNewWallet(address payable newWallet, address tokenAddress) external;

    function transfer(address receiver, uint256 value, address tokenAddress) external;
    
    function transfer(address receiver, uint256 tokenId, bytes calldata data, bool safe, address token) external;

    function flushToNewWallet(address token) external;

    function flush721ToNewWallet(uint256 tokenId, bytes calldata data, bool safe, address tokenAddress) external;
}
          

/

pragma solidity ^0.6.0;

interface IMVDProxy {

    function init(address votingTokenAddress, address functionalityProposalManagerAddress, address stateHolderAddress, address functionalityModelsManagerAddress, address functionalitiesManagerAddress, address walletAddress) external;

    function getDelegates() external view returns(address,address,address,address,address,address);
    function getToken() external view returns(address);
    function getMVDFunctionalityProposalManagerAddress() external view returns(address);
    function getStateHolderAddress() external view returns(address);
    function getMVDFunctionalityModelsManagerAddress() external view returns(address);
    function getMVDFunctionalitiesManagerAddress() external view returns(address);
    function getMVDWalletAddress() external view returns(address);
    function setDelegate(uint256 position, address newAddress) external returns(address oldAddress);
    function changeProxy(address newAddress, bytes calldata initPayload) external;
    function isValidProposal(address proposal) external view returns (bool);
    function isAuthorizedFunctionality(address functionality) external view returns(bool);
    function newProposal(string calldata codeName, bool emergency, address sourceLocation, uint256 sourceLocationId, address location, bool submitable, string calldata methodSignature, string calldata returnParametersJSONArray, bool isInternal, bool needsSender, string calldata replaces) external returns(address proposalAddress);
    function startProposal(address proposalAddress) external;
    function disableProposal(address proposalAddress) external;
    function transfer(address receiver, uint256 value, address token) external;
    function transfer721(address receiver, uint256 tokenId, bytes calldata data, bool safe, address token) external;
    function setProposal() external;
    function read(string calldata codeName, bytes calldata data) external view returns(bytes memory returnData);
    function submit(string calldata codeName, bytes calldata data) external payable returns(bytes memory returnData);
    function callFromManager(address location, bytes calldata payload) external returns(bool, bytes memory);
    function emitFromManager(string calldata codeName, address proposal, string calldata replaced, address replacedSourceLocation, uint256 replacedSourceLocationId, address location, bool submitable, string calldata methodSignature, bool isInternal, bool needsSender, address proposalAddress) external;

    function emitEvent(string calldata eventSignature, bytes calldata firstIndex, bytes calldata secondIndex, bytes calldata data) external;

    event ProxyChanged(address indexed newAddress);
    event DelegateChanged(uint256 position, address indexed oldAddress, address indexed newAddress);

    event Proposal(address proposal);
    event ProposalCheck(address indexed proposal);
    event ProposalSet(address indexed proposal, bool success);
    event FunctionalitySet(string codeName, address indexed proposal, string replaced, address replacedSourceLocation, uint256 replacedSourceLocationId, address indexed replacedLocation, bool replacedWasSubmitable, string replacedMethodSignature, bool replacedWasInternal, bool replacedNeededSender, address indexed replacedProposal);

    event Event(string indexed key, bytes32 indexed firstIndex, bytes32 indexed secondIndex, bytes data);
}
          

/

pragma solidity ^0.6.0;

interface IERC721Receiver {
    function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);
}
          

/

pragma solidity ^0.6.0;

interface IERC721 {
    function ownerOf(uint256 _tokenId) external view returns (address);
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
}
          

/

pragma solidity ^0.6.0;

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

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
          

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"istanbul","compilationTarget":{"MVDWallet.sol":"MVDWallet"}}
              

Contract ABI

[{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"flush721ToNewWallet","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"},{"type":"bool","name":"safe","internalType":"bool"},{"type":"address","name":"tokenAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"flushToNewWallet","inputs":[{"type":"address","name":"tokenAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getProxy","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bytes4","name":"","internalType":"bytes4"}],"name":"onERC721Received","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setNewWallet","inputs":[{"type":"address","name":"newWallet","internalType":"address payable"},{"type":"address","name":"tokenAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setProxy","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transfer","inputs":[{"type":"address","name":"receiver","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"},{"type":"address","name":"token","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transfer","inputs":[{"type":"address","name":"receiver","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"bytes","name":"data","internalType":"bytes"},{"type":"bool","name":"safe","internalType":"bool"},{"type":"address","name":"token","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

Verify & Publish
0x608060405234801561001057600080fd5b50610cdd806100206000396000f3fe60806040526004361061007f5760003560e01c8063933a9ce81161004e578063933a9ce8146102e1578063dbba0f0114610312578063e34ed67214610355578063f161e7d41461042d576100d2565b8063150b7a02146100d75780633914a04f146101c75780636c261975146101dc5780639254c7d414610217576100d2565b366100d2576001546001600160a01b0316156100d0576001546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156100ce573d6000803e3d6000fd5b505b005b600080fd5b3480156100e357600080fd5b506101aa600480360360808110156100fa57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610460945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156101d357600080fd5b506100d06104a3565b3480156101e857600080fd5b506100d0600480360360408110156101ff57600080fd5b506001600160a01b0381358116916020013516610602565b34801561022357600080fd5b506100d06004803603608081101561023a57600080fd5b8135919081019060408101602082013564010000000081111561025c57600080fd5b82018360208201111561026e57600080fd5b8035906020019184600183028401116401000000008311171561029057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505050803515159150602001356001600160a01b03166107ae565b3480156102ed57600080fd5b506102f6610821565b604080516001600160a01b039092168252519081900360200190f35b34801561031e57600080fd5b506100d06004803603606081101561033557600080fd5b506001600160a01b03813581169160208101359160409091013516610830565b34801561036157600080fd5b506100d0600480360360a081101561037857600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103a857600080fd5b8201836020820111156103ba57600080fd5b803590602001918460018302840111640100000000831117156103dc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505050803515159150602001356001600160a01b031661093f565b34801561043957600080fd5b506100d06004803603602081101561045057600080fd5b50356001600160a01b03166109a2565b6001546000906001600160a01b0316156104925760018054610492916001600160a01b03909116908590859033610b44565b50630a85bd0160e11b949350505050565b6000546001600160a01b031615806104c557506000546001600160a01b031633145b6000546001600160a01b0316610510576040518060400160405280601d81526020017f4f6e6c792050726f78792063616e20746f67676c6520697473656c662100000081525061053c565b6040518060400160405280601281526020017150726f787920616c7265616479207365742160701b8152505b906105c55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561058a578181015183820152602001610572565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000546001600160a01b0316156105de5760006105e0565b335b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610658576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b600180546001600160a01b038085166001600160a01b031990921691909117918290556040519116904780156108fc02916000818181858888f193505050501580156106a8573d6000803e3d6000fd5b50600154604080516370a0823160e01b8152306004820152905183926001600160a01b038085169363a9059cbb93929091169184916370a08231916024808301926020929190829003018186803b15801561070257600080fd5b505afa158015610716573d6000803e3d6000fd5b505050506040513d602081101561072c57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561077d57600080fd5b505af1158015610791573d6000803e3d6000fd5b505050506040513d60208110156107a757600080fd5b5050505050565b6001546001600160a01b0316610802576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b60015461081b906001600160a01b031685858585610b44565b50505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610886576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b816108905761093a565b6001600160a01b0381166108da576040516001600160a01b0384169083156108fc029084906000818181858888f193505050501580156108d4573d6000803e3d6000fd5b5061093a565b806001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561077d57600080fd5b505050565b6000546001600160a01b03163314610995576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b6107a78585858585610b44565b6001546001600160a01b03166109f6576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b6001600160a01b038116610a43576001546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a3d573d6000803e3d6000fd5b50610b41565b600154604080516370a0823160e01b8152306004820152905183926001600160a01b038085169363a9059cbb93929091169184916370a08231916024808301926020929190829003018186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050506040513d602081101561081b57600080fd5b50565b8115610c3057604051635c46a7ef60e11b815230600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519186169463b88d4fde94938b938b938b93909160a490910190602085019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506107a7565b604080516323b872dd60e01b81523060048201526001600160a01b038781166024830152604482018790529151918316916323b872dd9160648082019260009290919082900301818387803b158015610c8857600080fd5b505af1158015610c9c573d6000803e3d6000fd5b50505050505050505056fea264697066735822122008a1816e93c11fa426eb6b4b775766418d2294c35e9fed4d8be4efb7228f469064736f6c63430006080033

Deployed ByteCode

0x60806040526004361061007f5760003560e01c8063933a9ce81161004e578063933a9ce8146102e1578063dbba0f0114610312578063e34ed67214610355578063f161e7d41461042d576100d2565b8063150b7a02146100d75780633914a04f146101c75780636c261975146101dc5780639254c7d414610217576100d2565b366100d2576001546001600160a01b0316156100d0576001546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156100ce573d6000803e3d6000fd5b505b005b600080fd5b3480156100e357600080fd5b506101aa600480360360808110156100fa57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561013557600080fd5b82018360208201111561014757600080fd5b8035906020019184600183028401116401000000008311171561016957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610460945050505050565b604080516001600160e01b03199092168252519081900360200190f35b3480156101d357600080fd5b506100d06104a3565b3480156101e857600080fd5b506100d0600480360360408110156101ff57600080fd5b506001600160a01b0381358116916020013516610602565b34801561022357600080fd5b506100d06004803603608081101561023a57600080fd5b8135919081019060408101602082013564010000000081111561025c57600080fd5b82018360208201111561026e57600080fd5b8035906020019184600183028401116401000000008311171561029057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505050803515159150602001356001600160a01b03166107ae565b3480156102ed57600080fd5b506102f6610821565b604080516001600160a01b039092168252519081900360200190f35b34801561031e57600080fd5b506100d06004803603606081101561033557600080fd5b506001600160a01b03813581169160208101359160409091013516610830565b34801561036157600080fd5b506100d0600480360360a081101561037857600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156103a857600080fd5b8201836020820111156103ba57600080fd5b803590602001918460018302840111640100000000831117156103dc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505050803515159150602001356001600160a01b031661093f565b34801561043957600080fd5b506100d06004803603602081101561045057600080fd5b50356001600160a01b03166109a2565b6001546000906001600160a01b0316156104925760018054610492916001600160a01b03909116908590859033610b44565b50630a85bd0160e11b949350505050565b6000546001600160a01b031615806104c557506000546001600160a01b031633145b6000546001600160a01b0316610510576040518060400160405280601d81526020017f4f6e6c792050726f78792063616e20746f67676c6520697473656c662100000081525061053c565b6040518060400160405280601281526020017150726f787920616c7265616479207365742160701b8152505b906105c55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561058a578181015183820152602001610572565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000546001600160a01b0316156105de5760006105e0565b335b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610658576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b600180546001600160a01b038085166001600160a01b031990921691909117918290556040519116904780156108fc02916000818181858888f193505050501580156106a8573d6000803e3d6000fd5b50600154604080516370a0823160e01b8152306004820152905183926001600160a01b038085169363a9059cbb93929091169184916370a08231916024808301926020929190829003018186803b15801561070257600080fd5b505afa158015610716573d6000803e3d6000fd5b505050506040513d602081101561072c57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561077d57600080fd5b505af1158015610791573d6000803e3d6000fd5b505050506040513d60208110156107a757600080fd5b5050505050565b6001546001600160a01b0316610802576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b60015461081b906001600160a01b031685858585610b44565b50505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610886576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b816108905761093a565b6001600160a01b0381166108da576040516001600160a01b0384169083156108fc029084906000818181858888f193505050501580156108d4573d6000803e3d6000fd5b5061093a565b806001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561077d57600080fd5b505050565b6000546001600160a01b03163314610995576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b6107a78585858585610b44565b6001546001600160a01b03166109f6576040805162461bcd60e51b8152602060048201526014602482015273556e617574686f72697a6564204163636573732160601b604482015290519081900360640190fd5b6001600160a01b038116610a43576001546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a3d573d6000803e3d6000fd5b50610b41565b600154604080516370a0823160e01b8152306004820152905183926001600160a01b038085169363a9059cbb93929091169184916370a08231916024808301926020929190829003018186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d6020811015610ac657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050506040513d602081101561081b57600080fd5b50565b8115610c3057604051635c46a7ef60e11b815230600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519186169463b88d4fde94938b938b938b93909160a490910190602085019080838360005b83811015610bc4578181015183820152602001610bac565b50505050905090810190601f168015610bf15780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506107a7565b604080516323b872dd60e01b81523060048201526001600160a01b038781166024830152604482018790529151918316916323b872dd9160648082019260009290919082900301818387803b158015610c8857600080fd5b505af1158015610c9c573d6000803e3d6000fd5b50505050505050505056fea264697066735822122008a1816e93c11fa426eb6b4b775766418d2294c35e9fed4d8be4efb7228f469064736f6c63430006080033