@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.
Files changed (54) hide show
  1. package/CHANGELOG.md +620 -0
  2. package/package.json +9 -10
  3. package/src/CoinbaseSolana.cjs +1 -1
  4. package/src/CoinbaseSolana.d.ts +1 -1
  5. package/src/CoinbaseSolana.js +1 -1
  6. package/src/Phantom.cjs +3 -3
  7. package/src/Phantom.d.ts +1 -2
  8. package/src/Phantom.js +2 -2
  9. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs +2 -2
  10. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.d.ts +1 -2
  11. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.js +1 -1
  12. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs +1 -1
  13. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +1 -2
  14. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js +1 -1
  15. package/src/Solflare.cjs +0 -12
  16. package/src/Solflare.d.ts +1 -2
  17. package/src/Solflare.js +0 -12
  18. package/src/index.cjs +5 -0
  19. package/src/index.d.ts +2 -1
  20. package/src/index.js +1 -0
  21. package/src/injected/BackpackSol.d.ts +1 -1
  22. package/src/injected/FallbackSolanaConnector.d.ts +1 -1
  23. package/src/injected/InjectedWalletBase.cjs +36 -3
  24. package/src/injected/InjectedWalletBase.d.ts +5 -3
  25. package/src/injected/InjectedWalletBase.js +35 -2
  26. package/src/injected/PhantomInjected.cjs +4 -0
  27. package/src/injected/PhantomInjected.d.ts +2 -1
  28. package/src/injected/PhantomInjected.js +4 -0
  29. package/src/injected/UnknownInjected.d.ts +1 -1
  30. package/src/injected/fetchInjectedWalletConnectors.cjs +0 -3
  31. package/src/injected/fetchInjectedWalletConnectors.js +0 -3
  32. package/src/phantomRedirect/PhantomRedirect.cjs +3 -3
  33. package/src/phantomRedirect/PhantomRedirect.d.ts +1 -2
  34. package/src/phantomRedirect/PhantomRedirect.js +2 -2
  35. package/src/solProviderHelper.d.ts +3 -2
  36. package/src/utils/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.d.ts +1 -1
  37. package/src/utils/isBackpackSolanaSigner.d.ts +1 -1
  38. package/src/utils/isSignedMessage.d.ts +1 -1
  39. package/src/MagicEdenSolana.cjs +0 -31
  40. package/src/MagicEdenSolana.d.ts +0 -8
  41. package/src/MagicEdenSolana.js +0 -27
  42. package/src/contants.cjs +0 -8
  43. package/src/contants.d.ts +0 -1
  44. package/src/contants.js +0 -4
  45. package/src/solWalletConnector.cjs +0 -175
  46. package/src/solWalletConnector.d.ts +0 -35
  47. package/src/solWalletConnector.js +0 -171
  48. package/src/types.d.ts +0 -68
  49. package/src/utils/extractNonce.cjs +0 -14
  50. package/src/utils/extractNonce.d.ts +0 -1
  51. package/src/utils/extractNonce.js +0 -10
  52. package/src/utils/getGenesisHashLSKey.cjs +0 -10
  53. package/src/utils/getGenesisHashLSKey.d.ts +0 -1
  54. 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-alpha.9",
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-alpha.9",
38
- "@dynamic-labs/rpc-provider-solana": "3.0.0-alpha.9",
39
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.9",
40
- "@dynamic-labs/types": "3.0.0-alpha.9",
41
- "@dynamic-labs/utils": "3.0.0-alpha.9",
42
- "@dynamic-labs/wallet-book": "3.0.0-alpha.9",
43
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.9",
44
- "eventemitter3": "5.0.1"
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
  }
@@ -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('./solWalletConnector.cjs');
10
+ require('@dynamic-labs/solana-core');
11
11
  require('tweetnacl');
12
12
  require('bs58');
13
13
  require('@solana/web3.js');
@@ -1,4 +1,4 @@
1
- import { SolWalletConnectorOpts } from './solWalletConnector';
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;
@@ -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 './solWalletConnector.js';
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 solWalletConnector = require('./solWalletConnector.cjs');
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 solWalletConnector.SolWalletConnector {
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.constructorProps.mobileExperience === 'redirect') {
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 './solWalletConnector.js';
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.constructorProps.mobileExperience === 'redirect') {
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 solWalletConnector = require('../solWalletConnector.cjs');
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 solWalletConnector.SolWalletConnector {
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 './../solWalletConnector';
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 '../solWalletConnector.js';
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();
@@ -55,7 +55,7 @@ const createSolanaSignerFromWalletStandard = (wallet, walletConnector) => {
55
55
  account,
56
56
  message,
57
57
  });
58
- return messages[0].signature;
58
+ return { signature: messages[0].signature };
59
59
  });
60
60
  return {
61
61
  addListener: () => {
@@ -1,4 +1,3 @@
1
1
  import { Wallet } from '@wallet-standard/base';
2
- import { ISolana } from '../../../types';
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;
@@ -51,7 +51,7 @@ const createSolanaSignerFromWalletStandard = (wallet, walletConnector) => {
51
51
  account,
52
52
  message,
53
53
  });
54
- return messages[0].signature;
54
+ return { signature: messages[0].signature };
55
55
  });
56
56
  return {
57
57
  addListener: () => {
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 { ISolana, IBackpackSolanaSigner, ICoinbaseSolanaSigner, SignedMessage, ISolanaSigner, } from './types';
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 '../solWalletConnector';
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 '../solWalletConnector';
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 solWalletConnector.SolWalletConnector {
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 '../types';
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
- import { SolWalletConnector } from '../solWalletConnector';
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 '../solWalletConnector';
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 '../solWalletConnector';
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 solWalletConnector = require('../solWalletConnector.cjs');
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 solWalletConnector.SolWalletConnector {
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 '../solWalletConnector';
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 '../solWalletConnector.js';
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 './types';
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(): (import("./types").ISolanaSigner | import("./types").IBackpackSolanaSigner | import("./types").ICoinbaseSolanaSigner)[];
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;
@@ -1,3 +1,3 @@
1
1
  import { WalletSchema } from '@dynamic-labs/wallet-book';
2
- import { ISolana } from '../../types';
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 '../types';
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 '../types';
1
+ import { SignedMessage } from '@dynamic-labs/solana-core';
2
2
  export declare const isSignedMessage: (message: SignedMessage | Uint8Array) => message is SignedMessage;