@dynamic-labs/solana 0.0.0-exp20240808.0
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 +3746 -0
- package/LICENSE +21 -0
- package/README.md +0 -0
- package/_virtual/_tslib.cjs +36 -0
- package/_virtual/_tslib.js +32 -0
- package/package.json +48 -0
- package/src/CoinbaseSolana.cjs +52 -0
- package/src/CoinbaseSolana.d.ts +9 -0
- package/src/CoinbaseSolana.js +48 -0
- package/src/Phantom.cjs +44 -0
- package/src/Phantom.d.ts +13 -0
- package/src/Phantom.js +40 -0
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs +100 -0
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.d.ts +21 -0
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.js +96 -0
- package/src/SolanaWalletStandardConnector/index.d.ts +1 -0
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs +117 -0
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +4 -0
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js +113 -0
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/index.d.ts +1 -0
- package/src/Solflare.cjs +63 -0
- package/src/Solflare.d.ts +9 -0
- package/src/Solflare.js +59 -0
- package/src/contants.cjs +8 -0
- package/src/contants.d.ts +1 -0
- package/src/contants.js +4 -0
- package/src/errors/SignMessageNotSupportedError.cjs +17 -0
- package/src/errors/SignMessageNotSupportedError.d.ts +4 -0
- package/src/errors/SignMessageNotSupportedError.js +13 -0
- package/src/index.cjs +30 -0
- package/src/index.d.ts +7 -0
- package/src/index.js +22 -0
- package/src/injected/BackpackSol.cjs +46 -0
- package/src/injected/BackpackSol.d.ts +9 -0
- package/src/injected/BackpackSol.js +42 -0
- package/src/injected/FallbackSolanaConnector.cjs +22 -0
- package/src/injected/FallbackSolanaConnector.d.ts +9 -0
- package/src/injected/FallbackSolanaConnector.js +18 -0
- package/src/injected/InjectedWalletBase.cjs +118 -0
- package/src/injected/InjectedWalletBase.d.ts +21 -0
- package/src/injected/InjectedWalletBase.js +114 -0
- package/src/injected/PhantomInjected.cjs +37 -0
- package/src/injected/PhantomInjected.d.ts +8 -0
- package/src/injected/PhantomInjected.js +33 -0
- package/src/injected/UnknownInjected.cjs +21 -0
- package/src/injected/UnknownInjected.d.ts +8 -0
- package/src/injected/UnknownInjected.js +17 -0
- package/src/injected/fetchInjectedWalletConnectors.cjs +63 -0
- package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
- package/src/injected/fetchInjectedWalletConnectors.js +58 -0
- package/src/injected/index.d.ts +3 -0
- package/src/phantomRedirect/PhantomRedirect.cjs +337 -0
- package/src/phantomRedirect/PhantomRedirect.d.ts +37 -0
- package/src/phantomRedirect/PhantomRedirect.js +328 -0
- package/src/phantomRedirect/storage.cjs +96 -0
- package/src/phantomRedirect/storage.d.ts +40 -0
- package/src/phantomRedirect/storage.js +91 -0
- package/src/phantomRedirect/types.d.ts +1 -0
- package/src/phantomRedirect/utils.cjs +56 -0
- package/src/phantomRedirect/utils.d.ts +4 -0
- package/src/phantomRedirect/utils.js +44 -0
- package/src/solProviderHelper.cjs +173 -0
- package/src/solProviderHelper.d.ts +36 -0
- package/src/solProviderHelper.js +169 -0
- package/src/solWalletConnector.cjs +174 -0
- package/src/solWalletConnector.d.ts +37 -0
- package/src/solWalletConnector.js +170 -0
- package/src/types.d.ts +68 -0
- package/src/utils/extractNonce.cjs +14 -0
- package/src/utils/extractNonce.d.ts +1 -0
- package/src/utils/extractNonce.js +10 -0
- package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.cjs +29 -0
- package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.d.ts +3 -0
- package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.js +25 -0
- package/src/utils/findWalletProviderFromWalletStandard/index.d.ts +1 -0
- package/src/utils/getGenesisHashLSKey.cjs +10 -0
- package/src/utils/getGenesisHashLSKey.d.ts +1 -0
- package/src/utils/getGenesisHashLSKey.js +6 -0
- package/src/utils/isBackpackSolanaSigner.cjs +8 -0
- package/src/utils/isBackpackSolanaSigner.d.ts +2 -0
- package/src/utils/isBackpackSolanaSigner.js +4 -0
- package/src/utils/isSignedMessage.cjs +8 -0
- package/src/utils/isSignedMessage.d.ts +2 -0
- package/src/utils/isSignedMessage.js +4 -0
- package/src/wallet/SolanaWallet.cjs +33 -0
- package/src/wallet/SolanaWallet.d.ts +17 -0
- package/src/wallet/SolanaWallet.js +29 -0
- package/src/wallet/index.d.ts +2 -0
- package/src/wallet/isSolanaWallet.cjs +8 -0
- package/src/wallet/isSolanaWallet.d.ts +3 -0
- package/src/wallet/isSolanaWallet.js +4 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
7
|
+
var web3_js = require('@solana/web3.js');
|
|
8
|
+
var walletBook = require('@dynamic-labs/wallet-book');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
10
|
+
var solanaUtils = require('@dynamic-labs/solana-utils');
|
|
11
|
+
var solProviderHelper = require('../solProviderHelper.cjs');
|
|
12
|
+
var solWalletConnector = require('../solWalletConnector.cjs');
|
|
13
|
+
var SignMessageNotSupportedError = require('../errors/SignMessageNotSupportedError.cjs');
|
|
14
|
+
|
|
15
|
+
class InjectedWalletBase extends solWalletConnector.SolWalletConnector {
|
|
16
|
+
getSolProviderHelper() {
|
|
17
|
+
if (!this.wallet) {
|
|
18
|
+
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
19
|
+
}
|
|
20
|
+
if (this.wallet && !this.solProviderHelper) {
|
|
21
|
+
this.solProviderHelper = new solProviderHelper.SolProviderHelper(this.wallet);
|
|
22
|
+
}
|
|
23
|
+
return this.solProviderHelper;
|
|
24
|
+
}
|
|
25
|
+
getProvider() {
|
|
26
|
+
var _a;
|
|
27
|
+
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
|
|
28
|
+
}
|
|
29
|
+
setupEventListeners() {
|
|
30
|
+
var _a;
|
|
31
|
+
(_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._setupEventListeners(this);
|
|
32
|
+
}
|
|
33
|
+
teardownEventListeners() {
|
|
34
|
+
var _a;
|
|
35
|
+
(_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
|
|
36
|
+
}
|
|
37
|
+
connect() {
|
|
38
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
var _a;
|
|
40
|
+
yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getSigner() {
|
|
44
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
createUiTransaction(from) {
|
|
50
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
return new solanaUtils.SolanaUiTransaction({
|
|
52
|
+
connection: this.getWalletClient(),
|
|
53
|
+
from,
|
|
54
|
+
onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
var _a;
|
|
56
|
+
const signer = yield this.getSigner();
|
|
57
|
+
if (!signer)
|
|
58
|
+
throw new Error('Signer not found');
|
|
59
|
+
const blockhash = yield this.getWalletClient().getLatestBlockhash();
|
|
60
|
+
if ('version' in transaction) {
|
|
61
|
+
transaction.message.recentBlockhash =
|
|
62
|
+
blockhash.blockhash;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const userAddress = yield this.getAddress();
|
|
66
|
+
if (!userAddress)
|
|
67
|
+
throw new Error('User address not found');
|
|
68
|
+
transaction.recentBlockhash = blockhash.blockhash;
|
|
69
|
+
transaction.feePayer =
|
|
70
|
+
(_a = transaction.feePayer) !== null && _a !== void 0 ? _a : new web3_js.PublicKey(userAddress);
|
|
71
|
+
}
|
|
72
|
+
return (yield signer.signAndSendTransaction(transaction)).signature;
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
isInstalledOnBrowser() {
|
|
78
|
+
var _a;
|
|
79
|
+
return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
|
|
80
|
+
}
|
|
81
|
+
getAddress() {
|
|
82
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
var _a, _b;
|
|
84
|
+
if (!this.isInstalledOnBrowser()) {
|
|
85
|
+
if (utils.isMobile() &&
|
|
86
|
+
((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
|
|
87
|
+
this.wallet.mobile.inAppBrowser &&
|
|
88
|
+
this.mobileExperience === 'in-app-browser') {
|
|
89
|
+
const inAppBrowserCompiledTemplate = utils.template(this.wallet.mobile.inAppBrowser);
|
|
90
|
+
const deepLink = inAppBrowserCompiledTemplate({
|
|
91
|
+
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
92
|
+
});
|
|
93
|
+
window.location.assign(deepLink);
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.getAddress();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
signMessage(messageToSign) {
|
|
101
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
var _a, _b;
|
|
103
|
+
const walletAddress = yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getAddress());
|
|
104
|
+
if (walletAddress && this.isLedgerAddress(walletAddress)) {
|
|
105
|
+
throw new SignMessageNotSupportedError.SignMessageNotSupportedError(this.name);
|
|
106
|
+
}
|
|
107
|
+
return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
getConnectedAccounts() {
|
|
111
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
var _a, _b;
|
|
113
|
+
return (_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
exports.InjectedWalletBase = InjectedWalletBase;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
2
|
+
import { IUITransaction } from '@dynamic-labs/types';
|
|
3
|
+
import { ISendBalanceWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { ISolana } from '../types';
|
|
5
|
+
import { SolProviderHelper } from '../solProviderHelper';
|
|
6
|
+
import { SolWalletConnector } from '../solWalletConnector';
|
|
7
|
+
export declare abstract class InjectedWalletBase extends SolWalletConnector implements ISendBalanceWalletConnector {
|
|
8
|
+
solProviderHelper: SolProviderHelper | undefined;
|
|
9
|
+
wallet: WalletSchema | undefined;
|
|
10
|
+
getSolProviderHelper(): SolProviderHelper | undefined;
|
|
11
|
+
getProvider(): ISolana | undefined;
|
|
12
|
+
setupEventListeners(): void;
|
|
13
|
+
teardownEventListeners(): void;
|
|
14
|
+
connect(): Promise<void>;
|
|
15
|
+
getSigner<T = ISolana>(): Promise<T | undefined>;
|
|
16
|
+
createUiTransaction(from: string): Promise<IUITransaction>;
|
|
17
|
+
isInstalledOnBrowser(): boolean;
|
|
18
|
+
getAddress(): Promise<string | undefined>;
|
|
19
|
+
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
20
|
+
getConnectedAccounts(): Promise<string[]>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
|
+
import { PublicKey } from '@solana/web3.js';
|
|
4
|
+
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
5
|
+
import { isMobile, template } from '@dynamic-labs/utils';
|
|
6
|
+
import { SolanaUiTransaction } from '@dynamic-labs/solana-utils';
|
|
7
|
+
import { SolProviderHelper } from '../solProviderHelper.js';
|
|
8
|
+
import { SolWalletConnector } from '../solWalletConnector.js';
|
|
9
|
+
import { SignMessageNotSupportedError } from '../errors/SignMessageNotSupportedError.js';
|
|
10
|
+
|
|
11
|
+
class InjectedWalletBase extends SolWalletConnector {
|
|
12
|
+
getSolProviderHelper() {
|
|
13
|
+
if (!this.wallet) {
|
|
14
|
+
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
15
|
+
}
|
|
16
|
+
if (this.wallet && !this.solProviderHelper) {
|
|
17
|
+
this.solProviderHelper = new SolProviderHelper(this.wallet);
|
|
18
|
+
}
|
|
19
|
+
return this.solProviderHelper;
|
|
20
|
+
}
|
|
21
|
+
getProvider() {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
|
|
24
|
+
}
|
|
25
|
+
setupEventListeners() {
|
|
26
|
+
var _a;
|
|
27
|
+
(_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._setupEventListeners(this);
|
|
28
|
+
}
|
|
29
|
+
teardownEventListeners() {
|
|
30
|
+
var _a;
|
|
31
|
+
(_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
|
|
32
|
+
}
|
|
33
|
+
connect() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
var _a;
|
|
36
|
+
yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect());
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getSigner() {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
var _a;
|
|
42
|
+
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
createUiTransaction(from) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
return new SolanaUiTransaction({
|
|
48
|
+
connection: this.getWalletClient(),
|
|
49
|
+
from,
|
|
50
|
+
onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
var _a;
|
|
52
|
+
const signer = yield this.getSigner();
|
|
53
|
+
if (!signer)
|
|
54
|
+
throw new Error('Signer not found');
|
|
55
|
+
const blockhash = yield this.getWalletClient().getLatestBlockhash();
|
|
56
|
+
if ('version' in transaction) {
|
|
57
|
+
transaction.message.recentBlockhash =
|
|
58
|
+
blockhash.blockhash;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const userAddress = yield this.getAddress();
|
|
62
|
+
if (!userAddress)
|
|
63
|
+
throw new Error('User address not found');
|
|
64
|
+
transaction.recentBlockhash = blockhash.blockhash;
|
|
65
|
+
transaction.feePayer =
|
|
66
|
+
(_a = transaction.feePayer) !== null && _a !== void 0 ? _a : new PublicKey(userAddress);
|
|
67
|
+
}
|
|
68
|
+
return (yield signer.signAndSendTransaction(transaction)).signature;
|
|
69
|
+
}),
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
isInstalledOnBrowser() {
|
|
74
|
+
var _a;
|
|
75
|
+
return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
|
|
76
|
+
}
|
|
77
|
+
getAddress() {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
if (!this.isInstalledOnBrowser()) {
|
|
81
|
+
if (isMobile() &&
|
|
82
|
+
((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
|
|
83
|
+
this.wallet.mobile.inAppBrowser &&
|
|
84
|
+
this.mobileExperience === 'in-app-browser') {
|
|
85
|
+
const inAppBrowserCompiledTemplate = template(this.wallet.mobile.inAppBrowser);
|
|
86
|
+
const deepLink = inAppBrowserCompiledTemplate({
|
|
87
|
+
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
88
|
+
});
|
|
89
|
+
window.location.assign(deepLink);
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.getAddress();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
signMessage(messageToSign) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
const walletAddress = yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getAddress());
|
|
100
|
+
if (walletAddress && this.isLedgerAddress(walletAddress)) {
|
|
101
|
+
throw new SignMessageNotSupportedError(this.name);
|
|
102
|
+
}
|
|
103
|
+
return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
getConnectedAccounts() {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
var _a, _b;
|
|
109
|
+
return (_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export { InjectedWalletBase };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
7
|
+
var utils = require('@dynamic-labs/utils');
|
|
8
|
+
var walletBook = require('@dynamic-labs/wallet-book');
|
|
9
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
10
|
+
|
|
11
|
+
class PhantomInjected extends InjectedWalletBase.InjectedWalletBase {
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
super(opts);
|
|
14
|
+
this.name = 'Phantom';
|
|
15
|
+
this.overrideKey = 'phantom';
|
|
16
|
+
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
17
|
+
}
|
|
18
|
+
getAddress() {
|
|
19
|
+
const _super = Object.create(null, {
|
|
20
|
+
getAddress: { get: () => super.getAddress }
|
|
21
|
+
});
|
|
22
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
if (this.isInstalledOnBrowser()) {
|
|
24
|
+
return _super.getAddress.call(this);
|
|
25
|
+
}
|
|
26
|
+
if (utils.isMobile()) {
|
|
27
|
+
utils.handleMobileWalletRedirect({
|
|
28
|
+
nativeLink: 'phantom://browse',
|
|
29
|
+
universalLink: 'https://phantom.app/ul/browse',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.PhantomInjected = PhantomInjected;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SolWalletConnectorOpts } from '../solWalletConnector';
|
|
2
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
|
+
export declare class PhantomInjected extends InjectedWalletBase {
|
|
4
|
+
name: string;
|
|
5
|
+
overrideKey: string;
|
|
6
|
+
constructor(opts: SolWalletConnectorOpts);
|
|
7
|
+
getAddress(): Promise<string | undefined>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
|
+
import { isMobile, handleMobileWalletRedirect } from '@dynamic-labs/utils';
|
|
4
|
+
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
5
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
6
|
+
|
|
7
|
+
class PhantomInjected extends InjectedWalletBase {
|
|
8
|
+
constructor(opts) {
|
|
9
|
+
super(opts);
|
|
10
|
+
this.name = 'Phantom';
|
|
11
|
+
this.overrideKey = 'phantom';
|
|
12
|
+
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
13
|
+
}
|
|
14
|
+
getAddress() {
|
|
15
|
+
const _super = Object.create(null, {
|
|
16
|
+
getAddress: { get: () => super.getAddress }
|
|
17
|
+
});
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
if (this.isInstalledOnBrowser()) {
|
|
20
|
+
return _super.getAddress.call(this);
|
|
21
|
+
}
|
|
22
|
+
if (isMobile()) {
|
|
23
|
+
handleMobileWalletRedirect({
|
|
24
|
+
nativeLink: 'phantom://browse',
|
|
25
|
+
universalLink: 'https://phantom.app/ul/browse',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { PhantomInjected };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var walletBook = require('@dynamic-labs/wallet-book');
|
|
7
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
8
|
+
|
|
9
|
+
class UnknownInjected extends InjectedWalletBase.InjectedWalletBase {
|
|
10
|
+
constructor(opts) {
|
|
11
|
+
super(opts);
|
|
12
|
+
this.name = 'Unknown';
|
|
13
|
+
this.overrideKey = 'unknown';
|
|
14
|
+
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
15
|
+
}
|
|
16
|
+
isInstalledOnBrowser() {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
exports.UnknownInjected = UnknownInjected;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SolWalletConnectorOpts } from '../solWalletConnector';
|
|
2
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
|
+
export declare class UnknownInjected extends InjectedWalletBase {
|
|
4
|
+
name: string;
|
|
5
|
+
overrideKey: string;
|
|
6
|
+
constructor(opts: SolWalletConnectorOpts);
|
|
7
|
+
isInstalledOnBrowser(): boolean;
|
|
8
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
3
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
4
|
+
|
|
5
|
+
class UnknownInjected extends InjectedWalletBase {
|
|
6
|
+
constructor(opts) {
|
|
7
|
+
super(opts);
|
|
8
|
+
this.name = 'Unknown';
|
|
9
|
+
this.overrideKey = 'unknown';
|
|
10
|
+
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
11
|
+
}
|
|
12
|
+
isInstalledOnBrowser() {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { UnknownInjected };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var CoinbaseSolana = require('../CoinbaseSolana.cjs');
|
|
7
|
+
var Solflare = require('../Solflare.cjs');
|
|
8
|
+
var SolanaWalletStandardConnector = require('../SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs');
|
|
9
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
10
|
+
var BackpackSol = require('./BackpackSol.cjs');
|
|
11
|
+
|
|
12
|
+
const injectedWalletOverrides = [
|
|
13
|
+
CoinbaseSolana.CoinbaseSolana,
|
|
14
|
+
BackpackSol.BackpackSol,
|
|
15
|
+
Solflare.Solflare,
|
|
16
|
+
];
|
|
17
|
+
const filteredInjectedWalletKeysOverrides = [
|
|
18
|
+
'coinbasesolana',
|
|
19
|
+
'phantom',
|
|
20
|
+
'phantomledger',
|
|
21
|
+
'backpacksol',
|
|
22
|
+
'solflare',
|
|
23
|
+
];
|
|
24
|
+
const fetchInjectedWalletConnectors = ({ walletBook, }) => {
|
|
25
|
+
var _a;
|
|
26
|
+
return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
|
|
27
|
+
.filter(([key, wallet]) => {
|
|
28
|
+
var _a;
|
|
29
|
+
const isSolanaWallet = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'sol'));
|
|
30
|
+
const shouldBeFiltered = filteredInjectedWalletKeysOverrides.includes(key);
|
|
31
|
+
return isSolanaWallet && !shouldBeFiltered;
|
|
32
|
+
})
|
|
33
|
+
.map(([key, wallet]) => {
|
|
34
|
+
var _a;
|
|
35
|
+
const { shortName } = wallet;
|
|
36
|
+
const name = shortName || wallet.name;
|
|
37
|
+
const hasWalletStandard = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.walletStandard));
|
|
38
|
+
if (hasWalletStandard) {
|
|
39
|
+
const isWalletStandardPresent = Boolean(SolanaWalletStandardConnector.SolanaWalletStandardConnector.getWallet(walletBook, key));
|
|
40
|
+
if (isWalletStandardPresent) {
|
|
41
|
+
return class extends SolanaWalletStandardConnector.SolanaWalletStandardConnector {
|
|
42
|
+
constructor(props) {
|
|
43
|
+
super(Object.assign({}, props));
|
|
44
|
+
this.name = name;
|
|
45
|
+
this.overrideKey = key;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return class extends InjectedWalletBase.InjectedWalletBase {
|
|
51
|
+
constructor(props) {
|
|
52
|
+
super(Object.assign({}, props));
|
|
53
|
+
this.name = name;
|
|
54
|
+
this.wallet = wallet;
|
|
55
|
+
// this is the key from the wallet book entry so that we don't purely rely on the normalized name
|
|
56
|
+
this.overrideKey = key;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.fetchInjectedWalletConnectors = fetchInjectedWalletConnectors;
|
|
63
|
+
exports.injectedWalletOverrides = injectedWalletOverrides;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
2
|
+
import { WalletConnectorConstructor } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
+
export declare const injectedWalletOverrides: WalletConnectorConstructor[];
|
|
4
|
+
export declare const fetchInjectedWalletConnectors: ({ walletBook, }: {
|
|
5
|
+
walletBook: WalletBookSchema;
|
|
6
|
+
}) => WalletConnectorConstructor[];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { CoinbaseSolana } from '../CoinbaseSolana.js';
|
|
3
|
+
import { Solflare } from '../Solflare.js';
|
|
4
|
+
import { SolanaWalletStandardConnector } from '../SolanaWalletStandardConnector/SolanaWalletStandardConnector.js';
|
|
5
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
6
|
+
import { BackpackSol } from './BackpackSol.js';
|
|
7
|
+
|
|
8
|
+
const injectedWalletOverrides = [
|
|
9
|
+
CoinbaseSolana,
|
|
10
|
+
BackpackSol,
|
|
11
|
+
Solflare,
|
|
12
|
+
];
|
|
13
|
+
const filteredInjectedWalletKeysOverrides = [
|
|
14
|
+
'coinbasesolana',
|
|
15
|
+
'phantom',
|
|
16
|
+
'phantomledger',
|
|
17
|
+
'backpacksol',
|
|
18
|
+
'solflare',
|
|
19
|
+
];
|
|
20
|
+
const fetchInjectedWalletConnectors = ({ walletBook, }) => {
|
|
21
|
+
var _a;
|
|
22
|
+
return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
|
|
23
|
+
.filter(([key, wallet]) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const isSolanaWallet = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'sol'));
|
|
26
|
+
const shouldBeFiltered = filteredInjectedWalletKeysOverrides.includes(key);
|
|
27
|
+
return isSolanaWallet && !shouldBeFiltered;
|
|
28
|
+
})
|
|
29
|
+
.map(([key, wallet]) => {
|
|
30
|
+
var _a;
|
|
31
|
+
const { shortName } = wallet;
|
|
32
|
+
const name = shortName || wallet.name;
|
|
33
|
+
const hasWalletStandard = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.walletStandard));
|
|
34
|
+
if (hasWalletStandard) {
|
|
35
|
+
const isWalletStandardPresent = Boolean(SolanaWalletStandardConnector.getWallet(walletBook, key));
|
|
36
|
+
if (isWalletStandardPresent) {
|
|
37
|
+
return class extends SolanaWalletStandardConnector {
|
|
38
|
+
constructor(props) {
|
|
39
|
+
super(Object.assign({}, props));
|
|
40
|
+
this.name = name;
|
|
41
|
+
this.overrideKey = key;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return class extends InjectedWalletBase {
|
|
47
|
+
constructor(props) {
|
|
48
|
+
super(Object.assign({}, props));
|
|
49
|
+
this.name = name;
|
|
50
|
+
this.wallet = wallet;
|
|
51
|
+
// this is the key from the wallet book entry so that we don't purely rely on the normalized name
|
|
52
|
+
this.overrideKey = key;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export { fetchInjectedWalletConnectors, injectedWalletOverrides };
|