@dynamic-labs/starknet 4.0.0-alpha.4 → 4.0.0-alpha.41

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 (65) hide show
  1. package/CHANGELOG.md +361 -0
  2. package/package.cjs +8 -0
  3. package/package.js +4 -0
  4. package/package.json +14 -19
  5. package/src/StarknetWalletConnector.cjs +232 -0
  6. package/src/StarknetWalletConnector.d.ts +58 -0
  7. package/src/StarknetWalletConnector.js +228 -0
  8. package/src/index.cjs +16 -13
  9. package/src/index.d.ts +16 -7
  10. package/src/index.js +14 -13
  11. package/src/types.d.ts +26 -11
  12. package/src/utils/convertors.cjs +1 -1
  13. package/src/utils/convertors.d.ts +1 -1
  14. package/src/utils/convertors.js +1 -1
  15. package/src/utils/starknetSnap.d.ts +2 -2
  16. package/src/wallet/StarknetWallet.cjs +0 -3
  17. package/src/wallet/StarknetWallet.d.ts +4 -4
  18. package/src/wallet/StarknetWallet.js +0 -3
  19. package/src/wallets/argent/argentMobile/argentMobile.cjs +70 -0
  20. package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
  21. package/src/wallets/argent/argentMobile/argentMobile.js +66 -0
  22. package/src/wallets/argent/base.cjs +50 -0
  23. package/src/wallets/argent/base.d.ts +5 -0
  24. package/src/wallets/argent/base.js +46 -0
  25. package/src/wallets/argent/injected/argentx.cjs +33 -0
  26. package/src/wallets/argent/injected/argentx.d.ts +8 -0
  27. package/src/wallets/argent/injected/argentx.js +29 -0
  28. package/src/wallets/argent/webwallet/webwallet.cjs +37 -0
  29. package/src/wallets/argent/webwallet/webwallet.d.ts +10 -0
  30. package/src/wallets/argent/webwallet/webwallet.js +33 -0
  31. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.cjs +33 -0
  32. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
  33. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +29 -0
  34. package/src/wallets/injected/injected.cjs +141 -0
  35. package/src/wallets/injected/injected.d.ts +10 -0
  36. package/src/wallets/injected/injected.js +137 -0
  37. package/src/wallets/{metamask.d.ts → injected/metamask.d.ts} +2 -4
  38. package/src/starknetWalletConnector.cjs +0 -320
  39. package/src/starknetWalletConnector.d.ts +0 -127
  40. package/src/starknetWalletConnector.js +0 -314
  41. package/src/utils/starknetSnap.cjs +0 -92
  42. package/src/utils/starknetSnap.js +0 -88
  43. package/src/wallets/argentx.cjs +0 -24
  44. package/src/wallets/argentx.d.ts +0 -8
  45. package/src/wallets/argentx.js +0 -20
  46. package/src/wallets/argentxBase.cjs +0 -50
  47. package/src/wallets/argentxBase.d.ts +0 -16
  48. package/src/wallets/argentxBase.js +0 -48
  49. package/src/wallets/argentxMobile.cjs +0 -100
  50. package/src/wallets/argentxMobile.d.ts +0 -13
  51. package/src/wallets/argentxMobile.js +0 -96
  52. package/src/wallets/argentxWeb.cjs +0 -57
  53. package/src/wallets/argentxWeb.d.ts +0 -8
  54. package/src/wallets/argentxWeb.js +0 -53
  55. package/src/wallets/bitget.cjs +0 -22
  56. package/src/wallets/bitget.d.ts +0 -7
  57. package/src/wallets/bitget.js +0 -18
  58. package/src/wallets/braavos.cjs +0 -37
  59. package/src/wallets/braavos.d.ts +0 -8
  60. package/src/wallets/braavos.js +0 -33
  61. package/src/wallets/metamask.cjs +0 -121
  62. package/src/wallets/metamask.js +0 -117
  63. package/src/wallets/okx.cjs +0 -15
  64. package/src/wallets/okx.d.ts +0 -6
  65. package/src/wallets/okx.js +0 -11
@@ -30,7 +30,7 @@ const defaultTypedData = {
30
30
  ],
31
31
  },
32
32
  };
33
- const formatTypedDataMessage = (inputMessage, chainId = starknet.constants.NetworkName.SN_MAIN) => {
33
+ const formatTypedDataMessage = (inputMessage, chainId = starknet.constants.StarknetChainId.SN_MAIN) => {
34
34
  let nonce, domain;
35
35
  try {
36
36
  const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
@@ -1,2 +1,2 @@
1
1
  import { TypedData, constants } from 'starknet';
2
- export declare const formatTypedDataMessage: (inputMessage: string, chainId?: constants.NetworkName) => TypedData;
2
+ export declare const formatTypedDataMessage: (inputMessage: string, chainId?: constants.StarknetChainId) => TypedData;
@@ -26,7 +26,7 @@ const defaultTypedData = {
26
26
  ],
27
27
  },
28
28
  };
29
- const formatTypedDataMessage = (inputMessage, chainId = constants.NetworkName.SN_MAIN) => {
29
+ const formatTypedDataMessage = (inputMessage, chainId = constants.StarknetChainId.SN_MAIN) => {
30
30
  let nonce, domain;
31
31
  try {
32
32
  const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
@@ -1,8 +1,8 @@
1
- import { StarknetWindowObject } from 'get-starknet-core';
1
+ import { StarknetWindowObject } from '@starknet-io/types-js';
2
2
  import { IEthereum } from '@dynamic-labs/utils';
3
3
  /**
4
4
  *
5
5
  * @param {IEthereum} provider the metamask window provider object
6
6
  * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
7
7
  */
8
- export declare const createMetaMaskProviderWrapper: (provider: IEthereum) => StarknetWindowObject;
8
+ export declare const createMetaMaskProviderWrapper: (provider: IEthereum) => Promise<StarknetWindowObject | undefined>;
@@ -24,9 +24,6 @@ class StarknetWallet extends walletConnectorCore.Wallet {
24
24
  getProvider() {
25
25
  return _tslib.__awaiter(this, void 0, void 0, function* () {
26
26
  const provider = yield this._connector.getProvider();
27
- if (!provider) {
28
- throw new Error('unable to retrieve Starknet provider');
29
- }
30
27
  utils.wrapMethodWithCallback(provider, 'callContract', (originalCallContract, call, blockIdentifier) => _tslib.__awaiter(this, void 0, void 0, function* () {
31
28
  yield this.sync();
32
29
  return originalCallContract(call, blockIdentifier);
@@ -1,7 +1,7 @@
1
- import { AccountInterface, ProviderInterface } from 'starknet';
1
+ import { RpcProvider, WalletAccount } from 'starknet';
2
2
  import { Wallet } from '@dynamic-labs/wallet-connector-core';
3
- import StarknetWalletConnector from '../starknetWalletConnector';
3
+ import { StarknetWalletConnector } from '../StarknetWalletConnector';
4
4
  export declare class StarknetWallet extends Wallet<StarknetWalletConnector> {
5
- getWalletAccount(): Promise<AccountInterface>;
6
- getProvider(): Promise<ProviderInterface>;
5
+ getWalletAccount(): Promise<WalletAccount>;
6
+ getProvider(): Promise<RpcProvider>;
7
7
  }
@@ -20,9 +20,6 @@ class StarknetWallet extends Wallet {
20
20
  getProvider() {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
22
  const provider = yield this._connector.getProvider();
23
- if (!provider) {
24
- throw new Error('unable to retrieve Starknet provider');
25
- }
26
23
  wrapMethodWithCallback(provider, 'callContract', (originalCallContract, call, blockIdentifier) => __awaiter(this, void 0, void 0, function* () {
27
24
  yield this.sync();
28
25
  return originalCallContract(call, blockIdentifier);
@@ -0,0 +1,70 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var starknetkit = require('starknetkit');
8
+ var argentMobile = require('starknetkit/argentMobile');
9
+ var starknet = require('starknet');
10
+ var base = require('../base.cjs');
11
+
12
+ class ArgentMobile extends base.ArgentBase {
13
+ constructor(opts) {
14
+ super('Argent X - Mobile', 'argentXMobile', opts);
15
+ this.canConnectViaCustodialService = true;
16
+ this.overrideKey = 'argentxmobile';
17
+ this.projectId = opts.projectId;
18
+ this.appName = opts.appName;
19
+ this.appLogoUrls = opts.appLogoUrl
20
+ ? [opts.appLogoUrl]
21
+ : undefined;
22
+ }
23
+ isInstalledOnBrowser() {
24
+ return false;
25
+ }
26
+ filter() {
27
+ return super.filter() && !argentMobile.isInArgentMobileAppBrowser();
28
+ }
29
+ prompt(options) {
30
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
31
+ const { connectorData, wallet } = yield starknetkit.connect({
32
+ connectors: [
33
+ new argentMobile.ArgentMobileBaseConnector({
34
+ chainId: this.getNetworkName() || starknet.constants.NetworkName.SN_MAIN,
35
+ dappName: this.appName,
36
+ icons: this.appLogoUrls,
37
+ projectId: this.projectId,
38
+ rpcUrl: this.getNodeUrl(),
39
+ url: window.location.hostname,
40
+ }),
41
+ ],
42
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
43
+ });
44
+ return {
45
+ data: {
46
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
47
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
48
+ },
49
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
50
+ };
51
+ });
52
+ }
53
+ getNetworkName() {
54
+ const [network] = this.starknetNetworks;
55
+ if (!network) {
56
+ return undefined;
57
+ }
58
+ return this.mapChainIdToNetworkName(network.chainId);
59
+ }
60
+ getNodeUrl() {
61
+ var _a;
62
+ const [network] = this.starknetNetworks;
63
+ if (!network) {
64
+ return undefined;
65
+ }
66
+ return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
67
+ }
68
+ }
69
+
70
+ exports.ArgentMobile = ArgentMobile;
@@ -0,0 +1,16 @@
1
+ import { PromptOptions, PromptResult } from '../../../types';
2
+ import { ArgentBase } from '../base';
3
+ export declare class ArgentMobile extends ArgentBase {
4
+ private projectId;
5
+ private appName;
6
+ private appLogoUrls;
7
+ canConnectViaCustodialService: boolean;
8
+ overrideKey: string;
9
+ constructor(opts: any);
10
+ isInstalledOnBrowser(): boolean;
11
+ filter(): boolean;
12
+ prompt(options: PromptOptions): Promise<PromptResult>;
13
+ private getNetworkName;
14
+ private getNodeUrl;
15
+ }
16
+ export type ArgentMobileWalletConnectorType = ArgentMobile;
@@ -0,0 +1,66 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { connect } from 'starknetkit';
4
+ import { isInArgentMobileAppBrowser, ArgentMobileBaseConnector } from 'starknetkit/argentMobile';
5
+ import { constants } from 'starknet';
6
+ import { ArgentBase } from '../base.js';
7
+
8
+ class ArgentMobile extends ArgentBase {
9
+ constructor(opts) {
10
+ super('Argent X - Mobile', 'argentXMobile', opts);
11
+ this.canConnectViaCustodialService = true;
12
+ this.overrideKey = 'argentxmobile';
13
+ this.projectId = opts.projectId;
14
+ this.appName = opts.appName;
15
+ this.appLogoUrls = opts.appLogoUrl
16
+ ? [opts.appLogoUrl]
17
+ : undefined;
18
+ }
19
+ isInstalledOnBrowser() {
20
+ return false;
21
+ }
22
+ filter() {
23
+ return super.filter() && !isInArgentMobileAppBrowser();
24
+ }
25
+ prompt(options) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const { connectorData, wallet } = yield connect({
28
+ connectors: [
29
+ new ArgentMobileBaseConnector({
30
+ chainId: this.getNetworkName() || constants.NetworkName.SN_MAIN,
31
+ dappName: this.appName,
32
+ icons: this.appLogoUrls,
33
+ projectId: this.projectId,
34
+ rpcUrl: this.getNodeUrl(),
35
+ url: window.location.hostname,
36
+ }),
37
+ ],
38
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
39
+ });
40
+ return {
41
+ data: {
42
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
43
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
44
+ },
45
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
46
+ };
47
+ });
48
+ }
49
+ getNetworkName() {
50
+ const [network] = this.starknetNetworks;
51
+ if (!network) {
52
+ return undefined;
53
+ }
54
+ return this.mapChainIdToNetworkName(network.chainId);
55
+ }
56
+ getNodeUrl() {
57
+ var _a;
58
+ const [network] = this.starknetNetworks;
59
+ if (!network) {
60
+ return undefined;
61
+ }
62
+ return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
63
+ }
64
+ }
65
+
66
+ export { ArgentMobile };
@@ -0,0 +1,50 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var starknetkit = require('starknetkit');
8
+ var StarknetWalletConnector = require('../../StarknetWalletConnector.cjs');
9
+
10
+ class ArgentBase extends StarknetWalletConnector.StarknetWalletConnector {
11
+ getConnectedAccounts() {
12
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
13
+ var _a;
14
+ if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
15
+ return [this.walletData.account];
16
+ }
17
+ let data;
18
+ let wallet;
19
+ this.logger.debug('[getConnectedAccounts] No existing account, attempting to silently connect');
20
+ try {
21
+ ({ data, wallet } = yield this.prompt({
22
+ silently: true,
23
+ }));
24
+ }
25
+ catch (error) {
26
+ this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
27
+ return [];
28
+ }
29
+ this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
30
+ if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
31
+ return [];
32
+ }
33
+ this.walletData = data;
34
+ this.wallet = wallet;
35
+ this.setupEventListeners();
36
+ return [data.account];
37
+ });
38
+ }
39
+ endSession() {
40
+ const _super = Object.create(null, {
41
+ endSession: { get: () => super.endSession }
42
+ });
43
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
44
+ yield _super.endSession.call(this);
45
+ yield starknetkit.disconnect();
46
+ });
47
+ }
48
+ }
49
+
50
+ exports.ArgentBase = ArgentBase;
@@ -0,0 +1,5 @@
1
+ import { StarknetWalletConnector } from '../../StarknetWalletConnector';
2
+ export declare abstract class ArgentBase extends StarknetWalletConnector {
3
+ getConnectedAccounts(): Promise<string[]>;
4
+ endSession(): Promise<void>;
5
+ }
@@ -0,0 +1,46 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { disconnect } from 'starknetkit';
4
+ import { StarknetWalletConnector } from '../../StarknetWalletConnector.js';
5
+
6
+ class ArgentBase extends StarknetWalletConnector {
7
+ getConnectedAccounts() {
8
+ return __awaiter(this, void 0, void 0, function* () {
9
+ var _a;
10
+ if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
11
+ return [this.walletData.account];
12
+ }
13
+ let data;
14
+ let wallet;
15
+ this.logger.debug('[getConnectedAccounts] No existing account, attempting to silently connect');
16
+ try {
17
+ ({ data, wallet } = yield this.prompt({
18
+ silently: true,
19
+ }));
20
+ }
21
+ catch (error) {
22
+ this.logger.debug(`[getConnectedAccounts] Silent connect errored out: ${error}`);
23
+ return [];
24
+ }
25
+ this.logger.debug(`[getConnectedAccounts] Connect returned account: ${data === null || data === void 0 ? void 0 : data.account}`);
26
+ if (!(data === null || data === void 0 ? void 0 : data.account) || !wallet) {
27
+ return [];
28
+ }
29
+ this.walletData = data;
30
+ this.wallet = wallet;
31
+ this.setupEventListeners();
32
+ return [data.account];
33
+ });
34
+ }
35
+ endSession() {
36
+ const _super = Object.create(null, {
37
+ endSession: { get: () => super.endSession }
38
+ });
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ yield _super.endSession.call(this);
41
+ yield disconnect();
42
+ });
43
+ }
44
+ }
45
+
46
+ export { ArgentBase };
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var starknetkit = require('starknetkit');
8
+ var injected = require('starknetkit/injected');
9
+ var base = require('../base.cjs');
10
+
11
+ class ArgentX extends base.ArgentBase {
12
+ constructor(opts) {
13
+ super('Argent X', 'argentX', opts);
14
+ this.overrideKey = 'argentx';
15
+ }
16
+ prompt() {
17
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
18
+ const { connectorData, wallet } = yield starknetkit.connect({
19
+ connectors: [new injected.InjectedConnector({ options: { id: this.id } })],
20
+ modalMode: 'canAsk',
21
+ });
22
+ return {
23
+ data: {
24
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
25
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
26
+ },
27
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
28
+ };
29
+ });
30
+ }
31
+ }
32
+
33
+ exports.ArgentX = ArgentX;
@@ -0,0 +1,8 @@
1
+ import { PromptResult } from '../../../types';
2
+ import { ArgentBase } from '../base';
3
+ export declare class ArgentX extends ArgentBase {
4
+ overrideKey: string;
5
+ constructor(opts: any);
6
+ prompt(): Promise<PromptResult>;
7
+ }
8
+ export type ArgentXWalletConnectorType = ArgentX;
@@ -0,0 +1,29 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { connect } from 'starknetkit';
4
+ import { InjectedConnector } from 'starknetkit/injected';
5
+ import { ArgentBase } from '../base.js';
6
+
7
+ class ArgentX extends ArgentBase {
8
+ constructor(opts) {
9
+ super('Argent X', 'argentX', opts);
10
+ this.overrideKey = 'argentx';
11
+ }
12
+ prompt() {
13
+ return __awaiter(this, void 0, void 0, function* () {
14
+ const { connectorData, wallet } = yield connect({
15
+ connectors: [new InjectedConnector({ options: { id: this.id } })],
16
+ modalMode: 'canAsk',
17
+ });
18
+ return {
19
+ data: {
20
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
21
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
22
+ },
23
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
24
+ };
25
+ });
26
+ }
27
+ }
28
+
29
+ export { ArgentX };
@@ -0,0 +1,37 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var starknetkit = require('starknetkit');
8
+ var webwallet = require('starknetkit/webwallet');
9
+ var base = require('../base.cjs');
10
+
11
+ class WebWallet extends base.ArgentBase {
12
+ constructor(opts) {
13
+ super('Argent X - Web', 'argentWebWallet', opts);
14
+ this.overrideKey = 'argentxweb';
15
+ this.canConnectViaCustodialService = true;
16
+ }
17
+ isInstalledOnBrowser() {
18
+ return false;
19
+ }
20
+ prompt(options) {
21
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
22
+ const { connectorData, wallet } = yield starknetkit.connect({
23
+ connectors: [new webwallet.WebWalletConnector({ url: 'https://web.argent.xyz' })],
24
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
25
+ });
26
+ return {
27
+ data: {
28
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
29
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
30
+ },
31
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
32
+ };
33
+ });
34
+ }
35
+ }
36
+
37
+ exports.WebWallet = WebWallet;
@@ -0,0 +1,10 @@
1
+ import { PromptOptions, PromptResult } from '../../../types';
2
+ import { ArgentBase } from '../base';
3
+ export declare class WebWallet extends ArgentBase {
4
+ overrideKey: string;
5
+ canConnectViaCustodialService: boolean;
6
+ constructor(opts: any);
7
+ isInstalledOnBrowser(): boolean;
8
+ prompt(options: PromptOptions): Promise<PromptResult>;
9
+ }
10
+ export type WebWalletConnectorType = WebWallet;
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { connect } from 'starknetkit';
4
+ import { WebWalletConnector } from 'starknetkit/webwallet';
5
+ import { ArgentBase } from '../base.js';
6
+
7
+ class WebWallet extends ArgentBase {
8
+ constructor(opts) {
9
+ super('Argent X - Web', 'argentWebWallet', opts);
10
+ this.overrideKey = 'argentxweb';
11
+ this.canConnectViaCustodialService = true;
12
+ }
13
+ isInstalledOnBrowser() {
14
+ return false;
15
+ }
16
+ prompt(options) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const { connectorData, wallet } = yield connect({
19
+ connectors: [new WebWalletConnector({ url: 'https://web.argent.xyz' })],
20
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
21
+ });
22
+ return {
23
+ data: {
24
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
25
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
26
+ },
27
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
28
+ };
29
+ });
30
+ }
31
+ }
32
+
33
+ export { WebWallet };
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var injected = require('./injected.cjs');
7
+
8
+ const filteredStarknetWalletKeysOverrides = [
9
+ // TODO(starknet-v6): Remove once these wallets support v6
10
+ 'bitgetstarknet',
11
+ ];
12
+ const fetchStarknetInjectedWalletConnectors = ({ walletBook, }) => {
13
+ var _a;
14
+ return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
15
+ .filter(([key, wallet]) => {
16
+ var _a;
17
+ return ((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'starknet')) &&
18
+ !filteredStarknetWalletKeysOverrides.includes(key);
19
+ })
20
+ .map(([key, wallet]) => {
21
+ var _a, _b, _c;
22
+ const name = wallet.shortName || wallet.name;
23
+ const walletConnectorFallback = Boolean(wallet.walletConnect);
24
+ const id = (_c = (_b = (_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a[0].windowLocations) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : key;
25
+ return class extends injected.Injected {
26
+ constructor(props) {
27
+ super(name, id, Object.assign({ name, overrideKey: key, walletBookWallet: wallet, walletConnectorFallback }, props));
28
+ }
29
+ };
30
+ });
31
+ };
32
+
33
+ exports.fetchStarknetInjectedWalletConnectors = fetchStarknetInjectedWalletConnectors;
@@ -0,0 +1,5 @@
1
+ import { WalletConnectorConstructor } from '@dynamic-labs/wallet-connector-core';
2
+ import { WalletBookSchema } from '@dynamic-labs/wallet-book';
3
+ export declare const fetchStarknetInjectedWalletConnectors: ({ walletBook, }: {
4
+ walletBook: WalletBookSchema;
5
+ }) => WalletConnectorConstructor[];
@@ -0,0 +1,29 @@
1
+ 'use client'
2
+ import { Injected } from './injected.js';
3
+
4
+ const filteredStarknetWalletKeysOverrides = [
5
+ // TODO(starknet-v6): Remove once these wallets support v6
6
+ 'bitgetstarknet',
7
+ ];
8
+ const fetchStarknetInjectedWalletConnectors = ({ walletBook, }) => {
9
+ var _a;
10
+ return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
11
+ .filter(([key, wallet]) => {
12
+ var _a;
13
+ return ((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'starknet')) &&
14
+ !filteredStarknetWalletKeysOverrides.includes(key);
15
+ })
16
+ .map(([key, wallet]) => {
17
+ var _a, _b, _c;
18
+ const name = wallet.shortName || wallet.name;
19
+ const walletConnectorFallback = Boolean(wallet.walletConnect);
20
+ const id = (_c = (_b = (_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a[0].windowLocations) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : key;
21
+ return class extends Injected {
22
+ constructor(props) {
23
+ super(name, id, Object.assign({ name, overrideKey: key, walletBookWallet: wallet, walletConnectorFallback }, props));
24
+ }
25
+ };
26
+ });
27
+ };
28
+
29
+ export { fetchStarknetInjectedWalletConnectors };