@gobob/bob-sdk 2.3.4 → 2.3.6

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 (43) hide show
  1. package/dist/esplora.js +13 -13
  2. package/dist/esplora.js.map +1 -1
  3. package/dist/gateway/client.d.ts +4 -3
  4. package/dist/gateway/client.js +76 -64
  5. package/dist/gateway/client.js.map +1 -1
  6. package/dist/gateway/index.d.ts +2 -2
  7. package/dist/gateway/tokens.d.ts +4 -2
  8. package/dist/gateway/tokens.js +157 -71
  9. package/dist/gateway/tokens.js.map +1 -1
  10. package/dist/gateway/types.d.ts +8 -8
  11. package/dist/gateway/types.js +0 -2
  12. package/dist/gateway/types.js.map +1 -1
  13. package/dist/helpers.d.ts +2 -2
  14. package/dist/helpers.js +5 -3
  15. package/dist/helpers.js.map +1 -1
  16. package/dist/index.d.ts +7 -7
  17. package/dist/inscription.d.ts +2 -2
  18. package/dist/inscription.js +11 -13
  19. package/dist/inscription.js.map +1 -1
  20. package/dist/ordinal-api/index.d.ts +1 -1
  21. package/dist/ordinal-api/index.js +11 -11
  22. package/dist/ordinals/commit.d.ts +2 -2
  23. package/dist/ordinals/index.d.ts +3 -3
  24. package/dist/ordinals/index.js +1 -1
  25. package/dist/ordinals/reveal.d.ts +3 -3
  26. package/dist/ordinals/reveal.js.map +1 -1
  27. package/dist/ordinals/signer.d.ts +1 -1
  28. package/dist/relay.d.ts +1 -1
  29. package/dist/relay.js +5 -6
  30. package/dist/relay.js.map +1 -1
  31. package/dist/scripts/relay-genesis.js +47 -47
  32. package/dist/scripts/relay-genesis.js.map +1 -1
  33. package/dist/scripts/relay-retarget.js +33 -33
  34. package/dist/utils.d.ts +2 -2
  35. package/dist/utils.js +19 -17
  36. package/dist/utils.js.map +1 -1
  37. package/dist/wallet/index.d.ts +2 -2
  38. package/dist/wallet/inscriptions.d.ts +2 -2
  39. package/dist/wallet/inscriptions.js +1 -1
  40. package/dist/wallet/utxo.d.ts +4 -4
  41. package/dist/wallet/utxo.js +13 -13
  42. package/dist/wallet/utxo.js.map +1 -1
  43. package/package.json +12 -6
@@ -1,5 +1,5 @@
1
- import * as bitcoin from "bitcoinjs-lib";
2
- import { RemoteSigner } from "./signer";
3
- import { Inscription } from "../inscription";
1
+ import * as bitcoin from 'bitcoinjs-lib';
2
+ import { RemoteSigner } from './signer';
3
+ import { Inscription } from '../inscription';
4
4
  export { RemoteSigner };
5
5
  export declare function inscribeData(signer: RemoteSigner, toAddress: string, feeRate: number, inscription: Inscription, postage?: number): Promise<bitcoin.Transaction>;
@@ -51,7 +51,7 @@ function estimateTxSize(network, publicKey, commitTxData, toAddress, amount) {
51
51
  }
52
52
  async function inscribeData(signer, toAddress, feeRate, inscription, postage = 10000) {
53
53
  const bitcoinNetwork = await signer.getNetwork();
54
- const publicKey = Buffer.from(await signer.getPublicKey(), "hex");
54
+ const publicKey = Buffer.from(await signer.getPublicKey(), 'hex');
55
55
  const commitTxData = (0, commit_1.createCommitTxData)(bitcoinNetwork, publicKey, inscription);
56
56
  const revealTxSize = estimateTxSize(bitcoinNetwork, publicKey, commitTxData, toAddress, postage);
57
57
  const revealFee = revealTxSize * feeRate;
@@ -1,6 +1,6 @@
1
- import * as bitcoin from "bitcoinjs-lib";
2
- import { RemoteSigner } from "./signer";
3
- import { CommitTxData } from "./commit";
1
+ import * as bitcoin from 'bitcoinjs-lib';
2
+ import { RemoteSigner } from './signer';
3
+ import { CommitTxData } from './commit';
4
4
  export interface CommitTxResult {
5
5
  tx: bitcoin.Transaction;
6
6
  outputIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wCA4BC;AAgBD,oCAQC;AArED,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,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEK,KAAK,UAAU,YAAY,CAAC,MAAoB,EAAE,YAA0B,EAAE,IAAkB;IAEnG,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
+ {"version":3,"file":"reveal.js","sourceRoot":"","sources":["../../src/ordinals/reveal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,wCA4BC;AAiBD,oCAQC;AAtED,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;IAGvC,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,CAAC;AAbW,QAAA,eAAe,mBAa1B;AAEK,KAAK,UAAU,YAAY,CAAC,MAAoB,EAAE,YAA0B,EAAE,IAAkB;IAEnG,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,4 @@
1
- import { Network, Psbt, Signer, Transaction } from "bitcoinjs-lib";
1
+ import { Network, Psbt, Signer, Transaction } from 'bitcoinjs-lib';
2
2
  export declare class DummySigner implements Signer {
3
3
  publicKey: Buffer;
4
4
  constructor(publicKey: Buffer);
package/dist/relay.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { EsploraClient } from "./esplora";
1
+ import { EsploraClient } from './esplora';
2
2
  export interface BitcoinTxInfo {
3
3
  version: string;
4
4
  inputVector: string;
package/dist/relay.js CHANGED
@@ -13,12 +13,11 @@ async function getBitcoinTxInfo(esploraClient, txId, forWitness) {
13
13
  const locktimeBuffer = Buffer.allocUnsafe(4);
14
14
  locktimeBuffer.writeInt32LE(tx.locktime);
15
15
  return {
16
- version: versionBuffer.toString("hex"),
17
- inputVector: (0, utils_1.encodeRawInput)(tx).toString("hex"),
18
- outputVector: (0, utils_1.encodeRawOutput)(tx).toString("hex"),
19
- locktime: locktimeBuffer.toString("hex"),
20
- witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString("hex") : undefined,
21
- witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString("hex") : undefined,
16
+ version: versionBuffer.toString('hex'),
17
+ inputVector: (0, utils_1.encodeRawInput)(tx).toString('hex'),
18
+ outputVector: (0, utils_1.encodeRawOutput)(tx).toString('hex'),
19
+ locktime: locktimeBuffer.toString('hex'),
20
+ witnessVector: forWitness ? (0, utils_1.encodeRawWitness)(tx).toString('hex') : undefined,
22
21
  };
23
22
  }
24
23
  async function getBitcoinTxProof(esploraClient, txId, txProofDifficultyFactor) {
package/dist/relay.js.map CHANGED
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":";;AAqDA,4CAqBC;AAmCD,8CAaC;AA0BD,8CAiBC;AAlKD,iDAA4C;AAQ5C,mCAA4E;AA0CrE,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;KAC/E,CAAC;AACN,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,CAAC;AACN,CAAC;AA0BM,KAAK,UAAU,iBAAiB,CACnC,aAA4B,EAC5B,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CACzC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
@@ -8,42 +8,42 @@ const yargs_1 = __importDefault(require("yargs"));
8
8
  const helpers_1 = require("yargs/helpers");
9
9
  const node_child_process_1 = require("node:child_process");
10
10
  const args = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
11
- .option("init-height", {
12
- description: "Height of the bitcoin chain to initialize the relay at",
11
+ .option('init-height', {
12
+ description: 'Height of the bitcoin chain to initialize the relay at',
13
13
  demandOption: true,
14
14
  })
15
- .option("private-key", {
16
- description: "Private key to submit with",
17
- type: "string",
15
+ .option('private-key', {
16
+ description: 'Private key to submit with',
17
+ type: 'string',
18
18
  })
19
- .option("dev", {
20
- description: "Deploy the contracts locally",
21
- type: "boolean",
19
+ .option('dev', {
20
+ description: 'Deploy the contracts locally',
21
+ type: 'boolean',
22
22
  })
23
- .option("testnet", {
24
- description: "Use the testnet relay contract which can override the difficulty",
25
- type: "boolean",
23
+ .option('testnet', {
24
+ description: 'Use the testnet relay contract which can override the difficulty',
25
+ type: 'boolean',
26
26
  })
27
- .option("proof-length", {
28
- description: "The default proof length for retargets",
29
- type: "number",
27
+ .option('proof-length', {
28
+ description: 'The default proof length for retargets',
29
+ type: 'number',
30
30
  default: 1,
31
31
  })
32
- .option("network", {
33
- description: "Bitcoin network to use",
34
- type: "string",
32
+ .option('network', {
33
+ description: 'Bitcoin network to use',
34
+ type: 'string',
35
35
  demandOption: true,
36
36
  })
37
- .option("rpc-url", {
38
- description: "ETH RPC URL",
39
- type: "string",
37
+ .option('rpc-url', {
38
+ description: 'ETH RPC URL',
39
+ type: 'string',
40
40
  })
41
- .option("verifier-url", {
42
- description: "Verifier URL",
43
- type: "string",
41
+ .option('verifier-url', {
42
+ description: 'Verifier URL',
43
+ type: 'string',
44
44
  }).argv;
45
45
  main().catch((err) => {
46
- console.log("Error thrown by script:");
46
+ console.log('Error thrown by script:');
47
47
  console.log(err);
48
48
  process.exit(1);
49
49
  });
@@ -53,62 +53,62 @@ function range(size, startAt = 0) {
53
53
  async function getRetargetHeaders(esploraClient, nextRetargetHeight, proofLength) {
54
54
  const beforeRetarget = await Promise.all(range(proofLength, nextRetargetHeight - proofLength).map((height) => esploraClient.getBlockHeaderAt(height)));
55
55
  const afterRetarget = await Promise.all(range(proofLength, nextRetargetHeight).map((height) => esploraClient.getBlockHeaderAt(height)));
56
- return beforeRetarget.concat(afterRetarget).join("");
56
+ return beforeRetarget.concat(afterRetarget).join('');
57
57
  }
58
58
  async function main() {
59
- const esploraClient = new esplora_1.EsploraClient(args["network"]);
60
- let initHeight = args["init-height"];
61
- if (initHeight == "latest") {
59
+ const esploraClient = new esplora_1.EsploraClient(args['network']);
60
+ let initHeight = args['init-height'];
61
+ if (initHeight == 'latest') {
62
62
  const currentHeight = await esploraClient.getLatestHeight();
63
63
  initHeight = currentHeight - (currentHeight % 2016) - 2016;
64
64
  console.log(`Using block ${initHeight}`);
65
65
  }
66
66
  if (initHeight % 2016 != 0) {
67
- throw new Error("Invalid genesis height: must be multiple of 2016");
67
+ throw new Error('Invalid genesis height: must be multiple of 2016');
68
68
  }
69
69
  const genesis = await esploraClient.getBlockHeaderAt(initHeight);
70
- const proofLength = args["proof-length"];
70
+ const proofLength = args['proof-length'];
71
71
  const nextRetargetHeight = initHeight + 2016;
72
72
  console.log(`Next retarget height: ${nextRetargetHeight}`);
73
73
  const retargetHeaders = await getRetargetHeaders(esploraClient, nextRetargetHeight, proofLength);
74
74
  let rpcUrl;
75
75
  let verifyOpts;
76
- if (args["dev"]) {
77
- rpcUrl = "http://localhost:8545";
76
+ if (args['dev']) {
77
+ rpcUrl = 'http://localhost:8545';
78
78
  }
79
- else if (args["rpc-url"] == "testnet") {
80
- rpcUrl = "https://bob-sepolia.rpc.gobob.xyz/";
79
+ else if (args['rpc-url'] == 'testnet') {
80
+ rpcUrl = 'https://bob-sepolia.rpc.gobob.xyz/';
81
81
  verifyOpts = "--verify --verifier blockscout --verifier-url 'https://bob-sepolia.explorer.gobob.xyz/api'";
82
82
  }
83
- else if (args["rpc-url"] == "mainnet") {
84
- rpcUrl = "https://rpc.gobob.xyz/";
83
+ else if (args['rpc-url'] == 'mainnet') {
84
+ rpcUrl = 'https://rpc.gobob.xyz/';
85
85
  verifyOpts = "--verify --verifier blockscout --verifier-url 'https://explorer.gobob.xyz/api'";
86
86
  }
87
87
  else {
88
- rpcUrl = args["rpc-url"];
89
- verifyOpts = `--verify --verifier blockscout --verifier-url ${args["verifier-url"]}`;
88
+ rpcUrl = args['rpc-url'];
89
+ verifyOpts = `--verify --verifier blockscout --verifier-url ${args['verifier-url']}`;
90
90
  }
91
91
  let privateKey;
92
- if (args["private-key"]) {
93
- privateKey = args["private-key"];
92
+ if (args['private-key']) {
93
+ privateKey = args['private-key'];
94
94
  }
95
- else if (args["dev"]) {
96
- privateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
95
+ else if (args['dev']) {
96
+ privateKey = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
97
97
  }
98
98
  else {
99
- throw new Error("No private key");
99
+ throw new Error('No private key');
100
100
  }
101
- let env = [
101
+ const env = [
102
102
  `GENESIS_PROOF_LENGTH=${proofLength}`,
103
103
  `GENESIS_HEIGHT=${initHeight}`,
104
104
  `GENESIS_HEADER=${genesis}`,
105
105
  `RETARGET_HEADERS=${retargetHeaders}`,
106
106
  `PRIVATE_KEY=${privateKey}`,
107
107
  ];
108
- if (args["testnet"]) {
109
- env.push("TESTNET=true");
108
+ if (args['testnet']) {
109
+ env.push('TESTNET=true');
110
110
  }
111
- (0, node_child_process_1.exec)(`${env.join(" ")} forge script ../script/RelayGenesis.s.sol:RelayGenesisScript --rpc-url '${rpcUrl}' ${verifyOpts} --broadcast --priority-gas-price 1`, { maxBuffer: 1024 * 5000 }, (err, stdout, stderr) => {
111
+ (0, node_child_process_1.exec)(`${env.join(' ')} forge script ../script/RelayGenesis.s.sol:RelayGenesisScript --rpc-url '${rpcUrl}' ${verifyOpts} --broadcast --priority-gas-price 1`, { maxBuffer: 1024 * 5000 }, (err, stdout, stderr) => {
112
112
  if (err) {
113
113
  throw new Error(`Failed to run command: ${err}`);
114
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relay-genesis.js","sourceRoot":"","sources":["../../src/scripts/relay-genesis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-genesis.js","sourceRoot":"","sources":["../../src/scripts/relay-genesis.ts"],"names":[],"mappings":";;;;;AAAA,wCAA2C;AAC3C,kDAA0B;AAC1B,2CAAwC;AACxC,2DAA0C;AAE1C,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC,aAAa,EAAE;IACnB,WAAW,EAAE,wDAAwD;IACrE,YAAY,EAAE,IAAI;CACrB,CAAC;KACD,MAAM,CAAC,aAAa,EAAE;IACnB,WAAW,EAAE,4BAA4B;IACzC,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,CAAC,KAAK,EAAE;IACX,WAAW,EAAE,8BAA8B;IAC3C,IAAI,EAAE,SAAS;CAClB,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,WAAW,EAAE,kEAAkE;IAC/E,IAAI,EAAE,SAAS;CAClB,CAAC;KACD,MAAM,CAAC,cAAc,EAAE;IACpB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC;CACb,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,WAAW,EAAE,wBAAwB;IACrC,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;CACrB,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,CAAC,cAAc,EAAE;IACpB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC,IAAI,CAAC;AAEZ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,SAAS,KAAK,CAAC,IAAY,EAAE,OAAO,GAAG,CAAC;IACpC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,aAA4B,EAAE,kBAA0B,EAAE,WAAmB;IAC3G,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,WAAW,EAAE,kBAAkB,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAC/G,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CACjG,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEzD,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;QAC5D,UAAU,GAAG,aAAa,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEjE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,yBAAyB,kBAAkB,EAAE,CAAC,CAAC;IAE3D,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAEjG,IAAI,MAAc,CAAC;IACnB,IAAI,UAA8B,CAAC;IACnC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACd,MAAM,GAAG,uBAAuB,CAAC;IACrC,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,MAAM,GAAG,oCAAoC,CAAC;QAC9C,UAAU,GAAG,4FAA4F,CAAC;IAC9G,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,MAAM,GAAG,wBAAwB,CAAC;QAClC,UAAU,GAAG,gFAAgF,CAAC;IAClG,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,UAAU,GAAG,iDAAiD,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACtB,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,UAAU,GAAG,oEAAoE,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,GAAG,GAAG;QACR,wBAAwB,WAAW,EAAE;QACrC,kBAAkB,UAAU,EAAE;QAC9B,kBAAkB,OAAO,EAAE;QAC3B,oBAAoB,eAAe,EAAE;QACrC,eAAe,UAAU,EAAE;KAC9B,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,IAAA,yBAAI,EACA,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,4EAA4E,MAAM,KAAK,UAAU,qCAAqC,EACtJ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,EAC1B,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;QACzC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACrD,CAAC;QAGD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC,CACJ,CAAC;AACN,CAAC"}
@@ -8,31 +8,31 @@ const yargs_1 = __importDefault(require("yargs"));
8
8
  const helpers_1 = require("yargs/helpers");
9
9
  const node_child_process_1 = require("node:child_process");
10
10
  const args = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
11
- .env("RELAY")
12
- .option("private-key", {
13
- description: "Private key to submit with",
14
- type: "string",
11
+ .env('RELAY')
12
+ .option('private-key', {
13
+ description: 'Private key to submit with',
14
+ type: 'string',
15
15
  })
16
- .option("dev", {
17
- description: "Deploy the contracts locally",
18
- type: "boolean",
16
+ .option('dev', {
17
+ description: 'Deploy the contracts locally',
18
+ type: 'boolean',
19
19
  })
20
- .option("network", {
21
- description: "Bitcoin network to use",
22
- type: "string",
20
+ .option('network', {
21
+ description: 'Bitcoin network to use',
22
+ type: 'string',
23
23
  demandOption: true,
24
24
  })
25
- .option("rpc-url", {
26
- description: "ETH RPC URL",
27
- type: "string",
25
+ .option('rpc-url', {
26
+ description: 'ETH RPC URL',
27
+ type: 'string',
28
28
  })
29
- .option("relay-address", {
30
- description: "Relay address",
31
- type: "string",
29
+ .option('relay-address', {
30
+ description: 'Relay address',
31
+ type: 'string',
32
32
  demandOption: true,
33
33
  }).argv;
34
34
  main().catch((err) => {
35
- console.log("Error thrown by script:");
35
+ console.log('Error thrown by script:');
36
36
  console.log(err);
37
37
  process.exit(1);
38
38
  });
@@ -42,33 +42,33 @@ function range(size, startAt = 0) {
42
42
  async function getRetargetHeaders(esploraClient, nextRetargetHeight, proofLength) {
43
43
  const beforeRetarget = await Promise.all(range(proofLength, nextRetargetHeight - proofLength).map((height) => esploraClient.getBlockHeaderAt(height)));
44
44
  const afterRetarget = await Promise.all(range(proofLength, nextRetargetHeight).map((height) => esploraClient.getBlockHeaderAt(height)));
45
- return beforeRetarget.concat(afterRetarget).join("");
45
+ return beforeRetarget.concat(afterRetarget).join('');
46
46
  }
47
47
  async function main() {
48
- const esploraClient = new esplora_1.EsploraClient(args["network"]);
48
+ const esploraClient = new esplora_1.EsploraClient(args['network']);
49
49
  let privateKey;
50
- if (args["private-key"]) {
51
- privateKey = args["private-key"];
50
+ if (args['private-key']) {
51
+ privateKey = args['private-key'];
52
52
  }
53
- else if (args["dev"]) {
54
- privateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
53
+ else if (args['dev']) {
54
+ privateKey = '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80';
55
55
  }
56
56
  else {
57
- throw new Error("No private key");
57
+ throw new Error('No private key');
58
58
  }
59
- const relayAddress = args["relay-address"];
59
+ const relayAddress = args['relay-address'];
60
60
  let rpcUrl;
61
- if (args["dev"]) {
62
- rpcUrl = "http://localhost:8545";
61
+ if (args['dev']) {
62
+ rpcUrl = 'http://localhost:8545';
63
63
  }
64
- else if (args["rpc-url"] == "testnet") {
65
- rpcUrl = "https://bob-sepolia.rpc.gobob.xyz/";
64
+ else if (args['rpc-url'] == 'testnet') {
65
+ rpcUrl = 'https://bob-sepolia.rpc.gobob.xyz/';
66
66
  }
67
- else if (args["rpc-url"] == "mainnet") {
68
- rpcUrl = "https://rpc.gobob.xyz/";
67
+ else if (args['rpc-url'] == 'mainnet') {
68
+ rpcUrl = 'https://rpc.gobob.xyz/';
69
69
  }
70
70
  else {
71
- rpcUrl = args["rpc-url"];
71
+ rpcUrl = args['rpc-url'];
72
72
  }
73
73
  const currentEpoch = await new Promise((resolve, reject) => {
74
74
  (0, node_child_process_1.exec)(`cast call ${relayAddress} "currentEpoch() (uint256)" --rpc-url '${rpcUrl}'`, (err, stdout, _stderr) => {
@@ -93,7 +93,7 @@ async function main() {
93
93
  try {
94
94
  await esploraClient.getBlockHash(nextRetargetHeight + proofLength);
95
95
  }
96
- catch (e) {
96
+ catch (_) {
97
97
  console.log(`Cannot retarget without ${proofLength} headers after ${nextRetargetHeight}. Exiting.`);
98
98
  return;
99
99
  }
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Block } from "bitcoinjs-lib";
2
- import { Transaction } from "bitcoinjs-lib/src/transaction";
1
+ import { Block } from 'bitcoinjs-lib';
2
+ import { Transaction } from 'bitcoinjs-lib/src/transaction';
3
3
  export declare function encodeRawInput(tx: Transaction): Buffer;
4
4
  export declare function encodeRawOutput(tx: Transaction): Buffer;
5
5
  export declare function encodeRawWitness(tx: Transaction): Buffer;
package/dist/utils.js CHANGED
@@ -36,13 +36,14 @@ function varSliceSize(someScript) {
36
36
  return bufferutils_1.varuint.encodingLength(length) + length;
37
37
  }
38
38
  function encodeRawInput(tx) {
39
- const inputSize = bufferutils_1.varuint.encodingLength(tx.ins.length) + tx.ins.reduce((sum, input) => {
40
- return sum + 40 + varSliceSize(input.script);
41
- }, 0);
39
+ const inputSize = bufferutils_1.varuint.encodingLength(tx.ins.length) +
40
+ tx.ins.reduce((sum, input) => {
41
+ return sum + 40 + varSliceSize(input.script);
42
+ }, 0);
42
43
  const inputBuffer = Buffer.allocUnsafe(inputSize);
43
44
  const inputBufferWriter = new bufferutils_1.BufferWriter(inputBuffer, 0);
44
45
  inputBufferWriter.writeVarInt(tx.ins.length);
45
- tx.ins.forEach(txIn => {
46
+ tx.ins.forEach((txIn) => {
46
47
  inputBufferWriter.writeSlice(txIn.hash);
47
48
  inputBufferWriter.writeUInt32(txIn.index);
48
49
  inputBufferWriter.writeVarSlice(txIn.script);
@@ -54,13 +55,14 @@ function isOutput(out) {
54
55
  return out.value !== undefined;
55
56
  }
56
57
  function encodeRawOutput(tx) {
57
- const outputSize = bufferutils_1.varuint.encodingLength(tx.outs.length) + tx.outs.reduce((sum, output) => {
58
- return sum + 8 + varSliceSize(output.script);
59
- }, 0);
58
+ const outputSize = bufferutils_1.varuint.encodingLength(tx.outs.length) +
59
+ tx.outs.reduce((sum, output) => {
60
+ return sum + 8 + varSliceSize(output.script);
61
+ }, 0);
60
62
  const outputBuffer = Buffer.allocUnsafe(outputSize);
61
63
  const outputBufferWriter = new bufferutils_1.BufferWriter(outputBuffer, 0);
62
64
  outputBufferWriter.writeVarInt(tx.outs.length);
63
- tx.outs.forEach(txOut => {
65
+ tx.outs.forEach((txOut) => {
64
66
  if (isOutput(txOut)) {
65
67
  outputBufferWriter.writeUInt64(txOut.value);
66
68
  }
@@ -84,7 +86,7 @@ function encodeRawWitness(tx) {
84
86
  }, 0);
85
87
  const witnessBuffer = Buffer.allocUnsafe(witnessSize);
86
88
  const witnessBufferWriter = new bufferutils_1.BufferWriter(witnessBuffer, 0);
87
- tx.ins.forEach(input => {
89
+ tx.ins.forEach((input) => {
88
90
  witnessBufferWriter.writeVector(input.witness);
89
91
  });
90
92
  return witnessBuffer;
@@ -99,10 +101,10 @@ function chunkArray(array, chunkSize) {
99
101
  return chunkedArray;
100
102
  }
101
103
  function createMerkleBranchAndRoot(hashes, index) {
102
- let merkle = [];
104
+ const merkle = [];
103
105
  while (hashes.length > 1) {
104
106
  if (hashes.length % 2 != 0) {
105
- let last = hashes[hashes.length - 1];
107
+ const last = hashes[hashes.length - 1];
106
108
  hashes.push(last);
107
109
  }
108
110
  if (index % 2 == 0) {
@@ -113,7 +115,7 @@ function createMerkleBranchAndRoot(hashes, index) {
113
115
  }
114
116
  merkle.push(hashes[index]);
115
117
  index = Math.floor(index / 2);
116
- hashes = chunkArray(hashes, 2).map(pair => (0, crypto_1.hash256)(Buffer.concat([pair[0], pair[1]])));
118
+ hashes = chunkArray(hashes, 2).map((pair) => (0, crypto_1.hash256)(Buffer.concat([pair[0], pair[1]])));
117
119
  }
118
120
  return {
119
121
  merkle,
@@ -121,13 +123,13 @@ function createMerkleBranchAndRoot(hashes, index) {
121
123
  };
122
124
  }
123
125
  function getMerkleProof(block, txHash, forWitness) {
124
- const txIds = block.transactions.map(tx => tx.getHash(forWitness));
125
- const pos = txIds.map(value => value.toString("hex")).indexOf(txHash);
126
+ const txIds = block.transactions.map((tx) => tx.getHash(forWitness));
127
+ const pos = txIds.map((value) => value.toString('hex')).indexOf(txHash);
126
128
  const merkleAndRoot = createMerkleBranchAndRoot(txIds, pos);
127
129
  return {
128
130
  pos: pos,
129
- proof: merkleAndRoot.merkle.map(value => value.toString("hex")).join(''),
130
- root: merkleAndRoot.root.toString("hex"),
131
+ proof: merkleAndRoot.merkle.map((value) => value.toString('hex')).join(''),
132
+ root: merkleAndRoot.root.toString('hex'),
131
133
  };
132
134
  }
133
135
  function estimateTxFee(feeRate, numInputs = 1) {
@@ -135,7 +137,7 @@ function estimateTxFee(feeRate, numInputs = 1) {
135
137
  for (let i = 0; i < numInputs; i++) {
136
138
  tx.addInput(Buffer.alloc(32, 0), 0, 0xfffffffd, Buffer.alloc(0));
137
139
  }
138
- tx.ins.map(tx_input => (tx_input.witness = [Buffer.alloc(33 + 32 + 7, 0), Buffer.alloc(33, 0)]));
140
+ tx.ins.map((tx_input) => (tx_input.witness = [Buffer.alloc(33 + 32 + 7, 0), Buffer.alloc(33, 0)]));
139
141
  tx.addOutput(Buffer.alloc(22, 0), 1000);
140
142
  tx.addOutput(Buffer.alloc(22, 0), 1000);
141
143
  tx.addOutput(bitcoin.script.compile([bitcoin.opcodes.OP_RETURN, Buffer.alloc(20, 0)]), 0);
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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"}
@@ -1,2 +1,2 @@
1
- export * from "./utxo";
2
- export { validate as isValidBtcAddress } from "bitcoin-address-validation";
1
+ export * from './utxo';
2
+ export { validate as isValidBtcAddress } from 'bitcoin-address-validation';
@@ -1,4 +1,4 @@
1
- import { EsploraClient, UTXO } from "../esplora";
2
- import { OrdinalsClient } from "../ordinal-api";
1
+ import { EsploraClient, UTXO } from '../esplora';
2
+ import { OrdinalsClient } from '../ordinal-api';
3
3
  export declare function findUtxoForInscriptionId(esploraClient: EsploraClient, ordinalsClient: OrdinalsClient, utxos: UTXO[], inscriptionId: string): Promise<UTXO | undefined>;
4
4
  export declare function findUtxosWithoutInscriptions(network: string, utxos: UTXO[]): Promise<UTXO[]>;
@@ -15,7 +15,7 @@ async function findUtxoForInscriptionId(esploraClient, ordinalsClient, utxos, in
15
15
  }
16
16
  else if (txid == utxo.txid) {
17
17
  const inscriptions = await (0, inscription_1.getTxInscriptions)(esploraClient, utxo.txid);
18
- if (typeof inscriptions[index] !== "undefined") {
18
+ if (typeof inscriptions[index] !== 'undefined') {
19
19
  return utxo;
20
20
  }
21
21
  }
@@ -1,7 +1,7 @@
1
- import { Transaction } from "@scure/btc-signer";
2
- import { AddressType, Network } from "bitcoin-address-validation";
3
- import { UTXO } from "../esplora";
4
- export type BitcoinNetworkName = Exclude<Network, "regtest">;
1
+ import { Transaction } from '@scure/btc-signer';
2
+ import { AddressType, Network } from 'bitcoin-address-validation';
3
+ import { UTXO } from '../esplora';
4
+ export type BitcoinNetworkName = Exclude<Network, 'regtest'>;
5
5
  export declare const getBtcNetwork: (name: BitcoinNetworkName) => {
6
6
  bech32: string;
7
7
  pubKeyHash: number;
@@ -18,12 +18,12 @@ exports.getBtcNetwork = getBtcNetwork;
18
18
  async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opReturnData, confirmationTarget = 3) {
19
19
  const addressInfo = (0, bitcoin_address_validation_1.getAddressInfo)(fromAddress);
20
20
  const network = addressInfo.network;
21
- if (network === "regtest") {
22
- throw new Error("Bitcoin regtest not supported");
21
+ if (network === 'regtest') {
22
+ throw new Error('Bitcoin regtest not supported');
23
23
  }
24
24
  if (addressInfo.type === (bitcoin_address_validation_1.AddressType.p2sh || bitcoin_address_validation_1.AddressType.p2wsh)) {
25
25
  if (!publicKey) {
26
- throw new Error("Public key is required to spend from the selected address type");
26
+ throw new Error('Public key is required to spend from the selected address type');
27
27
  }
28
28
  }
29
29
  const esploraClient = new esplora_1.EsploraClient(addressInfo.network);
@@ -32,12 +32,12 @@ async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opRe
32
32
  esploraClient.getFeeEstimate(confirmationTarget),
33
33
  ]);
34
34
  if (confirmedUtxos.length === 0) {
35
- throw new Error("No confirmed UTXOs");
35
+ throw new Error('No confirmed UTXOs');
36
36
  }
37
- let possibleInputs = [];
37
+ const possibleInputs = [];
38
38
  await Promise.all(confirmedUtxos.map(async (utxo) => {
39
39
  const hex = await esploraClient.getTransactionHex(utxo.txid);
40
- const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, "hex"), { allowUnknownOutputs: true });
40
+ const transaction = btc_signer_1.Transaction.fromRaw(Buffer.from(hex, 'hex'), { allowUnknownOutputs: true });
41
41
  const input = getInputFromUtxoAndTx(network, utxo, transaction, addressInfo.type, publicKey);
42
42
  possibleInputs.push(input);
43
43
  }));
@@ -48,15 +48,15 @@ async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opRe
48
48
  },
49
49
  ];
50
50
  if (opReturnData) {
51
- if (opReturnData.startsWith("0x")) {
51
+ if (opReturnData.startsWith('0x')) {
52
52
  opReturnData = opReturnData.slice(2);
53
53
  }
54
54
  outputs.push({
55
- script: btc_signer_1.Script.encode(["RETURN", base_1.hex.decode(opReturnData)]),
55
+ script: btc_signer_1.Script.encode(['RETURN', base_1.hex.decode(opReturnData)]),
56
56
  amount: BigInt(0),
57
57
  });
58
58
  }
59
- const transaction = (0, btc_signer_1.selectUTXO)(possibleInputs, outputs, "default", {
59
+ const transaction = (0, btc_signer_1.selectUTXO)(possibleInputs, outputs, 'default', {
60
60
  changeAddress: fromAddress,
61
61
  feePerByte: BigInt(Math.ceil(feeRate)),
62
62
  bip69: true,
@@ -67,7 +67,7 @@ async function createBitcoinPsbt(fromAddress, toAddress, amount, publicKey, opRe
67
67
  dust: BigInt(546),
68
68
  });
69
69
  if (!transaction || !transaction.tx) {
70
- throw new Error("Failed to create transaction. Do you have enough funds?");
70
+ throw new Error('Failed to create transaction. Do you have enough funds?');
71
71
  }
72
72
  return base_1.base64.encode(transaction.tx.toPSBT(0));
73
73
  }
@@ -76,16 +76,16 @@ function getInputFromUtxoAndTx(network, utxo, transaction, addressType, publicKe
76
76
  let redeemScript = {};
77
77
  if (addressType === bitcoin_address_validation_1.AddressType.p2sh) {
78
78
  if (!publicKey) {
79
- throw new Error("Bitcoin P2SH not supported without public key");
79
+ throw new Error('Bitcoin P2SH not supported without public key');
80
80
  }
81
- const inner = (0, btc_signer_1.p2wpkh)(Buffer.from(publicKey, "hex"), (0, exports.getBtcNetwork)(network));
81
+ const inner = (0, btc_signer_1.p2wpkh)(Buffer.from(publicKey, 'hex'), (0, exports.getBtcNetwork)(network));
82
82
  redeemScript = (0, btc_signer_1.p2sh)(inner);
83
83
  }
84
84
  const scriptMixin = {
85
85
  ...redeemScript,
86
86
  };
87
87
  const nonWitnessUtxo = {
88
- nonWitnessUtxo: Buffer.from(transaction.hex, "hex"),
88
+ nonWitnessUtxo: Buffer.from(transaction.hex, 'hex'),
89
89
  };
90
90
  const witnessUtxo = {
91
91
  witnessUtxo: {