diff --git a/src/models/methods/index.ts b/src/models/methods/index.ts index 9f82ed3e..8de45b8a 100644 --- a/src/models/methods/index.ts +++ b/src/models/methods/index.ts @@ -19,6 +19,10 @@ import { RandomRequest, RandomResponse } from "./random"; import { RipplePathFindRequest, RipplePathFindResponse } from "./ripplePathFind"; import { ServerInfoRequest, ServerInfoResponse } from "./serverInfo"; import { ServerStateRequest, ServerStateResponse } from "./serverState"; +import { SubmitRequest, SubmitResponse } from "./submit"; +import { SubmitMultisignedRequest, SubmitMultisignedResponse } from "./submitMultisigned"; +import { TransactionEntryRequest, TransactionEntryResponse } from "./transactionEntry"; +import { TxRequest, TxResponse } from "./tx"; type Request = // account methods AccountChannelsRequest @@ -30,6 +34,11 @@ type Request = // account methods | AccountTxRequest | GatewayBalancesRequest | NoRippleCheckRequest + // transaction methods + | SubmitRequest + | SubmitMultisignedRequest + | TransactionEntryRequest + | TxRequest // path and order book methods | BookOffersRequest | DepositAuthorizedRequest @@ -57,6 +66,11 @@ type Response = // account methods | AccountTxResponse | GatewayBalancesResponse | NoRippleCheckResponse + // transaction methods + | SubmitResponse + | SubmitMultisignedResponse + | TransactionEntryResponse + | TxResponse // path and order book methods | BookOffersResponse | DepositAuthorizedResponse @@ -96,6 +110,15 @@ export { GatewayBalancesResponse, NoRippleCheckRequest, NoRippleCheckResponse, + // transaction methods + SubmitRequest, + SubmitResponse, + SubmitMultisignedRequest, + SubmitMultisignedResponse, + TransactionEntryRequest, + TransactionEntryResponse, + TxRequest, + TxResponse, // path and order book methods BookOffersRequest, BookOffersResponse, diff --git a/src/models/methods/submit.ts b/src/models/methods/submit.ts new file mode 100644 index 00000000..c5e9f911 --- /dev/null +++ b/src/models/methods/submit.ts @@ -0,0 +1,26 @@ +import { BaseRequest, BaseResponse } from "./baseMethod"; + +export interface SubmitRequest extends BaseRequest { + command: "submit" + tx_blob: string + fail_hard?: boolean +} + +export interface SubmitResponse extends BaseResponse { + result: { + engine_result: string + engine_result_code: number + engine_result_message: string + tx_blob: string + tx_json: any // TODO: type this properly when we have Transaction types + accepted: boolean + account_sequence_available: number + account_sequence_next: number + applied: boolean + broadcast: boolean + kept: boolean + queued: boolean + open_ledger_cost: string + validated_ledger_index: number + } +} diff --git a/src/models/methods/submitMultisigned.ts b/src/models/methods/submitMultisigned.ts new file mode 100644 index 00000000..ec51d240 --- /dev/null +++ b/src/models/methods/submitMultisigned.ts @@ -0,0 +1,17 @@ +import { BaseRequest, BaseResponse } from "./baseMethod"; + +export interface SubmitMultisignedRequest extends BaseRequest { + command: "submit_multisigned" + tx_json: any // TODO: type this properly when we have Transaction types + fail_hard?: boolean +} + +export interface SubmitMultisignedResponse extends BaseResponse { + result: { + engine_result: string + engine_result_code: number + engine_result_message: string + tx_blob: string + tx_json: any // TODO: type this properly when we have Transaction types + } +} diff --git a/src/models/methods/transactionEntry.ts b/src/models/methods/transactionEntry.ts new file mode 100644 index 00000000..ef006aca --- /dev/null +++ b/src/models/methods/transactionEntry.ts @@ -0,0 +1,19 @@ +import { LedgerIndex } from "../common"; +import { TransactionMetadata } from "../common/transaction"; +import { BaseRequest, BaseResponse } from "./baseMethod"; + +export interface TransactionEntryRequest extends BaseRequest { + command: "transaction_entry" + ledger_hash?: string + ledger_index?: LedgerIndex + tx_hash: string +} + +export interface TransactionEntryResponse extends BaseResponse { + result: { + ledger_hash: string + ledger_index: number + metadata: TransactionMetadata + tx_json: any // TODO: type this properly when we have Transaction types + } +} diff --git a/src/models/methods/tx.ts b/src/models/methods/tx.ts new file mode 100644 index 00000000..48137886 --- /dev/null +++ b/src/models/methods/tx.ts @@ -0,0 +1,20 @@ +import { TransactionMetadata } from "../common/transaction"; +import { BaseRequest, BaseResponse } from "./baseMethod"; + +export interface TxRequest extends BaseRequest { + command: "tx" + transaction: string + binary?: boolean + min_ledger?: number + max_ledger?: number +} + +export interface TxResponse extends BaseResponse { + result: { + hash: string + ledger_index: number + meta: TransactionMetadata | string + validated?: boolean + } // TODO: needs to be `& Transaction` once that type is available + searched_all?: boolean +}