@dynamic-labs/solana 3.0.0-alpha.9 → 3.0.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 +620 -0
- package/package.json +9 -10
- package/src/CoinbaseSolana.cjs +1 -1
- package/src/CoinbaseSolana.d.ts +1 -1
- package/src/CoinbaseSolana.js +1 -1
- package/src/Phantom.cjs +3 -3
- package/src/Phantom.d.ts +1 -2
- package/src/Phantom.js +2 -2
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs +2 -2
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.d.ts +1 -2
- package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.js +1 -1
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs +1 -1
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +1 -2
- package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js +1 -1
- package/src/Solflare.cjs +0 -12
- package/src/Solflare.d.ts +1 -2
- package/src/Solflare.js +0 -12
- package/src/index.cjs +5 -0
- package/src/index.d.ts +2 -1
- package/src/index.js +1 -0
- package/src/injected/BackpackSol.d.ts +1 -1
- package/src/injected/FallbackSolanaConnector.d.ts +1 -1
- package/src/injected/InjectedWalletBase.cjs +36 -3
- package/src/injected/InjectedWalletBase.d.ts +5 -3
- package/src/injected/InjectedWalletBase.js +35 -2
- package/src/injected/PhantomInjected.cjs +4 -0
- package/src/injected/PhantomInjected.d.ts +2 -1
- package/src/injected/PhantomInjected.js +4 -0
- package/src/injected/UnknownInjected.d.ts +1 -1
- package/src/injected/fetchInjectedWalletConnectors.cjs +0 -3
- package/src/injected/fetchInjectedWalletConnectors.js +0 -3
- package/src/phantomRedirect/PhantomRedirect.cjs +3 -3
- package/src/phantomRedirect/PhantomRedirect.d.ts +1 -2
- package/src/phantomRedirect/PhantomRedirect.js +2 -2
- package/src/solProviderHelper.d.ts +3 -2
- package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.d.ts +1 -1
- package/src/utils/isBackpackSolanaSigner.d.ts +1 -1
- package/src/utils/isSignedMessage.d.ts +1 -1
- package/src/MagicEdenSolana.cjs +0 -31
- package/src/MagicEdenSolana.d.ts +0 -8
- package/src/MagicEdenSolana.js +0 -27
- package/src/contants.cjs +0 -8
- package/src/contants.d.ts +0 -1
- package/src/contants.js +0 -4
- package/src/solWalletConnector.cjs +0 -175
- package/src/solWalletConnector.d.ts +0 -35
- package/src/solWalletConnector.js +0 -171
- package/src/types.d.ts +0 -68
- package/src/utils/extractNonce.cjs +0 -14
- package/src/utils/extractNonce.d.ts +0 -1
- package/src/utils/extractNonce.js +0 -10
- package/src/utils/getGenesisHashLSKey.cjs +0 -10
- package/src/utils/getGenesisHashLSKey.d.ts +0 -1
- package/src/utils/getGenesisHashLSKey.js +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/solana",
|
|
3
|
-
"version": "3.0.0
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -27,21 +27,20 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@solana/web3.js": "1.92.1",
|
|
30
|
-
"@dynamic-labs/sdk-api-core": "0.0.470",
|
|
31
30
|
"@wallet-standard/app": "1.0.1",
|
|
32
31
|
"@wallet-standard/base": "1.0.1",
|
|
33
32
|
"@wallet-standard/features": "1.0.3",
|
|
34
33
|
"@wallet-standard/experimental-features": "0.1.1",
|
|
35
34
|
"bs58": "5.0.0",
|
|
36
35
|
"tweetnacl": "1.0.3",
|
|
37
|
-
"@dynamic-labs/embedded-wallet-solana": "3.0.0
|
|
38
|
-
"@dynamic-labs/rpc-
|
|
39
|
-
"@dynamic-labs/
|
|
40
|
-
"@dynamic-labs/
|
|
41
|
-
"@dynamic-labs/
|
|
42
|
-
"@dynamic-labs/
|
|
43
|
-
"@dynamic-labs/wallet-
|
|
44
|
-
"
|
|
36
|
+
"@dynamic-labs/embedded-wallet-solana": "3.0.0",
|
|
37
|
+
"@dynamic-labs/rpc-providers": "3.0.0",
|
|
38
|
+
"@dynamic-labs/sdk-api-core": "0.0.529",
|
|
39
|
+
"@dynamic-labs/solana-core": "3.0.0",
|
|
40
|
+
"@dynamic-labs/types": "3.0.0",
|
|
41
|
+
"@dynamic-labs/utils": "3.0.0",
|
|
42
|
+
"@dynamic-labs/wallet-book": "3.0.0",
|
|
43
|
+
"@dynamic-labs/wallet-connector-core": "3.0.0"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {}
|
|
47
46
|
}
|
package/src/CoinbaseSolana.cjs
CHANGED
|
@@ -7,7 +7,7 @@ var _tslib = require('../_virtual/_tslib.cjs');
|
|
|
7
7
|
var utils = require('@dynamic-labs/utils');
|
|
8
8
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
9
9
|
require('@dynamic-labs/embedded-wallet-solana');
|
|
10
|
-
require('
|
|
10
|
+
require('@dynamic-labs/solana-core');
|
|
11
11
|
require('tweetnacl');
|
|
12
12
|
require('bs58');
|
|
13
13
|
require('@solana/web3.js');
|
package/src/CoinbaseSolana.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SolWalletConnectorOpts } from '
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
2
2
|
import { InjectedWalletBase } from './injected/InjectedWalletBase';
|
|
3
3
|
export declare class CoinbaseSolana extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
package/src/CoinbaseSolana.js
CHANGED
|
@@ -3,7 +3,7 @@ import { __awaiter } from '../_virtual/_tslib.js';
|
|
|
3
3
|
import { bufferToBase64 } from '@dynamic-labs/utils';
|
|
4
4
|
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
5
5
|
import '@dynamic-labs/embedded-wallet-solana';
|
|
6
|
-
import '
|
|
6
|
+
import '@dynamic-labs/solana-core';
|
|
7
7
|
import 'tweetnacl';
|
|
8
8
|
import 'bs58';
|
|
9
9
|
import '@solana/web3.js';
|
package/src/Phantom.cjs
CHANGED
|
@@ -6,11 +6,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var _tslib = require('../_virtual/_tslib.cjs');
|
|
7
7
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
8
8
|
var utils = require('@dynamic-labs/utils');
|
|
9
|
-
var
|
|
9
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
10
10
|
var PhantomRedirect = require('./phantomRedirect/PhantomRedirect.cjs');
|
|
11
11
|
var PhantomInjected = require('./injected/PhantomInjected.cjs');
|
|
12
12
|
|
|
13
|
-
class Phantom extends
|
|
13
|
+
class Phantom extends solanaCore.SolWalletConnector {
|
|
14
14
|
constructor(opts) {
|
|
15
15
|
super(opts);
|
|
16
16
|
this.name = 'Phantom';
|
|
@@ -32,7 +32,7 @@ class Phantom extends solWalletConnector.SolWalletConnector {
|
|
|
32
32
|
if (!utils.isMobile() || phantomInjected.isInstalledOnBrowser()) {
|
|
33
33
|
return phantomInjected;
|
|
34
34
|
}
|
|
35
|
-
if (this.
|
|
35
|
+
if (this.mobileExperience === 'redirect') {
|
|
36
36
|
return new PhantomRedirect.PhantomRedirect(this.constructorProps);
|
|
37
37
|
}
|
|
38
38
|
else {
|
package/src/Phantom.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
2
2
|
import { WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { ISolana } from '
|
|
4
|
-
import { SolWalletConnector, SolWalletConnectorOpts } from './solWalletConnector';
|
|
3
|
+
import { SolWalletConnector, SolWalletConnectorOpts, type ISolana } from '@dynamic-labs/solana-core';
|
|
5
4
|
export declare class Phantom extends SolWalletConnector {
|
|
6
5
|
name: string;
|
|
7
6
|
overrideKey: string;
|
package/src/Phantom.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { __awaiter } from '../_virtual/_tslib.js';
|
|
3
3
|
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
4
4
|
import { isMobile } from '@dynamic-labs/utils';
|
|
5
|
-
import { SolWalletConnector } from '
|
|
5
|
+
import { SolWalletConnector } from '@dynamic-labs/solana-core';
|
|
6
6
|
import { PhantomRedirect } from './phantomRedirect/PhantomRedirect.js';
|
|
7
7
|
import { PhantomInjected } from './injected/PhantomInjected.js';
|
|
8
8
|
|
|
@@ -28,7 +28,7 @@ class Phantom extends SolWalletConnector {
|
|
|
28
28
|
if (!isMobile() || phantomInjected.isInstalledOnBrowser()) {
|
|
29
29
|
return phantomInjected;
|
|
30
30
|
}
|
|
31
|
-
if (this.
|
|
31
|
+
if (this.mobileExperience === 'redirect') {
|
|
32
32
|
return new PhantomRedirect(this.constructorProps);
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
7
7
|
var app = require('@wallet-standard/app');
|
|
8
|
-
var
|
|
8
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
9
9
|
var createSolanaSignerFromWalletStandard = require('./utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs');
|
|
10
10
|
|
|
11
11
|
const encoder = new TextEncoder();
|
|
12
|
-
class SolanaWalletStandardConnector extends
|
|
12
|
+
class SolanaWalletStandardConnector extends solanaCore.SolWalletConnector {
|
|
13
13
|
constructor(props) {
|
|
14
14
|
super(props);
|
|
15
15
|
this.connectedChain = 'SOL';
|
|
@@ -2,8 +2,7 @@ import { Wallet } from '@wallet-standard/base';
|
|
|
2
2
|
import { StandardConnectFeature, StandardDisconnectFeature } from '@wallet-standard/features';
|
|
3
3
|
import { Chain } from '@dynamic-labs/wallet-connector-core';
|
|
4
4
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
5
|
-
import { SolWalletConnector, SolWalletConnectorOpts } from '
|
|
6
|
-
import { ISolana } from './../types';
|
|
5
|
+
import { SolWalletConnector, SolWalletConnectorOpts, type ISolana } from '@dynamic-labs/solana-core';
|
|
7
6
|
export declare abstract class SolanaWalletStandardConnector extends SolWalletConnector {
|
|
8
7
|
connectedChain: Chain;
|
|
9
8
|
supportedChains: Chain[];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
3
|
import { getWallets } from '@wallet-standard/app';
|
|
4
|
-
import { SolWalletConnector } from '
|
|
4
|
+
import { SolWalletConnector } from '@dynamic-labs/solana-core';
|
|
5
5
|
import { createSolanaSignerFromWalletStandard } from './utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js';
|
|
6
6
|
|
|
7
7
|
const encoder = new TextEncoder();
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Wallet } from '@wallet-standard/base';
|
|
2
|
-
import { ISolana } from '
|
|
3
|
-
import { SolWalletConnector } from '../../../solWalletConnector';
|
|
2
|
+
import { SolWalletConnector, ISolana } from '@dynamic-labs/solana-core';
|
|
4
3
|
export declare const createSolanaSignerFromWalletStandard: (wallet: Wallet, walletConnector: SolWalletConnector) => ISolana;
|
package/src/Solflare.cjs
CHANGED
|
@@ -58,18 +58,6 @@ class Solflare extends InjectedWalletBase.InjectedWalletBase {
|
|
|
58
58
|
: undefined;
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
getConnectedAccounts() {
|
|
62
|
-
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
var _a;
|
|
64
|
-
const provider = this.getProvider();
|
|
65
|
-
if (!provider)
|
|
66
|
-
return [];
|
|
67
|
-
const publicKey = (_a = provider.publicKey) === null || _a === void 0 ? void 0 : _a.toString();
|
|
68
|
-
if (publicKey)
|
|
69
|
-
return [publicKey];
|
|
70
|
-
return [];
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
61
|
}
|
|
74
62
|
|
|
75
63
|
exports.Solflare = Solflare;
|
package/src/Solflare.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
1
2
|
import { InjectedWalletBase } from './injected/InjectedWalletBase';
|
|
2
|
-
import { SolWalletConnectorOpts } from './solWalletConnector';
|
|
3
3
|
export declare class Solflare extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
|
5
5
|
overrideKey: string;
|
|
6
6
|
constructor(opts: SolWalletConnectorOpts);
|
|
7
7
|
getAddress(): Promise<string | undefined>;
|
|
8
8
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
9
|
-
getConnectedAccounts(): Promise<string[]>;
|
|
10
9
|
}
|
package/src/Solflare.js
CHANGED
|
@@ -54,18 +54,6 @@ class Solflare extends InjectedWalletBase {
|
|
|
54
54
|
: undefined;
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
getConnectedAccounts() {
|
|
58
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
var _a;
|
|
60
|
-
const provider = this.getProvider();
|
|
61
|
-
if (!provider)
|
|
62
|
-
return [];
|
|
63
|
-
const publicKey = (_a = provider.publicKey) === null || _a === void 0 ? void 0 : _a.toString();
|
|
64
|
-
if (publicKey)
|
|
65
|
-
return [publicKey];
|
|
66
|
-
return [];
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
57
|
}
|
|
70
58
|
|
|
71
59
|
export { Solflare };
|
package/src/index.cjs
CHANGED
|
@@ -10,6 +10,7 @@ var UnknownInjected = require('./injected/UnknownInjected.cjs');
|
|
|
10
10
|
var FallbackSolanaConnector = require('./injected/FallbackSolanaConnector.cjs');
|
|
11
11
|
var isSignedMessage = require('./utils/isSignedMessage.cjs');
|
|
12
12
|
var isBackpackSolanaSigner = require('./utils/isBackpackSolanaSigner.cjs');
|
|
13
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
13
14
|
|
|
14
15
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
15
16
|
const SolanaWalletConnectors = (props) => [
|
|
@@ -23,4 +24,8 @@ const SolanaWalletConnectors = (props) => [
|
|
|
23
24
|
|
|
24
25
|
exports.isSignedMessage = isSignedMessage.isSignedMessage;
|
|
25
26
|
exports.isBackpackSolanaSigner = isBackpackSolanaSigner.isBackpackSolanaSigner;
|
|
27
|
+
Object.defineProperty(exports, 'isSolanaWallet', {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return solanaCore.isSolanaWallet; }
|
|
30
|
+
});
|
|
26
31
|
exports.SolanaWalletConnectors = SolanaWalletConnectors;
|
package/src/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ import { Phantom } from './Phantom';
|
|
|
2
2
|
export declare const SolanaWalletConnectors: (props: any) => (import("dist/packages/wallet-connector-core/src").WalletConnectorConstructor | typeof Phantom)[];
|
|
3
3
|
export { isSignedMessage } from './utils/isSignedMessage';
|
|
4
4
|
export { isBackpackSolanaSigner } from './utils/isBackpackSolanaSigner';
|
|
5
|
-
export type {
|
|
5
|
+
export type { IEmbeddedWalletSolanaSigner } from '@dynamic-labs/embedded-wallet-solana';
|
|
6
|
+
export { isSolanaWallet } from '@dynamic-labs/solana-core';
|
package/src/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { UnknownInjected } from './injected/UnknownInjected.js';
|
|
|
6
6
|
import { FallbackSolanaConnector } from './injected/FallbackSolanaConnector.js';
|
|
7
7
|
export { isSignedMessage } from './utils/isSignedMessage.js';
|
|
8
8
|
export { isBackpackSolanaSigner } from './utils/isBackpackSolanaSigner.js';
|
|
9
|
+
export { isSolanaWallet } from '@dynamic-labs/solana-core';
|
|
9
10
|
|
|
10
11
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
11
12
|
const SolanaWalletConnectors = (props) => [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SolWalletConnectorOpts } from '
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
2
2
|
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
3
|
export declare class BackpackSol extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SolWalletConnectorOpts } from '
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
2
2
|
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
3
|
export declare class FallbackSolanaConnector extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
7
|
+
var web3_js = require('@solana/web3.js');
|
|
7
8
|
var walletBook = require('@dynamic-labs/wallet-book');
|
|
8
9
|
var utils = require('@dynamic-labs/utils');
|
|
10
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
9
11
|
var solProviderHelper = require('../solProviderHelper.cjs');
|
|
10
|
-
var solWalletConnector = require('../solWalletConnector.cjs');
|
|
11
12
|
var SignMessageNotSupportedError = require('../errors/SignMessageNotSupportedError.cjs');
|
|
12
13
|
|
|
13
|
-
class InjectedWalletBase extends
|
|
14
|
+
class InjectedWalletBase extends solanaCore.SolWalletConnector {
|
|
14
15
|
getSolProviderHelper() {
|
|
15
16
|
if (!this.wallet) {
|
|
16
17
|
this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
|
|
@@ -44,6 +45,37 @@ class InjectedWalletBase extends solWalletConnector.SolWalletConnector {
|
|
|
44
45
|
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
|
|
45
46
|
});
|
|
46
47
|
}
|
|
48
|
+
createUiTransaction(from) {
|
|
49
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
yield this.validateActiveWallet(from);
|
|
51
|
+
const transaction = new solanaCore.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
|
+
transaction.feeDeducted = true;
|
|
76
|
+
return transaction;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
47
79
|
isInstalledOnBrowser() {
|
|
48
80
|
var _a;
|
|
49
81
|
return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
|
|
@@ -54,7 +86,8 @@ class InjectedWalletBase extends solWalletConnector.SolWalletConnector {
|
|
|
54
86
|
if (!this.isInstalledOnBrowser()) {
|
|
55
87
|
if (utils.isMobile() &&
|
|
56
88
|
((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
|
|
57
|
-
this.wallet.mobile.inAppBrowser
|
|
89
|
+
this.wallet.mobile.inAppBrowser &&
|
|
90
|
+
this.mobileExperience === 'in-app-browser') {
|
|
58
91
|
const inAppBrowserCompiledTemplate = utils.template(this.wallet.mobile.inAppBrowser);
|
|
59
92
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
60
93
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
2
|
-
import { ISolana } from '
|
|
2
|
+
import { SolWalletConnector, type ISolana } from '@dynamic-labs/solana-core';
|
|
3
|
+
import { IUITransaction } from '@dynamic-labs/types';
|
|
4
|
+
import { ISendBalanceWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
5
|
import { SolProviderHelper } from '../solProviderHelper';
|
|
4
|
-
|
|
5
|
-
export declare abstract class InjectedWalletBase extends SolWalletConnector {
|
|
6
|
+
export declare abstract class InjectedWalletBase extends SolWalletConnector implements ISendBalanceWalletConnector {
|
|
6
7
|
solProviderHelper: SolProviderHelper | undefined;
|
|
7
8
|
wallet: WalletSchema | undefined;
|
|
8
9
|
getSolProviderHelper(): SolProviderHelper | undefined;
|
|
@@ -11,6 +12,7 @@ export declare abstract class InjectedWalletBase extends SolWalletConnector {
|
|
|
11
12
|
teardownEventListeners(): void;
|
|
12
13
|
connect(): Promise<void>;
|
|
13
14
|
getSigner<T = ISolana>(): Promise<T | undefined>;
|
|
15
|
+
createUiTransaction(from: string): Promise<IUITransaction>;
|
|
14
16
|
isInstalledOnBrowser(): boolean;
|
|
15
17
|
getAddress(): Promise<string | undefined>;
|
|
16
18
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
4
|
import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
|
|
4
5
|
import { isMobile, template } from '@dynamic-labs/utils';
|
|
6
|
+
import { SolWalletConnector, SolanaUiTransaction } from '@dynamic-labs/solana-core';
|
|
5
7
|
import { SolProviderHelper } from '../solProviderHelper.js';
|
|
6
|
-
import { SolWalletConnector } from '../solWalletConnector.js';
|
|
7
8
|
import { SignMessageNotSupportedError } from '../errors/SignMessageNotSupportedError.js';
|
|
8
9
|
|
|
9
10
|
class InjectedWalletBase extends SolWalletConnector {
|
|
@@ -40,6 +41,37 @@ class InjectedWalletBase extends SolWalletConnector {
|
|
|
40
41
|
return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
|
|
41
42
|
});
|
|
42
43
|
}
|
|
44
|
+
createUiTransaction(from) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
yield this.validateActiveWallet(from);
|
|
47
|
+
const transaction = 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
|
+
transaction.feeDeducted = true;
|
|
72
|
+
return transaction;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
43
75
|
isInstalledOnBrowser() {
|
|
44
76
|
var _a;
|
|
45
77
|
return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
|
|
@@ -50,7 +82,8 @@ class InjectedWalletBase extends SolWalletConnector {
|
|
|
50
82
|
if (!this.isInstalledOnBrowser()) {
|
|
51
83
|
if (isMobile() &&
|
|
52
84
|
((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
|
|
53
|
-
this.wallet.mobile.inAppBrowser
|
|
85
|
+
this.wallet.mobile.inAppBrowser &&
|
|
86
|
+
this.mobileExperience === 'in-app-browser') {
|
|
54
87
|
const inAppBrowserCompiledTemplate = template(this.wallet.mobile.inAppBrowser);
|
|
55
88
|
const deepLink = inAppBrowserCompiledTemplate({
|
|
56
89
|
encodedDappURI: encodeURIComponent(window.location.toString()),
|
|
@@ -32,6 +32,10 @@ class PhantomInjected extends InjectedWalletBase.InjectedWalletBase {
|
|
|
32
32
|
return undefined;
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
canGetChainAddress() {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
return ((_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
|
|
38
|
+
}
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
exports.PhantomInjected = PhantomInjected;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { SolWalletConnectorOpts } from '
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
2
2
|
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
3
|
export declare class PhantomInjected extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
|
5
5
|
overrideKey: string;
|
|
6
6
|
constructor(opts: SolWalletConnectorOpts);
|
|
7
7
|
getAddress(): Promise<string | undefined>;
|
|
8
|
+
canGetChainAddress(): boolean;
|
|
8
9
|
}
|
|
@@ -28,6 +28,10 @@ class PhantomInjected extends InjectedWalletBase {
|
|
|
28
28
|
return undefined;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
+
canGetChainAddress() {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
return ((_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
|
|
34
|
+
}
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
export { PhantomInjected };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SolWalletConnectorOpts } from '
|
|
1
|
+
import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
|
|
2
2
|
import { InjectedWalletBase } from './InjectedWalletBase';
|
|
3
3
|
export declare class UnknownInjected extends InjectedWalletBase {
|
|
4
4
|
name: string;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var CoinbaseSolana = require('../CoinbaseSolana.cjs');
|
|
7
7
|
var Solflare = require('../Solflare.cjs');
|
|
8
8
|
var SolanaWalletStandardConnector = require('../SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs');
|
|
9
|
-
var MagicEdenSolana = require('../MagicEdenSolana.cjs');
|
|
10
9
|
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
11
10
|
var BackpackSol = require('./BackpackSol.cjs');
|
|
12
11
|
|
|
@@ -14,7 +13,6 @@ const injectedWalletOverrides = [
|
|
|
14
13
|
CoinbaseSolana.CoinbaseSolana,
|
|
15
14
|
BackpackSol.BackpackSol,
|
|
16
15
|
Solflare.Solflare,
|
|
17
|
-
MagicEdenSolana.MagicEdenSolana,
|
|
18
16
|
];
|
|
19
17
|
const filteredInjectedWalletKeysOverrides = [
|
|
20
18
|
'coinbasesolana',
|
|
@@ -22,7 +20,6 @@ const filteredInjectedWalletKeysOverrides = [
|
|
|
22
20
|
'phantomledger',
|
|
23
21
|
'backpacksol',
|
|
24
22
|
'solflare',
|
|
25
|
-
'magicedensol',
|
|
26
23
|
];
|
|
27
24
|
const fetchInjectedWalletConnectors = ({ walletBook, }) => {
|
|
28
25
|
var _a;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { CoinbaseSolana } from '../CoinbaseSolana.js';
|
|
3
3
|
import { Solflare } from '../Solflare.js';
|
|
4
4
|
import { SolanaWalletStandardConnector } from '../SolanaWalletStandardConnector/SolanaWalletStandardConnector.js';
|
|
5
|
-
import { MagicEdenSolana } from '../MagicEdenSolana.js';
|
|
6
5
|
import { InjectedWalletBase } from './InjectedWalletBase.js';
|
|
7
6
|
import { BackpackSol } from './BackpackSol.js';
|
|
8
7
|
|
|
@@ -10,7 +9,6 @@ const injectedWalletOverrides = [
|
|
|
10
9
|
CoinbaseSolana,
|
|
11
10
|
BackpackSol,
|
|
12
11
|
Solflare,
|
|
13
|
-
MagicEdenSolana,
|
|
14
12
|
];
|
|
15
13
|
const filteredInjectedWalletKeysOverrides = [
|
|
16
14
|
'coinbasesolana',
|
|
@@ -18,7 +16,6 @@ const filteredInjectedWalletKeysOverrides = [
|
|
|
18
16
|
'phantomledger',
|
|
19
17
|
'backpacksol',
|
|
20
18
|
'solflare',
|
|
21
|
-
'magicedensol',
|
|
22
19
|
];
|
|
23
20
|
const fetchInjectedWalletConnectors = ({ walletBook, }) => {
|
|
24
21
|
var _a;
|
|
@@ -7,7 +7,7 @@ var _tslib = require('../../_virtual/_tslib.cjs');
|
|
|
7
7
|
var nacl = require('tweetnacl');
|
|
8
8
|
var bs58 = require('bs58');
|
|
9
9
|
var web3_js = require('@solana/web3.js');
|
|
10
|
-
var
|
|
10
|
+
var solanaCore = require('@dynamic-labs/solana-core');
|
|
11
11
|
var utils = require('./utils.cjs');
|
|
12
12
|
var storage = require('./storage.cjs');
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
16
|
var nacl__default = /*#__PURE__*/_interopDefaultLegacy(nacl);
|
|
17
17
|
var bs58__default = /*#__PURE__*/_interopDefaultLegacy(bs58);
|
|
18
18
|
|
|
19
|
-
class PhantomRedirect extends
|
|
19
|
+
class PhantomRedirect extends solanaCore.SolWalletConnector {
|
|
20
20
|
constructor(props) {
|
|
21
21
|
super(Object.assign({}, props));
|
|
22
22
|
this.name = 'Phantom';
|
|
@@ -248,7 +248,7 @@ class PhantomRedirect extends solWalletConnector.SolWalletConnector {
|
|
|
248
248
|
const url = utils.buildUrl('signMessage', params);
|
|
249
249
|
window.location.href = url;
|
|
250
250
|
// actual signature will be retrived upon redirect back to dapp
|
|
251
|
-
return Buffer.from('');
|
|
251
|
+
return { signature: Buffer.from('') };
|
|
252
252
|
}),
|
|
253
253
|
signTransaction: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
254
254
|
const serializedTransaction = bs58__default["default"].encode(transaction.serialize({
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Transaction } from '@solana/web3.js';
|
|
2
2
|
import { IPhantomRedirectConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { SolWalletConnector } from '
|
|
4
|
-
import { ISolana } from '..';
|
|
3
|
+
import { SolWalletConnector, type ISolana } from '@dynamic-labs/solana-core';
|
|
5
4
|
import { Method } from './types';
|
|
6
5
|
export declare class PhantomRedirect extends SolWalletConnector implements IPhantomRedirectConnector {
|
|
7
6
|
name: string;
|
|
@@ -3,7 +3,7 @@ import { __awaiter } from '../../_virtual/_tslib.js';
|
|
|
3
3
|
import nacl from 'tweetnacl';
|
|
4
4
|
import bs58 from 'bs58';
|
|
5
5
|
import { PublicKey, Transaction } from '@solana/web3.js';
|
|
6
|
-
import { SolWalletConnector } from '
|
|
6
|
+
import { SolWalletConnector } from '@dynamic-labs/solana-core';
|
|
7
7
|
import { fetchCluster, buildUrl, decryptPayload, encryptPayload } from './utils.js';
|
|
8
8
|
import { storage, clearStorage } from './storage.js';
|
|
9
9
|
|
|
@@ -239,7 +239,7 @@ class PhantomRedirect extends SolWalletConnector {
|
|
|
239
239
|
const url = buildUrl('signMessage', params);
|
|
240
240
|
window.location.href = url;
|
|
241
241
|
// actual signature will be retrived upon redirect back to dapp
|
|
242
|
-
return Buffer.from('');
|
|
242
|
+
return { signature: Buffer.from('') };
|
|
243
243
|
}),
|
|
244
244
|
signTransaction: (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
245
245
|
const serializedTransaction = bs58.encode(transaction.serialize({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
2
2
|
import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { ISolana, ExtensionLocator as ExtensionLocator } from '
|
|
3
|
+
import { ISolana, ExtensionLocator as ExtensionLocator } from '@dynamic-labs/solana-core';
|
|
4
4
|
export declare class SolProviderHelper {
|
|
5
5
|
private wallet;
|
|
6
6
|
constructor(wallet: WalletSchema);
|
|
@@ -14,6 +14,7 @@ export declare class SolProviderHelper {
|
|
|
14
14
|
walletStandard?: {
|
|
15
15
|
features: string[];
|
|
16
16
|
name: string;
|
|
17
|
+
providerId?: string | undefined;
|
|
17
18
|
} | undefined;
|
|
18
19
|
walletStandardLocators?: {
|
|
19
20
|
name: string;
|
|
@@ -22,7 +23,7 @@ export declare class SolProviderHelper {
|
|
|
22
23
|
windowLocations?: string[] | undefined;
|
|
23
24
|
} | undefined;
|
|
24
25
|
getInstalledProvider(): ISolana | undefined;
|
|
25
|
-
installedProviders():
|
|
26
|
+
installedProviders(): import("@dynamic-labs/solana-core").ISolanaSigner[];
|
|
26
27
|
installedProviderLookup(extensionLocators: Array<ProviderCondition<ExtensionLocator>>): ISolana | undefined;
|
|
27
28
|
findProvider(): ISolana | undefined;
|
|
28
29
|
isInstalledHelper(): boolean;
|
package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
2
|
-
import { ISolana } from '
|
|
2
|
+
import { ISolana } from '@dynamic-labs/solana-core';
|
|
3
3
|
export declare const findWalletProviderFromWalletStandard: (injectConfig: NonNullable<WalletSchema['injectedConfig']>[number]) => ISolana | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IBackpackSolanaSigner, ISolana } from '
|
|
1
|
+
import { IBackpackSolanaSigner, ISolana } from '@dynamic-labs/solana-core';
|
|
2
2
|
export declare const isBackpackSolanaSigner: (signer: ISolana) => signer is IBackpackSolanaSigner;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { SignedMessage } from '
|
|
1
|
+
import { SignedMessage } from '@dynamic-labs/solana-core';
|
|
2
2
|
export declare const isSignedMessage: (message: SignedMessage | Uint8Array) => message is SignedMessage;
|