@gobob/bob-sdk 1.0.1 → 1.0.2

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.
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultElectrsClient = exports.REGTEST_ESPLORA_BASE_PATH = exports.TESTNET_ESPLORA_BASE_PATH = exports.MAINNET_ESPLORA_BASE_PATH = void 0;
4
+ exports.MAINNET_ESPLORA_BASE_PATH = "https://btc-mainnet.interlay.io";
5
+ exports.TESTNET_ESPLORA_BASE_PATH = "https://btc-testnet.interlay.io";
6
+ exports.REGTEST_ESPLORA_BASE_PATH = "http://localhost:3002";
7
+ function encodeElectrsMerkleProof(merkle) {
8
+ return merkle.map(item => Buffer.from(item, "hex").reverse().toString("hex")).join('');
9
+ }
10
+ class DefaultElectrsClient {
11
+ constructor(networkOrUrl = "mainnet") {
12
+ switch (networkOrUrl) {
13
+ case "mainnet":
14
+ this.basePath = exports.MAINNET_ESPLORA_BASE_PATH;
15
+ break;
16
+ case "testnet":
17
+ this.basePath = exports.TESTNET_ESPLORA_BASE_PATH;
18
+ break;
19
+ case "regtest":
20
+ this.basePath = exports.REGTEST_ESPLORA_BASE_PATH;
21
+ break;
22
+ default:
23
+ this.basePath = networkOrUrl;
24
+ }
25
+ }
26
+ async getBlockHash(height) {
27
+ return this.getText(`${this.basePath}/block-height/${height}`);
28
+ }
29
+ async getBlockHeader(hash) {
30
+ return this.getText(`${this.basePath}/block/${hash}/header`);
31
+ }
32
+ async getTransactionHex(txId) {
33
+ return this.getText(`${this.basePath}/tx/${txId}/hex`);
34
+ }
35
+ async getMerkleProof(txId) {
36
+ const response = await this.getJson(`${this.basePath}/tx/${txId}/merkle-proof`);
37
+ return {
38
+ blockHeight: response.block_height,
39
+ merkle: encodeElectrsMerkleProof(response.merkle),
40
+ pos: response.pos,
41
+ };
42
+ }
43
+ async getJson(url) {
44
+ const response = await fetch(url);
45
+ if (!response.ok) {
46
+ throw new Error(response.statusText);
47
+ }
48
+ return await response.json();
49
+ }
50
+ async getText(url) {
51
+ const response = await fetch(url);
52
+ if (!response.ok) {
53
+ throw new Error(response.statusText);
54
+ }
55
+ return await response.text();
56
+ }
57
+ }
58
+ exports.DefaultElectrsClient = DefaultElectrsClient;
59
+ //# sourceMappingURL=electrs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electrs.js","sourceRoot":"","sources":["../src/electrs.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG,iCAAiC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,iCAAiC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,uBAAuB,CAAC;AA+BjE,SAAS,wBAAwB,CAAC,MAAgB;IAE9C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAa,oBAAoB;IAG7B,YAAY,eAAuB,SAAS;QACxC,QAAQ,YAAY,EAAE;YAClB,KAAK,SAAS;gBACV,IAAI,CAAC,QAAQ,GAAG,iCAAyB,CAAC;gBAC1C,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,QAAQ,GAAG,iCAAyB,CAAC;gBAC1C,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,CAAC,QAAQ,GAAG,iCAAyB,CAAC;gBAC1C,MAAM;YACV;gBACI,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;SACpC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,IAAI,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAIhC,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,eAAe,CAAC,CAAC;QAC/C,OAAO;YACH,WAAW,EAAE,QAAQ,CAAC,YAAY;YAClC,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,GAAG,EAAE,QAAQ,CAAC,GAAG;SACpB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,GAAW;QACxB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAgB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;CACJ;AA3DD,oDA2DC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./electrs"), exports);
18
+ __exportStar(require("./relay"), exports);
19
+ __exportStar(require("./utils"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
package/dist/relay.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBitcoinTxProof = exports.getBitcoinTxInfo = void 0;
4
+ const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
+ const utils_1 = require("./utils");
6
+ async function getBitcoinTxInfo(electrsClient, txId) {
7
+ const txHex = await electrsClient.getTransactionHex(txId);
8
+ const tx = bitcoinjs_lib_1.Transaction.fromHex(txHex);
9
+ const versionBuffer = Buffer.allocUnsafe(4);
10
+ versionBuffer.writeInt32LE(tx.version);
11
+ const locktimeBuffer = Buffer.allocUnsafe(4);
12
+ locktimeBuffer.writeInt32LE(tx.locktime);
13
+ return {
14
+ version: versionBuffer.toString("hex"),
15
+ inputVector: (0, utils_1.encodeRawInput)(tx).toString("hex"),
16
+ outputVector: (0, utils_1.encodeRawOutput)(tx).toString("hex"),
17
+ locktime: locktimeBuffer.toString("hex")
18
+ };
19
+ }
20
+ exports.getBitcoinTxInfo = getBitcoinTxInfo;
21
+ async function getBitcoinTxProof(electrsClient, txId, txProofDifficultyFactor) {
22
+ const merkleProof = await electrsClient.getMerkleProof(txId);
23
+ const range = (start, end) => Array.from({ length: end - start }, (_element, index) => index + start);
24
+ const blockHeights = range(merkleProof.blockHeight, merkleProof.blockHeight + txProofDifficultyFactor);
25
+ const bitcoinHeaders = await Promise.all(blockHeights.map(async (height) => {
26
+ const hash = await electrsClient.getBlockHash(height);
27
+ return electrsClient.getBlockHeader(hash);
28
+ }));
29
+ return {
30
+ merkleProof: merkleProof.merkle,
31
+ txIndexInBlock: merkleProof.pos,
32
+ bitcoinHeaders: bitcoinHeaders.join(''),
33
+ };
34
+ }
35
+ exports.getBitcoinTxProof = getBitcoinTxProof;
36
+ //# sourceMappingURL=relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAE5C,mCAA0D;AASnD,KAAK,UAAU,gBAAgB,CAClC,aAA4B,EAC5B,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,2BAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7C,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO;QACH,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtC,WAAW,EAAE,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC/C,YAAY,EAAE,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjD,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC3C,CAAA;AACL,CAAC;AAnBD,4CAmBC;AAQM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,IAAY,EACZ,uBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACtH,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,WAAW,GAAG,uBAAuB,CAAC,CAAC;IAEvG,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QACrE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO;QACH,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,cAAc,EAAE,WAAW,CAAC,GAAG;QAC/B,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1C,CAAA;AACL,CAAC;AApBD,8CAoBC"}
package/dist/utils.js ADDED
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMerkleProof = exports.encodeRawWitness = exports.encodeRawOutput = exports.encodeRawInput = void 0;
4
+ const bufferutils_1 = require("bitcoinjs-lib/src/bufferutils");
5
+ const crypto_1 = require("bitcoinjs-lib/src/crypto");
6
+ function varSliceSize(someScript) {
7
+ const length = someScript.length;
8
+ return bufferutils_1.varuint.encodingLength(length) + length;
9
+ }
10
+ function encodeRawInput(tx) {
11
+ const inputSize = bufferutils_1.varuint.encodingLength(tx.ins.length) + tx.ins.reduce((sum, input) => {
12
+ return sum + 40 + varSliceSize(input.script);
13
+ }, 0);
14
+ const inputBuffer = Buffer.allocUnsafe(inputSize);
15
+ const inputBufferWriter = new bufferutils_1.BufferWriter(inputBuffer, 0);
16
+ inputBufferWriter.writeVarInt(tx.ins.length);
17
+ tx.ins.forEach(txIn => {
18
+ inputBufferWriter.writeSlice(txIn.hash);
19
+ inputBufferWriter.writeUInt32(txIn.index);
20
+ inputBufferWriter.writeVarSlice(txIn.script);
21
+ inputBufferWriter.writeUInt32(txIn.sequence);
22
+ });
23
+ return inputBuffer;
24
+ }
25
+ exports.encodeRawInput = encodeRawInput;
26
+ function isOutput(out) {
27
+ return out.value !== undefined;
28
+ }
29
+ function encodeRawOutput(tx) {
30
+ const outputSize = bufferutils_1.varuint.encodingLength(tx.outs.length) + tx.outs.reduce((sum, output) => {
31
+ return sum + 8 + varSliceSize(output.script);
32
+ }, 0);
33
+ const outputBuffer = Buffer.allocUnsafe(outputSize);
34
+ const outputBufferWriter = new bufferutils_1.BufferWriter(outputBuffer, 0);
35
+ outputBufferWriter.writeVarInt(tx.outs.length);
36
+ tx.outs.forEach(txOut => {
37
+ if (isOutput(txOut)) {
38
+ outputBufferWriter.writeUInt64(txOut.value);
39
+ }
40
+ else {
41
+ outputBufferWriter.writeSlice(txOut.valueBuffer);
42
+ }
43
+ outputBufferWriter.writeVarSlice(txOut.script);
44
+ });
45
+ return outputBuffer;
46
+ }
47
+ exports.encodeRawOutput = encodeRawOutput;
48
+ function vectorSize(someVector) {
49
+ const length = someVector.length;
50
+ return (bufferutils_1.varuint.encodingLength(length) +
51
+ someVector.reduce((sum, witness) => {
52
+ return sum + varSliceSize(witness);
53
+ }, 0));
54
+ }
55
+ function encodeRawWitness(tx) {
56
+ const witnessSize = tx.ins.reduce((sum, input) => {
57
+ return sum + vectorSize(input.witness);
58
+ }, 0);
59
+ const witnessBuffer = Buffer.allocUnsafe(witnessSize);
60
+ const witnessBufferWriter = new bufferutils_1.BufferWriter(witnessBuffer, 0);
61
+ tx.ins.forEach(input => {
62
+ witnessBufferWriter.writeVector(input.witness);
63
+ });
64
+ return witnessBuffer;
65
+ }
66
+ exports.encodeRawWitness = encodeRawWitness;
67
+ function chunkArray(array, chunkSize) {
68
+ const chunkedArray = [];
69
+ let index = 0;
70
+ while (index < array.length) {
71
+ chunkedArray.push(array.slice(index, index + chunkSize));
72
+ index += chunkSize;
73
+ }
74
+ return chunkedArray;
75
+ }
76
+ function createMerkleBranchAndRoot(hashes, index) {
77
+ let merkle = [];
78
+ while (hashes.length > 1) {
79
+ if (hashes.length % 2 != 0) {
80
+ let last = hashes[hashes.length - 1];
81
+ hashes.push(last);
82
+ }
83
+ if (index % 2 == 0) {
84
+ index++;
85
+ }
86
+ else {
87
+ index--;
88
+ }
89
+ merkle.push(hashes[index]);
90
+ index = Math.floor(index / 2);
91
+ hashes = chunkArray(hashes, 2).map(pair => (0, crypto_1.hash256)(Buffer.concat([pair[0], pair[1]])));
92
+ }
93
+ return {
94
+ merkle,
95
+ root: hashes[0],
96
+ };
97
+ }
98
+ function getMerkleProof(block, txHash, forWitness) {
99
+ const txIds = block.transactions.map(tx => tx.getHash(forWitness));
100
+ const pos = txIds.map(value => value.toString("hex")).indexOf(txHash);
101
+ const merkleAndRoot = createMerkleBranchAndRoot(txIds, pos);
102
+ return {
103
+ pos: pos,
104
+ proof: merkleAndRoot.merkle.map(value => value.toString("hex")).join(''),
105
+ root: merkleAndRoot.root.toString("hex"),
106
+ };
107
+ }
108
+ exports.getMerkleProof = getMerkleProof;
109
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -8,7 +8,12 @@
8
8
  "build": "tsc -p tsconfig.json"
9
9
  },
10
10
  "files": [
11
- "dist"
11
+ "dist/",
12
+ "!**/*.spec.*",
13
+ "!**/*.json",
14
+ "CHANGELOG.md",
15
+ "LICENSE",
16
+ "README.md"
12
17
  ],
13
18
  "devDependencies": {
14
19
  "@types/chai": "^4.3.6",