@dynamic-labs/starknet 4.0.0-alpha.9 → 4.0.0

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 +483 -1
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +14 -12
  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 -12
  9. package/src/index.d.ts +16 -7
  10. package/src/index.js +12 -12
  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/wallet/StarknetWallet.cjs +24 -3
  16. package/src/wallet/StarknetWallet.d.ts +14 -4
  17. package/src/wallet/StarknetWallet.js +24 -3
  18. package/src/wallets/argent/argentMobile/argentMobile.cjs +70 -0
  19. package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
  20. package/src/wallets/argent/argentMobile/argentMobile.js +66 -0
  21. package/src/wallets/argent/base.cjs +50 -0
  22. package/src/wallets/argent/base.d.ts +5 -0
  23. package/src/wallets/argent/base.js +46 -0
  24. package/src/wallets/argent/injected/argentx.cjs +33 -0
  25. package/src/wallets/argent/injected/argentx.d.ts +8 -0
  26. package/src/wallets/argent/injected/argentx.js +29 -0
  27. package/src/wallets/argent/webwallet/webwallet.cjs +37 -0
  28. package/src/wallets/argent/webwallet/webwallet.d.ts +10 -0
  29. package/src/wallets/argent/webwallet/webwallet.js +33 -0
  30. package/src/wallets/injected/braavos.cjs +31 -0
  31. package/src/wallets/injected/braavos.d.ts +13 -0
  32. package/src/wallets/injected/braavos.js +27 -0
  33. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.cjs +35 -0
  34. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
  35. package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +31 -0
  36. package/src/wallets/injected/injected.cjs +141 -0
  37. package/src/wallets/injected/injected.d.ts +10 -0
  38. package/src/wallets/injected/injected.js +137 -0
  39. package/src/wallets/{metamask.cjs → injected/metamask.cjs} +19 -29
  40. package/src/wallets/{metamask.d.ts → injected/metamask.d.ts} +2 -4
  41. package/src/wallets/{metamask.js → injected/metamask.js} +15 -29
  42. package/src/starknetWalletConnector.cjs +0 -320
  43. package/src/starknetWalletConnector.d.ts +0 -127
  44. package/src/starknetWalletConnector.js +0 -314
  45. package/src/utils/starknetSnap.cjs +0 -92
  46. package/src/utils/starknetSnap.d.ts +0 -8
  47. package/src/utils/starknetSnap.js +0 -88
  48. package/src/wallets/argentx.cjs +0 -24
  49. package/src/wallets/argentx.d.ts +0 -8
  50. package/src/wallets/argentx.js +0 -20
  51. package/src/wallets/argentxBase.cjs +0 -50
  52. package/src/wallets/argentxBase.d.ts +0 -16
  53. package/src/wallets/argentxBase.js +0 -48
  54. package/src/wallets/argentxMobile.cjs +0 -100
  55. package/src/wallets/argentxMobile.d.ts +0 -13
  56. package/src/wallets/argentxMobile.js +0 -96
  57. package/src/wallets/argentxWeb.cjs +0 -57
  58. package/src/wallets/argentxWeb.d.ts +0 -8
  59. package/src/wallets/argentxWeb.js +0 -53
  60. package/src/wallets/bitget.cjs +0 -22
  61. package/src/wallets/bitget.d.ts +0 -7
  62. package/src/wallets/bitget.js +0 -18
  63. package/src/wallets/braavos.cjs +0 -37
  64. package/src/wallets/braavos.d.ts +0 -8
  65. package/src/wallets/braavos.js +0 -33
  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
@@ -1,314 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../_virtual/_tslib.js';
3
- import { getStarknet } from 'get-starknet-core';
4
- import { Contract, cairo, constants } from 'starknet';
5
- import { WalletConnectorBase, logger } from '@dynamic-labs/wallet-connector-core';
6
- import { isMobile, template, DynamicError, retryableFn } from '@dynamic-labs/utils';
7
- import { ETH_STARKNET_ADDRESS } from './constants.js';
8
- import ETH_CONTRACT_ABI from './ethereumContractAbi.js';
9
- import { formatTypedDataMessage } from './utils/convertors.js';
10
- import { StarknetWallet } from './wallet/StarknetWallet.js';
11
-
12
- const ACCOUNT_CHANGED_EVENT_LISTENER = 'accountsChanged';
13
- const NETWORK_CHANGED_EVENT_LISTENER = 'networkChanged';
14
- class StarknetWalletConnector extends WalletConnectorBase {
15
- constructor(name, windowKey, opts) {
16
- var _a;
17
- super(opts);
18
- this.STARKNET_VERSION = 'v5';
19
- this.ChainWallet = StarknetWallet;
20
- this.connectedChain = 'STARK';
21
- this.supportedChains = ['STARK'];
22
- this.switchNetworkOnlyFromWallet = true;
23
- // required for metamask snap integration as MM snaps don't have event listeners
24
- this.canSetEventListeners = true;
25
- this.name = name;
26
- this.windowKey = windowKey;
27
- this.starknetNetworks = opts.starknetNetworks;
28
- this.chainRpcProviders = opts.chainRpcProviders;
29
- (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerStarknetProviders();
30
- }
31
- get walletBookWallet() {
32
- return this.walletBook.wallets[this.key];
33
- }
34
- // abstracting this method to a function due to some wallets (bitget)
35
- // having non-standard use of the isConnected flag. This allows for us to use other flags to determine connectivity
36
- isProviderConnected() {
37
- var _a;
38
- const wallet = this.getWallet();
39
- return (_a = wallet === null || wallet === void 0 ? void 0 : wallet.isConnected) !== null && _a !== void 0 ? _a : false;
40
- }
41
- getPublicClient() {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- var _a;
44
- if (this.starknetNetworks === undefined ||
45
- this.starknetNetworks.length === 0)
46
- return;
47
- const configurations = {
48
- cosmos: [],
49
- evm: undefined,
50
- solana: undefined,
51
- starknet: this.starknetNetworks,
52
- };
53
- const chainId = yield this.getNetwork();
54
- const starknetRpcProvider = (_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.getStarknetRpcProviderByChainId(configurations, chainId);
55
- return starknetRpcProvider === null || starknetRpcProvider === void 0 ? void 0 : starknetRpcProvider.provider;
56
- });
57
- }
58
- /**
59
- * returns starknet wallet network id
60
- */
61
- getNetwork() {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- var _a;
64
- const wallet = this.getWallet();
65
- if (!wallet) {
66
- return Promise.resolve(undefined);
67
- }
68
- if (!this.isProviderConnected()) {
69
- yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
70
- }
71
- return Promise.resolve((_a = wallet.provider) === null || _a === void 0 ? void 0 : _a.getChainId());
72
- });
73
- }
74
- connect() {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- const wallet = this.getWallet();
77
- try {
78
- if (wallet && !this.isProviderConnected()) {
79
- yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
80
- localStorage.setItem('dynamic_should_have_wallet', 'true');
81
- }
82
- }
83
- catch (err) {
84
- logger.error(err);
85
- }
86
- });
87
- }
88
- getAddress() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const wallet = this.getWallet();
91
- if (!this.isInstalledOnBrowser() &&
92
- isMobile() &&
93
- this.walletBookWallet.mobile &&
94
- this.walletBookWallet.mobile.inAppBrowser &&
95
- this.mobileExperience === 'in-app-browser') {
96
- const inAppBrowserCompiledTemplate = template(this.walletBookWallet.mobile.inAppBrowser);
97
- const deepLink = inAppBrowserCompiledTemplate({
98
- encodedDappURI: encodeURIComponent(window.location.toString()),
99
- });
100
- window.location.assign(deepLink);
101
- }
102
- if (wallet && !this.isProviderConnected()) {
103
- yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
104
- yield this.connect();
105
- }
106
- return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
107
- });
108
- }
109
- getWalletAccount() {
110
- return __awaiter(this, void 0, void 0, function* () {
111
- const wallet = this.getWallet();
112
- return wallet === null || wallet === void 0 ? void 0 : wallet.account;
113
- });
114
- }
115
- getProvider() {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const wallet = yield this.getWallet();
118
- return wallet === null || wallet === void 0 ? void 0 : wallet.provider;
119
- });
120
- }
121
- signMessage(messageToSign) {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- // FetchPublicAddress also handles the connection to the wallet this is why we call it before getWallet.
124
- const walletAddress = yield this.getAddress();
125
- const wallet = this.getWallet();
126
- if (!walletAddress || !wallet) {
127
- logger.error('Could not fetch wallet address for signing message');
128
- return undefined;
129
- }
130
- const encodedMessage = formatTypedDataMessage(messageToSign, (yield wallet.provider.getChainId()));
131
- const signature = yield wallet.account.signMessage(encodedMessage);
132
- return signature === null || signature === void 0 ? void 0 : signature.join(',');
133
- });
134
- }
135
- getBalance(address) {
136
- return __awaiter(this, void 0, void 0, function* () {
137
- const provider = yield this.getProvider();
138
- if (!provider) {
139
- logger.error('Could not find provider for getting balance');
140
- return undefined;
141
- }
142
- const contract = new Contract(ETH_CONTRACT_ABI, ETH_STARKNET_ADDRESS, provider);
143
- try {
144
- const { balance } = yield contract.balanceOf(address);
145
- /**
146
- * Dividing by 1e18 as the returned balance is a Gwei number.
147
- * Read more here: https://www.investopedia.com/terms/g/gwei-ethereum.asp#toc-what-is-gwei
148
- */
149
- return (Number(cairo.uint256(balance.low).low) / 1e18).toFixed(6);
150
- }
151
- catch (error) {
152
- logger.error(error);
153
- throw new DynamicError('Something went wrong');
154
- }
155
- });
156
- }
157
- endSession() {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- localStorage.removeItem('dynamic_should_have_wallet');
160
- getStarknet().disconnect({ clearLastWallet: true });
161
- });
162
- }
163
- getWallet() {
164
- let starknetWindowInstance = window[`starknet_${this.windowKey}`];
165
- if (starknetWindowInstance !== undefined) {
166
- return starknetWindowInstance;
167
- }
168
- else {
169
- starknetWindowInstance = window['starknet'];
170
- if ((starknetWindowInstance === null || starknetWindowInstance === void 0 ? void 0 : starknetWindowInstance.name) === this.name) {
171
- return starknetWindowInstance;
172
- }
173
- }
174
- return undefined;
175
- }
176
- isInstalledOnBrowser() {
177
- return this.getWallet() !== undefined;
178
- }
179
- getConnectedAccounts() {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- const wallet = this.getWallet();
182
- if (!wallet) {
183
- return [];
184
- }
185
- try {
186
- yield this.reconnectIfNeeded(wallet);
187
- }
188
- catch (e) {
189
- return [];
190
- }
191
- const getSelectedAddress = () => wallet.selectedAddress
192
- ? Promise.resolve([wallet.selectedAddress])
193
- : Promise.reject();
194
- return retryableFn(getSelectedAddress, {
195
- fallbackValue: [],
196
- retryIntervalMs: 100,
197
- retryStrategy: 'timeout-and-rejection',
198
- });
199
- });
200
- }
201
- reconnectIfNeeded(wallet) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- const needsReconnection = !this.isProviderConnected() && (yield wallet.isPreauthorized());
204
- if (needsReconnection) {
205
- /**
206
- * this is a hack for braavos
207
- * it is needed because the wallet doesn't return any addresses or connected state
208
- * without a reconnection, and when the wallet is locked, the connect call never resolves
209
- */
210
- if (localStorage.getItem('dynamic_should_have_wallet') === 'true') {
211
- try {
212
- yield retryableFn(this.connect.bind(this), {
213
- maxRetries: 0,
214
- retryStrategy: 'timeout-only',
215
- timeoutMs: 1000,
216
- });
217
- }
218
- catch (_a) {
219
- localStorage.removeItem('dynamic_should_have_wallet');
220
- throw new Error('Could not reconnect');
221
- }
222
- }
223
- else {
224
- yield this.connect();
225
- }
226
- }
227
- });
228
- }
229
- setupEventListeners() {
230
- if (!this.canSetEventListeners)
231
- return;
232
- const wallet = this.getWallet();
233
- if (!wallet) {
234
- return logger.error('Wallet has not been found');
235
- }
236
- this.handleAccountChange = (address) => __awaiter(this, void 0, void 0, function* () {
237
- if (!address) {
238
- this.emit('disconnect');
239
- return;
240
- }
241
- if (address.toString()) {
242
- this.emit('accountChange', { accounts: [address.toString()] });
243
- }
244
- });
245
- this.handleNetworkChange = (network) => __awaiter(this, void 0, void 0, function* () {
246
- if (!network) {
247
- this.emit('disconnect');
248
- return;
249
- }
250
- const chain = this.mapNetworkNameToChainId(network.toString());
251
- if (chain) {
252
- this.emit('chainChange', { chain });
253
- }
254
- });
255
- wallet === null || wallet === void 0 ? void 0 : wallet.on(ACCOUNT_CHANGED_EVENT_LISTENER, this.handleAccountChange);
256
- wallet === null || wallet === void 0 ? void 0 : wallet.on(NETWORK_CHANGED_EVENT_LISTENER, this.handleNetworkChange);
257
- }
258
- teardownEventListeners() {
259
- return __awaiter(this, void 0, void 0, function* () {
260
- if (!this.canSetEventListeners)
261
- return;
262
- const wallet = this.getWallet();
263
- if (this.handleAccountChange) {
264
- wallet === null || wallet === void 0 ? void 0 : wallet.off(ACCOUNT_CHANGED_EVENT_LISTENER, this.handleAccountChange);
265
- this.handleAccountChange = undefined;
266
- }
267
- if (this.handleNetworkChange) {
268
- wallet === null || wallet === void 0 ? void 0 : wallet.off(NETWORK_CHANGED_EVENT_LISTENER, this.handleNetworkChange);
269
- this.handleNetworkChange = undefined;
270
- }
271
- });
272
- }
273
- mapNetworkNameToChainId(networkNameOrChainId) {
274
- if (networkNameOrChainId === constants.NetworkName.SN_MAIN ||
275
- networkNameOrChainId.includes('mainnet') ||
276
- networkNameOrChainId === constants.StarknetChainId.SN_MAIN) {
277
- return constants.StarknetChainId.SN_MAIN;
278
- }
279
- else if (networkNameOrChainId === constants.NetworkName.SN_GOERLI ||
280
- networkNameOrChainId.includes('goerli') ||
281
- networkNameOrChainId === constants.StarknetChainId.SN_GOERLI) {
282
- return constants.StarknetChainId.SN_GOERLI;
283
- }
284
- else if (networkNameOrChainId === constants.NetworkName.SN_SEPOLIA ||
285
- networkNameOrChainId.includes('sepolia') ||
286
- networkNameOrChainId === constants.StarknetChainId.SN_SEPOLIA) {
287
- return constants.StarknetChainId.SN_SEPOLIA;
288
- }
289
- else {
290
- logger.error('Unknown networkName', networkNameOrChainId);
291
- return undefined;
292
- }
293
- }
294
- mapChainIdToNetworkName(chainIdOrNetworkName) {
295
- if (chainIdOrNetworkName === constants.StarknetChainId.SN_MAIN ||
296
- chainIdOrNetworkName === constants.NetworkName.SN_MAIN) {
297
- return constants.NetworkName.SN_MAIN;
298
- }
299
- else if (chainIdOrNetworkName === constants.StarknetChainId.SN_GOERLI ||
300
- chainIdOrNetworkName === constants.NetworkName.SN_GOERLI) {
301
- return constants.NetworkName.SN_GOERLI;
302
- }
303
- else if (chainIdOrNetworkName === constants.StarknetChainId.SN_SEPOLIA ||
304
- chainIdOrNetworkName === constants.NetworkName.SN_SEPOLIA) {
305
- return constants.NetworkName.SN_SEPOLIA;
306
- }
307
- else {
308
- logger.error('Unknown chainId', chainIdOrNetworkName);
309
- return undefined;
310
- }
311
- }
312
- }
313
-
314
- export { ACCOUNT_CHANGED_EVENT_LISTENER, NETWORK_CHANGED_EVENT_LISTENER, StarknetWalletConnector as default };
@@ -1,92 +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 index_cjs_js = require('@module-federation/runtime/dist/index.cjs.js');
8
-
9
- /**
10
- *
11
- * @param {IEthereum} provider the metamask window provider object
12
- * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
13
- */
14
- const createMetaMaskProviderWrapper = (provider) => {
15
- let metaMaskSnapWallet;
16
- // using @module-federation to load the get-starknet remoteEntry, as recommended
17
- // by the starknet team. this file is a small wrapper around the metamask snap api
18
- // to communicate with starknet, which we then wrap into a starknet window object
19
- // and use in our starknet connector, just like braavos and argent
20
- const initMetaMaskSnapWallet = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
21
- if (!metaMaskSnapWallet) {
22
- index_cjs_js.init({
23
- name: 'MetaMaskStarknetSnapWallet',
24
- remotes: [
25
- {
26
- alias: 'MetaMaskStarknetSnapWallet',
27
- entry: 'https://snaps.consensys.io/starknet/get-starknet/v1/remoteEntry.js',
28
- name: 'MetaMaskStarknetSnapWallet',
29
- },
30
- ],
31
- });
32
- const result = yield index_cjs_js.loadRemote('MetaMaskStarknetSnapWallet/index');
33
- const { MetaMaskSnapWallet } = result;
34
- metaMaskSnapWallet = new MetaMaskSnapWallet(provider, '*');
35
- }
36
- });
37
- const metaMaskProviderWrapper = {
38
- get account() {
39
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.account;
40
- },
41
- get chainId() {
42
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.chainId;
43
- },
44
- enable: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
45
- yield initMetaMaskSnapWallet();
46
- if (!metaMaskSnapWallet) {
47
- return [];
48
- }
49
- return metaMaskSnapWallet.enable();
50
- }),
51
- icon: '',
52
- id: 'MetaMaskStarknetSnapWallet',
53
- get isConnected() {
54
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isConnected;
55
- },
56
- isPreauthorized: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
57
- var _a;
58
- yield initMetaMaskSnapWallet();
59
- return (_a = (yield (metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isPreauthorized()))) !== null && _a !== void 0 ? _a : false;
60
- }),
61
- name: 'MetaMaskStarknetSnapWallet',
62
- off: (
63
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
64
- event,
65
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
- handleEvent) => undefined,
67
- on: (
68
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
- event,
70
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
71
- handleEvent) => undefined,
72
- get provider() {
73
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.provider;
74
- },
75
- request: (call) => {
76
- if (!metaMaskSnapWallet) {
77
- throw new Error('Wallet not enabled');
78
- }
79
- return metaMaskSnapWallet.request(call);
80
- },
81
- get selectedAddress() {
82
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.selectedAddress;
83
- },
84
- get version() {
85
- var _a;
86
- return (_a = metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.version) !== null && _a !== void 0 ? _a : '0.0.0';
87
- },
88
- };
89
- return metaMaskProviderWrapper;
90
- };
91
-
92
- exports.createMetaMaskProviderWrapper = createMetaMaskProviderWrapper;
@@ -1,8 +0,0 @@
1
- import { StarknetWindowObject } from 'get-starknet-core';
2
- import { IEthereum } from '@dynamic-labs/utils';
3
- /**
4
- *
5
- * @param {IEthereum} provider the metamask window provider object
6
- * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
7
- */
8
- export declare const createMetaMaskProviderWrapper: (provider: IEthereum) => StarknetWindowObject;
@@ -1,88 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { init, loadRemote } from '@module-federation/runtime/dist/index.cjs.js';
4
-
5
- /**
6
- *
7
- * @param {IEthereum} provider the metamask window provider object
8
- * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
9
- */
10
- const createMetaMaskProviderWrapper = (provider) => {
11
- let metaMaskSnapWallet;
12
- // using @module-federation to load the get-starknet remoteEntry, as recommended
13
- // by the starknet team. this file is a small wrapper around the metamask snap api
14
- // to communicate with starknet, which we then wrap into a starknet window object
15
- // and use in our starknet connector, just like braavos and argent
16
- const initMetaMaskSnapWallet = () => __awaiter(void 0, void 0, void 0, function* () {
17
- if (!metaMaskSnapWallet) {
18
- init({
19
- name: 'MetaMaskStarknetSnapWallet',
20
- remotes: [
21
- {
22
- alias: 'MetaMaskStarknetSnapWallet',
23
- entry: 'https://snaps.consensys.io/starknet/get-starknet/v1/remoteEntry.js',
24
- name: 'MetaMaskStarknetSnapWallet',
25
- },
26
- ],
27
- });
28
- const result = yield loadRemote('MetaMaskStarknetSnapWallet/index');
29
- const { MetaMaskSnapWallet } = result;
30
- metaMaskSnapWallet = new MetaMaskSnapWallet(provider, '*');
31
- }
32
- });
33
- const metaMaskProviderWrapper = {
34
- get account() {
35
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.account;
36
- },
37
- get chainId() {
38
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.chainId;
39
- },
40
- enable: () => __awaiter(void 0, void 0, void 0, function* () {
41
- yield initMetaMaskSnapWallet();
42
- if (!metaMaskSnapWallet) {
43
- return [];
44
- }
45
- return metaMaskSnapWallet.enable();
46
- }),
47
- icon: '',
48
- id: 'MetaMaskStarknetSnapWallet',
49
- get isConnected() {
50
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isConnected;
51
- },
52
- isPreauthorized: () => __awaiter(void 0, void 0, void 0, function* () {
53
- var _a;
54
- yield initMetaMaskSnapWallet();
55
- return (_a = (yield (metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isPreauthorized()))) !== null && _a !== void 0 ? _a : false;
56
- }),
57
- name: 'MetaMaskStarknetSnapWallet',
58
- off: (
59
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
60
- event,
61
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
62
- handleEvent) => undefined,
63
- on: (
64
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
65
- event,
66
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
- handleEvent) => undefined,
68
- get provider() {
69
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.provider;
70
- },
71
- request: (call) => {
72
- if (!metaMaskSnapWallet) {
73
- throw new Error('Wallet not enabled');
74
- }
75
- return metaMaskSnapWallet.request(call);
76
- },
77
- get selectedAddress() {
78
- return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.selectedAddress;
79
- },
80
- get version() {
81
- var _a;
82
- return (_a = metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.version) !== null && _a !== void 0 ? _a : '0.0.0';
83
- },
84
- };
85
- return metaMaskProviderWrapper;
86
- };
87
-
88
- export { createMetaMaskProviderWrapper };
@@ -1,24 +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 starknetWalletConnector = require('../starknetWalletConnector.cjs');
8
-
9
- class ArgentX extends starknetWalletConnector["default"] {
10
- constructor(opts) {
11
- super('Argent X', 'argentX', opts);
12
- this.overrideKey = 'argentx';
13
- }
14
- getConnectedAccounts() {
15
- return _tslib.__awaiter(this, void 0, void 0, function* () {
16
- const address = yield this.getAddress();
17
- if (!address)
18
- return [];
19
- return [address];
20
- });
21
- }
22
- }
23
-
24
- exports.ArgentX = ArgentX;
@@ -1,8 +0,0 @@
1
- import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
- import StarknetProvider from '../starknetWalletConnector';
3
- export declare class ArgentX extends StarknetProvider implements WalletConnectorBase {
4
- overrideKey: string;
5
- constructor(opts: any);
6
- getConnectedAccounts(): Promise<string[]>;
7
- }
8
- export type ArgentXWalletConnectorType = ArgentX;
@@ -1,20 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import StarknetWalletConnector from '../starknetWalletConnector.js';
4
-
5
- class ArgentX extends StarknetWalletConnector {
6
- constructor(opts) {
7
- super('Argent X', 'argentX', opts);
8
- this.overrideKey = 'argentx';
9
- }
10
- getConnectedAccounts() {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- const address = yield this.getAddress();
13
- if (!address)
14
- return [];
15
- return [address];
16
- });
17
- }
18
- }
19
-
20
- export { ArgentX };
@@ -1,50 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- var _tslib = require('../../_virtual/_tslib.cjs');
5
- var starknetkit = require('starknetkit');
6
- var starknetWalletConnector = require('../starknetWalletConnector.cjs');
7
-
8
- class ArgentXBase extends starknetWalletConnector["default"] {
9
- constructor() {
10
- super(...arguments);
11
- this.canConnectViaCustodialService = true;
12
- }
13
- isInstalledOnBrowser() {
14
- return false;
15
- }
16
- getAddress() {
17
- return _tslib.__awaiter(this, void 0, void 0, function* () {
18
- var _a;
19
- yield this.connect();
20
- return Promise.resolve((_a = this.getWallet()) === null || _a === void 0 ? void 0 : _a.selectedAddress);
21
- });
22
- }
23
- endSession() {
24
- return _tslib.__awaiter(this, void 0, void 0, function* () {
25
- yield starknetkit.disconnect();
26
- this.wallet = undefined;
27
- });
28
- }
29
- getWallet() {
30
- return this.wallet;
31
- }
32
- getSelectedNodeUrl() {
33
- var _a, _b, _c, _d;
34
- if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
35
- return undefined;
36
- }
37
- return (((_b = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0]) ||
38
- ((_d = (_c = this.starknetNetworks) === null || _c === void 0 ? void 0 : _c[0].rpcUrls) === null || _d === void 0 ? void 0 : _d[0]));
39
- }
40
- getSelectedNetworkName() {
41
- var _a;
42
- if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
43
- return undefined;
44
- }
45
- const chainId = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].chainId;
46
- return this.mapChainIdToNetworkName(chainId);
47
- }
48
- }
49
-
50
- module.exports = ArgentXBase;
@@ -1,16 +0,0 @@
1
- import { StarknetWindowObject } from 'get-starknet-core';
2
- import { constants } from 'starknet';
3
- import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
4
- import StarknetProvider from '../starknetWalletConnector';
5
- declare abstract class ArgentXBase extends StarknetProvider implements WalletConnectorBase {
6
- canConnectViaCustodialService: boolean;
7
- wallet: StarknetWindowObject | undefined;
8
- abstract connect(): Promise<void>;
9
- isInstalledOnBrowser(): boolean;
10
- getAddress(): 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;
@@ -1,48 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { disconnect } from 'starknetkit';
4
- import StarknetWalletConnector from '../starknetWalletConnector.js';
5
-
6
- class ArgentXBase extends StarknetWalletConnector {
7
- constructor() {
8
- super(...arguments);
9
- this.canConnectViaCustodialService = true;
10
- }
11
- isInstalledOnBrowser() {
12
- return false;
13
- }
14
- getAddress() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- var _a;
17
- yield this.connect();
18
- return Promise.resolve((_a = this.getWallet()) === null || _a === void 0 ? void 0 : _a.selectedAddress);
19
- });
20
- }
21
- endSession() {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- yield disconnect();
24
- this.wallet = undefined;
25
- });
26
- }
27
- getWallet() {
28
- return this.wallet;
29
- }
30
- getSelectedNodeUrl() {
31
- var _a, _b, _c, _d;
32
- if (!this.starknetNetworks || this.starknetNetworks.length !== 1) {
33
- return undefined;
34
- }
35
- return (((_b = (_a = this.starknetNetworks) === null || _a === void 0 ? void 0 : _a[0].privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0]) ||
36
- ((_d = (_c = this.starknetNetworks) === null || _c === void 0 ? void 0 : _c[0].rpcUrls) === null || _d === void 0 ? void 0 : _d[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
- export { ArgentXBase as default };