@dynamic-labs/starknet 1.2.0-alpha.1 → 1.3.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,33 @@
1
1
 
2
+ ## [1.3.0](https://github.com/dynamic-labs/DynamicAuth/compare/v1.2.0...v1.3.0) (2024-03-05)
3
+
4
+
5
+ ### Features
6
+
7
+ * add okx and bitget starknet wallets ([#4837](https://github.com/dynamic-labs/DynamicAuth/issues/4837)) ([181a111](https://github.com/dynamic-labs/DynamicAuth/commit/181a111b787306e5ac24616e5d3387db7db8fd18))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * improve offline error handling ([80386bf](https://github.com/dynamic-labs/DynamicAuth/commit/80386bfe538dc5a24be0692b3cdf49e8b264b41c))
13
+
14
+ ## [1.2.0](https://github.com/dynamic-labs/DynamicAuth/compare/v1.2.0-alpha.1...v1.2.0) (2024-02-29)
15
+
16
+
17
+ ### Features
18
+
19
+ * add networkValidationMode and deprecate enableForcedNetworkValidation ([#4776](https://github.com/dynamic-labs/DynamicAuth/issues/4776)) ([d826bf7](https://github.com/dynamic-labs/DynamicAuth/commit/d826bf704814e69466f811186499839472d107fc))
20
+ * include l1 fee to gas estimation ([#4743](https://github.com/dynamic-labs/DynamicAuth/issues/4743)) ([601a7ab](https://github.com/dynamic-labs/DynamicAuth/commit/601a7ab07791e89b07eb70f2960ff855eff84a87))
21
+ * add FilterChain helper function ([#4632](https://github.com/dynamic-labs/DynamicAuth/issues/4632)) ([56d474b](https://github.com/dynamic-labs/DynamicAuth/commit/56d474bf50a566774179ae929c4587ef841809bc))
22
+ * allow exporting embedded wallets key/seed using email auth session ([#4580](https://github.com/dynamic-labs/DynamicAuth/issues/4580)) ([7b7a826](https://github.com/dynamic-labs/DynamicAuth/commit/7b7a8265ff16057284a50046f2310e1abdca5e50))
23
+ * add retry email otp in headless ([#4639](https://github.com/dynamic-labs/DynamicAuth/issues/4639)) ([70630e2](https://github.com/dynamic-labs/DynamicAuth/commit/70630e28e4b370581add65fc5f69c41c28346cc6))
24
+ * add tabs to wallet list view ([#4619](https://github.com/dynamic-labs/DynamicAuth/issues/4619)) ([c552a8e](https://github.com/dynamic-labs/DynamicAuth/commit/c552a8ec9a484b6015e95e9b3b30cd1cd151a45b))
25
+
26
+ ### Bug Fixes
27
+
28
+ * enable Banxa for all chains ([#4791](https://github.com/dynamic-labs/DynamicAuth/issues/4791)) ([#4823](https://github.com/dynamic-labs/DynamicAuth/issues/4823)) ([18f76f7](https://github.com/dynamic-labs/DynamicAuth/commit/18f76f7798c58009a70a8322e87e78047a6e33a0))
29
+ * fix universal links when using walletconnect ([#4773](https://github.com/dynamic-labs/DynamicAuth/issues/4773)) ([#4779](https://github.com/dynamic-labs/DynamicAuth/issues/4779)) ([3186ef8](https://github.com/dynamic-labs/DynamicAuth/commit/3186ef8896cebd750d2998ad9cc43e4bd11a594a))
30
+
2
31
  ## [1.2.0-alpha.1](https://github.com/dynamic-labs/DynamicAuth/compare/v1.2.0-alpha.0...v1.2.0-alpha.1) (2024-02-09)
3
32
 
4
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/starknet",
3
- "version": "1.2.0-alpha.1",
3
+ "version": "1.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -31,11 +31,11 @@
31
31
  "text-encoding": "0.7.0",
32
32
  "starknetkit": "1.1.3",
33
33
  "@dynamic-labs/sdk-api": "0.0.363",
34
- "@dynamic-labs/rpc-providers": "1.2.0-alpha.1",
35
- "@dynamic-labs/types": "1.2.0-alpha.1",
36
- "@dynamic-labs/utils": "1.2.0-alpha.1",
37
- "@dynamic-labs/wallet-book": "1.2.0-alpha.1",
38
- "@dynamic-labs/wallet-connector-core": "1.2.0-alpha.1"
34
+ "@dynamic-labs/rpc-providers": "1.3.0",
35
+ "@dynamic-labs/types": "1.3.0",
36
+ "@dynamic-labs/utils": "1.3.0",
37
+ "@dynamic-labs/wallet-book": "1.3.0",
38
+ "@dynamic-labs/wallet-connector-core": "1.3.0"
39
39
  },
40
40
  "peerDependencies": {}
41
41
  }
package/src/index.cjs CHANGED
@@ -6,6 +6,8 @@ var argentx = require('./wallets/argentx.cjs');
6
6
  var braavos = require('./wallets/braavos.cjs');
7
7
  var argentxMobile = require('./wallets/argentxMobile.cjs');
8
8
  var argentxWeb = require('./wallets/argentxWeb.cjs');
9
+ var bitget = require('./wallets/bitget.cjs');
10
+ var okx = require('./wallets/okx.cjs');
9
11
 
10
12
  /* eslint-disable @typescript-eslint/no-unused-vars */
11
13
  const StarknetWalletConnectors = (props) => [
@@ -13,6 +15,8 @@ const StarknetWalletConnectors = (props) => [
13
15
  braavos.Braavos,
14
16
  argentxMobile.ArgentXMobile,
15
17
  argentxWeb.ArgentXWeb,
18
+ okx.Okx,
19
+ bitget.Bitget,
16
20
  ];
17
21
 
18
22
  exports.StarknetWalletConnectors = StarknetWalletConnectors;
package/src/index.js CHANGED
@@ -2,6 +2,8 @@ import { ArgentX } from './wallets/argentx.js';
2
2
  import { Braavos } from './wallets/braavos.js';
3
3
  import { ArgentXMobile } from './wallets/argentxMobile.js';
4
4
  import { ArgentXWeb } from './wallets/argentxWeb.js';
5
+ import { Bitget } from './wallets/bitget.js';
6
+ import { Okx } from './wallets/okx.js';
5
7
 
6
8
  /* eslint-disable @typescript-eslint/no-unused-vars */
7
9
  const StarknetWalletConnectors = (props) => [
@@ -9,6 +11,8 @@ const StarknetWalletConnectors = (props) => [
9
11
  Braavos,
10
12
  ArgentXMobile,
11
13
  ArgentXWeb,
14
+ Okx,
15
+ Bitget,
12
16
  ];
13
17
 
14
18
  export { StarknetWalletConnectors };
@@ -47,6 +47,13 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
47
47
  };
48
48
  });
49
49
  }
50
+ // abstracting this method to a function due to some wallets (bitget)
51
+ // having non-standard use of the isConnected flag. This allows for us to use other flags to determine connectivity
52
+ isProviderConnected() {
53
+ var _a;
54
+ const wallet = this.getWallet();
55
+ return (_a = wallet === null || wallet === void 0 ? void 0 : wallet.isConnected) !== null && _a !== void 0 ? _a : false;
56
+ }
50
57
  getPublicClient() {
51
58
  var _a;
52
59
  return _tslib.__awaiter(this, void 0, void 0, function* () {
@@ -74,7 +81,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
74
81
  if (!wallet) {
75
82
  return Promise.resolve(undefined);
76
83
  }
77
- if (!wallet.isConnected) {
84
+ if (!this.isProviderConnected()) {
78
85
  yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
79
86
  }
80
87
  return Promise.resolve((_a = wallet.provider) === null || _a === void 0 ? void 0 : _a.getChainId());
@@ -84,7 +91,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
84
91
  return _tslib.__awaiter(this, void 0, void 0, function* () {
85
92
  const wallet = this.getWallet();
86
93
  try {
87
- if (wallet && !wallet.isConnected) {
94
+ if (wallet && !this.isProviderConnected()) {
88
95
  yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
89
96
  localStorage.setItem('dynamic_should_have_wallet', 'true');
90
97
  }
@@ -97,8 +104,10 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
97
104
  fetchPublicAddress() {
98
105
  return _tslib.__awaiter(this, void 0, void 0, function* () {
99
106
  const wallet = this.getWallet();
100
- yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
101
- yield this.connect();
107
+ if (wallet && !this.isProviderConnected()) {
108
+ yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
109
+ yield this.connect();
110
+ }
102
111
  return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
103
112
  });
104
113
  }
@@ -179,7 +188,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
179
188
  if (!wallet) {
180
189
  return [];
181
190
  }
182
- const needsReconnection = !wallet.isConnected && (yield wallet.isPreauthorized());
191
+ const needsReconnection = !this.isProviderConnected() && (yield wallet.isPreauthorized());
183
192
  if (needsReconnection) {
184
193
  /**
185
194
  * this is a hack for braavos
@@ -30,6 +30,7 @@ declare abstract class StarknetWalletConnector extends WalletConnectorBase {
30
30
  walletBook: WalletBookSchema;
31
31
  });
32
32
  createProviderFromConfig(networks: GenericNetwork[]): StarknetRpcProvider[];
33
+ isProviderConnected(): boolean;
33
34
  getPublicClient(): Promise<RpcProvider | undefined>;
34
35
  /**
35
36
  * returns starknet wallet network id
@@ -43,6 +43,13 @@ class StarknetWalletConnector extends WalletConnectorBase {
43
43
  };
44
44
  });
45
45
  }
46
+ // abstracting this method to a function due to some wallets (bitget)
47
+ // having non-standard use of the isConnected flag. This allows for us to use other flags to determine connectivity
48
+ isProviderConnected() {
49
+ var _a;
50
+ const wallet = this.getWallet();
51
+ return (_a = wallet === null || wallet === void 0 ? void 0 : wallet.isConnected) !== null && _a !== void 0 ? _a : false;
52
+ }
46
53
  getPublicClient() {
47
54
  var _a;
48
55
  return __awaiter(this, void 0, void 0, function* () {
@@ -70,7 +77,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
70
77
  if (!wallet) {
71
78
  return Promise.resolve(undefined);
72
79
  }
73
- if (!wallet.isConnected) {
80
+ if (!this.isProviderConnected()) {
74
81
  yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
75
82
  }
76
83
  return Promise.resolve((_a = wallet.provider) === null || _a === void 0 ? void 0 : _a.getChainId());
@@ -80,7 +87,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
80
87
  return __awaiter(this, void 0, void 0, function* () {
81
88
  const wallet = this.getWallet();
82
89
  try {
83
- if (wallet && !wallet.isConnected) {
90
+ if (wallet && !this.isProviderConnected()) {
84
91
  yield wallet.enable({ starknetVersion: this.STARKNET_VERSION });
85
92
  localStorage.setItem('dynamic_should_have_wallet', 'true');
86
93
  }
@@ -93,8 +100,10 @@ class StarknetWalletConnector extends WalletConnectorBase {
93
100
  fetchPublicAddress() {
94
101
  return __awaiter(this, void 0, void 0, function* () {
95
102
  const wallet = this.getWallet();
96
- yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
97
- yield this.connect();
103
+ if (wallet && !this.isProviderConnected()) {
104
+ yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
105
+ yield this.connect();
106
+ }
98
107
  return Promise.resolve(wallet === null || wallet === void 0 ? void 0 : wallet.selectedAddress);
99
108
  });
100
109
  }
@@ -175,7 +184,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
175
184
  if (!wallet) {
176
185
  return [];
177
186
  }
178
- const needsReconnection = !wallet.isConnected && (yield wallet.isPreauthorized());
187
+ const needsReconnection = !this.isProviderConnected() && (yield wallet.isPreauthorized());
179
188
  if (needsReconnection) {
180
189
  /**
181
190
  * this is a hack for braavos
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' | 'argentXMobile' | 'argentWebWallet';
2
+ export type StarknetWalletKey = 'braavos' | 'argentX' | 'argentXMobile' | 'argentWebWallet' | 'okxwallet' | 'bitkeep';
3
3
  export type StarknetWindowKey = `starknet_${StarknetWalletKey}` | 'starknet';
4
4
  type StarknetWindow = {
5
5
  [key in StarknetWindowKey]: StarknetWindowObject;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var starknetWalletConnector = require('../starknetWalletConnector.cjs');
6
+
7
+ class Bitget extends starknetWalletConnector["default"] {
8
+ constructor(opts) {
9
+ super('Bitget Starknet', 'bitkeep', opts);
10
+ this.overrideKey = 'bitgetstarknet';
11
+ }
12
+ // adding this method due to inconsistencies in isConnected flag on the window object
13
+ // the window object shows isConnected=true and no provider/account defined
14
+ isProviderConnected() {
15
+ var _a;
16
+ const wallet = this.getWallet();
17
+ 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;
18
+ }
19
+ }
20
+
21
+ exports.Bitget = Bitget;
@@ -0,0 +1,7 @@
1
+ import type { WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import StarknetProvider from '../starknetWalletConnector';
3
+ export declare class Bitget extends StarknetProvider implements WalletConnector {
4
+ overrideKey: string;
5
+ constructor(opts: any);
6
+ isProviderConnected(): boolean;
7
+ }
@@ -0,0 +1,17 @@
1
+ import StarknetWalletConnector from '../starknetWalletConnector.js';
2
+
3
+ class Bitget extends StarknetWalletConnector {
4
+ constructor(opts) {
5
+ super('Bitget Starknet', 'bitkeep', opts);
6
+ this.overrideKey = 'bitgetstarknet';
7
+ }
8
+ // adding this method due to inconsistencies in isConnected flag on the window object
9
+ // the window object shows isConnected=true and no provider/account defined
10
+ isProviderConnected() {
11
+ var _a;
12
+ const wallet = this.getWallet();
13
+ 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;
14
+ }
15
+ }
16
+
17
+ export { Bitget };
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var starknetWalletConnector = require('../starknetWalletConnector.cjs');
6
+
7
+ class Okx extends starknetWalletConnector["default"] {
8
+ constructor(opts) {
9
+ super('OKX Starknet', 'okxwallet', opts);
10
+ this.overrideKey = 'okxstarknet';
11
+ }
12
+ }
13
+
14
+ exports.Okx = Okx;
@@ -0,0 +1,6 @@
1
+ import type { WalletConnector } from '@dynamic-labs/wallet-connector-core';
2
+ import StarknetProvider from '../starknetWalletConnector';
3
+ export declare class Okx extends StarknetProvider implements WalletConnector {
4
+ overrideKey: string;
5
+ constructor(opts: any);
6
+ }
@@ -0,0 +1,10 @@
1
+ import StarknetWalletConnector from '../starknetWalletConnector.js';
2
+
3
+ class Okx extends StarknetWalletConnector {
4
+ constructor(opts) {
5
+ super('OKX Starknet', 'okxwallet', opts);
6
+ this.overrideKey = 'okxstarknet';
7
+ }
8
+ }
9
+
10
+ export { Okx };