@dynamic-labs/bitcoin 4.0.0-alpha.42 → 4.0.0-alpha.44
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 +27 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +6 -6
- package/src/connectors/OneKeyConnector/OneKeyConnector.cjs +109 -0
- package/src/connectors/OneKeyConnector/OneKeyConnector.d.ts +12 -0
- package/src/connectors/OneKeyConnector/OneKeyConnector.js +105 -0
- package/src/connectors/OneKeyConnector/index.d.ts +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,31 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.0.0-alpha.44](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.43...v4.0.0-alpha.44) (2024-12-09)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* Removes the `eventsCallbacks` prop which has been deprecated for a while. Use the `events` prop instead.
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* allows changing the storage postfix ([#7558](https://github.com/dynamic-labs/dynamic-auth/issues/7558)) ([f0aac70](https://github.com/dynamic-labs/dynamic-auth/commit/f0aac703732a69615f11876023684509ad87af62))
|
|
12
|
+
* allows filtering tokens ([#7561](https://github.com/dynamic-labs/dynamic-auth/issues/7561)) ([e73b56c](https://github.com/dynamic-labs/dynamic-auth/commit/e73b56cd41ead7e4f693d19ccb2670602d1107c5))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* fetch and store public key for onekey btc wallet ([#7577](https://github.com/dynamic-labs/dynamic-auth/issues/7577)) ([634e7ac](https://github.com/dynamic-labs/dynamic-auth/commit/634e7ac40dcbe6780f7b52f2aaf6b0a90f1e7325))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
* remove eventsCallbacks ([#7571](https://github.com/dynamic-labs/dynamic-auth/issues/7571)) ([7006db3](https://github.com/dynamic-labs/dynamic-auth/commit/7006db3f23ee87b23b075941e16d216d1b8bc356))
|
|
21
|
+
|
|
22
|
+
## [4.0.0-alpha.43](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.42...v4.0.0-alpha.43) (2024-12-09)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* add support for OneKey BTC ([#7557](https://github.com/dynamic-labs/dynamic-auth/issues/7557)) ([00f1363](https://github.com/dynamic-labs/dynamic-auth/commit/00f136330bd89ecbd510750641497974b494b149))
|
|
28
|
+
|
|
2
29
|
## [4.0.0-alpha.42](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.41...v4.0.0-alpha.42) (2024-12-06)
|
|
3
30
|
|
|
4
31
|
|
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.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.44",
|
|
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": "2.8.0",
|
|
27
27
|
"jsontokens": "4.0.1",
|
|
28
|
-
"@dynamic-labs/assert-package-version": "4.0.0-alpha.
|
|
29
|
-
"@dynamic-labs/types": "4.0.0-alpha.
|
|
30
|
-
"@dynamic-labs/utils": "4.0.0-alpha.
|
|
31
|
-
"@dynamic-labs/wallet-book": "4.0.0-alpha.
|
|
32
|
-
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.
|
|
28
|
+
"@dynamic-labs/assert-package-version": "4.0.0-alpha.44",
|
|
29
|
+
"@dynamic-labs/types": "4.0.0-alpha.44",
|
|
30
|
+
"@dynamic-labs/utils": "4.0.0-alpha.44",
|
|
31
|
+
"@dynamic-labs/wallet-book": "4.0.0-alpha.44",
|
|
32
|
+
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.44",
|
|
33
33
|
"eventemitter3": "5.0.1"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {}
|
|
@@ -0,0 +1,109 @@
|
|
|
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 utils = require('@dynamic-labs/utils');
|
|
9
|
+
var BitcoinWalletConnector = require('../BitcoinWalletConnector.cjs');
|
|
10
|
+
var createSignPsbtOptions = require('../../utils/psbt/createSignPsbtOptions.cjs');
|
|
11
|
+
|
|
12
|
+
class OneKeyConnector extends BitcoinWalletConnector.BitcoinWalletConnector {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super(Object.assign(Object.assign({}, opts), { overrideKey: 'onekeybtc' }));
|
|
15
|
+
this.name = 'OneKey';
|
|
16
|
+
}
|
|
17
|
+
getAddress() {
|
|
18
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
var _a;
|
|
20
|
+
if (!this.isInstalledOnBrowser() &&
|
|
21
|
+
utils.isMobile() &&
|
|
22
|
+
((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
|
|
23
|
+
this.mobileExperience === 'in-app-browser') {
|
|
24
|
+
const inAppBrowserCompiledTemplate = utils.template(this.metadata.inAppBrowserUrl);
|
|
25
|
+
const deepLink = inAppBrowserCompiledTemplate({
|
|
26
|
+
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
27
|
+
});
|
|
28
|
+
window.location.assign(deepLink);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const provider = this.getProvider();
|
|
32
|
+
if (!provider) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const [address] = yield provider.requestAccounts();
|
|
36
|
+
const bitcoinAddress = {
|
|
37
|
+
address,
|
|
38
|
+
publicKey: yield provider.getPublicKey(),
|
|
39
|
+
};
|
|
40
|
+
yield this.setConnectedAccountWithAddresses({
|
|
41
|
+
active: true,
|
|
42
|
+
mainAddress: address,
|
|
43
|
+
ordinalsAddress: bitcoinAddress,
|
|
44
|
+
});
|
|
45
|
+
return address;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
getConnectedAccounts() {
|
|
49
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const provider = this.getProvider();
|
|
51
|
+
if (!provider) {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
return provider.getAccounts();
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
signMessage(messageToSign) {
|
|
58
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const provider = this.getProvider();
|
|
60
|
+
if (!provider) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
return provider.signMessage(messageToSign, 'ecdsa');
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
sendBitcoin(transaction) {
|
|
67
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const provider = this.getProvider();
|
|
69
|
+
if (!provider) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
return provider.sendBitcoin(transaction.recipientAddress, transaction.amount.toString());
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
signPsbt(request) {
|
|
76
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const provider = this.getProvider();
|
|
78
|
+
if (!provider) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const psbtFromBase64 = bitcoinjsLib.Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
82
|
+
const signedPsbtHex = yield provider.signPsbt(psbtFromBase64.toHex(), {
|
|
83
|
+
autoFinalized: false,
|
|
84
|
+
});
|
|
85
|
+
return { signedPsbt: bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64() };
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
signPsbts(requests) {
|
|
89
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const provider = this.getProvider();
|
|
91
|
+
if (!provider) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const psbtHexs = [];
|
|
95
|
+
const psbtOptions = [];
|
|
96
|
+
for (const request of requests) {
|
|
97
|
+
const psbt = bitcoinjsLib.Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
98
|
+
psbtHexs.push(psbt.toHex());
|
|
99
|
+
psbtOptions.push(createSignPsbtOptions.createPsbtOptions(psbt, request));
|
|
100
|
+
}
|
|
101
|
+
const signedPsbtHexs = yield provider.signPsbts(psbtHexs, {
|
|
102
|
+
autoFinalized: false,
|
|
103
|
+
});
|
|
104
|
+
return signedPsbtHexs.map((signedPsbtHex) => bitcoinjsLib.Psbt.fromHex(signedPsbtHex).toBase64());
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
exports.OneKeyConnector = OneKeyConnector;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BitcoinWalletConnector, BitcoinWalletConnectorOpts } from '../BitcoinWalletConnector';
|
|
2
|
+
import { BitcoinTransaction, BitcoinSignPsbtRequest, BitcoinSignPsbtResponse } from '../../types';
|
|
3
|
+
export declare class OneKeyConnector extends BitcoinWalletConnector {
|
|
4
|
+
name: string;
|
|
5
|
+
constructor(opts: BitcoinWalletConnectorOpts);
|
|
6
|
+
getAddress(): Promise<string | undefined>;
|
|
7
|
+
getConnectedAccounts(): Promise<string[]>;
|
|
8
|
+
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
9
|
+
sendBitcoin(transaction: BitcoinTransaction): Promise<string | undefined>;
|
|
10
|
+
signPsbt(request: BitcoinSignPsbtRequest): Promise<BitcoinSignPsbtResponse | undefined>;
|
|
11
|
+
signPsbts(requests: BitcoinSignPsbtRequest[]): Promise<string[] | undefined>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
3
|
+
import { Psbt } from 'bitcoinjs-lib';
|
|
4
|
+
import { isMobile, template } from '@dynamic-labs/utils';
|
|
5
|
+
import { BitcoinWalletConnector } from '../BitcoinWalletConnector.js';
|
|
6
|
+
import { createPsbtOptions } from '../../utils/psbt/createSignPsbtOptions.js';
|
|
7
|
+
|
|
8
|
+
class OneKeyConnector extends BitcoinWalletConnector {
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super(Object.assign(Object.assign({}, opts), { overrideKey: 'onekeybtc' }));
|
|
11
|
+
this.name = 'OneKey';
|
|
12
|
+
}
|
|
13
|
+
getAddress() {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
var _a;
|
|
16
|
+
if (!this.isInstalledOnBrowser() &&
|
|
17
|
+
isMobile() &&
|
|
18
|
+
((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
|
|
19
|
+
this.mobileExperience === 'in-app-browser') {
|
|
20
|
+
const inAppBrowserCompiledTemplate = template(this.metadata.inAppBrowserUrl);
|
|
21
|
+
const deepLink = inAppBrowserCompiledTemplate({
|
|
22
|
+
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
23
|
+
});
|
|
24
|
+
window.location.assign(deepLink);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const provider = this.getProvider();
|
|
28
|
+
if (!provider) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const [address] = yield provider.requestAccounts();
|
|
32
|
+
const bitcoinAddress = {
|
|
33
|
+
address,
|
|
34
|
+
publicKey: yield provider.getPublicKey(),
|
|
35
|
+
};
|
|
36
|
+
yield this.setConnectedAccountWithAddresses({
|
|
37
|
+
active: true,
|
|
38
|
+
mainAddress: address,
|
|
39
|
+
ordinalsAddress: bitcoinAddress,
|
|
40
|
+
});
|
|
41
|
+
return address;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
getConnectedAccounts() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const provider = this.getProvider();
|
|
47
|
+
if (!provider) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
return provider.getAccounts();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
signMessage(messageToSign) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const provider = this.getProvider();
|
|
56
|
+
if (!provider) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
return provider.signMessage(messageToSign, 'ecdsa');
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
sendBitcoin(transaction) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const provider = this.getProvider();
|
|
65
|
+
if (!provider) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
return provider.sendBitcoin(transaction.recipientAddress, transaction.amount.toString());
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
signPsbt(request) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const provider = this.getProvider();
|
|
74
|
+
if (!provider) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const psbtFromBase64 = Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
78
|
+
const signedPsbtHex = yield provider.signPsbt(psbtFromBase64.toHex(), {
|
|
79
|
+
autoFinalized: false,
|
|
80
|
+
});
|
|
81
|
+
return { signedPsbt: Psbt.fromHex(signedPsbtHex).toBase64() };
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
signPsbts(requests) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const provider = this.getProvider();
|
|
87
|
+
if (!provider) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const psbtHexs = [];
|
|
91
|
+
const psbtOptions = [];
|
|
92
|
+
for (const request of requests) {
|
|
93
|
+
const psbt = Psbt.fromBase64(request.unsignedPsbtBase64);
|
|
94
|
+
psbtHexs.push(psbt.toHex());
|
|
95
|
+
psbtOptions.push(createPsbtOptions(psbt, request));
|
|
96
|
+
}
|
|
97
|
+
const signedPsbtHexs = yield provider.signPsbts(psbtHexs, {
|
|
98
|
+
autoFinalized: false,
|
|
99
|
+
});
|
|
100
|
+
return signedPsbtHexs.map((signedPsbtHex) => Psbt.fromHex(signedPsbtHex).toBase64());
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export { OneKeyConnector };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { OneKeyConnector } from './OneKeyConnector';
|
|
@@ -4,6 +4,7 @@ export * from './BitcoinSatsConnectConnector';
|
|
|
4
4
|
export * from './MagicEdenConnector';
|
|
5
5
|
export * from './PhantomConnector';
|
|
6
6
|
export * from './OkxConnector';
|
|
7
|
+
export * from './OneKeyConnector';
|
|
7
8
|
export * from './OylConnector';
|
|
8
9
|
export * from './UnisatConnector';
|
|
9
10
|
export * from './FallbackBitcoinConnector';
|
package/src/index.cjs
CHANGED
|
@@ -14,6 +14,7 @@ require('@dynamic-labs/utils');
|
|
|
14
14
|
var MagicEdenConnector = require('./connectors/MagicEdenConnector/MagicEdenConnector.cjs');
|
|
15
15
|
var PhantomConnector = require('./connectors/PhantomConnector/PhantomConnector.cjs');
|
|
16
16
|
var OkxConnector = require('./connectors/OkxConnector/OkxConnector.cjs');
|
|
17
|
+
var OneKeyConnector = require('./connectors/OneKeyConnector/OneKeyConnector.cjs');
|
|
17
18
|
var OylConnector = require('./connectors/OylConnector/OylConnector.cjs');
|
|
18
19
|
var UnisatConnector = require('./connectors/UnisatConnector/UnisatConnector.cjs');
|
|
19
20
|
var FallbackBitcoinConnector = require('./connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.cjs');
|
|
@@ -31,6 +32,7 @@ const BitcoinWalletConnectors = (props) => [
|
|
|
31
32
|
MagicEdenConnector.MagicEdenConnector,
|
|
32
33
|
PhantomConnector.PhantomConnector,
|
|
33
34
|
OkxConnector.OkxConnector,
|
|
35
|
+
OneKeyConnector.OneKeyConnector,
|
|
34
36
|
OylConnector.OylConnector,
|
|
35
37
|
UnisatConnector.UnisatConnector,
|
|
36
38
|
FallbackBitcoinConnector.FallbackBitcoinConnector,
|
package/src/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import '@dynamic-labs/utils';
|
|
|
10
10
|
import { MagicEdenConnector } from './connectors/MagicEdenConnector/MagicEdenConnector.js';
|
|
11
11
|
import { PhantomConnector } from './connectors/PhantomConnector/PhantomConnector.js';
|
|
12
12
|
import { OkxConnector } from './connectors/OkxConnector/OkxConnector.js';
|
|
13
|
+
import { OneKeyConnector } from './connectors/OneKeyConnector/OneKeyConnector.js';
|
|
13
14
|
import { OylConnector } from './connectors/OylConnector/OylConnector.js';
|
|
14
15
|
import { UnisatConnector } from './connectors/UnisatConnector/UnisatConnector.js';
|
|
15
16
|
import { FallbackBitcoinConnector } from './connectors/FallbackBitcoinConnector/FallbackBitcoinConnector.js';
|
|
@@ -29,6 +30,7 @@ const BitcoinWalletConnectors = (props) => [
|
|
|
29
30
|
MagicEdenConnector,
|
|
30
31
|
PhantomConnector,
|
|
31
32
|
OkxConnector,
|
|
33
|
+
OneKeyConnector,
|
|
32
34
|
OylConnector,
|
|
33
35
|
UnisatConnector,
|
|
34
36
|
FallbackBitcoinConnector,
|