@dynamic-labs/embedded-wallet-solana 3.0.0-alpha.52 → 3.0.0-alpha.53

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 CHANGED
@@ -1,4 +1,43 @@
1
1
 
2
+ ## [3.0.0-alpha.53](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.52...v3.0.0-alpha.53) (2024-08-29)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * simplify solana wallet signer types (#6748)
8
+ * deprecate getEoaConnector (#6571)
9
+ * limit methods and props returned by wallet.connector (#6540)
10
+ * move generic solana code to solana-core package (#6701)
11
+ * revamp ether v6 interface (#6548)
12
+ * add ethereum wallet specific methods and intercept to sync when needed (#6662)
13
+ * add solana wallet specific methods and intercept to sync when needed (#6608)
14
+ * don't force primary wallet to be connected (#6128)
15
+
16
+ ### Features
17
+
18
+ * add bitcoin wallet specific methods and intercept to sync when needed ([#6663](https://github.com/dynamic-labs/DynamicAuth/issues/6663)) ([ed699b1](https://github.com/dynamic-labs/DynamicAuth/commit/ed699b1f8c264755779ec4840d105f89ade5500e))
19
+ * add ethereum wallet specific methods and intercept to sync when needed ([#6662](https://github.com/dynamic-labs/DynamicAuth/issues/6662)) ([372360e](https://github.com/dynamic-labs/DynamicAuth/commit/372360ed7ca395f88811fc62c94b2b494eb59971))
20
+ * add solana wallet specific methods and intercept to sync when needed ([#6608](https://github.com/dynamic-labs/DynamicAuth/issues/6608)) ([565f610](https://github.com/dynamic-labs/DynamicAuth/commit/565f6100340296c267e9706fd263e9bd3f7d3732))
21
+ * add useSmartWallets hook to manage aa wallets ([#6564](https://github.com/dynamic-labs/DynamicAuth/issues/6564)) ([a243d36](https://github.com/dynamic-labs/DynamicAuth/commit/a243d361ce7c368d0f1afda55f9c1fabefd75ba8))
22
+ * don't force primary wallet to be connected ([#6128](https://github.com/dynamic-labs/DynamicAuth/issues/6128)) ([018a6f6](https://github.com/dynamic-labs/DynamicAuth/commit/018a6f66f8725914ab97ea3e2e1c80626266e503))
23
+ * new prop to enable prompt for linking when account change is detected ([#6713](https://github.com/dynamic-labs/DynamicAuth/issues/6713)) ([b5a6321](https://github.com/dynamic-labs/DynamicAuth/commit/b5a63212ae33fae24401f141d5ca2356b446dcff))
24
+
25
+
26
+ ### Bug Fixes
27
+
28
+ * always sync wagmi client with primary wallet ([#6577](https://github.com/dynamic-labs/DynamicAuth/issues/6577)) ([be22fde](https://github.com/dynamic-labs/DynamicAuth/commit/be22fdea3bb61db79b06ba56cb32da6cd8141b66))
29
+ * cosmos wallet intercepts ([#6720](https://github.com/dynamic-labs/DynamicAuth/issues/6720)) ([cfc9df4](https://github.com/dynamic-labs/DynamicAuth/commit/cfc9df48a8032f7348fec14f77b9e378d2e26a22))
30
+ * magiceden wallet events not working correctly on page refresh ([#6735](https://github.com/dynamic-labs/DynamicAuth/issues/6735)) ([6ed5964](https://github.com/dynamic-labs/DynamicAuth/commit/6ed5964134a2cafd392c19f18eb71e6ca2ce238d))
31
+ * use proxy to intercept solana signer methods ([#6743](https://github.com/dynamic-labs/DynamicAuth/issues/6743)) ([ecbe5ea](https://github.com/dynamic-labs/DynamicAuth/commit/ecbe5ea772592d2c693d8222d85b7642acd151a8))
32
+ * wallet.chain references ([525c1ca](https://github.com/dynamic-labs/DynamicAuth/commit/525c1ca9a8fe6402c06eabe6aebc30e310411d9b))
33
+
34
+
35
+ * deprecate getEoaConnector ([#6571](https://github.com/dynamic-labs/DynamicAuth/issues/6571)) ([0226ee5](https://github.com/dynamic-labs/DynamicAuth/commit/0226ee5a13f2418607076ee6f2ec0a579b06dd5d))
36
+ * limit methods and props returned by wallet.connector ([#6540](https://github.com/dynamic-labs/DynamicAuth/issues/6540)) ([9c86e35](https://github.com/dynamic-labs/DynamicAuth/commit/9c86e35c72cd40313bfd19254dd6171ee8f62213))
37
+ * move generic solana code to solana-core package ([#6701](https://github.com/dynamic-labs/DynamicAuth/issues/6701)) ([30815f5](https://github.com/dynamic-labs/DynamicAuth/commit/30815f5d46feeefb2413c1b7d30b43d5370ee032))
38
+ * revamp ether v6 interface ([#6548](https://github.com/dynamic-labs/DynamicAuth/issues/6548)) ([f3b2fb8](https://github.com/dynamic-labs/DynamicAuth/commit/f3b2fb8da7de21f9c58e67fa7f5580166195092a))
39
+ * simplify solana wallet signer types ([#6748](https://github.com/dynamic-labs/DynamicAuth/issues/6748)) ([01d1a42](https://github.com/dynamic-labs/DynamicAuth/commit/01d1a42bc916ab329580b741ba60d706bf6c5491))
40
+
2
41
  ## [3.0.0-alpha.52](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.51...v3.0.0-alpha.52) (2024-08-28)
3
42
 
4
43
 
package/package.cjs CHANGED
@@ -3,12 +3,12 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "3.0.0-alpha.52";
6
+ var version = "3.0.0-alpha.53";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.519",
9
- "@dynamic-labs/utils": "3.0.0-alpha.52",
10
- "@dynamic-labs/logger": "3.0.0-alpha.52",
11
- "@dynamic-labs/types": "3.0.0-alpha.52",
9
+ "@dynamic-labs/utils": "3.0.0-alpha.53",
10
+ "@dynamic-labs/logger": "3.0.0-alpha.53",
11
+ "@dynamic-labs/types": "3.0.0-alpha.53",
12
12
  eventemitter3: "5.0.1",
13
13
  "@solana/spl-token": "0.4.6",
14
14
  "@solana/web3.js": "1.92.1",
package/package.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client'
2
- var version = "3.0.0-alpha.52";
2
+ var version = "3.0.0-alpha.53";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.519",
5
- "@dynamic-labs/utils": "3.0.0-alpha.52",
6
- "@dynamic-labs/logger": "3.0.0-alpha.52",
7
- "@dynamic-labs/types": "3.0.0-alpha.52",
5
+ "@dynamic-labs/utils": "3.0.0-alpha.53",
6
+ "@dynamic-labs/logger": "3.0.0-alpha.53",
7
+ "@dynamic-labs/types": "3.0.0-alpha.53",
8
8
  eventemitter3: "5.0.1",
9
9
  "@solana/spl-token": "0.4.6",
10
10
  "@solana/web3.js": "1.92.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/embedded-wallet-solana",
3
- "version": "3.0.0-alpha.52",
3
+ "version": "3.0.0-alpha.53",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -27,9 +27,9 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@dynamic-labs/sdk-api-core": "0.0.519",
30
- "@dynamic-labs/utils": "3.0.0-alpha.52",
31
- "@dynamic-labs/logger": "3.0.0-alpha.52",
32
- "@dynamic-labs/types": "3.0.0-alpha.52",
30
+ "@dynamic-labs/utils": "3.0.0-alpha.53",
31
+ "@dynamic-labs/logger": "3.0.0-alpha.53",
32
+ "@dynamic-labs/types": "3.0.0-alpha.53",
33
33
  "eventemitter3": "5.0.1",
34
34
  "@solana/spl-token": "0.4.6",
35
35
  "@solana/web3.js": "1.92.1",
@@ -37,12 +37,12 @@
37
37
  "@turnkey/iframe-stamper": "2.0.0",
38
38
  "@turnkey/solana": "0.3.9",
39
39
  "@turnkey/webauthn-stamper": "0.5.0",
40
- "@dynamic-labs/embedded-wallet": "3.0.0-alpha.52",
41
- "@dynamic-labs/rpc-providers": "3.0.0-alpha.52",
42
- "@dynamic-labs/solana-core": "3.0.0-alpha.52",
43
- "@dynamic-labs/wallet-book": "3.0.0-alpha.52",
44
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.52",
45
- "@dynamic-labs/webauthn": "3.0.0-alpha.52",
40
+ "@dynamic-labs/embedded-wallet": "3.0.0-alpha.53",
41
+ "@dynamic-labs/rpc-providers": "3.0.0-alpha.53",
42
+ "@dynamic-labs/solana-core": "3.0.0-alpha.53",
43
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.53",
44
+ "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.53",
45
+ "@dynamic-labs/webauthn": "3.0.0-alpha.53",
46
46
  "react-dom": "18.2.0",
47
47
  "viem": "2.9.25"
48
48
  },
@@ -1,8 +1,6 @@
1
1
  import { PublicKey, SendOptions, Transaction, TransactionSignature, VersionedTransaction } from '@solana/web3.js';
2
+ import { SignedMessage } from '@dynamic-labs/solana-core';
2
3
  import { TurnkeySolanaWalletConnector } from './TurnkeySolanaWalletConnector';
3
- type SignedMessage = {
4
- signature: Uint8Array;
5
- };
6
4
  export type IEmbeddedWalletSolanaSigner = {
7
5
  publicKey?: {
8
6
  toBytes(): Uint8Array;
@@ -46,4 +44,3 @@ export declare class TurnkeySolanaSigner implements IEmbeddedWalletSolanaSigner
46
44
  } | undefined>;
47
45
  disconnect(): Promise<void>;
48
46
  }
49
- export {};
@@ -13,7 +13,6 @@ var utils = require('@dynamic-labs/utils');
13
13
  var solanaCore = require('@dynamic-labs/solana-core');
14
14
  var embeddedWallet = require('@dynamic-labs/embedded-wallet');
15
15
  var createSolanaConnection = require('../utils/createSolanaConnection/createSolanaConnection.cjs');
16
- var getGenesisHashLSKey = require('../utils/getGenesisHashLSKey/getGenesisHashLSKey.cjs');
17
16
  var transactionDecoder = require('../utils/transactionDecoder/transactionDecoder.cjs');
18
17
  var api = require('../utils/api/api.cjs');
19
18
  var TurnkeySolanaSigner = require('./TurnkeySolanaSigner.cjs');
@@ -23,6 +22,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
23
22
  var _a;
24
23
  super(nameAndKey, props);
25
24
  // Public fields
25
+ this.ChainWallet = solanaCore.SolanaWallet;
26
26
  this.connectedChain = 'SOL';
27
27
  this.supportedChains = ['SOL'];
28
28
  this.verifiedCredentialChain = 'solana';
@@ -78,10 +78,10 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
78
78
  getNetwork() {
79
79
  return _tslib.__awaiter(this, void 0, void 0, function* () {
80
80
  const connection = this.getConnection();
81
- let genesisHash = localStorage.getItem(getGenesisHashLSKey.getGenesisHashLSKey(connection.rpcEndpoint));
81
+ let genesisHash = localStorage.getItem(solanaCore.getGenesisHashLSKey(connection.rpcEndpoint));
82
82
  if (!genesisHash) {
83
83
  genesisHash = yield connection.getGenesisHash();
84
- localStorage.setItem(getGenesisHashLSKey.getGenesisHashLSKey(connection.rpcEndpoint), genesisHash);
84
+ localStorage.setItem(solanaCore.getGenesisHashLSKey(connection.rpcEndpoint), genesisHash);
85
85
  }
86
86
  genesisHash = genesisHash.substring(0, 32);
87
87
  // see: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md
@@ -131,7 +131,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
131
131
  }
132
132
  endSession() {
133
133
  return _tslib.__awaiter(this, void 0, void 0, function* () {
134
- localStorage.removeItem(getGenesisHashLSKey.getGenesisHashLSKey(this.getRpcUrl()));
134
+ localStorage.removeItem(solanaCore.getGenesisHashLSKey(this.getRpcUrl()));
135
135
  });
136
136
  }
137
137
  refreshTurnkeyAccount() {
@@ -344,6 +344,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
344
344
  if (insufficientFunds) {
345
345
  uiTransaction.notEnoughFundsError = true;
346
346
  }
347
+ // TODO: remove this. We should not be passing references to wallet connectors
347
348
  return this.walletUiUtils.sendTransaction(this, uiTransaction);
348
349
  });
349
350
  }
@@ -387,6 +388,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
387
388
  }
388
389
  createUiTransaction(from) {
389
390
  return _tslib.__awaiter(this, void 0, void 0, function* () {
391
+ yield this.validateActiveWallet(from);
390
392
  const transaction = new solanaCore.SolanaUiTransaction({
391
393
  connection: this.getConnection(),
392
394
  from,
@@ -1,23 +1,24 @@
1
1
  import { Commitment, Connection, ConnectionConfig, Transaction, VersionedTransaction, ConfirmOptions, Signer, SendOptions } from '@solana/web3.js';
2
2
  import { TurnkeyApiTypes } from '@turnkey/http';
3
3
  import { GenericNetwork, IUITransaction, WalletUiUtils } from '@dynamic-labs/types';
4
- import { Chain, ISendBalanceWalletConnector, WalletConnector } from '@dynamic-labs/wallet-connector-core';
4
+ import { Chain, ISendBalanceWalletConnector, InternalWalletConnector } from '@dynamic-labs/wallet-connector-core';
5
5
  import { WalletBookSchema } from '@dynamic-labs/wallet-book';
6
6
  import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
7
- import { IChainRpcProviders } from '@dynamic-labs/solana-core';
7
+ import { IChainRpcProviders, SolanaWallet } from '@dynamic-labs/solana-core';
8
8
  import { TurnkeyWalletConnectorBase, TurnkeyWalletConnectorNameAndKey } from '@dynamic-labs/embedded-wallet';
9
9
  import { TurnkeySolanaSigner } from './TurnkeySolanaSigner';
10
10
  type SendTransactionOptions = ConfirmOptions & {
11
11
  signers?: Signer[];
12
12
  };
13
13
  export type TurnkeySolanaConnectorProps = {
14
- walletUiUtils: WalletUiUtils<WalletConnector>;
14
+ walletUiUtils: WalletUiUtils<InternalWalletConnector>;
15
15
  walletBook: WalletBookSchema;
16
16
  solNetworks: GenericNetwork[];
17
17
  appName?: string;
18
18
  chainRpcProviders: IChainRpcProviders;
19
19
  };
20
20
  export declare class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase implements ISendBalanceWalletConnector {
21
+ ChainWallet: typeof SolanaWallet;
21
22
  connectedChain: Chain;
22
23
  supportedChains: Chain[];
23
24
  solNetworks: GenericNetwork[];
@@ -6,10 +6,9 @@ import { TurnkeyClient } from '@turnkey/http';
6
6
  import { TurnkeySigner } from '@turnkey/solana';
7
7
  import { IframeStamper } from '@turnkey/iframe-stamper';
8
8
  import { DynamicError, getTLD, PlatformService, bufferToBase64 } from '@dynamic-labs/utils';
9
- import { ProviderChain, SolanaUiTransaction } from '@dynamic-labs/solana-core';
9
+ import { SolanaWallet, ProviderChain, getGenesisHashLSKey, SolanaUiTransaction } from '@dynamic-labs/solana-core';
10
10
  import { TurnkeyWalletConnectorBase, findTurnkeyVerifiedCredential, PasskeyService, TURNKEY_API_BASE_URL, TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS, logger } from '@dynamic-labs/embedded-wallet';
11
11
  import { createSolanaConnection } from '../utils/createSolanaConnection/createSolanaConnection.js';
12
- import { getGenesisHashLSKey } from '../utils/getGenesisHashLSKey/getGenesisHashLSKey.js';
13
12
  import { decodeTransaction, getTotalSolanaSpend, summarizeTransactionDecodedData } from '../utils/transactionDecoder/transactionDecoder.js';
14
13
  import { optimizeSolanaTransaction } from '../utils/api/api.js';
15
14
  import { TurnkeySolanaSigner } from './TurnkeySolanaSigner.js';
@@ -19,6 +18,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
19
18
  var _a;
20
19
  super(nameAndKey, props);
21
20
  // Public fields
21
+ this.ChainWallet = SolanaWallet;
22
22
  this.connectedChain = 'SOL';
23
23
  this.supportedChains = ['SOL'];
24
24
  this.verifiedCredentialChain = 'solana';
@@ -340,6 +340,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
340
340
  if (insufficientFunds) {
341
341
  uiTransaction.notEnoughFundsError = true;
342
342
  }
343
+ // TODO: remove this. We should not be passing references to wallet connectors
343
344
  return this.walletUiUtils.sendTransaction(this, uiTransaction);
344
345
  });
345
346
  }
@@ -383,6 +384,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
383
384
  }
384
385
  createUiTransaction(from) {
385
386
  return __awaiter(this, void 0, void 0, function* () {
387
+ yield this.validateActiveWallet(from);
386
388
  const transaction = new SolanaUiTransaction({
387
389
  connection: this.getConnection(),
388
390
  from,
@@ -1,3 +1,2 @@
1
1
  export { createSolanaConnection } from './createSolanaConnection';
2
- export { getGenesisHashLSKey } from './getGenesisHashLSKey';
3
2
  export { decodeTransaction, summarizeTransactionDecodedData, getTotalSolanaSpend, } from './transactionDecoder';
@@ -1,8 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- const SOLANA_GENESIS_HASH = 'genesis-hash';
7
-
8
- exports.SOLANA_GENESIS_HASH = SOLANA_GENESIS_HASH;
@@ -1 +0,0 @@
1
- export declare const SOLANA_GENESIS_HASH = "genesis-hash";
@@ -1,4 +0,0 @@
1
- 'use client'
2
- const SOLANA_GENESIS_HASH = 'genesis-hash';
3
-
4
- export { SOLANA_GENESIS_HASH };
@@ -1,10 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var constants = require('../../constants.cjs');
7
-
8
- const getGenesisHashLSKey = (rpcEndpoint) => `${rpcEndpoint}_${constants.SOLANA_GENESIS_HASH}`;
9
-
10
- exports.getGenesisHashLSKey = getGenesisHashLSKey;
@@ -1 +0,0 @@
1
- export declare const getGenesisHashLSKey: (rpcEndpoint: string) => string;
@@ -1,6 +0,0 @@
1
- 'use client'
2
- import { SOLANA_GENESIS_HASH } from '../../constants.js';
3
-
4
- const getGenesisHashLSKey = (rpcEndpoint) => `${rpcEndpoint}_${SOLANA_GENESIS_HASH}`;
5
-
6
- export { getGenesisHashLSKey };
@@ -1 +0,0 @@
1
- export { getGenesisHashLSKey } from './getGenesisHashLSKey';