// Copyright (c) 2012-2015, The CryptoNote developers, The Bytecoin developers // // This file is part of Bytecoin. // // Bytecoin is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Bytecoin is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with Bytecoin. If not, see . #pragma once #include "cryptonote_protocol/cryptonote_protocol_defs.h" #include "cryptonote_core/cryptonote_basic.h" #include "crypto/hash.h" #include "wallet_rpc_server_error_codes.h" namespace tools { namespace wallet_rpc { #define WALLET_RPC_STATUS_OK "OK" #define WALLET_RPC_STATUS_BUSY "BUSY" struct COMMAND_RPC_GET_BALANCE { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { uint64_t locked_amount; uint64_t available_balance; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(locked_amount) KV_SERIALIZE(available_balance) END_KV_SERIALIZE_MAP() }; }; struct trnsfer_destination { uint64_t amount; std::string address; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(amount) KV_SERIALIZE(address) END_KV_SERIALIZE_MAP() }; struct COMMAND_RPC_TRANSFER { struct request { std::list destinations; uint64_t fee; uint64_t mixin; uint64_t unlock_time; std::string payment_id; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(destinations) KV_SERIALIZE(fee) KV_SERIALIZE(mixin) KV_SERIALIZE(unlock_time) KV_SERIALIZE(payment_id) END_KV_SERIALIZE_MAP() }; struct response { std::string tx_hash; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(tx_hash) END_KV_SERIALIZE_MAP() }; }; struct COMMAND_RPC_STORE { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; }; struct payment_details { std::string tx_hash; uint64_t amount; uint64_t block_height; uint64_t unlock_time; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(tx_hash) KV_SERIALIZE(amount) KV_SERIALIZE(block_height) KV_SERIALIZE(unlock_time) END_KV_SERIALIZE_MAP() }; struct COMMAND_RPC_GET_PAYMENTS { struct request { std::string payment_id; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(payment_id) END_KV_SERIALIZE_MAP() }; struct response { std::list payments; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(payments) END_KV_SERIALIZE_MAP() }; }; struct Transfer { uint64_t time; bool output; std::string transactionHash; uint64_t amount; uint64_t fee; std::string paymentId; std::string address; uint64_t blockIndex; uint64_t unlockTime; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(time) KV_SERIALIZE(output) KV_SERIALIZE(transactionHash) KV_SERIALIZE(amount) KV_SERIALIZE(fee) KV_SERIALIZE(paymentId) KV_SERIALIZE(address) KV_SERIALIZE(blockIndex) KV_SERIALIZE(unlockTime) END_KV_SERIALIZE_MAP() }; struct COMMAND_RPC_GET_TRANSFERS { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { std::list transfers; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(transfers) END_KV_SERIALIZE_MAP() }; }; struct COMMAND_RPC_GET_HEIGHT { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { uint64_t height; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(height) END_KV_SERIALIZE_MAP() }; }; struct COMMAND_RPC_RESET { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; }; } }