@dynamic-labs/bitcoin 3.0.0-alpha.5 → 3.0.0-alpha.50
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/CHANGELOG.md +463 -0
- package/package.json +5 -5
- package/src/BitcoinLocalStorageCache.cjs +0 -16
- package/src/BitcoinLocalStorageCache.d.ts +0 -7
- package/src/BitcoinLocalStorageCache.js +0 -16
- package/src/bitcoinProviderHelper.d.ts +4 -0
- package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs +59 -28
- package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.d.ts +3 -2
- package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js +60 -29
- package/src/connectors/BitcoinWalletConnector.cjs +44 -23
- package/src/connectors/BitcoinWalletConnector.d.ts +5 -1
- package/src/connectors/BitcoinWalletConnector.js +45 -24
- package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.cjs +44 -0
- package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.d.ts +12 -0
- package/src/connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.js +40 -0
- package/src/connectors/FallbackBitcoinConnector/index.d.ts +1 -0
- package/src/connectors/OkxConnector/OkxConnector.cjs +19 -2
- package/src/connectors/OkxConnector/OkxConnector.d.ts +1 -1
- package/src/connectors/OkxConnector/OkxConnector.js +19 -2
- package/src/connectors/PhantomConnector/PhantomConnector.cjs +1 -2
- package/src/connectors/PhantomConnector/PhantomConnector.d.ts +0 -1
- package/src/connectors/PhantomConnector/PhantomConnector.js +1 -2
- package/src/connectors/UnisatConnector/UnisatConnector.cjs +26 -1
- package/src/connectors/UnisatConnector/UnisatConnector.d.ts +2 -1
- package/src/connectors/UnisatConnector/UnisatConnector.js +26 -1
- package/src/connectors/UnknownInjected/UnknownInjected.cjs +7 -1
- package/src/connectors/UnknownInjected/UnknownInjected.d.ts +1 -1
- package/src/connectors/UnknownInjected/UnknownInjected.js +7 -1
- package/src/connectors/index.d.ts +1 -0
- package/src/index.cjs +2 -1
- package/src/index.js +2 -1
- package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs +1 -1
- package/src/utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.js +1 -1
- package/src/utils/psbt/createSignPsbtOptions.cjs +17 -1
- package/src/utils/psbt/createSignPsbtOptions.d.ts +2 -0
- 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('
|
|
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('
|
|
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) {
|
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 };
|