@dynamic-labs/starknet 4.0.0-alpha.26 → 4.0.0-alpha.28

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 (68) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -10
  5. package/src/StarknetWalletConnector.cjs +233 -0
  6. package/src/StarknetWalletConnector.d.ts +58 -0
  7. package/src/StarknetWalletConnector.js +229 -0
  8. package/src/getAvailableWallets.cjs +27 -0
  9. package/src/getAvailableWallets.d.ts +8 -0
  10. package/src/getAvailableWallets.js +21 -0
  11. package/src/index.cjs +12 -13
  12. package/src/index.d.ts +16 -7
  13. package/src/index.js +11 -13
  14. package/src/types.d.ts +26 -11
  15. package/src/utils/convertors.cjs +1 -1
  16. package/src/utils/convertors.d.ts +1 -1
  17. package/src/utils/convertors.js +1 -1
  18. package/src/utils/starknetSnap.d.ts +2 -2
  19. package/src/wallet/StarknetWallet.cjs +0 -3
  20. package/src/wallet/StarknetWallet.d.ts +4 -4
  21. package/src/wallet/StarknetWallet.js +0 -3
  22. package/src/wallets/argent/argentMobile/argentMobile.cjs +73 -0
  23. package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
  24. package/src/wallets/argent/argentMobile/argentMobile.js +69 -0
  25. package/src/wallets/argent/base.cjs +50 -0
  26. package/src/wallets/argent/base.d.ts +5 -0
  27. package/src/wallets/argent/base.js +46 -0
  28. package/src/wallets/argent/injected/argentx.cjs +33 -0
  29. package/src/wallets/argent/injected/argentx.d.ts +8 -0
  30. package/src/wallets/argent/injected/argentx.js +29 -0
  31. package/src/wallets/argent/webwallet/webwallet.cjs +37 -0
  32. package/src/wallets/argent/webwallet/webwallet.d.ts +10 -0
  33. package/src/wallets/argent/webwallet/webwallet.js +33 -0
  34. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.cjs +34 -0
  35. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
  36. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +30 -0
  37. package/src/wallets/injected/injected.cjs +138 -0
  38. package/src/wallets/injected/injected.d.ts +9 -0
  39. package/src/wallets/injected/injected.js +134 -0
  40. package/src/wallets/{metamask.d.ts → injected/metamask.d.ts} +2 -4
  41. package/src/starknetWalletConnector.cjs +0 -320
  42. package/src/starknetWalletConnector.d.ts +0 -128
  43. package/src/starknetWalletConnector.js +0 -314
  44. package/src/utils/starknetSnap.cjs +0 -92
  45. package/src/utils/starknetSnap.js +0 -88
  46. package/src/wallets/argentx.cjs +0 -24
  47. package/src/wallets/argentx.d.ts +0 -8
  48. package/src/wallets/argentx.js +0 -20
  49. package/src/wallets/argentxBase.cjs +0 -50
  50. package/src/wallets/argentxBase.d.ts +0 -16
  51. package/src/wallets/argentxBase.js +0 -48
  52. package/src/wallets/argentxMobile.cjs +0 -100
  53. package/src/wallets/argentxMobile.d.ts +0 -13
  54. package/src/wallets/argentxMobile.js +0 -96
  55. package/src/wallets/argentxWeb.cjs +0 -57
  56. package/src/wallets/argentxWeb.d.ts +0 -8
  57. package/src/wallets/argentxWeb.js +0 -53
  58. package/src/wallets/bitget.cjs +0 -22
  59. package/src/wallets/bitget.d.ts +0 -7
  60. package/src/wallets/bitget.js +0 -18
  61. package/src/wallets/braavos.cjs +0 -37
  62. package/src/wallets/braavos.d.ts +0 -8
  63. package/src/wallets/braavos.js +0 -33
  64. package/src/wallets/metamask.cjs +0 -121
  65. package/src/wallets/metamask.js +0 -117
  66. package/src/wallets/okx.cjs +0 -15
  67. package/src/wallets/okx.d.ts +0 -6
  68. package/src/wallets/okx.js +0 -11
package/src/index.cjs CHANGED
@@ -5,29 +5,28 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var assertPackageVersion = require('@dynamic-labs/assert-package-version');
7
7
  var _package = require('../package.cjs');
8
- var argentx = require('./wallets/argentx.cjs');
9
- var braavos = require('./wallets/braavos.cjs');
10
- var argentxMobile = require('./wallets/argentxMobile.cjs');
11
- var argentxWeb = require('./wallets/argentxWeb.cjs');
12
- var bitget = require('./wallets/bitget.cjs');
13
- var okx = require('./wallets/okx.cjs');
14
- var metamask = require('./wallets/metamask.cjs');
8
+ var argentx = require('./wallets/argent/injected/argentx.cjs');
9
+ var argentMobile = require('./wallets/argent/argentMobile/argentMobile.cjs');
10
+ var webwallet = require('./wallets/argent/webwallet/webwallet.cjs');
11
+ var fetchStarknetInjectedWalletConnectors = require('./wallets/injected/fetchStarknetInjectedWalletConnectors.cjs');
12
+ require('./getAvailableWallets.cjs');
15
13
  require('@dynamic-labs/starknet-core');
16
14
  var StarknetWallet = require('./wallet/StarknetWallet.cjs');
17
15
  var isStarknetWallet = require('./wallet/isStarknetWallet/isStarknetWallet.cjs');
16
+ var StarknetWalletConnector = require('./StarknetWalletConnector.cjs');
18
17
 
19
18
  /* eslint-disable @typescript-eslint/no-unused-vars */
20
19
  assertPackageVersion.assertPackageVersion('@dynamic-labs/starknet', _package.version);
21
20
  const StarknetWalletConnectors = (props) => [
21
+ ...fetchStarknetInjectedWalletConnectors.fetchStarknetInjectedWalletConnectors(props),
22
22
  argentx.ArgentX,
23
- braavos.Braavos,
24
- argentxMobile.ArgentXMobile,
25
- argentxWeb.ArgentXWeb,
26
- okx.Okx,
27
- bitget.Bitget,
28
- metamask.MetaMask,
23
+ argentMobile.ArgentMobile,
24
+ webwallet.WebWallet,
25
+ // TODO(starknet-v6): Add these back once they support v6
26
+ // MetaMask,
29
27
  ];
30
28
 
31
29
  exports.StarknetWallet = StarknetWallet.StarknetWallet;
32
30
  exports.isStarknetWallet = isStarknetWallet.isStarknetWallet;
31
+ exports.StarknetWalletConnector = StarknetWalletConnector.StarknetWalletConnector;
33
32
  exports.StarknetWalletConnectors = StarknetWalletConnectors;
package/src/index.d.ts CHANGED
@@ -1,9 +1,18 @@
1
- import { ArgentX } from './wallets/argentx';
1
+ import { WebWallet } from './wallets/argent/webwallet/webwallet';
2
+ import type { ArgentMobileWalletConnectorType } from './wallets/argent/argentMobile/argentMobile';
3
+ import type { WebWalletConnectorType } from './wallets/argent/webwallet/webwallet';
4
+ import './getAvailableWallets';
2
5
  import '@dynamic-labs/starknet-core';
3
- export declare const StarknetWalletConnectors: (props: any) => (typeof ArgentX)[];
4
- export type { StarknetWalletConnectorType } from './starknetWalletConnector';
5
- export type { ArgentXWalletConnectorType } from './wallets/argentx';
6
- export type { BraavosWalletConnectorType } from './wallets/braavos';
7
- export type { ArgentXMobileWalletConnectorType } from './wallets/argentxMobile';
8
- export type { ArgentXWebWalletConnectorType } from './wallets/argentxWeb';
6
+ export declare const StarknetWalletConnectors: (props: any) => (import("dist/packages/wallet-connector-core/src").WalletConnectorConstructor | typeof WebWallet)[];
7
+ export type { StarknetWalletConnectorType } from './StarknetWalletConnector';
8
+ export type { ArgentXWalletConnectorType } from './wallets/argent/injected/argentx';
9
+ export type {
10
+ /** Deprecated. Use ArgentMobileWalletConnectorType */
11
+ ArgentMobileWalletConnectorType as ArgentXMobileWalletConnectorType, };
12
+ export type { ArgentMobileWalletConnectorType };
13
+ export type {
14
+ /** Deprecated. Use WebWalletConnectorType */
15
+ WebWalletConnectorType as ArgentXWebWalletConnectorType, };
16
+ export type { WebWalletConnectorType };
9
17
  export { StarknetWallet, isStarknetWallet } from './wallet';
18
+ export { StarknetWalletConnector } from './StarknetWalletConnector';
package/src/index.js CHANGED
@@ -1,27 +1,25 @@
1
1
  'use client'
2
2
  import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
3
3
  import { version } from '../package.js';
4
- import { ArgentX } from './wallets/argentx.js';
5
- import { Braavos } from './wallets/braavos.js';
6
- import { ArgentXMobile } from './wallets/argentxMobile.js';
7
- import { ArgentXWeb } from './wallets/argentxWeb.js';
8
- import { Bitget } from './wallets/bitget.js';
9
- import { Okx } from './wallets/okx.js';
10
- import { MetaMask } from './wallets/metamask.js';
4
+ import { ArgentX } from './wallets/argent/injected/argentx.js';
5
+ import { ArgentMobile } from './wallets/argent/argentMobile/argentMobile.js';
6
+ import { WebWallet } from './wallets/argent/webwallet/webwallet.js';
7
+ import { fetchStarknetInjectedWalletConnectors } from './wallets/injected/fetchStarknetInjectedWalletConnectors.js';
8
+ import './getAvailableWallets.js';
11
9
  import '@dynamic-labs/starknet-core';
12
10
  export { StarknetWallet } from './wallet/StarknetWallet.js';
13
11
  export { isStarknetWallet } from './wallet/isStarknetWallet/isStarknetWallet.js';
12
+ export { StarknetWalletConnector } from './StarknetWalletConnector.js';
14
13
 
15
14
  /* eslint-disable @typescript-eslint/no-unused-vars */
16
15
  assertPackageVersion('@dynamic-labs/starknet', version);
17
16
  const StarknetWalletConnectors = (props) => [
17
+ ...fetchStarknetInjectedWalletConnectors(props),
18
18
  ArgentX,
19
- Braavos,
20
- ArgentXMobile,
21
- ArgentXWeb,
22
- Okx,
23
- Bitget,
24
- MetaMask,
19
+ ArgentMobile,
20
+ WebWallet,
21
+ // TODO(starknet-v6): Add these back once they support v6
22
+ // MetaMask,
25
23
  ];
26
24
 
27
25
  export { StarknetWalletConnectors };
package/src/types.d.ts CHANGED
@@ -1,11 +1,26 @@
1
- import type { StarknetWindowObject } from 'get-starknet-core';
2
- export type StarknetWalletKey = 'braavos' | 'argentX' | 'argentXMobile' | 'argentWebWallet' | 'okxwallet' | 'bitkeep' | 'metamask_snap';
3
- export type StarknetWindowKey = `starknet_${StarknetWalletKey}` | 'starknet';
4
- type StarknetWindow = {
5
- [key in StarknetWindowKey]: StarknetWindowObject;
6
- };
7
- declare global {
8
- interface Window extends StarknetWindow {
9
- }
10
- }
11
- export {};
1
+ import { StarknetWindowObject } from '@starknet-io/types-js';
2
+ import { IChainRpcProviders } from '@dynamic-labs/rpc-providers';
3
+ import { NetworkConfiguration } from '@dynamic-labs/sdk-api-core';
4
+ import { WalletBookSchema, WalletSchema } from '@dynamic-labs/wallet-book';
5
+ import { WalletMetadata } from '@dynamic-labs/wallet-connector-core';
6
+ /** Models the currently active Starknet wallet data */
7
+ export type WalletData = {
8
+ account: string | undefined;
9
+ chainId: bigint | undefined;
10
+ };
11
+ /** Options to pass to the prompt call which triggers a connection to a wallet */
12
+ export type PromptOptions = {
13
+ /** Whether or not a wallet popup is desired */
14
+ silently: boolean;
15
+ };
16
+ export type PromptResult = {
17
+ wallet: StarknetWindowObject | undefined;
18
+ data: WalletData | undefined;
19
+ };
20
+ export type StarknetWalletConnectorProps = {
21
+ chainRpcProviders: IChainRpcProviders;
22
+ starknetNetworks: NetworkConfiguration[];
23
+ walletBook: WalletBookSchema;
24
+ walletBookWallet: WalletSchema;
25
+ metadata?: WalletMetadata;
26
+ };
@@ -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,73 @@
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
+ if (super.filter()) {
28
+ return !argentMobile.isInArgentMobileAppBrowser();
29
+ }
30
+ return false;
31
+ }
32
+ prompt(options) {
33
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
34
+ const { connectorData, wallet } = yield starknetkit.connect({
35
+ connectors: [
36
+ new argentMobile.ArgentMobileBaseConnector({
37
+ chainId: this.getNetworkName() || starknet.constants.NetworkName.SN_MAIN,
38
+ dappName: this.appName,
39
+ icons: this.appLogoUrls,
40
+ projectId: this.projectId,
41
+ rpcUrl: this.getNodeUrl(),
42
+ url: window.location.hostname,
43
+ }),
44
+ ],
45
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
46
+ });
47
+ return {
48
+ data: {
49
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
50
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
51
+ },
52
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
53
+ };
54
+ });
55
+ }
56
+ getNetworkName() {
57
+ const [network] = this.starknetNetworks;
58
+ if (!network) {
59
+ return undefined;
60
+ }
61
+ return this.mapChainIdToNetworkName(network.chainId);
62
+ }
63
+ getNodeUrl() {
64
+ var _a;
65
+ const [network] = this.starknetNetworks;
66
+ if (!network) {
67
+ return undefined;
68
+ }
69
+ return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
70
+ }
71
+ }
72
+
73
+ 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,69 @@
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
+ if (super.filter()) {
24
+ return !isInArgentMobileAppBrowser();
25
+ }
26
+ return false;
27
+ }
28
+ prompt(options) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const { connectorData, wallet } = yield connect({
31
+ connectors: [
32
+ new ArgentMobileBaseConnector({
33
+ chainId: this.getNetworkName() || constants.NetworkName.SN_MAIN,
34
+ dappName: this.appName,
35
+ icons: this.appLogoUrls,
36
+ projectId: this.projectId,
37
+ rpcUrl: this.getNodeUrl(),
38
+ url: window.location.hostname,
39
+ }),
40
+ ],
41
+ modalMode: options.silently ? 'neverAsk' : 'canAsk',
42
+ });
43
+ return {
44
+ data: {
45
+ account: connectorData === null || connectorData === void 0 ? void 0 : connectorData.account,
46
+ chainId: connectorData === null || connectorData === void 0 ? void 0 : connectorData.chainId,
47
+ },
48
+ wallet: wallet !== null && wallet !== void 0 ? wallet : undefined,
49
+ };
50
+ });
51
+ }
52
+ getNetworkName() {
53
+ const [network] = this.starknetNetworks;
54
+ if (!network) {
55
+ return undefined;
56
+ }
57
+ return this.mapChainIdToNetworkName(network.chainId);
58
+ }
59
+ getNodeUrl() {
60
+ var _a;
61
+ const [network] = this.starknetNetworks;
62
+ if (!network) {
63
+ return undefined;
64
+ }
65
+ return ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
66
+ }
67
+ }
68
+
69
+ 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 };