@dynamic-labs/starknet 3.0.0-alpha.21 → 3.0.0-alpha.23
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 +27 -0
- package/package.json +6 -6
- package/src/utils/starknetSnap.cjs +28 -17
- package/src/utils/starknetSnap.js +28 -17
- package/src/wallets/metamask.cjs +6 -14
- package/src/wallets/metamask.js +7 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
1
|
|
|
2
|
+
## [3.0.0-alpha.23](https://github.com/dynamic-labs/DynamicAuth/compare/v3.0.0-alpha.22...v3.0.0-alpha.23) (2024-07-19)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* show custom labels in the sdk ([#6352](https://github.com/dynamic-labs/DynamicAuth/issues/6352)) ([6eec9b2](https://github.com/dynamic-labs/DynamicAuth/commit/6eec9b26dbfd25c5138378aa92de8379a5cd0ddc))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* add missing await to viem controller ([#6354](https://github.com/dynamic-labs/DynamicAuth/issues/6354)) ([32c7362](https://github.com/dynamic-labs/DynamicAuth/commit/32c73625c5575f9134edd541c7221aba08a741b5))
|
|
13
|
+
* allow for react-native 0.74.x ([#6371](https://github.com/dynamic-labs/DynamicAuth/issues/6371)) ([37e08b6](https://github.com/dynamic-labs/DynamicAuth/commit/37e08b6b32bcaef7b7f6a4dedc45b2321f3f64a6))
|
|
14
|
+
* not able to switch to secondary wallet ([#6373](https://github.com/dynamic-labs/DynamicAuth/issues/6373)) ([f85ed10](https://github.com/dynamic-labs/DynamicAuth/commit/f85ed10aca8bf41658eb1418cd87e1c5061d4b1b))
|
|
15
|
+
|
|
16
|
+
## [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)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* 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))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
* ensure retryableFn props are passed through ([#6357](https://github.com/dynamic-labs/DynamicAuth/issues/6357)) ([246da78](https://github.com/dynamic-labs/DynamicAuth/commit/246da78ebaa0e623843d93fc990d8a0f3298af54))
|
|
27
|
+
* 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))
|
|
28
|
+
|
|
2
29
|
## [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
30
|
|
|
4
31
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/starknet",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.23",
|
|
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.
|
|
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.
|
|
36
|
-
"@dynamic-labs/utils": "3.0.0-alpha.
|
|
37
|
-
"@dynamic-labs/wallet-book": "3.0.0-alpha.
|
|
38
|
-
"@dynamic-labs/wallet-connector-core": "3.0.0-alpha.
|
|
35
|
+
"@dynamic-labs/rpc-provider-starknet": "3.0.0-alpha.23",
|
|
36
|
+
"@dynamic-labs/utils": "3.0.0-alpha.23",
|
|
37
|
+
"@dynamic-labs/wallet-book": "3.0.0-alpha.23",
|
|
38
|
+
"@dynamic-labs/wallet-connector-core": "3.0.0-alpha.23"
|
|
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
|
-
|
|
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: () =>
|
|
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
|
-
|
|
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: () =>
|
|
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
|
package/src/wallets/metamask.cjs
CHANGED
|
@@ -27,21 +27,13 @@ class MetaMask extends starknetWalletConnector["default"] {
|
|
|
27
27
|
if (!wallet) {
|
|
28
28
|
return [];
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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
|
}
|
package/src/wallets/metamask.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../_virtual/_tslib.js';
|
|
3
|
-
import { Eip6963ProviderSingleton
|
|
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
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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
|
}
|