block template

This commit is contained in:
Ben Wilson
2023-06-10 12:25:51 -04:00
parent 01b65b893a
commit deb3aa30d4
7 changed files with 85 additions and 12 deletions
+16 -3
View File
@@ -1,10 +1,12 @@
import { Injectable } from '@nestjs/common';
import { Injectable, OnModuleInit } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { RPCClient } from 'rpc-bitcoin';
import { IBlockTempalte } from './models/IBlockTempalte';
@Injectable()
export class BitcoinRpcService {
export class BitcoinRpcService implements OnModuleInit {
private client: RPCClient;
@@ -14,20 +16,31 @@ export class BitcoinRpcService {
const pass = configService.get('BITCOIN_RPC_PASSWORD');
const port = parseInt(configService.get('BITCOIN_RPC_PORT'));
const timeout = parseInt(configService.get('BITCOIN_RPC_TIMEOUT'));
this.client = new RPCClient({ url, port, timeout, user, pass });
console.log('Bitcoin RPC connected');
}
async onModuleInit(): Promise<void> {
console.log('onModuleInit');
// Asynchronous initialization logic
//await this.getBlockTemplate();
return;
}
public async getBlockTemplate() {
const result = await this.client.getblocktemplate({
const result: IBlockTempalte = await this.client.getblocktemplate({
template_request: {
rules: ['segwit'],
mode: 'template',
capabilities: ['serverlist', 'proposal']
}
});
console.log('Block Template: ', JSON.stringify(result));
}
}