@dynamic-labs/bitcoin 3.0.0-alpha.5 → 3.0.0-alpha.51

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 (36) hide show
  1. package/CHANGELOG.md +485 -0
  2. package/package.json +5 -5
  3. package/src/BitcoinLocalStorageCache.cjs +0 -16
  4. package/src/BitcoinLocalStorageCache.d.ts +0 -7
  5. package/src/BitcoinLocalStorageCache.js +0 -16
  6. package/src/bitcoinProviderHelper.d.ts +4 -0
  7. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs +59 -28
  8. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.d.ts +3 -2
  9. package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js +60 -29
  10. package/src/connectors/BitcoinWalletConnector.cjs +44 -23
  11. package/src/connectors/BitcoinWalletConnector.d.ts +5 -1
  12. package/src/connectors/BitcoinWalletConnector.js +45 -24
  13. package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.cjs +44 -0
  14. package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.d.ts +12 -0
  15. package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.js +40 -0
  16. package/src/connectors/FallbackBitcoinConnector/index.d.ts +1 -0
  17. package/src/connectors/OkxConnector/OkxConnector.cjs +19 -2
  18. package/src/connectors/OkxConnector/OkxConnector.d.ts +1 -1
  19. package/src/connectors/OkxConnector/OkxConnector.js +19 -2
  20. package/src/connectors/PhantomConnector/PhantomConnector.cjs +1 -2
  21. package/src/connectors/PhantomConnector/PhantomConnector.d.ts +0 -1
  22. package/src/connectors/PhantomConnector/PhantomConnector.js +1 -2
  23. package/src/connectors/UnisatConnector/UnisatConnector.cjs +26 -1
  24. package/src/connectors/UnisatConnector/UnisatConnector.d.ts +2 -1
  25. package/src/connectors/UnisatConnector/UnisatConnector.js +26 -1
  26. package/src/connectors/UnknownInjected/UnknownInjected.cjs +7 -1
  27. package/src/connectors/UnknownInjected/UnknownInjected.d.ts +1 -1
  28. package/src/connectors/UnknownInjected/UnknownInjected.js +7 -1
  29. package/src/connectors/index.d.ts +1 -0
  30. package/src/index.cjs +2 -1
  31. package/src/index.js +2 -1
  32. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs +1 -1
  33. package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.js +1 -1
  34. package/src/utils/psbt/createSignPsbtOptions.cjs +17 -1
  35. package/src/utils/psbt/createSignPsbtOptions.d.ts +2 -0
  36. package/src/utils/psbt/createSignPsbtOptions.js +17 -2
@@ -0,0 +1,40 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
4
+
5
+ class FallbackBitcoinConnector extends BitcoinWalletConnector {
6
+ constructor(opts) {
7
+ super(Object.assign(Object.assign({}, opts), { overrideKey: 'fallbackconnector' }));
8
+ this.name = 'Fallback Connector';
9
+ this.overrideKey = 'fallbackconnector';
10
+ this.isAvailable = false;
11
+ }
12
+ getAddress() {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ return;
15
+ });
16
+ }
17
+ signPsbt(
18
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
+ _request) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ return;
22
+ });
23
+ }
24
+ signPsbts(
25
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
+ _requests) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return;
29
+ });
30
+ }
31
+ sendBitcoin(
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ _transaction) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ return;
36
+ });
37
+ }
38
+ }
39
+
40
+ export { FallbackBitcoinConnector };
@@ -0,0 +1 @@
1
+ export { FallbackBitcoinConnector } from './FallbackBitcoinConnector';
@@ -13,7 +13,6 @@ class OkxConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
13
13
  constructor(opts) {
14
14
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'okxwalletbtc' }));
15
15
  this.name = 'OKX Wallet';
16
- this.canFetchConnectedAccounts = true;
17
16
  }
18
17
  get walletBookWallet() {
19
18
  return this.walletBook.wallets[this.key];
@@ -23,7 +22,8 @@ class OkxConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
23
22
  if (!this.isInstalledOnBrowser() &&
24
23
  utils.isMobile() &&
25
24
  this.walletBookWallet.mobile &&
26
- this.walletBookWallet.mobile.inAppBrowser) {
25
+ this.walletBookWallet.mobile.inAppBrowser &&
26
+ this.mobileExperience === 'in-app-browser') {
27
27
  const inAppBrowserCompiledTemplate = utils.template(this.walletBookWallet.mobile.inAppBrowser);
28
28
  const deepLink = inAppBrowserCompiledTemplate({
29
29
  encodedDappURI: encodeURIComponent(window.location.toString()),
@@ -78,6 +78,23 @@ class OkxConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
78
78
  return { signedPsbt: bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64() };
79
79
  });
80
80
  }
81
+ signPsbts(requests) {
82
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
83
+ const provider = this.getProvider();
84
+ if (!provider) {
85
+ return;
86
+ }
87
+ const psbtHexs = [];
88
+ const psbtOptions = [];
89
+ for (const request of requests) {
90
+ const psbt = bitcoinjsLib.Psbt.fromBase64(request.unsignedPsbtBase64);
91
+ psbtHexs.push(psbt.toHex());
92
+ psbtOptions.push(createSignPsbtOptions.createPsbtOptions(psbt, request));
93
+ }
94
+ const signedPsbtHexs = yield provider.signPsbts(psbtHexs, psbtOptions);
95
+ return signedPsbtHexs.map((signedPsbtHex) => bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64());
96
+ });
97
+ }
81
98
  }
82
99
 
83
100
  exports.OkxConnector = OkxConnector;
@@ -2,11 +2,11 @@ import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWa
2
2
  import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from '../../types';
3
3
  export declare class OkxConnector extends BitcoinWalletConnector {
4
4
  name: string;
5
- canFetchConnectedAccounts: boolean;
6
5
  constructor(opts: BitcoinWalletConnectorOpts);
7
6
  private get walletBookWallet();
8
7
  getAddress(): Promise<string | undefined>;
9
8
  signMessage(messageToSign: string): Promise<string | undefined>;
10
9
  sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
11
10
  signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
11
+ signPsbts(requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
12
12
  }
@@ -9,7 +9,6 @@ class OkxConnector extends BitcoinWalletConnector {
9
9
  constructor(opts) {
10
10
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'okxwalletbtc' }));
11
11
  this.name = 'OKX Wallet';
12
- this.canFetchConnectedAccounts = true;
13
12
  }
14
13
  get walletBookWallet() {
15
14
  return this.walletBook.wallets[this.key];
@@ -19,7 +18,8 @@ class OkxConnector extends BitcoinWalletConnector {
19
18
  if (!this.isInstalledOnBrowser() &&
20
19
  isMobile() &&
21
20
  this.walletBookWallet.mobile &&
22
- this.walletBookWallet.mobile.inAppBrowser) {
21
+ this.walletBookWallet.mobile.inAppBrowser &&
22
+ this.mobileExperience === 'in-app-browser') {
23
23
  const inAppBrowserCompiledTemplate = template(this.walletBookWallet.mobile.inAppBrowser);
24
24
  const deepLink = inAppBrowserCompiledTemplate({
25
25
  encodedDappURI: encodeURIComponent(window.location.toString()),
@@ -74,6 +74,23 @@ class OkxConnector extends BitcoinWalletConnector {
74
74
  return { signedPsbt: Psbt.fromHex(signedPsbtHex).toBase64() };
75
75
  });
76
76
  }
77
+ signPsbts(requests) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const provider = this.getProvider();
80
+ if (!provider) {
81
+ return;
82
+ }
83
+ const psbtHexs = [];
84
+ const psbtOptions = [];
85
+ for (const request of requests) {
86
+ const psbt = Psbt.fromBase64(request.unsignedPsbtBase64);
87
+ psbtHexs.push(psbt.toHex());
88
+ psbtOptions.push(createPsbtOptions(psbt, request));
89
+ }
90
+ const signedPsbtHexs = yield provider.signPsbts(psbtHexs, psbtOptions);
91
+ return signedPsbtHexs.map((signedPsbtHex) => Psbt.fromHex(signedPsbtHex).toBase64());
92
+ });
93
+ }
77
94
  }
78
95
 
79
96
  export { OkxConnector };
@@ -17,7 +17,6 @@ class PhantomConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
17
17
  constructor(opts) {
18
18
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'phantombtc' }));
19
19
  this.name = 'Phantom';
20
- this.canFetchConnectedAccounts = true;
21
20
  }
22
21
  connectWithInstalledExtension() {
23
22
  return _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -27,7 +26,7 @@ class PhantomConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
27
26
  const { accounts } = yield this.walletMethods.connect();
28
27
  const parsedAccounts = accounts.map((account) => ({
29
28
  address: account.address,
30
- publicKey: Buffer.from(account.publicKey).toString('base64'),
29
+ publicKey: Buffer.from(account.publicKey).toString('hex'),
31
30
  }));
32
31
  [paymentAccount, ordinalsAccount] = parsedAccounts;
33
32
  // in case it only returns one account, we will use it as both payment and ordinals
@@ -2,7 +2,6 @@ import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } f
2
2
  import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWalletConnector';
3
3
  export declare class PhantomConnector extends BitcoinWalletConnector {
4
4
  name: string;
5
- canFetchConnectedAccounts: boolean;
6
5
  constructor(opts: BitcoinWalletConnectorOpts);
7
6
  private connectWithInstalledExtension;
8
7
  getAddress(): Promise<string | undefined>;
@@ -13,7 +13,6 @@ class PhantomConnector extends BitcoinWalletConnector {
13
13
  constructor(opts) {
14
14
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'phantombtc' }));
15
15
  this.name = 'Phantom';
16
- this.canFetchConnectedAccounts = true;
17
16
  }
18
17
  connectWithInstalledExtension() {
19
18
  return __awaiter(this, void 0, void 0, function* () {
@@ -23,7 +22,7 @@ class PhantomConnector extends BitcoinWalletConnector {
23
22
  const { accounts } = yield this.walletMethods.connect();
24
23
  const parsedAccounts = accounts.map((account) => ({
25
24
  address: account.address,
26
- publicKey: Buffer.from(account.publicKey).toString('base64'),
25
+ publicKey: Buffer.from(account.publicKey).toString('hex'),
27
26
  }));
28
27
  [paymentAccount, ordinalsAccount] = parsedAccounts;
29
28
  // in case it only returns one account, we will use it as both payment and ordinals
@@ -13,7 +13,6 @@ class UnisatConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
13
13
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'unisat' }));
14
14
  this.name = 'UniSat';
15
15
  this.overrideKey = 'unisat';
16
- this.canFetchConnectedAccounts = true;
17
16
  }
18
17
  getAddress() {
19
18
  return _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -65,6 +64,32 @@ class UnisatConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
65
64
  return { signedPsbt: bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64() };
66
65
  });
67
66
  }
67
+ signPsbts(requests) {
68
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
69
+ const provider = this.getProvider();
70
+ if (!provider) {
71
+ return;
72
+ }
73
+ const psbtHexs = [];
74
+ const psbtOptions = [];
75
+ for (const request of requests) {
76
+ const psbtFromBase64 = bitcoinjsLib.Psbt.fromBase64(request.unsignedPsbtBase64);
77
+ psbtHexs.push(psbtFromBase64.toHex());
78
+ psbtOptions.push(createSignPsbtOptions.createPsbtOptions(psbtFromBase64, request));
79
+ }
80
+ const signedPsbtHexs = yield provider.signPsbts(psbtHexs, psbtOptions);
81
+ return signedPsbtHexs.map((signedPsbtHex) => bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64());
82
+ });
83
+ }
84
+ getConnectedAccounts() {
85
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
86
+ const provider = this.getProvider();
87
+ if (!provider) {
88
+ return [];
89
+ }
90
+ return provider.getAccounts();
91
+ });
92
+ }
68
93
  }
69
94
 
70
95
  exports.UnisatConnector = UnisatConnector;
@@ -3,10 +3,11 @@ import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } f
3
3
  export declare class UnisatConnector extends BitcoinWalletConnector {
4
4
  name: string;
5
5
  overrideKey: string;
6
- canFetchConnectedAccounts: boolean;
7
6
  constructor(opts: BitcoinWalletConnectorOpts);
8
7
  getAddress(): Promise<string | undefined>;
9
8
  signMessage(messageToSign: string): Promise<string | undefined>;
10
9
  sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
11
10
  signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
11
+ signPsbts(requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
12
+ getConnectedAccounts(): Promise<string[]>;
12
13
  }
@@ -9,7 +9,6 @@ class UnisatConnector extends BitcoinWalletConnector {
9
9
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'unisat' }));
10
10
  this.name = 'UniSat';
11
11
  this.overrideKey = 'unisat';
12
- this.canFetchConnectedAccounts = true;
13
12
  }
14
13
  getAddress() {
15
14
  return __awaiter(this, void 0, void 0, function* () {
@@ -61,6 +60,32 @@ class UnisatConnector extends BitcoinWalletConnector {
61
60
  return { signedPsbt: Psbt.fromHex(signedPsbtHex).toBase64() };
62
61
  });
63
62
  }
63
+ signPsbts(requests) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ const provider = this.getProvider();
66
+ if (!provider) {
67
+ return;
68
+ }
69
+ const psbtHexs = [];
70
+ const psbtOptions = [];
71
+ for (const request of requests) {
72
+ const psbtFromBase64 = Psbt.fromBase64(request.unsignedPsbtBase64);
73
+ psbtHexs.push(psbtFromBase64.toHex());
74
+ psbtOptions.push(createPsbtOptions(psbtFromBase64, request));
75
+ }
76
+ const signedPsbtHexs = yield provider.signPsbts(psbtHexs, psbtOptions);
77
+ return signedPsbtHexs.map((signedPsbtHex) => Psbt.fromHex(signedPsbtHex).toBase64());
78
+ });
79
+ }
80
+ getConnectedAccounts() {
81
+ return __awaiter(this, void 0, void 0, function* () {
82
+ const provider = this.getProvider();
83
+ if (!provider) {
84
+ return [];
85
+ }
86
+ return provider.getAccounts();
87
+ });
88
+ }
64
89
  }
65
90
 
66
91
  export { UnisatConnector };
@@ -11,7 +11,6 @@ class UnknownInjectedConnector extends BitcoinWalletConnector.BitcoinWalletConne
11
11
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'unknown' }));
12
12
  this.name = 'Unknown';
13
13
  this.overrideKey = 'unknown';
14
- this.canFetchConnectedAccounts = false;
15
14
  }
16
15
  getAddress() {
17
16
  return _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -25,6 +24,13 @@ class UnknownInjectedConnector extends BitcoinWalletConnector.BitcoinWalletConne
25
24
  return;
26
25
  });
27
26
  }
27
+ signPsbts(
28
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
+ _requests) {
30
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
31
+ return;
32
+ });
33
+ }
28
34
  sendBitcoin(
29
35
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
36
  _transaction) {
@@ -3,9 +3,9 @@ import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWa
3
3
  export declare class UnknownInjectedConnector extends BitcoinWalletConnector {
4
4
  name: string;
5
5
  overrideKey: string;
6
- canFetchConnectedAccounts: boolean;
7
6
  constructor(opts: BitcoinWalletConnectorOpts);
8
7
  getAddress(): Promise<string | undefined>;
9
8
  signPsbt(_request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
9
+ signPsbts(_requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
10
10
  sendBitcoin(_transaction: BitcoinTransaction): Promise<string | undefined>;
11
11
  }
@@ -7,7 +7,6 @@ class UnknownInjectedConnector extends BitcoinWalletConnector {
7
7
  super(Object.assign(Object.assign({}, opts), { overrideKey: 'unknown' }));
8
8
  this.name = 'Unknown';
9
9
  this.overrideKey = 'unknown';
10
- this.canFetchConnectedAccounts = false;
11
10
  }
12
11
  getAddress() {
13
12
  return __awaiter(this, void 0, void 0, function* () {
@@ -21,6 +20,13 @@ class UnknownInjectedConnector extends BitcoinWalletConnector {
21
20
  return;
22
21
  });
23
22
  }
23
+ signPsbts(
24
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
+ _requests) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return;
28
+ });
29
+ }
24
30
  sendBitcoin(
25
31
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
32
  _transaction) {
@@ -5,3 +5,4 @@ export * from './PhantomConnector';
5
5
  export * from './OkxConnector';
6
6
  export * from './UnisatConnector';
7
7
  export * from './UnknownInjected';
8
+ export * from './FallbackBitcoinConnector';
package/src/index.cjs CHANGED
@@ -9,7 +9,6 @@ require('sats-connect');
9
9
  require('bitcoinjs-lib');
10
10
  require('@dynamic-labs/wallet-connector-core');
11
11
  require('@dynamic-labs/utils');
12
- require('@dynamic-labs/sdk-api-core');
13
12
  require('@dynamic-labs/wallet-book');
14
13
  var fetchBtcKitConnectors = require('./utils/fetchBtcKitConnectors/fetchBtcKitConnectors.cjs');
15
14
  var fetchSatsConnectConnectors = require('./utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs');
@@ -20,6 +19,7 @@ var PhantomConnector = require('./connectors/PhantomConnector/PhantomConnector.c
20
19
  var OkxConnector = require('./connectors/OkxConnector/OkxConnector.cjs');
21
20
  var UnisatConnector = require('./connectors/UnisatConnector/UnisatConnector.cjs');
22
21
  var UnknownInjected = require('./connectors/UnknownInjected/UnknownInjected.cjs');
22
+ var FallbackBitcoinConnector = require('./connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.cjs');
23
23
 
24
24
  const BitcoinWalletConnectors = (props) => [
25
25
  ...fetchSatsConnectConnectors.fetchSatsConnectConnectors(props),
@@ -28,6 +28,7 @@ const BitcoinWalletConnectors = (props) => [
28
28
  OkxConnector.OkxConnector,
29
29
  UnisatConnector.UnisatConnector,
30
30
  UnknownInjected.UnknownInjectedConnector,
31
+ FallbackBitcoinConnector.FallbackBitcoinConnector,
31
32
  ];
32
33
 
33
34
  exports.BitcoinWalletConnector = BitcoinWalletConnector.BitcoinWalletConnector;
package/src/index.js CHANGED
@@ -5,7 +5,6 @@ import 'sats-connect';
5
5
  import 'bitcoinjs-lib';
6
6
  import '@dynamic-labs/wallet-connector-core';
7
7
  import '@dynamic-labs/utils';
8
- import '@dynamic-labs/sdk-api-core';
9
8
  import '@dynamic-labs/wallet-book';
10
9
  import { fetchBtcKitConnectors } from './utils/fetchBtcKitConnectors/fetchBtcKitConnectors.js';
11
10
  export { fetchBtcKitConnectors } from './utils/fetchBtcKitConnectors/fetchBtcKitConnectors.js';
@@ -18,6 +17,7 @@ import { PhantomConnector } from './connectors/PhantomConnector/PhantomConnector
18
17
  import { OkxConnector } from './connectors/OkxConnector/OkxConnector.js';
19
18
  import { UnisatConnector } from './connectors/UnisatConnector/UnisatConnector.js';
20
19
  import { UnknownInjectedConnector } from './connectors/UnknownInjected/UnknownInjected.js';
20
+ import { FallbackBitcoinConnector } from './connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.js';
21
21
 
22
22
  const BitcoinWalletConnectors = (props) => [
23
23
  ...fetchSatsConnectConnectors(props),
@@ -26,6 +26,7 @@ const BitcoinWalletConnectors = (props) => [
26
26
  OkxConnector,
27
27
  UnisatConnector,
28
28
  UnknownInjectedConnector,
29
+ FallbackBitcoinConnector,
29
30
  ];
30
31
 
31
32
  export { BitcoinWalletConnectors };
@@ -5,12 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _const = require('../../const.cjs');
7
7
  require('../../../_virtual/_tslib.cjs');
8
+ require('sats-connect');
8
9
  require('@dynamic-labs/wallet-connector-core');
9
10
  require('@dynamic-labs/wallet-book');
10
11
  require('@dynamic-labs/utils');
11
12
  require('@dynamic-labs/sdk-api-core');
12
13
  require('@wallet-standard/app');
13
- require('sats-connect');
14
14
  require('bitcoinjs-lib');
15
15
  var BitcoinSatsConnectConnector = require('../../connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs');
16
16
 
@@ -1,12 +1,12 @@
1
1
  'use client'
2
2
  import { SATSCONNECT_FEATURE } from '../../const.js';
3
3
  import '../../../_virtual/_tslib.js';
4
+ import 'sats-connect';
4
5
  import '@dynamic-labs/wallet-connector-core';
5
6
  import '@dynamic-labs/wallet-book';
6
7
  import '@dynamic-labs/utils';
7
8
  import '@dynamic-labs/sdk-api-core';
8
9
  import '@wallet-standard/app';
9
- import 'sats-connect';
10
10
  import 'bitcoinjs-lib';
11
11
  import { BitcoinSatsConnectConnector } from '../../connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js';
12
12
 
@@ -4,8 +4,8 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var validatePsbt = require('./validator/validatePsbt.cjs');
7
+ var getSigHashType = require('./getSigHashType.cjs');
7
8
  require('bitcoinjs-lib');
8
- require('@dynamic-labs/wallet-connector-core');
9
9
  require('sats-connect');
10
10
 
11
11
  const createPsbtOptions = (psbt, request) => {
@@ -32,5 +32,21 @@ const createPsbtOptions = (psbt, request) => {
32
32
  }
33
33
  return psbtSignOptions;
34
34
  };
35
+ const createSignPsbtOptionsForSatsConnect = (psbtFromBase64, request) => {
36
+ var _a, _b, _c;
37
+ if ((_a = request.signature) === null || _a === void 0 ? void 0 : _a.length) {
38
+ validatePsbt.validatePsbt(psbtFromBase64, request.allowedSighash, request.signature);
39
+ }
40
+ const inputsToSign = ((_c = (_b = request.signature) === null || _b === void 0 ? void 0 : _b.map((sig) => {
41
+ var _a;
42
+ return ((_a = sig.signingIndexes) !== null && _a !== void 0 ? _a : []).map((inputIndex) => ({
43
+ address: sig.address,
44
+ sigHash: getSigHashType.getSigHashType(psbtFromBase64.data.inputs[inputIndex]),
45
+ signingIndexes: [inputIndex],
46
+ }));
47
+ })) !== null && _c !== void 0 ? _c : []).flat();
48
+ return inputsToSign;
49
+ };
35
50
 
36
51
  exports.createPsbtOptions = createPsbtOptions;
52
+ exports.createSignPsbtOptionsForSatsConnect = createSignPsbtOptionsForSatsConnect;
@@ -1,3 +1,5 @@
1
1
  import { Psbt } from 'bitcoinjs-lib';
2
+ import { InputToSign } from 'sats-connect';
2
3
  import { BitcoinSignPsbtRequest, SignPsbtOptions } from '../../types';
3
4
  export declare const createPsbtOptions: (psbt: Psbt, request: BitcoinSignPsbtRequest) => SignPsbtOptions;
5
+ export declare const createSignPsbtOptionsForSatsConnect: (psbtFromBase64: Psbt, request: BitcoinSignPsbtRequest) => InputToSign[];
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { validatePsbt } from './validator/validatePsbt.js';
3
+ import { getSigHashType } from './getSigHashType.js';
3
4
  import 'bitcoinjs-lib';
4
- import '@dynamic-labs/wallet-connector-core';
5
5
  import 'sats-connect';
6
6
 
7
7
  const createPsbtOptions = (psbt, request) => {
@@ -28,5 +28,20 @@ const createPsbtOptions = (psbt, request) => {
28
28
  }
29
29
  return psbtSignOptions;
30
30
  };
31
+ const createSignPsbtOptionsForSatsConnect = (psbtFromBase64, request) => {
32
+ var _a, _b, _c;
33
+ if ((_a = request.signature) === null || _a === void 0 ? void 0 : _a.length) {
34
+ validatePsbt(psbtFromBase64, request.allowedSighash, request.signature);
35
+ }
36
+ const inputsToSign = ((_c = (_b = request.signature) === null || _b === void 0 ? void 0 : _b.map((sig) => {
37
+ var _a;
38
+ return ((_a = sig.signingIndexes) !== null && _a !== void 0 ? _a : []).map((inputIndex) => ({
39
+ address: sig.address,
40
+ sigHash: getSigHashType(psbtFromBase64.data.inputs[inputIndex]),
41
+ signingIndexes: [inputIndex],
42
+ }));
43
+ })) !== null && _c !== void 0 ? _c : []).flat();
44
+ return inputsToSign;
45
+ };
31
46
 
32
- export { createPsbtOptions };
47
+ export { createPsbtOptions, createSignPsbtOptionsForSatsConnect };