National Public Mania

    rpc-bitcoin
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0 • Public • Published

    rpc-bitcoin Build Status Known Vulnerabilities NPM license npm downloads GitHub top language

    A TypeScript library to make RPC and HTTP REST requests to Bitcoin Core.

    Installation

    npm install rpc-bitcoin

    RPC

    const { RPCClient } = require("rpc-bitcoin");
    const url = "http://192.168.0.10";
    const user = "rpcuser";
    const pass = "rpcpassword";
    const port = 18832;
    const timeout = 10000;
    const client = new RPCClient({ url, port, timeout, user, pass });
    • batch
    const response = await client.batch([
      { method: "getbestblockhash", id: 1 },
      { method: "help", params: { command: "help" }, id: "custom-id" },
      { method: "getzmqnotifications", params: {}, id: 2 },
    ]);

    Blockchain

    const hex = await client.getbestblockhash();
    const blockhash =
      "000000004182034f427d463b92162d35d0accef9ea0c5354a87e870ca1815b4c";
    const verbosity = 2;
    const block = await client.getblock({ blockhash, verbosity });
    const info = await client.getblockchaininfo();
    const count = await client.getblockcount();
    const blockhash =
      "00000000000000dfffa1954693ba3f79813909dbcdedfe05eccb9829e828c141";
    const filtertype = "basic";
    const result = await client.getblockfilter({ blockhash, filtertype });
    const height = 1583782;
    const hash = await client.getblockhash({ height });
    const blockhash =
      "000000004182034f427d463b92162d35d0accef9ea0c5354a87e870ca1815b4c";
    const verbose = false;
    const header = await client.getblockheader({ blockhash, verbose });
    const hash_or_height =
      "000000004182034f427d463b92162d35d0accef9ea0c5354a87e870ca1815b4c";
    const stats = ["txs", "time"];
    const info = await client.getblockstats({ hash_or_height, stats });
    const tips = await client.getchaintips();
    const nblocks = 2016;
    const blockhash =
      "000000004182034f427d463b92162d35d0accef9ea0c5354a87e870ca1815b4c";
    const result = await client.getchaintxstats({ nblocks, blockhash });
    const difficulty = await client.getdifficulty();
    const verbose = true;
    const txid = "3e128c38f35520d4121d582f15998b7f74b44f17aa650b4d60decf975e642b9a";
    const result = await client.getmempoolancestors({ txid, verbose });
    const verbose = true;
    const txid = "ff758ffd73729be8afae0d683547f7840bdaee75ad5e5c464fb621b2509c366b";
    const result = await client.getmempooldescendants({ txid, verbose });
    const txid = "0629e01f05088728b089715f247de82a160428c06d6c85484adab2aa66574ace";
    const result = await client.getmempoolentry({ txid });
    const info = await client.getmempoolinfo();
    const verbose = true;
    const result = await client.getrawmempool({ verbose });
    const txid = "d2f6b1d1844e483ce350a4a22fbaef36c31ebe88730415b7408c1f34b834fab5";
    const n = 1;
    const include_mempool = true;
    const result = await client.gettxout({ txid, n, include_mempool });
    const txids = [
      "42e75d074cf5b836170d20fc09593245c65a3f07283a497c3350c4d109b38bb6",
    ];
    const blockhash =
      "000000000000000000055bc30b762904ab996430603cafe846cc6adc82c4af1e";
    const result = await client.gettxoutproof({ txids, blockhash });
    const info = await client.gettxoutsetinfo();
    const blockhash =
      "00000000000000261a35cf378bf8fa1bf6ac87800d798ce2a11f581f562e92ba";
    const result = await client.preciousblock({ blockhash });
    const height = 1000;
    const result = await client.pruneblockchain({ height });
    const result = await client.savemempool();
    const action = "start";
    const scanobjects = [
      "addr(mxosQ4CvQR8ipfWdRktyB3u16tauEdamGc)",
      {
        desc:
          "wpkh([d34db33f/84'/0'/0']tpubD6NzVbkrYhZ4YTN7usjEzYmfu4JKqnfp9RCbDmdKH78vTyuwgQat8vRw5cX1YaZZvFfQrkHrM2XsyfA8cZE1thA3guTBfTkKqbhCDpcKFLG/0/*)#8gfuh6ex",
        range: [1, 3],
      },
    ];
    const result = await client.scantxoutset({ action, scanobjects });
    const checklevel = 1;
    const nblocks = 10;
    const result = await client.verifychain({ checklevel, nblocks });
    const proof =
      "00000020ed07b12f0398e45fd403db11dbe894dc3301ce1a7725424e0b5e460c0000000066fca14db436f305aea37b3ae0f8b188cbf112dff3854c3d419f3ff3ebbc821f6c0c975dffff001d8fd5a7d2eb00000009e7acd3f605d1b957d684d9eeca9c472d803d90c0d17e29e5606f9b080b177a4abcd854622ad3900b5bc1ae71e99699a05eb972d46bd439c08eb7fbd20bba6494542222b2d1388f52c6d23ac12b32245ca47b02fc2f0a283a88aabca1f4db43ca8a4da8ffd7d9ae403b0c34ccbf14d2318c34fabb713c48f6d6490c6095250b6f08f26f020275d448dfb9967c62bedefaf29260021671a191f620f7783252788549b1e033dc815e2cd36ff204b398046f834643859f881a4d93b3fc5b91413a009c5069be274e1dcc675183ea2a989ef598422c0ed02e407aade8eaa6ef7ec1120ca4ffdef21b5fd26c4525a27c78cc38026b257f9d23f0d796603b1d3cbf539bdf87ccf9e81954f58e072d67eff2891339f203cbdec68bbbabbbbc0c070cceea03bf0a00";
    const result = await client.verifytxoutproof({ proof });

    Control

    const mode = "mallocinfo";
    const result = await client.getmemoryinfo({ mode });
    const result = await client.getrpcinfo();
    const command = "getzmqnotifications";
    const result = await client.help({ command });
    const include = ["net", "rpc"];
    const exclude = ["mempoolrej", "estimatefee"];
    const result = await client.logging({ include, exclude });
    const result = await client.stop();
    const result = await client.uptime();

    Generating

    const nblocks = 1;
    const maxtries = 10000;
    const address = "1HLoD9E4SDFFPDiYfNYnkBLQ85Y51J3Zb1";
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.generatetoaddress(
      { nblocks, address, maxtries },
      wallet
    );

    Mining

    const rules = ["segwit"];
    const mode = "template";
    const capabilities = ["serverlist", "proposal"];
    const template_request = { rules, mode, capabilities };
    const result = await client.getblocktemplate({ template_request });
    const result = await client.getmininginfo();
    const nblocks = 100;
    const height = 100;
    const result = await client.getnetworkhashps({ nblocks, height });
    const txid = "9b0fc92260312ce44e74ef369f5c66bbb85848f2eddd5a7a1cde251e54ccfdd5";
    const fee_delta = 1000;
    const result = await client.prioritisetransaction({ txid, fee_delta });
    const hexdata = "hexEncodedBlock";
    const result = await client.submitblock({ hexdata });
    const hexdata = "hexEncodedBlockHeaderData";
    const result = await client.submitheader({ hexdata });

    Network

    const node = "192.168.0.6:8333";
    const command = "onetry";
    const result = await client.addnode({ node, command });
    const result = await client.clearbanned();
    const address = "192.168.1.123:18333";
    let result = await client.disconnectnode({ address });
    // or by a `nodeid`
    const nodeid = 3;
    result = await client.disconnectnode({ nodeid });
    const node = "192.168.0.201";
    const result = await client.getaddednodeinfo({ node });
    const result = await client.getconnectioncount();
    const result = await client.getnettotals();
    const result = await client.getnetworkinfo();
    const count = 8;
    const result = await client.getnodeaddresses({ count });
    const result = await client.getpeerinfo();
    const result = await client.listbanned();
    const result = await client.ping();
    const subnet = "192.168.0.6";
    const command = "add";
    const bantime = 1581599503;
    const absolute = true;
    const result = await client.setban({ subnet, command, bantime, absolute });
    const state = false;
    const result = await client.setnetworkactive({ state });

    Rawtransactions

    const psbt =
      "cHNidP8BAJoCAAAAAtVSFGEYzcJX2qwhy8iJGI1Y/zeIqBQtH/OBC9WJ4mx7AQAAAAD9////azacULIhtk9GXF6tde7aC4T3RzVoDa6v6Jtyc/2Pdf8AAAAAAP3///8C2EcDAAAAAAAWABRvcJGDvHZHgYiyMl8u5pLowEPLj6CGAQAAAAAAFgAUtxN9/tGP/jlvvgsWeGCM691FsesBAAAAAAAAAAA=";
    const result = await client.analyzepsbt({ psbt });
    const txs = [
      "cHNidP8BAHsCAAAAAn+RFbuIDPiBkN5ua0vnUVZwwvbnnDZ8Ca4Z6y3vQyqnAAAAAAD9////KUVYeBVxQc4IZCvsc2WohVhZanD54jy11Gxxn4YRtpYBAAAAAP3///8BYII7AAAAAAAWABSANbyZwTJ0B7qPqpWSolEEKYbIFQEAAAAAAQEfIAMAAAAAAAAWABRCHnul3Lf2vUn4GUU9mrnGLnTHsQEIawJHMEQCIAenBxHwiJAo9Mt/0B0gsflruKfe90W0OUaW/gMqT13hAiBrcsvglEZvxDWKKhMLArU52ndMb6cAangC/u6mowwjGAEhAoNFASSjynZOTTIf6bOnANXURu5zQ9eGpUAcB1x569/qAAAA",
      "cHNidP8BAHsCAAAAAn+RFbuIDPiBkN5ua0vnUVZwwvbnnDZ8Ca4Z6y3vQyqnAAAAAAD9////KUVYeBVxQc4IZCvsc2WohVhZanD54jy11Gxxn4YRtpYBAAAAAP3///8BYII7AAAAAAAWABSANbyZwTJ0B7qPqpWSolEEKYbIFQEAAAAAAQEfIAMAAAAAAAAWABRCHnul3Lf2vUn4GUU9mrnGLnTHsQABAR/HgTsAAAAAABYAFDNBVvuJV65T//o2rr6AhKSwDPt9AQhrAkcwRAIgWyFL8FdWh0kB8CbKL2GsVPQU2Wgb9E4YvOwJ9KLseMgCIHBdaP/zuYg7Y4cL5B+gjsOUB4PFss6+dnACpn/+U9UjASEDTi3KTyZW9vKWtxYxflo5B7l1PHSqn0GUlf8AsXkGfvQAAA==",
    ];
    const result = await client.combinepsbt({ txs });
    const txs = [
      "020000000001029a2b645e97cfde604d0b65aa174fb4747f8b99152f581d12d42055f3388c123e0000000000fdffffff9a2b645e97cfde604d0b65aa174fb4747f8b99152f581d12d42055f3388c123e0100000000fdffffff0180250000000000001600143d366a85a8c07a44b5eed0a622197d6784c07e69000247304402201596d19c0eec785d301dad21ecc8bad1d808d4bd15615df1a5a1b9e930404066022038126c82743ccf5bc225b61a38ddd7ae651f12d27a730817de79279df8fd0ab88121028cc283639d0254c3f3091659d66f7681189de1ade326d36eefa50217956b057b00000000",
      "020000000001029a2b645e97cfde604d0b65aa174fb4747f8b99152f581d12d42055f3388c123e0000000000fdffffff9a2b645e97cfde604d0b65aa174fb4747f8b99152f581d12d42055f3388c123e0100000000fdffffff0180250000000000001600143d366a85a8c07a44b5eed0a622197d6784c07e69024730440220451546bae0bc61270eec966f1ca0a5cb16a93c5f88a800094240e61fb3f6fdd7022021a0065ec25e06f9e0b3a4d87b06d13adc2bd620dd8f2ecf7a40366ceaa93e998121039a3d49d8d6a2ca7ff2ea6657d3c8c19ba20ab67f529edb522030928b5f4894d20000000000",
    ];
    const result = await client.combinerawtransaction({ txs });
    const hexstring =
      "020000000122647b4fc186385b15a01cc6cd6d7864399b4ff536f370f86ecc5e2f4281d7d50000000000ffffffff017b000000000000001976a914394e47d5a2d723e34b38b05e257c6ab69be3b59988ac00000000";
    const permitsigdata = true;
    const iswitness = true;
    const result = await client.converttopsbt({
      hexstring,
      permitsigdata,
      iswitness,
    });
    const inputs = [
      {
        txid: "7b6ce289d50b81f31f2d14a88837ff588d1889c8cb21acda57c2cd18611452d5",
        vout: 1,
      },
      {
        txid: "ff758ffd73729be8afae0d683547f7840bdaee75ad5e5c464fb621b2509c366b",
        vout: 0,
      },
    ];
    const outputs = [
      {
        tb1qdacfrqauwercrz9jxf0jae5jarqy8ju0ywt8su: 0.00215,
      },
      {
        tb1qkufhmlk33llrjma7pvt8scyva0w5tv0tvuy6zs: 0.001,
      },
    ];
    const locktime = 1;
    const replaceable = true;
    const result = await client.createpsbt({
      inputs,
      outputs,
      locktime,
      replaceable,
    });
    const inputs = [
      {
        txid: "7b6ce289d50b81f31f2d14a88837ff588d1889c8cb21acda57c2cd18611452d5",
        vout: 1,
      },
      {
        txid: "ff758ffd73729be8afae0d683547f7840bdaee75ad5e5c464fb621b2509c366b",
        vout: 0,
      },
    ];
    const outputs = [
      {
        tb1qdacfrqauwercrz9jxf0jae5jarqy8ju0ywt8su: 0.00215,
      },
      {
        tb1qkufhmlk33llrjma7pvt8scyva0w5tv0tvuy6zs: 0.001,
      },
    ];
    const locktime = 1;
    const replaceable = true;
    const result = await client.createrawtransaction({
      inputs,
      outputs,
      locktime,
      replaceable,
    });
    const psbt =
      "cHNidP8BAJoCAAAAAtVSFGEYzcJX2qwhy8iJGI1Y/zeIqBQtH/OBC9WJ4mx7AQAAAAD9////azacULIhtk9GXF6tde7aC4T3RzVoDa6v6Jtyc/2Pdf8AAAAAAP3///8C2EcDAAAAAAAWABRvcJGDvHZHgYiyMl8u5pLowEPLj6CGAQAAAAAAFgAUtxN9/tGP/jlvvgsWeGCM691FsesBAAAAAAAAAAA=";
    const result = await client.decodepsbt({ psbt });
    const hexstring =
      "0200000002d552146118cdc257daac21cbc889188d58ff3788a8142d1ff3810bd589e26c7b0100000000fdffffff6b369c50b221b64f465c5ead75eeda0b84f74735680daeafe89b7273fd8f75ff0000000000fdffffff02d8470300000000001600146f709183bc76478188b2325f2ee692e8c043cb8fa086010000000000160014b7137dfed18ffe396fbe0b1678608cebdd45b1eb01000000";
    const iswitness = true;
    const result = await client.decoderawtransaction({ hexstring, iswitness });
    const hexstring =
      "5221031e925dbe43ca87bce874f4fb77ac0d6bb2dc1a9db93868fa27611b687775bd0b2102ffb8b66ba266797f1e33e5d177a6f9c72839992ccf11e97837054a8d3a8284bc21025bf696347321a5276aad08dfefff19dd09d3717bfc2ce521060f4247d31c37b553ae";
    const result = await client.decodescript({ hexstring });
    const psbt =
      "cHNidP8BAHsCAAAAAn+RFbuIDPiBkN5ua0vnUVZwwvbnnDZ8Ca4Z6y3vQyqnAAAAAAD9////KUVYeBVxQc4IZCvsc2WohVhZanD54jy11Gxxn4YRtpYBAAAAAP3///8BYII7AAAAAAAWABSANbyZwTJ0B7qPqpWSolEEKYbIFQEAAAAAAQEfIAMAAAAAAAAWABRCHnul3Lf2vUn4GUU9mrnGLnTHsQEIawJHMEQCIAenBxHwiJAo9Mt/0B0gsflruKfe90W0OUaW/gMqT13hAiBrcsvglEZvxDWKKhMLArU52ndMb6cAangC/u6mowwjGAEhAoNFASSjynZOTTIf6bOnANXURu5zQ9eGpUAcB1x569/qAAEBH8eBOwAAAAAAFgAUM0FW+4lXrlP/+jauvoCEpLAM+30BCGsCRzBEAiBbIUvwV1aHSQHwJsovYaxU9BTZaBv0Thi87An0oux4yAIgcF1o//O5iDtjhwvkH6COw5QHg8Wyzr52cAKmf/5T1SMBIQNOLcpPJlb28pa3FjF+WjkHuXU8dKqfQZSV/wCxeQZ+9AAA";
    const extract = true;
    const result = await client.finalizepsbt({ psbt, extract });
    const hexstring =
      "020000000129455878157141ce08642bec7365a88558596a70f9e23cb5d46c719f8611b6960000000000fdffffff0140420f00000000001600148470e04e616ab6552d72e8284a32a293ff8a959b00000000";
    const includeWatching = true;
    const feeRate = 0.0002;
    const replaceable = true;
    const changeAddress = "tb1q80h3kvp98fgkz293we3p75hs0aq4cecz3qtgkg";
    const wallet = "bitcoin-core-wallet.dat";
    const options = { includeWatching, feeRate, replaceable, changeAddress };
    const iswitness = true;
    const result = await client.fundrawtransaction(
      {
        hexstring,
        options,
        iswitness,
      },
      wallet
    );
    const txid = "a32ddaed3387a2bc0bb9a4f90bc6e84e5589335b97142848ad144efd38420eb2";
    const verbose = true;
    const blockhash =
      "00000000480351c0fc7047af37756bbae30996a018e94d9ca8156dccea032018";
    const result = await client.getrawtransaction({ txid, verbose, blockhash });
    const txs = [
      "cHNidP8BAFICAAAAAdVSFGEYzcJX2qwhy8iJGI1Y/zeIqBQtH/OBC9WJ4mx7AQAAAAD9////AdhHAwAAAAAAFgAUb3CRg7x2R4GIsjJfLuaS6MBDy48BAAAAAAAA",
      "cHNidP8BAFICAAAAAWs2nFCyIbZPRlxerXXu2guE90c1aA2ur+ibcnP9j3X/AAAAAAD9////AaCGAQAAAAAAFgAUtxN9/tGP/jlvvgsWeGCM691FsesBAAAAAAAA",
    ];
    const result = await client.joinpsbts({ txs });
    const hexstring =
      "020000000001027f9115bb880cf88190de6e6b4be7515670c2f6e79c367c09ae19eb2def432aa70000000000fdffffff29455878157141ce08642bec7365a88558596a70f9e23cb5d46c719f8611b6960100000000fdffffff0160823b00000000001600148035bc99c1327407ba8faa9592a251042986c81502473044022007a70711f0889028f4cb7fd01d20b1f96bb8a7def745b4394696fe032a4f5de102206b72cbe094466fc4358a2a130b02b539da774c6fa7006a7802feeea6a30c231801210283450124a3ca764e4d321fe9b3a700d5d446ee7343d786a5401c075c79ebdfea0247304402205b214bf05756874901f026ca2f61ac54f414d9681bf44e18bcec09f4a2ec78c80220705d68fff3b9883b63870be41fa08ec3940783c5b2cebe767002a67ffe53d5230121034e2dca4f2656f6f296b716317e5a3907b9753c74aa9f419495ff00b179067ef401000000";
    const allowhighfees = true;
    const result = await client.sendrawtransaction({ hexstring, allowhighfees });
    const hexstring =
      "0200000002d552146118cdc257daac21cbc889188d58ff3788a8142d1ff3810bd589e26c7b0000000000fdffffff6dd6a088fda2de4c1f25912f5c6f53fdafd54abf6557d888af5ceac704a26d050100000000fdffffff0200093d0000000000160014fc8e119e52776678cc05cab6b024eb77cea2f11620cc0400000000001600141ca68ece7a876e66d377c0a1bc5d45251513c20800000000";
    const privkeys = ["privkey1", "privkey2"];
    const prevtxs = [
      {
        txid: "cc21b8cb612f7b451e4283f08b3fa96ccdc141441697c499366f42514b3bdd15",
        vout: 0,
        scriptPubKey: "00141ca68ece7a876e66d377c0a1bc5d45251513c208",
        amount: 0.001,
      },
    ];
    const sighashtype = "ALL|ANYONECANPAY";
    const result = await client.signrawtransactionwithkey({
      hexstring,
      privkeys,
      prevtxs,
      sighashtype,
    });
    const rawtxs = [
      "020000000001027f9115bb880cf88190de6e6b4be7515670c2f6e79c367c09ae19eb2def432aa70000000000fdffffff29455878157141ce08642bec7365a88558596a70f9e23cb5d46c719f8611b6960100000000fdffffff0160823b00000000001600148035bc99c1327407ba8faa9592a251042986c81502473044022007a70711f0889028f4cb7fd01d20b1f96bb8a7def745b4394696fe032a4f5de102206b72cbe094466fc4358a2a130b02b539da774c6fa7006a7802feeea6a30c231801210283450124a3ca764e4d321fe9b3a700d5d446ee7343d786a5401c075c79ebdfea0247304402205b214bf05756874901f026ca2f61ac54f414d9681bf44e18bcec09f4a2ec78c80220705d68fff3b9883b63870be41fa08ec3940783c5b2cebe767002a67ffe53d5230121034e2dca4f2656f6f296b716317e5a3907b9753c74aa9f419495ff00b179067ef401000000",
    ];
    const allowhighfees = true;
    const result = await client.testmempoolaccept({ rawtxs, allowhighfees });
    const psbt =
      "cHNidP8BAHsCAAAAAn+RFbuIDPiBkN5ua0vnUVZwwvbnnDZ8Ca4Z6y3vQyqnAAAAAAD9////KUVYeBVxQc4IZCvsc2WohVhZanD54jy11Gxxn4YRtpYBAAAAAP3///8BYII7AAAAAAAWABSANbyZwTJ0B7qPqpWSolEEKYbIFQEAAAAAAQEfIAMAAAAAAAAWABRCHnul3Lf2vUn4GUU9mrnGLnTHsQEIawJHMEQCIAenBxHwiJAo9Mt/0B0gsflruKfe90W0OUaW/gMqT13hAiBrcsvglEZvxDWKKhMLArU52ndMb6cAangC/u6mowwjGAEhAoNFASSjynZOTTIf6bOnANXURu5zQ9eGpUAcB1x569/qAAAA";
    const result = await client.utxoupdatepsbt({ psbt });

    Util

    const nrequired = 2;
    const keys = [
      "03789ed0bb717d88f7d321a368d905e7430207ebbd82bd342cf11ae157a7ace5fd",
      "03dbc6764b8884a92e871274b87583e6d5c2a58819473e17e107ef3f6aa5a61626",
    ];
    const address_type = "bech32";
    const result = await client.createmultisig({ nrequired, keys, address_type });
    const descriptor =
      "wpkh([d34db33f/84'/0'/0']tpubD6NzVbkrYhZ4YTN7usjEzYmfu4JKqnfp9RCbDmdKH78vTyuwgQat8vRw5cX1YaZZvFfQrkHrM2XsyfA8cZE1thA3guTBfTkKqbhCDpcKFLG/0/*)#8gfuh6ex";
    const range = [0, 2];
    const result = await client.deriveaddresses({ descriptor, range });
    const conf_target = 2;
    const estimate_mode = "ECONOMICAL";
    const result = await client.estimatesmartfee({ conf_target, estimate_mode });
    const descriptor =
      "wpkh([d34db33f/84h/0h/0h]0279be667ef9dcbbac55a06295Ce870b07029Bfcdb2dce28d959f2815b16f81798)";
    const result = await client.getdescriptorinfo({ descriptor });
    const privkey = "yourPrivateKey";
    const message = "Hello World";
    const result = await client.signmessagewithprivkey({ privkey, message });
    const address = "1HLoD9E4SDFFPDiYfNYnkBLQ85Y51J3Zb1";
    const result = await client.validateaddress({ address });
    const address = "myv3xs1BBBhaDVU62LFNBho2zSp4KLBkgK";
    const message = "Hello World";
    const signature =
      "H14/QyrMj8e63GyEXBDDWnWrplXK3OORnMc3B+fEOOisbNFEAQuNB9myAH9qs7h1VNJb1xq1ytPQqiLcmSwwPv8=";
    const result = await client.verifymessage({ address, message, signature });

    Wallet

    const txid = "d1514757030c26d54e90b242c696f46f539bb55e92fb105505d9ee43e61657a9";
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.abandontransaction({ txid }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.abortrescan(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const nrequired = 2;
    const keys = [
      "030b0f444121f91cf323ad599ee8ced39dcbb136905e8ac42f9bdb4756142c716f",
      "02ea2e2847de9386b704cacb5c730c272c4f3e7b14a586ca6122cdacff5dea59e9",
    ];
    const label = "NewMultiSigAddress";
    const address_type = "bech32";
    const result = await client.addmultisigaddress(
      { nrequired, keys, label, address_type },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const destination = "D:/Crypto/wallets/myWalletBackup.dat";
    const result = await client.backupwallet({ destination }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const txid = "txid";
    const totalFee = 0.00000839;
    const replaceable = true;
    const estimate_mode = "CONSERVATIVE";
    const options = { totalFee, replaceable, estimate_mode };
    const result = await client.bumpfee({ txid, options }, wallet);
    const wallet_name = "bitcoin-core-wallet.dat";
    const disable_private_keys = true;
    const blank = true;
    const result = await client.createwallet({
      wallet_name,
      disable_private_keys,
      blank,
    });
    const wallet = "bitcoin-core-wallet.dat";
    const address = "tb1qkdvjgyk7y5fmekzs2sk6zep4rdcl7yell9drxm";
    const result = await client.dumpprivkey({ address }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const filename = "myWalletDump.dat";
    const result = await client.dumpwallet({ filename }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const passphrase = "VerySecretPassphraseDoNotTellAnyone";
    const result = await client.encryptwallet({ passphrase }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const label = "SomeLabel";
    const result = await client.getaddressesbylabel({ label }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address = "tb1qds5qv262690uvsh6wytp0aq8xey29jfuegv4pj";
    const result = await client.getaddressinfo({ address }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const minconf = 6;
    const include_watchonly = true;
    const result = await client.getbalance({ minconf, include_watchonly }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.getbalances(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const label = "SomeLabel";
    const address_type = "bech32";
    const result = await client.getnewaddress({ label, address_type }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address_type = "bech32";
    const result = await client.getrawchangeaddress({ address_type }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address =
      "tb1qg9nfs5ll5h3xl3h8xqhw8wg4sj6j6g6666cstmeg7v2q4ty0ccsqg5du3n";
    const minconf = 6;
    const result = await client.getreceivedbyaddress({ address, minconf }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const label = "SomeLabel";
    const minconf = 6;
    const result = await client.getreceivedbylabel({ label, minconf }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const txid = "2c06449191f86594ceb059363da55e6587963fc8d801fdecf73f9a42d64dfe95";
    const include_watchonly = true;
    const result = await client.gettransaction({ txid, include_watchonly }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.getunconfirmedbalance(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.getwalletinfo(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address = "tb1qk57dcv7rs2ap6k82xu58957qz6zherj4vm54lw";
    const label = "ImportedAddress";
    const rescan = false;
    const p2sh = false;
    const result = await client.importaddress(
      { address, label, rescan, p2sh },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const requests = [
      {
        desc:
          "wpkh(tpubD6NzVbkrYhZ4Wk5MMULiQd4XkBe3KeG6GCUNrWcXu27PJwqFfHF7geuTPfPZcViUpV7ny6MHVnbvxdCSfkooFb7bBJiQgKXCVM58XZiVyHu/0/*)#9tk43hcd",
        range: [2, 5],
        internal: true,
        watchonly: true,
        timestamp: 0,
      },
      {
        scriptPubKey: { address: "tb1q0pjl9cy0t38uvyfs75t7av7ujrhs65xx0nfjmf" },
        timestamp: "now",
      },
      {
        scriptPubKey: { address: "tb1qxqt28qy3uvj8qeucm60dnrzty3cccx88hp9car" },
        keys: ["cQfkAynVm54Je8mXYH6zkKKjug7ehheUeMx5jnWTvy94M73X2Vdj"],
        timestamp: "now",
      },
    ];
    const options = { rescan: false };
    const result = await client.importmulti({ requests, options }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const privkey = "cQnahvawMKvZXLWCdrBvXdvDoTHm4xeQq9iWqLC2JzmicFVd5Mdz";
    const label = "Imported";
    const rescan = false;
    const result = await client.importprivkey({ privkey, label, rescan }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const rawtransaction =
      "0200000000010422647b4fc186385b15a01cc6cd6d7864399b4ff536f370f86ecc5e2f4281d7d50000000017160014013b2e1e130cd463f3be9fce311cfbf6f862d224fdffffffc61430e9a56a5ebba761828078c9a5f03571da6fbf40f4f87f7d72cbcbaf6f5e0000000000fdffffffe399e3ebf69237d36ba6f5d7ccb8f2d79923e19733fb4b7fc58f11b789f89653000000006a47304402204ea849bac52e0f76b7df9b196cad692cc8e253778c999d67627f2a9c487067e00220245e9446863037949dac77cb34f532376749507e6d499418fe51144c6e950725012103bb1add1e1e6093caa59f127ff3d477f8ac210f2ca1f8c81ff8c1602d9a5bacd0fdffffffd37c62273bfaeffee551ccaa1e06a6daa1e9d32248798821e33c6623ea17b9910000000000fdffffff022785400000000000160014740535b933895ac1caf3ba92976993f7fd9d2e99a086010000000000160014000243d945554d568a6858f5f243d9510258d75c0247304402207400692ba5ecfeda204468905b138c0f7e6cf2d02be119094864db1c48c21f7c022008ccad54fb2cdc107a96c8a56b3e80867e4cfa8c904e9a78f27f10fc8071fb430121026c9b6d74350725506d14613cabade7f447fb67eb416c8ef34323da77f7299c2302473044022024d43ee736fe458b739f32866c35a6dfe7ca352acd7b76a25472c4a8246a5ead022073db04ee5a894a6eb949ab56046416fd5090f44f65fe3a6ab68b4a5b540bb6b20121028ff8402568eea88e93d30b4b2e6c7125bdb894cbf27c87a2101e35e0b1f5ff2e000247304402205e9b129b0a0c2c0fb458c1f397d462fd4db46cf7fffd19dc9189e421f1f61fac0220424e8cbfa9a01160033cae4955bc44c6f958d3afc7ccc67aef0a23c5f95bf37e012102228f0d709aacaa24fb4712c8fca4b10c9f4cfb60dcaa4d34b58660080a8bd8435e1e1800";
    const txoutproof =
      "000040205853c9a97816b63b9bb539f7b4cfb8c8a36ee0d9b6e1c59df102000000000000ab93331e4cae84da202131b6418e61e30095a81108edb09376ad7d02768d72c348ff9a5d74c4031a712e7b5614000000040cce7e642af08fd68ddcf0b7630ad88c4110c91fcdb7f792f6253bef56181bf201d52b2f5696dd23973b09dd34c2447aadeeb31ada2ff4b1d88d238c8cb2081a0a6331dd8ded7863f79cd3574812d032d5bc7c96df137ddb0d3b794ac2a26f199b66a00a8b8376f3bd0b1c7f9827b403242976d1dc16ed8bc6ec7e11c1f028bf02dd00";
    const result = await client.importprunedfunds(
      { rawtransaction, txoutproof },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const pubkey =
      "023ef8f5fa2a18c07d714d942e4aa933827df7d5fba43a513be22581fc0ce83207";
    const label = "SomeAddress";
    const rescan = false;
    const result = await client.importpubkey({ pubkey, label, rescan }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const filename = "myWalletDump.dat";
    const result = await client.importwallet({ filename }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const newsize = 123;
    const result = await client.keypoolrefill({ newsize }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.listaddressgroupings(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const purpose = "receive";
    const result = await client.listlabels({ purpose }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.listlockunspent(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const minconf = 6;
    const include_empty = false;
    const include_watchonly = false;
    const address_filter = "tb1qyferlkpvr7v3r5ne7jh2avjuvnxkf08lqhpqe9";
    const result = await client.listreceivedbyaddress(
      { minconf, include_empty, include_watchonly, address_filter },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const minconf = 6;
    const include_empty = true;
    const include_watchonly = true;
    const result = await client.listreceivedbylabel(
      { minconf, include_empty, include_watchonly },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const blockhash =
      "00000000001ad9877c5a839c65371a18e1392a2be83378915e01342a368caaef";
    const target_confirmations = 6;
    const include_watchonly = true;
    const include_removed = false;
    const result = await client.listsinceblock(
      { blockhash, target_confirmations, include_watchonly, include_removed },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const label = "SomeLabel";
    const count = 5;
    const skip = 4;
    const include_watchonly = true;
    const result = await client.listtransactions(
      { label, count, skip, include_watchonly },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const minconf = 1;
    const maxconf = 100;
    const addresses = [
      "tb1qg9nfs5ll5h3xl3h8xqhw8wg4sj6j6g6666cstmeg7v2q4ty0ccsqg5du3n",
      "tb1q8vd7hh77afe2aans7vywyt8txvz84r3pwkmny4",
    ];
    const include_unsafe = false;
    const query_options = {
      minimumAmount: 0.0001,
      maximumAmount: 0.01,
      maximumCount: 2,
      minimumSumAmount: 10,
    };
    const result = await client.listunspent(
      { minconf, maxconf, addresses, include_unsafe, query_options },
      wallet
    );
    const result = await client.listwalletdir();
    const result = await client.listwallets();
    const filename = "myWallet.dat";
    const result = await client.loadwallet({ filename });
    const wallet = "bitcoin-core-wallet.dat";
    const unlock = true;
    const transactions = [
      {
        txid: "7b6ce289d50b81f31f2d14a88837ff588d1889c8cb21acda57c2cd18611452d5",
        vout: 1,
      },
      {
        txid: "3e128c38f35520d4121d582f15998b7f74b44f17aa650b4d60decf975e642b9a",
        vout: 0,
      },
    ];
    const result = await client.lockunspent({ unlock, transactions }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const txid = "196fa2c24a793b0ddb7d13df967cbcd532d0124857d39cf76378ed8ddd31630a";
    const result = await client.removeprunedfunds({ txid }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const start_height = 1566870;
    const stop_height = 1566970;
    const result = await client.rescanblockchain(
      { start_height, stop_height },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const amounts = {
      tb1qh4v0nuuglwfvzjhhjwn2mm8xa5n9mmg6azq237: 0.00002,
      tb1qm0m54hj4hmgw4ncufh7g6gx8lp7294rgjr8vz3: "0.00003",
    };
    const minconf = 6;
    const comment = "SomeComment";
    const subtractfeefrom = ["tb1qh4v0nuuglwfvzjhhjwn2mm8xa5n9mmg6azq237"];
    const replaceable = true;
    const conf_target = 20;
    const estimate_mode = "ECONOMICAL";
    const result = await client.sendmany(
      {
        amounts,
        minconf,
        comment,
        subtractfeefrom,
        replaceable,
        conf_target,
        estimate_mode,
      },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const address = "tb1qzvfvg6hfyf9kuzhmr2prtrnmxeqrt2pgapv89f";
    const amount = 0.0001;
    const comment = "SomePayment";
    const comment_to = "Someone";
    const subtractfeefromamount = true;
    const replaceable = true;
    const conf_target = 20;
    const estimate_mode = "CONSERVATIVE";
    const result = await client.sendtoaddress(
      {
        address,
        amount,
        comment,
        comment_to,
        subtractfeefromamount,
        replaceable,
        conf_target,
        estimate_mode,
      },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const newkeypool = true;
    const seed = "cUFvQRAsGvyTVBPX5vowrghWmYXTvNw7nQvkKPtiACsdzRKWZM2P";
    const result = await client.sethdseed({ newkeypool, seed }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address = "tb1qcay50erzz8gaagge3jqeau0m8yav0kjgy8sxkp";
    const label = "SomeLabel";
    const result = await client.setlabel({ address, label }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const amount = 0.00002;
    const result = await client.settxfee({ amount }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const flag = "avoid_reuse";
    const value = false;
    const result = await client.setwalletflag({ flag, value }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const address = "muQN4LGGwtD9bqPeCexKGpksvygnRAnTA3";
    const message = "Hello World!";
    const result = await client.signmessage({ address, message }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const hexstring =
      "02000000011e6de9ecf189d7101655489338d8b6437366a2694f3536080507143b06073c7a0000000000fdffffff0118a66900000000001600141b5eaac3aca51241ffa5a10cfd85b38c0035e7b100000000";
    const prevtxs = [
      {
        txid: "7a3c07063b1407050836354f69a2667343b6d8389348551610d789f1ece96d1e",
        vout: 0,
        scriptPubKey: "0014c92776d7c9e5c7d74f9c8093335de1928862e8ac",
        amount: 0.06924013,
      },
    ];
    const sighashtype = "ALL|ANYONECANPAY";
    const result = await client.signrawtransactionwithwallet(
      { hexstring, prevtxs, sighashtype },
      wallet
    );
    const wallet_name = "bitcoin-core-wallet.dat";
    const result = await client.unloadwallet({ wallet_name });
    const wallet = "bitcoin-core-wallet.dat";
    const inputs = [
      {
        txid: "5396f889b7118fc57f4bfb3397e12399d7f2b8ccd7f5a66bd33792f6ebe399e3",
        vout: 0,
      },
    ];
    const outputs = [
      {
        tb1qu7jphg0km5mrl7kx8txy3xuky9tlpvmxmehz8m: 0.001466,
      },
    ];
    const locktime = 1;
    const options = {
      changeAddress: "tb1qc0vz2vryuadyvcux09pswnl7ng2r9fzzd3cwnf",
      changePosition: 1,
      includeWatching: false,
      lockUnspents: false,
      subtractFeeFromOutputs: [],
      replaceable: true,
      conf_target: 20,
      estimate_mode: "ECONOMICAL",
    };
    const bip32derivs = true;
    const result = await client.walletcreatefundedpsbt(
      { inputs, outputs, locktime, options, bip32derivs },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const result = await client.walletlock(wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const passphrase = "VerySecretPassphraseDoNotTellAnyone";
    const timeout = 600;
    const result = await client.walletpassphrase({ passphrase, timeout }, wallet);
    const wallet = "bitcoin-core-wallet.dat";
    const oldpassphrase = "SecretPassphraseDoNotTellAnyone";
    const newpassphrase = "VerySecretPassphraseDoNotTellAnyone";
    const result = await client.walletpassphrasechange(
      { oldpassphrase, newpassphrase },
      wallet
    );
    const wallet = "bitcoin-core-wallet.dat";
    const psbt =
      "cHNidP8BAFICAAAAAesycXqP/ZnHQ42fCokY4ws3HyKokiDXfsosfWt2t83wAAAAAAD9////ASBFQAAAAAAAFgAUYN55MzrCRphAffpgyBh5daiXrAcBAAAAAAAA";
    const sign = true;
    const sighashtype = "ALL|ANYONECANPAY";
    const bip32derivs = true;
    const result = await client.walletprocesspsbt(
      { psbt, sign, sighashtype, bip32derivs },
      wallet
    );

    ZMQ

    const result = await client.getzmqnotifications();

    HTTP REST

    const { RESTClient } = require("rpc-bitcoin");
    const url = "http://192.168.0.101";
    const port = 17230;
    const timeout = 20000;
    const restClient = new RESTClient({ url, port, timeout });
    const hash = "00000000099de420b319c7804c4bfee5357d3f5ddbfd3c71c15b3625347792bf";
    const format = "hex";
    await restClient.getBlock({ hash, format });
    const hash = "00000000099de420b319c7804c4bfee5357d3f5ddbfd3c71c15b3625347792bf";
    const format = "hex";
    await restClient.getBlockNoTxDetails({ hash, format });
    const height = 1;
    const format = "hex";
    await restClient.getBlockHashByHeight({ height, format });
    await restClient.getChainInfo();
    const checkmempool = true;
    const outpoints = [
      {
        txid: "e346be6c1ef4d24f3a26ea8e1b45a2645d339fbee9da8b9dc03aeef1c4179716",
        n: 0,
      },
      {
        txid: "e346be6c1ef4d24f3a26ea8e1b45a2645d339fbee9da8b9dc03aeef1c4179716",
        n: 1,
      },
    ];
    const format = "hex";
    await restClient.getUtxos({ checkmempool, outpoints, format });
    const count = 5;
    const hash = "00000000000001f0be142e57e99d3528212e1204157209c6c10bd11326cc5b35";
    const format = "hex";
    await restClient.getHeaders({ count, hash, format });
    await restClient.getMemPoolContents();
    await restClient.getMemPoolInfo();
    const txid = "93520a51cc6c694e79913f1daf0288cb10e0d7946723c06b4e7b6c2e5b057933";
    const format = "hex";
    await restClient.getTx({ txid, format });

    Keywords

    Install

    npm i rpc-bitcoin

    DownloadsWeekly Downloads

    2,168

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    86.9 kB

    Total Files

    9

    Last publish

    Collaborators

    • vansergen