Add getBlockHeader method.

This commit is contained in:
Miguel Medeiros
2021-07-22 02:14:11 -03:00
parent f244ad191e
commit 47fa100786
9 changed files with 13807 additions and 3040 deletions

View File

@@ -44,6 +44,11 @@ export const useBlocks = (api: AxiosInstance): BlockInstance => {
return data;
};
const getBlockHeader = async (params: { hash: string }) => {
const { data } = await api.get<string>(`/block/${params.hash}/header`);
return data;
};
const getBlockHeight = async (params: { height: number }) => {
const { data } = await api.get<string>(`/block-height/${params.height}`);
return data;
@@ -72,6 +77,7 @@ export const useBlocks = (api: AxiosInstance): BlockInstance => {
getBlockTxid,
getBlockTxids,
getBlockRaw,
getBlockHeader,
getBlockHeight,
getBlocksTipHash,
getBlocksTipHeight,

View File

@@ -2,11 +2,11 @@ import { AxiosInstance } from 'axios';
import {
Block,
BlockStatus,
BlockInstance,
} from '../../interfaces/bitcoin/blocks';
BlockLiquidInstance,
} from '../../interfaces/liquid/block';
import { Tx } from '../../interfaces/bitcoin/transactions';
export const useBlocks = (api: AxiosInstance): BlockInstance => {
export const useBlocks = (api: AxiosInstance): BlockLiquidInstance => {
const getBlock = async (params: { hash: string }) => {
const { data } = await api.get<Block>(`/block/${params.hash}`);
return data;

View File

@@ -30,6 +30,7 @@ export interface BlockInstance {
getBlockTxids: (params: { hash: string }) => Promise<string[]>;
getBlockTxid: (params: { hash: string; index: number }) => Promise<string>;
getBlockRaw: (params: { hash: string }) => Promise<string>;
getBlockHeader: (params: { hash: string }) => Promise<string>;
getBlockHeight: (params: { height: number }) => Promise<string>;
getBlocksTipHeight: () => Promise<number>;
getBlocksTipHash: () => Promise<string>;

View File

@@ -11,7 +11,7 @@ import { StatsInstance } from './bisq/statistics';
import { TransactionsInstance } from './bisq/transactions';
import { AssetsInstance } from './liquid/assets';
import { BlockLiquidInstance } from './liquid/block';
export interface MempoolConfig {
hostname?: string;
network?: string;
@@ -35,7 +35,7 @@ export interface MempoolReturn {
liquid: {
assets: AssetsInstance;
addresses: AddressInstance;
blocks: BlockInstance;
blocks: BlockLiquidInstance;
fees: FeeInstance;
mempool: MempoolInstance;
transactions: TxInstance;

View File

@@ -0,0 +1,36 @@
import { Tx } from '../bitcoin/transactions';
export interface Block {
id: string;
height: number;
version: number;
timestamp: number;
tx_count: number;
size: number;
weight: number;
merkle_root: string;
previousblockhash: string;
mediantime: number;
nonce: number;
bits: number;
difficulty: number;
}
export interface BlockStatus {
in_best_chain: boolean;
height: number;
next_best: string;
}
export interface BlockLiquidInstance {
getBlock: (params: { hash: string }) => Promise<Block>;
getBlocks: (params: { start_height?: number }) => Promise<Block>;
getBlockStatus: (params: { hash: string }) => Promise<BlockStatus>;
getBlockTxs: (params: { hash: string; start_index?: number }) => Promise<Tx>;
getBlockTxids: (params: { hash: string }) => Promise<string[]>;
getBlockTxid: (params: { hash: string; index: number }) => Promise<string>;
getBlockRaw: (params: { hash: string }) => Promise<string>;
getBlockHeight: (params: { height: number }) => Promise<string>;
getBlocksTipHeight: () => Promise<number>;
getBlocksTipHash: () => Promise<string>;
}