@bitgo-beta/utxo-ord 1.0.1-beta.202 → 1.0.1-beta.2021

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 (65) hide show
  1. package/README.md +7 -0
  2. package/dist/cjs/src/OrdOutput.d.ts.map +1 -0
  3. package/dist/cjs/src/OrdOutput.js +197 -0
  4. package/dist/{src → cjs/src}/OutputLayout.d.ts +3 -3
  5. package/dist/cjs/src/OutputLayout.d.ts.map +1 -0
  6. package/dist/cjs/src/OutputLayout.js +246 -0
  7. package/dist/{src → cjs/src}/SatPoint.d.ts +8 -1
  8. package/dist/cjs/src/SatPoint.d.ts.map +1 -0
  9. package/dist/cjs/src/SatPoint.js +67 -0
  10. package/dist/cjs/src/SatRange.d.ts.map +1 -0
  11. package/dist/cjs/src/SatRange.js +58 -0
  12. package/dist/cjs/src/combinations.d.ts.map +1 -0
  13. package/dist/cjs/src/combinations.js +13 -0
  14. package/dist/{src → cjs/src}/index.d.ts +2 -0
  15. package/dist/cjs/src/index.d.ts.map +1 -0
  16. package/dist/cjs/src/index.js +49 -0
  17. package/dist/cjs/src/inscriptions.d.ts +58 -0
  18. package/dist/cjs/src/inscriptions.d.ts.map +1 -0
  19. package/dist/cjs/src/inscriptions.js +94 -0
  20. package/dist/{src → cjs/src}/psbt.d.ts +33 -17
  21. package/dist/cjs/src/psbt.d.ts.map +1 -0
  22. package/dist/cjs/src/psbt.js +193 -0
  23. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  24. package/dist/esm/OrdOutput.d.ts +65 -0
  25. package/dist/esm/OrdOutput.js +192 -0
  26. package/dist/esm/OutputLayout.d.ts +47 -0
  27. package/dist/esm/OutputLayout.d.ts.map +1 -0
  28. package/dist/esm/OutputLayout.js +240 -0
  29. package/dist/esm/SatPoint.d.ts +20 -0
  30. package/dist/esm/SatPoint.d.ts.map +1 -0
  31. package/dist/esm/SatPoint.js +61 -0
  32. package/dist/esm/SatRange.d.ts +26 -0
  33. package/dist/esm/SatRange.js +53 -0
  34. package/dist/esm/combinations.d.ts +2 -0
  35. package/dist/esm/combinations.js +10 -0
  36. package/dist/esm/index.d.ts +12 -0
  37. package/dist/{src → esm}/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +10 -0
  39. package/dist/esm/inscriptions.d.ts +58 -0
  40. package/dist/esm/inscriptions.d.ts.map +1 -0
  41. package/dist/esm/inscriptions.js +89 -0
  42. package/dist/esm/psbt.d.ts +84 -0
  43. package/dist/esm/psbt.d.ts.map +1 -0
  44. package/dist/esm/psbt.js +186 -0
  45. package/package.json +27 -9
  46. package/dist/src/OrdOutput.js +0 -197
  47. package/dist/src/OutputLayout.d.ts.map +0 -1
  48. package/dist/src/OutputLayout.js +0 -248
  49. package/dist/src/SatPoint.d.ts.map +0 -1
  50. package/dist/src/SatPoint.js +0 -49
  51. package/dist/src/SatRange.js +0 -58
  52. package/dist/src/combinations.js +0 -14
  53. package/dist/src/index.js +0 -23
  54. package/dist/src/inscriptions.d.ts +0 -32
  55. package/dist/src/inscriptions.d.ts.map +0 -1
  56. package/dist/src/inscriptions.js +0 -169
  57. package/dist/src/psbt.d.ts.map +0 -1
  58. package/dist/src/psbt.js +0 -150
  59. package/dist/tsconfig.tsbuildinfo +0 -1
  60. /package/dist/{src → cjs/src}/OrdOutput.d.ts +0 -0
  61. /package/dist/{src → cjs/src}/SatRange.d.ts +0 -0
  62. /package/dist/{src → cjs/src}/combinations.d.ts +0 -0
  63. /package/dist/{src → esm}/OrdOutput.d.ts.map +0 -0
  64. /package/dist/{src → esm}/SatRange.d.ts.map +0 -0
  65. /package/dist/{src → esm}/combinations.d.ts.map +0 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SatRange = exports.InvalidSatRange = void 0;
4
+ class InvalidSatRange extends Error {
5
+ constructor(message, start, end) {
6
+ super(message);
7
+ this.start = start;
8
+ this.end = end;
9
+ }
10
+ }
11
+ exports.InvalidSatRange = InvalidSatRange;
12
+ function toRange(v) {
13
+ return typeof v === 'bigint' ? new SatRange(v, v) : v;
14
+ }
15
+ /**
16
+ * Range of satoshi, inclusive.
17
+ * Inscriptions have start === end.
18
+ */
19
+ class SatRange {
20
+ constructor(start, end) {
21
+ this.start = start;
22
+ this.end = end;
23
+ if (start < 0 || end < 0 || end < start) {
24
+ throw new InvalidSatRange(`Invalid SatRange [${start}, ${end}]`, start, end);
25
+ }
26
+ }
27
+ /**
28
+ * @param offset
29
+ * @return SatRange with start and end shifted by offset
30
+ */
31
+ shiftedBy(offset) {
32
+ return new SatRange(this.start + offset, this.end + offset);
33
+ }
34
+ /** @return true iff this intersects with _other_ */
35
+ intersectsWith(other) {
36
+ other = toRange(other);
37
+ if (this.start <= other.start) {
38
+ return other.start <= this.end;
39
+ }
40
+ return other.intersectsWith(this);
41
+ }
42
+ /** @return true iff this is superset of _other_. */
43
+ isSupersetOf(other) {
44
+ other = toRange(other);
45
+ return this.start <= other.start && other.end <= this.end;
46
+ }
47
+ toString() {
48
+ if (this.start === this.end) {
49
+ return `[${this.start}]`;
50
+ }
51
+ return `[${this.start}..${this.end}]`;
52
+ }
53
+ size() {
54
+ return this.end - this.start + BigInt(1);
55
+ }
56
+ }
57
+ exports.SatRange = SatRange;
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F0UmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU2F0UmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxlQUFnQixTQUFRLEtBQUs7SUFDeEMsWUFBWSxPQUFlLEVBQVMsS0FBYSxFQUFTLEdBQVc7UUFDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRG1CLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBRXJFLENBQUM7Q0FDRjtBQUpELDBDQUlDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBb0I7SUFDbkMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFFBQVE7SUFDbkIsWUFBbUIsS0FBYSxFQUFTLEdBQVc7UUFBakMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDbEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxlQUFlLENBQUMscUJBQXFCLEtBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0UsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBYztRQUN0QixPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxjQUFjLENBQUMsS0FBd0I7UUFDckMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUF4Q0QsNEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFsaWRTYXRSYW5nZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgc3RhcnQ6IGJpZ2ludCwgcHVibGljIGVuZDogYmlnaW50KSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9SYW5nZSh2OiBiaWdpbnQgfCBTYXRSYW5nZSk6IFNhdFJhbmdlIHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnYmlnaW50JyA/IG5ldyBTYXRSYW5nZSh2LCB2KSA6IHY7XG59XG5cbi8qKlxuICogUmFuZ2Ugb2Ygc2F0b3NoaSwgaW5jbHVzaXZlLlxuICogSW5zY3JpcHRpb25zIGhhdmUgc3RhcnQgPT09IGVuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhdFJhbmdlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBiaWdpbnQsIHB1YmxpYyBlbmQ6IGJpZ2ludCkge1xuICAgIGlmIChzdGFydCA8IDAgfHwgZW5kIDwgMCB8fCBlbmQgPCBzdGFydCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRTYXRSYW5nZShgSW52YWxpZCBTYXRSYW5nZSBbJHtzdGFydH0sICR7ZW5kfV1gLCBzdGFydCwgZW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcmV0dXJuIFNhdFJhbmdlIHdpdGggc3RhcnQgYW5kIGVuZCBzaGlmdGVkIGJ5IG9mZnNldFxuICAgKi9cbiAgc2hpZnRlZEJ5KG9mZnNldDogYmlnaW50KTogU2F0UmFuZ2Uge1xuICAgIHJldHVybiBuZXcgU2F0UmFuZ2UodGhpcy5zdGFydCArIG9mZnNldCwgdGhpcy5lbmQgKyBvZmZzZXQpO1xuICB9XG5cbiAgLyoqIEByZXR1cm4gdHJ1ZSBpZmYgdGhpcyBpbnRlcnNlY3RzIHdpdGggX290aGVyXyAqL1xuICBpbnRlcnNlY3RzV2l0aChvdGhlcjogYmlnaW50IHwgU2F0UmFuZ2UpOiBib29sZWFuIHtcbiAgICBvdGhlciA9IHRvUmFuZ2Uob3RoZXIpO1xuICAgIGlmICh0aGlzLnN0YXJ0IDw9IG90aGVyLnN0YXJ0KSB7XG4gICAgICByZXR1cm4gb3RoZXIuc3RhcnQgPD0gdGhpcy5lbmQ7XG4gICAgfVxuICAgIHJldHVybiBvdGhlci5pbnRlcnNlY3RzV2l0aCh0aGlzKTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJuIHRydWUgaWZmIHRoaXMgaXMgc3VwZXJzZXQgb2YgX290aGVyXy4gKi9cbiAgaXNTdXBlcnNldE9mKG90aGVyOiBiaWdpbnQgfCBTYXRSYW5nZSk6IGJvb2xlYW4ge1xuICAgIG90aGVyID0gdG9SYW5nZShvdGhlcik7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQgPD0gb3RoZXIuc3RhcnQgJiYgb3RoZXIuZW5kIDw9IHRoaXMuZW5kO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGFydCA9PT0gdGhpcy5lbmQpIHtcbiAgICAgIHJldHVybiBgWyR7dGhpcy5zdGFydH1dYDtcbiAgICB9XG4gICAgcmV0dXJuIGBbJHt0aGlzLnN0YXJ0fS4uJHt0aGlzLmVuZH1dYDtcbiAgfVxuXG4gIHNpemUoKTogYmlnaW50IHtcbiAgICByZXR1cm4gdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICsgQmlnSW50KDEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combinations.d.ts","sourceRoot":"","sources":["../../../src/combinations.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAO3C"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.powerset = powerset;
4
+ function powerset(arr) {
5
+ if (arr.length === 0) {
6
+ return [[]];
7
+ }
8
+ else {
9
+ const [a, ...rest] = arr;
10
+ return powerset(rest).flatMap((s) => [[a, ...s], s]);
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbWJpbmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQU9DO0FBUEQsU0FBZ0IsUUFBUSxDQUFJLEdBQVE7SUFDbEMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHBvd2Vyc2V0PFQ+KGFycjogVFtdKTogVFtdW10ge1xuICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbW11dO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFthLCAuLi5yZXN0XSA9IGFycjtcbiAgICByZXR1cm4gcG93ZXJzZXQocmVzdCkuZmxhdE1hcCgocykgPT4gW1thLCAuLi5zXSwgc10pO1xuICB9XG59XG4iXX0=
@@ -7,4 +7,6 @@ export * from './OutputLayout';
7
7
  export * from './SatPoint';
8
8
  export * from './psbt';
9
9
  export * as inscriptions from './inscriptions';
10
+ export type { TapLeafScript, PreparedInscriptionRevealData } from './inscriptions';
11
+ export type { WalletUnspent } from './psbt';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * https://github.com/casey/ord/blob/0.5.1/bip.mediawiki
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.inscriptions = void 0;
43
+ __exportStar(require("./SatRange"), exports);
44
+ __exportStar(require("./OrdOutput"), exports);
45
+ __exportStar(require("./OutputLayout"), exports);
46
+ __exportStar(require("./SatPoint"), exports);
47
+ __exportStar(require("./psbt"), exports);
48
+ exports.inscriptions = __importStar(require("./inscriptions"));
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCw2Q0FBMkI7QUFDM0IsOENBQTRCO0FBQzVCLGlEQUErQjtBQUMvQiw2Q0FBMkI7QUFDM0IseUNBQXVCO0FBQ3ZCLCtEQUErQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2Nhc2V5L29yZC9ibG9iLzAuNS4xL2JpcC5tZWRpYXdpa2lcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL1NhdFJhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vT3JkT3V0cHV0JztcbmV4cG9ydCAqIGZyb20gJy4vT3V0cHV0TGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vU2F0UG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wc2J0JztcbmV4cG9ydCAqIGFzIGluc2NyaXB0aW9ucyBmcm9tICcuL2luc2NyaXB0aW9ucyc7XG5leHBvcnQgdHlwZSB7IFRhcExlYWZTY3JpcHQsIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhIH0gZnJvbSAnLi9pbnNjcmlwdGlvbnMnO1xuZXhwb3J0IHR5cGUgeyBXYWxsZXRVbnNwZW50IH0gZnJvbSAnLi9wc2J0JztcbiJdfQ==
@@ -0,0 +1,58 @@
1
+ import { type TapLeafScript, type CoinName } from '@bitgo/wasm-utxo';
2
+ export type { TapLeafScript };
3
+ /**
4
+ * Prepared data for an inscription reveal transaction.
5
+ * Compatible with sdk-core's PreparedInscriptionRevealData.
6
+ */
7
+ export type PreparedInscriptionRevealData = {
8
+ /** The commit address (derived from outputScript for the given network) */
9
+ address: string;
10
+ /** Estimated virtual size of the reveal transaction */
11
+ revealTransactionVSize: number;
12
+ /** Tap leaf script for spending the commit output */
13
+ tapLeafScript: TapLeafScript;
14
+ };
15
+ /**
16
+ * BIP32-like interface compatible with both utxo-lib and wasm-utxo BIP32 types.
17
+ * The publicKey can be Buffer (utxo-lib) or Uint8Array (wasm-utxo).
18
+ */
19
+ export interface BIP32Like {
20
+ publicKey: Uint8Array;
21
+ }
22
+ /** Input type for inscription functions - either a BIP32-like key or raw public key bytes */
23
+ export type KeyInput = BIP32Like | Uint8Array;
24
+ /**
25
+ * Create the P2TR output script for an inscription.
26
+ *
27
+ * @param key - BIP32 key or public key bytes (32-byte x-only or 33-byte compressed)
28
+ * @param contentType - MIME type of the inscription (e.g., "text/plain", "image/png")
29
+ * @param inscriptionData - The inscription data bytes
30
+ * @returns The P2TR output script for the inscription commit address
31
+ */
32
+ export declare function createOutputScriptForInscription(key: KeyInput, contentType: string, inscriptionData: Uint8Array): Uint8Array;
33
+ /**
34
+ * Create inscription reveal data including the commit address and tap leaf script.
35
+ *
36
+ * @param key - BIP32 key or public key bytes (32-byte x-only or 33-byte compressed)
37
+ * @param contentType - MIME type of the inscription (e.g., "text/plain", "image/png")
38
+ * @param inscriptionData - The inscription data bytes
39
+ * @param coinName - Coin name (e.g., "btc", "tbtc")
40
+ * @returns PreparedInscriptionRevealData with address, vsize estimate, and tap leaf script
41
+ */
42
+ export declare function createInscriptionRevealData(key: KeyInput, contentType: string, inscriptionData: Uint8Array, coinName: CoinName): PreparedInscriptionRevealData;
43
+ /**
44
+ * Sign a reveal transaction.
45
+ *
46
+ * Creates and signs the reveal transaction that spends from the commit output
47
+ * and sends the inscription to the recipient.
48
+ *
49
+ * @param privateKey - 32-byte private key
50
+ * @param tapLeafScript - The tap leaf script from createInscriptionRevealData
51
+ * @param commitAddress - The commit address
52
+ * @param recipientAddress - Where to send the inscription
53
+ * @param unsignedCommitTx - The unsigned commit transaction bytes
54
+ * @param coinName - Coin name (e.g., "btc", "tbtc")
55
+ * @returns The signed PSBT as bytes
56
+ */
57
+ export declare function signRevealTransaction(privateKey: Uint8Array, tapLeafScript: TapLeafScript, commitAddress: string, recipientAddress: string, unsignedCommitTx: Uint8Array, coinName: CoinName): Uint8Array;
58
+ //# sourceMappingURL=inscriptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../../src/inscriptions.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,aAAa,EAAE,CAAC;AAM9B;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qDAAqD;IACrD,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,6FAA6F;AAC7F,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AA0B9C;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,GAC1B,UAAU,CAKZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,EAC3B,QAAQ,EAAE,QAAQ,GACjB,6BAA6B,CAc/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,UAAU,EAC5B,QAAQ,EAAE,QAAQ,GACjB,UAAU,CAcZ"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /*
3
+ Functions for dealing with inscriptions.
4
+
5
+ Wrapper around @bitgo/wasm-utxo inscription functions for utxo-ord consumers.
6
+
7
+ See https://docs.ordinals.com/inscriptions.html
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.createOutputScriptForInscription = createOutputScriptForInscription;
11
+ exports.createInscriptionRevealData = createInscriptionRevealData;
12
+ exports.signRevealTransaction = signRevealTransaction;
13
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
14
+ // default "postage" amount
15
+ // https://github.com/ordinals/ord/blob/0.24.2/src/lib.rs#L149
16
+ const DEFAULT_POSTAGE_SATS = BigInt(10000);
17
+ function isBIP32Like(key) {
18
+ return typeof key === 'object' && key !== null && 'publicKey' in key && !ArrayBuffer.isView(key);
19
+ }
20
+ /**
21
+ * Extract compressed public key from key input.
22
+ * Handles BIP32-like objects and raw pubkey bytes (32 or 33 bytes).
23
+ */
24
+ function getCompressedPublicKey(key) {
25
+ const pubkey = isBIP32Like(key) ? key.publicKey : key;
26
+ if (pubkey.length === 33) {
27
+ return pubkey;
28
+ }
29
+ if (pubkey.length === 32) {
30
+ // x-only pubkey - prepend 0x02 parity byte to make compressed
31
+ const compressedPubkey = new Uint8Array(33);
32
+ compressedPubkey[0] = 0x02;
33
+ compressedPubkey.set(pubkey, 1);
34
+ return compressedPubkey;
35
+ }
36
+ throw new Error(`Invalid public key length: ${pubkey.length}. Expected 32 or 33 bytes.`);
37
+ }
38
+ /**
39
+ * Create the P2TR output script for an inscription.
40
+ *
41
+ * @param key - BIP32 key or public key bytes (32-byte x-only or 33-byte compressed)
42
+ * @param contentType - MIME type of the inscription (e.g., "text/plain", "image/png")
43
+ * @param inscriptionData - The inscription data bytes
44
+ * @returns The P2TR output script for the inscription commit address
45
+ */
46
+ function createOutputScriptForInscription(key, contentType, inscriptionData) {
47
+ const compressedPubkey = getCompressedPublicKey(key);
48
+ const ecpair = wasm_utxo_1.ECPair.fromPublicKey(compressedPubkey);
49
+ const result = wasm_utxo_1.inscriptions.createInscriptionRevealData(ecpair, contentType, inscriptionData);
50
+ return result.outputScript;
51
+ }
52
+ /**
53
+ * Create inscription reveal data including the commit address and tap leaf script.
54
+ *
55
+ * @param key - BIP32 key or public key bytes (32-byte x-only or 33-byte compressed)
56
+ * @param contentType - MIME type of the inscription (e.g., "text/plain", "image/png")
57
+ * @param inscriptionData - The inscription data bytes
58
+ * @param coinName - Coin name (e.g., "btc", "tbtc")
59
+ * @returns PreparedInscriptionRevealData with address, vsize estimate, and tap leaf script
60
+ */
61
+ function createInscriptionRevealData(key, contentType, inscriptionData, coinName) {
62
+ const compressedPubkey = getCompressedPublicKey(key);
63
+ const ecpair = wasm_utxo_1.ECPair.fromPublicKey(compressedPubkey);
64
+ const wasmResult = wasm_utxo_1.inscriptions.createInscriptionRevealData(ecpair, contentType, inscriptionData);
65
+ // Convert outputScript to address for the given network
66
+ const address = wasm_utxo_1.address.fromOutputScriptWithCoin(wasmResult.outputScript, coinName);
67
+ return {
68
+ address,
69
+ revealTransactionVSize: wasmResult.revealTransactionVSize,
70
+ tapLeafScript: wasmResult.tapLeafScript,
71
+ };
72
+ }
73
+ /**
74
+ * Sign a reveal transaction.
75
+ *
76
+ * Creates and signs the reveal transaction that spends from the commit output
77
+ * and sends the inscription to the recipient.
78
+ *
79
+ * @param privateKey - 32-byte private key
80
+ * @param tapLeafScript - The tap leaf script from createInscriptionRevealData
81
+ * @param commitAddress - The commit address
82
+ * @param recipientAddress - Where to send the inscription
83
+ * @param unsignedCommitTx - The unsigned commit transaction bytes
84
+ * @param coinName - Coin name (e.g., "btc", "tbtc")
85
+ * @returns The signed PSBT as bytes
86
+ */
87
+ function signRevealTransaction(privateKey, tapLeafScript, commitAddress, recipientAddress, unsignedCommitTx, coinName) {
88
+ const ecpair = wasm_utxo_1.ECPair.fromPrivateKey(privateKey);
89
+ const commitTx = wasm_utxo_1.Transaction.fromBytes(unsignedCommitTx);
90
+ const commitOutputScript = wasm_utxo_1.address.toOutputScriptWithCoin(commitAddress, coinName);
91
+ const recipientOutputScript = wasm_utxo_1.address.toOutputScriptWithCoin(recipientAddress, coinName);
92
+ return wasm_utxo_1.inscriptions.signRevealTransaction(ecpair, tapLeafScript, commitTx, commitOutputScript, recipientOutputScript, DEFAULT_POSTAGE_SATS);
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztFQU1FOztBQXlFRiw0RUFTQztBQVdELGtFQW1CQztBQWdCRCxzREFxQkM7QUFuSkQsZ0RBTzBCO0FBSTFCLDJCQUEyQjtBQUMzQiw4REFBOEQ7QUFDOUQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBTSxDQUFDLENBQUM7QUEwQjVDLFNBQVMsV0FBVyxDQUFDLEdBQWE7SUFDaEMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxXQUFXLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxHQUFhO0lBQzNDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBRXRELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN6QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLDhEQUE4RDtRQUM5RCxNQUFNLGdCQUFnQixHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMzQixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixnQ0FBZ0MsQ0FDOUMsR0FBYSxFQUNiLFdBQW1CLEVBQ25CLGVBQTJCO0lBRTNCLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsa0JBQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyx3QkFBZ0IsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ2xHLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FDekMsR0FBYSxFQUNiLFdBQW1CLEVBQ25CLGVBQTJCLEVBQzNCLFFBQWtCO0lBRWxCLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsa0JBQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV0RCxNQUFNLFVBQVUsR0FBRyx3QkFBZ0IsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXRHLHdEQUF3RDtJQUN4RCxNQUFNLE9BQU8sR0FBRyxtQkFBVyxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFeEYsT0FBTztRQUNMLE9BQU87UUFDUCxzQkFBc0IsRUFBRSxVQUFVLENBQUMsc0JBQXNCO1FBQ3pELGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtLQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsYUFBcUIsRUFDckIsZ0JBQXdCLEVBQ3hCLGdCQUE0QixFQUM1QixRQUFrQjtJQUVsQixNQUFNLE1BQU0sR0FBRyxrQkFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxNQUFNLFFBQVEsR0FBRyx1QkFBVyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sa0JBQWtCLEdBQUcsbUJBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkYsTUFBTSxxQkFBcUIsR0FBRyxtQkFBVyxDQUFDLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTdGLE9BQU8sd0JBQWdCLENBQUMscUJBQXFCLENBQzNDLE1BQU0sRUFDTixhQUFhLEVBQ2IsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsb0JBQW9CLENBQ3JCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkZ1bmN0aW9ucyBmb3IgZGVhbGluZyB3aXRoIGluc2NyaXB0aW9ucy5cblxuV3JhcHBlciBhcm91bmQgQGJpdGdvL3dhc20tdXR4byBpbnNjcmlwdGlvbiBmdW5jdGlvbnMgZm9yIHV0eG8tb3JkIGNvbnN1bWVycy5cblxuU2VlIGh0dHBzOi8vZG9jcy5vcmRpbmFscy5jb20vaW5zY3JpcHRpb25zLmh0bWxcbiovXG5cbmltcG9ydCB7XG4gIGluc2NyaXB0aW9ucyBhcyB3YXNtSW5zY3JpcHRpb25zLFxuICBhZGRyZXNzIGFzIHdhc21BZGRyZXNzLFxuICBUcmFuc2FjdGlvbixcbiAgRUNQYWlyLFxuICB0eXBlIFRhcExlYWZTY3JpcHQsXG4gIHR5cGUgQ29pbk5hbWUsXG59IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5leHBvcnQgdHlwZSB7IFRhcExlYWZTY3JpcHQgfTtcblxuLy8gZGVmYXVsdCBcInBvc3RhZ2VcIiBhbW91bnRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9vcmRpbmFscy9vcmQvYmxvYi8wLjI0LjIvc3JjL2xpYi5ycyNMMTQ5XG5jb25zdCBERUZBVUxUX1BPU1RBR0VfU0FUUyA9IEJpZ0ludCgxMF8wMDApO1xuXG4vKipcbiAqIFByZXBhcmVkIGRhdGEgZm9yIGFuIGluc2NyaXB0aW9uIHJldmVhbCB0cmFuc2FjdGlvbi5cbiAqIENvbXBhdGlibGUgd2l0aCBzZGstY29yZSdzIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhLlxuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSA9IHtcbiAgLyoqIFRoZSBjb21taXQgYWRkcmVzcyAoZGVyaXZlZCBmcm9tIG91dHB1dFNjcmlwdCBmb3IgdGhlIGdpdmVuIG5ldHdvcmspICovXG4gIGFkZHJlc3M6IHN0cmluZztcbiAgLyoqIEVzdGltYXRlZCB2aXJ0dWFsIHNpemUgb2YgdGhlIHJldmVhbCB0cmFuc2FjdGlvbiAqL1xuICByZXZlYWxUcmFuc2FjdGlvblZTaXplOiBudW1iZXI7XG4gIC8qKiBUYXAgbGVhZiBzY3JpcHQgZm9yIHNwZW5kaW5nIHRoZSBjb21taXQgb3V0cHV0ICovXG4gIHRhcExlYWZTY3JpcHQ6IFRhcExlYWZTY3JpcHQ7XG59O1xuXG4vKipcbiAqIEJJUDMyLWxpa2UgaW50ZXJmYWNlIGNvbXBhdGlibGUgd2l0aCBib3RoIHV0eG8tbGliIGFuZCB3YXNtLXV0eG8gQklQMzIgdHlwZXMuXG4gKiBUaGUgcHVibGljS2V5IGNhbiBiZSBCdWZmZXIgKHV0eG8tbGliKSBvciBVaW50OEFycmF5ICh3YXNtLXV0eG8pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJJUDMyTGlrZSB7XG4gIHB1YmxpY0tleTogVWludDhBcnJheTtcbn1cblxuLyoqIElucHV0IHR5cGUgZm9yIGluc2NyaXB0aW9uIGZ1bmN0aW9ucyAtIGVpdGhlciBhIEJJUDMyLWxpa2Uga2V5IG9yIHJhdyBwdWJsaWMga2V5IGJ5dGVzICovXG5leHBvcnQgdHlwZSBLZXlJbnB1dCA9IEJJUDMyTGlrZSB8IFVpbnQ4QXJyYXk7XG5cbmZ1bmN0aW9uIGlzQklQMzJMaWtlKGtleTogS2V5SW5wdXQpOiBrZXkgaXMgQklQMzJMaWtlIHtcbiAgcmV0dXJuIHR5cGVvZiBrZXkgPT09ICdvYmplY3QnICYmIGtleSAhPT0gbnVsbCAmJiAncHVibGljS2V5JyBpbiBrZXkgJiYgIUFycmF5QnVmZmVyLmlzVmlldyhrZXkpO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgY29tcHJlc3NlZCBwdWJsaWMga2V5IGZyb20ga2V5IGlucHV0LlxuICogSGFuZGxlcyBCSVAzMi1saWtlIG9iamVjdHMgYW5kIHJhdyBwdWJrZXkgYnl0ZXMgKDMyIG9yIDMzIGJ5dGVzKS5cbiAqL1xuZnVuY3Rpb24gZ2V0Q29tcHJlc3NlZFB1YmxpY0tleShrZXk6IEtleUlucHV0KTogVWludDhBcnJheSB7XG4gIGNvbnN0IHB1YmtleSA9IGlzQklQMzJMaWtlKGtleSkgPyBrZXkucHVibGljS2V5IDoga2V5O1xuXG4gIGlmIChwdWJrZXkubGVuZ3RoID09PSAzMykge1xuICAgIHJldHVybiBwdWJrZXk7XG4gIH1cbiAgaWYgKHB1YmtleS5sZW5ndGggPT09IDMyKSB7XG4gICAgLy8geC1vbmx5IHB1YmtleSAtIHByZXBlbmQgMHgwMiBwYXJpdHkgYnl0ZSB0byBtYWtlIGNvbXByZXNzZWRcbiAgICBjb25zdCBjb21wcmVzc2VkUHVia2V5ID0gbmV3IFVpbnQ4QXJyYXkoMzMpO1xuICAgIGNvbXByZXNzZWRQdWJrZXlbMF0gPSAweDAyO1xuICAgIGNvbXByZXNzZWRQdWJrZXkuc2V0KHB1YmtleSwgMSk7XG4gICAgcmV0dXJuIGNvbXByZXNzZWRQdWJrZXk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHB1YmxpYyBrZXkgbGVuZ3RoOiAke3B1YmtleS5sZW5ndGh9LiBFeHBlY3RlZCAzMiBvciAzMyBieXRlcy5gKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgdGhlIFAyVFIgb3V0cHV0IHNjcmlwdCBmb3IgYW4gaW5zY3JpcHRpb24uXG4gKlxuICogQHBhcmFtIGtleSAtIEJJUDMyIGtleSBvciBwdWJsaWMga2V5IGJ5dGVzICgzMi1ieXRlIHgtb25seSBvciAzMy1ieXRlIGNvbXByZXNzZWQpXG4gKiBAcGFyYW0gY29udGVudFR5cGUgLSBNSU1FIHR5cGUgb2YgdGhlIGluc2NyaXB0aW9uIChlLmcuLCBcInRleHQvcGxhaW5cIiwgXCJpbWFnZS9wbmdcIilcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGEgLSBUaGUgaW5zY3JpcHRpb24gZGF0YSBieXRlc1xuICogQHJldHVybnMgVGhlIFAyVFIgb3V0cHV0IHNjcmlwdCBmb3IgdGhlIGluc2NyaXB0aW9uIGNvbW1pdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPdXRwdXRTY3JpcHRGb3JJbnNjcmlwdGlvbihcbiAga2V5OiBLZXlJbnB1dCxcbiAgY29udGVudFR5cGU6IHN0cmluZyxcbiAgaW5zY3JpcHRpb25EYXRhOiBVaW50OEFycmF5XG4pOiBVaW50OEFycmF5IHtcbiAgY29uc3QgY29tcHJlc3NlZFB1YmtleSA9IGdldENvbXByZXNzZWRQdWJsaWNLZXkoa2V5KTtcbiAgY29uc3QgZWNwYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoY29tcHJlc3NlZFB1YmtleSk7XG4gIGNvbnN0IHJlc3VsdCA9IHdhc21JbnNjcmlwdGlvbnMuY3JlYXRlSW5zY3JpcHRpb25SZXZlYWxEYXRhKGVjcGFpciwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSk7XG4gIHJldHVybiByZXN1bHQub3V0cHV0U2NyaXB0O1xufVxuXG4vKipcbiAqIENyZWF0ZSBpbnNjcmlwdGlvbiByZXZlYWwgZGF0YSBpbmNsdWRpbmcgdGhlIGNvbW1pdCBhZGRyZXNzIGFuZCB0YXAgbGVhZiBzY3JpcHQuXG4gKlxuICogQHBhcmFtIGtleSAtIEJJUDMyIGtleSBvciBwdWJsaWMga2V5IGJ5dGVzICgzMi1ieXRlIHgtb25seSBvciAzMy1ieXRlIGNvbXByZXNzZWQpXG4gKiBAcGFyYW0gY29udGVudFR5cGUgLSBNSU1FIHR5cGUgb2YgdGhlIGluc2NyaXB0aW9uIChlLmcuLCBcInRleHQvcGxhaW5cIiwgXCJpbWFnZS9wbmdcIilcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGEgLSBUaGUgaW5zY3JpcHRpb24gZGF0YSBieXRlc1xuICogQHBhcmFtIGNvaW5OYW1lIC0gQ29pbiBuYW1lIChlLmcuLCBcImJ0Y1wiLCBcInRidGNcIilcbiAqIEByZXR1cm5zIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhIHdpdGggYWRkcmVzcywgdnNpemUgZXN0aW1hdGUsIGFuZCB0YXAgbGVhZiBzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc2NyaXB0aW9uUmV2ZWFsRGF0YShcbiAga2V5OiBLZXlJbnB1dCxcbiAgY29udGVudFR5cGU6IHN0cmluZyxcbiAgaW5zY3JpcHRpb25EYXRhOiBVaW50OEFycmF5LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhIHtcbiAgY29uc3QgY29tcHJlc3NlZFB1YmtleSA9IGdldENvbXByZXNzZWRQdWJsaWNLZXkoa2V5KTtcbiAgY29uc3QgZWNwYWlyID0gRUNQYWlyLmZyb21QdWJsaWNLZXkoY29tcHJlc3NlZFB1YmtleSk7XG5cbiAgY29uc3Qgd2FzbVJlc3VsdCA9IHdhc21JbnNjcmlwdGlvbnMuY3JlYXRlSW5zY3JpcHRpb25SZXZlYWxEYXRhKGVjcGFpciwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSk7XG5cbiAgLy8gQ29udmVydCBvdXRwdXRTY3JpcHQgdG8gYWRkcmVzcyBmb3IgdGhlIGdpdmVuIG5ldHdvcmtcbiAgY29uc3QgYWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbih3YXNtUmVzdWx0Lm91dHB1dFNjcmlwdCwgY29pbk5hbWUpO1xuXG4gIHJldHVybiB7XG4gICAgYWRkcmVzcyxcbiAgICByZXZlYWxUcmFuc2FjdGlvblZTaXplOiB3YXNtUmVzdWx0LnJldmVhbFRyYW5zYWN0aW9uVlNpemUsXG4gICAgdGFwTGVhZlNjcmlwdDogd2FzbVJlc3VsdC50YXBMZWFmU2NyaXB0LFxuICB9O1xufVxuXG4vKipcbiAqIFNpZ24gYSByZXZlYWwgdHJhbnNhY3Rpb24uXG4gKlxuICogQ3JlYXRlcyBhbmQgc2lnbnMgdGhlIHJldmVhbCB0cmFuc2FjdGlvbiB0aGF0IHNwZW5kcyBmcm9tIHRoZSBjb21taXQgb3V0cHV0XG4gKiBhbmQgc2VuZHMgdGhlIGluc2NyaXB0aW9uIHRvIHRoZSByZWNpcGllbnQuXG4gKlxuICogQHBhcmFtIHByaXZhdGVLZXkgLSAzMi1ieXRlIHByaXZhdGUga2V5XG4gKiBAcGFyYW0gdGFwTGVhZlNjcmlwdCAtIFRoZSB0YXAgbGVhZiBzY3JpcHQgZnJvbSBjcmVhdGVJbnNjcmlwdGlvblJldmVhbERhdGFcbiAqIEBwYXJhbSBjb21taXRBZGRyZXNzIC0gVGhlIGNvbW1pdCBhZGRyZXNzXG4gKiBAcGFyYW0gcmVjaXBpZW50QWRkcmVzcyAtIFdoZXJlIHRvIHNlbmQgdGhlIGluc2NyaXB0aW9uXG4gKiBAcGFyYW0gdW5zaWduZWRDb21taXRUeCAtIFRoZSB1bnNpZ25lZCBjb21taXQgdHJhbnNhY3Rpb24gYnl0ZXNcbiAqIEBwYXJhbSBjb2luTmFtZSAtIENvaW4gbmFtZSAoZS5nLiwgXCJidGNcIiwgXCJ0YnRjXCIpXG4gKiBAcmV0dXJucyBUaGUgc2lnbmVkIFBTQlQgYXMgYnl0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25SZXZlYWxUcmFuc2FjdGlvbihcbiAgcHJpdmF0ZUtleTogVWludDhBcnJheSxcbiAgdGFwTGVhZlNjcmlwdDogVGFwTGVhZlNjcmlwdCxcbiAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmcsXG4gIHVuc2lnbmVkQ29tbWl0VHg6IFVpbnQ4QXJyYXksXG4gIGNvaW5OYW1lOiBDb2luTmFtZVxuKTogVWludDhBcnJheSB7XG4gIGNvbnN0IGVjcGFpciA9IEVDUGFpci5mcm9tUHJpdmF0ZUtleShwcml2YXRlS2V5KTtcbiAgY29uc3QgY29tbWl0VHggPSBUcmFuc2FjdGlvbi5mcm9tQnl0ZXModW5zaWduZWRDb21taXRUeCk7XG4gIGNvbnN0IGNvbW1pdE91dHB1dFNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4oY29tbWl0QWRkcmVzcywgY29pbk5hbWUpO1xuICBjb25zdCByZWNpcGllbnRPdXRwdXRTY3JpcHQgPSB3YXNtQWRkcmVzcy50b091dHB1dFNjcmlwdFdpdGhDb2luKHJlY2lwaWVudEFkZHJlc3MsIGNvaW5OYW1lKTtcblxuICByZXR1cm4gd2FzbUluc2NyaXB0aW9ucy5zaWduUmV2ZWFsVHJhbnNhY3Rpb24oXG4gICAgZWNwYWlyLFxuICAgIHRhcExlYWZTY3JpcHQsXG4gICAgY29tbWl0VHgsXG4gICAgY29tbWl0T3V0cHV0U2NyaXB0LFxuICAgIHJlY2lwaWVudE91dHB1dFNjcmlwdCxcbiAgICBERUZBVUxUX1BPU1RBR0VfU0FUU1xuICApO1xufVxuIl19
@@ -1,27 +1,43 @@
1
- /// <reference types="node" />
2
- import { Network, bitgo } from '@bitgo-beta/utxo-lib';
1
+ import { fixedScriptWallet, type CoinName } from '@bitgo/wasm-utxo';
3
2
  import { SatPoint } from './SatPoint';
4
3
  import { OutputLayout } from './OutputLayout';
5
- declare type WalletUnspent = bitgo.WalletUnspent<bigint>;
6
- export declare type WalletOutputPath = {
7
- chain: bitgo.ChainCode;
4
+ type WalletKeysArg = fixedScriptWallet.WalletKeysArg;
5
+ type SignPath = fixedScriptWallet.SignPath;
6
+ /**
7
+ * Network type from utxo-lib for backward compatibility.
8
+ */
9
+ type UtxolibNetwork = {
10
+ messagePrefix?: string;
11
+ bech32?: string;
12
+ pubKeyHash: number;
13
+ scriptHash: number;
14
+ wif: number;
15
+ };
16
+ export type WalletUnspent = {
17
+ id: string;
18
+ value: bigint;
19
+ chain: number;
20
+ index: number;
21
+ };
22
+ export type WalletOutputPath = {
23
+ chain: fixedScriptWallet.ChainCode;
8
24
  index: number;
9
25
  };
10
- export declare type WalletInputBuilder = {
11
- walletKeys: bitgo.RootWalletKeys;
12
- signer: bitgo.KeyName;
13
- cosigner: bitgo.KeyName;
26
+ export type WalletInputBuilder = {
27
+ walletKeys: WalletKeysArg;
28
+ signer: SignPath['signer'];
29
+ cosigner: SignPath['cosigner'];
14
30
  };
15
31
  /**
16
32
  * Describes all outputs of an inscription transaction
17
33
  */
18
- export declare type InscriptionTransactionOutputs = {
19
- inscriptionRecipient: string | Buffer;
34
+ export type InscriptionTransactionOutputs = {
35
+ inscriptionRecipient: string | Uint8Array;
20
36
  changeOutputs: [WalletOutputPath, WalletOutputPath];
21
37
  };
22
38
  /** @deprecated */
23
- export declare type InscriptionOutputs = InscriptionTransactionOutputs;
24
- export declare type InscriptionTransactionConstraints = {
39
+ export type InscriptionOutputs = InscriptionTransactionOutputs;
40
+ export type InscriptionTransactionConstraints = {
25
41
  feeRateSatKB: number;
26
42
  minChangeOutput?: bigint;
27
43
  minInscriptionOutput?: bigint;
@@ -32,7 +48,7 @@ export declare const DefaultInscriptionConstraints: {
32
48
  minInscriptionOutput: bigint;
33
49
  maxInscriptionOutput: bigint;
34
50
  };
35
- export declare function createPsbtFromOutputLayout(network: Network, inputBuilder: WalletInputBuilder, unspents: WalletUnspent[], outputs: InscriptionTransactionOutputs, outputLayout: OutputLayout): bitgo.UtxoPsbt;
51
+ export declare function createPsbtFromOutputLayout(networkOrCoinName: CoinName | UtxolibNetwork, inputBuilder: WalletInputBuilder, unspents: WalletUnspent[], outputs: InscriptionTransactionOutputs, outputLayout: OutputLayout): fixedScriptWallet.BitGoPsbt;
36
52
  /**
37
53
  * @param inputs - inscription input must come first
38
54
  * @param satPoint - location of the inscription
@@ -51,7 +67,7 @@ export declare class ErrorNoLayout extends Error {
51
67
  constructor();
52
68
  }
53
69
  /**
54
- * @param network
70
+ * @param networkOrCoinName - Coin name (e.g., "btc", "tbtc") or utxo-lib Network object
55
71
  * @param inputBuilder
56
72
  * @param unspent
57
73
  * @param satPoint
@@ -60,9 +76,9 @@ export declare class ErrorNoLayout extends Error {
60
76
  * @param supplementaryUnspents - additional inputs to cover fee.
61
77
  * @param [minimizeInputs=true] - try to find input combination with minimal fees. Limits supplementaryUnspents to 4.
62
78
  */
63
- export declare function createPsbtForSingleInscriptionPassingTransaction(network: Network, inputBuilder: WalletInputBuilder, unspent: WalletUnspent | WalletUnspent[], satPoint: SatPoint, outputs: InscriptionTransactionOutputs, constraints: InscriptionTransactionConstraints, { supplementaryUnspents, minimizeInputs, }?: {
79
+ export declare function createPsbtForSingleInscriptionPassingTransaction(networkOrCoinName: CoinName | UtxolibNetwork, inputBuilder: WalletInputBuilder, unspent: WalletUnspent | WalletUnspent[], satPoint: SatPoint, outputs: InscriptionTransactionOutputs, constraints: InscriptionTransactionConstraints, { supplementaryUnspents, minimizeInputs, }?: {
64
80
  supplementaryUnspents?: WalletUnspent[];
65
81
  minimizeInputs?: boolean;
66
- }): bitgo.UtxoPsbt;
82
+ }): fixedScriptWallet.BitGoPsbt;
67
83
  export {};
68
84
  //# sourceMappingURL=psbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../src/psbt.ts"],"names":[],"mappings":"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"}