@dynamic-labs/bitcoin 4.8.3 → 4.8.4
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 +13 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +6 -6
- package/src/connectors/BinanceConnector/BinanceConnector.cjs +80 -0
- package/src/connectors/BinanceConnector/BinanceConnector.d.ts +14 -0
- package/src/connectors/BinanceConnector/BinanceConnector.js +76 -0
- package/src/connectors/BinanceConnector/index.d.ts +1 -0
- package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.cjs +1 -0
- package/src/connectors/BitcoinSatsConnectConnector/BitcoinSatsConnectConnector.js +1 -0
- package/src/connectors/OkxConnector/OkxConnector.cjs +2 -0
- package/src/connectors/OkxConnector/OkxConnector.js +2 -0
- package/src/connectors/OneKeyConnector/OneKeyConnector.cjs +1 -0
- package/src/connectors/OneKeyConnector/OneKeyConnector.js +1 -0
- package/src/connectors/index.d.ts +1 -0
- package/src/index.cjs +2 -0
- package/src/index.js +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.8.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.8.3...v4.8.4) (2025-03-05)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add iframe deeplink support for iOS Safari ([#8168](https://github.com/dynamic-labs/dynamic-auth/issues/8168)) ([cc4a6b9](https://github.com/dynamic-labs/dynamic-auth/commit/cc4a6b94b8e1b36b303ea5bf86734ba2e73bcef9))
|
|
8
|
+
* add binance bitcoin wallet support ([#8089](ttps://github.com/dynamic-labs/dynamic-auth/issues/8089)) ([c8a3a41](https://github.com/dynamic-labs/dynamic-auth/commit/c8a3a418e4f431b3442e5bc7332530b777e223c8))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* mobile wallet iframe redirects ([#8213](https://github.com/dynamic-labs/dynamic-auth/issues/8213)) ([96ea428](https://github.com/dynamic-labs/dynamic-auth/commit/96ea428375232e57379faef6e2a61dd818325777))
|
|
14
|
+
|
|
2
15
|
### [4.8.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.8.2...v4.8.3) (2025-03-04)
|
|
3
16
|
|
|
4
17
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/bitcoin",
|
|
3
|
-
"version": "4.8.
|
|
3
|
+
"version": "4.8.4",
|
|
4
4
|
"description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"bitcoinjs-lib": "6.1.5",
|
|
26
26
|
"sats-connect": "3.0.1",
|
|
27
27
|
"jsontokens": "4.0.1",
|
|
28
|
-
"@dynamic-labs/assert-package-version": "4.8.
|
|
29
|
-
"@dynamic-labs/types": "4.8.
|
|
30
|
-
"@dynamic-labs/utils": "4.8.
|
|
31
|
-
"@dynamic-labs/wallet-book": "4.8.
|
|
32
|
-
"@dynamic-labs/wallet-connector-core": "4.8.
|
|
28
|
+
"@dynamic-labs/assert-package-version": "4.8.4",
|
|
29
|
+
"@dynamic-labs/types": "4.8.4",
|
|
30
|
+
"@dynamic-labs/utils": "4.8.4",
|
|
31
|
+
"@dynamic-labs/wallet-book": "4.8.4",
|
|
32
|
+
"@dynamic-labs/wallet-connector-core": "4.8.4",
|
|
33
33
|
"eventemitter3": "5.0.1"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../_virtual/_tslib.cjs');
|
|
7
|
+
var bitcoinjsLib = require('bitcoinjs-lib');
|
|
8
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
|
+
var BitcoinWalletConnector = require('../BitcoinWalletConnector.cjs');
|
|
10
|
+
var createSignPsbtOptions = require('../../utils/psbt/createSignPsbtOptions.cjs');
|
|
11
|
+
|
|
12
|
+
class BinanceConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super(Object.assign(Object.assign({}, opts), { overrideKey: 'binancewalletbtc' }));
|
|
15
|
+
this.name = 'Binance Wallet';
|
|
16
|
+
this.overrideKey = 'binancewalletbtc';
|
|
17
|
+
}
|
|
18
|
+
getAddress() {
|
|
19
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const provider = this.getProvider();
|
|
21
|
+
if (!provider) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const [address] = yield provider.requestAccounts();
|
|
25
|
+
const bitcoinAddress = {
|
|
26
|
+
address,
|
|
27
|
+
publicKey: yield provider.getPublicKey(),
|
|
28
|
+
};
|
|
29
|
+
yield this.setConnectedAccountWithAddresses({
|
|
30
|
+
active: true,
|
|
31
|
+
mainAddress: address,
|
|
32
|
+
ordinalsAddress: bitcoinAddress,
|
|
33
|
+
});
|
|
34
|
+
return address;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getConnectedAccounts() {
|
|
38
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const provider = this.getProvider();
|
|
40
|
+
if (!provider) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
return provider.getAccounts();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
signMessage(messageToSign, options) {
|
|
47
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
var _a;
|
|
49
|
+
const provider = this.getProvider();
|
|
50
|
+
if (!provider) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// default to ecdsa
|
|
54
|
+
const protocol = (_a = options === null || options === void 0 ? void 0 : options.protocol) !== null && _a !== void 0 ? _a : 'ecdsa';
|
|
55
|
+
if (options === null || options === void 0 ? void 0 : options.address) {
|
|
56
|
+
walletConnectorCore.logger.debug('[OneKeyConnector] signMessage - Not possible to specify address to sign with', {
|
|
57
|
+
address: options.address,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return provider.signMessage(messageToSign, protocol);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
signPsbt(request) {
|
|
64
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const provider = this.getProvider();
|
|
66
|
+
if (!provider) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const psbtFromBase64 = bitcoinjsLib.Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
70
|
+
const psbtOptions = createSignPsbtOptions.createPsbtOptions(psbtFromBase64, request);
|
|
71
|
+
const signedPsbtHex = yield provider.signPsbt(psbtFromBase64.toHex(), {
|
|
72
|
+
autoFinalized: false,
|
|
73
|
+
toSignInputs: psbtOptions.toSignInputs || [],
|
|
74
|
+
});
|
|
75
|
+
return { signedPsbt: bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64() };
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
exports.BinanceConnector = BinanceConnector;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWalletConnector';
|
|
2
|
+
import { BitcoinSignPsbtRequest, BitcoinSignPsbtResponse, BitcoinSignProtocol } from '../../types';
|
|
3
|
+
export declare class BinanceConnector extends BitcoinWalletConnector {
|
|
4
|
+
name: string;
|
|
5
|
+
overrideKey: string;
|
|
6
|
+
constructor(opts: BitcoinWalletConnectorOpts);
|
|
7
|
+
getAddress(): Promise<string | undefined>;
|
|
8
|
+
getConnectedAccounts(): Promise<string[]>;
|
|
9
|
+
signMessage(messageToSign: string, options?: {
|
|
10
|
+
address?: string;
|
|
11
|
+
protocol?: BitcoinSignProtocol;
|
|
12
|
+
}): Promise<string | undefined>;
|
|
13
|
+
signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
3
|
+
import { Psbt } from 'bitcoinjs-lib';
|
|
4
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
|
|
6
|
+
import { createPsbtOptions } from '../../utils/psbt/createSignPsbtOptions.js';
|
|
7
|
+
|
|
8
|
+
class BinanceConnector extends BitcoinWalletConnector {
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super(Object.assign(Object.assign({}, opts), { overrideKey: 'binancewalletbtc' }));
|
|
11
|
+
this.name = 'Binance Wallet';
|
|
12
|
+
this.overrideKey = 'binancewalletbtc';
|
|
13
|
+
}
|
|
14
|
+
getAddress() {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const provider = this.getProvider();
|
|
17
|
+
if (!provider) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const [address] = yield provider.requestAccounts();
|
|
21
|
+
const bitcoinAddress = {
|
|
22
|
+
address,
|
|
23
|
+
publicKey: yield provider.getPublicKey(),
|
|
24
|
+
};
|
|
25
|
+
yield this.setConnectedAccountWithAddresses({
|
|
26
|
+
active: true,
|
|
27
|
+
mainAddress: address,
|
|
28
|
+
ordinalsAddress: bitcoinAddress,
|
|
29
|
+
});
|
|
30
|
+
return address;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
getConnectedAccounts() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const provider = this.getProvider();
|
|
36
|
+
if (!provider) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
return provider.getAccounts();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
signMessage(messageToSign, options) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
var _a;
|
|
45
|
+
const provider = this.getProvider();
|
|
46
|
+
if (!provider) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// default to ecdsa
|
|
50
|
+
const protocol = (_a = options === null || options === void 0 ? void 0 : options.protocol) !== null && _a !== void 0 ? _a : 'ecdsa';
|
|
51
|
+
if (options === null || options === void 0 ? void 0 : options.address) {
|
|
52
|
+
logger.debug('[OneKeyConnector] signMessage - Not possible to specify address to sign with', {
|
|
53
|
+
address: options.address,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return provider.signMessage(messageToSign, protocol);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
signPsbt(request) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const provider = this.getProvider();
|
|
62
|
+
if (!provider) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const psbtFromBase64 = Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
66
|
+
const psbtOptions = createPsbtOptions(psbtFromBase64, request);
|
|
67
|
+
const signedPsbtHex = yield provider.signPsbt(psbtFromBase64.toHex(), {
|
|
68
|
+
autoFinalized: false,
|
|
69
|
+
toSignInputs: psbtOptions.toSignInputs || [],
|
|
70
|
+
});
|
|
71
|
+
return { signedPsbt: Psbt.fromHex(signedPsbtHex).toBase64() };
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { BinanceConnector };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BinanceConnector } from './BinanceConnector';
|
|
@@ -66,6 +66,7 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector.BitcoinWalletCo
|
|
|
66
66
|
return false;
|
|
67
67
|
const inAppBrowserTemplate = utils.template(inAppBrowserUrl);
|
|
68
68
|
const deepLink = inAppBrowserTemplate({
|
|
69
|
+
// TODO: use PlatformService
|
|
69
70
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
70
71
|
});
|
|
71
72
|
utils.PlatformService.openURL(deepLink);
|
|
@@ -62,6 +62,7 @@ class BitcoinSatsConnectConnector extends BitcoinWalletConnector {
|
|
|
62
62
|
return false;
|
|
63
63
|
const inAppBrowserTemplate = template(inAppBrowserUrl);
|
|
64
64
|
const deepLink = inAppBrowserTemplate({
|
|
65
|
+
// TODO: use PlatformService
|
|
65
66
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
66
67
|
});
|
|
67
68
|
PlatformService.openURL(deepLink);
|
|
@@ -24,8 +24,10 @@ class OkxConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
|
|
|
24
24
|
this.mobileExperience === 'in-app-browser') {
|
|
25
25
|
const inAppBrowserCompiledTemplate = utils.template(this.metadata.inAppBrowserUrl);
|
|
26
26
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
27
|
+
// TODO: use PlatformService
|
|
27
28
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
28
29
|
});
|
|
30
|
+
// TODO: use PlatformService
|
|
29
31
|
window.location.assign(deepLink);
|
|
30
32
|
return;
|
|
31
33
|
}
|
|
@@ -20,8 +20,10 @@ class OkxConnector extends BitcoinWalletConnector {
|
|
|
20
20
|
this.mobileExperience === 'in-app-browser') {
|
|
21
21
|
const inAppBrowserCompiledTemplate = template(this.metadata.inAppBrowserUrl);
|
|
22
22
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
23
|
+
// TODO: use PlatformService
|
|
23
24
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
24
25
|
});
|
|
26
|
+
// TODO: use PlatformService
|
|
25
27
|
window.location.assign(deepLink);
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
@@ -24,6 +24,7 @@ class OneKeyConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
|
|
|
24
24
|
this.mobileExperience === 'in-app-browser') {
|
|
25
25
|
const inAppBrowserCompiledTemplate = utils.template(this.metadata.inAppBrowserUrl);
|
|
26
26
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
27
|
+
// TODO: use PlatformService
|
|
27
28
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
28
29
|
});
|
|
29
30
|
utils.PlatformService.openURL(deepLink);
|
|
@@ -20,6 +20,7 @@ class OneKeyConnector extends BitcoinWalletConnector {
|
|
|
20
20
|
this.mobileExperience === 'in-app-browser') {
|
|
21
21
|
const inAppBrowserCompiledTemplate = template(this.metadata.inAppBrowserUrl);
|
|
22
22
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
23
|
+
// TODO: use PlatformService
|
|
23
24
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
24
25
|
});
|
|
25
26
|
PlatformService.openURL(deepLink);
|
package/src/index.cjs
CHANGED
|
@@ -18,6 +18,7 @@ var OneKeyConnector = require('./connectors/OneKeyConnector/OneKeyConnector.cjs'
|
|
|
18
18
|
var OylConnector = require('./connectors/OylConnector/OylConnector.cjs');
|
|
19
19
|
var UnisatConnector = require('./connectors/UnisatConnector/UnisatConnector.cjs');
|
|
20
20
|
var FallbackBitcoinConnector = require('./connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.cjs');
|
|
21
|
+
var BinanceConnector = require('./connectors/BinanceConnector/BinanceConnector.cjs');
|
|
21
22
|
var BitgetConnector = require('./connectors/BitgetConnector/BitgetConnector.cjs');
|
|
22
23
|
var fetchBtcKitConnectors = require('./utils/fetchBtcKitConnectors/fetchBtcKitConnectors.cjs');
|
|
23
24
|
var fetchSatsConnectConnectors = require('./utils/fetchSatsConnectConnectors/fetchSatsConnectConnectors.cjs');
|
|
@@ -37,6 +38,7 @@ const BitcoinWalletConnectors = (props) => [
|
|
|
37
38
|
OylConnector.OylConnector,
|
|
38
39
|
UnisatConnector.UnisatConnector,
|
|
39
40
|
BitgetConnector.BitgetConnector,
|
|
41
|
+
BinanceConnector.BinanceConnector,
|
|
40
42
|
FallbackBitcoinConnector.FallbackBitcoinConnector,
|
|
41
43
|
];
|
|
42
44
|
|
package/src/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { OneKeyConnector } from './connectors/OneKeyConnector/OneKeyConnector.js
|
|
|
14
14
|
import { OylConnector } from './connectors/OylConnector/OylConnector.js';
|
|
15
15
|
import { UnisatConnector } from './connectors/UnisatConnector/UnisatConnector.js';
|
|
16
16
|
import { FallbackBitcoinConnector } from './connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.js';
|
|
17
|
+
import { BinanceConnector } from './connectors/BinanceConnector/BinanceConnector.js';
|
|
17
18
|
import { BitgetConnector } from './connectors/BitgetConnector/BitgetConnector.js';
|
|
18
19
|
import { fetchBtcKitConnectors } from './utils/fetchBtcKitConnectors/fetchBtcKitConnectors.js';
|
|
19
20
|
export { fetchBtcKitConnectors } from './utils/fetchBtcKitConnectors/fetchBtcKitConnectors.js';
|
|
@@ -35,6 +36,7 @@ const BitcoinWalletConnectors = (props) => [
|
|
|
35
36
|
OylConnector,
|
|
36
37
|
UnisatConnector,
|
|
37
38
|
BitgetConnector,
|
|
39
|
+
BinanceConnector,
|
|
38
40
|
FallbackBitcoinConnector,
|
|
39
41
|
];
|
|
40
42
|
|