Add difficulty adjustment endpoints methods.

This commit is contained in:
Miguel Medeiros 2021-07-23 17:37:28 -03:00
parent 1c32b05abe
commit caf8d956b5
5 changed files with 37 additions and 2 deletions

View File

@ -2,7 +2,7 @@ import mempoolJS from "@mempool/mempool.js";
const init = async () => { const init = async () => {
const { bitcoin } = mempoolJS({ const { bitcoin } = mempoolJS({
hostname:'mempool.ninja' hostname:'localhost:4200'
}); });
const feesRecommended = await bitcoin.fees.getFeesRecommended(); const feesRecommended = await bitcoin.fees.getFeesRecommended();
@ -10,8 +10,10 @@ const init = async () => {
const hash = "0000000000000000000065bda8f8a88f2e1e00d9a6887a43d640e52a4c7660f2"; const hash = "0000000000000000000065bda8f8a88f2e1e00d9a6887a43d640e52a4c7660f2";
const block = await bitcoin.blocks.getBlockHeader({hash}); const block = await bitcoin.blocks.getBlockHeader({hash});
console.log(block); console.log(block);
const difficultyAdjustment = await bitcoin.difficulty.getDifficultyAdjustment();
console.log(difficultyAdjustment);
}; };
init(); init();

View File

@ -0,0 +1,16 @@
import { AxiosInstance } from 'axios';
import {
Adjustment,
DifficultyInstance,
} from '../../interfaces/bitcoin/difficulty';
export const useDifficulty = (api: AxiosInstance): DifficultyInstance => {
const getDifficultyAdjustment = async () => {
const { data } = await api.get<Adjustment>(`/difficulty-adjustment`);
return data;
};
return {
getDifficultyAdjustment,
};
};

View File

@ -7,6 +7,7 @@ import {
import { useAddresses } from './app/bitcoin/addresses'; import { useAddresses } from './app/bitcoin/addresses';
import { useBlocks } from './app/bitcoin/blocks'; import { useBlocks } from './app/bitcoin/blocks';
import { useDifficulty } from './app/bitcoin/difficulty';
import { useFees } from './app/bitcoin/fees'; import { useFees } from './app/bitcoin/fees';
import { useMempool } from './app/bitcoin/mempool'; import { useMempool } from './app/bitcoin/mempool';
import { useTransactions } from './app/bitcoin/transactions'; import { useTransactions } from './app/bitcoin/transactions';
@ -45,6 +46,7 @@ const mempool = (
bitcoin: { bitcoin: {
addresses: useAddresses(apiBitcoin), addresses: useAddresses(apiBitcoin),
blocks: useBlocks(apiBitcoin), blocks: useBlocks(apiBitcoin),
difficulty: useDifficulty(apiBitcoin),
fees: useFees(apiBitcoin), fees: useFees(apiBitcoin),
mempool: useMempool(apiBitcoin), mempool: useMempool(apiBitcoin),
transactions: useTransactions(apiBitcoin), transactions: useTransactions(apiBitcoin),

View File

@ -0,0 +1,13 @@
export interface Adjustment {
progressPercent: number,
difficultyChange: number,
estimatedRetargetDate: number,
remainingBlocks: number,
remainingTime: number,
previousRetarget: number,
}
export interface DifficultyInstance {
getDifficultyAdjustment: () => Promise<Adjustment>;
}

View File

@ -1,5 +1,6 @@
import { AddressInstance } from './bitcoin/addresses'; import { AddressInstance } from './bitcoin/addresses';
import { BlockInstance } from './bitcoin/blocks'; import { BlockInstance } from './bitcoin/blocks';
import { DifficultyInstance } from './bitcoin/difficulty';
import { FeeInstance } from './bitcoin/fees'; import { FeeInstance } from './bitcoin/fees';
import { MempoolInstance } from './bitcoin/mempool'; import { MempoolInstance } from './bitcoin/mempool';
import { TxInstance } from './bitcoin/transactions'; import { TxInstance } from './bitcoin/transactions';
@ -21,6 +22,7 @@ export interface MempoolReturn {
bitcoin: { bitcoin: {
addresses: AddressInstance; addresses: AddressInstance;
blocks: BlockInstance; blocks: BlockInstance;
difficulty: DifficultyInstance;
fees: FeeInstance; fees: FeeInstance;
mempool: MempoolInstance; mempool: MempoolInstance;
transactions: TxInstance; transactions: TxInstance;