@dynamic-labs/starknet 1.2.0 → 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 +12 -0
- package/package.json +6 -6
- package/src/index.cjs +4 -0
- package/src/index.js +4 -0
- package/src/starknetWalletConnector.cjs +11 -4
- package/src/starknetWalletConnector.d.ts +1 -0
- package/src/starknetWalletConnector.js +11 -4
- 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,16 @@
|
|
|
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
|
+
|
|
2
14
|
## [1.2.0](https://github.com/dynamic-labs/DynamicAuth/compare/v1.2.0-alpha.1...v1.2.0) (2024-02-29)
|
|
3
15
|
|
|
4
16
|
|
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,7 +104,7 @@ 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
|
-
if (wallet && !(
|
|
107
|
+
if (wallet && !this.isProviderConnected()) {
|
|
101
108
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
|
|
102
109
|
yield this.connect();
|
|
103
110
|
}
|
|
@@ -181,7 +188,7 @@ class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
181
188
|
if (!wallet) {
|
|
182
189
|
return [];
|
|
183
190
|
}
|
|
184
|
-
const needsReconnection = !
|
|
191
|
+
const needsReconnection = !this.isProviderConnected() && (yield wallet.isPreauthorized());
|
|
185
192
|
if (needsReconnection) {
|
|
186
193
|
/**
|
|
187
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,7 +100,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
93
100
|
fetchPublicAddress() {
|
|
94
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
102
|
const wallet = this.getWallet();
|
|
96
|
-
if (wallet && !(
|
|
103
|
+
if (wallet && !this.isProviderConnected()) {
|
|
97
104
|
yield (wallet === null || wallet === void 0 ? void 0 : wallet.isPreauthorized());
|
|
98
105
|
yield this.connect();
|
|
99
106
|
}
|
|
@@ -177,7 +184,7 @@ class StarknetWalletConnector extends WalletConnectorBase {
|
|
|
177
184
|
if (!wallet) {
|
|
178
185
|
return [];
|
|
179
186
|
}
|
|
180
|
-
const needsReconnection = !
|
|
187
|
+
const needsReconnection = !this.isProviderConnected() && (yield wallet.isPreauthorized());
|
|
181
188
|
if (needsReconnection) {
|
|
182
189
|
/**
|
|
183
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
|
+
}
|