@dynamic-labs/starknet 4.0.0-alpha.3 → 4.0.0-alpha.30

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 +254 -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 +14 -13
  9. package/src/index.d.ts +15 -7
  10. package/src/index.js +13 -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 +73 -0
  20. package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
  21. package/src/wallets/argent/argentMobile/argentMobile.js +69 -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 +34 -0
  32. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
  33. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +30 -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
@@ -1,100 +0,0 @@
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 walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
11
- var argentxBase = require('./argentxBase.cjs');
12
-
13
- class ArgentXMobile extends argentxBase {
14
- constructor(opts) {
15
- super('Argent X - Mobile', 'argentXMobile', opts);
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
- filter() {
24
- if (super.filter()) {
25
- return !argentMobile.isInArgentMobileAppBrowser();
26
- }
27
- return false;
28
- }
29
- connect() {
30
- return _tslib.__awaiter(this, void 0, void 0, function* () {
31
- try {
32
- const nodeUrl = this.getSelectedNodeUrl();
33
- const wallet = yield this.getWallet();
34
- let connection;
35
- if (this.hasValidSession()) {
36
- if (wallet && wallet.isConnected) {
37
- return Promise.resolve();
38
- }
39
- else {
40
- connection = yield starknetkit.connect({
41
- modalMode: 'neverAsk',
42
- provider: new starknet.RpcProvider({ nodeUrl }),
43
- });
44
- }
45
- // No valid session
46
- }
47
- else {
48
- connection = yield starknetkit.connect({
49
- connectors: [
50
- new argentMobile.ArgentMobileConnector({
51
- chainId: this.getSelectedNetworkName() || starknet.constants.NetworkName.SN_MAIN,
52
- dappName: this.appName,
53
- icons: this.appLogoUrls,
54
- projectId: this.projectId,
55
- provider: new starknet.RpcProvider({
56
- nodeUrl,
57
- }),
58
- url: window.location.hostname,
59
- }),
60
- ],
61
- });
62
- }
63
- if (connection && connection.wallet && connection.wallet.isConnected) {
64
- this.wallet = connection.wallet;
65
- }
66
- else {
67
- throw new Error('Failed to connect to Starknet');
68
- }
69
- }
70
- catch (err) {
71
- walletConnectorCore.logger.error('Error establishing connection to Argent Mobile', err);
72
- return;
73
- }
74
- });
75
- }
76
- getConnectedAccounts() {
77
- return _tslib.__awaiter(this, void 0, void 0, function* () {
78
- if (!this.hasValidSession()) {
79
- return [];
80
- }
81
- const address = yield this.getAddress();
82
- if (!address)
83
- return [];
84
- return [address];
85
- });
86
- }
87
- hasValidSession() {
88
- var _a, _b;
89
- const sessionItem = localStorage.getItem('wc@2:client:0.3//session');
90
- if (sessionItem) {
91
- const sessionItemJson = JSON.parse(sessionItem);
92
- if ((_b = (_a = sessionItemJson[0].peer) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.name.includes('Argent')) {
93
- return true;
94
- }
95
- }
96
- return false;
97
- }
98
- }
99
-
100
- exports.ArgentXMobile = ArgentXMobile;
@@ -1,13 +0,0 @@
1
- import ArgentXBase from './argentxBase';
2
- export declare class ArgentXMobile extends ArgentXBase {
3
- projectId: string | undefined;
4
- appName: string | undefined;
5
- appLogoUrls: string[] | undefined;
6
- overrideKey: string;
7
- constructor(opts: any);
8
- filter(): boolean;
9
- connect(): Promise<void>;
10
- getConnectedAccounts(): Promise<string[]>;
11
- hasValidSession(): boolean;
12
- }
13
- export type ArgentXMobileWalletConnectorType = ArgentXMobile;
@@ -1,96 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { connect } from 'starknetkit';
4
- import { isInArgentMobileAppBrowser, ArgentMobileConnector } from 'starknetkit/argentMobile';
5
- import { RpcProvider, constants } from 'starknet';
6
- import { logger } from '@dynamic-labs/wallet-connector-core';
7
- import ArgentXBase from './argentxBase.js';
8
-
9
- class ArgentXMobile extends ArgentXBase {
10
- constructor(opts) {
11
- super('Argent X - Mobile', 'argentXMobile', opts);
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
- filter() {
20
- if (super.filter()) {
21
- return !isInArgentMobileAppBrowser();
22
- }
23
- return false;
24
- }
25
- connect() {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- try {
28
- const nodeUrl = this.getSelectedNodeUrl();
29
- const wallet = yield this.getWallet();
30
- let connection;
31
- if (this.hasValidSession()) {
32
- if (wallet && wallet.isConnected) {
33
- return Promise.resolve();
34
- }
35
- else {
36
- connection = yield connect({
37
- modalMode: 'neverAsk',
38
- provider: new RpcProvider({ nodeUrl }),
39
- });
40
- }
41
- // No valid session
42
- }
43
- else {
44
- connection = yield connect({
45
- connectors: [
46
- new ArgentMobileConnector({
47
- chainId: this.getSelectedNetworkName() || constants.NetworkName.SN_MAIN,
48
- dappName: this.appName,
49
- icons: this.appLogoUrls,
50
- projectId: this.projectId,
51
- provider: new RpcProvider({
52
- nodeUrl,
53
- }),
54
- url: window.location.hostname,
55
- }),
56
- ],
57
- });
58
- }
59
- if (connection && connection.wallet && connection.wallet.isConnected) {
60
- this.wallet = connection.wallet;
61
- }
62
- else {
63
- throw new Error('Failed to connect to Starknet');
64
- }
65
- }
66
- catch (err) {
67
- logger.error('Error establishing connection to Argent Mobile', err);
68
- return;
69
- }
70
- });
71
- }
72
- getConnectedAccounts() {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- if (!this.hasValidSession()) {
75
- return [];
76
- }
77
- const address = yield this.getAddress();
78
- if (!address)
79
- return [];
80
- return [address];
81
- });
82
- }
83
- hasValidSession() {
84
- var _a, _b;
85
- const sessionItem = localStorage.getItem('wc@2:client:0.3//session');
86
- if (sessionItem) {
87
- const sessionItemJson = JSON.parse(sessionItem);
88
- if ((_b = (_a = sessionItemJson[0].peer) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.name.includes('Argent')) {
89
- return true;
90
- }
91
- }
92
- return false;
93
- }
94
- }
95
-
96
- export { ArgentXMobile };
@@ -1,57 +0,0 @@
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 starknet = require('starknet');
10
- var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
11
- var argentxBase = require('./argentxBase.cjs');
12
-
13
- class ArgentXWeb extends argentxBase {
14
- constructor(opts) {
15
- super('Argent X - Web', 'argentWebWallet', opts);
16
- this.overrideKey = 'argentxweb';
17
- }
18
- connect() {
19
- return _tslib.__awaiter(this, void 0, void 0, function* () {
20
- try {
21
- const nodeUrl = this.getSelectedNodeUrl();
22
- const wallet = yield this.getWallet();
23
- if (wallet && wallet.isConnected) {
24
- return;
25
- }
26
- else {
27
- const connection = yield starknetkit.connect({
28
- connectors: [
29
- new webwallet.WebWalletConnector({
30
- provider: new starknet.RpcProvider({
31
- nodeUrl,
32
- }),
33
- url: 'https://web.argent.xyz',
34
- }),
35
- ],
36
- });
37
- if (connection && connection.wallet && connection.wallet.isConnected) {
38
- this.wallet = connection.wallet;
39
- }
40
- }
41
- }
42
- catch (err) {
43
- walletConnectorCore.logger.error('Error establishing connection to Argent Web Wallet', err);
44
- }
45
- });
46
- }
47
- getConnectedAccounts() {
48
- return _tslib.__awaiter(this, void 0, void 0, function* () {
49
- const address = yield this.getAddress();
50
- if (!address)
51
- return [];
52
- return [address];
53
- });
54
- }
55
- }
56
-
57
- exports.ArgentXWeb = ArgentXWeb;
@@ -1,8 +0,0 @@
1
- import ArgentXBase from './argentxBase';
2
- export declare class ArgentXWeb extends ArgentXBase {
3
- overrideKey: string;
4
- constructor(opts: any);
5
- connect(): Promise<void>;
6
- getConnectedAccounts(): Promise<string[]>;
7
- }
8
- export type ArgentXWebWalletConnectorType = ArgentXWeb;
@@ -1,53 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { connect } from 'starknetkit';
4
- import { WebWalletConnector } from 'starknetkit/webwallet';
5
- import { RpcProvider } from 'starknet';
6
- import { logger } from '@dynamic-labs/wallet-connector-core';
7
- import ArgentXBase from './argentxBase.js';
8
-
9
- class ArgentXWeb extends ArgentXBase {
10
- constructor(opts) {
11
- super('Argent X - Web', 'argentWebWallet', opts);
12
- this.overrideKey = 'argentxweb';
13
- }
14
- connect() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- try {
17
- const nodeUrl = this.getSelectedNodeUrl();
18
- const wallet = yield this.getWallet();
19
- if (wallet && wallet.isConnected) {
20
- return;
21
- }
22
- else {
23
- const connection = yield connect({
24
- connectors: [
25
- new WebWalletConnector({
26
- provider: new RpcProvider({
27
- nodeUrl,
28
- }),
29
- url: 'https://web.argent.xyz',
30
- }),
31
- ],
32
- });
33
- if (connection && connection.wallet && connection.wallet.isConnected) {
34
- this.wallet = connection.wallet;
35
- }
36
- }
37
- }
38
- catch (err) {
39
- logger.error('Error establishing connection to Argent Web Wallet', err);
40
- }
41
- });
42
- }
43
- getConnectedAccounts() {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- const address = yield this.getAddress();
46
- if (!address)
47
- return [];
48
- return [address];
49
- });
50
- }
51
- }
52
-
53
- export { ArgentXWeb };
@@ -1,22 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var starknetWalletConnector = require('../starknetWalletConnector.cjs');
7
-
8
- class Bitget extends starknetWalletConnector["default"] {
9
- constructor(opts) {
10
- super('Bitget Starknet', 'bitkeep', opts);
11
- this.overrideKey = 'bitgetstarknet';
12
- }
13
- // adding this method due to inconsistencies in isConnected flag on the window object
14
- // the window object shows isConnected=true and no provider/account defined
15
- isProviderConnected() {
16
- var _a;
17
- const wallet = this.getWallet();
18
- return (_a = (Boolean(wallet === null || wallet === void 0 ? void 0 : wallet.account) && (wallet === null || wallet === void 0 ? void 0 : wallet.isConnected))) !== null && _a !== void 0 ? _a : false;
19
- }
20
- }
21
-
22
- exports.Bitget = Bitget;
@@ -1,7 +0,0 @@
1
- import type { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
- import StarknetProvider from '../starknetWalletConnector';
3
- export declare class Bitget extends StarknetProvider implements WalletConnectorBase {
4
- overrideKey: string;
5
- constructor(opts: any);
6
- isProviderConnected(): boolean;
7
- }
@@ -1,18 +0,0 @@
1
- 'use client'
2
- import StarknetWalletConnector from '../starknetWalletConnector.js';
3
-
4
- class Bitget extends StarknetWalletConnector {
5
- constructor(opts) {
6
- super('Bitget Starknet', 'bitkeep', opts);
7
- this.overrideKey = 'bitgetstarknet';
8
- }
9
- // adding this method due to inconsistencies in isConnected flag on the window object
10
- // the window object shows isConnected=true and no provider/account defined
11
- isProviderConnected() {
12
- var _a;
13
- const wallet = this.getWallet();
14
- return (_a = (Boolean(wallet === null || wallet === void 0 ? void 0 : wallet.account) && (wallet === null || wallet === void 0 ? void 0 : wallet.isConnected))) !== null && _a !== void 0 ? _a : false;
15
- }
16
- }
17
-
18
- export { Bitget };
@@ -1,37 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../_virtual/_tslib.cjs');
7
- var utils = require('@dynamic-labs/utils');
8
- var starknetWalletConnector = require('../starknetWalletConnector.cjs');
9
-
10
- class Braavos extends starknetWalletConnector["default"] {
11
- constructor(opts) {
12
- super('Braavos', 'braavos', opts);
13
- this.overrideKey = 'braavos';
14
- }
15
- getAddress() {
16
- const _super = Object.create(null, {
17
- getAddress: { get: () => super.getAddress }
18
- });
19
- return _tslib.__awaiter(this, void 0, void 0, function* () {
20
- if (this.isInstalledOnBrowser()) {
21
- return _super.getAddress.call(this);
22
- }
23
- /**
24
- * todo (1): update universal link with "https://starknet.app.link/" once it will be released.
25
- * todo (2): understand if we really want to avoid using "starknet-deeplink" library.
26
- */
27
- const url = window.location.toString().replace(/http(s)?:\/\//, '');
28
- const targetUrl = `starknet://dapp/${url}`;
29
- if (utils.isMobile()) {
30
- window.location.assign(targetUrl);
31
- }
32
- return Promise.resolve(undefined);
33
- });
34
- }
35
- }
36
-
37
- exports.Braavos = Braavos;
@@ -1,8 +0,0 @@
1
- import type { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
- import StarknetProvider from '../starknetWalletConnector';
3
- export declare class Braavos extends StarknetProvider implements WalletConnectorBase {
4
- overrideKey: string;
5
- constructor(opts: any);
6
- getAddress(): Promise<string | undefined>;
7
- }
8
- export type BraavosWalletConnectorType = Braavos;
@@ -1,33 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { isMobile } from '@dynamic-labs/utils';
4
- import StarknetWalletConnector from '../starknetWalletConnector.js';
5
-
6
- class Braavos extends StarknetWalletConnector {
7
- constructor(opts) {
8
- super('Braavos', 'braavos', opts);
9
- this.overrideKey = 'braavos';
10
- }
11
- getAddress() {
12
- const _super = Object.create(null, {
13
- getAddress: { get: () => super.getAddress }
14
- });
15
- return __awaiter(this, void 0, void 0, function* () {
16
- if (this.isInstalledOnBrowser()) {
17
- return _super.getAddress.call(this);
18
- }
19
- /**
20
- * todo (1): update universal link with "https://starknet.app.link/" once it will be released.
21
- * todo (2): understand if we really want to avoid using "starknet-deeplink" library.
22
- */
23
- const url = window.location.toString().replace(/http(s)?:\/\//, '');
24
- const targetUrl = `starknet://dapp/${url}`;
25
- if (isMobile()) {
26
- window.location.assign(targetUrl);
27
- }
28
- return Promise.resolve(undefined);
29
- });
30
- }
31
- }
32
-
33
- export { Braavos };
@@ -1,121 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../_virtual/_tslib.cjs');
7
- var utils = require('@dynamic-labs/utils');
8
- var logger$1 = require('@dynamic-labs/logger');
9
- var starknetWalletConnector = require('../starknetWalletConnector.cjs');
10
- var starknetSnap = require('../utils/starknetSnap.cjs');
11
-
12
- const logger = new logger$1.Logger('MetaMask Starknet Snap', logger$1.LogLevel.INFO);
13
- class MetaMask extends starknetWalletConnector["default"] {
14
- constructor(opts) {
15
- super('MetaMask Starknet', 'metamask_snap', opts);
16
- this.overrideKey = 'metamaskstarknet';
17
- const { providers } = utils.Eip6963ProviderSingleton.get();
18
- const metamaskProvider = providers.find((p) => ['io.metamask', 'io.metamask.flask'].includes(p.info.rdns));
19
- if (metamaskProvider) {
20
- this.provider = metamaskProvider.provider;
21
- }
22
- if (!window.starknet_metamask_snap && metamaskProvider) {
23
- window.starknet_metamask_snap = starknetSnap.createMetaMaskProviderWrapper(metamaskProvider.provider);
24
- }
25
- }
26
- getNetwork() {
27
- return _tslib.__awaiter(this, void 0, void 0, function* () {
28
- if (!this.provider) {
29
- logger.error('[getNetwork] - No provider found, returning undefined');
30
- return undefined;
31
- }
32
- try {
33
- logger.info('[getNetwork] - trying to fetch network using provider');
34
- // we are using this method to get the network so that we always "see" the absolute
35
- // active network in the companion site. when using the snap wrapper to get the network,
36
- // we don't "see" the actual active network in the companion site – instead we see the
37
- // network that was active at the time of the snap initialization
38
- const result = yield this.provider.request({
39
- method: 'wallet_invokeSnap',
40
- params: {
41
- request: {
42
- method: 'starkNet_getCurrentNetwork',
43
- params: {},
44
- },
45
- snapId: 'npm:@consensys/starknet-snap',
46
- },
47
- });
48
- if (!('chainId' in result) || typeof result.chainId !== 'string') {
49
- logger.error(`[getNetwork] - result.chainId should be a string, but got: ${
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- result.chainId}`);
52
- return undefined;
53
- }
54
- if (result.chainId !== this.currentChainId) {
55
- const resultChainName = this.mapChainIdToNetworkName(result.chainId);
56
- const currentChainName = this.currentChainId
57
- ? this.mapChainIdToNetworkName(this.currentChainId)
58
- : undefined;
59
- logger.info(`[getNetwork] - emitting chainChange event. got chainId: ${result.chainId} (${resultChainName}). current chainId: ${this.currentChainId} (${currentChainName})`);
60
- this.emit('chainChange', { chain: result.chainId });
61
- }
62
- this.currentChainId = result.chainId;
63
- return this.currentChainId;
64
- }
65
- catch (e) {
66
- logger.error('[getNetwork] - network fetch request failed, returning undefined', e);
67
- return undefined;
68
- }
69
- });
70
- }
71
- setupEventListeners() {
72
- if (this.intervalId) {
73
- return;
74
- }
75
- this.intervalId = setInterval(() => {
76
- this.getNetwork().then((chainId) => {
77
- if (!chainId) {
78
- return;
79
- }
80
- const resultChainName = this.mapChainIdToNetworkName(chainId);
81
- const currentChainName = this.currentChainId
82
- ? this.mapChainIdToNetworkName(this.currentChainId)
83
- : undefined;
84
- logger.info(`[setupEventListeners] - got network: ${chainId} (${resultChainName}). current network: ${this.currentChainId} (${currentChainName})`);
85
- if (chainId !== this.currentChainId) {
86
- logger.info(`[setupEventListeners] - emitting chainChange event: ${chainId}`);
87
- this.emit('chainChange', { chain: chainId });
88
- this.currentChainId = chainId;
89
- }
90
- });
91
- }, 5000);
92
- }
93
- teardownEventListeners() {
94
- return _tslib.__awaiter(this, void 0, void 0, function* () {
95
- clearInterval(this.intervalId);
96
- this.intervalId = undefined;
97
- });
98
- }
99
- endSession() {
100
- return _tslib.__awaiter(this, void 0, void 0, function* () {
101
- this.teardownEventListeners();
102
- });
103
- }
104
- getConnectedAccounts() {
105
- return _tslib.__awaiter(this, void 0, void 0, function* () {
106
- const wallet = this.getWallet();
107
- if (!wallet) {
108
- return [];
109
- }
110
- const isProviderConnected = this.isProviderConnected();
111
- const isPreauthorized = yield wallet.isPreauthorized();
112
- const shouldReconnect = !isProviderConnected && isPreauthorized;
113
- if (shouldReconnect) {
114
- yield this.connect();
115
- }
116
- return wallet.selectedAddress ? [wallet.selectedAddress] : [];
117
- });
118
- }
119
- }
120
-
121
- exports.MetaMask = MetaMask;