// Copyright (c) 2012-2013 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #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 balance; uint64_t unlocked_balance; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(balance) KV_SERIALIZE(unlocked_balance) END_KV_SERIALIZE_MAP() }; }; struct COMMAND_RPC_GET_ADDRESS { struct request { BEGIN_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP() }; struct response { std::string address; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(address) 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_details { uint64_t amount; bool spent; uint64_t global_index; std::string tx_hash; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(amount) KV_SERIALIZE(spent) KV_SERIALIZE(global_index) KV_SERIALIZE(tx_hash) END_KV_SERIALIZE_MAP() }; struct COMMAND_RPC_INCOMING_TRANSFERS { struct request { std::string transfer_type; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(transfer_type) END_KV_SERIALIZE_MAP() }; struct response { std::list transfers; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(transfers) END_KV_SERIALIZE_MAP() }; }; } }