UNPKG

@caict/bop-typescript-sdk

Version:
76 lines (68 loc) 2.23 kB
import { GetLedgerRequest, GetTransactionHistoryRequest, } from "../../../bop/bop-proto/bop"; import { LedgerResponse, LedgerNumberResponse, LedgerLeaderResponse, LedgerValidatorsResponse, LedgerTxHashesResponse, } from "../../../bop-sdk/proto/bop-sdk-interface"; import { BopInterface } from "../../../bop/bop-base"; import { ledger } from "../abstract-service/abstract-ledger"; import * as trans from "./helper"; export class LedgerByBop extends ledger { readonly bopInterface: BopInterface; constructor(bop: BopInterface) { super(); this.bopInterface = bop; } public async getLedgerNumber(): Promise<LedgerNumberResponse> { const request: GetLedgerRequest = {}; return trans.LedgerHeaderToLedgerNumber( await this.bopInterface.callService("base_getLedger", request), ); } public async getLedger(seq?: number): Promise<LedgerResponse> { const request: GetLedgerRequest = {}; if (seq !== undefined) request.seq = seq; return trans.LedgerHeaderToHeader( await this.bopInterface.callService("base_getLedger", request), ); } public async getLedgerLeader(seq?: number): Promise<LedgerLeaderResponse> { const request: GetLedgerRequest = { withLeader: true, }; if (seq !== undefined) request.seq = seq; return trans.LedgerHeaderToLedgerLeader( await this.bopInterface.callService("base_getLedger", request), ); } public async getLedgerValidators( seq?: number, ): Promise<LedgerValidatorsResponse> { const request: GetLedgerRequest = { withValidator: true, }; if (seq !== undefined) request.seq = seq; return trans.LedgerHeaderToLedgerValidators( await this.bopInterface.callService("base_getLedger", request), ); } public async getLedgerTxHashes( seq?: number, ): Promise<LedgerTxHashesResponse> { const request: GetTransactionHistoryRequest = { limit: 1000, }; if (seq !== undefined) request.ledgerSeq = seq; return trans.LedgerHeaderToLedgerTxHashes( await this.bopInterface.callService( "base_getTransactionHistory", request, ), ); } }