#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;
use crate::protocol::keybase1;
use super::common::*;
pub type ChatConversationID = String;
pub struct PaymentDirectPost {
pub fromDeviceID: keybase1::DeviceID,
pub to: Option<keybase1::UserVersion>,
pub displayAmount: Option<String>,
pub displayCurrency: Option<String>,
pub noteB64: Option<String>,
pub signedTransaction: Option<String>,
pub quickReturn: bool,
pub chatConversationID: Option<ChatConversationID>,
pub batchID: Option<String>,
}
pub struct PaymentRelayPost {
pub fromDeviceID: keybase1::DeviceID,
pub to: Option<keybase1::UserVersion>,
pub toAssertion: Option<String>,
pub relayAccount: AccountID,
pub teamID: keybase1::TeamID,
pub displayAmount: Option<String>,
pub displayCurrency: Option<String>,
pub boxB64: Option<String>,
pub signedTransaction: Option<String>,
pub quickReturn: bool,
pub chatConversationID: Option<ChatConversationID>,
pub batchID: Option<String>,
}
pub struct RelayClaimPost {
pub keybaseID: KeybaseTransactionID,
pub dir: RelayDirection,
pub signedTransaction: Option<String>,
pub autoClaimToken: Option<String>,
}
pub struct PathPaymentPost {
pub fromDeviceID: keybase1::DeviceID,
pub to: Option<keybase1::UserVersion>,
pub noteB64: Option<String>,
pub signedTransaction: Option<String>,
pub quickReturn: bool,
pub chatConversationID: Option<ChatConversationID>,
}
pub struct DirectOp {
pub noteB64: Option<String>,
}
pub struct RelayOp {
pub toAssertion: Option<String>,
pub relayAccount: AccountID,
pub teamID: keybase1::TeamID,
pub boxB64: Option<String>,
}
pub struct PaymentOp {
pub to: Option<keybase1::UserVersion>,
pub direct: Option<DirectOp>,
pub relay: Option<RelayOp>,
}
pub struct PaymentMultiPost {
pub fromDeviceID: keybase1::DeviceID,
pub signedTransaction: Option<String>,
pub operations: Option<Vec<PaymentOp>>,
pub batchID: Option<String>,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum PaymentSummaryType {
None_0,
Stellar_1,
Direct_2,
Relay_3,
}
pub enum PaymentSummary {
Stellar {stellar: PaymentSummaryStellar},
Direct {direct: PaymentSummaryDirect},
Relay {relay: PaymentSummaryRelay},
}
pub struct PaymentSummaryStellar {
pub txID: TransactionID,
pub from: AccountID,
pub to: AccountID,
pub amount: Option<String>,
pub asset: Asset,
pub ctime: TimeMs,
pub cursorToken: Option<String>,
pub unread: bool,
pub isInflation: bool,
pub inflationSource: Option<String>,
pub sourceAmountMax: Option<String>,
pub sourceAmountActual: Option<String>,
pub sourceAsset: Asset,
pub isAdvanced: bool,
pub summaryAdvanced: Option<String>,
pub operations: Option<Vec<String>>,
pub trustline: Option<PaymentTrustlineLocal>,
}
pub struct PaymentSummaryDirect {
pub kbTxID: KeybaseTransactionID,
pub txID: TransactionID,
pub txStatus: TransactionStatus,
pub txErrMsg: Option<String>,
pub fromStellar: AccountID,
pub from: keybase1::UserVersion,
pub fromDeviceID: keybase1::DeviceID,
pub toStellar: AccountID,
pub to: Option<keybase1::UserVersion>,
pub amount: Option<String>,
pub asset: Asset,
pub displayAmount: Option<String>,
pub displayCurrency: Option<String>,
pub noteB64: Option<String>,
pub fromDisplayAmount: Option<String>,
pub fromDisplayCurrency: Option<String>,
pub toDisplayAmount: Option<String>,
pub toDisplayCurrency: Option<String>,
pub ctime: TimeMs,
pub rtime: TimeMs,
pub cursorToken: Option<String>,
pub unread: bool,
pub fromPrimary: bool,
pub batchID: Option<String>,
pub fromAirdrop: bool,
pub sourceAmountMax: Option<String>,
pub sourceAmountActual: Option<String>,
pub sourceAsset: Asset,
}
pub struct PaymentSummaryRelay {
pub kbTxID: KeybaseTransactionID,
pub txID: TransactionID,
pub txStatus: TransactionStatus,
pub txErrMsg: Option<String>,
pub fromStellar: AccountID,
pub from: keybase1::UserVersion,
pub fromDeviceID: keybase1::DeviceID,
pub to: Option<keybase1::UserVersion>,
pub toAssertion: Option<String>,
pub relayAccount: AccountID,
pub amount: Option<String>,
pub displayAmount: Option<String>,
pub displayCurrency: Option<String>,
pub ctime: TimeMs,
pub rtime: TimeMs,
pub boxB64: Option<String>,
pub teamID: keybase1::TeamID,
pub claim: Option<ClaimSummary>,
pub cursorToken: Option<String>,
pub batchID: Option<String>,
pub fromAirdrop: bool,
}
pub struct ClaimSummary {
pub txID: TransactionID,
pub txStatus: TransactionStatus,
pub txErrMsg: Option<String>,
pub dir: RelayDirection,
pub toStellar: AccountID,
pub to: keybase1::UserVersion,
}
pub struct PaymentDetails {
pub summary: PaymentSummary,
pub memo: Option<String>,
pub memoType: Option<String>,
pub externalTxURL: Option<String>,
pub feeCharged: Option<String>,
pub pathIntermediate: Option<Vec<Asset>>,
}
pub struct AccountDetails {
pub accountID: AccountID,
pub seqno: Option<String>,
pub balances: Option<Vec<Balance>>,
pub subentryCount: i32,
pub available: Option<String>,
pub reserves: Option<Vec<AccountReserve>>,
pub readTransactionID: Option<TransactionID>,
pub unreadPayments: i32,
pub displayCurrency: Option<String>,
pub inflationDestination: Option<AccountID>,
}
pub struct PaymentsPage {
pub payments: Option<Vec<PaymentSummary>>,
pub cursor: Option<PageCursor>,
pub oldestUnread: Option<TransactionID>,
}
pub struct SubmitMultiRes {
pub txID: TransactionID,
}
pub struct AutoClaim {
pub kbTxID: KeybaseTransactionID,
}
pub struct RequestPost {
pub toUser: Option<keybase1::UserVersion>,
pub toAssertion: Option<String>,
pub amount: Option<String>,
pub asset: Option<Asset>,
pub currency: Option<OutsideCurrencyCode>,
}
pub struct RequestDetails {
pub id: KeybaseRequestID,
pub fromUser: keybase1::UserVersion,
pub toUser: Option<keybase1::UserVersion>,
pub toAssertion: Option<String>,
pub amount: Option<String>,
pub asset: Option<Asset>,
pub currency: Option<OutsideCurrencyCode>,
pub fromDisplayAmount: Option<String>,
pub fromDisplayCurrency: Option<String>,
pub toDisplayAmount: Option<String>,
pub toDisplayCurrency: Option<String>,
pub fundingKbTxID: KeybaseTransactionID,
pub status: RequestStatus,
}
pub struct TimeboundsRecommendation {
pub timeNow: keybase1::UnixTime,
pub timeout: i64,
}
pub struct NetworkOptions {
pub baseFee: u64,
}
pub struct DetailsPlusPayments {
pub details: AccountDetails,
pub recentPayments: PaymentsPage,
pub pendingPayments: Option<Vec<PaymentSummary>>,
}
pub struct PaymentPathQuery {
pub source: AccountID,
pub destination: AccountID,
pub sourceAsset: Asset,
pub destinationAsset: Asset,
pub amount: Option<String>,
}