@dynamic-labs/starknet 3.0.0-alpha.21 → 3.0.0-alpha.22

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 CHANGED
@@ -1,4 +1,17 @@
1
1
 
2
+ ## [3.0.0-alpha.22](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.21...v3.0.0-alpha.22) (2024-07-18)
3
+
4
+
5
+ ### Features
6
+
7
+ * add support for aa kernel 3.1 ([#6333](https://github.com/dynamic-labs/DynamicAuth/issues/6333)) ([93c743a](https://github.com/dynamic-labs/DynamicAuth/commit/93c743a74d1af79f15baec343d15212a2feeac39))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * ensure retryableFn props are passed through ([#6357](https://github.com/dynamic-labs/DynamicAuth/issues/6357)) ([246da78](https://github.com/dynamic-labs/DynamicAuth/commit/246da78ebaa0e623843d93fc990d8a0f3298af54))
13
+ * removes wallet connect qr code from magic eden ([#6360](https://github.com/dynamic-labs/DynamicAuth/issues/6360)) ([5968c2e](https://github.com/dynamic-labs/DynamicAuth/commit/5968c2e220f98b0995a2067e6f5397f27da4dfb0))
14
+
2
15
  ## [3.0.0-alpha.21](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.20...v3.0.0-alpha.21) (2024-07-17)
3
16
 
4
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/starknet",
3
- "version": "3.0.0-alpha.21",
3
+ "version": "3.0.0-alpha.22",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -30,12 +30,12 @@
30
30
  "get-starknet-core": "3.2.0",
31
31
  "text-encoding": "0.7.0",
32
32
  "starknetkit": "1.1.3",
33
- "@dynamic-labs/sdk-api-core": "0.0.470",
33
+ "@dynamic-labs/sdk-api-core": "0.0.489",
34
34
  "@module-federation/runtime": "0.1.18",
35
- "@dynamic-labs/rpc-provider-starknet": "3.0.0-alpha.21",
36
- "@dynamic-labs/utils": "3.0.0-alpha.21",
37
- "@dynamic-labs/wallet-book": "3.0.0-alpha.21",
38
- "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.21"
35
+ "@dynamic-labs/rpc-provider-starknet": "3.0.0-alpha.22",
36
+ "@dynamic-labs/utils": "3.0.0-alpha.22",
37
+ "@dynamic-labs/wallet-book": "3.0.0-alpha.22",
38
+ "@dynamic-labs/wallet-connector-core": "3.0.0-alpha.22"
39
39
  },
40
40
  "peerDependencies": {}
41
41
  }
@@ -6,13 +6,34 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var _tslib = require('../../_virtual/_tslib.cjs');
7
7
  var index_cjs_js = require('@module-federation/runtime/dist/index.cjs.js');
8
8
 
9
- let metaMaskSnapWallet;
10
9
  /**
11
10
  *
12
11
  * @param {IEthereum} provider the metamask window provider object
13
12
  * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
14
13
  */
15
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
+ });
16
37
  const metaMaskProviderWrapper = {
17
38
  get account() {
18
39
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.account;
@@ -21,21 +42,7 @@ const createMetaMaskProviderWrapper = (provider) => {
21
42
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.chainId;
22
43
  },
23
44
  enable: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
24
- if (!metaMaskSnapWallet) {
25
- yield index_cjs_js.init({
26
- name: 'MetaMaskStarknetSnapWallet',
27
- remotes: [
28
- {
29
- alias: 'MetaMaskStarknetSnapWallet',
30
- entry: 'https://snaps.consensys.io/starknet/get-starknet/v1/remoteEntry.js',
31
- name: 'MetaMaskStarknetSnapWallet',
32
- },
33
- ],
34
- });
35
- const result = yield index_cjs_js.loadRemote('MetaMaskStarknetSnapWallet/index');
36
- const { MetaMaskSnapWallet } = result;
37
- metaMaskSnapWallet = new MetaMaskSnapWallet(provider, '*');
38
- }
45
+ yield initMetaMaskSnapWallet();
39
46
  if (!metaMaskSnapWallet) {
40
47
  return [];
41
48
  }
@@ -46,7 +53,11 @@ const createMetaMaskProviderWrapper = (provider) => {
46
53
  get isConnected() {
47
54
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isConnected;
48
55
  },
49
- isPreauthorized: () => { var _a; return (_a = metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isPreauthorized()) !== null && _a !== void 0 ? _a : Promise.resolve(false); },
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
+ }),
50
61
  name: 'MetaMaskStarknetSnapWallet',
51
62
  off: (
52
63
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -2,13 +2,34 @@
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
3
  import { init, loadRemote } from '@module-federation/runtime/dist/index.cjs.js';
4
4
 
5
- let metaMaskSnapWallet;
6
5
  /**
7
6
  *
8
7
  * @param {IEthereum} provider the metamask window provider object
9
8
  * @returns {StarknetWindowObject} the metamask provider wrapper formed into starknet window object
10
9
  */
11
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
+ });
12
33
  const metaMaskProviderWrapper = {
13
34
  get account() {
14
35
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.account;
@@ -17,21 +38,7 @@ const createMetaMaskProviderWrapper = (provider) => {
17
38
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.chainId;
18
39
  },
19
40
  enable: () => __awaiter(void 0, void 0, void 0, function* () {
20
- if (!metaMaskSnapWallet) {
21
- yield init({
22
- name: 'MetaMaskStarknetSnapWallet',
23
- remotes: [
24
- {
25
- alias: 'MetaMaskStarknetSnapWallet',
26
- entry: 'https://snaps.consensys.io/starknet/get-starknet/v1/remoteEntry.js',
27
- name: 'MetaMaskStarknetSnapWallet',
28
- },
29
- ],
30
- });
31
- const result = yield loadRemote('MetaMaskStarknetSnapWallet/index');
32
- const { MetaMaskSnapWallet } = result;
33
- metaMaskSnapWallet = new MetaMaskSnapWallet(provider, '*');
34
- }
41
+ yield initMetaMaskSnapWallet();
35
42
  if (!metaMaskSnapWallet) {
36
43
  return [];
37
44
  }
@@ -42,7 +49,11 @@ const createMetaMaskProviderWrapper = (provider) => {
42
49
  get isConnected() {
43
50
  return metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isConnected;
44
51
  },
45
- isPreauthorized: () => { var _a; return (_a = metaMaskSnapWallet === null || metaMaskSnapWallet === void 0 ? void 0 : metaMaskSnapWallet.isPreauthorized()) !== null && _a !== void 0 ? _a : Promise.resolve(false); },
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
+ }),
46
57
  name: 'MetaMaskStarknetSnapWallet',
47
58
  off: (
48
59
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -27,21 +27,13 @@ class MetaMask extends starknetWalletConnector["default"] {
27
27
  if (!wallet) {
28
28
  return [];
29
29
  }
30
- try {
31
- yield this.reconnectIfNeeded(wallet);
30
+ const isProviderConnected = this.isProviderConnected();
31
+ const isPreauthorized = yield wallet.isPreauthorized();
32
+ const shouldReconnect = !isProviderConnected && isPreauthorized;
33
+ if (shouldReconnect) {
34
+ yield this.connect();
32
35
  }
33
- catch (e) {
34
- return [];
35
- }
36
- const getSelectedAddress = () => wallet.selectedAddress
37
- ? Promise.resolve([wallet.selectedAddress])
38
- : Promise.reject();
39
- return utils.retryableFn(getSelectedAddress, {
40
- fallbackValue: [],
41
- maxRetries: 10,
42
- retryIntervalMs: 750,
43
- retryStrategy: 'timeout-and-rejection',
44
- });
36
+ return wallet.selectedAddress ? [wallet.selectedAddress] : [];
45
37
  });
46
38
  }
47
39
  }
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { Eip6963ProviderSingleton, retryableFn } from '@dynamic-labs/utils';
3
+ import { Eip6963ProviderSingleton } from '@dynamic-labs/utils';
4
4
  import StarknetWalletConnector from '../starknetWalletConnector.js';
5
5
  import { createMetaMaskProviderWrapper } from '../utils/starknetSnap.js';
6
6
 
@@ -23,21 +23,13 @@ class MetaMask extends StarknetWalletConnector {
23
23
  if (!wallet) {
24
24
  return [];
25
25
  }
26
- try {
27
- yield this.reconnectIfNeeded(wallet);
26
+ const isProviderConnected = this.isProviderConnected();
27
+ const isPreauthorized = yield wallet.isPreauthorized();
28
+ const shouldReconnect = !isProviderConnected && isPreauthorized;
29
+ if (shouldReconnect) {
30
+ yield this.connect();
28
31
  }
29
- catch (e) {
30
- return [];
31
- }
32
- const getSelectedAddress = () => wallet.selectedAddress
33
- ? Promise.resolve([wallet.selectedAddress])
34
- : Promise.reject();
35
- return retryableFn(getSelectedAddress, {
36
- fallbackValue: [],
37
- maxRetries: 10,
38
- retryIntervalMs: 750,
39
- retryStrategy: 'timeout-and-rejection',
40
- });
32
+ return wallet.selectedAddress ? [wallet.selectedAddress] : [];
41
33
  });
42
34
  }
43
35
  }