@gobob/bob-sdk 1.2.0 → 1.3.0

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.
Files changed (47) hide show
  1. package/README.md +50 -4
  2. package/dist/{electrs.d.ts → esplora.d.ts} +2 -2
  3. package/dist/{electrs.js → esplora.js} +6 -6
  4. package/dist/{electrs.js.map → esplora.js.map} +1 -1
  5. package/dist/gateway.d.ts +30 -0
  6. package/dist/gateway.js +56 -0
  7. package/dist/gateway.js.map +1 -0
  8. package/dist/helpers.d.ts +2 -2
  9. package/dist/helpers.js +6 -7
  10. package/dist/helpers.js.map +1 -1
  11. package/dist/index.d.ts +3 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/inscription.d.ts +3 -4
  15. package/dist/inscription.js +11 -11
  16. package/dist/inscription.js.map +1 -1
  17. package/dist/ordinal-api/index.d.ts +10 -1
  18. package/dist/ordinal-api/index.js +1 -0
  19. package/dist/ordinal-api/index.js.map +1 -1
  20. package/dist/ordinals/commit.d.ts +0 -1
  21. package/dist/ordinals/commit.js +1 -2
  22. package/dist/ordinals/commit.js.map +1 -1
  23. package/dist/ordinals/index.js +1 -2
  24. package/dist/ordinals/index.js.map +1 -1
  25. package/dist/ordinals/reveal.d.ts +0 -1
  26. package/dist/ordinals/reveal.js +3 -3
  27. package/dist/ordinals/reveal.js.map +1 -1
  28. package/dist/ordinals/signer.d.ts +0 -1
  29. package/dist/relay.d.ts +4 -4
  30. package/dist/relay.js +11 -12
  31. package/dist/relay.js.map +1 -1
  32. package/dist/utils.d.ts +1 -1
  33. package/dist/utils.js +42 -5
  34. package/dist/utils.js.map +1 -1
  35. package/dist/wallet/address.d.ts +2 -0
  36. package/dist/wallet/address.js +19 -0
  37. package/dist/wallet/address.js.map +1 -0
  38. package/dist/wallet/index.d.ts +2 -0
  39. package/dist/wallet/index.js +19 -0
  40. package/dist/wallet/index.js.map +1 -0
  41. package/dist/wallet/inscriptions.d.ts +4 -0
  42. package/dist/wallet/inscriptions.js +43 -0
  43. package/dist/wallet/inscriptions.js.map +1 -0
  44. package/dist/wallet/utxo.d.ts +23 -0
  45. package/dist/wallet/utxo.js +91 -0
  46. package/dist/wallet/utxo.js.map +1 -0
  47. package/package.json +7 -4
package/README.md CHANGED
@@ -7,13 +7,45 @@ The BOB SDK helps you interact with BOB and Bitcoin, including Ordinals, BRC20,
7
7
  - [Website](https://www.gobob.xyz/)
8
8
  - [Docs](https://docs.gobob.xyz/)
9
9
 
10
- ## Installation
10
+ ## Using the sdk in your project
11
+ Install `@gobob/bob-sdk` with your package manager of choice.
11
12
 
12
13
  ```shell
13
- pnpm i @bob-sdk/sdk
14
+ pnpm i @gobob/bob-sdk
14
15
  ```
15
16
 
16
- ## Test
17
+ or
18
+ ```shell
19
+ yarn add @gobob/bob-sdk
20
+ ```
21
+
22
+ or
23
+ ```shell
24
+ npm i @gobob/bob-sdk
25
+ ```
26
+
27
+ ## Building BOB sdk
28
+
29
+ ### Clone the repository
30
+ Clone the repository and change to the `sdk` subfolder.
31
+ ```shell
32
+ git clone git@github.com:bob-collective/bob.git
33
+ cd bob/sdk
34
+ ```
35
+
36
+ ### Install dependencies
37
+ We use `pnpm` in the examples below. But the steps below should also work when using `yarn` or `npm` instead.
38
+
39
+ ```shell
40
+ pnpm i
41
+ ```
42
+
43
+ ### Build
44
+ ```shell
45
+ pnpm build
46
+ ```
47
+
48
+ ### Test
17
49
 
18
50
  ```shell
19
51
  pnpm test
@@ -21,4 +53,18 @@ pnpm test
21
53
 
22
54
  ## Contributing
23
55
 
24
- BOB is an open-source project. We welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.
56
+ BOB is an open-source project. We welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.
57
+ Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
58
+
59
+ 1. Set up git so you can [sign your commits](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) (Alternative link: [GitHub: Signing commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits))
60
+ Unsigned PRs cannot be merged, so do not skip this step.
61
+ 2. Fork the Project
62
+ 3. Create your Feature Branch (git checkout -b yourname/AmazingFeature)
63
+ 4. Commit your Changes (git commit -m 'Add some AmazingFeature')
64
+ 5. Push to the Branch (git push origin yourname/AmazingFeature)
65
+ 6. Open a Pull Request with a description of feature you are adding
66
+
67
+ If you are searching for a place to start or would like to discuss features, reach out to us:
68
+
69
+ - [Discord](https://discord.com/invite/gobob)
70
+
@@ -67,7 +67,7 @@ export interface Block {
67
67
  previousblockhash: string | null;
68
68
  mediantime: number;
69
69
  }
70
- export interface ElectrsClient {
70
+ export interface EsploraClient {
71
71
  getLatestHeight(): Promise<number>;
72
72
  getBlock(hash: string): Promise<Block>;
73
73
  getBlockHash(height: number): Promise<string>;
@@ -79,7 +79,7 @@ export interface ElectrsClient {
79
79
  getAddressUtxos(address: string): Promise<Array<UTXO>>;
80
80
  broadcastTx(txHex: string): Promise<string>;
81
81
  }
82
- export declare class DefaultElectrsClient implements ElectrsClient {
82
+ export declare class DefaultEsploraClient implements EsploraClient {
83
83
  private basePath;
84
84
  constructor(networkOrUrl?: string);
85
85
  getLatestHeight(): Promise<number>;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
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;
3
+ exports.DefaultEsploraClient = exports.REGTEST_ESPLORA_BASE_PATH = exports.TESTNET_ESPLORA_BASE_PATH = exports.MAINNET_ESPLORA_BASE_PATH = void 0;
4
4
  exports.MAINNET_ESPLORA_BASE_PATH = "https://btc-mainnet.gobob.xyz";
5
5
  exports.TESTNET_ESPLORA_BASE_PATH = "https://btc-testnet.gobob.xyz";
6
6
  exports.REGTEST_ESPLORA_BASE_PATH = "http://localhost:3003";
7
- function encodeElectrsMerkleProof(merkle) {
7
+ function encodeEsploraMerkleProof(merkle) {
8
8
  return merkle.map(item => Buffer.from(item, "hex").reverse().toString("hex")).join('');
9
9
  }
10
- class DefaultElectrsClient {
10
+ class DefaultEsploraClient {
11
11
  constructor(networkOrUrl = "mainnet") {
12
12
  switch (networkOrUrl) {
13
13
  case "mainnet":
@@ -49,7 +49,7 @@ class DefaultElectrsClient {
49
49
  const response = await this.getJson(`${this.basePath}/tx/${txId}/merkle-proof`);
50
50
  return {
51
51
  blockHeight: response.block_height,
52
- merkle: encodeElectrsMerkleProof(response.merkle),
52
+ merkle: encodeEsploraMerkleProof(response.merkle),
53
53
  pos: response.pos,
54
54
  };
55
55
  }
@@ -93,5 +93,5 @@ class DefaultElectrsClient {
93
93
  return await response.text();
94
94
  }
95
95
  }
96
- exports.DefaultElectrsClient = DefaultElectrsClient;
97
- //# sourceMappingURL=electrs.js.map
96
+ exports.DefaultEsploraClient = DefaultEsploraClient;
97
+ //# sourceMappingURL=esplora.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"electrs.js","sourceRoot":"","sources":["../src/electrs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esplora.js","sourceRoot":"","sources":["../src/esplora.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export type EvmAddress = string;
2
+ type GatewayQuote = {
3
+ onramp_address: EvmAddress;
4
+ dust_threshold: number;
5
+ satoshis: number;
6
+ fee: number;
7
+ gratuity: string;
8
+ bitcoin_address: string;
9
+ tx_proof_difficulty_factor: number;
10
+ };
11
+ type GatewayOrderResponse = {
12
+ onramp_address: EvmAddress;
13
+ token_address: EvmAddress;
14
+ txid: string;
15
+ status: boolean;
16
+ timestamp: number;
17
+ tokens: string;
18
+ satoshis: number;
19
+ fee: number;
20
+ tx_proof_difficulty_factor: number;
21
+ };
22
+ export declare class GatewayApiClient {
23
+ private baseUrl;
24
+ constructor(baseUrl: string);
25
+ getQuote(address: string, atomicAmount?: number | string): Promise<GatewayQuote>;
26
+ createOrder(contractAddress: string, userAddress: EvmAddress, atomicAmount: number | string): Promise<string>;
27
+ updateOrder(id: string, tx: string): Promise<void>;
28
+ getOrders(userAddress: EvmAddress): Promise<GatewayOrderResponse[]>;
29
+ }
30
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GatewayApiClient = void 0;
4
+ class GatewayApiClient {
5
+ constructor(baseUrl) {
6
+ this.baseUrl = baseUrl;
7
+ }
8
+ async getQuote(address, atomicAmount) {
9
+ const response = await fetch(`${this.baseUrl}/quote/${address}/${atomicAmount || ''}`, {
10
+ headers: {
11
+ 'Content-Type': 'application/json',
12
+ Accept: 'application/json'
13
+ }
14
+ });
15
+ return await response.json();
16
+ }
17
+ async createOrder(contractAddress, userAddress, atomicAmount) {
18
+ const response = await fetch(`${this.baseUrl}/order`, {
19
+ method: 'POST',
20
+ headers: {
21
+ 'Content-Type': 'application/json',
22
+ Accept: 'application/json'
23
+ },
24
+ body: JSON.stringify({ onramp_address: contractAddress, user_address: userAddress, satoshis: atomicAmount })
25
+ });
26
+ if (!response.ok) {
27
+ throw new Error('Failed to create order');
28
+ }
29
+ return await response.json();
30
+ }
31
+ async updateOrder(id, tx) {
32
+ const response = await fetch(`${this.baseUrl}/order/${id}`, {
33
+ method: 'PATCH',
34
+ headers: {
35
+ 'Content-Type': 'application/json',
36
+ Accept: 'application/json'
37
+ },
38
+ body: JSON.stringify({ bitcoin_tx: tx })
39
+ });
40
+ if (!response.ok) {
41
+ throw new Error('Failed to update order');
42
+ }
43
+ }
44
+ async getOrders(userAddress) {
45
+ const response = await fetch(`${this.baseUrl}/orders/${userAddress}`, {
46
+ method: 'GET',
47
+ headers: {
48
+ 'Content-Type': 'application/json',
49
+ Accept: 'application/json'
50
+ }
51
+ });
52
+ return response.json();
53
+ }
54
+ }
55
+ exports.GatewayApiClient = GatewayApiClient;
56
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":";;;AAwBA,MAAa,gBAAgB;IAGzB,YAAY,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,YAA8B;QAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,UAAU,OAAO,IAAI,YAAY,IAAI,EAAE,EAAE,EAAE;YACnF,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;SACJ,CAAC,CAAC;QAEH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,eAAuB,EAAE,WAAuB,EAAE,YAA6B;QAC7F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,QAAQ,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;SAC/G,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,EAAU;QACpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,UAAU,EAAE,EAAE,EAAE;YACxD,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,WAAuB;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,WAAW,EAAE,EAAE;YAClE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC7B;SACJ,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;CACJ;AA9DD,4CA8DC"}
package/dist/helpers.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { ElectrsClient } from "./electrs";
1
+ import { EsploraClient } from "./esplora";
2
2
  import { OrdinalsClient } from "./ordinal-api";
3
- export declare function getInscriptionIds(electrsClient: ElectrsClient, ordinalsClient: OrdinalsClient, bitcoinAddress: string): Promise<string[]>;
3
+ export declare function getInscriptionIds(esploraClient: EsploraClient, ordinalsClient: OrdinalsClient, bitcoinAddress: string): Promise<string[]>;
package/dist/helpers.js CHANGED
@@ -23,26 +23,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getInscriptionIds = void 0;
26
+ exports.getInscriptionIds = getInscriptionIds;
27
27
  const inscription_1 = require("./inscription");
28
28
  const ordinal_api_1 = require("./ordinal-api");
29
29
  const bitcoin = __importStar(require("bitcoinjs-lib"));
30
- async function getInscriptionIds(electrsClient, ordinalsClient, bitcoinAddress) {
31
- const utxos = await electrsClient.getAddressUtxos(bitcoinAddress);
30
+ async function getInscriptionIds(esploraClient, ordinalsClient, bitcoinAddress) {
31
+ const utxos = await esploraClient.getAddressUtxos(bitcoinAddress);
32
32
  const inscriptionIds = await Promise.all(utxos.sort((a, b) => {
33
33
  const heightA = a.height || Number.MAX_SAFE_INTEGER;
34
34
  const heightB = b.height || Number.MAX_SAFE_INTEGER;
35
35
  return heightA - heightB;
36
- }).map(utxo => getInscriptionIdsForUtxo(electrsClient, ordinalsClient, utxo)));
36
+ }).map(utxo => getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo)));
37
37
  return inscriptionIds.flat();
38
38
  }
39
- exports.getInscriptionIds = getInscriptionIds;
40
- async function getInscriptionIdsForUtxo(electrsClient, ordinalsClient, utxo) {
39
+ async function getInscriptionIdsForUtxo(esploraClient, ordinalsClient, utxo) {
41
40
  if (utxo.confirmed) {
42
41
  const outputJson = await ordinalsClient.getInscriptionsFromOutPoint(utxo);
43
42
  return outputJson.inscriptions;
44
43
  }
45
- const txHex = await electrsClient.getTransactionHex(utxo.txid);
44
+ const txHex = await esploraClient.getTransactionHex(utxo.txid);
46
45
  const tx = bitcoin.Transaction.fromHex(txHex);
47
46
  if (utxo.vout == 0) {
48
47
  const parentInscriptions = await Promise.all(tx.ins.map(async (txInput) => {
@@ -1 +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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8CAYC;AAjBD,+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;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,5 +1,7 @@
1
- export * from "./electrs";
1
+ export * from "./esplora";
2
2
  export * from "./relay";
3
3
  export * from "./utils";
4
4
  export * from "./ordinals";
5
5
  export * from "./helpers";
6
+ export * from "./wallet";
7
+ export * from "./gateway";
package/dist/index.js CHANGED
@@ -14,9 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./electrs"), exports);
17
+ __exportStar(require("./esplora"), exports);
18
18
  __exportStar(require("./relay"), exports);
19
19
  __exportStar(require("./utils"), exports);
20
20
  __exportStar(require("./ordinals"), exports);
21
21
  __exportStar(require("./helpers"), exports);
22
+ __exportStar(require("./wallet"), exports);
23
+ __exportStar(require("./gateway"), exports);
22
24
  //# 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;AACxB,6CAA2B;AAC3B,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,2CAAyB;AACzB,4CAA0B"}
@@ -1,6 +1,5 @@
1
- /// <reference types="node" />
2
1
  import * as bitcoin from "bitcoinjs-lib";
3
- import { ElectrsClient } from "./electrs";
2
+ import { EsploraClient } from "./esplora";
4
3
  export declare const PROTOCOL_ID: Buffer;
5
4
  export declare const MAX_CHUNK_SIZE = 520;
6
5
  export declare function chunkContent(data: Buffer): Buffer[];
@@ -20,5 +19,5 @@ export declare namespace Inscription {
20
19
  function createInscription(contentType: string, content: Buffer): Inscription;
21
20
  }
22
21
  export declare function parseInscriptions(tx: bitcoin.Transaction): Inscription[];
23
- export declare function getTxInscriptions(electrsClient: ElectrsClient, txid: string): Promise<Inscription[]>;
24
- export declare function getInscriptionFromId(electrsClient: ElectrsClient, inscriptionId: string): Promise<Inscription>;
22
+ export declare function getTxInscriptions(esploraClient: EsploraClient, txid: string): Promise<Inscription[]>;
23
+ export declare function getInscriptionFromId(esploraClient: EsploraClient, inscriptionId: string): Promise<Inscription>;
@@ -23,7 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getInscriptionFromId = exports.getTxInscriptions = exports.parseInscriptions = exports.Inscription = exports.chunkContent = exports.MAX_CHUNK_SIZE = exports.PROTOCOL_ID = void 0;
26
+ exports.Inscription = exports.MAX_CHUNK_SIZE = exports.PROTOCOL_ID = void 0;
27
+ exports.chunkContent = chunkContent;
28
+ exports.parseInscriptions = parseInscriptions;
29
+ exports.getTxInscriptions = getTxInscriptions;
30
+ exports.getInscriptionFromId = getInscriptionFromId;
27
31
  const bitcoin = __importStar(require("bitcoinjs-lib"));
28
32
  const ordinal_api_1 = require("./ordinal-api");
29
33
  const textEncoder = new TextEncoder();
@@ -42,7 +46,6 @@ function chunkContent(data) {
42
46
  }
43
47
  return body;
44
48
  }
45
- exports.chunkContent = chunkContent;
46
49
  function convertOpInt(value) {
47
50
  if (value >= bitcoin.opcodes.OP_1 && value <= bitcoin.opcodes.OP_16) {
48
51
  return value - OP_INT_BASE;
@@ -106,8 +109,8 @@ exports.Inscription = Inscription;
106
109
  Inscription.createTextInscription = createTextInscription;
107
110
  function createInscription(contentType, content) {
108
111
  const inscription = new Inscription;
109
- inscription.setContentType(contentType),
110
- inscription.body = content;
112
+ inscription.setContentType(contentType);
113
+ inscription.body = content;
111
114
  return inscription;
112
115
  }
113
116
  Inscription.createInscription = createInscription;
@@ -172,17 +175,14 @@ function parseInscriptions(tx) {
172
175
  }
173
176
  return inscriptions;
174
177
  }
175
- exports.parseInscriptions = parseInscriptions;
176
- async function getTxInscriptions(electrsClient, txid) {
177
- const txHex = await electrsClient.getTransactionHex(txid);
178
+ async function getTxInscriptions(esploraClient, txid) {
179
+ const txHex = await esploraClient.getTransactionHex(txid);
178
180
  const tx = bitcoin.Transaction.fromHex(txHex);
179
181
  return parseInscriptions(tx);
180
182
  }
181
- exports.getTxInscriptions = getTxInscriptions;
182
- async function getInscriptionFromId(electrsClient, inscriptionId) {
183
+ async function getInscriptionFromId(esploraClient, inscriptionId) {
183
184
  const { txid, index } = ordinal_api_1.InscriptionId.fromString(inscriptionId);
184
- const inscriptions = await getTxInscriptions(electrsClient, txid);
185
+ const inscriptions = await getTxInscriptions(esploraClient, txid);
185
186
  return inscriptions[index];
186
187
  }
187
- exports.getInscriptionFromId = getInscriptionFromId;
188
188
  //# sourceMappingURL=inscription.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inscription.js","sourceRoot":"","sources":["../src/inscription.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,13 @@ export interface OutputJson {
34
34
  address: string | null;
35
35
  indexed: boolean;
36
36
  inscriptions: string[];
37
- runes: [string, number][];
37
+ runes: {
38
+ [key: string]: {
39
+ amount: number;
40
+ divisibility: number;
41
+ symbol: string | null;
42
+ };
43
+ };
38
44
  sat_ranges: string | null;
39
45
  script_pubkey: string;
40
46
  spent: boolean;
@@ -47,6 +53,7 @@ export interface SatJson<InscriptionId> {
47
53
  degree: string;
48
54
  name: string;
49
55
  block: number;
56
+ charms: number[];
50
57
  cycle: number;
51
58
  epoch: number;
52
59
  period: number;
@@ -63,12 +70,14 @@ export interface InscriptionJson<InscriptionId, SatPoint> {
63
70
  children: InscriptionId[];
64
71
  content_length: number | null;
65
72
  content_type: string | null;
73
+ effective_content_type: String | null;
66
74
  fee: number;
67
75
  height: number;
68
76
  id: InscriptionId;
69
77
  next: InscriptionId | null;
70
78
  number: number;
71
79
  parent: InscriptionId | null;
80
+ parents: string[];
72
81
  previous: InscriptionId | null;
73
82
  rune: string | null;
74
83
  sat: string | null;
@@ -69,6 +69,7 @@ class DefaultOrdinalsClient {
69
69
  }
70
70
  }
71
71
  async getInscriptionFromId(id) {
72
+ console.log(`${this.basePath}/inscription/${InscriptionId.toString(id)}`);
72
73
  const inscriptionJson = await this.getJson(`${this.basePath}/inscription/${InscriptionId.toString(id)}`);
73
74
  return {
74
75
  ...inscriptionJson,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinal-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinal-api/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as bitcoin from "bitcoinjs-lib";
3
2
  import { Inscription } from "../inscription";
4
3
  export interface CommitTxData {
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createCommitTxData = void 0;
26
+ exports.createCommitTxData = createCommitTxData;
27
27
  const bitcoin = __importStar(require("bitcoinjs-lib"));
28
28
  function toXOnly(pubkey) {
29
29
  return pubkey.subarray(1, 33);
@@ -53,5 +53,4 @@ function createCommitTxData(network, publicKey, inscription) {
53
53
  tapLeafScript,
54
54
  };
55
55
  }
56
- exports.createCommitTxData = createCommitTxData;
57
56
  //# sourceMappingURL=commit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/ordinals/commit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAYzC,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,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEpD,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,aAAa,CAAC,OAAO,EAAE,CAAC,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
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/ordinals/commit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,gDAkCC;AAtDD,uDAAyC;AAYzC,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,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAEpD,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,aAAa,CAAC,OAAO,EAAE,CAAC,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"}
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.inscribeData = void 0;
26
+ exports.inscribeData = inscribeData;
27
27
  const bitcoin = __importStar(require("bitcoinjs-lib"));
28
28
  const signer_1 = require("./signer");
29
29
  const commit_1 = require("./commit");
@@ -70,5 +70,4 @@ async function inscribeData(signer, toAddress, feeRate, inscription, postage = 1
70
70
  const revealTx = await (0, reveal_1.signRevealTx)(signer, commitTxData, revealPsbt);
71
71
  return revealTx;
72
72
  }
73
- exports.inscribeData = inscribeData;
74
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAEzC,qCAAqD;AACrD,qCAA4D;AAC5D,qCAAyE;AAQzE,SAAS,cAAc,CACrB,OAAwB,EACxB,SAAiB,EACjB,YAA0B,EAC1B,SAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,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,WAAwB,EACxB,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,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,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,MAAM,cAAc,GAAG;QACrB,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,cAAc;KAC7B,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;AA/CD,oCA+CC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ordinals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,oCA+CC;AArGD,uDAAyC;AAEzC,qCAAqD;AACrD,qCAA4D;AAC5D,qCAAyE;AAQzE,SAAS,cAAc,CACrB,OAAwB,EACxB,SAAiB,EACjB,YAA0B,EAC1B,SAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3C,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,WAAwB,EACxB,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,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,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,MAAM,cAAc,GAAG;QACrB,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,cAAc;KAC7B,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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as bitcoin from "bitcoinjs-lib";
3
2
  import { RemoteSigner } from "./signer";
4
3
  import { CommitTxData } from "./commit";
@@ -23,7 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.signRevealTx = exports.customFinalizer = exports.createRevealTx = void 0;
26
+ exports.customFinalizer = void 0;
27
+ exports.createRevealTx = createRevealTx;
28
+ exports.signRevealTx = signRevealTx;
27
29
  const bitcoin = __importStar(require("bitcoinjs-lib"));
28
30
  const psbtUtils = __importStar(require("bitcoinjs-lib/src/psbt/psbtutils"));
29
31
  const { witnessStackToScriptWitness } = psbtUtils;
@@ -46,7 +48,6 @@ function createRevealTx(network, commitTxData, commitTxResult, toAddress, amount
46
48
  });
47
49
  return psbt;
48
50
  }
49
- exports.createRevealTx = createRevealTx;
50
51
  const customFinalizer = (commitTxData) => {
51
52
  const { tapLeafScript } = commitTxData;
52
53
  return (inputIndex, input) => {
@@ -64,5 +65,4 @@ async function signRevealTx(signer, commitTxData, psbt) {
64
65
  psbt.finalizeInput(0, (0, exports.customFinalizer)(commitTxData));
65
66
  return psbt.extractTransaction();
66
67
  }
67
- exports.signRevealTx = signRevealTx;
68
68
  //# sourceMappingURL=reveal.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wCA4BC;AAgBD,oCAYC;AAzED,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;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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Network, Psbt, Signer, Transaction } from "bitcoinjs-lib";
3
2
  export declare class DummySigner implements Signer {
4
3
  publicKey: Buffer;
package/dist/relay.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ElectrsClient } from "./electrs";
1
+ import { EsploraClient } from "./esplora";
2
2
  export interface BitcoinTxInfo {
3
3
  version: string;
4
4
  inputVector: string;
@@ -6,11 +6,11 @@ export interface BitcoinTxInfo {
6
6
  locktime: string;
7
7
  witnessVector?: string;
8
8
  }
9
- export declare function getBitcoinTxInfo(electrsClient: ElectrsClient, txId: string, forWitness?: boolean): Promise<BitcoinTxInfo>;
9
+ export declare function getBitcoinTxInfo(esploraClient: EsploraClient, txId: string, forWitness?: boolean): Promise<BitcoinTxInfo>;
10
10
  export interface BitcoinTxProof {
11
11
  merkleProof: string;
12
12
  txIndexInBlock: number;
13
13
  bitcoinHeaders: string;
14
14
  }
15
- export declare function getBitcoinTxProof(electrsClient: ElectrsClient, txId: string, txProofDifficultyFactor: number): Promise<BitcoinTxProof>;
16
- export declare function getBitcoinHeaders(electrsClient: ElectrsClient, startHeight: number, numBlocks: number): Promise<string>;
15
+ export declare function getBitcoinTxProof(esploraClient: EsploraClient, txId: string, txProofDifficultyFactor: number): Promise<BitcoinTxProof>;
16
+ export declare function getBitcoinHeaders(esploraClient: EsploraClient, startHeight: number, numBlocks: number): Promise<string>;
package/dist/relay.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getBitcoinHeaders = exports.getBitcoinTxProof = exports.getBitcoinTxInfo = void 0;
3
+ exports.getBitcoinTxInfo = getBitcoinTxInfo;
4
+ exports.getBitcoinTxProof = getBitcoinTxProof;
5
+ exports.getBitcoinHeaders = getBitcoinHeaders;
4
6
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
7
  const utils_1 = require("./utils");
6
- async function getBitcoinTxInfo(electrsClient, txId, forWitness) {
7
- const txHex = await electrsClient.getTransactionHex(txId);
8
+ async function getBitcoinTxInfo(esploraClient, txId, forWitness) {
9
+ const txHex = await esploraClient.getTransactionHex(txId);
8
10
  const tx = bitcoinjs_lib_1.Transaction.fromHex(txHex);
9
11
  const versionBuffer = Buffer.allocUnsafe(4);
10
12
  versionBuffer.writeInt32LE(tx.version);
@@ -19,25 +21,22 @@ async function getBitcoinTxInfo(electrsClient, txId, forWitness) {
19
21
  witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString("hex") : undefined,
20
22
  };
21
23
  }
22
- exports.getBitcoinTxInfo = getBitcoinTxInfo;
23
- async function getBitcoinTxProof(electrsClient, txId, txProofDifficultyFactor) {
24
- const merkleProof = await electrsClient.getMerkleProof(txId);
25
- const bitcoinHeaders = await getBitcoinHeaders(electrsClient, merkleProof.blockHeight, txProofDifficultyFactor);
24
+ async function getBitcoinTxProof(esploraClient, txId, txProofDifficultyFactor) {
25
+ const merkleProof = await esploraClient.getMerkleProof(txId);
26
+ const bitcoinHeaders = await getBitcoinHeaders(esploraClient, merkleProof.blockHeight, txProofDifficultyFactor);
26
27
  return {
27
28
  merkleProof: merkleProof.merkle,
28
29
  txIndexInBlock: merkleProof.pos,
29
30
  bitcoinHeaders: bitcoinHeaders,
30
31
  };
31
32
  }
32
- exports.getBitcoinTxProof = getBitcoinTxProof;
33
- async function getBitcoinHeaders(electrsClient, startHeight, numBlocks) {
33
+ async function getBitcoinHeaders(esploraClient, startHeight, numBlocks) {
34
34
  const range = (start, end) => Array.from({ length: end - start }, (_element, index) => index + start);
35
35
  const blockHeights = range(startHeight, startHeight + numBlocks);
36
36
  const bitcoinHeaders = await Promise.all(blockHeights.map(async (height) => {
37
- const hash = await electrsClient.getBlockHash(height);
38
- return electrsClient.getBlockHeader(hash);
37
+ const hash = await esploraClient.getBlockHash(height);
38
+ return esploraClient.getBlockHeader(hash);
39
39
  }));
40
40
  return bitcoinHeaders.join('');
41
41
  }
42
- exports.getBitcoinHeaders = getBitcoinHeaders;
43
42
  //# sourceMappingURL=relay.js.map
package/dist/relay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;;AAIA,iDAA4C;AAS5C,mCAA8F;AA0CvF,KAAK,UAAU,gBAAgB,CAClC,aAA4B,EAC5B,IAAY,EACZ,UAAoB;IAEpB,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;QACxC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAA;AACL,CAAC;AAtBD,4CAsBC;AAmCM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,IAAY,EACZ,uBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAEhH,OAAO;QACH,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,cAAc,EAAE,WAAW,CAAC,GAAG;QAC/B,cAAc,EAAE,cAAc;KACjC,CAAA;AACL,CAAC;AAbD,8CAaC;AA0BM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,WAAmB,EACnB,SAAiB;IAEjB,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,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,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,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAdD,8CAcC"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;AAuDA,4CAsBC;AAmCD,8CAaC;AA0BD,8CAcC;AAjKD,iDAA4C;AAS5C,mCAA8F;AA0CvF,KAAK,UAAU,gBAAgB,CAClC,aAA4B,EAC5B,IAAY,EACZ,UAAoB;IAEpB,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;QACxC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAA;AACL,CAAC;AAmCM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,IAAY,EACZ,uBAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAEhH,OAAO;QACH,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,cAAc,EAAE,WAAW,CAAC,GAAG;QAC/B,cAAc,EAAE,cAAc;KACjC,CAAA;AACL,CAAC;AA0BM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,WAAmB,EACnB,SAAiB;IAEjB,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,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,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,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Block } from "bitcoinjs-lib";
3
2
  import { Transaction } from "bitcoinjs-lib/src/transaction";
4
3
  export declare function encodeRawInput(tx: Transaction): Buffer;
@@ -9,3 +8,4 @@ export declare function getMerkleProof(block: Block, txHash: string, forWitness?
9
8
  proof: string;
10
9
  root: string;
11
10
  };
11
+ export declare function estimateTxFee(feeRate: number, numInputs?: number): number;
package/dist/utils.js CHANGED
@@ -1,8 +1,36 @@
1
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
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMerkleProof = exports.encodeRawWitness = exports.encodeRawOutput = exports.encodeRawInput = void 0;
26
+ exports.encodeRawInput = encodeRawInput;
27
+ exports.encodeRawOutput = encodeRawOutput;
28
+ exports.encodeRawWitness = encodeRawWitness;
29
+ exports.getMerkleProof = getMerkleProof;
30
+ exports.estimateTxFee = estimateTxFee;
4
31
  const bufferutils_1 = require("bitcoinjs-lib/src/bufferutils");
5
32
  const crypto_1 = require("bitcoinjs-lib/src/crypto");
33
+ const bitcoin = __importStar(require("bitcoinjs-lib"));
6
34
  function varSliceSize(someScript) {
7
35
  const length = someScript.length;
8
36
  return bufferutils_1.varuint.encodingLength(length) + length;
@@ -22,7 +50,6 @@ function encodeRawInput(tx) {
22
50
  });
23
51
  return inputBuffer;
24
52
  }
25
- exports.encodeRawInput = encodeRawInput;
26
53
  function isOutput(out) {
27
54
  return out.value !== undefined;
28
55
  }
@@ -44,7 +71,6 @@ function encodeRawOutput(tx) {
44
71
  });
45
72
  return outputBuffer;
46
73
  }
47
- exports.encodeRawOutput = encodeRawOutput;
48
74
  function vectorSize(someVector) {
49
75
  const length = someVector.length;
50
76
  return (bufferutils_1.varuint.encodingLength(length) +
@@ -63,7 +89,6 @@ function encodeRawWitness(tx) {
63
89
  });
64
90
  return witnessBuffer;
65
91
  }
66
- exports.encodeRawWitness = encodeRawWitness;
67
92
  function chunkArray(array, chunkSize) {
68
93
  const chunkedArray = [];
69
94
  let index = 0;
@@ -105,5 +130,17 @@ function getMerkleProof(block, txHash, forWitness) {
105
130
  root: merkleAndRoot.root.toString("hex"),
106
131
  };
107
132
  }
108
- exports.getMerkleProof = getMerkleProof;
133
+ function estimateTxFee(feeRate, numInputs = 1) {
134
+ const tx = new bitcoin.Transaction();
135
+ for (let i = 0; i < numInputs; i++) {
136
+ tx.addInput(Buffer.alloc(32, 0), 0, 0xfffffffd, Buffer.alloc(0));
137
+ }
138
+ tx.ins.map(tx_input => (tx_input.witness = [Buffer.alloc(33 + 32 + 7, 0), Buffer.alloc(33, 0)]));
139
+ tx.addOutput(Buffer.alloc(22, 0), 1000);
140
+ tx.addOutput(Buffer.alloc(22, 0), 1000);
141
+ tx.addOutput(bitcoin.script.compile([bitcoin.opcodes.OP_RETURN, Buffer.alloc(20, 0)]), 0);
142
+ const vsize = tx.virtualSize();
143
+ const satoshis = feeRate * vsize;
144
+ return satoshis;
145
+ }
109
146
  //# sourceMappingURL=utils.js.map
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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"}
@@ -0,0 +1,2 @@
1
+ import { BitcoinNetworkName } from "./utxo";
2
+ export declare const isValidBtcAddress: (network: BitcoinNetworkName, address: string) => boolean;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidBtcAddress = void 0;
4
+ const BTC_MAINNET_REGEX = /\b([13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[ac-hj-np-zAC-HJ-NP-Z02-9]{11,71})\b/;
5
+ const BTC_TESTNET_REGEX = /\b([2mn][a-km-zA-HJ-NP-Z1-9]{25,34}|tb1[ac-hj-np-zAC-HJ-NP-Z02-9]{11,71})\b/;
6
+ const mainnetRegex = new RegExp(BTC_MAINNET_REGEX);
7
+ const testnetRegex = new RegExp(BTC_TESTNET_REGEX);
8
+ const isValidBtcAddress = (network, address) => {
9
+ switch (network) {
10
+ case 'mainnet':
11
+ return mainnetRegex.test(address);
12
+ case 'testnet':
13
+ return testnetRegex.test(address);
14
+ default:
15
+ throw new Error(`Invalid bitcoin network configured: ${network}. Valid values are: mainnet | testnet.`);
16
+ }
17
+ };
18
+ exports.isValidBtcAddress = isValidBtcAddress;
19
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/wallet/address.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,4EAA4E,CAAC;AACvG,MAAM,iBAAiB,GAAG,6EAA6E,CAAC;AAExG,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5C,MAAM,iBAAiB,GAAG,CAAC,OAA2B,EAAE,OAAe,EAAW,EAAE;IACzF,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC;YACE,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,wCAAwC,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC,CAAC;AATW,QAAA,iBAAiB,qBAS5B"}
@@ -0,0 +1,2 @@
1
+ export * from "./address";
2
+ export * from "./utxo";
@@ -0,0 +1,19 @@
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("./address"), exports);
18
+ __exportStar(require("./utxo"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,yCAAuB"}
@@ -0,0 +1,4 @@
1
+ import { EsploraClient, UTXO } from "../esplora";
2
+ import { OrdinalsClient } from "../ordinal-api";
3
+ export declare function findUtxoForInscriptionId(esploraClient: EsploraClient, ordinalsClient: OrdinalsClient, utxos: UTXO[], inscriptionId: string): Promise<UTXO | undefined>;
4
+ export declare function findUtxosWithoutInscriptions(network: string, utxos: UTXO[]): Promise<UTXO[]>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findUtxoForInscriptionId = findUtxoForInscriptionId;
4
+ exports.findUtxosWithoutInscriptions = findUtxosWithoutInscriptions;
5
+ const inscription_1 = require("../inscription");
6
+ const ordinal_api_1 = require("../ordinal-api");
7
+ async function findUtxoForInscriptionId(esploraClient, ordinalsClient, utxos, inscriptionId) {
8
+ const { txid, index } = ordinal_api_1.InscriptionId.fromString(inscriptionId);
9
+ for (const utxo of utxos) {
10
+ if (utxo.confirmed) {
11
+ const inscriptionUtxo = await ordinalsClient.getInscriptionsFromOutPoint(utxo);
12
+ if (inscriptionUtxo.inscriptions && inscriptionUtxo.inscriptions.includes(inscriptionId)) {
13
+ return utxo;
14
+ }
15
+ }
16
+ else if (txid == utxo.txid) {
17
+ const inscriptions = await (0, inscription_1.getTxInscriptions)(esploraClient, utxo.txid);
18
+ if (typeof inscriptions[index] !== 'undefined') {
19
+ return utxo;
20
+ }
21
+ }
22
+ }
23
+ return undefined;
24
+ }
25
+ async function findUtxosWithoutInscriptions(network, utxos) {
26
+ const ordinalsClient = new ordinal_api_1.DefaultOrdinalsClient(network);
27
+ const safeUtxos = [];
28
+ await Promise.all([
29
+ utxos.map(async (utxo) => {
30
+ if (utxo.confirmed) {
31
+ const inscription = await ordinalsClient.getInscriptionsFromOutPoint({
32
+ txid: utxo.txid,
33
+ vout: utxo.vout
34
+ });
35
+ if (inscription.inscriptions.length === 0) {
36
+ safeUtxos.push(utxo);
37
+ }
38
+ }
39
+ })
40
+ ]);
41
+ return safeUtxos;
42
+ }
43
+ //# sourceMappingURL=inscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inscriptions.js","sourceRoot":"","sources":["../../src/wallet/inscriptions.ts"],"names":[],"mappings":";;AAIA,4DA0BC;AAED,oEAsBC;AArDD,gDAAmD;AACnD,gDAAsF;AAE/E,KAAK,UAAU,wBAAwB,CAC1C,aAA4B,EAC5B,cAA8B,EAC9B,KAAa,EACb,aAAqB;IAIrB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,2BAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IAE/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAA;YAC9E,IAAI,eAAe,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvF,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAiB,EAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEvE,IAAI,OAAO,YAAY,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAAC,OAAe,EAAE,KAAa;IAC7E,MAAM,cAAc,GAAG,IAAI,mCAAqB,CAAC,OAAO,CAAC,CAAC;IAE1D,MAAM,SAAS,GAAW,EAAE,CAAC;IAG7B,MAAM,OAAO,CAAC,GAAG,CAAC;QACd,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC;oBACjE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;iBAClB,CAAC,CAAC;gBAEH,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;QACL,CAAC,CAAC;KACL,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Transaction } from '@scure/btc-signer';
2
+ import { AddressType } from 'bitcoin-address-validation';
3
+ import { UTXO } from '../esplora';
4
+ export type BitcoinNetworkName = 'mainnet' | 'testnet';
5
+ export declare const getBtcNetwork: (name: BitcoinNetworkName) => {
6
+ bech32: string;
7
+ pubKeyHash: number;
8
+ scriptHash: number;
9
+ wif: number;
10
+ };
11
+ export interface Input {
12
+ txid: string;
13
+ index: number;
14
+ witness_script?: Uint8Array;
15
+ redeemScript?: Uint8Array;
16
+ witnessUtxo?: {
17
+ script: Uint8Array;
18
+ amount: bigint;
19
+ };
20
+ nonWitnessUtxo?: Uint8Array;
21
+ }
22
+ export declare function createTransfer(network: BitcoinNetworkName, addressType: AddressType, fromAddress: string, toAddress: string, amount: number, publicKey?: string, opReturnData?: string, confirmationTarget?: number): Promise<Transaction>;
23
+ export declare function getInputFromUtxoAndTx(network: BitcoinNetworkName, utxo: UTXO, transaction: Transaction, addressType: AddressType, pubKey?: string): Input;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBtcNetwork = void 0;
4
+ exports.createTransfer = createTransfer;
5
+ exports.getInputFromUtxoAndTx = getInputFromUtxoAndTx;
6
+ const btc_signer_1 = require("@scure/btc-signer");
7
+ const base_1 = require("@scure/base");
8
+ const bitcoin_address_validation_1 = require("bitcoin-address-validation");
9
+ const esplora_1 = require("../esplora");
10
+ const bitcoinNetworks = {
11
+ mainnet: btc_signer_1.NETWORK,
12
+ testnet: btc_signer_1.TEST_NETWORK
13
+ };
14
+ const getBtcNetwork = (name) => {
15
+ return bitcoinNetworks[name];
16
+ };
17
+ exports.getBtcNetwork = getBtcNetwork;
18
+ async function createTransfer(network, addressType, fromAddress, toAddress, amount, publicKey, opReturnData, confirmationTarget = 3) {
19
+ const esploraClient = new esplora_1.DefaultEsploraClient(network);
20
+ const [confirmedUtxos, feeRate] = await Promise.all([
21
+ esploraClient.getAddressUtxos(fromAddress),
22
+ esploraClient.getFeeEstimate(confirmationTarget)
23
+ ]);
24
+ if (confirmedUtxos.length === 0) {
25
+ throw new Error('No confirmed UTXOs');
26
+ }
27
+ let possibleInputs = [];
28
+ await Promise.all(confirmedUtxos.map(async (utxo) => {
29
+ const hex = await esploraClient.getTransactionHex(utxo.txid);
30
+ const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, 'hex'), { allowUnknownOutputs: true });
31
+ const input = getInputFromUtxoAndTx(network, utxo, transaction, addressType, publicKey);
32
+ possibleInputs.push(input);
33
+ }));
34
+ const outputs = [
35
+ {
36
+ address: toAddress,
37
+ amount: BigInt(amount)
38
+ }
39
+ ];
40
+ if (opReturnData) {
41
+ if (opReturnData.startsWith('0x')) {
42
+ opReturnData = opReturnData.slice(2);
43
+ }
44
+ outputs.push({
45
+ script: btc_signer_1.Script.encode(['RETURN', base_1.hex.decode(opReturnData)]),
46
+ amount: BigInt(0)
47
+ });
48
+ }
49
+ const transaction = (0, btc_signer_1.selectUTXO)(possibleInputs, outputs, 'default', {
50
+ changeAddress: fromAddress,
51
+ feePerByte: BigInt(Math.ceil(feeRate)),
52
+ bip69: true,
53
+ createTx: true,
54
+ network: (0, exports.getBtcNetwork)(network),
55
+ allowUnknownOutputs: true,
56
+ allowLegacyWitnessUtxo: true
57
+ });
58
+ if (!transaction || !transaction.tx) {
59
+ throw new Error('Failed to create transaction. Do you have enough funds?');
60
+ }
61
+ return transaction.tx;
62
+ }
63
+ function getInputFromUtxoAndTx(network, utxo, transaction, addressType, pubKey) {
64
+ const output = transaction.getOutput(utxo.vout);
65
+ let redeemScript = {};
66
+ if (addressType === bitcoin_address_validation_1.AddressType.p2sh) {
67
+ const inner = (0, btc_signer_1.p2wpkh)(Buffer.from(pubKey, 'hex'), (0, exports.getBtcNetwork)(network));
68
+ redeemScript = (0, btc_signer_1.p2sh)(inner);
69
+ }
70
+ const scriptMixin = {
71
+ ...redeemScript
72
+ };
73
+ const nonWitnessUtxo = {
74
+ nonWitnessUtxo: Buffer.from(transaction.hex, 'hex')
75
+ };
76
+ const witnessUtxo = {
77
+ witnessUtxo: {
78
+ script: output.script,
79
+ amount: output.amount
80
+ }
81
+ };
82
+ const witnessMixin = transaction.hasWitnesses ? witnessUtxo : nonWitnessUtxo;
83
+ const input = {
84
+ txid: utxo.txid,
85
+ index: utxo.vout,
86
+ ...scriptMixin,
87
+ ...witnessMixin
88
+ };
89
+ return input;
90
+ }
91
+ //# sourceMappingURL=utxo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../../src/wallet/utxo.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.2.0",
3
+ "version": "1.3.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -18,7 +18,7 @@
18
18
  "README.md"
19
19
  ],
20
20
  "devDependencies": {
21
- "@types/node": "^20.11.25",
21
+ "@types/node": "^20.14.8",
22
22
  "@types/yargs": "^17.0.32",
23
23
  "ecpair": "^2.1.0",
24
24
  "mocha": "^10.3.0",
@@ -29,6 +29,9 @@
29
29
  "yargs": "^17.5.1"
30
30
  },
31
31
  "dependencies": {
32
- "bitcoinjs-lib": "^6.1.5"
32
+ "@scure/base": "^1.1.7",
33
+ "@scure/btc-signer": "^1.3.2",
34
+ "bitcoin-address-validation": "^2.2.3",
35
+ "bitcoinjs-lib": "^6.1.6"
33
36
  }
34
- }
37
+ }