@gobob/bob-sdk 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
7
7
  "test": "ts-mocha test/*.ts",
8
8
  "build": "tsc -p tsconfig.json"
9
9
  },
10
+ "files": [
11
+ "dist"
12
+ ],
10
13
  "devDependencies": {
11
14
  "@types/chai": "^4.3.6",
12
15
  "@types/mocha": "^10.0.2",
package/src/electrs.ts DELETED
@@ -1,98 +0,0 @@
1
- export const MAINNET_ESPLORA_BASE_PATH = "https://btc-mainnet.interlay.io";
2
- export const TESTNET_ESPLORA_BASE_PATH = "https://btc-testnet.interlay.io";
3
- export const REGTEST_ESPLORA_BASE_PATH = "http://localhost:3002";
4
-
5
- export interface MerkleProof {
6
- blockHeight: number
7
- merkle: string,
8
- pos: number,
9
- }
10
-
11
- export interface ElectrsClient {
12
- /**
13
- * @param height The height of the Bitcoin block
14
- * @returns The block hash of the Bitcoin block
15
- */
16
- getBlockHash(height: number): Promise<string>;
17
- /**
18
- * @param height The hash of the Bitcoin block
19
- * @returns The raw block header, represented as a hex string
20
- */
21
- getBlockHeader(hash: string): Promise<string>;
22
- /**
23
- * @param txId The ID of a Bitcoin transaction
24
- * @returns The transaction data, represented as a hex string
25
- */
26
- getTransactionHex(txId: string): Promise<string>;
27
- /**
28
- * @param txId The ID of a Bitcoin transaction
29
- * @returns The encoded merkle inclusion proof for the transaction
30
- */
31
- getMerkleProof(txId: string): Promise<MerkleProof>;
32
- }
33
-
34
- function encodeElectrsMerkleProof(merkle: string[]): string {
35
- // convert to little-endian
36
- return merkle.map(item => Buffer.from(item, "hex").reverse().toString("hex")).join('');
37
- }
38
-
39
- export class DefaultElectrsClient implements ElectrsClient {
40
- private basePath: string;
41
-
42
- constructor(networkOrUrl: string = "mainnet") {
43
- switch (networkOrUrl) {
44
- case "mainnet":
45
- this.basePath = MAINNET_ESPLORA_BASE_PATH;
46
- break;
47
- case "testnet":
48
- this.basePath = TESTNET_ESPLORA_BASE_PATH;
49
- break;
50
- case "regtest":
51
- this.basePath = REGTEST_ESPLORA_BASE_PATH;
52
- break;
53
- default:
54
- this.basePath = networkOrUrl;
55
- }
56
- }
57
-
58
- async getBlockHash(height: number): Promise<string> {
59
- return this.getText(`${this.basePath}/block-height/${height}`);
60
- }
61
-
62
- async getBlockHeader(hash: string): Promise<string> {
63
- return this.getText(`${this.basePath}/block/${hash}/header`);
64
- }
65
-
66
- async getTransactionHex(txId: string): Promise<string> {
67
- return this.getText(`${this.basePath}/tx/${txId}/hex`);
68
- }
69
-
70
- async getMerkleProof(txId: string): Promise<MerkleProof> {
71
- const response = await this.getJson<{
72
- "block_height": number,
73
- "merkle": string[],
74
- "pos": number,
75
- }>(`${this.basePath}/tx/${txId}/merkle-proof`);
76
- return {
77
- blockHeight: response.block_height,
78
- merkle: encodeElectrsMerkleProof(response.merkle),
79
- pos: response.pos,
80
- };
81
- }
82
-
83
- async getJson<T>(url: string): Promise<T> {
84
- const response = await fetch(url);
85
- if (!response.ok) {
86
- throw new Error(response.statusText);
87
- }
88
- return await response.json() as Promise<T>;
89
- }
90
-
91
- async getText(url: string): Promise<string> {
92
- const response = await fetch(url);
93
- if (!response.ok) {
94
- throw new Error(response.statusText);
95
- }
96
- return await response.text();
97
- }
98
- }
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./electrs";
2
- export * from "./relay";
3
- export * from "./utils";
package/src/relay.ts DELETED
@@ -1,59 +0,0 @@
1
- import { Transaction } from "bitcoinjs-lib";
2
- import { ElectrsClient } from "./electrs";
3
- import { encodeRawInput, encodeRawOutput } from "./utils";
4
-
5
- export interface BitcoinTxInfo {
6
- version: string,
7
- inputVector: string,
8
- outputVector: string,
9
- locktime: string,
10
- }
11
-
12
- export async function getBitcoinTxInfo(
13
- electrsClient: ElectrsClient,
14
- txId: string,
15
- ): Promise<BitcoinTxInfo> {
16
- const txHex = await electrsClient.getTransactionHex(txId);
17
- const tx = Transaction.fromHex(txHex);
18
-
19
- const versionBuffer = Buffer.allocUnsafe(4);
20
- versionBuffer.writeInt32LE(tx.version);
21
-
22
- const locktimeBuffer = Buffer.allocUnsafe(4);
23
- locktimeBuffer.writeInt32LE(tx.locktime);
24
-
25
- return {
26
- version: versionBuffer.toString("hex"),
27
- inputVector: encodeRawInput(tx).toString("hex"),
28
- outputVector: encodeRawOutput(tx).toString("hex"),
29
- locktime: locktimeBuffer.toString("hex")
30
- }
31
- }
32
-
33
- export interface BitcoinTxProof {
34
- merkleProof: string,
35
- txIndexInBlock: number,
36
- bitcoinHeaders: string,
37
- }
38
-
39
- export async function getBitcoinTxProof(
40
- electrsClient: ElectrsClient,
41
- txId: string,
42
- txProofDifficultyFactor: number,
43
- ): Promise<BitcoinTxProof> {
44
- const merkleProof = await electrsClient.getMerkleProof(txId);
45
-
46
- const range = (start: number, end: number) => Array.from({ length: end - start }, (_element, index) => index + start);
47
- const blockHeights = range(merkleProof.blockHeight, merkleProof.blockHeight + txProofDifficultyFactor);
48
-
49
- const bitcoinHeaders = await Promise.all(blockHeights.map(async height => {
50
- const hash = await electrsClient.getBlockHash(height);
51
- return electrsClient.getBlockHeader(hash);
52
- }));
53
-
54
- return {
55
- merkleProof: merkleProof.merkle,
56
- txIndexInBlock: merkleProof.pos,
57
- bitcoinHeaders: bitcoinHeaders.join(''),
58
- }
59
- }
package/src/utils.ts DELETED
@@ -1,127 +0,0 @@
1
- import { Block } from "bitcoinjs-lib";
2
- import { BufferWriter, varuint } from "bitcoinjs-lib/src/bufferutils";
3
- import { hash256 } from "bitcoinjs-lib/src/crypto";
4
- import { Output, Transaction } from "bitcoinjs-lib/src/transaction";
5
-
6
- function varSliceSize(someScript: Buffer): number {
7
- const length = someScript.length;
8
- return varuint.encodingLength(length) + length;
9
- }
10
-
11
- export function encodeRawInput(tx: Transaction) {
12
- const inputSize = varuint.encodingLength(tx.ins.length) + tx.ins.reduce((sum, input) => {
13
- return sum + 40 + varSliceSize(input.script);
14
- }, 0);
15
-
16
- const inputBuffer = Buffer.allocUnsafe(inputSize);
17
- const inputBufferWriter = new BufferWriter(inputBuffer, 0);
18
-
19
- inputBufferWriter.writeVarInt(tx.ins.length);
20
- tx.ins.forEach(txIn => {
21
- inputBufferWriter.writeSlice(txIn.hash);
22
- inputBufferWriter.writeUInt32(txIn.index);
23
- inputBufferWriter.writeVarSlice(txIn.script);
24
- inputBufferWriter.writeUInt32(txIn.sequence);
25
- });
26
-
27
- return inputBuffer;
28
- }
29
-
30
- function isOutput(out: Output): boolean {
31
- return out.value !== undefined;
32
- }
33
-
34
- export function encodeRawOutput(tx: Transaction) {
35
- const outputSize = varuint.encodingLength(tx.outs.length) + tx.outs.reduce((sum, output) => {
36
- return sum + 8 + varSliceSize(output.script);
37
- }, 0);
38
-
39
- const outputBuffer = Buffer.allocUnsafe(outputSize);
40
- const outputBufferWriter = new BufferWriter(outputBuffer, 0);
41
-
42
- outputBufferWriter.writeVarInt(tx.outs.length);
43
- tx.outs.forEach(txOut => {
44
- if (isOutput(txOut)) {
45
- outputBufferWriter.writeUInt64(txOut.value);
46
- } else {
47
- outputBufferWriter.writeSlice((txOut as any).valueBuffer);
48
- }
49
-
50
- outputBufferWriter.writeVarSlice(txOut.script);
51
- });
52
-
53
- return outputBuffer;
54
- }
55
-
56
- function vectorSize(someVector: Buffer[]): number {
57
- const length = someVector.length;
58
-
59
- return (
60
- varuint.encodingLength(length) +
61
- someVector.reduce((sum, witness) => {
62
- return sum + varSliceSize(witness);
63
- }, 0)
64
- );
65
- }
66
-
67
- export function encodeRawWitness(tx: Transaction) {
68
- const witnessSize = tx.ins.reduce((sum, input) => {
69
- return sum + vectorSize(input.witness);
70
- }, 0);
71
-
72
- const witnessBuffer = Buffer.allocUnsafe(witnessSize);
73
- const witnessBufferWriter = new BufferWriter(witnessBuffer, 0);
74
-
75
- tx.ins.forEach(input => {
76
- witnessBufferWriter.writeVector(input.witness);
77
- });
78
-
79
- return witnessBuffer;
80
- }
81
-
82
- function chunkArray<T>(array: T[], chunkSize: number): T[][] {
83
- const chunkedArray: T[][] = [];
84
- let index = 0;
85
- while (index < array.length) {
86
- chunkedArray.push(array.slice(index, index + chunkSize));
87
- index += chunkSize;
88
- }
89
- return chunkedArray;
90
- }
91
-
92
- // https://github.com/Blockstream/electrs/blob/fd35014283c7d3a7a85c77b9fd647c9f09de12c9/src/util/electrum_merkle.rs#L86-L105
93
- function createMerkleBranchAndRoot(hashes: Buffer[], index: number): {
94
- merkle: Buffer[],
95
- root: Buffer,
96
- } {
97
- let merkle: Buffer[] = [];
98
- while (hashes.length > 1) {
99
- if (hashes.length % 2 != 0) {
100
- let last = hashes[hashes.length - 1];
101
- hashes.push(last);
102
- }
103
- if (index % 2 == 0) { index++ } else { index-- }
104
- merkle.push(hashes[index]);
105
- index = Math.floor(index / 2);
106
- hashes = chunkArray(hashes, 2).map(pair => hash256(Buffer.concat([pair[0], pair[1]])));
107
- }
108
- return {
109
- merkle,
110
- root: hashes[0],
111
- };
112
- }
113
-
114
- // used to construct merkle proofs from the raw block data, especially useful for
115
- // constructing a non-standard "witness proof" which is not currently supported by electrs
116
- export function getMerkleProof(block: Block, txHash: string, forWitness?: boolean) {
117
- const txIds = block.transactions!.map(tx => tx.getHash(forWitness));
118
- const pos = txIds.map(value => value.toString("hex")).indexOf(txHash);
119
-
120
- const merkleAndRoot = createMerkleBranchAndRoot(txIds, pos);
121
- return {
122
- pos: pos,
123
- // hashes are already little-endian
124
- proof: merkleAndRoot.merkle.map(value => value.toString("hex")).join(''),
125
- root: merkleAndRoot.root.toString("hex"),
126
- };
127
- }
@@ -1,18 +0,0 @@
1
- import { assert } from "chai";
2
- import { DefaultElectrsClient } from "../src/electrs";
3
-
4
- describe("Electrs Tests", () => {
5
- it("should serialize merkle proof", async () => {
6
- const client = new DefaultElectrsClient();
7
- const proof = await client.getMerkleProof("b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735");
8
-
9
- assert.equal(proof.merkle, "ace8423f874c95f5f9042d7cda6b9f0727251f3059ef827f373a56831cc621a371db6dfce8daed1d809275" +
10
- "e0862441b3cdfd314eceea5a79ee7aeec69cc70f614082c8b474ccf00906a1e61694fdf0b717790ac3bdf850b36afb8df107ac" +
11
- "a93b96e7dea43442a944a6ab4f8bed0d25d3d372a836a6042375bc57fee5c5425f67a3920a489b23f9133fc84d7987d990acc7" +
12
- "c2569a81b547a5f65385856d90100e54ec14dd40c23c3cf1e61a2a16a03aea0e85d236942ad538262528d6748d20dc6ca7c40d" +
13
- "75ba7b782bc3d1302633c6def1531573c6420b99840ecffc0125f8e0f12ec4aa1d74fd5ec8d9a57c154267cb6ff0276835592c" +
14
- "b8500d8c3c5650e84b83e73e9094de0c2bdaa4d661a3b1adacfae0f3c0f8007ab1b2be8dbf32f073068979a263152d6c234ad0" +
15
- "f4b70f697168502d62ead0c0194bcf77321a85a1e127afc4477dcc3c3636a7818601d9ff43f837b15ef74d387c688fc0a45b79" +
16
- "aec0b6");
17
- });
18
- });
@@ -1,25 +0,0 @@
1
- import { assert } from "chai";
2
- import { DefaultElectrsClient } from "../src/electrs";
3
- import { getBitcoinTxInfo, getBitcoinTxProof } from "../src/relay";
4
-
5
- describe("Relay Tests", () => {
6
- it("should get tx info", async () => {
7
- const client = new DefaultElectrsClient();
8
- const txId = "2ef69769cc0ee81141c79552de6b91f372ff886216dbfa84e5497a16b0173e79";
9
- const txInfo = await getBitcoinTxInfo(client, txId);
10
- assert.deepEqual(txInfo, {
11
- version: '01000000',
12
- inputVector: '01996cf4e2f0016a1f092aaaba653c7eae5dd4b6eef1f9a2a94c64f34b2fecbd85010000006a47304402206f99da49ce586528ed8981842df30b4a5a91195fd2d83e440d4193fc16a944ec022055cfdf63a2c90638821f1b5ff1fdf77526163ae057a0d0de30a6e1d3009e7a29012102811832eef7216470f489991f1d87e36d2890755d2bbf827eb1e71804491506afffffffff',
13
- outputVector: '0200e9a435000000001976a914fd7e6999cd7e7114383e014b7e612a88ab6be68f88ac804a5d05000000001976a9145c1addbd0e4e78479e71fdca0555d2d44b67378e88ac',
14
- locktime: '00000000'
15
- });
16
- });
17
-
18
- it("should get tx proof", async () => {
19
- const client = new DefaultElectrsClient();
20
- const txId = "2ef69769cc0ee81141c79552de6b91f372ff886216dbfa84e5497a16b0173e79";
21
- const txProof = await getBitcoinTxProof(client, txId, 2);
22
- assert.equal(txProof.txIndexInBlock, 1);
23
- assert.equal(Buffer.from(txProof.bitcoinHeaders, "hex").byteLength / 80, 2);
24
- });
25
- });
@@ -1,22 +0,0 @@
1
- import { assert } from "chai";
2
- import { MAINNET_ESPLORA_BASE_PATH } from "../src/electrs";
3
- import { Block } from "bitcoinjs-lib";
4
- import { getMerkleProof } from "../src/utils";
5
-
6
- describe("Utils Tests", () => {
7
- // NOTE: this is a bit flaky due to slow response times from electrs
8
- it("should construct witness merkle proof from block", async () => {
9
- const hash = "000000000000000000015712838394aeb93f5d45d0e5bec197382c08b375016e";
10
- const response = await fetch(`${MAINNET_ESPLORA_BASE_PATH}/block/${hash}/raw`);
11
- const blob = await response.blob()
12
- const buffer = Buffer.from(await blob.arrayBuffer());
13
- const block = Block.fromBuffer(buffer);
14
- const wTxId = "6b374690d8e2dbca4187f443cddd293536400d431f43a643b263ce59c4f9a3eb";
15
- const merkleProof = getMerkleProof(block, wTxId, true);
16
- assert.deepEqual(merkleProof, {
17
- pos: 407,
18
- proof: '6034ddf453f5dd20de449b29b1221dede67ccae56f00528e0767e2ab506db31c4d2946e88f7efa3e94bb17bbd10f3f44172b59c48f2eb6bd7f67a88d149373ee4082c8b474ccf00906a1e61694fdf0b717790ac3bdf850b36afb8df107aca93b7c3c4f91ddf49c7f74244336c5833377d40760ae09dd1fba83063ace480f94cca3920a489b23f9133fc84d7987d990acc7c2569a81b547a5f65385856d90100e84878b4f305a3909a9420293cdc741109864c9338ea326449a7a303b227f2b10490bc4343355e1a391f51c42918a894c2980012cca5ffd4b56a6702abd98497802de83f5889b2ad5bd157762a58505948f32f42b9fa886c93bf30fef6144a64666843a28ef13184f9e7ac3c34b5741f58c8895a0167f496e0157e7d0a97f4041f97b8df4d8aee81d20d0d062ed3ee0f9b0afb196bdf5373712883cacdfd8349b739c0e6e41d650d05727ea5faec197bfa563d19b0150fba718ba1981aea9ef90',
19
- root: '7cee5e99c8f0fc25fb115b7d7d00befca61f59a8544adaf3980f52132baf61ae'
20
- });
21
- }).timeout(5000);
22
- });
package/tsconfig.json DELETED
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "es2017",
5
- "sourceMap": true,
6
- "esModuleInterop": true,
7
- "composite": true,
8
- "resolveJsonModule": true,
9
- "declaration": true,
10
- "noImplicitAny": false,
11
- "removeComments": true,
12
- "noLib": false,
13
- "emitDecoratorMetadata": true,
14
- "experimentalDecorators": true,
15
- "rootDir": "./src",
16
- "outDir": "./dist"
17
- },
18
- "include": ["src/**/*"],
19
- "exclude": ["./node_modules/*"]
20
- }
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es5.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.full.d.ts","./src/electrs.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/assert.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/assert/strict.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/header.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/readable.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/file.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/fetch.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/formdata.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/connector.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/client.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/errors.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/dispatcher.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/global-dispatcher.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/global-origin.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/pool-stats.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/pool.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/handlers.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/balanced-pool.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/agent.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/mock-interceptor.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/mock-agent.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/mock-client.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/mock-pool.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/mock-errors.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/proxy-agent.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/api.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/cookies.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/patch.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/filereader.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/websocket.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/content-type.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/cache.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/interceptors.d.ts","./node_modules/.pnpm/undici-types@5.25.3/node_modules/undici-types/index.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/globals.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/async_hooks.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/buffer.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/child_process.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/cluster.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/console.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/constants.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/crypto.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/dgram.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/dns.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/dns/promises.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/domain.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/dom-events.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/events.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/fs.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/fs/promises.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/http.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/http2.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/https.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/inspector.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/module.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/net.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/os.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/path.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/perf_hooks.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/process.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/punycode.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/querystring.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/readline.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/readline/promises.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/repl.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/stream.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/stream/promises.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/stream/consumers.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/stream/web.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/string_decoder.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/test.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/timers.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/timers/promises.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/tls.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/trace_events.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/tty.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/url.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/util.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/v8.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/vm.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/wasi.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/worker_threads.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/zlib.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/globals.global.d.ts","./node_modules/.pnpm/@types+node@20.8.4/node_modules/@types/node/index.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/networks.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/address.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/crypto.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/types.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/embed.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2ms.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2pk.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2pkh.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2sh.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2wpkh.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2wsh.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/p2tr.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/payments/index.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/ops.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/script_number.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/script_signature.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/script.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/transaction.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/block.d.ts","./node_modules/.pnpm/bip174@2.1.1/node_modules/bip174/src/lib/interfaces.d.ts","./node_modules/.pnpm/bip174@2.1.1/node_modules/bip174/src/lib/psbt.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/psbt.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/ecc_lib.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/index.d.ts","./node_modules/.pnpm/varuint-bitcoin@1.1.2/node_modules/varuint-bitcoin/index.d.ts","./node_modules/.pnpm/bitcoinjs-lib@6.1.5/node_modules/bitcoinjs-lib/src/bufferutils.d.ts","./src/utils.ts","./src/relay.ts","./src/index.ts","./node_modules/.pnpm/@types+chai@4.3.7/node_modules/@types/chai/index.d.ts","./node_modules/@types/json5/index.d.ts","./node_modules/.pnpm/@types+mocha@10.0.2/node_modules/@types/mocha/index.d.ts","./node_modules/@types/strip-bom/index.d.ts","./node_modules/@types/strip-json-comments/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"994c234848afc14a2586b6565777f4c0b05dc479ede0a041bfd5becf6dceb586",{"version":"a5302eaeb9a4412ff03f96ad5eb52b6510b331067fa09c63664c537ecc759ce8","signature":"3daa3a9cb7229ee19f0ccf366c0c88c907a49b654d26b0dee1362c85ec386abd"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","adda9e3915c6bf15e360356a41d950881a51dbe44f9a6088155836b040820663","b4855526ac5a822d6e0005e4b62ee49c599bf89897e4109135283d660e60291c","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","80ad053918e96087d9da8d092ff9f90520c9fc199c8bfd9340266dd8f38f364e","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","d70119390aece1794bf4988f10ea750d13455f5286977d35027d43dd2e9841cf",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"62486c25ff70799e9faac5c6108820969617daeb6e65644c212d03cdb5902a3c","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","ad8848c289c0b633452e58179f46edccd14b5a0fe90ebce411f79ff040b803e0",{"version":"5d4ef3f46c7f9d62f7c964f9f9ccdd293be99fb3dcc66c983f2aea7430e3c7c6","affectsGlobalScope":true},"91f8b5abcdff8f9ecb9656b9852878718416fb7700b2c4fad8331e5b97c080bb","59d8f064f86a4a2be03b33c0efcc9e7a268ad27b22f82dce16899f3364f70ba8","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"f49fb15c4aa06b65b0dce4db4584bfd8a9f74644baef1511b404dc95be34af00","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d3f4c342fb62f348f25f54b473b0ab7371828cbf637134194fa9cdf04856f87b","692cce8a36696e9df80910c05ae3b34340c278bbba03701a9ae92ae038663824","035fd4564409153531cc683821b48048fd01982a8522c120b5a17f9a6320a229","8e30c31e1f95057c95fad8af9d7cfa916d09a9ae5f805ccd1ebd76c0158c5021","b86e99a2002acb78c3c5edfc219053cad18c2e0086d848d50086be8198e81c3b","a29a7b9ade7876d0f527b716a5bc5c7bc84554d155577020441f2d3c735589be","9cd42ff83837551961fa8788f14bd3498306fb2c1d35358f2b6bf3af05bf0890","5e51773d5624b8c871d8d140c88f944466338673fbc60ac4bf409eb60e6665cf","39b10cd95b70bbdc1cf8c832002618c3f81cd980438fe5e3694d99286ef90911","95244212208717085038a74378ea2a03e49c06a3a195b2826c01c978f14684c2","7362eeca79ce50eb72b2a0149e323f6d64daf4fbc8067592310859622c3dbcfe","8c0a305a7b10513d9d07bf739456bf9845bd4336027c85442b674a417facb57a","c91084ba90468037b6d266f3cae698aaa76c0864cf076aa099d981d847b74c2d","08c89f85121be91dd79dc42e1fdb0eef4336dd4f7c23710d05268accf1a65220","0f3fa7383d3f2ebed173ff59c102b4a68d10acdff5db4a009b73429ddaa15768","973d36af083ce019e3c38b99ca43cb6815b47082cf1e07215387df336192f447","617012176a8cb5be290ae89040aac88ec74321c2a8b984f01a7ba6eb9a2eddc2","111dae916025fd483a9be521111a10c3e7e9ed35eeb325ba34108433cc07aa19","fc2aced12725e81bbdb9e55a0efe1060cd4b6bbb6d1a5a23a09236a18c2d2323","7340d9ad1f3f55e7be3a85a151ef25d7a8c0205904519940c9dcea0f61cb3292","b6c3995be1adb84b6f81cbf9dfdecaa0da5cc71c5a61b5fc0e4a5a31765d8257","3da723823982206178406b7c2b8570152c6347a047fa7e59fa46011d10ac26b6","faba33b564a39dcb577490c3db303e692b745453fc50adb57860e8014e3247a2","72b83ee0bee9e2bec77a2a1666c6933da383075af254348e4c72e7e0b69e16dd","ad50fd05c6869671a429ce6581c052720d067f79d59a8eada7bc3a17e323728a","0c0d4c550d90c330a3129efed22ba8fda8f6151d4f2b2582edebac7582b5b74b","972606cd425b37bb428d665722abcffc6d5cadb250009dda9bd1cd5481874854",{"version":"003bb272dcf5780bd5abe7723f9cffcddbd992c83d8fa5ef144fd98465cdfb07","signature":"47b3aa4654392a4e9ca1e2cc348161f3892686c3d61a05b175cdfd1e54134edc"},{"version":"375780455a16cd7eed65d22c9af2929a0c0426275639b4d4b514ece2570f9c8f","signature":"6dbac004803036cb12dd2c2995ce12c8c4d32eb594936f51038a3b304ec448fb"},"8d6b167ef1929d215dd4d09868ad829e7b6aa4edb3fc6800a8b32da2a7cc9512",{"version":"268e85cc5d35666a8988dcc657aaa083e54cc92147a1919e01e8c394d271d423","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538",{"version":"c992af0bb279ea7d18c12df03c2001042cdd7bc165bb3d9a3561a3f3bcf4ef49","affectsGlobalScope":true},"4006c872e38a2c4e09c593bc0cdd32b7b4f5c4843910bea0def631c483fff6c5","ab6aa3a65d473871ee093e3b7b71ed0f9c69e07d1d4295f45c9efd91a771241d"],"root":[50,[163,165]],"options":{"composite":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitAny":false,"outDir":"./dist","removeComments":true,"rootDir":"./src","sourceMap":true,"target":4},"fileIdsList":[[129],[51,129],[86,129],[87,92,120,129],[88,99,100,107,117,128,129],[88,89,99,107,129],[90,129],[91,92,100,108,129],[92,117,125,129],[93,95,99,107,129],[94,129],[95,96,129],[99,129],[97,99,129],[86,99,129],[99,100,101,117,128,129],[99,100,101,114,117,120,129],[84,129,133],[95,99,102,107,117,128,129],[99,100,102,103,107,117,125,128,129],[102,104,117,125,128,129],[51,52,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],[99,105,129],[106,128,129,133],[95,99,107,117,129],[108,129],[109,129],[86,110,129],[111,127,129,133],[112,129],[113,129],[99,114,115,129],[114,116,129,131],[87,99,117,118,119,120,129],[87,117,119,129],[117,118,129],[120,129],[121,129],[86,117,129],[99,123,124,129],[123,124,129],[92,107,117,125,129],[126,129],[107,127,129],[87,102,113,128,129],[92,129],[117,129,130],[106,129,131],[129,132],[87,92,99,101,110,117,128,129,131,133],[117,129,134],[129,136],[129,136,156],[129,136,137],[129,136,154],[129,136,161],[129,140],[129,137,138,139,149,150,153,154,155,158,159],[129,149],[129,136,137,140,141,142,143,144,145,146,147,148],[129,136,137,154,156,157],[129,136,149,150,151,152],[61,65,128,129],[61,117,128,129],[56,129],[58,61,125,128,129],[107,125,129],[56,129,136],[58,61,107,128,129],[53,54,57,60,87,99,117,128,129],[53,59,129],[57,61,87,120,128,129,136],[87,129,136],[77,87,129,136],[55,56,129,136],[61,129],[55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,78,79,80,81,82,83,129],[61,68,69,129],[59,61,69,70,129],[60,129],[53,56,61,129],[61,65,69,70,129],[65,129],[59,61,64,128,129],[53,58,59,61,65,68,129],[87,117,129],[56,61,77,87,129,133,136],[50,129,163,164],[50,129,160,163],[129,139,154,160,162],[50],[154,160]],"referencedMap":[[166,1],[168,1],[51,2],[52,2],[86,3],[87,4],[88,5],[89,6],[90,7],[91,8],[92,9],[93,10],[94,11],[95,12],[96,12],[98,13],[97,14],[99,15],[100,16],[101,17],[85,18],[135,1],[102,19],[103,20],[104,21],[136,22],[105,23],[106,24],[107,25],[108,26],[109,27],[110,28],[111,29],[112,30],[113,31],[114,32],[115,32],[116,33],[117,34],[119,35],[118,36],[120,37],[121,38],[122,39],[123,40],[124,41],[125,42],[126,43],[127,44],[128,45],[129,46],[130,47],[131,48],[132,49],[133,50],[134,51],[156,52],[157,53],[138,54],[155,55],[162,56],[139,52],[159,57],[160,58],[137,1],[150,1],[141,59],[149,60],[142,59],[143,59],[144,59],[145,59],[148,59],[146,59],[147,59],[158,61],[153,62],[151,52],[152,52],[154,52],[140,52],[47,1],[48,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[49,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[1,1],[46,1],[11,1],[10,1],[68,63],[75,64],[67,63],[82,65],[59,66],[58,67],[81,52],[76,68],[79,69],[61,70],[60,71],[56,72],[55,73],[78,74],[57,75],[62,76],[63,1],[66,76],[53,1],[84,77],[83,76],[70,78],[71,79],[73,80],[69,81],[72,82],[77,52],[64,83],[65,84],[74,85],[54,86],[80,87],[161,52],[167,1],[169,1],[170,1],[50,1],[165,88],[164,89],[163,90]],"exportedModulesMap":[[166,1],[168,1],[51,2],[52,2],[86,3],[87,4],[88,5],[89,6],[90,7],[91,8],[92,9],[93,10],[94,11],[95,12],[96,12],[98,13],[97,14],[99,15],[100,16],[101,17],[85,18],[135,1],[102,19],[103,20],[104,21],[136,22],[105,23],[106,24],[107,25],[108,26],[109,27],[110,28],[111,29],[112,30],[113,31],[114,32],[115,32],[116,33],[117,34],[119,35],[118,36],[120,37],[121,38],[122,39],[123,40],[124,41],[125,42],[126,43],[127,44],[128,45],[129,46],[130,47],[131,48],[132,49],[133,50],[134,51],[156,52],[157,53],[138,54],[155,55],[162,56],[139,52],[159,57],[160,58],[137,1],[150,1],[141,59],[149,60],[142,59],[143,59],[144,59],[145,59],[148,59],[146,59],[147,59],[158,61],[153,62],[151,52],[152,52],[154,52],[140,52],[47,1],[48,1],[8,1],[9,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[22,1],[49,1],[26,1],[23,1],[24,1],[25,1],[27,1],[28,1],[29,1],[5,1],[30,1],[31,1],[32,1],[33,1],[6,1],[37,1],[34,1],[35,1],[36,1],[38,1],[7,1],[39,1],[44,1],[45,1],[40,1],[41,1],[42,1],[43,1],[1,1],[46,1],[11,1],[10,1],[68,63],[75,64],[67,63],[82,65],[59,66],[58,67],[81,52],[76,68],[79,69],[61,70],[60,71],[56,72],[55,73],[78,74],[57,75],[62,76],[63,1],[66,76],[53,1],[84,77],[83,76],[70,78],[71,79],[73,80],[69,81],[72,82],[77,52],[64,83],[65,84],[74,85],[54,86],[80,87],[161,52],[167,1],[169,1],[170,1],[165,88],[164,91],[163,92]],"semanticDiagnosticsPerFile":[166,168,51,52,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,85,135,102,103,104,136,105,106,107,108,109,110,111,112,113,114,115,116,117,119,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,156,157,138,155,162,139,159,160,137,150,141,149,142,143,144,145,148,146,147,158,153,151,152,154,140,47,48,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,22,49,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,1,46,11,10,68,75,67,82,59,58,81,76,79,61,60,56,55,78,57,62,63,66,53,84,83,70,71,73,69,72,77,64,65,74,54,80,161,167,169,170,50,165,164,163],"latestChangedDtsFile":"./dist/index.d.ts"},"version":"5.2.2"}