rpc-bitcoin
Advanced tools
Comparing version
{ | ||
"name": "rpc-bitcoin", | ||
"version": "1.4.0", | ||
"version": "1.5.0", | ||
"description": "A TypeScript library to make RPC and HTTP REST requests to Bitcoin Core", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
@@ -264,2 +264,26 @@ # rpc-bitcoin [](https://travis-ci.com/vansergen/rpc-bitcoin) | ||
### Generating | ||
- [`generate`](https://bitcoin.org/en/developer-reference#generate) | ||
```javascript | ||
const nblocks = 1; | ||
const maxtries = 10000; | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const result = await client.generate({ nblocks, maxtries }, wallet); | ||
``` | ||
- [`generatetoaddress`](https://bitcoin.org/en/developer-reference#generatetoaddress) | ||
```javascript | ||
const nblocks = 1; | ||
const maxtries = 10000; | ||
const address = "1HLoD9E4SDFFPDiYfNYnkBLQ85Y51J3Zb1"; | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const result = await client.generatetoaddress( | ||
{ nblocks, address, maxtries }, | ||
wallet | ||
); | ||
``` | ||
### ZMQ | ||
@@ -266,0 +290,0 @@ |
@@ -71,2 +71,11 @@ import { RESTClient, RESTIniOptions } from "./rest"; | ||
export type GenerateParams = { | ||
nblocks: number; | ||
maxtries?: number; | ||
}; | ||
export type GenerateToAddressParams = GenerateParams & { | ||
address: string; | ||
}; | ||
export class RPCClient extends RESTClient { | ||
@@ -312,2 +321,26 @@ wallet?: string; | ||
/** | ||
* @description Mine up to nblocks blocks immediately (before the RPC call returns) to an address in the wallet. | ||
*/ | ||
async generate( | ||
{ nblocks, maxtries = 1000000 }: GenerateParams, | ||
wallet?: string | ||
) { | ||
return this.rpc("generate", { nblocks, maxtries }, wallet || this.wallet); | ||
} | ||
/** | ||
* @description Mine blocks immediately to a specified address (before the RPC call returns) | ||
*/ | ||
async generatetoaddress( | ||
{ nblocks, address, maxtries = 1000000 }: GenerateToAddressParams, | ||
wallet?: string | ||
) { | ||
return this.rpc( | ||
"generatetoaddress", | ||
{ nblocks, maxtries, address }, | ||
wallet || this.wallet | ||
); | ||
} | ||
/** | ||
* @description Returns information about the active ZeroMQ notifications. | ||
@@ -314,0 +347,0 @@ */ |
@@ -1013,2 +1013,97 @@ import { | ||
suite("Generating", () => { | ||
test(".generate()", async () => { | ||
const params = { nblocks: 1, maxtries: 10000 }; | ||
const request = { params, method: "generate", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/", request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generate(params); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
test(".generate() (multi-wallet)", async () => { | ||
const params = { nblocks: 1, maxtries: 10000 }; | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const request = { params, method: "generate", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/wallet/" + wallet, request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generate(params, wallet); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
test(".generate() (default wallet)", async () => { | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const client = new RPCClient({ port, timeout, pass, wallet }); | ||
const params = { nblocks: 1, maxtries: 10000 }; | ||
const request = { params, method: "generate", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/wallet/" + wallet, request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generate(params); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
test(".generatetoaddress()", async () => { | ||
const address = "tb1qc4gce3kvc8px505r4wurwdytqclkdjta68qlh4"; | ||
const params = { nblocks: 1, maxtries: 10000, address }; | ||
const request = { params, method: "generatetoaddress", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/", request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generatetoaddress(params); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
test(".generatetoaddress() (multi-wallet)", async () => { | ||
const address = "tb1qc4gce3kvc8px505r4wurwdytqclkdjta68qlh4"; | ||
const params = { nblocks: 1, maxtries: 10000, address }; | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const request = { params, method: "generatetoaddress", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/wallet/" + wallet, request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generatetoaddress(params, wallet); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
test(".generatetoaddress() (default wallet)", async () => { | ||
const wallet = "bitcoin-core-wallet.dat"; | ||
const client = new RPCClient({ port, timeout, pass, wallet }); | ||
const address = "tb1qc4gce3kvc8px505r4wurwdytqclkdjta68qlh4"; | ||
const params = { nblocks: 1, maxtries: 10000, address }; | ||
const request = { params, method: "generatetoaddress", id, jsonrpc }; | ||
const result: any[] = []; | ||
const response = { result, error, id }; | ||
nock(uri) | ||
.post("/wallet/" + wallet, request) | ||
.times(1) | ||
.basicAuth(auth) | ||
.reply(200, response); | ||
const data = await client.generatetoaddress(params); | ||
assert.deepStrictEqual(data, result); | ||
}); | ||
}); | ||
suite("Zmq", () => { | ||
@@ -1015,0 +1110,0 @@ test(".getzmqnotifications()", async () => { |
286532
1.77%2711
4.55%382
6.7%