// Contract: VLNDAirdrop
// Target function: function SendToGnosis(TX memory MintInfo, uint256 GasQuote) internal returns(bool success)
//SPDX-License-Identifier:UNLICENSE
pragma solidity ^0.8.19;

contract VLNDAirdrop{
    address payable public Owner = payable(msg.sender);
    address public DestinationMinter = 0xd195Ad2e69D59154550441C5DA30329512F1E796;
    Hyperlane Mailbox = Hyperlane(0x35231d4c2D8B8ADcB5617A638A0c4548684c7C70);
    Hyperlane GasProcessorContract = Hyperlane(0x56f52c0A1ddcD557285f7CBc782D3d83096CE1Cc);
    
    struct TX{
        address Sender;
        uint256 Payout;
    }

    function Deposit() public payable returns(bool HyperLaneSendSuccess){
        uint256 GasQuote = GasProcessorContract.quoteGasPayment(137, 100000);
        uint256 payout = ((msg.value - GasQuote) * 100);

        TX memory MintInfo = TX(msg.sender, payout);
        bool SendToPolygonStatus = SendToGnosis(MintInfo, GasQuote);

        return(SendToPolygonStatus);
    }

    function OwnerWithdraw(address payable Destination) public {
        require(msg.sender == Owner);

        Destination.transfer(address(this).balance);
    }