@multiplechain/bitcoin 0.1.12 → 0.1.14
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/dist/bitcoin-provider.js +1 -1
- package/package.json +1 -1
- package/src/adapters/leather.js +2 -2
- package/src/adapters/trustwallet.js +32 -0
- package/src/adapters/unisat.js +2 -2
- package/src/adapters/xverse.js +2 -2
- package/src/get-adapter.js +1 -0
- package/src/provider.js +20 -30
- package/src/wallet.js +1 -1
package/package.json
CHANGED
package/src/adapters/leather.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports =
|
|
1
|
+
module.exports = (provider) => {
|
|
2
2
|
|
|
3
3
|
if (window.crypto && !window.crypto.randomUUID) {
|
|
4
4
|
window.crypto.randomUUID = () => {
|
|
@@ -70,6 +70,6 @@ module.exports = leather = (provider) => {
|
|
|
70
70
|
supports: ['browser'],
|
|
71
71
|
connect,
|
|
72
72
|
download: 'https://leather.io/install-extension',
|
|
73
|
-
|
|
73
|
+
isDetected: () => Boolean(typeof window.LeatherProvider !== 'undefined')
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module.exports = (provider) => {
|
|
2
|
+
|
|
3
|
+
const wallet = window?.trustwallet?.bitcoin;
|
|
4
|
+
|
|
5
|
+
const connect = async () => {
|
|
6
|
+
return new Promise(async (resolve, reject) => {
|
|
7
|
+
try {
|
|
8
|
+
wallet.requestAccounts()
|
|
9
|
+
.then(async () => {
|
|
10
|
+
resolve(wallet);
|
|
11
|
+
})
|
|
12
|
+
.catch(error => {
|
|
13
|
+
reject(error);
|
|
14
|
+
});
|
|
15
|
+
} catch (error) {
|
|
16
|
+
reject(error);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
key: 'trustwallet',
|
|
23
|
+
name: 'Trust Wallet',
|
|
24
|
+
supports: [
|
|
25
|
+
'browser',
|
|
26
|
+
'mobile'
|
|
27
|
+
],
|
|
28
|
+
connect,
|
|
29
|
+
download: 'https://trustwallet.com/download',
|
|
30
|
+
isDetected : () => Boolean(window?.trustwallet?.bitcoin?.isTrust)
|
|
31
|
+
}
|
|
32
|
+
}
|
package/src/adapters/unisat.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports =
|
|
1
|
+
module.exports = (provider) => {
|
|
2
2
|
|
|
3
3
|
const wallet = window.unisat;
|
|
4
4
|
const network = provider.testnet ? 'testnet' : 'livenet';
|
|
@@ -35,6 +35,6 @@ module.exports = unisat = (provider) => {
|
|
|
35
35
|
supports: ['browser'],
|
|
36
36
|
connect,
|
|
37
37
|
download: 'https://unisat.io/download',
|
|
38
|
-
|
|
38
|
+
isDetected: () => Boolean(typeof window.unisat !== 'undefined' && window.unisat.requestAccounts)
|
|
39
39
|
}
|
|
40
40
|
}
|
package/src/adapters/xverse.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const {getAddress, sendBtcTransaction, BitcoinNetworkType} = require('sats-connect');
|
|
2
2
|
|
|
3
|
-
module.exports =
|
|
3
|
+
module.exports = (provider) => {
|
|
4
4
|
|
|
5
5
|
const type = provider.testnet ?
|
|
6
6
|
BitcoinNetworkType.Testnet:
|
|
@@ -81,6 +81,6 @@ module.exports = xverse = (provider) => {
|
|
|
81
81
|
],
|
|
82
82
|
connect,
|
|
83
83
|
download: 'https://www.xverse.app/download',
|
|
84
|
-
|
|
84
|
+
isDetected: () => Boolean(typeof window.XverseProviders !== 'undefined' && XverseProviders.BitcoinProvider)
|
|
85
85
|
}
|
|
86
86
|
}
|
package/src/get-adapter.js
CHANGED
package/src/provider.js
CHANGED
|
@@ -41,7 +41,7 @@ class Provider {
|
|
|
41
41
|
/**
|
|
42
42
|
* @var {Object}
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
supportedWallets = {};
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* @var {Object}
|
|
@@ -77,7 +77,7 @@ class Provider {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
this.
|
|
80
|
+
this.initSupportedWallets();
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
getWalletOpenLink(address, amount) {
|
|
@@ -159,8 +159,9 @@ class Provider {
|
|
|
159
159
|
*/
|
|
160
160
|
connectWallet(adapter) {
|
|
161
161
|
return new Promise(async (resolve, reject) => {
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
let detectedWallets = this.getDetectedWallets();
|
|
163
|
+
if (detectedWallets[adapter]) {
|
|
164
|
+
let wallet = detectedWallets[adapter];
|
|
164
165
|
wallet.connect()
|
|
165
166
|
.then(() => {
|
|
166
167
|
resolve(wallet);
|
|
@@ -175,50 +176,39 @@ class Provider {
|
|
|
175
176
|
}
|
|
176
177
|
|
|
177
178
|
/**
|
|
178
|
-
* @
|
|
179
|
-
* @returns {Array}
|
|
179
|
+
* @returns {void}
|
|
180
180
|
*/
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
initSupportedWallets() {
|
|
183
182
|
const Wallet = require('./wallet');
|
|
184
183
|
|
|
185
|
-
|
|
184
|
+
this.supportedWallets = {
|
|
186
185
|
unisat: new Wallet('unisat', this),
|
|
187
186
|
xverse: new Wallet('xverse', this),
|
|
188
187
|
leather: new Wallet('leather', this),
|
|
188
|
+
trustwallet: new Wallet('trustwallet', this),
|
|
189
189
|
};
|
|
190
190
|
|
|
191
|
-
return Object.fromEntries(Object.entries(wallets).filter(([key]) => {
|
|
192
|
-
return !filter ? true : filter.includes(key);
|
|
193
|
-
}));
|
|
194
191
|
}
|
|
195
192
|
|
|
196
193
|
/**
|
|
197
194
|
* @param {Array|null} filter
|
|
198
195
|
* @returns {Array}
|
|
199
196
|
*/
|
|
200
|
-
|
|
201
|
-
return Object.fromEntries(Object.entries(this.
|
|
197
|
+
getSupportedWallets(filter) {
|
|
198
|
+
return Object.fromEntries(Object.entries(this.supportedWallets).filter(([key]) => {
|
|
202
199
|
return !filter ? true : filter.includes(key);
|
|
203
200
|
}));
|
|
204
201
|
}
|
|
205
202
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
this.detectedWallets['xverse'] = new Wallet('xverse', this);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
if (typeof window.LeatherProvider !== 'undefined') {
|
|
219
|
-
this.detectedWallets['leather'] = new Wallet('leather', this);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
203
|
+
/**
|
|
204
|
+
* @param {Array|null} filter
|
|
205
|
+
* @returns {Array}
|
|
206
|
+
*/
|
|
207
|
+
getDetectedWallets(filter) {
|
|
208
|
+
let detectedWallets = this.getSupportedWallets(filter);
|
|
209
|
+
return Object.fromEntries(Object.entries(detectedWallets).filter(([key, value]) => {
|
|
210
|
+
return value.isDetected() == undefined ? true : value.isDetected()
|
|
211
|
+
}));
|
|
222
212
|
}
|
|
223
213
|
|
|
224
214
|
Coin() {
|