@gobob/bob-sdk 1.1.0 → 1.1.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/dist/electrs.d.ts CHANGED
@@ -6,19 +6,33 @@ export interface MerkleProof {
6
6
  merkle: string;
7
7
  pos: number;
8
8
  }
9
+ export interface UTXO {
10
+ txid: string;
11
+ vout: number;
12
+ value: number;
13
+ confirmed: boolean;
14
+ height?: number;
15
+ }
9
16
  export interface ElectrsClient {
10
17
  getBlockHash(height: number): Promise<string>;
11
18
  getBlockHeader(hash: string): Promise<string>;
12
19
  getTransactionHex(txId: string): Promise<string>;
13
20
  getMerkleProof(txId: string): Promise<MerkleProof>;
21
+ getFeeEstimate(confirmationTarget: number): Promise<number>;
22
+ getAddressUtxos(address: string): Promise<Array<UTXO>>;
23
+ broadcastTx(txHex: string): Promise<string>;
14
24
  }
15
25
  export declare class DefaultElectrsClient implements ElectrsClient {
16
26
  private basePath;
17
27
  constructor(networkOrUrl?: string);
18
28
  getBlockHash(height: number): Promise<string>;
19
29
  getBlockHeader(hash: string): Promise<string>;
30
+ getBlockHeaderAt(height: number): Promise<string>;
20
31
  getTransactionHex(txId: string): Promise<string>;
21
32
  getMerkleProof(txId: string): Promise<MerkleProof>;
33
+ getFeeEstimate(confirmationTarget: number): Promise<number>;
34
+ getAddressUtxos(address: string, confirmed?: boolean): Promise<Array<UTXO>>;
35
+ broadcastTx(txHex: string): Promise<string>;
22
36
  getJson<T>(url: string): Promise<T>;
23
37
  getText(url: string): Promise<string>;
24
38
  }
package/dist/electrs.js CHANGED
@@ -29,6 +29,10 @@ class DefaultElectrsClient {
29
29
  async getBlockHeader(hash) {
30
30
  return this.getText(`${this.basePath}/block/${hash}/header`);
31
31
  }
32
+ async getBlockHeaderAt(height) {
33
+ const blockHash = await this.getBlockHash(height);
34
+ return await this.getBlockHeader(blockHash);
35
+ }
32
36
  async getTransactionHex(txId) {
33
37
  return this.getText(`${this.basePath}/tx/${txId}/hex`);
34
38
  }
@@ -40,6 +44,31 @@ class DefaultElectrsClient {
40
44
  pos: response.pos,
41
45
  };
42
46
  }
47
+ async getFeeEstimate(confirmationTarget) {
48
+ const response = await this.getJson(`${this.basePath}/fee-estimates`);
49
+ return response[confirmationTarget];
50
+ }
51
+ async getAddressUtxos(address, confirmed) {
52
+ const response = await this.getJson(`${this.basePath}/address/${address}/utxo`);
53
+ return response
54
+ .filter(utxo => (typeof confirmed !== "undefined") ? confirmed === utxo.status.confirmed : true)
55
+ .map(utxo => {
56
+ return {
57
+ txid: utxo.txid,
58
+ vout: utxo.vout,
59
+ value: utxo.value,
60
+ confirmed: utxo.status.confirmed,
61
+ height: utxo.status.block_height
62
+ };
63
+ });
64
+ }
65
+ async broadcastTx(txHex) {
66
+ const res = await fetch(`${this.basePath}/tx`, {
67
+ method: 'POST',
68
+ body: txHex
69
+ });
70
+ return await res.text();
71
+ }
43
72
  async getJson(url) {
44
73
  const response = await fetch(url);
45
74
  if (!response.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"electrs.js","sourceRoot":"","sources":["../src/electrs.ts"],"names":[],"mappings":";;;AAIa,QAAA,yBAAyB,GAAG,+BAA+B,CAAC;AAK5D,QAAA,yBAAyB,GAAG,+BAA+B,CAAC;AAK5D,QAAA,yBAAyB,GAAG,uBAAuB,CAAC;AA2GjE,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;AAOD,MAAa,oBAAoB;IAmB7B,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;IAMD,KAAK,CAAC,YAAY,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,iBAAiB,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAMD,KAAK,CAAC,cAAc,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,UAAU,IAAI,SAAS,CAAC,CAAC;IACjE,CAAC;IAMD,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,OAAO,IAAI,MAAM,CAAC,CAAC;IAC3D,CAAC;IAMD,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;IAMD,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;IAMD,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;AAnGD,oDAmGC"}
1
+ {"version":3,"file":"electrs.js","sourceRoot":"","sources":["../src/electrs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ElectrsClient } from "./electrs";
2
+ import { OrdinalsClient } from "./ordinal-api";
3
+ export declare function getInscriptionIds(electrsClient: ElectrsClient, ordinalsClient: OrdinalsClient, bitcoinAddress: string): Promise<string[]>;
@@ -0,0 +1,66 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getInscriptionIds = void 0;
27
+ const inscription_1 = require("./inscription");
28
+ const ordinal_api_1 = require("./ordinal-api");
29
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
30
+ async function getInscriptionIds(electrsClient, ordinalsClient, bitcoinAddress) {
31
+ const utxos = await electrsClient.getAddressUtxos(bitcoinAddress);
32
+ const inscriptionIds = await Promise.all(utxos.sort((a, b) => {
33
+ const heightA = a.height || Number.MAX_SAFE_INTEGER;
34
+ const heightB = b.height || Number.MAX_SAFE_INTEGER;
35
+ return heightA - heightB;
36
+ }).map(utxo => getInscriptionIdsForUtxo(electrsClient, ordinalsClient, utxo)));
37
+ return inscriptionIds.flat();
38
+ }
39
+ exports.getInscriptionIds = getInscriptionIds;
40
+ async function getInscriptionIdsForUtxo(electrsClient, ordinalsClient, utxo) {
41
+ if (utxo.confirmed) {
42
+ const outputJson = await ordinalsClient.getInscriptionsFromOutPoint(utxo);
43
+ return outputJson.inscriptions;
44
+ }
45
+ const txHex = await electrsClient.getTransactionHex(utxo.txid);
46
+ const tx = bitcoin.Transaction.fromHex(txHex);
47
+ if (utxo.vout == 0) {
48
+ const parentInscriptions = await Promise.all(tx.ins.map(async (txInput) => {
49
+ const txid = txInput.hash.reverse().toString("hex");
50
+ const outputJson = await ordinalsClient.getInscriptionsFromOutPoint({ txid, vout: txInput.index });
51
+ return outputJson.inscriptions;
52
+ }));
53
+ const inscriptionIds = parentInscriptions.flat();
54
+ if (inscriptionIds.length > 0) {
55
+ return inscriptionIds;
56
+ }
57
+ }
58
+ const inscriptions = (0, inscription_1.parseInscriptions)(tx);
59
+ if (utxo.vout != 0) {
60
+ return [];
61
+ }
62
+ else {
63
+ return inscriptions.map((_, index) => ordinal_api_1.InscriptionId.toString({ txid: utxo.txid, index }));
64
+ }
65
+ }
66
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAkD;AAClD,+CAA8D;AAC9D,uDAAyC;AAGlC,KAAK,UAAU,iBAAiB,CAAC,aAA4B,EAAE,cAA8B,EAAE,cAAsB;IACxH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAEhB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACpD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAEpD,OAAO,OAAO,GAAG,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,CAChF,CAAC;IACF,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAZD,8CAYC;AAGD,KAAK,UAAU,wBAAwB,CAAC,aAA4B,EAAE,cAA8B,EAAE,IAAU;IAC5G,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,UAAU,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAI9C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAKjB,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;YACpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACnG,OAAO,UAAU,CAAC,YAAY,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC;QACJ,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QAC1B,CAAC;IACL,CAAC;IAGD,MAAM,YAAY,GAAG,IAAA,+BAAiB,EAAC,EAAE,CAAC,CAAC;IAE3C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QAEJ,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,2BAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;AACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from "./electrs";
2
2
  export * from "./relay";
3
3
  export * from "./utils";
4
+ export * from "./ordinals";
5
+ export * from "./helpers";
package/dist/index.js CHANGED
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./electrs"), exports);
18
18
  __exportStar(require("./relay"), exports);
19
19
  __exportStar(require("./utils"), exports);
20
+ __exportStar(require("./ordinals"), exports);
21
+ __exportStar(require("./helpers"), exports);
20
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import * as bitcoin from "bitcoinjs-lib";
3
+ import { ElectrsClient } from "./electrs";
4
+ export declare const PROTOCOL_ID: Buffer;
5
+ interface Tags {
6
+ [key: number]: Buffer | null;
7
+ }
8
+ interface Inscription {
9
+ tags: Tags;
10
+ body: Buffer[];
11
+ }
12
+ export declare function getContentType(inscription: Inscription): string | null;
13
+ export declare function getContentEncoding(inscription: Inscription): string | null;
14
+ export declare function parseInscriptions(tx: bitcoin.Transaction): Inscription[];
15
+ export declare function getTxInscriptions(electrsClient: ElectrsClient, txid: string): Promise<Inscription[]>;
16
+ export declare function getInscriptionFromId(electrsClient: ElectrsClient, inscriptionId: string): Promise<Inscription>;
17
+ export {};
@@ -0,0 +1,123 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getInscriptionFromId = exports.getTxInscriptions = exports.parseInscriptions = exports.getContentEncoding = exports.getContentType = exports.PROTOCOL_ID = void 0;
27
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
28
+ const ordinal_api_1 = require("./ordinal-api");
29
+ const TAPROOT_ANNEX_PREFIX = 0x50;
30
+ exports.PROTOCOL_ID = Buffer.from("6f7264", "hex");
31
+ const CONTENT_TYPE_TAG = bitcoin.opcodes.OP_1;
32
+ const CONTENT_ENCODING_TAG = bitcoin.opcodes.OP_9;
33
+ function getTapscript(witness) {
34
+ const len = witness.length;
35
+ const last = witness[len - 1];
36
+ if (typeof last === 'undefined') {
37
+ return null;
38
+ }
39
+ let scriptPosFromLast = 2;
40
+ if (len >= 2 && last[0] == TAPROOT_ANNEX_PREFIX) {
41
+ scriptPosFromLast = 3;
42
+ }
43
+ if (typeof witness[len - scriptPosFromLast] === 'undefined') {
44
+ return null;
45
+ }
46
+ return bitcoin.script.decompile(witness[len - scriptPosFromLast]);
47
+ }
48
+ ;
49
+ function getContentType(inscription) {
50
+ const data = inscription.tags[CONTENT_TYPE_TAG];
51
+ if (Buffer.isBuffer(data)) {
52
+ return data.toString("utf-8");
53
+ }
54
+ return null;
55
+ }
56
+ exports.getContentType = getContentType;
57
+ function getContentEncoding(inscription) {
58
+ const data = inscription.tags[CONTENT_ENCODING_TAG];
59
+ if (Buffer.isBuffer(data)) {
60
+ return data.toString("utf-8");
61
+ }
62
+ return null;
63
+ }
64
+ exports.getContentEncoding = getContentEncoding;
65
+ function parseInscriptions(tx) {
66
+ let inscriptions = [];
67
+ for (const txInput of tx.ins) {
68
+ const tapscript = getTapscript(txInput.witness);
69
+ if (tapscript == null) {
70
+ continue;
71
+ }
72
+ const chunks = tapscript.values();
73
+ for (let chunk = chunks.next(); !chunk.done; chunk = chunks.next()) {
74
+ if (chunk.value != bitcoin.opcodes.OP_FALSE) {
75
+ continue;
76
+ }
77
+ if (chunks.next().value != bitcoin.opcodes.OP_IF) {
78
+ continue;
79
+ }
80
+ const data = chunks.next().value;
81
+ if (!Buffer.isBuffer(data) && !data.equals(exports.PROTOCOL_ID)) {
82
+ continue;
83
+ }
84
+ let tags = {};
85
+ let body = [];
86
+ let isBody = false;
87
+ for (let chunk = chunks.next(); !chunk.done; chunk = chunks.next()) {
88
+ if (chunk.value == bitcoin.opcodes.OP_ENDIF) {
89
+ inscriptions.push({ tags, body });
90
+ break;
91
+ }
92
+ else if (chunk.value == bitcoin.opcodes.OP_0) {
93
+ isBody = true;
94
+ continue;
95
+ }
96
+ if (!isBody) {
97
+ const data = chunks.next().value;
98
+ if (typeof chunk.value == 'number' && Buffer.isBuffer(data)) {
99
+ tags[chunk.value] = data;
100
+ }
101
+ }
102
+ else if (Buffer.isBuffer(chunk.value)) {
103
+ body.push(chunk.value);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ return inscriptions;
109
+ }
110
+ exports.parseInscriptions = parseInscriptions;
111
+ async function getTxInscriptions(electrsClient, txid) {
112
+ const txHex = await electrsClient.getTransactionHex(txid);
113
+ const tx = bitcoin.Transaction.fromHex(txHex);
114
+ return parseInscriptions(tx);
115
+ }
116
+ exports.getTxInscriptions = getTxInscriptions;
117
+ async function getInscriptionFromId(electrsClient, inscriptionId) {
118
+ const { txid, index } = ordinal_api_1.InscriptionId.fromString(inscriptionId);
119
+ const inscriptions = await getTxInscriptions(electrsClient, txid);
120
+ return inscriptions[index];
121
+ }
122
+ exports.getInscriptionFromId = getInscriptionFromId;
123
+ //# sourceMappingURL=inscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ export declare const REGTEST_ORD_BASE_PATH = "http://0.0.0.0:3003";
2
+ export declare const MAINNET_ORD_BASE_PATH = "https://ordinals-mainnet.gobob.xyz";
3
+ export declare const TESTNET_ORD_BASE_PATH = "https://ordinals-testnet.gobob.xyz";
4
+ export type InscriptionId = {
5
+ txid: string;
6
+ index: number;
7
+ };
8
+ export declare namespace InscriptionId {
9
+ function toString(id: InscriptionId): string;
10
+ function fromString(id: string): InscriptionId;
11
+ }
12
+ export type OutPoint = {
13
+ txid: string;
14
+ vout: number;
15
+ };
16
+ export declare namespace OutPoint {
17
+ function toString(id: OutPoint): string;
18
+ function fromString(id: string): OutPoint;
19
+ }
20
+ export type SatPoint = {
21
+ outpoint: OutPoint;
22
+ offset: number;
23
+ };
24
+ export declare namespace SatPoint {
25
+ function toString(id: SatPoint): string;
26
+ function fromString(id: string): SatPoint;
27
+ }
28
+ export interface InscriptionsJson<InscriptionId> {
29
+ inscriptions: InscriptionId[];
30
+ prev: number | null;
31
+ next: number | null;
32
+ lowest: number | null;
33
+ highest: number | null;
34
+ }
35
+ export interface OutputJson {
36
+ value: number;
37
+ script_pubkey: string;
38
+ address: string | null;
39
+ transaction: string;
40
+ sat_ranges: string | null;
41
+ inscriptions: string[];
42
+ runes: Record<string, number>;
43
+ }
44
+ export interface SatJson<InscriptionId> {
45
+ number: number;
46
+ decimal: string;
47
+ degree: string;
48
+ name: string;
49
+ block: number;
50
+ cycle: number;
51
+ epoch: number;
52
+ period: number;
53
+ offset: number;
54
+ rarity: string;
55
+ percentile: string;
56
+ satpoint: string | null;
57
+ timestamp: number;
58
+ inscriptions: InscriptionId[];
59
+ }
60
+ export interface InscriptionJson<InscriptionId, SatPoint> {
61
+ address: string | null;
62
+ children: InscriptionId[];
63
+ content_length: number | null;
64
+ content_type: string | null;
65
+ genesis_fee: number;
66
+ genesis_height: number;
67
+ inscription_id: InscriptionId;
68
+ inscription_number: number;
69
+ next: InscriptionId | null;
70
+ output_value: number | null;
71
+ parent: InscriptionId | null;
72
+ previous: InscriptionId | null;
73
+ rune: string | null;
74
+ sat: string | null;
75
+ satpoint: SatPoint;
76
+ timestamp: number;
77
+ }
78
+ export interface OrdinalsClient {
79
+ getInscriptionFromId(id: InscriptionId): Promise<InscriptionJson<InscriptionId, SatPoint>>;
80
+ getInscriptions(): Promise<InscriptionsJson<InscriptionId>>;
81
+ getInscriptionsFromBlock(height: number): Promise<InscriptionsJson<InscriptionId>>;
82
+ getInscriptionsFromOutPoint(outPoint: OutPoint): Promise<OutputJson>;
83
+ getInscriptionsFromSat(sat: number): Promise<SatJson<InscriptionId>>;
84
+ getInscriptionsFromStartBlock(startHeight: number): Promise<InscriptionsJson<InscriptionId>>;
85
+ }
86
+ export declare class DefaultOrdinalsClient implements OrdinalsClient {
87
+ private basePath;
88
+ constructor(networkOrUrl?: string);
89
+ getInscriptionFromId(id: InscriptionId): Promise<InscriptionJson<InscriptionId, SatPoint>>;
90
+ getInscriptions(): Promise<InscriptionsJson<InscriptionId>>;
91
+ getInscriptionsFromBlock(height: number): Promise<InscriptionsJson<InscriptionId>>;
92
+ getInscriptionsFromOutPoint(outPoint: OutPoint): Promise<OutputJson>;
93
+ getInscriptionsFromSat(sat: number): Promise<SatJson<InscriptionId>>;
94
+ getInscriptionsFromStartBlock(startHeight: number): Promise<InscriptionsJson<InscriptionId>>;
95
+ getJson<T>(url: string): Promise<T>;
96
+ parseInscriptionsJson(inscriptionsJson: InscriptionsJson<string>): InscriptionsJson<InscriptionId>;
97
+ }
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultOrdinalsClient = exports.SatPoint = exports.OutPoint = exports.InscriptionId = exports.TESTNET_ORD_BASE_PATH = exports.MAINNET_ORD_BASE_PATH = exports.REGTEST_ORD_BASE_PATH = void 0;
4
+ exports.REGTEST_ORD_BASE_PATH = "http://0.0.0.0:3003";
5
+ exports.MAINNET_ORD_BASE_PATH = "https://ordinals-mainnet.gobob.xyz";
6
+ exports.TESTNET_ORD_BASE_PATH = "https://ordinals-testnet.gobob.xyz";
7
+ var InscriptionId;
8
+ (function (InscriptionId) {
9
+ function toString(id) {
10
+ return `${id.txid}i${id.index}`;
11
+ }
12
+ InscriptionId.toString = toString;
13
+ function fromString(id) {
14
+ const [txid, index] = id.split("i");
15
+ return {
16
+ txid,
17
+ index: parseInt(index, 10),
18
+ };
19
+ }
20
+ InscriptionId.fromString = fromString;
21
+ })(InscriptionId || (exports.InscriptionId = InscriptionId = {}));
22
+ var OutPoint;
23
+ (function (OutPoint) {
24
+ function toString(id) {
25
+ return `${id.txid}:${id.vout}`;
26
+ }
27
+ OutPoint.toString = toString;
28
+ function fromString(id) {
29
+ const [txid, vout] = id.split(":");
30
+ return {
31
+ txid,
32
+ vout: parseInt(vout, 10),
33
+ };
34
+ }
35
+ OutPoint.fromString = fromString;
36
+ })(OutPoint || (exports.OutPoint = OutPoint = {}));
37
+ var SatPoint;
38
+ (function (SatPoint) {
39
+ function toString(id) {
40
+ return `${OutPoint.toString(id.outpoint)}:${id.offset}`;
41
+ }
42
+ SatPoint.toString = toString;
43
+ function fromString(id) {
44
+ const [txid, vout, offset] = id.split(":");
45
+ return {
46
+ outpoint: {
47
+ txid,
48
+ vout: parseInt(vout, 10),
49
+ },
50
+ offset: parseInt(offset, 10),
51
+ };
52
+ }
53
+ SatPoint.fromString = fromString;
54
+ })(SatPoint || (exports.SatPoint = SatPoint = {}));
55
+ class DefaultOrdinalsClient {
56
+ constructor(networkOrUrl = "mainnet") {
57
+ switch (networkOrUrl) {
58
+ case "mainnet":
59
+ this.basePath = exports.MAINNET_ORD_BASE_PATH;
60
+ break;
61
+ case "testnet":
62
+ this.basePath = exports.TESTNET_ORD_BASE_PATH;
63
+ break;
64
+ case "regtest":
65
+ this.basePath = exports.REGTEST_ORD_BASE_PATH;
66
+ break;
67
+ default:
68
+ this.basePath = networkOrUrl;
69
+ }
70
+ }
71
+ async getInscriptionFromId(id) {
72
+ const inscriptionJson = await this.getJson(`${this.basePath}/inscription/${InscriptionId.toString(id)}`);
73
+ return Object.assign(Object.assign({}, inscriptionJson), { children: inscriptionJson.children.map(InscriptionId.fromString), inscription_id: InscriptionId.fromString(inscriptionJson.inscription_id), next: (inscriptionJson.next != null) ? InscriptionId.fromString(inscriptionJson.next) : null, parent: (inscriptionJson.parent != null) ? InscriptionId.fromString(inscriptionJson.parent) : null, previous: (inscriptionJson.previous != null) ? InscriptionId.fromString(inscriptionJson.previous) : null, satpoint: SatPoint.fromString(inscriptionJson.satpoint) });
74
+ }
75
+ async getInscriptions() {
76
+ const inscriptionsJson = await this.getJson(`${this.basePath}/inscriptions`);
77
+ return this.parseInscriptionsJson(inscriptionsJson);
78
+ }
79
+ async getInscriptionsFromBlock(height) {
80
+ const inscriptionsJson = await this.getJson(`${this.basePath}/inscriptions/block/${height}`);
81
+ return this.parseInscriptionsJson(inscriptionsJson);
82
+ }
83
+ async getInscriptionsFromOutPoint(outPoint) {
84
+ return await this.getJson(`${this.basePath}/output/${OutPoint.toString(outPoint)}`);
85
+ }
86
+ async getInscriptionsFromSat(sat) {
87
+ const satJson = await this.getJson(`${this.basePath}/sat/${sat}`);
88
+ return Object.assign(Object.assign({}, satJson), { inscriptions: satJson.inscriptions.map(id => InscriptionId.fromString(id)) });
89
+ }
90
+ async getInscriptionsFromStartBlock(startHeight) {
91
+ const inscriptionsJson = await this.getJson(`${this.basePath}/inscriptions/${startHeight}`);
92
+ return this.parseInscriptionsJson(inscriptionsJson);
93
+ }
94
+ async getJson(url) {
95
+ const response = await fetch(url, {
96
+ headers: {
97
+ 'Accept': 'application/json',
98
+ },
99
+ });
100
+ if (!response.ok) {
101
+ throw new Error(response.statusText);
102
+ }
103
+ return await response.json();
104
+ }
105
+ parseInscriptionsJson(inscriptionsJson) {
106
+ const ids = inscriptionsJson.inscriptions.map(id => InscriptionId.fromString(id));
107
+ return Object.assign(Object.assign({}, inscriptionsJson), { inscriptions: ids });
108
+ }
109
+ }
110
+ exports.DefaultOrdinalsClient = DefaultOrdinalsClient;
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinal-api/index.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,20 @@
1
1
  /// <reference types="node" />
2
- import * as bitcoinjsLib from "bitcoinjs-lib";
3
- interface Inscription {
2
+ import * as bitcoin from "bitcoinjs-lib";
3
+ export declare const MAX_CHUNK_SIZE = 520;
4
+ export interface Inscription {
4
5
  contentType: Buffer;
5
6
  content: Buffer;
6
7
  }
7
8
  export declare function createTextInscription(text: string): Inscription;
9
+ export declare function createInscription(contentType: string, content: Buffer): Inscription;
10
+ export declare function chunkContent(data: Buffer): Buffer[];
11
+ export declare function createInscriptionScript(xOnlyPublicKey: Buffer, inscription: Inscription): (number | Buffer)[];
8
12
  export interface CommitTxData {
9
- script: (number | Buffer)[];
10
- scriptTaproot: bitcoinjsLib.payments.Payment;
11
- outputScript: Buffer;
13
+ scriptTaproot: bitcoin.payments.Payment;
12
14
  tapLeafScript: {
13
15
  leafVersion: number;
14
16
  script: Buffer;
15
17
  controlBlock: Buffer;
16
18
  };
17
19
  }
18
- export declare function createCommitTxData(network: bitcoinjsLib.Network, publicKey: Buffer, inscription: Inscription): CommitTxData;
19
- export interface CommitTxResult {
20
- txId: string;
21
- sendUtxoIndex: number;
22
- sendAmount: number;
23
- }
24
- export {};
20
+ export declare function createCommitTxData(network: bitcoin.Network, publicKey: Buffer, inscription: Inscription): CommitTxData;
@@ -23,44 +23,61 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createCommitTxData = exports.createTextInscription = void 0;
27
- const bitcoinjsLib = __importStar(require("bitcoinjs-lib"));
26
+ exports.createCommitTxData = exports.createInscriptionScript = exports.chunkContent = exports.createInscription = exports.createTextInscription = exports.MAX_CHUNK_SIZE = void 0;
27
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
28
28
  const encoder = new TextEncoder();
29
- function toXOnly(pubkey) {
30
- return pubkey.subarray(1, 33);
31
- }
29
+ exports.MAX_CHUNK_SIZE = 520;
32
30
  function createTextInscription(text) {
33
- const contentType = Buffer.from(encoder.encode("text/plain;charset=utf-8"));
34
- const content = Buffer.from(encoder.encode(text));
35
- return { contentType, content };
31
+ return createInscription("text/plain;charset=utf-8", Buffer.from(encoder.encode(text)));
36
32
  }
37
33
  exports.createTextInscription = createTextInscription;
34
+ function createInscription(contentType, content) {
35
+ return {
36
+ contentType: Buffer.from(encoder.encode(contentType)),
37
+ content
38
+ };
39
+ }
40
+ exports.createInscription = createInscription;
41
+ function chunkContent(data) {
42
+ const body = [];
43
+ let start = 0;
44
+ while (start < data.length) {
45
+ body.push(data.subarray(start, start + exports.MAX_CHUNK_SIZE));
46
+ start += exports.MAX_CHUNK_SIZE;
47
+ }
48
+ return body;
49
+ }
50
+ exports.chunkContent = chunkContent;
38
51
  function createInscriptionScript(xOnlyPublicKey, inscription) {
39
52
  const protocolId = Buffer.from(encoder.encode("ord"));
40
53
  return [
41
54
  xOnlyPublicKey,
42
- bitcoinjsLib.opcodes.OP_CHECKSIG,
43
- bitcoinjsLib.opcodes.OP_0,
44
- bitcoinjsLib.opcodes.OP_IF,
55
+ bitcoin.opcodes.OP_CHECKSIG,
56
+ bitcoin.opcodes.OP_0,
57
+ bitcoin.opcodes.OP_IF,
45
58
  protocolId,
46
59
  1,
47
60
  1,
48
61
  inscription.contentType,
49
- bitcoinjsLib.opcodes.OP_0,
50
- inscription.content,
51
- bitcoinjsLib.opcodes.OP_ENDIF,
62
+ bitcoin.opcodes.OP_0,
63
+ ...chunkContent(inscription.content),
64
+ bitcoin.opcodes.OP_ENDIF,
52
65
  ];
53
66
  }
67
+ exports.createInscriptionScript = createInscriptionScript;
68
+ function toXOnly(pubkey) {
69
+ return pubkey.subarray(1, 33);
70
+ }
54
71
  function createCommitTxData(network, publicKey, inscription) {
55
72
  var _a;
56
73
  const xOnlyPublicKey = toXOnly(publicKey);
57
74
  const script = createInscriptionScript(xOnlyPublicKey, inscription);
58
- const outputScript = bitcoinjsLib.script.compile(script);
75
+ const outputScript = bitcoin.script.compile(script);
59
76
  const scriptTree = {
60
77
  output: outputScript,
61
78
  redeemVersion: 192,
62
79
  };
63
- const scriptTaproot = bitcoinjsLib.payments.p2tr({
80
+ const scriptTaproot = bitcoin.payments.p2tr({
64
81
  internalPubkey: xOnlyPublicKey,
65
82
  scriptTree,
66
83
  redeem: scriptTree,
@@ -73,9 +90,7 @@ function createCommitTxData(network, publicKey, inscription) {
73
90
  controlBlock: cblock,
74
91
  };
75
92
  return {
76
- script,
77
93
  scriptTaproot,
78
- outputScript,
79
94
  tapLeafScript,
80
95
  };
81
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/ordinals/commit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,SAAS,OAAO,CAAC,MAAc;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAUD,SAAgB,qBAAqB,CAAC,IAAY;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAJD,sDAIC;AAED,SAAS,uBAAuB,CAAC,cAAsB,EAAE,WAAwB;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,OAAO;QACH,cAAc;QACd,YAAY,CAAC,OAAO,CAAC,WAAW;QAChC,YAAY,CAAC,OAAO,CAAC,IAAI;QACzB,YAAY,CAAC,OAAO,CAAC,KAAK;QAC1B,UAAU;QACV,CAAC;QACD,CAAC;QACD,WAAW,CAAC,WAAW;QACvB,YAAY,CAAC,OAAO,CAAC,IAAI;QACzB,WAAW,CAAC,OAAO;QACnB,YAAY,CAAC,OAAO,CAAC,QAAQ;KAChC,CAAC;AACN,CAAC;AAiBD,SAAgB,kBAAkB,CAC9B,OAA6B,EAC7B,SAAiB,EACjB,WAAwB;;IAExB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG;QACf,MAAM,EAAE,YAAY;QACpB,aAAa,EAAE,GAAG;KACrB,CAAC;IAEF,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7C,cAAc,EAAE,cAAc;QAC9B,UAAU;QACV,MAAM,EAAE,UAAU;QAClB,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAA,aAAa,CAAC,OAAO,0CAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzE,MAAM,aAAa,GAAG;QAClB,WAAW,EAAE,aAAa,CAAC,aAAc;QACzC,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,MAAM;KACvB,CAAC;IAEF,OAAO;QACH,MAAM;QACN,aAAa;QACb,YAAY;QACZ,aAAa;KAChB,CAAC;AACN,CAAC;AApCD,gDAoCC"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/ordinals/commit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAEzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAGrB,QAAA,cAAc,GAAG,GAAG,CAAC;AAUlC,SAAgB,qBAAqB,CAAC,IAAY;IAC9C,OAAO,iBAAiB,CACpB,0BAA0B,EAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CACpC,CAAC;AACN,CAAC;AALD,sDAKC;AAKD,SAAgB,iBAAiB,CAAC,WAAmB,EAAE,OAAe;IAClE,OAAO;QAEH,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO;KACV,CAAC;AACN,CAAC;AAND,8CAMC;AAED,SAAgB,YAAY,CAAC,IAAY;IACrC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,sBAAc,CAAC,CAAC,CAAC;QACxD,KAAK,IAAI,sBAAc,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AARD,oCAQC;AAED,SAAgB,uBAAuB,CAAC,cAAsB,EAAE,WAAwB;IACpF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,OAAO;QACH,cAAc;QACd,OAAO,CAAC,OAAO,CAAC,WAAW;QAC3B,OAAO,CAAC,OAAO,CAAC,IAAI;QACpB,OAAO,CAAC,OAAO,CAAC,KAAK;QACrB,UAAU;QACV,CAAC;QACD,CAAC;QACD,WAAW,CAAC,WAAW;QACvB,OAAO,CAAC,OAAO,CAAC,IAAI;QACpB,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACN,CAAC;AAfD,0DAeC;AAWD,SAAS,OAAO,CAAC,MAAc;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAMD,SAAgB,kBAAkB,CAC9B,OAAwB,EACxB,SAAiB,EACjB,WAAwB;;IAExB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,uBAAuB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG;QACf,MAAM,EAAE,YAAY;QACpB,aAAa,EAAE,GAAG;KACrB,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,cAAc,EAAE,cAAc;QAC9B,UAAU;QACV,MAAM,EAAE,UAAU;QAClB,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAA,aAAa,CAAC,OAAO,0CAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzE,MAAM,aAAa,GAAG;QAClB,WAAW,EAAE,aAAa,CAAC,aAAc;QACzC,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,MAAM;KACvB,CAAC;IAEF,OAAO;QACH,aAAa;QACb,aAAa;KAChB,CAAC;AACN,CAAC;AAlCD,gDAkCC"}
@@ -1,4 +1,5 @@
1
- import * as bitcoinjsLib from "bitcoinjs-lib";
1
+ import * as bitcoin from "bitcoinjs-lib";
2
2
  import { RemoteSigner } from "./signer";
3
- export { RemoteSigner };
4
- export declare function inscribeText(signer: RemoteSigner, toAddress: string, feeRate: number, text: string, postage?: number): Promise<bitcoinjsLib.Transaction>;
3
+ import { Inscription, createInscription, createTextInscription } from "./commit";
4
+ export { RemoteSigner, createInscription, createTextInscription, Inscription };
5
+ export declare function inscribeData(signer: RemoteSigner, toAddress: string, feeRate: number, inscription: Inscription, postage?: number): Promise<bitcoin.Transaction>;
@@ -23,13 +23,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.inscribeText = void 0;
27
- const bitcoinjsLib = __importStar(require("bitcoinjs-lib"));
26
+ exports.inscribeData = exports.createTextInscription = exports.createInscription = void 0;
27
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
28
28
  const signer_1 = require("./signer");
29
29
  const commit_1 = require("./commit");
30
+ Object.defineProperty(exports, "createInscription", { enumerable: true, get: function () { return commit_1.createInscription; } });
31
+ Object.defineProperty(exports, "createTextInscription", { enumerable: true, get: function () { return commit_1.createTextInscription; } });
30
32
  const reveal_1 = require("./reveal");
31
33
  function estimateTxSize(network, publicKey, commitTxData, toAddress, amount) {
32
- const psbt = new bitcoinjsLib.Psbt({ network });
34
+ const psbt = new bitcoin.Psbt({ network });
33
35
  const { scriptTaproot, tapLeafScript } = commitTxData;
34
36
  psbt.addInput({
35
37
  hash: Buffer.alloc(32, 0),
@@ -49,25 +51,26 @@ function estimateTxSize(network, publicKey, commitTxData, toAddress, amount) {
49
51
  const tx = psbt.extractTransaction();
50
52
  return tx.virtualSize();
51
53
  }
52
- async function inscribeText(signer, toAddress, feeRate, text, postage = 10000) {
54
+ async function inscribeData(signer, toAddress, feeRate, inscription, postage = 10000) {
53
55
  const bitcoinNetwork = await signer.getNetwork();
54
56
  const publicKey = Buffer.from(await signer.getPublicKey(), "hex");
55
- const inscription = (0, commit_1.createTextInscription)(text);
56
57
  const commitTxData = (0, commit_1.createCommitTxData)(bitcoinNetwork, publicKey, inscription);
57
58
  const revealTxSize = estimateTxSize(bitcoinNetwork, publicKey, commitTxData, toAddress, postage);
58
59
  const revealFee = revealTxSize * feeRate;
59
60
  const commitTxAmount = revealFee + postage;
60
61
  const commitAddress = commitTxData.scriptTaproot.address;
61
62
  const commitTxId = await signer.sendToAddress(commitAddress, commitTxAmount);
62
- const commitUtxoIndex = await signer.getUtxoIndex(commitAddress, commitTxId);
63
+ const commitTx = await signer.getTransaction(commitTxId);
64
+ const scriptPubKey = bitcoin.address.toOutputScript(commitAddress, bitcoinNetwork);
65
+ const commitUtxoIndex = commitTx.outs.findIndex(out => out.script.equals(scriptPubKey));
63
66
  const commitTxResult = {
64
- txId: commitTxId,
65
- sendUtxoIndex: commitUtxoIndex,
66
- sendAmount: commitTxAmount,
67
+ tx: commitTx,
68
+ outputIndex: commitUtxoIndex,
69
+ outputAmount: commitTxAmount,
67
70
  };
68
71
  const revealPsbt = (0, reveal_1.createRevealTx)(bitcoinNetwork, commitTxData, commitTxResult, toAddress, postage);
69
72
  const revealTx = await (0, reveal_1.signRevealTx)(signer, commitTxData, revealPsbt);
70
73
  return revealTx;
71
74
  }
72
- exports.inscribeText = inscribeText;
75
+ exports.inscribeData = inscribeData;
73
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA8C;AAE9C,qCAAqD;AACrD,qCAAmF;AACnF,qCAAyE;AAOzE,SAAS,cAAc,CACrB,OAA6B,EAC7B,SAAiB,EACjB,YAA0B,EAC1B,SAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,KAAK,EAAE,CAAC;QACR,WAAW,EAAE;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa,CAAC,MAAO;SAC9B;QACD,aAAa,EAAE,CAAC,aAAa,CAAC;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,oBAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAA,wBAAe,EAAC,YAAY,CAAC,CAAC,CAAC;IAErD,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACrC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAYM,KAAK,UAAU,YAAY,CAChC,MAAoB,EACpB,SAAiB,EACjB,OAAe,EACf,IAAY,EACZ,OAAO,GAAG,KAAK;IAEf,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;IAElE,MAAM,WAAW,GAAG,IAAA,8BAAqB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAA,2BAAkB,EAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAEhF,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAGjG,MAAM,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;IAEzC,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;IAE3C,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,OAAQ,CAAC;IAC1D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG;QACrB,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,eAAe;QAC9B,UAAU,EAAE,cAAc;KAC3B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,uBAAc,EAC/B,cAAc,EACd,YAAY,EACZ,cAAc,EACd,SAAS,EACT,OAAO,CACR,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAY,EACjC,MAAM,EACN,YAAY,EACZ,UAAU,CACX,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AA7CD,oCA6CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,14 @@
1
1
  /// <reference types="node" />
2
- import * as bitcoinjsLib from "bitcoinjs-lib";
2
+ import * as bitcoin from "bitcoinjs-lib";
3
3
  import { RemoteSigner } from "./signer";
4
- import { CommitTxData, CommitTxResult } from "./commit";
5
- export declare function createRevealTx(network: bitcoinjsLib.Network, commitTxData: CommitTxData, commitTxResult: CommitTxResult, toAddress: string, amount: number): bitcoinjsLib.Psbt;
4
+ import { CommitTxData } from "./commit";
5
+ export interface CommitTxResult {
6
+ tx: bitcoin.Transaction;
7
+ outputIndex: number;
8
+ outputAmount: number;
9
+ }
10
+ export declare function createRevealTx(network: bitcoin.Network, commitTxData: CommitTxData, commitTxResult: CommitTxResult, toAddress: string, amount: number): bitcoin.Psbt;
6
11
  export declare const customFinalizer: (commitTxData: CommitTxData) => (inputIndex: number, input: any) => {
7
12
  finalScriptWitness: Buffer;
8
13
  };
9
- export declare function signRevealTx(signer: RemoteSigner, commitTxData: CommitTxData, psbt: bitcoinjsLib.Psbt): Promise<bitcoinjsLib.Transaction>;
14
+ export declare function signRevealTx(signer: RemoteSigner, commitTxData: CommitTxData, psbt: bitcoin.Psbt): Promise<bitcoin.Transaction>;
@@ -24,19 +24,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.signRevealTx = exports.customFinalizer = exports.createRevealTx = void 0;
27
- const bitcoinjsLib = __importStar(require("bitcoinjs-lib"));
27
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
28
28
  const psbtUtils = __importStar(require("bitcoinjs-lib/src/psbt/psbtutils"));
29
29
  const { witnessStackToScriptWitness } = psbtUtils;
30
30
  function createRevealTx(network, commitTxData, commitTxResult, toAddress, amount) {
31
31
  const { scriptTaproot, tapLeafScript } = commitTxData;
32
- const psbt = new bitcoinjsLib.Psbt({ network });
32
+ const psbt = new bitcoin.Psbt({ network });
33
33
  psbt.addInput({
34
- hash: commitTxResult.txId,
35
- index: commitTxResult.sendUtxoIndex,
34
+ hash: commitTxResult.tx.getId(),
35
+ index: commitTxResult.outputIndex,
36
36
  witnessUtxo: {
37
- value: commitTxResult.sendAmount,
37
+ value: commitTxResult.outputAmount,
38
38
  script: scriptTaproot.output,
39
39
  },
40
+ nonWitnessUtxo: commitTxResult.tx.toBuffer(),
40
41
  tapLeafScript: [tapLeafScript],
41
42
  });
42
43
  psbt.addOutput({
@@ -47,10 +48,10 @@ function createRevealTx(network, commitTxData, commitTxResult, toAddress, amount
47
48
  }
48
49
  exports.createRevealTx = createRevealTx;
49
50
  const customFinalizer = (commitTxData) => {
50
- const { outputScript, tapLeafScript } = commitTxData;
51
+ const { tapLeafScript } = commitTxData;
51
52
  return (inputIndex, input) => {
52
53
  const witness = [input.tapScriptSig[inputIndex].signature]
53
- .concat(outputScript)
54
+ .concat(tapLeafScript.script)
54
55
  .concat(tapLeafScript.controlBlock);
55
56
  return {
56
57
  finalScriptWitness: witnessStackToScriptWitness(witness),
@@ -59,7 +60,7 @@ const customFinalizer = (commitTxData) => {
59
60
  };
60
61
  exports.customFinalizer = customFinalizer;
61
62
  async function signRevealTx(signer, commitTxData, psbt) {
62
- psbt = await signer.signPsbt(0, psbt);
63
+ psbt = await signer.signInput(0, psbt);
63
64
  psbt.finalizeInput(0, (0, exports.customFinalizer)(commitTxData));
64
65
  return psbt.extractTransaction();
65
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA8C;AAC9C,4EAA8D;AAK9D,MAAM,EAAE,2BAA2B,EAAE,GAAG,SAAS,CAAC;AAKlD,SAAgB,cAAc,CAC1B,OAA6B,EAC7B,YAA0B,EAC1B,cAA8B,EAC9B,SAAiB,EACjB,MAAc;IAEd,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEtD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,CAAC;QACV,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,KAAK,EAAE,cAAc,CAAC,aAAa;QACnC,WAAW,EAAE;YACT,KAAK,EAAE,cAAc,CAAC,UAAU;YAChC,MAAM,EAAE,aAAa,CAAC,MAAO;SAChC;QACD,aAAa,EAAE,CAAC,aAAa,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC;QACX,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AA3BD,wCA2BC;AAEM,MAAM,eAAe,GAAG,CAAC,YAA0B,EAAE,EAAE;IAC1D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAErD,OAAO,CAAC,UAAkB,EAAE,KAAU,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;aACrD,MAAM,CAAC,YAAY,CAAC;aACpB,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAExC,OAAO;YACH,kBAAkB,EAAE,2BAA2B,CAAC,OAAO,CAAC;SAC3D,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B;AAEM,KAAK,UAAU,YAAY,CAC9B,MAAoB,EACpB,YAA0B,EAC1B,IAAuB;IAGvB,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAGtC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAA,uBAAe,EAAC,YAAY,CAAC,CAAC,CAAC;IAErD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC;AAZD,oCAYC"}
1
+ {"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AACzC,4EAA8D;AAK9D,MAAM,EAAE,2BAA2B,EAAE,GAAG,SAAS,CAAC;AAWlD,SAAgB,cAAc,CAC1B,OAAwB,EACxB,YAA0B,EAC1B,cAA8B,EAC9B,SAAiB,EACjB,MAAc;IAEd,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEtD,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,IAAI,CAAC,QAAQ,CAAC;QACV,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAC/B,KAAK,EAAE,cAAc,CAAC,WAAW;QACjC,WAAW,EAAE;YACT,KAAK,EAAE,cAAc,CAAC,YAAY;YAClC,MAAM,EAAE,aAAa,CAAC,MAAO;SAChC;QACD,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC5C,aAAa,EAAE,CAAC,aAAa,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC;QACX,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AAChB,CAAC;AA5BD,wCA4BC;AAEM,MAAM,eAAe,GAAG,CAAC,YAA0B,EAAE,EAAE;IAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC;IAEvC,OAAO,CAAC,UAAkB,EAAE,KAAU,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;aACrD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;aAC5B,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAExC,OAAO;YACH,kBAAkB,EAAE,2BAA2B,CAAC,OAAO,CAAC;SAC3D,CAAC;IACN,CAAC,CAAC;AACN,CAAC,CAAA;AAZY,QAAA,eAAe,mBAY3B;AAEM,KAAK,UAAU,YAAY,CAC9B,MAAoB,EACpB,YAA0B,EAC1B,IAAkB;IAGlB,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAGvC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAA,uBAAe,EAAC,YAAY,CAAC,CAAC,CAAC;IAErD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC;AAZD,oCAYC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Network, Psbt, Signer } from "bitcoinjs-lib";
2
+ import { Network, Psbt, Signer, Transaction } from "bitcoinjs-lib";
3
3
  export declare class DummySigner implements Signer {
4
4
  publicKey: Buffer;
5
5
  constructor(publicKey: Buffer);
@@ -10,6 +10,6 @@ export interface RemoteSigner {
10
10
  getNetwork(): Promise<Network>;
11
11
  getPublicKey(): Promise<string>;
12
12
  sendToAddress(toAddress: string, amount: number): Promise<string>;
13
- getUtxoIndex(toAddress: string, txId: string): Promise<number>;
14
- signPsbt(inputIndex: number, psbt: Psbt): Promise<Psbt>;
13
+ getTransaction(txId: string): Promise<Transaction>;
14
+ signInput(inputIndex: number, psbt: Psbt): Promise<Psbt>;
15
15
  }
@@ -6,7 +6,7 @@ class DummySigner {
6
6
  this.publicKey = publicKey;
7
7
  }
8
8
  sign(_hash, _lowR) {
9
- return Buffer.from("304502210100000000000000000000000000000000000000000000000000000000000000000220010000000000000000000000000000000000000000000000000000000000000001", "hex");
9
+ return Buffer.alloc(64, 0);
10
10
  }
11
11
  signSchnorr(hash) {
12
12
  return Buffer.alloc(64, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/ordinals/signer.ts"],"names":[],"mappings":";;;AAKA,MAAa,WAAW;IAEpB,YAAY,SAAiB;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,KAAa,EAAE,KAA2B;QAE3C,OAAO,MAAM,CAAC,IAAI,CAAC,kJAAkJ,EAAE,KAAK,CAAC,CAAC;IAClL,CAAC;IACD,WAAW,CAAC,IAAY;QAEpB,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;CACJ;AAbD,kCAaC;AAuCA,CAAC"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/ordinals/signer.ts"],"names":[],"mappings":";;;AAKA,MAAa,WAAW;IAEpB,YAAY,SAAiB;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,KAAa,EAAE,KAA2B;QAE3C,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,WAAW,CAAC,IAAY;QAEpB,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC;CACJ;AAbD,kCAaC;AAsCA,CAAC"}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@gobob/bob-sdk",
3
- "version": "1.1.0",
3
+ "version": "1.1.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
+ "deploy-relay": "ts-node scripts/init-bridge.ts",
8
9
  "build": "tsc -p tsconfig.json"
9
10
  },
10
11
  "files": [
@@ -18,16 +19,17 @@
18
19
  "devDependencies": {
19
20
  "@types/chai": "^4.3.6",
20
21
  "@types/mocha": "^10.0.2",
21
- "@types/node": "^20.8.3",
22
+ "@types/node": "^20.8.9",
22
23
  "chai": "^4.3.10",
23
24
  "ecpair": "^2.1.0",
24
25
  "mocha": "^10.2.0",
25
26
  "tiny-secp256k1": "^2.2.3",
26
27
  "ts-mocha": "^10.0.0",
27
28
  "ts-node-dev": "^2.0.0",
28
- "typescript": "^5.2.2"
29
+ "typescript": "^5.2.2",
30
+ "yargs": "^17.5.1"
29
31
  },
30
32
  "dependencies": {
31
33
  "bitcoinjs-lib": "^6.1.5"
32
34
  }
33
- }
35
+ }