Changes
Page history
Create RPC client expectations as CBS Java interface
authored
Apr 05, 2019
by
Roman Olearski
Show whitespace changes
Inline
Side-by-side
RPC-client-expectations-as-CBS-Java-interface.md
0 → 100644
View page @
6423971d
[
corresponding to e057ff3
](
https://gitlab.syncad.com/blocktrades/exchange/commit/e057ff32d4acc8bbc819c63c0ae3f7044d2542dc
)
```
package cbs;
/**
* This document describes the functionality of CBS being required by the Exchange RPC client
*/
/// handle the Exchange calls
public interface IExchange
{
/// provide last messages number to the Exchange scanner
MessageNumber getLastMessageNumber();
/// provide message by its number to the Exchange scanner
Message getMessageByNumber(MessageNumber number);
/// handle the Exchange outgoing messages
// transfer_to_address
Result paymentRequest(PaymentRequest data);
//Result paymentReturnRequest(PaymentReturnRequest data);
//Result paymentReturn(PaymentReturn data);
//Result resultOfInvestigation(ResultOfInvestigation data);
/// validate ouput address
// is_valid_address
Valid validateAddress(BankAddress bankAddress);
/// get balance / fee
// get_current_balances, get_balance_of_account
Amount getBalance(AccountId accountId);
// get_transaction_fee
Amount getFee(Amount amount);
/// get version
// is_client_running
Version getVersion();
/// get system status
// check_if_wallet_malfunctioning
Status getStatus();
}
/// addresses
// reduced to SEPA requirements
class BankAddress
{
String countryId; // optional
String currencyId; // optional
String name; // acountHolder required
String iban; // required
String bic; // required
String addressLine1; // optional
String addressLine2; // optional
}
class AccountId
{
String email; // ?
String iban; // ?
}
class PaymentRequest
{
String title; // optional title of transfer
Number amount;
String currency; // "EUR"
BankAddress creditor; // sends money
BankAddress debtor; // receives money
}
class PaymentRequestResult extends PaymentRequest
{
//Result result;
String status;
}
//class PaymentReturnRequest
//class ReturnRequest
//class ResultOfInvestigation
class Message
{
String type; // "PaymentRequestResult" "PaymentRequest", "PaymentReturnRequest", "ReturnRequest", "ResultOfInvestigation" ...
String transactionId; // unique CBS transaction id
Object message; // PaymentRequestResult, PaymentRequest, PaymentReturnRequest, ReturnRequest, ResultOfInvestigation ...
}
class Result
{
String status; // 'Accepted' 'Error'
String transactionId; // unique CBS transaction id
Error error;
}
enum Severity
{
Critical, Major, Moderate, Minor, Cosmetic
}
class Error
{
Number code;
String message;
Severity severity;
}
class Status
{
String status; // 'Functioning' 'Malfunctioning'
Error error;
}
class MessageNumber
{
Integer number;
}
class Amount
{
Number amount;
//String cuurrency;
//Integer paymentNextDay;
}
class Version
{
String version;
}
class Valid
{
Boolean valid;
}
```
\ No newline at end of file