{
    "ABI version": 2,
    "header": ["pubkey", "time", "expire"],
    "functions": [
        {
            "name": "constructor",
            "inputs": [],
            "outputs": []
        },
        {
            "name": "getVersion",
            "inputs": [
                { "name": "_answer_id", "type": "uint32" }
            ],
            "outputs": [
                { "name": "value0", "type": "uint32" }
            ]
        },
        {
            "name": "balance",
            "inputs": [
                { "name": "_answer_id", "type": "uint32" }
            ],
            "outputs": [
                { "name": "value0", "type": "uint128" }
            ]
        },
        {
            "name": "getDetails",
            "inputs": [
                { "name": "_answer_id", "type": "uint32" }
            ],
            "outputs": [
                { "components": [{ "name": "root_address", "type": "address" }, { "name": "wallet_public_key", "type": "uint256" }, { "name": "owner_address", "type": "address" }, { "name": "balance", "type": "uint128" }, { "name": "receive_callback", "type": "address" }, { "name": "bounced_callback", "type": "address" }, { "name": "allow_non_notifiable", "type": "bool" }], "name": "value0", "type": "tuple" }
            ]
        },
        {
            "name": "getWalletCode",
            "inputs": [
                { "name": "_answer_id", "type": "uint32" }
            ],
            "outputs": [
                { "name": "value0", "type": "cell" }
            ]
        },
        {
            "name": "accept",
            "inputs": [
                { "name": "tokens", "type": "uint128" }
            ],
            "outputs": []
        },
        {
            "name": "allowance",
            "inputs": [
                { "name": "_answer_id", "type": "uint32" }
            ],
            "outputs": [
                { "components": [{ "name": "remaining_tokens", "type": "uint128" }, { "name": "spender", "type": "address" }], "name": "value0", "type": "tuple" }
            ]
        },
        {
            "name": "approve",
            "inputs": [
                { "name": "spender", "type": "address" },
                { "name": "remaining_tokens", "type": "uint128" },
                { "name": "tokens", "type": "uint128" }
            ],
            "outputs": []
        },
        {
            "name": "disapprove",
            "inputs": [],
            "outputs": []
        },
        {
            "name": "transferToRecipient",
            "inputs": [
                { "name": "recipient_public_key", "type": "uint256" },
                { "name": "recipient_address", "type": "address" },
                { "name": "tokens", "type": "uint128" },
                { "name": "deploy_grams", "type": "uint128" },
                { "name": "transfer_grams", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "notify_receiver", "type": "bool" },
                { "name": "payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "transfer",
            "inputs": [
                { "name": "to", "type": "address" },
                { "name": "tokens", "type": "uint128" },
                { "name": "grams", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "notify_receiver", "type": "bool" },
                { "name": "payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "transferFrom",
            "inputs": [
                { "name": "from", "type": "address" },
                { "name": "to", "type": "address" },
                { "name": "tokens", "type": "uint128" },
                { "name": "grams", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "notify_receiver", "type": "bool" },
                { "name": "payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "internalTransfer",
            "inputs": [
                { "name": "tokens", "type": "uint128" },
                { "name": "sender_public_key", "type": "uint256" },
                { "name": "sender_address", "type": "address" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "notify_receiver", "type": "bool" },
                { "name": "payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "internalTransferFrom",
            "inputs": [
                { "name": "to", "type": "address" },
                { "name": "tokens", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "notify_receiver", "type": "bool" },
                { "name": "payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "burnByOwner",
            "inputs": [
                { "name": "tokens", "type": "uint128" },
                { "name": "grams", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "callback_address", "type": "address" },
                { "name": "callback_payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "burnByRoot",
            "inputs": [
                { "name": "tokens", "type": "uint128" },
                { "name": "send_gas_to", "type": "address" },
                { "name": "callback_address", "type": "address" },
                { "name": "callback_payload", "type": "cell" }
            ],
            "outputs": []
        },
        {
            "name": "setReceiveCallback",
            "inputs": [
                { "name": "receive_callback_", "type": "address" },
                { "name": "allow_non_notifiable_", "type": "bool" }
            ],
            "outputs": []
        },
        {
            "name": "setBouncedCallback",
            "inputs": [
                { "name": "bounced_callback_", "type": "address" }
            ],
            "outputs": []
        },
        {
            "name": "destroy",
            "inputs": [
                { "name": "gas_dest", "type": "address" }
            ],
            "outputs": []
        }
    ],
    "data": [
        { "key": 1, "name": "root_address", "type": "address" },
        { "key": 2, "name": "code", "type": "cell" },
        { "key": 3, "name": "wallet_public_key", "type": "uint256" },
        { "key": 4, "name": "owner_address", "type": "address" }
    ],
    "events": []
}
