@gvnrdao/dh-lit-actions 0.0.68 → 0.0.111

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 (78) hide show
  1. package/package.json +8 -2
  2. package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts +1 -9
  3. package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts.map +1 -1
  4. package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js +140 -152
  5. package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js.map +1 -1
  6. package/pkg-dist/pkg-src/constants/chunks/package-registry.d.ts.map +1 -1
  7. package/pkg-dist/pkg-src/constants/chunks/package-registry.js +0 -2
  8. package/pkg-dist/pkg-src/constants/chunks/package-registry.js.map +1 -1
  9. package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.d.ts.map +1 -1
  10. package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js +1 -0
  11. package/pkg-dist/pkg-src/executors/chunks/vault-snapshot-executor.js.map +1 -1
  12. package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts +12 -0
  13. package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts.map +1 -1
  14. package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts +0 -2
  15. package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts.map +1 -1
  16. package/pkg-dist/pkg-src/utils/chunks/cid-utils.d.ts.map +1 -1
  17. package/pkg-dist/pkg-src/utils/chunks/cid-utils.js +5 -0
  18. package/pkg-dist/pkg-src/utils/chunks/cid-utils.js.map +1 -1
  19. package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.d.ts.map +1 -1
  20. package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js +18 -4
  21. package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js.map +1 -1
  22. package/pkg-dist/pkg-src/utils/chunks/pkp-setup.d.ts.map +1 -1
  23. package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js +6 -2
  24. package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js.map +1 -1
  25. package/pkg-dist/src/constants/chunks/bitcoin-network-config.js +4 -4
  26. package/pkg-dist/src/constants/chunks/bitcoin-network-config.js.map +1 -1
  27. package/pkg-dist/src/constants/chunks/quantum-time.d.ts +7 -7
  28. package/pkg-dist/src/constants/chunks/quantum-time.js +7 -7
  29. package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts +6 -0
  30. package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts.map +1 -1
  31. package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts +18 -0
  32. package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts.map +1 -1
  33. package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts +2 -1
  34. package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts.map +1 -1
  35. package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts +2 -0
  36. package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts.map +1 -1
  37. package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts +2 -0
  38. package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts.map +1 -1
  39. package/pkg-dist/src/modules/authorization.module.d.ts +86 -0
  40. package/pkg-dist/src/modules/authorization.module.d.ts.map +1 -1
  41. package/pkg-dist/src/modules/authorization.module.js +175 -0
  42. package/pkg-dist/src/modules/authorization.module.js.map +1 -1
  43. package/pkg-dist/src/modules/bitcoin/address.d.ts +40 -0
  44. package/pkg-dist/src/modules/bitcoin/address.d.ts.map +1 -0
  45. package/pkg-dist/src/modules/bitcoin/address.js +323 -0
  46. package/pkg-dist/src/modules/bitcoin/address.js.map +1 -0
  47. package/pkg-dist/src/modules/bitcoin/provider.d.ts +55 -0
  48. package/pkg-dist/src/modules/bitcoin/provider.d.ts.map +1 -0
  49. package/pkg-dist/src/modules/bitcoin/provider.js +67 -0
  50. package/pkg-dist/src/modules/bitcoin/provider.js.map +1 -0
  51. package/pkg-dist/src/modules/bitcoin/signature.d.ts +24 -0
  52. package/pkg-dist/src/modules/bitcoin/signature.d.ts.map +1 -0
  53. package/pkg-dist/src/modules/bitcoin/signature.js +64 -0
  54. package/pkg-dist/src/modules/bitcoin/signature.js.map +1 -0
  55. package/pkg-dist/src/modules/bitcoin/transaction.d.ts +63 -0
  56. package/pkg-dist/src/modules/bitcoin/transaction.d.ts.map +1 -0
  57. package/pkg-dist/src/modules/bitcoin/transaction.js +187 -0
  58. package/pkg-dist/src/modules/bitcoin/transaction.js.map +1 -0
  59. package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts +22 -1
  60. package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts.map +1 -1
  61. package/pkg-dist/src/modules/bitcoin-data-provider.module.js +189 -18
  62. package/pkg-dist/src/modules/bitcoin-data-provider.module.js.map +1 -1
  63. package/pkg-dist/src/modules/price-oracle.module.d.ts +12 -1
  64. package/pkg-dist/src/modules/price-oracle.module.d.ts.map +1 -1
  65. package/pkg-dist/src/modules/price-oracle.module.js +127 -45
  66. package/pkg-dist/src/modules/price-oracle.module.js.map +1 -1
  67. package/pkg-dist/src/modules/quantum-time.module.d.ts +1 -1
  68. package/pkg-dist/src/modules/quantum-time.module.d.ts.map +1 -1
  69. package/pkg-dist/src/modules/quantum-time.module.js +9 -6
  70. package/pkg-dist/src/modules/quantum-time.module.js.map +1 -1
  71. package/pkg-dist/src/modules/vault-balance.module.d.ts +3 -1
  72. package/pkg-dist/src/modules/vault-balance.module.d.ts.map +1 -1
  73. package/pkg-dist/src/modules/vault-balance.module.js +59 -2
  74. package/pkg-dist/src/modules/vault-balance.module.js.map +1 -1
  75. package/pkg-dist/src/modules/vault-snapshot.d.ts +11 -1
  76. package/pkg-dist/src/modules/vault-snapshot.d.ts.map +1 -1
  77. package/pkg-dist/src/modules/vault-snapshot.js +123 -33
  78. package/pkg-dist/src/modules/vault-snapshot.js.map +1 -1
@@ -312,6 +312,181 @@ class AuthorizationModule {
312
312
  // Use agnostic verification
313
313
  return this.verifyActionAuthorization(auth, buildMessage, isAuthorized);
314
314
  }
315
+ /**
316
+ * Verify auth structure for term/position/action operations
317
+ *
318
+ * Validates that all required fields are present and have correct types:
319
+ * - positionId (string, required)
320
+ * - chainId (number, required)
321
+ * - timestamp (number, required)
322
+ * - newTerm (number, required)
323
+ * - action (string, required)
324
+ * - signature (string, required)
325
+ * - mode ("dev" or "prod", required)
326
+ *
327
+ * @param auth - Authorization object to validate (untyped)
328
+ * @returns Typed OwnerTermActionAuthorization object after validation
329
+ * @throws Error if any validation fails
330
+ */
331
+ static verifyTermPositionActionAuthorizationStructure(auth) {
332
+ if (!auth || typeof auth !== "object") {
333
+ throw new Error('Missing or invalid "auth" parameter - must be an object');
334
+ }
335
+ // Validate all required auth fields
336
+ if (!auth.positionId) {
337
+ throw new Error("auth.positionId is required");
338
+ }
339
+ if (typeof auth.chainId !== "number") {
340
+ throw new Error("auth.chainId must be a number");
341
+ }
342
+ if (typeof auth.timestamp !== "number") {
343
+ throw new Error("auth.timestamp must be a number");
344
+ }
345
+ if (typeof auth.newTerm === "undefined" || auth.newTerm === null) {
346
+ throw new Error("auth.newTerm is required");
347
+ }
348
+ if (typeof auth.newTerm !== "number") {
349
+ throw new Error("auth.newTerm must be a number");
350
+ }
351
+ if (!auth.action) {
352
+ throw new Error("auth.action is required");
353
+ }
354
+ if (!auth.signature) {
355
+ throw new Error("auth.signature is required");
356
+ }
357
+ if (!auth.mode) {
358
+ throw new Error("auth.mode is required");
359
+ }
360
+ if (auth.mode !== "dev" && auth.mode !== "prod") {
361
+ throw new Error(`auth.mode must be "dev" or "prod", got: ${auth.mode}`);
362
+ }
363
+ // Return typed object after validation
364
+ return auth;
365
+ }
366
+ /**
367
+ * Verify position owner authorization for term-based position action
368
+ *
369
+ * AGNOSTIC BASE FUNCTION - verifies authorization without checking action string
370
+ * Specific action verification functions should validate action string before calling this.
371
+ *
372
+ * Message contains: positionId, timestamp, chainId, newTerm, action
373
+ *
374
+ * @param auth - Authorization parameters (positionId, timestamp, chainId, newTerm, action, signature, mode)
375
+ * @param positionOwner - Position owner address from contract
376
+ * @returns True if authorized
377
+ */
378
+ static async verifyTermPositionActionAuthorization(auth, positionOwner) {
379
+ // Build message hash function specific to term action
380
+ const buildMessage = () => {
381
+ const actionHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(auth.action));
382
+ // Debug logging for message hash construction
383
+ console.log("[Authorization] Building term message hash:");
384
+ console.log(" positionId:", auth.positionId);
385
+ console.log(" timestamp:", auth.timestamp);
386
+ console.log(" chainId:", auth.chainId);
387
+ console.log(" newTerm:", auth.newTerm);
388
+ console.log(" action:", auth.action);
389
+ console.log(" actionHash:", actionHash);
390
+ const types = [
391
+ "bytes32", // positionId
392
+ "uint256", // timestamp
393
+ "uint256", // chainId
394
+ "uint256", // newTerm
395
+ "bytes32", // actionHash
396
+ ];
397
+ const values = [
398
+ auth.positionId,
399
+ auth.timestamp,
400
+ auth.chainId,
401
+ auth.newTerm,
402
+ actionHash,
403
+ ];
404
+ const messageHash = ethers.utils.solidityKeccak256(types, values);
405
+ console.log(" messageHash (solidityKeccak256):", messageHash);
406
+ return messageHash;
407
+ };
408
+ // Authorization check function
409
+ const isAuthorized = (recovered) => {
410
+ return recovered.toLowerCase() === positionOwner.toLowerCase();
411
+ };
412
+ // Use agnostic verification
413
+ return this.verifyActionAuthorization(auth, buildMessage, isAuthorized);
414
+ }
415
+ /**
416
+ * Verify position owner authorization for extendPosition action
417
+ *
418
+ * Validates action string is "extend-position" then delegates to base function.
419
+ *
420
+ * @param auth - Authorization parameters (positionId, timestamp, chainId, newTerm, action, signature, mode)
421
+ * @param positionOwner - Position owner address from contract
422
+ * @returns True if authorized
423
+ */
424
+ static async verifyExtendAuthorization(auth, positionOwner) {
425
+ // Validate action string matches expected value
426
+ if (auth.action !== "extend-position") {
427
+ console.error(`[Authorization] Invalid action for extension: expected "extend-position", got "${auth.action}"`);
428
+ return false;
429
+ }
430
+ // Delegate to base authorization function
431
+ return this.verifyTermPositionActionAuthorization(auth, positionOwner);
432
+ }
433
+ /**
434
+ * Verify position owner authorization for BTC withdrawal execution
435
+ *
436
+ * Validates action string is "execute-btc-withdrawal" and includes UTXO identifier and networkFee in message.
437
+ * This prevents operator from changing execution parameters after user authorization.
438
+ *
439
+ * Message contains: positionId, timestamp, chainId, utxoIdentifier (txid:vout), networkFee, action
440
+ *
441
+ * @param auth - Authorization parameters (positionId, timestamp, chainId, utxoIdentifier, networkFee, action, signature, mode)
442
+ * @param positionOwner - Position owner address from contract
443
+ * @returns True if authorized
444
+ */
445
+ static async verifyBtcExecutionAuthorization(auth, positionOwner) {
446
+ // Validate action string matches expected value
447
+ if (auth.action !== "execute-btc-withdrawal") {
448
+ console.error(`[Authorization] Invalid action for BTC execution: expected "execute-btc-withdrawal", got "${auth.action}"`);
449
+ return false;
450
+ }
451
+ // Build message hash function specific to BTC execution (includes utxoIdentifier and networkFee)
452
+ const buildMessage = () => {
453
+ const actionHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(auth.action));
454
+ // Debug logging for message hash construction
455
+ console.log("[Authorization] Building BTC execution message hash:");
456
+ console.log(" positionId:", auth.positionId);
457
+ console.log(" timestamp:", auth.timestamp);
458
+ console.log(" chainId:", auth.chainId);
459
+ console.log(" utxoIdentifier:", auth.utxoIdentifier);
460
+ console.log(" networkFee:", auth.networkFee);
461
+ console.log(" action:", auth.action);
462
+ console.log(" actionHash:", actionHash);
463
+ const types = [
464
+ "bytes32", // positionId
465
+ "uint256", // timestamp
466
+ "uint256", // chainId
467
+ "string", // utxoIdentifier (txid:vout)
468
+ "uint256", // networkFee (satoshis)
469
+ "bytes32", // actionHash
470
+ ];
471
+ const values = [
472
+ auth.positionId,
473
+ auth.timestamp,
474
+ auth.chainId,
475
+ auth.utxoIdentifier,
476
+ auth.networkFee,
477
+ actionHash,
478
+ ];
479
+ const messageHash = ethers.utils.solidityKeccak256(types, values);
480
+ console.log(" messageHash (solidityKeccak256):", messageHash);
481
+ return messageHash;
482
+ };
483
+ // Authorization check function
484
+ const isAuthorized = (recovered) => {
485
+ return recovered.toLowerCase() === positionOwner.toLowerCase();
486
+ };
487
+ // Use agnostic verification
488
+ return this.verifyActionAuthorization(auth, buildMessage, isAuthorized);
489
+ }
315
490
  }
316
491
  exports.AuthorizationModule = AuthorizationModule;
317
492
  //# sourceMappingURL=authorization.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.module.js","sourceRoot":"","sources":["../../../src/modules/authorization.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization.module.js","sourceRoot":"","sources":["../../../src/modules/authorization.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Bitcoin Address Module
3
+ *
4
+ * Provides Bitcoin address derivation from PKP public keys.
5
+ * Supports P2WPKH (SegWit v0) addresses for mainnet, testnet, and regtest networks.
6
+ *
7
+ * IMPORTANT: Changed from P2PKH to P2WPKH to support witness transactions.
8
+ * P2WPKH requires witness (SegWit) and produces bech32 addresses.
9
+ */
10
+ /**
11
+ * Derive Bitcoin P2WPKH (SegWit v0) address from PKP public key
12
+ *
13
+ * This is the DEFAULT address type used by vault PKPs.
14
+ * Uses bech32 encoding (bc1... for mainnet, bcrt1... for regtest, tb1... for testnet).
15
+ *
16
+ * @param pkpPublicKey - Uncompressed public key (130 hex chars: 04 + 32 bytes X + 32 bytes Y)
17
+ * @param network - Bitcoin network ("mainnet" | "testnet" | "regtest")
18
+ * @returns Bitcoin Bech32 address (P2WPKH)
19
+ */
20
+ export declare function deriveBitcoinAddress(pkpPublicKey: string, network: "mainnet" | "testnet" | "regtest"): Promise<string>;
21
+ /**
22
+ * Derive Bitcoin P2PKH (legacy) address from PKP public key
23
+ *
24
+ * DEPRECATED: Use deriveBitcoinAddress() for P2WPKH instead.
25
+ * This function is kept for backward compatibility only.
26
+ *
27
+ * @param pkpPublicKey - Uncompressed public key (130 hex chars: 04 + 32 bytes X + 32 bytes Y)
28
+ * @param network - Bitcoin network ("mainnet" | "testnet" | "regtest")
29
+ * @returns Bitcoin address (Base58 encoded)
30
+ */
31
+ export declare function deriveBitcoinAddressP2PKH(pkpPublicKey: string, network: "mainnet" | "testnet" | "regtest"): Promise<string>;
32
+ /**
33
+ * Convert Bitcoin address to scriptPubKey
34
+ * Supports P2PKH (Base58) and P2WPKH (Bech32) addresses
35
+ *
36
+ * @param address - Bitcoin address (Base58 or Bech32 encoded)
37
+ * @returns ScriptPubKey hex string
38
+ */
39
+ export declare function addressToScriptPubKey(address: string): string;
40
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/modules/bitcoin/address.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,CAAC,CAgDjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,CAAC,CAyDjB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuB7D"}
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ /**
3
+ * Bitcoin Address Module
4
+ *
5
+ * Provides Bitcoin address derivation from PKP public keys.
6
+ * Supports P2WPKH (SegWit v0) addresses for mainnet, testnet, and regtest networks.
7
+ *
8
+ * IMPORTANT: Changed from P2PKH to P2WPKH to support witness transactions.
9
+ * P2WPKH requires witness (SegWit) and produces bech32 addresses.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deriveBitcoinAddress = deriveBitcoinAddress;
13
+ exports.deriveBitcoinAddressP2PKH = deriveBitcoinAddressP2PKH;
14
+ exports.addressToScriptPubKey = addressToScriptPubKey;
15
+ /**
16
+ * Derive Bitcoin P2WPKH (SegWit v0) address from PKP public key
17
+ *
18
+ * This is the DEFAULT address type used by vault PKPs.
19
+ * Uses bech32 encoding (bc1... for mainnet, bcrt1... for regtest, tb1... for testnet).
20
+ *
21
+ * @param pkpPublicKey - Uncompressed public key (130 hex chars: 04 + 32 bytes X + 32 bytes Y)
22
+ * @param network - Bitcoin network ("mainnet" | "testnet" | "regtest")
23
+ * @returns Bitcoin Bech32 address (P2WPKH)
24
+ */
25
+ async function deriveBitcoinAddress(pkpPublicKey, network) {
26
+ // Remove 0x prefix if present
27
+ const pubKeyHex = pkpPublicKey.startsWith("0x")
28
+ ? pkpPublicKey.slice(2)
29
+ : pkpPublicKey;
30
+ // PKP public key is uncompressed (65 bytes: 04 + 32 bytes X + 32 bytes Y)
31
+ if (pubKeyHex.length !== 130) {
32
+ throw new Error(`Invalid public key length: ${pubKeyHex.length}, expected 130 (uncompressed format)`);
33
+ }
34
+ if (!pubKeyHex.startsWith("04")) {
35
+ throw new Error(`Invalid public key prefix: expected 04 (uncompressed), got ${pubKeyHex.substring(0, 2)}`);
36
+ }
37
+ // Compress public key (33 bytes: prefix + 32 bytes X)
38
+ const xCoord = pubKeyHex.slice(2, 66); // Skip '04' prefix
39
+ const yCoord = pubKeyHex.slice(66, 130);
40
+ const yBN = BigInt("0x" + yCoord);
41
+ const prefix = yBN % 2n === 0n ? "02" : "03"; // Even Y = 02, Odd Y = 03
42
+ const compressedPubKey = prefix + xCoord;
43
+ // Hash160: SHA256 then RIPEMD160
44
+ // @ts-ignore - ethers available in LIT runtime
45
+ const sha256Hash = ethers.utils.sha256("0x" + compressedPubKey);
46
+ // @ts-ignore - ethers available in LIT runtime
47
+ const ripemd160 = ethers.utils.ripemd160(sha256Hash);
48
+ const pubKeyHash = ripemd160.slice(2); // Remove 0x prefix
49
+ // Encode as Bech32 (P2WPKH)
50
+ let hrp;
51
+ if (network === "mainnet") {
52
+ hrp = "bc";
53
+ }
54
+ else if (network === "testnet") {
55
+ hrp = "tb";
56
+ }
57
+ else {
58
+ hrp = "bcrt"; // regtest
59
+ }
60
+ const address = bech32Encode(hrp, 0, pubKeyHash);
61
+ return address;
62
+ }
63
+ /**
64
+ * Derive Bitcoin P2PKH (legacy) address from PKP public key
65
+ *
66
+ * DEPRECATED: Use deriveBitcoinAddress() for P2WPKH instead.
67
+ * This function is kept for backward compatibility only.
68
+ *
69
+ * @param pkpPublicKey - Uncompressed public key (130 hex chars: 04 + 32 bytes X + 32 bytes Y)
70
+ * @param network - Bitcoin network ("mainnet" | "testnet" | "regtest")
71
+ * @returns Bitcoin address (Base58 encoded)
72
+ */
73
+ async function deriveBitcoinAddressP2PKH(pkpPublicKey, network) {
74
+ // Remove 0x prefix if present
75
+ const pubKeyHex = pkpPublicKey.startsWith("0x")
76
+ ? pkpPublicKey.slice(2)
77
+ : pkpPublicKey;
78
+ // PKP public key is uncompressed (65 bytes: 04 + 32 bytes X + 32 bytes Y)
79
+ if (pubKeyHex.length !== 130) {
80
+ throw new Error(`Invalid public key length: ${pubKeyHex.length}, expected 130 (uncompressed format)`);
81
+ }
82
+ if (!pubKeyHex.startsWith("04")) {
83
+ throw new Error(`Invalid public key prefix: expected 04 (uncompressed), got ${pubKeyHex.substring(0, 2)}`);
84
+ }
85
+ // Compress public key (33 bytes: prefix + 32 bytes X)
86
+ const xCoord = pubKeyHex.slice(2, 66); // Skip '04' prefix
87
+ const yCoord = pubKeyHex.slice(66, 130);
88
+ const yBN = BigInt("0x" + yCoord);
89
+ const prefix = yBN % 2n === 0n ? "02" : "03"; // Even Y = 02, Odd Y = 03
90
+ const compressedPubKey = prefix + xCoord;
91
+ // Hash160: SHA256 then RIPEMD160
92
+ // @ts-ignore - ethers available in LIT runtime
93
+ const sha256Hash = ethers.utils.sha256("0x" + compressedPubKey);
94
+ // @ts-ignore - ethers available in LIT runtime
95
+ const ripemd160 = ethers.utils.ripemd160(sha256Hash);
96
+ // Add network prefix byte
97
+ let versionByte;
98
+ if (network === "mainnet") {
99
+ versionByte = "00"; // P2PKH mainnet
100
+ }
101
+ else {
102
+ versionByte = "6f"; // P2PKH testnet/regtest
103
+ }
104
+ const versionedHash = versionByte + ripemd160.slice(2);
105
+ // Calculate checksum (double SHA256, first 4 bytes)
106
+ // @ts-ignore - ethers available in LIT runtime
107
+ const checksum1 = ethers.utils.sha256("0x" + versionedHash);
108
+ // @ts-ignore - ethers available in LIT runtime
109
+ const checksum2 = ethers.utils.sha256(checksum1);
110
+ const checksum = checksum2.slice(2, 10); // First 4 bytes
111
+ // Base58 encode
112
+ const addressHex = versionedHash + checksum;
113
+ const address = base58Encode(addressHex);
114
+ return address;
115
+ }
116
+ /**
117
+ * Convert Bitcoin address to scriptPubKey
118
+ * Supports P2PKH (Base58) and P2WPKH (Bech32) addresses
119
+ *
120
+ * @param address - Bitcoin address (Base58 or Bech32 encoded)
121
+ * @returns ScriptPubKey hex string
122
+ */
123
+ function addressToScriptPubKey(address) {
124
+ // Check if Bech32 (SegWit native)
125
+ const isBech32 = /^(bc1|tb1|bcrt1)[0-9a-zA-Z]{11,87}$/.test(address);
126
+ if (isBech32) {
127
+ // Bech32 P2WPKH address
128
+ const decoded = bech32Decode(address);
129
+ // P2WPKH script: OP_0 <20-byte-pubkey-hash>
130
+ // OP_0 = 0x00, 0x14 = 20 (length of pubKeyHash)
131
+ return "0014" + decoded.witnessProgram;
132
+ }
133
+ else {
134
+ // Legacy Base58 P2PKH address
135
+ const decoded = base58Decode(address);
136
+ // Remove version byte (1 byte) and checksum (4 bytes)
137
+ const pubKeyHash = decoded.slice(2, decoded.length - 8);
138
+ // P2PKH script: OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
139
+ // OP_DUP = 0x76, OP_HASH160 = 0xa9, OP_EQUALVERIFY = 0x88, OP_CHECKSIG = 0xac
140
+ // 0x14 = 20 (length of pubKeyHash)
141
+ return "76a914" + pubKeyHash + "88ac";
142
+ }
143
+ }
144
+ /**
145
+ * Base58 encoding (Bitcoin alphabet)
146
+ */
147
+ function base58Encode(hex) {
148
+ const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
149
+ let num = BigInt("0x" + hex);
150
+ let encoded = "";
151
+ while (num > 0n) {
152
+ const remainder = Number(num % 58n);
153
+ encoded = ALPHABET[remainder] + encoded;
154
+ num = num / 58n;
155
+ }
156
+ // Add leading '1's for leading zero bytes
157
+ for (let i = 0; i < hex.length && hex.substr(i, 2) === "00"; i += 2) {
158
+ encoded = "1" + encoded;
159
+ }
160
+ return encoded;
161
+ }
162
+ /**
163
+ * Base58 decoding
164
+ */
165
+ function base58Decode(encoded) {
166
+ const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
167
+ let num = 0n;
168
+ for (let i = 0; i < encoded.length; i++) {
169
+ const digit = ALPHABET.indexOf(encoded[i]);
170
+ if (digit < 0) {
171
+ throw new Error(`Invalid Base58 character: ${encoded[i]}`);
172
+ }
173
+ num = num * 58n + BigInt(digit);
174
+ }
175
+ let hex = num.toString(16);
176
+ if (hex.length % 2) {
177
+ hex = "0" + hex;
178
+ }
179
+ // Add leading zeros for leading '1's
180
+ for (let i = 0; i < encoded.length && encoded[i] === "1"; i++) {
181
+ hex = "00" + hex;
182
+ }
183
+ return hex;
184
+ }
185
+ /**
186
+ * Bech32 encoding for SegWit addresses
187
+ * Encodes witness version and program into bech32 address
188
+ *
189
+ * @param hrp - Human-readable part ("bc" for mainnet, "tb" for testnet, "bcrt" for regtest)
190
+ * @param witnessVersion - Witness version (0 for P2WPKH/P2WSH)
191
+ * @param witnessProgram - Hex string of witness program (20 bytes for P2WPKH, 32 for P2WSH)
192
+ * @returns Bech32 encoded address
193
+ */
194
+ function bech32Encode(hrp, witnessVersion, witnessProgram) {
195
+ const CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
196
+ // Convert witness program from hex to bytes
197
+ const programBytes = [];
198
+ for (let i = 0; i < witnessProgram.length; i += 2) {
199
+ programBytes.push(parseInt(witnessProgram.substr(i, 2), 16));
200
+ }
201
+ // Convert from 8-bit to 5-bit groups
202
+ const fiveBitData = convertBits(programBytes, 8, 5, true);
203
+ // Prepend witness version
204
+ const data = [witnessVersion, ...fiveBitData];
205
+ // Create checksum
206
+ const checksum = bech32CreateChecksum(hrp, data);
207
+ const combined = [...data, ...checksum];
208
+ // Encode to bech32
209
+ let encoded = hrp + "1";
210
+ for (let i = 0; i < combined.length; i++) {
211
+ encoded += CHARSET[combined[i]];
212
+ }
213
+ return encoded;
214
+ }
215
+ /**
216
+ * Create bech32 checksum
217
+ */
218
+ function bech32CreateChecksum(hrp, data) {
219
+ const values = bech32HrpExpand(hrp).concat(data).concat([0, 0, 0, 0, 0, 0]);
220
+ const mod = bech32Polymod(values) ^ 1;
221
+ const checksum = [];
222
+ for (let i = 0; i < 6; i++) {
223
+ checksum.push((mod >> (5 * (5 - i))) & 31);
224
+ }
225
+ return checksum;
226
+ }
227
+ /**
228
+ * Expand HRP for bech32 checksum
229
+ */
230
+ function bech32HrpExpand(hrp) {
231
+ const result = [];
232
+ for (let i = 0; i < hrp.length; i++) {
233
+ result.push(hrp.charCodeAt(i) >> 5);
234
+ }
235
+ result.push(0);
236
+ for (let i = 0; i < hrp.length; i++) {
237
+ result.push(hrp.charCodeAt(i) & 31);
238
+ }
239
+ return result;
240
+ }
241
+ /**
242
+ * Bech32 polymod for checksum calculation
243
+ */
244
+ function bech32Polymod(values) {
245
+ const GEN = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];
246
+ let chk = 1;
247
+ for (let i = 0; i < values.length; i++) {
248
+ const b = chk >> 25;
249
+ chk = ((chk & 0x1ffffff) << 5) ^ values[i];
250
+ for (let j = 0; j < 5; j++) {
251
+ if ((b >> j) & 1) {
252
+ chk ^= GEN[j];
253
+ }
254
+ }
255
+ }
256
+ return chk;
257
+ }
258
+ /**
259
+ * Bech32 decoding for SegWit addresses
260
+ * Simplified decoder for P2WPKH witness program extraction
261
+ */
262
+ function bech32Decode(address) {
263
+ const CHARSET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
264
+ // Split at last '1' separator
265
+ const pos = address.lastIndexOf("1");
266
+ if (pos < 1) {
267
+ throw new Error("No separator character for bech32");
268
+ }
269
+ const hrp = address.substring(0, pos).toLowerCase();
270
+ const data = address.substring(pos + 1).toLowerCase();
271
+ // Decode data part
272
+ const decoded = [];
273
+ for (let i = 0; i < data.length; i++) {
274
+ const v = CHARSET.indexOf(data[i]);
275
+ if (v === -1) {
276
+ throw new Error(`Invalid bech32 character: ${data[i]}`);
277
+ }
278
+ decoded.push(v);
279
+ }
280
+ // Remove checksum (last 6 characters)
281
+ const payload = decoded.slice(0, -6);
282
+ // First byte is witness version
283
+ const witnessVersion = payload[0];
284
+ // Convert from 5-bit groups to 8-bit bytes
285
+ const witness = convertBits(payload.slice(1), 5, 8, false);
286
+ // Convert to hex
287
+ const witnessProgram = witness
288
+ .map((b) => b.toString(16).padStart(2, "0"))
289
+ .join("");
290
+ return { witnessProgram };
291
+ }
292
+ /**
293
+ * Convert between bit groups
294
+ * Used for Bech32 5-bit to 8-bit conversion
295
+ */
296
+ function convertBits(data, fromBits, toBits, pad) {
297
+ let acc = 0;
298
+ let bits = 0;
299
+ const result = [];
300
+ const maxv = (1 << toBits) - 1;
301
+ for (let i = 0; i < data.length; i++) {
302
+ const value = data[i];
303
+ if (value < 0 || value >> fromBits !== 0) {
304
+ throw new Error("Invalid data for bit conversion");
305
+ }
306
+ acc = (acc << fromBits) | value;
307
+ bits += fromBits;
308
+ while (bits >= toBits) {
309
+ bits -= toBits;
310
+ result.push((acc >> bits) & maxv);
311
+ }
312
+ }
313
+ if (pad) {
314
+ if (bits > 0) {
315
+ result.push((acc << (toBits - bits)) & maxv);
316
+ }
317
+ }
318
+ else if (bits >= fromBits || (acc << (toBits - bits)) & maxv) {
319
+ throw new Error("Invalid padding in bit conversion");
320
+ }
321
+ return result;
322
+ }
323
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../../src/modules/bitcoin/address.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Bitcoin Provider Module
3
+ *
4
+ * Provides Bitcoin blockchain data access through RPC provider.
5
+ * Supports UTXO queries, scriptPubKey retrieval, and transaction queries.
6
+ */
7
+ /**
8
+ * UTXO data from Bitcoin network
9
+ */
10
+ export interface UTXO {
11
+ txid: string;
12
+ vout: number;
13
+ value: number;
14
+ confirmations: number;
15
+ scriptPubKey: string;
16
+ }
17
+ /**
18
+ * Bitcoin RPC provider client
19
+ */
20
+ export declare class BitcoinProvider {
21
+ private providerUrl;
22
+ constructor(providerUrl: string);
23
+ /**
24
+ * Get UTXOs for Bitcoin address
25
+ *
26
+ * @param address - Bitcoin address
27
+ * @param minConfirmations - Minimum confirmations required
28
+ * @returns Array of UTXOs
29
+ */
30
+ getUtxos(address: string, minConfirmations?: number): Promise<UTXO[]>;
31
+ /**
32
+ * Get scriptPubKey for transaction output
33
+ *
34
+ * @param txid - Transaction ID
35
+ * @param vout - Output index
36
+ * @returns ScriptPubKey hex string
37
+ */
38
+ getScriptPubKey(txid: string, vout: number): Promise<string>;
39
+ /**
40
+ * Check if UTXO exists and is unspent
41
+ *
42
+ * @param txid - Transaction ID
43
+ * @param vout - Output index
44
+ * @returns true if UTXO exists and is unspent
45
+ */
46
+ checkUtxoExists(txid: string, vout: number): Promise<boolean>;
47
+ /**
48
+ * Broadcast Bitcoin transaction
49
+ *
50
+ * @param txHex - Signed transaction hex
51
+ * @returns Transaction ID
52
+ */
53
+ broadcastTransaction(txHex: string): Promise<string>;
54
+ }
55
+ //# sourceMappingURL=provider.d.ts.map