mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-23 05:35:48 +00:00
Defines TypeScript types for rippled account method requests & responses (#1498)
* account_channels * account_currencies * account_info * account_lines * account_objects * account_offers * account_tx * gateway_balances * no ripple check * respond to comments * export methods * fix typos * respond to comments * edit BaseResponse to be more specific
This commit is contained in:
38
src/models/common/transaction.ts
Normal file
38
src/models/common/transaction.ts
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import { Amount } from ".";
|
||||||
|
|
||||||
|
interface CreatedNode {
|
||||||
|
CreatedNode: {
|
||||||
|
LedgerEntryType: string
|
||||||
|
LedgerIndex: string
|
||||||
|
NewFields: {[field: string]: any}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ModifiedNode {
|
||||||
|
ModifiedNode: {
|
||||||
|
LedgerEntryType: string
|
||||||
|
LedgerIndex: string
|
||||||
|
FinalFields: {[field: string]: any}
|
||||||
|
PreviousFields: {[field: string]: any}
|
||||||
|
PreviousTxnID?: string
|
||||||
|
PreviouTxnLgrSeq?: number
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeletedNode {
|
||||||
|
DeletedNode: {
|
||||||
|
LedgerEntryType: string
|
||||||
|
LedgerIndex: string
|
||||||
|
FinalFields: {[field: string]: any}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type Node = CreatedNode | ModifiedNode | DeletedNode
|
||||||
|
|
||||||
|
export interface TransactionMetadata {
|
||||||
|
AffectedNodes: Node[]
|
||||||
|
DeliveredAmount?: Amount
|
||||||
|
delivered_amount?: Amount
|
||||||
|
TransactionIndex: number
|
||||||
|
TransactionResult: string
|
||||||
|
}
|
||||||
39
src/models/methods/accountChannels.ts
Normal file
39
src/models/methods/accountChannels.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
||||||
|
import { LedgerIndex } from "../common"
|
||||||
|
|
||||||
|
interface Channel {
|
||||||
|
account: string
|
||||||
|
amount: string
|
||||||
|
balance: string
|
||||||
|
channel_id: string
|
||||||
|
destination_account: string
|
||||||
|
settle_delay: number
|
||||||
|
public_key?: string
|
||||||
|
public_key_hex?: string
|
||||||
|
expiration?: number
|
||||||
|
cancel_after?: number
|
||||||
|
source_tab?: number
|
||||||
|
destination_tag?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountChannelsRequest extends BaseRequest {
|
||||||
|
command: "account_channels"
|
||||||
|
account: string
|
||||||
|
destination_account?: string
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
limit: number
|
||||||
|
marker: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountChannelsResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
channels: Channel[]
|
||||||
|
ledger_hash: string
|
||||||
|
ledger_index: number
|
||||||
|
validated?: boolean
|
||||||
|
limit?: number
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/models/methods/accountCurrencies.ts
Normal file
21
src/models/methods/accountCurrencies.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
||||||
|
import { LedgerIndex } from "../common"
|
||||||
|
|
||||||
|
export interface AccountCurrenciesRequest extends BaseRequest {
|
||||||
|
command: "account_currencies"
|
||||||
|
account: string
|
||||||
|
destination_account?: string
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
strict?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountCurrenciesResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index: number
|
||||||
|
receive_currencies: string[]
|
||||||
|
send_currencies: string[]
|
||||||
|
validated: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
41
src/models/methods/accountInfo.ts
Normal file
41
src/models/methods/accountInfo.ts
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
||||||
|
import { LedgerIndex } from "../common"
|
||||||
|
import { AccountRoot, SignerList } from "../ledger"
|
||||||
|
|
||||||
|
export interface AccountInfoRequest extends BaseRequest {
|
||||||
|
command: "account_info"
|
||||||
|
account: string
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
queue?: boolean
|
||||||
|
signer_lists?: boolean
|
||||||
|
strict?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface QueueTransaction {
|
||||||
|
auth_change: boolean
|
||||||
|
fee: string
|
||||||
|
fee_level: string
|
||||||
|
max_spend_drops: string
|
||||||
|
seq: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface QueueData {
|
||||||
|
txn_count: number
|
||||||
|
auth_change_queued?: boolean
|
||||||
|
lowest_sequence?: number
|
||||||
|
highest_sequence?: number
|
||||||
|
max_spend_drops_total?: string
|
||||||
|
transactions?: QueueTransaction[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountInfoResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account_data: AccountRoot
|
||||||
|
signer_lists?: SignerList[]
|
||||||
|
ledger_current_index?: number
|
||||||
|
ledger_index?: number
|
||||||
|
queue_data?: QueueData
|
||||||
|
validated?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
39
src/models/methods/accountLines.ts
Normal file
39
src/models/methods/accountLines.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
||||||
|
import { LedgerIndex } from "../common"
|
||||||
|
|
||||||
|
interface Trustline {
|
||||||
|
account: string
|
||||||
|
balance: string
|
||||||
|
currency: string
|
||||||
|
limit: string
|
||||||
|
limit_peer: string
|
||||||
|
quality_in: number
|
||||||
|
quality_out: number
|
||||||
|
no_ripple?: boolean
|
||||||
|
no_ripple_peer?: boolean
|
||||||
|
authorized?: boolean
|
||||||
|
peer_authorized?: boolean
|
||||||
|
freeze?: boolean
|
||||||
|
freeze_peer?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountLinesRequest extends BaseRequest {
|
||||||
|
command: "account_lines"
|
||||||
|
account: string
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
peer?: string
|
||||||
|
limit?: number
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountLinesResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
lines: Trustline[]
|
||||||
|
ledger_current_index?: number
|
||||||
|
ledger_index?: number
|
||||||
|
ledger_hash?: string
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/models/methods/accountObjects.ts
Normal file
29
src/models/methods/accountObjects.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import { BaseRequest, BaseResponse } from './baseMethod'
|
||||||
|
import { AccountObjectType, LedgerIndex } from "../common"
|
||||||
|
import { Check, DepositPreauth, Escrow, Offer, PayChannel, RippleState, SignerList, Ticket } from "../ledger"
|
||||||
|
|
||||||
|
export interface AccountObjectsRequest extends BaseRequest {
|
||||||
|
command: "account_objects"
|
||||||
|
account: string
|
||||||
|
type?: AccountObjectType
|
||||||
|
deletion_blockers_only?: boolean
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
limit?: number
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
type AccountObject = Check | DepositPreauth | Escrow | Offer | PayChannel | SignerList | Ticket | RippleState
|
||||||
|
|
||||||
|
export interface AccountObjectsResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
account_objects: AccountObject[]
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: number
|
||||||
|
ledger_current_index?: number
|
||||||
|
limit?: number
|
||||||
|
marker?: string
|
||||||
|
validated?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
32
src/models/methods/accountOffers.ts
Normal file
32
src/models/methods/accountOffers.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import { Amount, LedgerIndex } from "../common";
|
||||||
|
import { BaseRequest, BaseResponse } from "./baseMethod";
|
||||||
|
|
||||||
|
export interface AccountOffersRequest extends BaseRequest {
|
||||||
|
command: "account_offers"
|
||||||
|
account: string
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
limit?: number
|
||||||
|
marker?: any
|
||||||
|
strict?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
interface AccountOffer {
|
||||||
|
flags: number
|
||||||
|
seq: number
|
||||||
|
taker_gets: Amount
|
||||||
|
taker_pays: Amount
|
||||||
|
quality: string
|
||||||
|
expiration?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountOffersResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
offers?: AccountOffer[]
|
||||||
|
ledger_current_index?: number
|
||||||
|
ledger_index?: number
|
||||||
|
ledger_hash?: string
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
}
|
||||||
36
src/models/methods/accountTx.ts
Normal file
36
src/models/methods/accountTx.ts
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import { LedgerIndex } from "../common";
|
||||||
|
import { TransactionMetadata } from "../common/transaction";
|
||||||
|
import { BaseRequest, BaseResponse } from "./baseMethod";
|
||||||
|
|
||||||
|
export interface AccountTxRequest extends BaseRequest {
|
||||||
|
command: "account_tx"
|
||||||
|
account: string
|
||||||
|
ledger_index_min?: number
|
||||||
|
ledger_index_max?: number
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
binary?: boolean
|
||||||
|
forward?: boolean
|
||||||
|
limit?: number
|
||||||
|
marker?: any
|
||||||
|
}
|
||||||
|
|
||||||
|
interface AccountTransaction {
|
||||||
|
ledger_index: number
|
||||||
|
meta: string | TransactionMetadata
|
||||||
|
tx?: any // TODO: replace when transaction objects are done
|
||||||
|
tx_blob?: string
|
||||||
|
validated: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountTxResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
ledger_index_min: number
|
||||||
|
ledger_index_max: number
|
||||||
|
limit: number
|
||||||
|
marker?: any
|
||||||
|
transactions: AccountTransaction[]
|
||||||
|
validated?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
26
src/models/methods/baseMethod.ts
Normal file
26
src/models/methods/baseMethod.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Response } from ".";
|
||||||
|
|
||||||
|
export interface BaseRequest {
|
||||||
|
id: number | string
|
||||||
|
command: string
|
||||||
|
api_version?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Warning {
|
||||||
|
id: number
|
||||||
|
message: string
|
||||||
|
details?: {[key: string]: string}
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BaseResponse {
|
||||||
|
id: number | string
|
||||||
|
status: "success" | "error" | string
|
||||||
|
type: "response" | string
|
||||||
|
result: any
|
||||||
|
warning?: "load"
|
||||||
|
warnings?: Warning[]
|
||||||
|
forwarded?: boolean
|
||||||
|
error?: string
|
||||||
|
request?: Response
|
||||||
|
api_version?: number
|
||||||
|
}
|
||||||
28
src/models/methods/gatewayBalances.ts
Normal file
28
src/models/methods/gatewayBalances.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import { LedgerIndex } from '../common'
|
||||||
|
import { BaseRequest, BaseResponse } from './baseMethod';
|
||||||
|
|
||||||
|
export interface GatewayBalancesRequest extends BaseRequest {
|
||||||
|
command: "gateway_balances"
|
||||||
|
account: string
|
||||||
|
strict?: boolean
|
||||||
|
hotwallet: string | string[]
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Balance {
|
||||||
|
currency: string
|
||||||
|
value: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GatewayBalancesResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
account: string
|
||||||
|
obligations?: {[currency: string]: string}
|
||||||
|
balances?: {[address: string]: Balance[]}
|
||||||
|
assets?: {[address: string]: Balance[]}
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_current_index?: number
|
||||||
|
ledger_index?: number
|
||||||
|
}
|
||||||
|
}
|
||||||
52
src/models/methods/index.ts
Normal file
52
src/models/methods/index.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import { AccountChannelsRequest, AccountChannelsResponse } from "./accountChannels";
|
||||||
|
import { AccountCurrenciesRequest, AccountCurrenciesResponse } from "./accountCurrencies";
|
||||||
|
import { AccountInfoRequest, AccountInfoResponse } from "./accountInfo";
|
||||||
|
import { AccountLinesRequest, AccountLinesResponse } from "./accountLines";
|
||||||
|
import { AccountObjectsRequest, AccountObjectsResponse } from "./accountObjects";
|
||||||
|
import { AccountOffersRequest, AccountOffersResponse } from "./accountOffers";
|
||||||
|
import { AccountTxRequest, AccountTxResponse } from "./accountTx";
|
||||||
|
import { GatewayBalancesRequest, GatewayBalancesResponse } from "./gatewayBalances";
|
||||||
|
import { NoRippleCheckRequest, NoRippleCheckResponse } from "./norippleCheck";
|
||||||
|
|
||||||
|
type Request = AccountChannelsRequest
|
||||||
|
| AccountCurrenciesRequest
|
||||||
|
| AccountInfoRequest
|
||||||
|
| AccountLinesRequest
|
||||||
|
| AccountObjectsRequest
|
||||||
|
| AccountOffersRequest
|
||||||
|
| AccountTxRequest
|
||||||
|
| GatewayBalancesRequest
|
||||||
|
| NoRippleCheckRequest
|
||||||
|
|
||||||
|
type Response = AccountChannelsResponse
|
||||||
|
| AccountCurrenciesResponse
|
||||||
|
| AccountInfoResponse
|
||||||
|
| AccountLinesResponse
|
||||||
|
| AccountObjectsResponse
|
||||||
|
| AccountOffersResponse
|
||||||
|
| AccountTxResponse
|
||||||
|
| GatewayBalancesResponse
|
||||||
|
| NoRippleCheckResponse
|
||||||
|
|
||||||
|
export {
|
||||||
|
Request,
|
||||||
|
Response,
|
||||||
|
AccountChannelsRequest,
|
||||||
|
AccountChannelsResponse,
|
||||||
|
AccountCurrenciesRequest,
|
||||||
|
AccountCurrenciesResponse,
|
||||||
|
AccountInfoRequest,
|
||||||
|
AccountInfoResponse,
|
||||||
|
AccountLinesRequest,
|
||||||
|
AccountLinesResponse,
|
||||||
|
AccountObjectsRequest,
|
||||||
|
AccountObjectsResponse,
|
||||||
|
AccountOffersRequest,
|
||||||
|
AccountOffersResponse,
|
||||||
|
AccountTxRequest,
|
||||||
|
AccountTxResponse,
|
||||||
|
GatewayBalancesRequest,
|
||||||
|
GatewayBalancesResponse,
|
||||||
|
NoRippleCheckRequest,
|
||||||
|
NoRippleCheckResponse
|
||||||
|
}
|
||||||
19
src/models/methods/norippleCheck.ts
Normal file
19
src/models/methods/norippleCheck.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { LedgerIndex } from '../common'
|
||||||
|
import { BaseRequest, BaseResponse } from './baseMethod';
|
||||||
|
|
||||||
|
export interface NoRippleCheckRequest extends BaseRequest {
|
||||||
|
command: "noripple_check"
|
||||||
|
account: string
|
||||||
|
role: "gateway" | "user"
|
||||||
|
transactions?: boolean
|
||||||
|
ledger_hash?: string
|
||||||
|
ledger_index?: LedgerIndex
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface NoRippleCheckResponse extends BaseResponse {
|
||||||
|
result: {
|
||||||
|
ledger_current_index: number
|
||||||
|
problems: string[]
|
||||||
|
transactions: any[] // TODO: fix once transaction objects are implemented
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user