@dynamic-labs/solana 1.1.0-alpha.10 → 1.1.0-alpha.11
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 +19 -0
- package/package.json +6 -6
- package/src/CoinbaseSolana.cjs +9 -33
- package/src/CoinbaseSolana.d.ts +5 -10
- package/src/CoinbaseSolana.js +9 -33
- package/src/Solflare.d.ts +4 -9
- package/src/index.cjs +3 -15
- package/src/index.d.ts +1 -4
- package/src/index.js +3 -13
- package/src/injected/BackpackSol.cjs +6 -21
- package/src/injected/BackpackSol.d.ts +3 -5
- package/src/injected/BackpackSol.js +6 -21
- package/src/injected/InjectedWalletBase.cjs +20 -16
- package/src/injected/InjectedWalletBase.d.ts +7 -2
- package/src/injected/InjectedWalletBase.js +20 -16
- package/src/injected/Phantom.cjs +4 -2
- package/src/injected/Phantom.d.ts +2 -0
- package/src/injected/Phantom.js +4 -2
- package/src/injected/PhantomLedger.cjs +4 -2
- package/src/injected/PhantomLedger.d.ts +2 -0
- package/src/injected/PhantomLedger.js +4 -2
- package/src/injected/fetchInjectedWalletConnectors.cjs +50 -0
- package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
- package/src/injected/fetchInjectedWalletConnectors.js +45 -0
- package/src/injected/index.d.ts +1 -2
- package/src/solProviderHelper.cjs +99 -114
- package/src/solProviderHelper.d.ts +28 -29
- package/src/solProviderHelper.js +99 -114
- package/src/Glow.cjs +0 -50
- package/src/Glow.d.ts +0 -12
- package/src/Glow.js +0 -46
- package/src/Solflare.cjs +0 -83
- package/src/Solflare.js +0 -79
- package/src/injected/BraveSol.cjs +0 -21
- package/src/injected/BraveSol.d.ts +0 -5
- package/src/injected/BraveSol.js +0 -17
- package/src/injected/ExodusSol.cjs +0 -14
- package/src/injected/ExodusSol.d.ts +0 -4
- package/src/injected/ExodusSol.js +0 -10
- package/src/injected/MagicEdenSol.cjs +0 -14
- package/src/injected/MagicEdenSol.d.ts +0 -4
- package/src/injected/MagicEdenSol.js +0 -10
- package/src/injected/index.cjs +0 -21
- package/src/injected/index.js +0 -17
package/src/solProviderHelper.js
CHANGED
|
@@ -1,55 +1,79 @@
|
|
|
1
1
|
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
+
import { getProvidersFromWindow, bufferToBase64 } from '@dynamic-labs/utils';
|
|
2
3
|
import { ProviderLookup } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { bufferToBase64 } from '@dynamic-labs/utils';
|
|
4
4
|
import { isSignedMessage } from './utils/isSignedMessage.js';
|
|
5
5
|
|
|
6
|
-
var _a;
|
|
7
6
|
class SolProviderHelper {
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
constructor(wallet) {
|
|
8
|
+
this.wallet = wallet;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
getInjectedConfig() {
|
|
11
|
+
if (!this.wallet || !this.wallet.injectedConfig)
|
|
12
|
+
return;
|
|
13
|
+
const { injectedConfig } = this.wallet;
|
|
14
|
+
return injectedConfig.find((c) => c.chain === 'sol');
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
if (
|
|
18
|
-
|
|
16
|
+
getInstalledProvider() {
|
|
17
|
+
const config = this.getInjectedConfig();
|
|
18
|
+
if (!config || !config.extensionLocators) {
|
|
19
|
+
return undefined;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
return this.installedProviderLookup(config.extensionLocators);
|
|
22
|
+
}
|
|
23
|
+
installedProviders() {
|
|
24
|
+
const config = this.getInjectedConfig();
|
|
25
|
+
if (!config)
|
|
26
|
+
return [];
|
|
27
|
+
const providers = [];
|
|
28
|
+
if (config.windowLocations) {
|
|
29
|
+
for (const windowLocation of config.windowLocations) {
|
|
30
|
+
const foundProviders = getProvidersFromWindow(windowLocation);
|
|
31
|
+
if (foundProviders && foundProviders.length)
|
|
32
|
+
providers.push(...foundProviders);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (window.solana) {
|
|
36
|
+
if (!window.solana.providers) {
|
|
37
|
+
providers.push(window.solana);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
window.solana.providers.forEach((provider) => providers.push(provider));
|
|
41
|
+
}
|
|
24
42
|
}
|
|
25
|
-
return
|
|
43
|
+
return providers;
|
|
44
|
+
}
|
|
45
|
+
installedProviderLookup(providerFlags) {
|
|
46
|
+
const allInstalledProviders = this.installedProviders();
|
|
47
|
+
// If no provider flags are provided, return the first provider
|
|
48
|
+
// This is required for the coinbaseSolana window provider which has no locators
|
|
49
|
+
if (providerFlags.length === 0)
|
|
50
|
+
return allInstalledProviders[0];
|
|
51
|
+
return ProviderLookup(allInstalledProviders, providerFlags);
|
|
26
52
|
}
|
|
27
|
-
|
|
28
|
-
return this.
|
|
53
|
+
findProvider() {
|
|
54
|
+
return this.getInstalledProvider();
|
|
29
55
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return (_c = (_b = this.providers)[walletKey]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
56
|
+
isInstalledHelper() {
|
|
57
|
+
return this.findProvider() !== undefined;
|
|
33
58
|
}
|
|
34
|
-
|
|
59
|
+
fetchPublicAddress() {
|
|
60
|
+
var _a;
|
|
35
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const provider = this.findProvider(
|
|
62
|
+
const provider = this.findProvider();
|
|
37
63
|
if (!provider) {
|
|
38
|
-
return
|
|
64
|
+
return undefined;
|
|
39
65
|
}
|
|
40
66
|
if (!provider.isConnected) {
|
|
41
67
|
yield provider.connect();
|
|
42
68
|
}
|
|
43
|
-
|
|
44
|
-
return publicKey ? publicKey.toString() : Promise.resolve(undefined);
|
|
69
|
+
return (_a = provider.publicKey) === null || _a === void 0 ? void 0 : _a.toString();
|
|
45
70
|
});
|
|
46
71
|
}
|
|
47
|
-
|
|
72
|
+
connect() {
|
|
48
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const provider = this.findProvider(
|
|
50
|
-
if (!provider)
|
|
51
|
-
return
|
|
52
|
-
}
|
|
74
|
+
const provider = this.findProvider();
|
|
75
|
+
if (!provider)
|
|
76
|
+
return undefined;
|
|
53
77
|
try {
|
|
54
78
|
if (!provider.isConnected) {
|
|
55
79
|
yield provider.connect();
|
|
@@ -61,116 +85,77 @@ class SolProviderHelper {
|
|
|
61
85
|
}
|
|
62
86
|
});
|
|
63
87
|
}
|
|
64
|
-
|
|
88
|
+
signMessage(messageToSign) {
|
|
65
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
const walletAddress = yield this.
|
|
67
|
-
if (!walletAddress)
|
|
68
|
-
return
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return Promise.resolve(undefined);
|
|
73
|
-
}
|
|
90
|
+
const walletAddress = yield this.fetchPublicAddress();
|
|
91
|
+
if (!walletAddress)
|
|
92
|
+
return undefined;
|
|
93
|
+
const provider = this.findProvider();
|
|
94
|
+
if (!provider)
|
|
95
|
+
return undefined;
|
|
74
96
|
if (!provider.isConnected) {
|
|
75
97
|
yield provider.connect();
|
|
76
98
|
}
|
|
77
99
|
const encodedMessage = new TextEncoder().encode(messageToSign);
|
|
78
100
|
const signedMessage = yield provider.signMessage(encodedMessage, 'utf8');
|
|
79
|
-
if (!signedMessage)
|
|
80
|
-
return
|
|
81
|
-
}
|
|
101
|
+
if (!signedMessage)
|
|
102
|
+
return undefined;
|
|
82
103
|
return bufferToBase64(isSignedMessage(signedMessage) ? signedMessage.signature : signedMessage);
|
|
83
104
|
});
|
|
84
105
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
106
|
+
handleAccountChange(walletConnector, web3Provider, address) {
|
|
107
|
+
var _a;
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
if (!address) {
|
|
110
|
+
yield (web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.connect());
|
|
111
|
+
if ((_a = web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.publicKey) === null || _a === void 0 ? void 0 : _a.toString()) {
|
|
112
|
+
walletConnector.emit('accountChange', {
|
|
113
|
+
accounts: [web3Provider.publicKey.toString()],
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (address.toString()) {
|
|
119
|
+
walletConnector.emit('accountChange', { accounts: [address.toString()] });
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
_setupEventListeners(walletConnector) {
|
|
124
|
+
const provider = this.findProvider();
|
|
125
|
+
provider === null || provider === void 0 ? void 0 : provider.on('accountChanged', (publicKey) => this.handleAccountChange(walletConnector, provider, publicKey));
|
|
126
|
+
provider === null || provider === void 0 ? void 0 : provider.on('disconnect', () => walletConnector.emit('disconnect'));
|
|
88
127
|
}
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
if (!
|
|
128
|
+
_teardownEventListeners() {
|
|
129
|
+
const provider = this.findProvider();
|
|
130
|
+
if (!provider)
|
|
92
131
|
return;
|
|
93
|
-
|
|
94
|
-
web3Provider.removeAllListeners();
|
|
132
|
+
provider.removeAllListeners();
|
|
95
133
|
}
|
|
96
|
-
|
|
97
|
-
var
|
|
134
|
+
getConnectedAccounts() {
|
|
135
|
+
var _a, _b;
|
|
98
136
|
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
-
const provider = this.findProvider(
|
|
100
|
-
if (!provider)
|
|
137
|
+
const provider = this.findProvider();
|
|
138
|
+
if (!provider)
|
|
101
139
|
return [];
|
|
102
|
-
}
|
|
103
140
|
let connectionResult;
|
|
104
141
|
try {
|
|
105
142
|
if (!provider.isConnected) {
|
|
106
|
-
connectionResult = yield provider.connect({
|
|
107
|
-
onlyIfTrusted: true,
|
|
108
|
-
});
|
|
143
|
+
connectionResult = yield provider.connect({ onlyIfTrusted: true });
|
|
109
144
|
}
|
|
110
145
|
}
|
|
111
146
|
catch (e) {
|
|
112
147
|
return [];
|
|
113
148
|
}
|
|
114
149
|
const address = connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.address;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (address) {
|
|
150
|
+
const publicKey = (_a = connectionResult === null || connectionResult === void 0 ? void 0 : connectionResult.publicKey) !== null && _a !== void 0 ? _a : (_b = provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString();
|
|
151
|
+
if (address)
|
|
118
152
|
return [address];
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
153
|
+
else if (publicKey)
|
|
154
|
+
return [publicKey === null || publicKey === void 0 ? void 0 : publicKey.toString()];
|
|
155
|
+
else
|
|
124
156
|
return [];
|
|
125
|
-
}
|
|
126
157
|
});
|
|
127
158
|
}
|
|
128
159
|
}
|
|
129
|
-
_a = SolProviderHelper;
|
|
130
|
-
SolProviderHelper.GlowProvider = () => _a.installedProviderLookup([{ flag: 'isGlow', value: true }]);
|
|
131
|
-
SolProviderHelper.CoinbaseProvider = () => _a.findSolanaProviders(window.coinbaseSolana)[0];
|
|
132
|
-
SolProviderHelper.PhantomProvider = () => _a.installedProviderLookup([
|
|
133
|
-
{ flag: 'isPhantom', value: true },
|
|
134
|
-
{ flag: 'isBraveWallet', value: false },
|
|
135
|
-
{ flag: 'isExodus', value: false },
|
|
136
|
-
{ flag: 'isMagicEden', value: false },
|
|
137
|
-
]);
|
|
138
|
-
SolProviderHelper.MagicEdenProvider = () => _a.installedProviderLookup([{ flag: 'isMagicEden', value: true }]);
|
|
139
|
-
SolProviderHelper.SolflareProvider = () => _a.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
|
|
140
|
-
SolProviderHelper.BraveProvider = () => _a.installedProviderLookup([
|
|
141
|
-
{ flag: 'isPhantom', value: true },
|
|
142
|
-
{ flag: 'isBraveWallet', value: true },
|
|
143
|
-
]);
|
|
144
|
-
SolProviderHelper.ExodusProvider = () => _a.installedProviderLookup([
|
|
145
|
-
{ flag: 'isPhantom', value: true },
|
|
146
|
-
{ flag: 'isExodus', value: true },
|
|
147
|
-
]);
|
|
148
|
-
SolProviderHelper.BackpackSol = () => _a.installedProviderLookup([{ flag: 'isBackpack', value: true }]);
|
|
149
|
-
SolProviderHelper.providers = {
|
|
150
|
-
backpacksol: _a.BackpackSol,
|
|
151
|
-
bravesol: _a.BraveProvider,
|
|
152
|
-
coinbasesolana: _a.CoinbaseProvider,
|
|
153
|
-
exodussol: _a.ExodusProvider,
|
|
154
|
-
glow: _a.GlowProvider,
|
|
155
|
-
magicedensol: _a.MagicEdenProvider,
|
|
156
|
-
phantom: _a.PhantomProvider,
|
|
157
|
-
phantomledger: _a.PhantomProvider,
|
|
158
|
-
solflare: _a.SolflareProvider,
|
|
159
|
-
};
|
|
160
|
-
SolProviderHelper.handleAccountChange = (walletConnector, web3Provider, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
161
|
-
var _b;
|
|
162
|
-
if (!address) {
|
|
163
|
-
yield (web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.connect());
|
|
164
|
-
if ((_b = web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.publicKey) === null || _b === void 0 ? void 0 : _b.toString()) {
|
|
165
|
-
walletConnector.emit('accountChange', {
|
|
166
|
-
accounts: [web3Provider.publicKey.toString()],
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
if (address.toString()) {
|
|
172
|
-
walletConnector.emit('accountChange', { accounts: [address.toString()] });
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
160
|
|
|
176
161
|
export { SolProviderHelper };
|
package/src/Glow.cjs
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _tslib = require('../_virtual/_tslib.cjs');
|
|
6
|
-
var solWalletConnector = require('./solWalletConnector.cjs');
|
|
7
|
-
var solProviderHelper = require('./solProviderHelper.cjs');
|
|
8
|
-
|
|
9
|
-
class Glow extends solWalletConnector.SolWalletConnector {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.name = 'Glow';
|
|
13
|
-
}
|
|
14
|
-
setupEventListeners() {
|
|
15
|
-
solProviderHelper.SolProviderHelper._setupEventListeners(this, solProviderHelper.SolProviderHelper.findProvider(this.key));
|
|
16
|
-
}
|
|
17
|
-
teardownEventListeners() {
|
|
18
|
-
solProviderHelper.SolProviderHelper._teardownEventListeners(this.key);
|
|
19
|
-
}
|
|
20
|
-
connect() {
|
|
21
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
yield solProviderHelper.SolProviderHelper.connectWithKey(this.key);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
getSigner() {
|
|
26
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
return solProviderHelper.SolProviderHelper.connectWithKey(this.key);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
isInstalledOnBrowser() {
|
|
31
|
-
return solProviderHelper.SolProviderHelper.isInstalledHelper(this.key);
|
|
32
|
-
}
|
|
33
|
-
fetchPublicAddress() {
|
|
34
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
signMessage(messageToSign) {
|
|
39
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
return solProviderHelper.SolProviderHelper.signMessageWithKey(messageToSign, this.key);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
getConnectedAccounts() {
|
|
44
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
return solProviderHelper.SolProviderHelper.getConnectedAccountsWithKey(this.key);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
exports.Glow = Glow;
|
package/src/Glow.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { SolWalletConnector } from './solWalletConnector';
|
|
2
|
-
export declare class Glow extends SolWalletConnector {
|
|
3
|
-
name: string;
|
|
4
|
-
setupEventListeners(): void;
|
|
5
|
-
teardownEventListeners(): void;
|
|
6
|
-
connect(): Promise<void>;
|
|
7
|
-
getSigner(): Promise<import("./types").ISolana | undefined>;
|
|
8
|
-
isInstalledOnBrowser(): boolean;
|
|
9
|
-
fetchPublicAddress(): Promise<string | undefined>;
|
|
10
|
-
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
11
|
-
getConnectedAccounts(): Promise<string[]>;
|
|
12
|
-
}
|
package/src/Glow.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import { SolWalletConnector } from './solWalletConnector.js';
|
|
3
|
-
import { SolProviderHelper } from './solProviderHelper.js';
|
|
4
|
-
|
|
5
|
-
class Glow extends SolWalletConnector {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.name = 'Glow';
|
|
9
|
-
}
|
|
10
|
-
setupEventListeners() {
|
|
11
|
-
SolProviderHelper._setupEventListeners(this, SolProviderHelper.findProvider(this.key));
|
|
12
|
-
}
|
|
13
|
-
teardownEventListeners() {
|
|
14
|
-
SolProviderHelper._teardownEventListeners(this.key);
|
|
15
|
-
}
|
|
16
|
-
connect() {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
yield SolProviderHelper.connectWithKey(this.key);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
getSigner() {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
return SolProviderHelper.connectWithKey(this.key);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
isInstalledOnBrowser() {
|
|
27
|
-
return SolProviderHelper.isInstalledHelper(this.key);
|
|
28
|
-
}
|
|
29
|
-
fetchPublicAddress() {
|
|
30
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
return SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
signMessage(messageToSign) {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
return SolProviderHelper.signMessageWithKey(messageToSign, this.key);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
getConnectedAccounts() {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return SolProviderHelper.getConnectedAccountsWithKey(this.key);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export { Glow };
|
package/src/Solflare.cjs
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _tslib = require('../_virtual/_tslib.cjs');
|
|
6
|
-
var utils = require('@dynamic-labs/utils');
|
|
7
|
-
var solWalletConnector = require('./solWalletConnector.cjs');
|
|
8
|
-
var solProviderHelper = require('./solProviderHelper.cjs');
|
|
9
|
-
|
|
10
|
-
class Solflare extends solWalletConnector.SolWalletConnector {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(...arguments);
|
|
13
|
-
this.name = 'Solflare';
|
|
14
|
-
}
|
|
15
|
-
isInstalledOnBrowser() {
|
|
16
|
-
return solProviderHelper.SolProviderHelper.isInstalledHelper(this.key);
|
|
17
|
-
}
|
|
18
|
-
fetchPublicAddress() {
|
|
19
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
/**
|
|
21
|
-
* It should redirect to in-app browser if on mobile and if not in the in-app browser,
|
|
22
|
-
* this checks if it is not in the in-app browser by checking if the provider is not available.
|
|
23
|
-
*/
|
|
24
|
-
if (utils.isMobile() && !this.isInstalledOnBrowser()) {
|
|
25
|
-
utils.handleMobileWalletRedirect({
|
|
26
|
-
nativeLink: 'solflare://ul/v1/browse',
|
|
27
|
-
universalLink: 'https://solflare.com/ul/v1/browse',
|
|
28
|
-
});
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
connect() {
|
|
35
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
yield solProviderHelper.SolProviderHelper.connectWithKey(this.key);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
getSigner() {
|
|
40
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return solProviderHelper.SolProviderHelper.connectWithKey(this.key);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
signMessage(messageToSign) {
|
|
45
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
const walletAddress = yield this.fetchPublicAddress();
|
|
47
|
-
if (!walletAddress) {
|
|
48
|
-
return undefined;
|
|
49
|
-
}
|
|
50
|
-
const provider = solProviderHelper.SolProviderHelper.findProvider(this.key);
|
|
51
|
-
if (!provider) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
const encodedMessage = new TextEncoder().encode(messageToSign);
|
|
55
|
-
const isSignedMessage = (value) => value.signature !== undefined;
|
|
56
|
-
yield provider.connect();
|
|
57
|
-
/**
|
|
58
|
-
* TODO: Remove the sleep once problem is fixed on Solflare's extension.
|
|
59
|
-
* Tracked in DYN-442
|
|
60
|
-
*/
|
|
61
|
-
yield new Promise((resolve) => {
|
|
62
|
-
setTimeout(resolve, 100);
|
|
63
|
-
});
|
|
64
|
-
const rawMessage = yield provider.signMessage(encodedMessage, 'utf8');
|
|
65
|
-
return isSignedMessage(rawMessage)
|
|
66
|
-
? utils.bufferToBase64(rawMessage.signature)
|
|
67
|
-
: undefined;
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
getConnectedAccounts() {
|
|
71
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
return solProviderHelper.SolProviderHelper.getConnectedAccountsWithKey(this.key);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
setupEventListeners() {
|
|
76
|
-
solProviderHelper.SolProviderHelper._setupEventListeners(this, solProviderHelper.SolProviderHelper.findProvider(this.key));
|
|
77
|
-
}
|
|
78
|
-
teardownEventListeners() {
|
|
79
|
-
solProviderHelper.SolProviderHelper._teardownEventListeners(this.key);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
exports.Solflare = Solflare;
|
package/src/Solflare.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from '../_virtual/_tslib.js';
|
|
2
|
-
import { isMobile, handleMobileWalletRedirect, bufferToBase64 } from '@dynamic-labs/utils';
|
|
3
|
-
import { SolWalletConnector } from './solWalletConnector.js';
|
|
4
|
-
import { SolProviderHelper } from './solProviderHelper.js';
|
|
5
|
-
|
|
6
|
-
class Solflare extends SolWalletConnector {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.name = 'Solflare';
|
|
10
|
-
}
|
|
11
|
-
isInstalledOnBrowser() {
|
|
12
|
-
return SolProviderHelper.isInstalledHelper(this.key);
|
|
13
|
-
}
|
|
14
|
-
fetchPublicAddress() {
|
|
15
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
/**
|
|
17
|
-
* It should redirect to in-app browser if on mobile and if not in the in-app browser,
|
|
18
|
-
* this checks if it is not in the in-app browser by checking if the provider is not available.
|
|
19
|
-
*/
|
|
20
|
-
if (isMobile() && !this.isInstalledOnBrowser()) {
|
|
21
|
-
handleMobileWalletRedirect({
|
|
22
|
-
nativeLink: 'solflare://ul/v1/browse',
|
|
23
|
-
universalLink: 'https://solflare.com/ul/v1/browse',
|
|
24
|
-
});
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
return SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
connect() {
|
|
31
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
yield SolProviderHelper.connectWithKey(this.key);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
getSigner() {
|
|
36
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
return SolProviderHelper.connectWithKey(this.key);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
signMessage(messageToSign) {
|
|
41
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const walletAddress = yield this.fetchPublicAddress();
|
|
43
|
-
if (!walletAddress) {
|
|
44
|
-
return undefined;
|
|
45
|
-
}
|
|
46
|
-
const provider = SolProviderHelper.findProvider(this.key);
|
|
47
|
-
if (!provider) {
|
|
48
|
-
return undefined;
|
|
49
|
-
}
|
|
50
|
-
const encodedMessage = new TextEncoder().encode(messageToSign);
|
|
51
|
-
const isSignedMessage = (value) => value.signature !== undefined;
|
|
52
|
-
yield provider.connect();
|
|
53
|
-
/**
|
|
54
|
-
* TODO: Remove the sleep once problem is fixed on Solflare's extension.
|
|
55
|
-
* Tracked in DYN-442
|
|
56
|
-
*/
|
|
57
|
-
yield new Promise((resolve) => {
|
|
58
|
-
setTimeout(resolve, 100);
|
|
59
|
-
});
|
|
60
|
-
const rawMessage = yield provider.signMessage(encodedMessage, 'utf8');
|
|
61
|
-
return isSignedMessage(rawMessage)
|
|
62
|
-
? bufferToBase64(rawMessage.signature)
|
|
63
|
-
: undefined;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
getConnectedAccounts() {
|
|
67
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
return SolProviderHelper.getConnectedAccountsWithKey(this.key);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
setupEventListeners() {
|
|
72
|
-
SolProviderHelper._setupEventListeners(this, SolProviderHelper.findProvider(this.key));
|
|
73
|
-
}
|
|
74
|
-
teardownEventListeners() {
|
|
75
|
-
SolProviderHelper._teardownEventListeners(this.key);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export { Solflare };
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
6
|
-
var solProviderHelper = require('../solProviderHelper.cjs');
|
|
7
|
-
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
8
|
-
|
|
9
|
-
class BraveSol extends InjectedWalletBase.InjectedWalletBase {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.name = 'BraveSol';
|
|
13
|
-
}
|
|
14
|
-
fetchPublicAddress() {
|
|
15
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
return solProviderHelper.SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
exports.BraveSol = BraveSol;
|
package/src/injected/BraveSol.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
2
|
-
import { SolProviderHelper } from '../solProviderHelper.js';
|
|
3
|
-
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
4
|
-
|
|
5
|
-
class BraveSol extends InjectedWalletBase {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.name = 'BraveSol';
|
|
9
|
-
}
|
|
10
|
-
fetchPublicAddress() {
|
|
11
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
return SolProviderHelper.fetchPublicAddressWithKey(this.key);
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { BraveSol };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
-
|
|
7
|
-
class ExodusSol extends InjectedWalletBase.InjectedWalletBase {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.name = 'ExodusSol';
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.ExodusSol = ExodusSol;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
6
|
-
|
|
7
|
-
class MagicEdenSol extends InjectedWalletBase.InjectedWalletBase {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.name = 'MagicEdenSol';
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
exports.MagicEdenSol = MagicEdenSol;
|