@dynamic-labs/starknet 1.1.0-alpha.12 → 1.1.0-alpha.13
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 +18 -0
- package/_virtual/_tslib.cjs +6 -1
- package/_virtual/_tslib.js +6 -1
- package/package.json +8 -7
- package/src/index.cjs +8 -1
- package/src/index.d.ts +3 -1
- package/src/index.js +8 -1
- package/src/starknetWalletConnector.cjs +22 -10
- package/src/starknetWalletConnector.d.ts +3 -2
- package/src/starknetWalletConnector.js +22 -10
- package/src/types.d.ts +1 -1
- package/src/utils/convertors.cjs +12 -2
- package/src/utils/convertors.js +12 -2
- package/src/wallets/argentxBase.cjs +48 -0
- package/src/wallets/argentxBase.d.ts +16 -0
- package/src/wallets/argentxBase.js +46 -0
- package/src/wallets/argentxMobile.cjs +92 -0
- package/src/wallets/argentxMobile.d.ts +11 -0
- package/src/wallets/argentxMobile.js +88 -0
- package/src/wallets/argentxWeb.cjs +55 -0
- package/src/wallets/argentxWeb.d.ts +7 -0
- package/src/wallets/argentxWeb.js +51 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
|
|
2
|
+
## [1.1.0-alpha.13](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.12...v1.1.0-alpha.13) (2024-01-23)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add createWalletClientFromWallet helper function ([#4416](https://github.com/dynamic-labs/DynamicAuth/issues/4416)) ([b384898](https://github.com/dynamic-labs/DynamicAuth/commit/b384898061bb3f9b38b2ed670b6650cfc1d4b429))
|
|
8
|
+
* add hardware wallets to wallet book ([#4445](https://github.com/dynamic-labs/DynamicAuth/issues/4445)) ([66c0f5b](https://github.com/dynamic-labs/DynamicAuth/commit/66c0f5b29a6a700099bb95a6f7622f6178e0bccf))
|
|
9
|
+
* add support for Argent Web and Mobile ([#4328](https://github.com/dynamic-labs/DynamicAuth/issues/4328)) ([bce20b8](https://github.com/dynamic-labs/DynamicAuth/commit/bce20b8f35a8630f2621f53a541a1acb06a38fc0))
|
|
10
|
+
* enable ledger for glow, solflare and backpack ([#4392](https://github.com/dynamic-labs/DynamicAuth/issues/4392)) ([fa7b992](https://github.com/dynamic-labs/DynamicAuth/commit/fa7b992f87ebc43560f87b43ac56f2cd9909b306))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* breaking changes script ([#4440](https://github.com/dynamic-labs/DynamicAuth/issues/4440)) ([446173d](https://github.com/dynamic-labs/DynamicAuth/commit/446173d074d652d81856c6412e304b46b1565320))
|
|
16
|
+
* broken help icon in create passkey view ([#4428](https://github.com/dynamic-labs/DynamicAuth/issues/4428)) ([e0ffc02](https://github.com/dynamic-labs/DynamicAuth/commit/e0ffc02ffea34b7ac3198ff6e1baf7f9907acddd))
|
|
17
|
+
* infinite loop when connecting with trust wallet ([#4448](https://github.com/dynamic-labs/DynamicAuth/issues/4448)) ([4e20edf](https://github.com/dynamic-labs/DynamicAuth/commit/4e20edf9abaabf20e5e9f9167b44d7f691e844f1))
|
|
18
|
+
* render wagmi elements based on react version ([#4453](https://github.com/dynamic-labs/DynamicAuth/issues/4453)) ([43c624c](https://github.com/dynamic-labs/DynamicAuth/commit/43c624ca996b0c51de1454910f19fdf908149938))
|
|
19
|
+
|
|
2
20
|
## [1.1.0-alpha.12](https://github.com/dynamic-labs/DynamicAuth/compare/v1.1.0-alpha.11...v1.1.0-alpha.12) (2024-01-18)
|
|
3
21
|
|
|
4
22
|
|
package/_virtual/_tslib.cjs
CHANGED
|
@@ -25,6 +25,11 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
25
25
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
26
26
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
27
27
|
});
|
|
28
|
-
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
31
|
+
var e = new Error(message);
|
|
32
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
33
|
+
};
|
|
29
34
|
|
|
30
35
|
exports.__awaiter = __awaiter;
|
package/_virtual/_tslib.js
CHANGED
|
@@ -21,6 +21,11 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
21
21
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
22
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
23
|
});
|
|
24
|
-
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
27
|
+
var e = new Error(message);
|
|
28
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
29
|
+
};
|
|
25
30
|
|
|
26
31
|
export { __awaiter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/starknet",
|
|
3
|
-
"version": "1.1.0-alpha.
|
|
3
|
+
"version": "1.1.0-alpha.13",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -29,12 +29,13 @@
|
|
|
29
29
|
"starknet": "^5.25.0",
|
|
30
30
|
"get-starknet-core": "^3.2.0",
|
|
31
31
|
"text-encoding": "0.7.0",
|
|
32
|
-
"
|
|
33
|
-
"@dynamic-labs/
|
|
34
|
-
"@dynamic-labs/
|
|
35
|
-
"@dynamic-labs/
|
|
36
|
-
"@dynamic-labs/
|
|
37
|
-
"@dynamic-labs/wallet-
|
|
32
|
+
"starknetkit": "1.1.3",
|
|
33
|
+
"@dynamic-labs/sdk-api": "0.0.352",
|
|
34
|
+
"@dynamic-labs/rpc-providers": "1.1.0-alpha.13",
|
|
35
|
+
"@dynamic-labs/types": "1.1.0-alpha.13",
|
|
36
|
+
"@dynamic-labs/utils": "1.1.0-alpha.13",
|
|
37
|
+
"@dynamic-labs/wallet-book": "1.1.0-alpha.13",
|
|
38
|
+
"@dynamic-labs/wallet-connector-core": "1.1.0-alpha.13"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {}
|
|
40
41
|
}
|
package/src/index.cjs
CHANGED
|
@@ -4,8 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var argentx = require('./wallets/argentx.cjs');
|
|
6
6
|
var braavos = require('./wallets/braavos.cjs');
|
|
7
|
+
var argentxMobile = require('./wallets/argentxMobile.cjs');
|
|
8
|
+
var argentxWeb = require('./wallets/argentxWeb.cjs');
|
|
7
9
|
|
|
8
10
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
9
|
-
const StarknetWalletConnectors = (props) => [
|
|
11
|
+
const StarknetWalletConnectors = (props) => [
|
|
12
|
+
argentx.ArgentX,
|
|
13
|
+
braavos.Braavos,
|
|
14
|
+
argentxMobile.ArgentXMobile,
|
|
15
|
+
argentxWeb.ArgentXWeb,
|
|
16
|
+
];
|
|
10
17
|
|
|
11
18
|
exports.StarknetWalletConnectors = StarknetWalletConnectors;
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ArgentX } from './wallets/argentx';
|
|
2
|
-
export declare const StarknetWalletConnectors: (props:
|
|
2
|
+
export declare const StarknetWalletConnectors: (props: any) => (typeof ArgentX)[];
|
|
3
3
|
export type { StarknetWalletConnectorType } from './starknetWalletConnector';
|
|
4
4
|
export type { ArgentXWalletConnectorType } from './wallets/argentx';
|
|
5
5
|
export type { BraavosWalletConnectorType } from './wallets/braavos';
|
|
6
|
+
export type { ArgentXMobileWalletConnectorType } from './wallets/argentxMobile';
|
|
7
|
+
export type { ArgentXWebWalletConnectorType } from './wallets/argentxWeb';
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { ArgentX } from './wallets/argentx.js';
|
|
2
2
|
import { Braavos } from './wallets/braavos.js';
|
|
3
|
+
import { ArgentXMobile } from './wallets/argentxMobile.js';
|
|
4
|
+
import { ArgentXWeb } from './wallets/argentxWeb.js';
|
|
3
5
|
|
|
4
6
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
5
|
-
const StarknetWalletConnectors = (props) => [
|
|
7
|
+
const StarknetWalletConnectors = (props) => [
|
|
8
|
+
ArgentX,
|
|
9
|
+
Braavos,
|
|
10
|
+
ArgentXMobile,
|
|
11
|
+
ArgentXWeb,
|
|
12
|
+
];
|
|
6
13
|
|
|
7
14
|
export { StarknetWalletConnectors };
|
|
@@ -14,11 +14,11 @@ var convertors = require('./utils/convertors.cjs');
|
|
|
14
14
|
|
|
15
15
|
const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
|
|
16
16
|
const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
|
|
17
|
-
const STARKNET_VERSION = 'v5';
|
|
18
17
|
class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
19
18
|
constructor(name, windowKey, opts) {
|
|
20
19
|
var _a;
|
|
21
20
|
super(opts);
|
|
21
|
+
this.STARKNET_VERSION = 'v5';
|
|
22
22
|
this.connectedChain = 'STARK';
|
|
23
23
|
this.supportedChains = ['STARK'];
|
|
24
24
|
this.switchNetworkOnlyFromWallet = true;
|
|
@@ -65,7 +65,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
* returns
|
|
68
|
+
* returns starknet wallet network id
|
|
69
69
|
*/
|
|
70
70
|
getNetwork() {
|
|
71
71
|
var _a;
|
|
@@ -75,7 +75,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
75
75
|
return Promise.resolve(undefined);
|
|
76
76
|
}
|
|
77
77
|
if (!wallet.isConnected) {
|
|
78
|
-
yield wallet.enable({ starknetVersion: STARKNET_VERSION });
|
|
78
|
+
yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
|
|
79
79
|
}
|
|
80
80
|
return Promise.resolve((_a = wallet.provider) === null || _a === void 0 ? void 0 : _a.getChainId());
|
|
81
81
|
});
|
|
@@ -85,7 +85,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
85
85
|
const wallet = this.getWallet();
|
|
86
86
|
try {
|
|
87
87
|
if (wallet && !wallet.isConnected) {
|
|
88
|
-
yield wallet.enable({ starknetVersion: STARKNET_VERSION });
|
|
88
|
+
yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
catch (err) {
|
|
@@ -96,11 +96,6 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
96
96
|
fetchPublicAddress() {
|
|
97
97
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
98
98
|
const wallet = this.getWallet();
|
|
99
|
-
/**
|
|
100
|
-
* Fetches public address. Uses `isPreauthorized` as a temporary solution to ensure
|
|
101
|
-
* the wallets store's data is read. Without it, an empty string may be returned due
|
|
102
|
-
* to a possible reliance on its side-effects for data refreshing.
|
|
103
|
-
*/
|
|
104
99
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
|
|
105
100
|
yield this.connect();
|
|
106
101
|
return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
|
|
@@ -120,8 +115,9 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
120
115
|
}
|
|
121
116
|
signMessage(messageToSign) {
|
|
122
117
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
|
|
118
|
+
// FetchPublicAddress also handles the connection to the wallet this is why we call it before getWallet.
|
|
124
119
|
const walletAddress = yield this.fetchPublicAddress();
|
|
120
|
+
const wallet = this.getWallet();
|
|
125
121
|
if (!walletAddress || !wallet) {
|
|
126
122
|
walletConnectorCore.logger.error('Could not fetch wallet address for signing message');
|
|
127
123
|
return undefined;
|
|
@@ -149,6 +145,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
149
145
|
return (Number(starknet.cairo.uint256(balance.low).low) / 1e18).toFixed(6);
|
|
150
146
|
}
|
|
151
147
|
catch (error) {
|
|
148
|
+
walletConnectorCore.logger.error(error);
|
|
152
149
|
throw new utils.DynamicError('Something went wrong');
|
|
153
150
|
}
|
|
154
151
|
});
|
|
@@ -250,6 +247,21 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
250
247
|
return undefined;
|
|
251
248
|
}
|
|
252
249
|
}
|
|
250
|
+
mapChainIdToNetworkName(chainId) {
|
|
251
|
+
if (chainId === starknet.constants.StarknetChainId.SN_MAIN) {
|
|
252
|
+
return starknet.constants.NetworkName.SN_MAIN;
|
|
253
|
+
}
|
|
254
|
+
else if (chainId === starknet.constants.StarknetChainId.SN_GOERLI) {
|
|
255
|
+
return starknet.constants.NetworkName.SN_GOERLI;
|
|
256
|
+
}
|
|
257
|
+
else if (chainId === starknet.constants.StarknetChainId.SN_SEPOLIA) {
|
|
258
|
+
return starknet.constants.NetworkName.SN_SEPOLIA;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
walletConnectorCore.logger.error('Unknown chainId', chainId);
|
|
262
|
+
return undefined;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
253
265
|
}
|
|
254
266
|
|
|
255
267
|
exports.ACCOUNT_CHANGED_EVENT_LISTENER = ACCOUNT_CHANGED_EVENT_LISTENER;
|
|
@@ -15,11 +15,11 @@ type NetworkChangeEventHandler = (network: {
|
|
|
15
15
|
export declare const ACCOUNT_CHANGED_EVENT_LISTENER = "accountsChanged";
|
|
16
16
|
export declare const NETWORK_CHANGED_EVENT_LISTENER = "networkChanged";
|
|
17
17
|
declare abstract class StarknetWalletConnector extends WalletConnectorBase {
|
|
18
|
+
STARKNET_VERSION: 'v5' | 'v4';
|
|
18
19
|
name: string;
|
|
19
20
|
windowKey: StarknetWalletKey;
|
|
20
21
|
connectedChain: Chain;
|
|
21
22
|
supportedChains: Chain[];
|
|
22
|
-
wallet: StarknetWindowObject | undefined;
|
|
23
23
|
handleAccountChange: AccountChangeEventHandler | undefined;
|
|
24
24
|
handleNetworkChange: NetworkChangeEventHandler | undefined;
|
|
25
25
|
switchNetworkOnlyFromWallet: boolean;
|
|
@@ -32,7 +32,7 @@ declare abstract class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
32
32
|
createProviderFromConfig(networks: GenericNetwork[]): StarknetRpcProvider[];
|
|
33
33
|
getPublicClient(): Promise<RpcProvider | undefined>;
|
|
34
34
|
/**
|
|
35
|
-
* returns
|
|
35
|
+
* returns starknet wallet network id
|
|
36
36
|
*/
|
|
37
37
|
getNetwork(): Promise<any>;
|
|
38
38
|
connect(): Promise<void>;
|
|
@@ -48,6 +48,7 @@ declare abstract class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
48
48
|
setupEventListeners(): void;
|
|
49
49
|
teardownEventListeners(): Promise<void>;
|
|
50
50
|
mapNetworkNameToChainId(networkName: string): constants.StarknetChainId | undefined;
|
|
51
|
+
mapChainIdToNetworkName(chainId: string): constants.NetworkName | undefined;
|
|
51
52
|
}
|
|
52
53
|
export type StarknetWalletConnectorType = StarknetWalletConnector;
|
|
53
54
|
export default StarknetWalletConnector;
|
|
@@ -10,11 +10,11 @@ import { formatTypedDataMessage } from './utils/convertors.js';
|
|
|
10
10
|
|
|
11
11
|
const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
|
|
12
12
|
const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
|
|
13
|
-
const STARKNET_VERSION = 'v5';
|
|
14
13
|
class StarknetWalletConnector extends WalletConnectorBase {
|
|
15
14
|
constructor(name, windowKey, opts) {
|
|
16
15
|
var _a;
|
|
17
16
|
super(opts);
|
|
17
|
+
this.STARKNET_VERSION = 'v5';
|
|
18
18
|
this.connectedChain = 'STARK';
|
|
19
19
|
this.supportedChains = ['STARK'];
|
|
20
20
|
this.switchNetworkOnlyFromWallet = true;
|
|
@@ -61,7 +61,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* returns
|
|
64
|
+
* returns starknet wallet network id
|
|
65
65
|
*/
|
|
66
66
|
getNetwork() {
|
|
67
67
|
var _a;
|
|
@@ -71,7 +71,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
71
71
|
return Promise.resolve(undefined);
|
|
72
72
|
}
|
|
73
73
|
if (!wallet.isConnected) {
|
|
74
|
-
yield wallet.enable({ starknetVersion: STARKNET_VERSION });
|
|
74
|
+
yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
|
|
75
75
|
}
|
|
76
76
|
return Promise.resolve((_a = wallet.provider) === null || _a === void 0 ? void 0 : _a.getChainId());
|
|
77
77
|
});
|
|
@@ -81,7 +81,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
81
81
|
const wallet = this.getWallet();
|
|
82
82
|
try {
|
|
83
83
|
if (wallet && !wallet.isConnected) {
|
|
84
|
-
yield wallet.enable({ starknetVersion: STARKNET_VERSION });
|
|
84
|
+
yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
catch (err) {
|
|
@@ -92,11 +92,6 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
92
92
|
fetchPublicAddress() {
|
|
93
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
94
|
const wallet = this.getWallet();
|
|
95
|
-
/**
|
|
96
|
-
* Fetches public address. Uses `isPreauthorized` as a temporary solution to ensure
|
|
97
|
-
* the wallets store's data is read. Without it, an empty string may be returned due
|
|
98
|
-
* to a possible reliance on its side-effects for data refreshing.
|
|
99
|
-
*/
|
|
100
95
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
|
|
101
96
|
yield this.connect();
|
|
102
97
|
return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
|
|
@@ -116,8 +111,9 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
116
111
|
}
|
|
117
112
|
signMessage(messageToSign) {
|
|
118
113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
|
|
114
|
+
// FetchPublicAddress also handles the connection to the wallet this is why we call it before getWallet.
|
|
120
115
|
const walletAddress = yield this.fetchPublicAddress();
|
|
116
|
+
const wallet = this.getWallet();
|
|
121
117
|
if (!walletAddress || !wallet) {
|
|
122
118
|
logger.error('Could not fetch wallet address for signing message');
|
|
123
119
|
return undefined;
|
|
@@ -145,6 +141,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
145
141
|
return (Number(cairo.uint256(balance.low).low) / 1e18).toFixed(6);
|
|
146
142
|
}
|
|
147
143
|
catch (error) {
|
|
144
|
+
logger.error(error);
|
|
148
145
|
throw new DynamicError('Something went wrong');
|
|
149
146
|
}
|
|
150
147
|
});
|
|
@@ -246,6 +243,21 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
246
243
|
return undefined;
|
|
247
244
|
}
|
|
248
245
|
}
|
|
246
|
+
mapChainIdToNetworkName(chainId) {
|
|
247
|
+
if (chainId === constants.StarknetChainId.SN_MAIN) {
|
|
248
|
+
return constants.NetworkName.SN_MAIN;
|
|
249
|
+
}
|
|
250
|
+
else if (chainId === constants.StarknetChainId.SN_GOERLI) {
|
|
251
|
+
return constants.NetworkName.SN_GOERLI;
|
|
252
|
+
}
|
|
253
|
+
else if (chainId === constants.StarknetChainId.SN_SEPOLIA) {
|
|
254
|
+
return constants.NetworkName.SN_SEPOLIA;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
logger.error('Unknown chainId', chainId);
|
|
258
|
+
return undefined;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
249
261
|
}
|
|
250
262
|
|
|
251
263
|
export { ACCOUNT_CHANGED_EVENT_LISTENER, NETWORK_CHANGED_EVENT_LISTENER, StarknetWalletConnector as default };
|
package/src/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StarknetWindowObject } from 'get-starknet-core';
|
|
2
|
-
export type StarknetWalletKey = 'braavos' | 'argentX';
|
|
2
|
+
export type StarknetWalletKey = 'braavos' | 'argentX' | 'argentXMobile' | 'argentWebWallet';
|
|
3
3
|
export type StarknetWindowKey = `starknet_${StarknetWalletKey}` | 'starknet';
|
|
4
4
|
type StarknetWindow = {
|
|
5
5
|
[key in StarknetWindowKey]: StarknetWindowObject;
|
package/src/utils/convertors.cjs
CHANGED
|
@@ -30,13 +30,23 @@ const defaultTypedData = {
|
|
|
30
30
|
},
|
|
31
31
|
};
|
|
32
32
|
const formatTypedDataMessage = (inputMessage, chainId = starknet.constants.NetworkName.SN_MAIN) => {
|
|
33
|
-
|
|
33
|
+
let nonce, domain;
|
|
34
|
+
try {
|
|
35
|
+
const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
|
|
36
|
+
nonce = parsedNonce;
|
|
37
|
+
domain = parsedDomain;
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
nonce = inputMessage;
|
|
41
|
+
domain = 'domain';
|
|
42
|
+
}
|
|
43
|
+
// Starknet strings could be at most 31 chars long
|
|
34
44
|
const message = {
|
|
35
45
|
message: nonce.substring(0, 31),
|
|
36
46
|
};
|
|
37
47
|
return Object.assign(Object.assign({}, defaultTypedData), { domain: {
|
|
38
48
|
chainId,
|
|
39
|
-
name: domain,
|
|
49
|
+
name: domain.substring(0, 31),
|
|
40
50
|
version: '0.0.1',
|
|
41
51
|
}, message });
|
|
42
52
|
};
|
package/src/utils/convertors.js
CHANGED
|
@@ -26,13 +26,23 @@ const defaultTypedData = {
|
|
|
26
26
|
},
|
|
27
27
|
};
|
|
28
28
|
const formatTypedDataMessage = (inputMessage, chainId = constants.NetworkName.SN_MAIN) => {
|
|
29
|
-
|
|
29
|
+
let nonce, domain;
|
|
30
|
+
try {
|
|
31
|
+
const { nonce: parsedNonce, domain: parsedDomain } = JSON.parse(inputMessage);
|
|
32
|
+
nonce = parsedNonce;
|
|
33
|
+
domain = parsedDomain;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
nonce = inputMessage;
|
|
37
|
+
domain = 'domain';
|
|
38
|
+
}
|
|
39
|
+
// Starknet strings could be at most 31 chars long
|
|
30
40
|
const message = {
|
|
31
41
|
message: nonce.substring(0, 31),
|
|
32
42
|
};
|
|
33
43
|
return Object.assign(Object.assign({}, defaultTypedData), { domain: {
|
|
34
44
|
chainId,
|
|
35
|
-
name: domain,
|
|
45
|
+
name: domain.substring(0, 31),
|
|
36
46
|
version: '0.0.1',
|
|
37
47
|
}, message });
|
|
38
48
|
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
4
|
+
var starknetkit = require('starknetkit');
|
|
5
|
+
var starknetWalletConnector = require('../starknetWalletConnector.cjs');
|
|
6
|
+
|
|
7
|
+
class ArgentXBase extends starknetWalletConnector["default"] {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.canConnectViaCustodialService = true;
|
|
11
|
+
}
|
|
12
|
+
isInstalledOnBrowser() {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
fetchPublicAddress() {
|
|
16
|
+
var _a;
|
|
17
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
yield this.connect();
|
|
19
|
+
return Promise.resolve((_a = this.getWallet()) === null || _a === void 0 ? void 0 : _a.selectedAddress);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
endSession() {
|
|
23
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
yield starknetkit.disconnect();
|
|
25
|
+
this.wallet = undefined;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
getWallet() {
|
|
29
|
+
return this.wallet;
|
|
30
|
+
}
|
|
31
|
+
getSelectedNodeUrl() {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return (_b = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0];
|
|
37
|
+
}
|
|
38
|
+
getSelectedNetworkName() {
|
|
39
|
+
var _a;
|
|
40
|
+
if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
const chainId = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].chainId;
|
|
44
|
+
return this.mapChainIdToNetworkName(chainId);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module.exports = ArgentXBase;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { StarknetWindowObject } from 'get-starknet-core';
|
|
2
|
+
import { constants } from 'starknet';
|
|
3
|
+
import { WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import StarknetProvider from '../starknetWalletConnector';
|
|
5
|
+
declare abstract class ArgentXBase extends StarknetProvider implements WalletConnector {
|
|
6
|
+
canConnectViaCustodialService: boolean;
|
|
7
|
+
wallet: StarknetWindowObject | undefined;
|
|
8
|
+
abstract connect(): Promise<void>;
|
|
9
|
+
isInstalledOnBrowser(): boolean;
|
|
10
|
+
fetchPublicAddress(): Promise<string | undefined>;
|
|
11
|
+
endSession(): Promise<void>;
|
|
12
|
+
getWallet(): StarknetWindowObject | undefined;
|
|
13
|
+
getSelectedNodeUrl(): string | undefined;
|
|
14
|
+
getSelectedNetworkName(): constants.NetworkName | undefined;
|
|
15
|
+
}
|
|
16
|
+
export default ArgentXBase;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
2
|
+
import { disconnect } from 'starknetkit';
|
|
3
|
+
import StarknetWalletConnector from '../starknetWalletConnector.js';
|
|
4
|
+
|
|
5
|
+
class ArgentXBase extends StarknetWalletConnector {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.canConnectViaCustodialService = true;
|
|
9
|
+
}
|
|
10
|
+
isInstalledOnBrowser() {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
fetchPublicAddress() {
|
|
14
|
+
var _a;
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
yield this.connect();
|
|
17
|
+
return Promise.resolve((_a = this.getWallet()) === null || _a === void 0 ? void 0 : _a.selectedAddress);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
endSession() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
yield disconnect();
|
|
23
|
+
this.wallet = undefined;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getWallet() {
|
|
27
|
+
return this.wallet;
|
|
28
|
+
}
|
|
29
|
+
getSelectedNodeUrl() {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return (_b = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0];
|
|
35
|
+
}
|
|
36
|
+
getSelectedNetworkName() {
|
|
37
|
+
var _a;
|
|
38
|
+
if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const chainId = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].chainId;
|
|
42
|
+
return this.mapChainIdToNetworkName(chainId);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { ArgentXBase as default };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
6
|
+
var starknetkit = require('starknetkit');
|
|
7
|
+
var argentMobile = require('starknetkit/argentMobile');
|
|
8
|
+
var starknet = require('starknet');
|
|
9
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
10
|
+
var argentxBase = require('./argentxBase.cjs');
|
|
11
|
+
|
|
12
|
+
class ArgentXMobile extends argentxBase {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super('Argent X - Mobile', 'argentXMobile', opts);
|
|
15
|
+
this.projectId = opts.projectId;
|
|
16
|
+
this.appName = opts.appName;
|
|
17
|
+
this.appLogoUrls = opts.appLogoUrl
|
|
18
|
+
? [opts.appLogoUrl]
|
|
19
|
+
: undefined;
|
|
20
|
+
}
|
|
21
|
+
connect() {
|
|
22
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
try {
|
|
24
|
+
const nodeUrl = this.getSelectedNodeUrl();
|
|
25
|
+
const wallet = yield this.getWallet();
|
|
26
|
+
let connection;
|
|
27
|
+
if (this.hasValidSession()) {
|
|
28
|
+
if (wallet && wallet.isConnected) {
|
|
29
|
+
return Promise.resolve();
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
connection = yield starknetkit.connect({
|
|
33
|
+
modalMode: 'neverAsk',
|
|
34
|
+
provider: new starknet.RpcProvider({ nodeUrl }),
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
// No valid session
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
connection = yield starknetkit.connect({
|
|
41
|
+
connectors: [
|
|
42
|
+
new argentMobile.ArgentMobileConnector({
|
|
43
|
+
chainId: this.getSelectedNetworkName() || starknet.constants.NetworkName.SN_MAIN,
|
|
44
|
+
dappName: this.appName,
|
|
45
|
+
icons: this.appLogoUrls,
|
|
46
|
+
projectId: this.projectId,
|
|
47
|
+
provider: new starknet.RpcProvider({
|
|
48
|
+
nodeUrl,
|
|
49
|
+
}),
|
|
50
|
+
url: window.location.hostname,
|
|
51
|
+
}),
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (connection && connection.wallet && connection.wallet.isConnected) {
|
|
56
|
+
this.wallet = connection.wallet;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw new Error('Failed to connect to Starknet');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
walletConnectorCore.logger.error('Error establishing connection to Argent Mobile', err);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
getConnectedAccounts() {
|
|
69
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
if (!this.hasValidSession()) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
const address = yield this.fetchPublicAddress();
|
|
74
|
+
if (!address)
|
|
75
|
+
return [];
|
|
76
|
+
return [address];
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
hasValidSession() {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
const sessionItem = localStorage.getItem('wc@2:client:0.3//session');
|
|
82
|
+
if (sessionItem) {
|
|
83
|
+
const sessionItemJson = JSON.parse(sessionItem);
|
|
84
|
+
if ((_b = (_a = sessionItemJson[0].peer) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.name.includes('Argent')) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
exports.ArgentXMobile = ArgentXMobile;
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
constructor(opts: any);
|
|
7
|
+
connect(): Promise<void>;
|
|
8
|
+
getConnectedAccounts(): Promise<string[]>;
|
|
9
|
+
hasValidSession(): boolean;
|
|
10
|
+
}
|
|
11
|
+
export type ArgentXMobileWalletConnectorType = ArgentXMobile;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
2
|
+
import { connect } from 'starknetkit';
|
|
3
|
+
import { ArgentMobileConnector } from 'starknetkit/argentMobile';
|
|
4
|
+
import { RpcProvider, constants } from 'starknet';
|
|
5
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
6
|
+
import ArgentXBase from './argentxBase.js';
|
|
7
|
+
|
|
8
|
+
class ArgentXMobile extends ArgentXBase {
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super('Argent X - Mobile', 'argentXMobile', opts);
|
|
11
|
+
this.projectId = opts.projectId;
|
|
12
|
+
this.appName = opts.appName;
|
|
13
|
+
this.appLogoUrls = opts.appLogoUrl
|
|
14
|
+
? [opts.appLogoUrl]
|
|
15
|
+
: undefined;
|
|
16
|
+
}
|
|
17
|
+
connect() {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
try {
|
|
20
|
+
const nodeUrl = this.getSelectedNodeUrl();
|
|
21
|
+
const wallet = yield this.getWallet();
|
|
22
|
+
let connection;
|
|
23
|
+
if (this.hasValidSession()) {
|
|
24
|
+
if (wallet && wallet.isConnected) {
|
|
25
|
+
return Promise.resolve();
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
connection = yield connect({
|
|
29
|
+
modalMode: 'neverAsk',
|
|
30
|
+
provider: new RpcProvider({ nodeUrl }),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// No valid session
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
connection = yield connect({
|
|
37
|
+
connectors: [
|
|
38
|
+
new ArgentMobileConnector({
|
|
39
|
+
chainId: this.getSelectedNetworkName() || constants.NetworkName.SN_MAIN,
|
|
40
|
+
dappName: this.appName,
|
|
41
|
+
icons: this.appLogoUrls,
|
|
42
|
+
projectId: this.projectId,
|
|
43
|
+
provider: new RpcProvider({
|
|
44
|
+
nodeUrl,
|
|
45
|
+
}),
|
|
46
|
+
url: window.location.hostname,
|
|
47
|
+
}),
|
|
48
|
+
],
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (connection && connection.wallet && connection.wallet.isConnected) {
|
|
52
|
+
this.wallet = connection.wallet;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new Error('Failed to connect to Starknet');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
logger.error('Error establishing connection to Argent Mobile', err);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
getConnectedAccounts() {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
if (!this.hasValidSession()) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
const address = yield this.fetchPublicAddress();
|
|
70
|
+
if (!address)
|
|
71
|
+
return [];
|
|
72
|
+
return [address];
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
hasValidSession() {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
const sessionItem = localStorage.getItem('wc@2:client:0.3//session');
|
|
78
|
+
if (sessionItem) {
|
|
79
|
+
const sessionItemJson = JSON.parse(sessionItem);
|
|
80
|
+
if ((_b = (_a = sessionItemJson[0].peer) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.name.includes('Argent')) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { ArgentXMobile };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
6
|
+
var starknetkit = require('starknetkit');
|
|
7
|
+
var webwallet = require('starknetkit/webwallet');
|
|
8
|
+
var starknet = require('starknet');
|
|
9
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
10
|
+
var argentxBase = require('./argentxBase.cjs');
|
|
11
|
+
|
|
12
|
+
class ArgentXWeb extends argentxBase {
|
|
13
|
+
constructor(opts) {
|
|
14
|
+
super('Argent X - Web', 'argentWebWallet', opts);
|
|
15
|
+
}
|
|
16
|
+
connect() {
|
|
17
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
try {
|
|
19
|
+
const nodeUrl = this.getSelectedNodeUrl();
|
|
20
|
+
const wallet = yield this.getWallet();
|
|
21
|
+
if (wallet && wallet.isConnected) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const connection = yield starknetkit.connect({
|
|
26
|
+
connectors: [
|
|
27
|
+
new webwallet.WebWalletConnector({
|
|
28
|
+
provider: new starknet.RpcProvider({
|
|
29
|
+
nodeUrl,
|
|
30
|
+
}),
|
|
31
|
+
url: 'https://web.argent.xyz',
|
|
32
|
+
}),
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
if (connection && connection.wallet && connection.wallet.isConnected) {
|
|
36
|
+
this.wallet = connection.wallet;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
walletConnectorCore.logger.error('Error establishing connection to Argent Web Wallet', err);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
getConnectedAccounts() {
|
|
46
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const address = yield this.fetchPublicAddress();
|
|
48
|
+
if (!address)
|
|
49
|
+
return [];
|
|
50
|
+
return [address];
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.ArgentXWeb = ArgentXWeb;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
2
|
+
import { connect } from 'starknetkit';
|
|
3
|
+
import { WebWalletConnector } from 'starknetkit/webwallet';
|
|
4
|
+
import { RpcProvider } from 'starknet';
|
|
5
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
6
|
+
import ArgentXBase from './argentxBase.js';
|
|
7
|
+
|
|
8
|
+
class ArgentXWeb extends ArgentXBase {
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super('Argent X - Web', 'argentWebWallet', opts);
|
|
11
|
+
}
|
|
12
|
+
connect() {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
try {
|
|
15
|
+
const nodeUrl = this.getSelectedNodeUrl();
|
|
16
|
+
const wallet = yield this.getWallet();
|
|
17
|
+
if (wallet && wallet.isConnected) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const connection = yield connect({
|
|
22
|
+
connectors: [
|
|
23
|
+
new WebWalletConnector({
|
|
24
|
+
provider: new RpcProvider({
|
|
25
|
+
nodeUrl,
|
|
26
|
+
}),
|
|
27
|
+
url: 'https://web.argent.xyz',
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
30
|
+
});
|
|
31
|
+
if (connection && connection.wallet && connection.wallet.isConnected) {
|
|
32
|
+
this.wallet = connection.wallet;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
logger.error('Error establishing connection to Argent Web Wallet', err);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getConnectedAccounts() {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const address = yield this.fetchPublicAddress();
|
|
44
|
+
if (!address)
|
|
45
|
+
return [];
|
|
46
|
+
return [address];
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { ArgentXWeb };
|