@gvnrdao/dh-lit-actions 0.0.81 → 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.
- package/package.json +8 -2
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts +1 -9
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js +139 -151
- package/pkg-dist/pkg-src/constants/chunks/lit-actions-registry.js.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.d.ts.map +1 -1
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js +0 -2
- package/pkg-dist/pkg-src/constants/chunks/package-registry.js.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts +12 -0
- package/pkg-dist/pkg-src/interfaces/chunks/diamond-hands-lit-actions.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts +0 -2
- package/pkg-dist/pkg-src/interfaces/chunks/lit-action-registry.i.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js +5 -0
- package/pkg-dist/pkg-src/utils/chunks/cid-utils.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js +18 -4
- package/pkg-dist/pkg-src/utils/chunks/lit-action-helpers.js.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.d.ts.map +1 -1
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js +6 -2
- package/pkg-dist/pkg-src/utils/chunks/pkp-setup.js.map +1 -1
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js +4 -4
- package/pkg-dist/src/constants/chunks/bitcoin-network-config.js.map +1 -1
- package/pkg-dist/src/constants/chunks/quantum-time.d.ts +7 -7
- package/pkg-dist/src/constants/chunks/quantum-time.js +7 -7
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts +6 -0
- package/pkg-dist/src/interfaces/chunks/bitcoin-data-provider.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts +18 -0
- package/pkg-dist/src/interfaces/chunks/owner-authorization.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts +2 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance-module.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-balance.i.d.ts.map +1 -1
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts +2 -0
- package/pkg-dist/src/interfaces/chunks/vault-snapshot.i.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.d.ts +86 -0
- package/pkg-dist/src/modules/authorization.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/authorization.module.js +175 -0
- package/pkg-dist/src/modules/authorization.module.js.map +1 -1
- package/pkg-dist/src/modules/bitcoin/address.d.ts +40 -0
- package/pkg-dist/src/modules/bitcoin/address.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/address.js +323 -0
- package/pkg-dist/src/modules/bitcoin/address.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts +55 -0
- package/pkg-dist/src/modules/bitcoin/provider.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/provider.js +67 -0
- package/pkg-dist/src/modules/bitcoin/provider.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts +24 -0
- package/pkg-dist/src/modules/bitcoin/signature.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/signature.js +64 -0
- package/pkg-dist/src/modules/bitcoin/signature.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts +63 -0
- package/pkg-dist/src/modules/bitcoin/transaction.d.ts.map +1 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js +187 -0
- package/pkg-dist/src/modules/bitcoin/transaction.js.map +1 -0
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts +19 -0
- package/pkg-dist/src/modules/bitcoin-data-provider.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js +162 -18
- package/pkg-dist/src/modules/bitcoin-data-provider.module.js.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/price-oracle.module.js +65 -67
- package/pkg-dist/src/modules/price-oracle.module.js.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts +1 -1
- package/pkg-dist/src/modules/quantum-time.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/quantum-time.module.js +9 -6
- package/pkg-dist/src/modules/quantum-time.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts +3 -1
- package/pkg-dist/src/modules/vault-balance.module.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-balance.module.js +59 -2
- package/pkg-dist/src/modules/vault-balance.module.js.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts +11 -1
- package/pkg-dist/src/modules/vault-snapshot.d.ts.map +1 -1
- package/pkg-dist/src/modules/vault-snapshot.js +123 -33
- 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
|