contract MoatFund is Redeem {

    event eNonIssueDeposits(address sender, uint value);

    constructor(uint256 PrevRaisedEther, address rAddress) public {
        ethRaised = PrevRaisedEther; // the ether raised value of previous smart contract
        RegistryAddress = rAddress;
    }

    // for non issuance deposits
    function NonIssueDeposits() public payable {
        emit eNonIssueDeposits(msg.sender, msg.value);
    }

    function SendEtherToBoard(uint256 weiAmt) onlyAdmin public {
        require(address(this).balance > unClaimedEther);        
        getAddress("board").transfer(weiAmt);
    }

    function SendEtherToAsset(uint256 weiAmt) onlyAdmin public {
        require(address(this).balance > unClaimedEther);
        getAddress("asset").transfer(weiAmt);
    }

    function SendEtherToDex(uint256 weiAmt) onlyAdmin public {
        require(address(this).balance > unClaimedEther);        
        getAddress("dex").transfer(weiAmt);
    }

    function SendERC20ToAsset(address tokenAddress) onlyAdmin public {
        token tokenFunctions = token(tokenAddress);
        uint256 tokenBal = tokenFunctions.balanceOf(address(this));
        tokenFunctions.transfer(getAddress("asset"), tokenBal);
    }

}
function NonIssueDeposits() public payable {
    emit eNonIssueDeposits(msg.sender, msg.value);
}

// for non issuance deposits