@caict/bop-typescript-sdk
Version:
76 lines (68 loc) • 2.23 kB
text/typescript
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,
),
);
}
}