bitcoincore-node
Version:
A comprehensive Node.js package for interacting with Bitcoin Core via RPC. Create, sign, and broadcast Bitcoin transactions, manage wallets, and access blockchain data through an easy-to-use API interface. Perfect for developers building cryptocurrency ap
80 lines (70 loc) • 2.13 kB
text/typescript
import { BitcoinCore } from './BitcoinCore';
export class UtilRPC {
constructor(private readonly bitcoinCore: BitcoinCore) {}
// createmultisig
public async createMultisig(
nrequired: number,
keys: string[],
addressType: string = 'legacy'
): Promise<any> {
return this.bitcoinCore.callMethod('createmultisig', [
nrequired,
keys,
addressType,
]);
}
// deriveaddresses
public async deriveAddresses(
descriptor: string,
range?: number | []
): Promise<string[]> {
return this.bitcoinCore.callMethod('deriveaddresses', [
descriptor,
range,
]);
}
// estimatesmartfee
public async estimateSmartFee(
confTarget: number,
estimateMode: 'UNSET' | 'ECONOMICAL' | 'CONSERVATIVE' = 'CONSERVATIVE'
): Promise<any> {
return this.bitcoinCore.callMethod('estimatesmartfee', [
confTarget,
estimateMode,
]);
}
// getdescriptorinfo
public async getDescriptorInfo(descriptor: string): Promise<any> {
return this.bitcoinCore.callMethod('getdescriptorinfo', [descriptor]);
}
// getindexinfo
public async getIndexInfo(indexName?: string): Promise<any> {
return this.bitcoinCore.callMethod('getindexinfo', [indexName]);
}
// signmessagewithprivkey
public async signMessageWithPrivKey(
privKey: string,
message: string
): Promise<string> {
return this.bitcoinCore.callMethod('signmessagewithprivkey', [
privKey,
message,
]);
}
// validateaddress
public async validateAddress(address: string): Promise<any> {
return this.bitcoinCore.callMethod('validateaddress', [address]);
}
// verifymessage
public async verifyMessage(
address: string,
signature: string,
message: string
): Promise<boolean> {
return this.bitcoinCore.callMethod('verifymessage', [
address,
signature,
message,
]);
}
}