@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 +29 -0
- package/package.json +6 -6
- package/src/index.cjs +4 -0
- package/src/index.js +4 -0
- package/src/starknetWalletConnector.cjs +14 -5
- package/src/starknetWalletConnector.d.ts +1 -0
- package/src/starknetWalletConnector.js +14 -5
- package/src/types.d.ts +1 -1
- package/src/wallets/bitget.cjs +21 -0
- package/src/wallets/bitget.d.ts +7 -0
- package/src/wallets/bitget.js +17 -0
- package/src/wallets/okx.cjs +14 -0
- package/src/wallets/okx.d.ts +6 -0
- package/src/wallets/okx.js +10 -0
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.
|
|
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.
|
|
35
|
-
"@dynamic-labs/types": "1.
|
|
36
|
-
"@dynamic-labs/utils": "1.
|
|
37
|
-
"@dynamic-labs/wallet-book": "1.
|
|
38
|
-
"@dynamic-labs/wallet-connector-core": "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 (!
|
|
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 && !
|
|
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
|
-
|
|
101
|
-
|
|
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 = !
|
|
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 (!
|
|
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 && !
|
|
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
|
-
|
|
97
|
-
|
|
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 = !
|
|
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
|
+
}
|