@dynamic-labs/solana 2.2.0-alpha.5 → 2.2.1
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 +49 -16
- package/package.json +8 -8
- package/src/contants.cjs +8 -0
- package/src/contants.d.ts +1 -0
- package/src/contants.js +4 -0
- package/src/index.cjs +2 -0
- package/src/index.js +2 -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/index.d.ts +1 -0
- package/src/solWalletConnector.cjs +11 -6
- package/src/solWalletConnector.d.ts +1 -3
- package/src/solWalletConnector.js +11 -6
- package/src/utils/getGenesisHashLSKey.cjs +10 -0
- package/src/utils/getGenesisHashLSKey.d.ts +1 -0
- package/src/utils/getGenesisHashLSKey.js +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,53 +1,86 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
2
|
+
### [2.2.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.0...v2.2.1) (2024-06-17)
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
### Bug Fixes
|
|
6
6
|
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* retrieve connected account from cache when MagicEden wallet is secondary and locked ([#5885](https://github.com/dynamic-labs/DynamicAuth/issues/5885)) ([fb35a65](https://github.com/dynamic-labs/DynamicAuth/commit/fb35a651dc18dbdc2bfaad87b7528bfae977f7e3))
|
|
7
|
+
* improve handling of bitcoin connected accounts ([#6049](https://github.com/dynamic-labs/DynamicAuth/issues/6049)) ([08cb8ba](https://github.com/dynamic-labs/DynamicAuth/commit/08cb8bae2b1521367234cbe2bb55a8c3766df3c1))
|
|
8
|
+
* improve wagmi hooks with embedded wallets ([#6044](https://github.com/dynamic-labs/DynamicAuth/issues/6044)) ([#6052](https://github.com/dynamic-labs/DynamicAuth/issues/6052)) ([28654e8](https://github.com/dynamic-labs/DynamicAuth/commit/28654e8a45b25c4fc3bb3abfa89b453808a55053))
|
|
10
9
|
|
|
11
|
-
## [2.2.0
|
|
10
|
+
## [2.2.0](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.5...v2.2.0) (2024-06-16)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add useSwitchNetwork ([#6027](https://github.com/dynamic-labs/DynamicAuth/issues/6027)) ([671310a](https://github.com/dynamic-labs/DynamicAuth/commit/671310a98aaeca12e02443c824d5d7cad2cdc769))
|
|
16
|
+
* add walletAdded to useDynamicEvents ([#6026](https://github.com/dynamic-labs/DynamicAuth/issues/6026)) ([8b784b7](https://github.com/dynamic-labs/DynamicAuth/commit/8b784b702e242ca279aafae657a076a51d397627))
|
|
17
|
+
* expose selectedTabState and deprecate setDefaultSelectedTab ([#6028](https://github.com/dynamic-labs/DynamicAuth/issues/6028)) ([eb71787](https://github.com/dynamic-labs/DynamicAuth/commit/eb717877cb6604504d10802a3aecc6055f95caa0))
|
|
18
|
+
|
|
19
|
+
### [2.1.5](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.4...v2.1.5) (2024-06-16)
|
|
20
|
+
|
|
21
|
+
* Improve handling of unknown wallets, css fixes and copy updates in multi wallet experience
|
|
22
|
+
|
|
23
|
+
### [2.1.4](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.3...v2.1.4) (2024-06-14)
|
|
12
24
|
|
|
13
25
|
|
|
14
26
|
### Bug Fixes
|
|
15
27
|
|
|
16
|
-
*
|
|
17
|
-
*
|
|
28
|
+
* close sign modal when signing in with a wallet when embedded wallet is enabled ([#6012](https://github.com/dynamic-labs/DynamicAuth/issues/6012)) ([d473cc8](https://github.com/dynamic-labs/DynamicAuth/commit/d473cc83ac378b7bc43e2546020c02a297d4595b))
|
|
29
|
+
* display custom network name in network picker even if it doesn't have a valid icon ([#6020](https://github.com/dynamic-labs/DynamicAuth/issues/6020)) ([5e1539e](https://github.com/dynamic-labs/DynamicAuth/commit/5e1539e1e6920fb1fdbf96c938f40e785b3ee680))
|
|
18
30
|
|
|
19
|
-
|
|
31
|
+
### [2.1.3](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.2...v2.1.3) (2024-06-14)
|
|
20
32
|
|
|
21
33
|
|
|
22
34
|
### Features
|
|
23
35
|
|
|
24
|
-
*
|
|
36
|
+
* add in-app browser navigation support for sats-connect ([#5990](https://github.com/dynamic-labs/DynamicAuth/issues/5990)) ([7ea15b9](https://github.com/dynamic-labs/DynamicAuth/commit/7ea15b93d1864164acb82c1e73aae7f9130e1d44))
|
|
25
37
|
|
|
26
38
|
|
|
27
39
|
### Bug Fixes
|
|
28
40
|
|
|
29
|
-
*
|
|
41
|
+
* cache getGenesisHash call to prevent over calling ([#5966](https://github.com/dynamic-labs/DynamicAuth/issues/5966)) ([#5970](https://github.com/dynamic-labs/DynamicAuth/issues/5970)) ([b624b2e](https://github.com/dynamic-labs/DynamicAuth/commit/b624b2ea5b398bf464d3098e7d81d83c7b5bf659))
|
|
42
|
+
* improvements to embedded solana wallet ([#6001](https://github.com/dynamic-labs/DynamicAuth/issues/6001)) ([a6437c9](https://github.com/dynamic-labs/DynamicAuth/commit/a6437c93e1946bca609d3d99d282123275022376)) ([#5815](https://github.com/dynamic-labs/DynamicAuth/issues/5815)) ([#5978](https://github.com/dynamic-labs/DynamicAuth/issues/5978)) ([dd92973](https://github.com/dynamic-labs/DynamicAuth/commit/dd9297365f0ccbee1217325328e173ae7ee9a922))
|
|
43
|
+
* show linked wallets with unavailable providers in user wallets list ([#6005](https://github.com/dynamic-labs/DynamicAuth/issues/6005)) ([79796d1](https://github.com/dynamic-labs/DynamicAuth/commit/79796d1b73670265ca9897314252b620afaa2e8a))
|
|
44
|
+
* close switch network modal after switching to a supported network ([#5987](https://github.com/dynamic-labs/DynamicAuth/issues/5987)) ([a7e762e](https://github.com/dynamic-labs/DynamicAuth/commit/a7e762ef63a72492d0c083a344111589a6fbc455))
|
|
30
45
|
|
|
31
|
-
|
|
46
|
+
### [2.1.2](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.2-alpha.1...v2.1.2) (2024-06-10)
|
|
32
47
|
|
|
33
48
|
|
|
34
49
|
### Features
|
|
35
50
|
|
|
36
|
-
*
|
|
51
|
+
* hide wallets from wallet list that can't have multiple accounts linked ([#5935](https://github.com/dynamic-labs/DynamicAuth/issues/5935)) ([20f9b15](https://github.com/dynamic-labs/DynamicAuth/commit/20f9b15b145cbc57519155691b3640149eec3689))
|
|
37
52
|
|
|
38
53
|
|
|
39
54
|
### Bug Fixes
|
|
40
55
|
|
|
41
|
-
*
|
|
56
|
+
* ensure sign message will not show 2 times ([#5938](https://github.com/dynamic-labs/DynamicAuth/issues/5938)) ([#5941](https://github.com/dynamic-labs/DynamicAuth/issues/5941)) ([2c5a156](https://github.com/dynamic-labs/DynamicAuth/commit/2c5a156ead565bd25067b3bc2b23cbc704f9b314))
|
|
57
|
+
* improve logic related to embedded wallets and emailVerifcation ([#5947](https://github.com/dynamic-labs/DynamicAuth/issues/5947)) ([b885a14](https://github.com/dynamic-labs/DynamicAuth/commit/b885a14dcf200f05233e4ab42b8b518d877d291a))
|
|
58
|
+
* init coinbase provider adhoc ([#5907](https://github.com/dynamic-labs/DynamicAuth/issues/5907)) ([#5933](https://github.com/dynamic-labs/DynamicAuth/issues/5933)) ([2fa1f52](https://github.com/dynamic-labs/DynamicAuth/commit/2fa1f528b27113ee108252ee874ee7f5ead88329))
|
|
59
|
+
* remove force consent and account selection even for returning google users ([#5912](https://github.com/dynamic-labs/DynamicAuth/issues/5912)) ([26a07f2](https://github.com/dynamic-labs/DynamicAuth/commit/26a07f29bdb8bf32a080396906a21d8b084c202f))
|
|
60
|
+
* resolve the default phone country based on enabled countries ([#5](https://github.com/dynamic-labs/DynamicAuth/issues/5)… ([#5916](https://github.com/dynamic-labs/DynamicAuth/issues/5916)) ([8f27c00](https://github.com/dynamic-labs/DynamicAuth/commit/8f27c0082edb77b964b8402cfa75c6a896b061d3)), closes [#5910](https://github.com/dynamic-labs/DynamicAuth/issues/5910)
|
|
61
|
+
* versioned tx needs address lookup table ([#5909](https://github.com/dynamic-labs/DynamicAuth/issues/5909)) ([#5919](https://github.com/dynamic-labs/DynamicAuth/issues/5919)) ([22e3ca2](https://github.com/dynamic-labs/DynamicAuth/commit/22e3ca2d0b27d15efb50e3092a7bc3a0c0d255a5))
|
|
62
|
+
|
|
63
|
+
### [2.1.2-alpha.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.2-alpha.0...v2.1.2-alpha.1) (2024-06-07)
|
|
42
64
|
|
|
43
|
-
## [2.2.0-alpha.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.2.0-alpha.0...v2.2.0-alpha.1) (2024-06-04)
|
|
44
65
|
|
|
45
|
-
|
|
66
|
+
### Bug Fixes
|
|
67
|
+
|
|
68
|
+
* find phantom solana provider when opening dapp on new tab ([#5902](https://github.com/dynamic-labs/DynamicAuth/issues/5902)) ([99daf87](https://github.com/dynamic-labs/DynamicAuth/commit/99daf87f17caed870a76e4f89a257a14da37c7ab)), closes [#5895](https://github.com/dynamic-labs/DynamicAuth/issues/5895) [#5896](https://github.com/dynamic-labs/DynamicAuth/issues/5896) [#5897](https://github.com/dynamic-labs/DynamicAuth/issues/5897)
|
|
69
|
+
|
|
70
|
+
### [2.1.2-alpha.0](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.1...v2.1.2-alpha.0) (2024-06-07)
|
|
46
71
|
|
|
47
72
|
|
|
48
73
|
### Features
|
|
49
74
|
|
|
50
|
-
*
|
|
75
|
+
* display enabled countries in phone number field ([#5825](https://github.com/dynamic-labs/DynamicAuth/issues/5825)) ([#5868](https://github.com/dynamic-labs/DynamicAuth/issues/5868)) ([640a4a7](https://github.com/dynamic-labs/DynamicAuth/commit/640a4a77c994390ceed759faf186717b38f393a4))
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### Bug Fixes
|
|
79
|
+
|
|
80
|
+
* btc getBalance should use ordinal address if payment not available ([#5883](https://github.com/dynamic-labs/DynamicAuth/issues/5883)) ([bc5ac55](https://github.com/dynamic-labs/DynamicAuth/commit/bc5ac5589e90193d41282d23ce037db360dd23e6))
|
|
81
|
+
* phone number in kyc step ([#5875](https://github.com/dynamic-labs/DynamicAuth/issues/5875)) ([#5879](https://github.com/dynamic-labs/DynamicAuth/issues/5879)) ([3d8a5be](https://github.com/dynamic-labs/DynamicAuth/commit/3d8a5bef35d4a13a1068aaf80d2c39e795b097cd))
|
|
82
|
+
|
|
83
|
+
### [2.1.1](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0...v2.1.1) (2024-06-04)
|
|
51
84
|
|
|
52
85
|
## [2.1.0](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.32...v2.1.0) (2024-06-04)
|
|
53
86
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/solana",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"@wallet-standard/experimental-features": "0.1.1",
|
|
35
35
|
"bs58": "5.0.0",
|
|
36
36
|
"tweetnacl": "1.0.3",
|
|
37
|
-
"@dynamic-labs/rpc-provider-solana": "2.2.
|
|
38
|
-
"@dynamic-labs/rpc-providers": "2.2.
|
|
39
|
-
"@dynamic-labs/turnkey": "2.2.
|
|
40
|
-
"@dynamic-labs/types": "2.2.
|
|
41
|
-
"@dynamic-labs/utils": "2.2.
|
|
42
|
-
"@dynamic-labs/wallet-book": "2.2.
|
|
43
|
-
"@dynamic-labs/wallet-connector-core": "2.2.
|
|
37
|
+
"@dynamic-labs/rpc-provider-solana": "2.2.1",
|
|
38
|
+
"@dynamic-labs/rpc-providers": "2.2.1",
|
|
39
|
+
"@dynamic-labs/turnkey": "2.2.1",
|
|
40
|
+
"@dynamic-labs/types": "2.2.1",
|
|
41
|
+
"@dynamic-labs/utils": "2.2.1",
|
|
42
|
+
"@dynamic-labs/wallet-book": "2.2.1",
|
|
43
|
+
"@dynamic-labs/wallet-connector-core": "2.2.1",
|
|
44
44
|
"eventemitter3": "5.0.1"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {}
|
package/src/contants.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SOLANA_GENESIS_HASH = "genesis-hash";
|
package/src/contants.js
ADDED
package/src/index.cjs
CHANGED
|
@@ -7,6 +7,7 @@ var turnkey = require('@dynamic-labs/turnkey');
|
|
|
7
7
|
var Phantom = require('./Phantom.cjs');
|
|
8
8
|
var fetchInjectedWalletConnectors = require('./injected/fetchInjectedWalletConnectors.cjs');
|
|
9
9
|
var UnknownInjected = require('./injected/UnknownInjected.cjs');
|
|
10
|
+
var FallbackSolanaConnector = require('./injected/FallbackSolanaConnector.cjs');
|
|
10
11
|
var isSignedMessage = require('./utils/isSignedMessage.cjs');
|
|
11
12
|
var isBackpackSolanaSigner = require('./utils/isBackpackSolanaSigner.cjs');
|
|
12
13
|
|
|
@@ -17,6 +18,7 @@ const SolanaWalletConnectors = (props) => [
|
|
|
17
18
|
...turnkey.TurnkeySolanaWalletConnectors(props),
|
|
18
19
|
Phantom.Phantom,
|
|
19
20
|
UnknownInjected.UnknownInjected,
|
|
21
|
+
FallbackSolanaConnector.FallbackSolanaConnector,
|
|
20
22
|
];
|
|
21
23
|
|
|
22
24
|
exports.isSignedMessage = isSignedMessage.isSignedMessage;
|
package/src/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { TurnkeySolanaWalletConnectors } from '@dynamic-labs/turnkey';
|
|
|
3
3
|
import { Phantom } from './Phantom.js';
|
|
4
4
|
import { injectedWalletOverrides, fetchInjectedWalletConnectors } from './injected/fetchInjectedWalletConnectors.js';
|
|
5
5
|
import { UnknownInjected } from './injected/UnknownInjected.js';
|
|
6
|
+
import { FallbackSolanaConnector } from './injected/FallbackSolanaConnector.js';
|
|
6
7
|
export { isSignedMessage } from './utils/isSignedMessage.js';
|
|
7
8
|
export { isBackpackSolanaSigner } from './utils/isBackpackSolanaSigner.js';
|
|
8
9
|
|
|
@@ -13,6 +14,7 @@ const SolanaWalletConnectors = (props) => [
|
|
|
13
14
|
...TurnkeySolanaWalletConnectors(props),
|
|
14
15
|
Phantom,
|
|
15
16
|
UnknownInjected,
|
|
17
|
+
FallbackSolanaConnector,
|
|
16
18
|
];
|
|
17
19
|
|
|
18
20
|
export { SolanaWalletConnectors };
|
|
@@ -0,0 +1,22 @@
|
|
|
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 FallbackSolanaConnector extends InjectedWalletBase.InjectedWalletBase {
|
|
10
|
+
constructor(opts) {
|
|
11
|
+
super(opts);
|
|
12
|
+
this.name = 'Fallback Connector';
|
|
13
|
+
this.overrideKey = 'fallbackconnector';
|
|
14
|
+
this.isAvailable = false;
|
|
15
|
+
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
16
|
+
}
|
|
17
|
+
isInstalledOnBrowser() {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.FallbackSolanaConnector = FallbackSolanaConnector;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SolWalletConnectorOpts } from '../solWalletConnector';
|
|
2
|
+
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
|
+
export declare class FallbackSolanaConnector extends InjectedWalletBase {
|
|
4
|
+
name: string;
|
|
5
|
+
overrideKey: string;
|
|
6
|
+
isAvailable: boolean;
|
|
7
|
+
constructor(opts: SolWalletConnectorOpts);
|
|
8
|
+
isInstalledOnBrowser(): boolean;
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
3
|
+
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
4
|
+
|
|
5
|
+
class FallbackSolanaConnector extends InjectedWalletBase {
|
|
6
|
+
constructor(opts) {
|
|
7
|
+
super(opts);
|
|
8
|
+
this.name = 'Fallback Connector';
|
|
9
|
+
this.overrideKey = 'fallbackconnector';
|
|
10
|
+
this.isAvailable = false;
|
|
11
|
+
this.wallet = findWalletBookWallet(this.walletBook, this.key);
|
|
12
|
+
}
|
|
13
|
+
isInstalledOnBrowser() {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { FallbackSolanaConnector };
|
package/src/injected/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
|
9
9
|
var utils = require('@dynamic-labs/utils');
|
|
10
10
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
11
11
|
var extractNonce = require('./utils/extractNonce.cjs');
|
|
12
|
+
var getGenesisHashLSKey = require('./utils/getGenesisHashLSKey.cjs');
|
|
12
13
|
|
|
13
14
|
const MEMO_PROGRAM_ID = new web3_js.PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
|
|
14
15
|
class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
@@ -16,7 +17,6 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
16
17
|
var _a;
|
|
17
18
|
super(opts);
|
|
18
19
|
this.isHardwareWalletEnabled = false;
|
|
19
|
-
this._network = undefined;
|
|
20
20
|
this.verifiedCredentials = [];
|
|
21
21
|
this.supportedChains = ['SOL'];
|
|
22
22
|
this.connectedChain = 'SOL';
|
|
@@ -26,11 +26,12 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
26
26
|
}
|
|
27
27
|
getNetwork() {
|
|
28
28
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
if (this._network) {
|
|
30
|
-
return this._network;
|
|
31
|
-
}
|
|
32
29
|
const provider = this.getWalletClient();
|
|
33
|
-
let genesisHash =
|
|
30
|
+
let genesisHash = localStorage.getItem(getGenesisHashLSKey.getGenesisHashLSKey(provider.rpcEndpoint));
|
|
31
|
+
if (!genesisHash) {
|
|
32
|
+
genesisHash = yield provider.getGenesisHash();
|
|
33
|
+
localStorage.setItem(getGenesisHashLSKey.getGenesisHashLSKey(provider.rpcEndpoint), genesisHash);
|
|
34
|
+
}
|
|
34
35
|
genesisHash = genesisHash.substring(0, 32);
|
|
35
36
|
// see: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md
|
|
36
37
|
let network;
|
|
@@ -43,10 +44,14 @@ class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
43
44
|
else {
|
|
44
45
|
network = 'testnet';
|
|
45
46
|
}
|
|
46
|
-
this._network = network;
|
|
47
47
|
return network;
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
+
endSession() {
|
|
51
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
localStorage.removeItem(getGenesisHashLSKey.getGenesisHashLSKey(this.getWalletClient().rpcEndpoint));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
50
55
|
getWalletClient() {
|
|
51
56
|
var _a;
|
|
52
57
|
const [network] = this.solNetworks;
|
|
@@ -10,16 +10,15 @@ export type SolWalletConnectorOpts = {
|
|
|
10
10
|
solNetworks: GenericNetwork[];
|
|
11
11
|
walletBook: WalletBookSchema;
|
|
12
12
|
};
|
|
13
|
-
type SolanaNetwork = 'mainnet' | 'devnet' | 'testnet';
|
|
14
13
|
export declare abstract class SolWalletConnector extends WalletConnectorBase implements IHardwareWalletConnector {
|
|
15
14
|
isHardwareWalletEnabled: boolean;
|
|
16
|
-
_network: SolanaNetwork | undefined;
|
|
17
15
|
verifiedCredentials: JwtVerifiedCredential[];
|
|
18
16
|
solNetworks: GenericNetwork[];
|
|
19
17
|
supportedChains: Chain[];
|
|
20
18
|
connectedChain: Chain;
|
|
21
19
|
constructor(opts: SolWalletConnectorOpts);
|
|
22
20
|
getNetwork(): Promise<string>;
|
|
21
|
+
endSession(): Promise<void>;
|
|
23
22
|
getWalletClient(): Connection;
|
|
24
23
|
getPublicClient(): Promise<Connection | undefined>;
|
|
25
24
|
abstract getSigner(): Promise<ISolana | undefined>;
|
|
@@ -34,4 +33,3 @@ export declare abstract class SolWalletConnector extends WalletConnectorBase imp
|
|
|
34
33
|
setVerifiedCredentials(verifiedCredentials: JwtVerifiedCredential[]): void;
|
|
35
34
|
isLedgerAddress(address: string): boolean;
|
|
36
35
|
}
|
|
37
|
-
export {};
|
|
@@ -5,6 +5,7 @@ import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
|
5
5
|
import { DynamicError, NotSupportedError, isLedgerAddressViaVerifiedCredentials } from '@dynamic-labs/utils';
|
|
6
6
|
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
7
7
|
import { extractNonce } from './utils/extractNonce.js';
|
|
8
|
+
import { getGenesisHashLSKey } from './utils/getGenesisHashLSKey.js';
|
|
8
9
|
|
|
9
10
|
const MEMO_PROGRAM_ID = new PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
|
|
10
11
|
class SolWalletConnector extends WalletConnectorBase {
|
|
@@ -12,7 +13,6 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
12
13
|
var _a;
|
|
13
14
|
super(opts);
|
|
14
15
|
this.isHardwareWalletEnabled = false;
|
|
15
|
-
this._network = undefined;
|
|
16
16
|
this.verifiedCredentials = [];
|
|
17
17
|
this.supportedChains = ['SOL'];
|
|
18
18
|
this.connectedChain = 'SOL';
|
|
@@ -22,11 +22,12 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
22
22
|
}
|
|
23
23
|
getNetwork() {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
if (this._network) {
|
|
26
|
-
return this._network;
|
|
27
|
-
}
|
|
28
25
|
const provider = this.getWalletClient();
|
|
29
|
-
let genesisHash =
|
|
26
|
+
let genesisHash = localStorage.getItem(getGenesisHashLSKey(provider.rpcEndpoint));
|
|
27
|
+
if (!genesisHash) {
|
|
28
|
+
genesisHash = yield provider.getGenesisHash();
|
|
29
|
+
localStorage.setItem(getGenesisHashLSKey(provider.rpcEndpoint), genesisHash);
|
|
30
|
+
}
|
|
30
31
|
genesisHash = genesisHash.substring(0, 32);
|
|
31
32
|
// see: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md
|
|
32
33
|
let network;
|
|
@@ -39,10 +40,14 @@ class SolWalletConnector extends WalletConnectorBase {
|
|
|
39
40
|
else {
|
|
40
41
|
network = 'testnet';
|
|
41
42
|
}
|
|
42
|
-
this._network = network;
|
|
43
43
|
return network;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
+
endSession() {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
localStorage.removeItem(getGenesisHashLSKey(this.getWalletClient().rpcEndpoint));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
46
51
|
getWalletClient() {
|
|
47
52
|
var _a;
|
|
48
53
|
const [network] = this.solNetworks;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var contants = require('../contants.cjs');
|
|
7
|
+
|
|
8
|
+
const getGenesisHashLSKey = (rpcEndpoint) => `${rpcEndpoint}_${contants.SOLANA_GENESIS_HASH}`;
|
|
9
|
+
|
|
10
|
+
exports.getGenesisHashLSKey = getGenesisHashLSKey;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getGenesisHashLSKey: (rpcEndpoint: string) => string;
|