@dynamic-labs/starknet 4.0.0-alpha.3 → 4.0.0-alpha.30
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 +254 -0
- package/package.cjs +8 -0
- package/package.js +4 -0
- package/package.json +14 -19
- package/src/StarknetWalletConnector.cjs +232 -0
- package/src/StarknetWalletConnector.d.ts +58 -0
- package/src/StarknetWalletConnector.js +228 -0
- package/src/index.cjs +14 -13
- package/src/index.d.ts +15 -7
- package/src/index.js +13 -13
- package/src/types.d.ts +26 -11
- package/src/utils/convertors.cjs +1 -1
- package/src/utils/convertors.d.ts +1 -1
- package/src/utils/convertors.js +1 -1
- package/src/utils/starknetSnap.d.ts +2 -2
- package/src/wallet/StarknetWallet.cjs +0 -3
- package/src/wallet/StarknetWallet.d.ts +4 -4
- package/src/wallet/StarknetWallet.js +0 -3
- package/src/wallets/argent/argentMobile/argentMobile.cjs +73 -0
- package/src/wallets/argent/argentMobile/argentMobile.d.ts +16 -0
- package/src/wallets/argent/argentMobile/argentMobile.js +69 -0
- package/src/wallets/argent/base.cjs +50 -0
- package/src/wallets/argent/base.d.ts +5 -0
- package/src/wallets/argent/base.js +46 -0
- package/src/wallets/argent/injected/argentx.cjs +33 -0
- package/src/wallets/argent/injected/argentx.d.ts +8 -0
- package/src/wallets/argent/injected/argentx.js +29 -0
- package/src/wallets/argent/webwallet/webwallet.cjs +37 -0
- package/src/wallets/argent/webwallet/webwallet.d.ts +10 -0
- package/src/wallets/argent/webwallet/webwallet.js +33 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.cjs +34 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.d.ts +5 -0
- package/src/wallets/injected/fetchStarknetInjectedWalletConnectors.js +30 -0
- package/src/wallets/injected/injected.cjs +141 -0
- package/src/wallets/injected/injected.d.ts +10 -0
- package/src/wallets/injected/injected.js +137 -0
- package/src/wallets/{metamask.d.ts → injected/metamask.d.ts} +2 -4
- package/src/starknetWalletConnector.cjs +0 -320
- package/src/starknetWalletConnector.d.ts +0 -127
- package/src/starknetWalletConnector.js +0 -314
- package/src/utils/starknetSnap.cjs +0 -92
- package/src/utils/starknetSnap.js +0 -88
- package/src/wallets/argentx.cjs +0 -24
- package/src/wallets/argentx.d.ts +0 -8
- package/src/wallets/argentx.js +0 -20
- package/src/wallets/argentxBase.cjs +0 -50
- package/src/wallets/argentxBase.d.ts +0 -16
- package/src/wallets/argentxBase.js +0 -48
- package/src/wallets/argentxMobile.cjs +0 -100
- package/src/wallets/argentxMobile.d.ts +0 -13
- package/src/wallets/argentxMobile.js +0 -96
- package/src/wallets/argentxWeb.cjs +0 -57
- package/src/wallets/argentxWeb.d.ts +0 -8
- package/src/wallets/argentxWeb.js +0 -53
- package/src/wallets/bitget.cjs +0 -22
- package/src/wallets/bitget.d.ts +0 -7
- package/src/wallets/bitget.js +0 -18
- package/src/wallets/braavos.cjs +0 -37
- package/src/wallets/braavos.d.ts +0 -8
- package/src/wallets/braavos.js +0 -33
- package/src/wallets/metamask.cjs +0 -121
- package/src/wallets/metamask.js +0 -117
- package/src/wallets/okx.cjs +0 -15
- package/src/wallets/okx.d.ts +0 -6
- package/src/wallets/okx.js +0 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,258 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.0.0-alpha.30](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.29...v4.0.0-alpha.30) (2024-11-13)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ⚠ BREAKING CHANGES
|
|
6
|
+
|
|
7
|
+
* check wallet limitations from metadata (#7413)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* confirmation ui disabled for solana signall and signTransaction ([#7403](https://github.com/dynamic-labs/dynamic-auth/issues/7403)) ([98a352a](https://github.com/dynamic-labs/dynamic-auth/commit/98a352a826202abad734f00df1b3d19080ecf1e2))
|
|
12
|
+
* get starknet wallets directly from window ([#7421](https://github.com/dynamic-labs/dynamic-auth/issues/7421)) ([13e24f7](https://github.com/dynamic-labs/dynamic-auth/commit/13e24f70accf7747f5137fc3f2b05c00939c3af3))
|
|
13
|
+
* issue with SollanaWalletConnectorWithConfig embedded wallets ([#7405](https://github.com/dynamic-labs/dynamic-auth/issues/7405)) ([f08ecd6](https://github.com/dynamic-labs/dynamic-auth/commit/f08ecd6955faf191177bb9833b7a594637a6c4cc))
|
|
14
|
+
* set override key in starknet injected connector ([#7420](https://github.com/dynamic-labs/dynamic-auth/issues/7420)) ([74b2887](https://github.com/dynamic-labs/dynamic-auth/commit/74b28874661b3bad1e0a0f92aa9d3c987dc71225))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
* check wallet limitations from metadata ([#7413](https://github.com/dynamic-labs/dynamic-auth/issues/7413)) ([a419de6](https://github.com/dynamic-labs/dynamic-auth/commit/a419de643ea4ff240a27825c10670ba92589b71b))
|
|
18
|
+
|
|
19
|
+
## [4.0.0-alpha.29](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.28...v4.0.0-alpha.29) (2024-11-07)
|
|
20
|
+
|
|
21
|
+
## [4.0.0-alpha.28](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.27...v4.0.0-alpha.28) (2024-11-07)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### ⚠ BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* upgrade to starknet v6
|
|
27
|
+
See this guide for more details: https://starknetjs.com/docs/guides/migrate/
|
|
28
|
+
There are no code changes required on the Dynamic SDK side, however if you have installed the `starknet` package, you will need to upgrade to >= v6.11.0.
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* new transaction modal and ui for sign/signAll ([#7296](https://github.com/dynamic-labs/dynamic-auth/issues/7296)) ([05a8af1](https://github.com/dynamic-labs/dynamic-auth/commit/05a8af1eb772b2b8087ed96a54caf4b6ae8b79d2)), closes [#7297](https://github.com/dynamic-labs/dynamic-auth/issues/7297) [#7298](https://github.com/dynamic-labs/dynamic-auth/issues/7298)
|
|
33
|
+
* upgrade to starknet v6 ([#7189](https://github.com/dynamic-labs/dynamic-auth/issues/7189)) ([2a6e24e](https://github.com/dynamic-labs/dynamic-auth/commit/2a6e24e4178fcee671b381c28f6a681f4ce52c62))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* transaction confirmation modal popup ([#7368](https://github.com/dynamic-labs/dynamic-auth/issues/7368)) ([3c48658](https://github.com/dynamic-labs/dynamic-auth/commit/3c48658a62874d908bba8f06fb092ff5983ede16))
|
|
39
|
+
|
|
40
|
+
## [4.0.0-alpha.27](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.26...v4.0.0-alpha.27) (2024-11-06)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
* allows adding connection configuration for solana connectors ([#7354](https://github.com/dynamic-labs/dynamic-auth/issues/7354)) ([01e35ee](https://github.com/dynamic-labs/dynamic-auth/commit/01e35ee5bfe4605df48e4188a753111efe483048))
|
|
46
|
+
* allows passing solana connection config to dynamic client ([#7357](https://github.com/dynamic-labs/dynamic-auth/issues/7357)) ([6da14ce](https://github.com/dynamic-labs/dynamic-auth/commit/6da14ceb481147aea31d192fe268be43a8af80e9))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
### Bug Fixes
|
|
50
|
+
|
|
51
|
+
* check legacy vs eip1599 tx in global connectivity ([#7341](https://github.com/dynamic-labs/dynamic-auth/issues/7341)) ([b223ea7](https://github.com/dynamic-labs/dynamic-auth/commit/b223ea7a5ed5637e11da1040c631c48bc23ba76d))
|
|
52
|
+
* global connectivity multiple transactions in a row ([#7342](https://github.com/dynamic-labs/dynamic-auth/issues/7342)) ([d13c1af](https://github.com/dynamic-labs/dynamic-auth/commit/d13c1afec6b3680961621d8317f55549b3ed428f))
|
|
53
|
+
|
|
54
|
+
## [4.0.0-alpha.26](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.25...v4.0.0-alpha.26) (2024-11-04)
|
|
55
|
+
|
|
56
|
+
## [4.0.0-alpha.25](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.24...v4.0.0-alpha.25) (2024-11-01)
|
|
57
|
+
|
|
58
|
+
## [4.0.0-alpha.24](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.23...v4.0.0-alpha.24) (2024-10-31)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### Bug Fixes
|
|
62
|
+
|
|
63
|
+
* prevent use-wallet-options from reading empty wallet-book ([#7319](https://github.com/dynamic-labs/dynamic-auth/issues/7319)) ([fc1269e](https://github.com/dynamic-labs/dynamic-auth/commit/fc1269ed2b59ee17fc528d24a4d34936eb20c02f))
|
|
64
|
+
|
|
65
|
+
## [4.0.0-alpha.23](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.22...v4.0.0-alpha.23) (2024-10-31)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Features
|
|
69
|
+
|
|
70
|
+
* allow deletion of embedded wallets ([#7170](https://github.com/dynamic-labs/dynamic-auth/issues/7170)) ([40c5478](https://github.com/dynamic-labs/dynamic-auth/commit/40c54789594ba265a63b24f936da4e72b5b1c5b9))
|
|
71
|
+
|
|
72
|
+
## [4.0.0-alpha.22](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.21...v4.0.0-alpha.22) (2024-10-30)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
### Features
|
|
76
|
+
|
|
77
|
+
* **QNTM-522:** add wallet details card ([#7239](https://github.com/dynamic-labs/dynamic-auth/issues/7239)) ([0181c87](https://github.com/dynamic-labs/dynamic-auth/commit/0181c8727af575620525b8ea47b196945c347846))
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
* update check for wallet provider event listeners support ([#7303](https://github.com/dynamic-labs/dynamic-auth/issues/7303)) ([c5f3766](https://github.com/dynamic-labs/dynamic-auth/commit/c5f376691c87a0999991e477f9acd07eed4774aa))
|
|
83
|
+
|
|
84
|
+
## [4.0.0-alpha.21](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.20...v4.0.0-alpha.21) (2024-10-30)
|
|
85
|
+
|
|
86
|
+
## [4.0.0-alpha.20](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.19...v4.0.0-alpha.20) (2024-10-30)
|
|
87
|
+
|
|
88
|
+
## [4.0.0-alpha.19](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.18...v4.0.0-alpha.19) (2024-10-29)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### Bug Fixes
|
|
92
|
+
|
|
93
|
+
* ensure the client js will emit a change event after the value update ([#7284](https://github.com/dynamic-labs/dynamic-auth/issues/7284)) ([930d2e9](https://github.com/dynamic-labs/dynamic-auth/commit/930d2e9fdc75fd4a38da8ef6efc9d3e29152285b))
|
|
94
|
+
|
|
95
|
+
## [4.0.0-alpha.18](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.17...v4.0.0-alpha.18) (2024-10-29)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Bug Fixes
|
|
99
|
+
|
|
100
|
+
* **web-extension:** add color scheme style to prevent broken style ([#7247](https://github.com/dynamic-labs/dynamic-auth/issues/7247)) ([c525c50](https://github.com/dynamic-labs/dynamic-auth/commit/c525c50ac02997f3baf220fd2e67c6c4b3d10903))
|
|
101
|
+
|
|
102
|
+
## [4.0.0-alpha.17](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.16...v4.0.0-alpha.17) (2024-10-28)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Features
|
|
106
|
+
|
|
107
|
+
* add support for eclipse ([#7255](https://github.com/dynamic-labs/dynamic-auth/issues/7255)) ([70e9830](https://github.com/dynamic-labs/dynamic-auth/commit/70e9830c6c801e0298825b914ee825b578350cf0))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
### Bug Fixes
|
|
111
|
+
|
|
112
|
+
* adds missing packages to zerodev-extension package ([#7187](https://github.com/dynamic-labs/dynamic-auth/issues/7187)) ([052a7e7](https://github.com/dynamic-labs/dynamic-auth/commit/052a7e7c08d458996d1be56f7697448ad5a9a1c9))
|
|
113
|
+
* unpin reactivity package for vue projects ([#7246](https://github.com/dynamic-labs/dynamic-auth/issues/7246)) ([18013e0](https://github.com/dynamic-labs/dynamic-auth/commit/18013e00d6855f8b371c9edb97594a08764c3868))
|
|
114
|
+
|
|
115
|
+
## [4.0.0-alpha.16](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.15...v4.0.0-alpha.16) (2024-10-27)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
### Features
|
|
119
|
+
|
|
120
|
+
* add passkey to web-extension ([#7096](https://github.com/dynamic-labs/dynamic-auth/issues/7096)) ([a4b4643](https://github.com/dynamic-labs/dynamic-auth/commit/a4b4643e5307358425c878067bae095090f322ca))
|
|
121
|
+
* add social to web extension ([#7106](https://github.com/dynamic-labs/dynamic-auth/issues/7106)) ([422bc8e](https://github.com/dynamic-labs/dynamic-auth/commit/422bc8e2d276d960a7a76ad55a7b244c3fd83173))
|
|
122
|
+
* add support for compass and leap wallets ([9738749](https://github.com/dynamic-labs/dynamic-auth/commit/9738749bb5ed8e07a2582df255f683e4d408db93))
|
|
123
|
+
* add support for epicgames social ([#7220](https://github.com/dynamic-labs/dynamic-auth/issues/7220)) ([cb5bc30](https://github.com/dynamic-labs/dynamic-auth/commit/cb5bc30bc17d063bdaa9b427a9358b30124c4589))
|
|
124
|
+
* add web-extension to client ([#7180](https://github.com/dynamic-labs/dynamic-auth/issues/7180)) ([e2ccbb7](https://github.com/dynamic-labs/dynamic-auth/commit/e2ccbb77bdd0250d000a6cc4d89a2e5d7d2f4bb2))
|
|
125
|
+
|
|
126
|
+
## [4.0.0-alpha.15](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.14...v4.0.0-alpha.15) (2024-10-19)
|
|
127
|
+
|
|
128
|
+
## [4.0.0-alpha.14](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.13...v4.0.0-alpha.14) (2024-10-18)
|
|
129
|
+
|
|
130
|
+
## [4.0.0-alpha.13](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.12...v4.0.0-alpha.13) (2024-10-18)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### Bug Fixes
|
|
134
|
+
|
|
135
|
+
* improve displayed chain name in network switcher ([#7153](https://github.com/dynamic-labs/dynamic-auth/issues/7153)) ([55d2e5a](https://github.com/dynamic-labs/dynamic-auth/commit/55d2e5a9954bf0255b5caf7aba7a6f1f2e215967))
|
|
136
|
+
|
|
137
|
+
## [4.0.0-alpha.12](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.11...v4.0.0-alpha.12) (2024-10-18)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
### Features
|
|
141
|
+
|
|
142
|
+
* add support for xverse account change event ([#7114](https://github.com/dynamic-labs/dynamic-auth/issues/7114)) ([79df047](https://github.com/dynamic-labs/dynamic-auth/commit/79df04775edb297a339e2d74adcc873584a6d8af))
|
|
143
|
+
* solana embedded signall headless ([#7132](https://github.com/dynamic-labs/dynamic-auth/issues/7132)) ([fe16b71](https://github.com/dynamic-labs/dynamic-auth/commit/fe16b71a4c0ad775f8de87ca899cfdd1071f11d6))
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
### Bug Fixes
|
|
147
|
+
|
|
148
|
+
* bug where embeddedWalletCreated event was fired before listener … ([#7151](https://github.com/dynamic-labs/dynamic-auth/issues/7151)) ([ae9da56](https://github.com/dynamic-labs/dynamic-auth/commit/ae9da56850130491384a2d5f47c1617815dcce5b))
|
|
149
|
+
* edge case where wallet book fails to load ([#7148](https://github.com/dynamic-labs/dynamic-auth/issues/7148)) ([805dc6d](https://github.com/dynamic-labs/dynamic-auth/commit/805dc6d7cc4cdf0b23748d82b3bd8216d88d55b5))
|
|
150
|
+
* issues where native currency icons were incorrect ([#7126](https://github.com/dynamic-labs/dynamic-auth/issues/7126)) ([8b8891a](https://github.com/dynamic-labs/dynamic-auth/commit/8b8891a52397e17cc127ea3a09ade14c4b70a8ee))
|
|
151
|
+
* remove now-unused sessionTimeout from useSocial ([#7123](https://github.com/dynamic-labs/dynamic-auth/issues/7123)) ([7959a8a](https://github.com/dynamic-labs/dynamic-auth/commit/7959a8a4c8ceb76c5c4f1ae91af204bf9c5cae7b))
|
|
152
|
+
* Revert: Update Exodus extension version " ([#7130](https://github.com/dynamic-labs/dynamic-auth/issues/7130)) ([f2274ae](https://github.com/dynamic-labs/dynamic-auth/commit/f2274aefd29bb9f3fb6de8493e4a5f73946a5600)), closes [#7129](https://github.com/dynamic-labs/dynamic-auth/issues/7129)
|
|
153
|
+
* use embedded primaryChain when passing undefined chains list to createTurnkeyWallet ([#7149](https://github.com/dynamic-labs/dynamic-auth/issues/7149)) ([c73a3ae](https://github.com/dynamic-labs/dynamic-auth/commit/c73a3aeeda8045b936d218f7078ad79967c321ef))
|
|
154
|
+
|
|
155
|
+
## [4.0.0-alpha.11](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.10...v4.0.0-alpha.11) (2024-10-15)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
### Bug Fixes
|
|
159
|
+
|
|
160
|
+
* missing null check in property accessor ([#7122](https://github.com/dynamic-labs/dynamic-auth/issues/7122)) ([bbb5e76](https://github.com/dynamic-labs/dynamic-auth/commit/bbb5e76c1284edad2829605444dda24971027a57))
|
|
161
|
+
|
|
162
|
+
## [4.0.0-alpha.10](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.9...v4.0.0-alpha.10) (2024-10-15)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### Bug Fixes
|
|
166
|
+
|
|
167
|
+
* epicgames key name without dash ([#7119](https://github.com/dynamic-labs/dynamic-auth/issues/7119)) ([7388d6c](https://github.com/dynamic-labs/dynamic-auth/commit/7388d6cf98f6ee92e12003549dfd1ad81951119e))
|
|
168
|
+
|
|
169
|
+
## [4.0.0-alpha.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.8...v4.0.0-alpha.9) (2024-10-11)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
### Features
|
|
173
|
+
|
|
174
|
+
* add support for fordefi wallet ([#7109](https://github.com/dynamic-labs/dynamic-auth/issues/7109)) ([1adb6b1](https://github.com/dynamic-labs/dynamic-auth/commit/1adb6b15b7f8e9156207ac7addf4368d27c1e371))
|
|
175
|
+
* support ability to define additional oauth scopes ([#7105](https://github.com/dynamic-labs/dynamic-auth/issues/7105)) ([b303203](https://github.com/dynamic-labs/dynamic-auth/commit/b303203e8041c0cbf5f8968df0d3cde04ed1b22a))
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### Bug Fixes
|
|
179
|
+
|
|
180
|
+
* add eip6963 for exodus evm ([#7094](https://github.com/dynamic-labs/dynamic-auth/issues/7094)) ([c1ec5ef](https://github.com/dynamic-labs/dynamic-auth/commit/c1ec5ef4b6a531c563be4b690aa5f2bd4e7e6a16))
|
|
181
|
+
|
|
182
|
+
## [4.0.0-alpha.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) (2024-10-07)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
### Features
|
|
186
|
+
|
|
187
|
+
* add support for dynamic event callbacks in rn ([#6997](https://github.com/dynamic-labs/dynamic-auth/issues/6997)) ([f9ac402](https://github.com/dynamic-labs/dynamic-auth/commit/f9ac40259d9168dfe69dafd5fd44478ba0e69505))
|
|
188
|
+
* add support for dynamic handlers in rn ([#7032](https://github.com/dynamic-labs/dynamic-auth/issues/7032)) ([f61f926](https://github.com/dynamic-labs/dynamic-auth/commit/f61f92666b6df8483dde2c47304fd4fb02690f7d))
|
|
189
|
+
* Support for multi-chain AA ([#6829](https://github.com/dynamic-labs/dynamic-auth/issues/6829)) ([b4a0c0a](https://github.com/dynamic-labs/dynamic-auth/commit/b4a0c0a4de48231a3748826600407c25abf6894d))
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
### Bug Fixes
|
|
193
|
+
|
|
194
|
+
* persist isHardwareWalletEnabled on wallet connector ([#7025](https://github.com/dynamic-labs/dynamic-auth/issues/7025)) ([#7034](https://github.com/dynamic-labs/dynamic-auth/issues/7034)) ([4bfc301](https://github.com/dynamic-labs/dynamic-auth/commit/4bfc301d891f10db8c0bd31e5164c489a882c5c3))
|
|
195
|
+
|
|
196
|
+
## [4.0.0-alpha.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2024-10-03)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
### Features
|
|
200
|
+
|
|
201
|
+
* add account abstraction module to client ([#7002](https://github.com/dynamic-labs/dynamic-auth/issues/7002)) ([2f06975](https://github.com/dynamic-labs/dynamic-auth/commit/2f06975083dfa9d40537ef4a99b414eda1a68e01))
|
|
202
|
+
* add support for wallet events in rn ([#7061](https://github.com/dynamic-labs/dynamic-auth/issues/7061)) ([c7c4ce5](https://github.com/dynamic-labs/dynamic-auth/commit/c7c4ce51f27a2b84a1710c120d7006a00920c1e7))
|
|
203
|
+
* add zerodev extension for react native ([#7028](https://github.com/dynamic-labs/dynamic-auth/issues/7028)) ([858b8a8](https://github.com/dynamic-labs/dynamic-auth/commit/858b8a851cfa0cddc8e4559541b03992cf5ccdfc))
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
### Bug Fixes
|
|
207
|
+
|
|
208
|
+
* do not modify sol tx blockhash as tx could have been signed already ([#7050](https://github.com/dynamic-labs/dynamic-auth/issues/7050)) ([770edb4](https://github.com/dynamic-labs/dynamic-auth/commit/770edb49ddc231b75fb45a9f6d563f22e5185df2))
|
|
209
|
+
* ensure the correct auth mode is used on social redirect ([#7047](https://github.com/dynamic-labs/dynamic-auth/issues/7047)) ([7c27172](https://github.com/dynamic-labs/dynamic-auth/commit/7c271721d5ddf19e3fd1bf56ddb1d49e0e2bca07))
|
|
210
|
+
* prevent react native message timeout before sdk is ready ([#7051](https://github.com/dynamic-labs/dynamic-auth/issues/7051)) ([6421237](https://github.com/dynamic-labs/dynamic-auth/commit/6421237d677d788b824d53432c1a75b9d571aa78))
|
|
211
|
+
* update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
|
|
212
|
+
* use project settings sdk network for send flow ([#7011](https://github.com/dynamic-labs/dynamic-auth/issues/7011)) ([983e796](https://github.com/dynamic-labs/dynamic-auth/commit/983e79632762f71ee0502c92057a32ea985ae19c))
|
|
213
|
+
|
|
214
|
+
## [4.0.0-alpha.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2024-10-01)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
### ⚠ BREAKING CHANGES
|
|
218
|
+
|
|
219
|
+
* remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
|
|
220
|
+
|
|
221
|
+
### Features
|
|
222
|
+
|
|
223
|
+
* global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### Bug Fixes
|
|
227
|
+
|
|
228
|
+
* add popper context to send balance ([#7016](https://github.com/dynamic-labs/dynamic-auth/issues/7016)) ([73aa6f1](https://github.com/dynamic-labs/dynamic-auth/commit/73aa6f122afe0db660ebb654f3e018ae7bf445c5))
|
|
229
|
+
* add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
|
|
230
|
+
* don't re-fetch wallet address on network change ([#7019](https://github.com/dynamic-labs/dynamic-auth/issues/7019)) ([4e7900c](https://github.com/dynamic-labs/dynamic-auth/commit/4e7900cc24b3abda736bc81466eda7512cf7fc61))
|
|
231
|
+
* fix sign message with solana wallet standard provider ([#7014](https://github.com/dynamic-labs/dynamic-auth/issues/7014)) ([ffaf972](https://github.com/dynamic-labs/dynamic-auth/commit/ffaf972e8b190b0b8cd0103e0ef67bfdee6c8f7c))
|
|
232
|
+
* update wallet reference when user switches wallet in connect-only ([#7030](https://github.com/dynamic-labs/dynamic-auth/issues/7030)) ([75d9aa6](https://github.com/dynamic-labs/dynamic-auth/commit/75d9aa66f63fc5536caeff12d8b860c0ba86106f))
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
## [4.0.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2024-09-25)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
### Features
|
|
239
|
+
|
|
240
|
+
* add isInstalledOnBrowser prop to wallet options in useWalletOptions ([#6976](https://github.com/dynamic-labs/DynamicAuth/issues/6976)) ([0fda409](https://github.com/dynamic-labs/DynamicAuth/commit/0fda409b293c83d73869d791c3d38ac421dcdecb))
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### Bug Fixes
|
|
244
|
+
|
|
245
|
+
* **client:** return user profile when using sign in with external jwt ([#7004](https://github.com/dynamic-labs/DynamicAuth/issues/7004)) ([927cfb6](https://github.com/dynamic-labs/DynamicAuth/commit/927cfb69f3dd7f8b00e3f0f975277a84c99c830b))
|
|
246
|
+
* react-native-extension to include esm ([#6965](https://github.com/dynamic-labs/DynamicAuth/issues/6965)) ([336825b](https://github.com/dynamic-labs/DynamicAuth/commit/336825b50142002bbc67c6f8850bd63030bf384b))
|
|
247
|
+
|
|
248
|
+
## [4.0.0-alpha.4](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.3...v4.0.0-alpha.4) (2024-09-23)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
### Bug Fixes
|
|
252
|
+
|
|
253
|
+
* issue where builtin stream module was a dependency ([#6968](https://github.com/dynamic-labs/DynamicAuth/issues/6968)) ([0661129](https://github.com/dynamic-labs/DynamicAuth/commit/0661129920ba70ebbcd4d17ee5aa988c51d1b477))
|
|
254
|
+
* update in memory secure storage ([#6955](https://github.com/dynamic-labs/DynamicAuth/issues/6955)) ([697fc20](https://github.com/dynamic-labs/DynamicAuth/commit/697fc20740b243fa31ecf06e8b2ed9d09932a544))
|
|
255
|
+
|
|
2
256
|
## [4.0.0-alpha.3](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.2...v4.0.0-alpha.3) (2024-09-20)
|
|
3
257
|
|
|
4
258
|
|
package/package.cjs
ADDED
package/package.js
ADDED
package/package.json
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/starknet",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
4
|
-
"repository": {
|
|
5
|
-
"type": "git",
|
|
6
|
-
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
7
|
-
"directory": "packages/starknet"
|
|
8
|
-
},
|
|
3
|
+
"version": "4.0.0-alpha.30",
|
|
9
4
|
"description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
|
|
10
|
-
"bugs": {
|
|
11
|
-
"url": "https://github.com/dynamic-labs/DynamicAuth/issues"
|
|
12
|
-
},
|
|
13
|
-
"homepage": "https://github.com/dynamic-labs/DynamicAuth#readme",
|
|
14
5
|
"author": "Dynamic Labs, Inc.",
|
|
15
6
|
"license": "MIT",
|
|
16
7
|
"main": "./src/index.cjs",
|
|
@@ -25,18 +16,22 @@
|
|
|
25
16
|
},
|
|
26
17
|
"./package.json": "./package.json"
|
|
27
18
|
},
|
|
19
|
+
"homepage": "https://www.dynamic.xyz/",
|
|
28
20
|
"dependencies": {
|
|
29
|
-
"starknet": "
|
|
30
|
-
"
|
|
21
|
+
"@starknet-io/types-js": "0.7.7",
|
|
22
|
+
"starknet": "6.11.0",
|
|
23
|
+
"starknetkit": "2.3.3",
|
|
31
24
|
"text-encoding": "0.7.0",
|
|
32
|
-
"
|
|
33
|
-
"@dynamic-labs/sdk-api-core": "0.0.534",
|
|
25
|
+
"@dynamic-labs/sdk-api-core": "0.0.563",
|
|
34
26
|
"@module-federation/runtime": "0.1.18",
|
|
35
|
-
"@dynamic-labs/
|
|
36
|
-
"@dynamic-labs/
|
|
37
|
-
"@dynamic-labs/
|
|
38
|
-
"@dynamic-labs/
|
|
39
|
-
"@dynamic-labs/
|
|
27
|
+
"@dynamic-labs/assert-package-version": "4.0.0-alpha.30",
|
|
28
|
+
"@dynamic-labs/logger": "4.0.0-alpha.30",
|
|
29
|
+
"@dynamic-labs/rpc-providers": "4.0.0-alpha.30",
|
|
30
|
+
"@dynamic-labs/starknet-core": "4.0.0-alpha.30",
|
|
31
|
+
"@dynamic-labs/utils": "4.0.0-alpha.30",
|
|
32
|
+
"@dynamic-labs/wallet-book": "4.0.0-alpha.30",
|
|
33
|
+
"@dynamic-labs/wallet-connector-core": "4.0.0-alpha.30",
|
|
34
|
+
"assert": "2.1.0"
|
|
40
35
|
},
|
|
41
36
|
"peerDependencies": {}
|
|
42
37
|
}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../_virtual/_tslib.cjs');
|
|
7
|
+
var starknet = require('starknet');
|
|
8
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
10
|
+
var logger = require('@dynamic-labs/logger');
|
|
11
|
+
var constants = require('./constants.cjs');
|
|
12
|
+
var ethereumContractAbi = require('./ethereumContractAbi.cjs');
|
|
13
|
+
var convertors = require('./utils/convertors.cjs');
|
|
14
|
+
var StarknetWallet = require('./wallet/StarknetWallet.cjs');
|
|
15
|
+
|
|
16
|
+
class StarknetWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
17
|
+
constructor(name, id, opts) {
|
|
18
|
+
var _a;
|
|
19
|
+
super(opts);
|
|
20
|
+
this.ChainWallet = StarknetWallet.StarknetWallet;
|
|
21
|
+
this.connectedChain = 'STARK';
|
|
22
|
+
this.supportedChains = ['STARK'];
|
|
23
|
+
this.switchNetworkOnlyFromWallet = true;
|
|
24
|
+
/** required for metamask snap integration as MM snaps don't have event listeners */
|
|
25
|
+
this.canSetEventListeners = true;
|
|
26
|
+
this.name = name;
|
|
27
|
+
this.id = id;
|
|
28
|
+
this.starknetNetworks = opts.starknetNetworks;
|
|
29
|
+
this.chainRpcProviders = opts.chainRpcProviders;
|
|
30
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerStarknetProviders();
|
|
31
|
+
this.walletBookWallet = opts.walletBookWallet;
|
|
32
|
+
this.logger = new logger.Logger(this.name);
|
|
33
|
+
}
|
|
34
|
+
connect() {
|
|
35
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
yield this.getAddress();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getAddress() {
|
|
40
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
var _a;
|
|
42
|
+
if ((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.account) {
|
|
43
|
+
return this.walletData.account;
|
|
44
|
+
}
|
|
45
|
+
this.logger.debug('[getAddress] Prompting new connection');
|
|
46
|
+
const { wallet, data } = yield this.prompt({
|
|
47
|
+
silently: false,
|
|
48
|
+
});
|
|
49
|
+
this.logger.debug(`[getAddress] Connection returned account: ${data === null || data === void 0 ? void 0 : data.account}, wallet: ${wallet}`);
|
|
50
|
+
if (!wallet || !data) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
this.wallet = wallet;
|
|
54
|
+
this.walletData = data;
|
|
55
|
+
this.setupEventListeners();
|
|
56
|
+
return this.walletData.account;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* returns starknet wallet network id
|
|
61
|
+
*/
|
|
62
|
+
getNetwork() {
|
|
63
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
var _a;
|
|
65
|
+
if (!((_a = this.walletData) === null || _a === void 0 ? void 0 : _a.chainId)) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return starknet.num.toHex(this.walletData.chainId);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
getBalance(address) {
|
|
72
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const wallet = yield this.getWalletAccount();
|
|
74
|
+
if (!wallet) {
|
|
75
|
+
this.logger.error('Could not find provider for getting balance');
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
const contract = new starknet.Contract(ethereumContractAbi, constants.ETH_STARKNET_ADDRESS, wallet);
|
|
79
|
+
try {
|
|
80
|
+
const { balance } = yield contract.balanceOf(address);
|
|
81
|
+
/**
|
|
82
|
+
* Dividing by 1e18 as the returned balance is a Gwei number.
|
|
83
|
+
* Read more here: https://www.investopedia.com/terms/g/gwei-ethereum.asp#toc-what-is-gwei
|
|
84
|
+
*/
|
|
85
|
+
return (Number(starknet.cairo.uint256(balance.low).low) / 1e18).toFixed(6);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
this.logger.error(error);
|
|
89
|
+
throw new utils.DynamicError('Something went wrong');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
signMessage(messageToSign) {
|
|
94
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const [walletAddress, chainId] = yield Promise.all([
|
|
96
|
+
this.getAddress(),
|
|
97
|
+
this.getNetwork(),
|
|
98
|
+
]);
|
|
99
|
+
const assertions = [
|
|
100
|
+
[walletAddress, 'No address for wallet'],
|
|
101
|
+
[chainId, 'No chainId for wallet'],
|
|
102
|
+
[this.wallet, 'No wallet provider'],
|
|
103
|
+
];
|
|
104
|
+
for (const [value, message] of assertions) {
|
|
105
|
+
if (!value) {
|
|
106
|
+
this.logger.error(`[signMessage] ${message}. Make sure \`connect\` was called first`);
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const encodedMessage = convertors.formatTypedDataMessage(messageToSign, chainId);
|
|
111
|
+
// justification: performing assertion above
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
113
|
+
const signature = yield this.wallet.request({
|
|
114
|
+
params: encodedMessage,
|
|
115
|
+
type: 'wallet_signTypedData',
|
|
116
|
+
});
|
|
117
|
+
return signature === null || signature === void 0 ? void 0 : signature.join(',');
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
getWalletAccount() {
|
|
121
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
if (!this.wallet) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
return new starknet.WalletAccount(yield this.getProvider(), this.wallet);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
getProvider() {
|
|
129
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
const rpcUrl = yield this.resolveRpcUrl();
|
|
131
|
+
this.logger.debug(`[getProvider] using rpcUrl: ${rpcUrl}`);
|
|
132
|
+
return new starknet.RpcProvider({ nodeUrl: rpcUrl });
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
isInstalledOnBrowser() {
|
|
136
|
+
return Boolean(window[`starknet_${this.id}`]);
|
|
137
|
+
}
|
|
138
|
+
endSession() {
|
|
139
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
this.teardownEventListeners();
|
|
141
|
+
this.wallet = undefined;
|
|
142
|
+
this.walletData = undefined;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
setupEventListeners() {
|
|
146
|
+
if (!this.canSetEventListeners)
|
|
147
|
+
return;
|
|
148
|
+
if (!this.wallet) {
|
|
149
|
+
this.logger.debug('[setupEventListeners] Not connected, returning early');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
this.handleAccountChange = (accounts) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
var _a;
|
|
154
|
+
this.logger.debug(`[accountsChanged] Received argument: ${accounts === null || accounts === void 0 ? void 0 : accounts.toString()}`);
|
|
155
|
+
if (!accounts || accounts[0] === null) {
|
|
156
|
+
this.emit('disconnect');
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const [address] = accounts;
|
|
160
|
+
if (address) {
|
|
161
|
+
this.walletData = {
|
|
162
|
+
account: address,
|
|
163
|
+
chainId: (_a = this.walletData) === null || _a === void 0 ? void 0 : _a.chainId,
|
|
164
|
+
};
|
|
165
|
+
this.emit('accountChange', { accounts: [address.toString()] });
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
this.handleNetworkChange = (chainId) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
var _b;
|
|
170
|
+
this.logger.debug(`[networkChanged] Received argument: ${chainId === null || chainId === void 0 ? void 0 : chainId.toString()}`);
|
|
171
|
+
if (!chainId) {
|
|
172
|
+
this.emit('disconnect');
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.walletData = {
|
|
176
|
+
account: (_b = this.walletData) === null || _b === void 0 ? void 0 : _b.account,
|
|
177
|
+
chainId: BigInt(chainId),
|
|
178
|
+
};
|
|
179
|
+
this.emit('chainChange', { chain: chainId });
|
|
180
|
+
});
|
|
181
|
+
this.logger.debug('[setupEventListeners] Setting up accountsChanged and networkChanged');
|
|
182
|
+
this.wallet.on('accountsChanged', this.handleAccountChange);
|
|
183
|
+
this.wallet.on('networkChanged', this.handleNetworkChange);
|
|
184
|
+
}
|
|
185
|
+
teardownEventListeners() {
|
|
186
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
187
|
+
var _a, _b;
|
|
188
|
+
if (!this.canSetEventListeners)
|
|
189
|
+
return;
|
|
190
|
+
if (this.handleAccountChange) {
|
|
191
|
+
(_a = this.wallet) === null || _a === void 0 ? void 0 : _a.off('accountsChanged', this.handleAccountChange);
|
|
192
|
+
this.handleAccountChange = undefined;
|
|
193
|
+
}
|
|
194
|
+
if (this.handleNetworkChange) {
|
|
195
|
+
(_b = this.wallet) === null || _b === void 0 ? void 0 : _b.off('networkChanged', this.handleNetworkChange);
|
|
196
|
+
this.handleNetworkChange = undefined;
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
resolveRpcUrl() {
|
|
201
|
+
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
202
|
+
var _a;
|
|
203
|
+
const chainId = yield this.getNetwork();
|
|
204
|
+
if (!chainId) {
|
|
205
|
+
this.logger.warn('[resolveRpcUrl] `getNetwork` returned undefined');
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
const networkConfig = this.starknetNetworks.find((config) => config.chainId === chainId);
|
|
209
|
+
if (!networkConfig) {
|
|
210
|
+
this.logger.warn(`[resolveRpcUrl] Network configuration for chainId \`${chainId}\` is not found in starknetNetworks`);
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
return (((_a = networkConfig.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || networkConfig.rpcUrls[0]);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
mapChainIdToNetworkName(chainIdOrNetworkName) {
|
|
217
|
+
if (chainIdOrNetworkName === starknet.constants.StarknetChainId.SN_MAIN ||
|
|
218
|
+
chainIdOrNetworkName === starknet.constants.NetworkName.SN_MAIN) {
|
|
219
|
+
return starknet.constants.NetworkName.SN_MAIN;
|
|
220
|
+
}
|
|
221
|
+
else if (chainIdOrNetworkName === starknet.constants.StarknetChainId.SN_SEPOLIA ||
|
|
222
|
+
chainIdOrNetworkName === starknet.constants.NetworkName.SN_SEPOLIA) {
|
|
223
|
+
return starknet.constants.NetworkName.SN_SEPOLIA;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
this.logger.error('Unknown chainId', chainIdOrNetworkName);
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
exports.StarknetWalletConnector = StarknetWalletConnector;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { constants, WalletAccount, RpcProvider } from 'starknet';
|
|
2
|
+
import { WALLET_API, StarknetWindowObject } from '@starknet-io/types-js';
|
|
3
|
+
import { Chain, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { NetworkConfiguration } from '@dynamic-labs/sdk-api-core';
|
|
5
|
+
import { WalletSchema } from '@dynamic-labs/wallet-book';
|
|
6
|
+
import { Logger } from '@dynamic-labs/logger';
|
|
7
|
+
import { PromptOptions, PromptResult, StarknetWalletConnectorProps, WalletData } from './types';
|
|
8
|
+
import { StarknetWallet } from './wallet';
|
|
9
|
+
export declare abstract class StarknetWalletConnector extends WalletConnectorBase<typeof StarknetWallet> {
|
|
10
|
+
/** the name of the connector, e.g. "Argent X", "Braavos" */
|
|
11
|
+
name: string;
|
|
12
|
+
/**
|
|
13
|
+
* the string identifier of the connector as surfaced by `get-starknet-core` or `starknetkit`
|
|
14
|
+
* this is used to prompt the correct extension, e.g. the argentX browser extension
|
|
15
|
+
*/
|
|
16
|
+
id: string;
|
|
17
|
+
ChainWallet: typeof StarknetWallet;
|
|
18
|
+
connectedChain: Chain;
|
|
19
|
+
supportedChains: Chain[];
|
|
20
|
+
handleAccountChange: WALLET_API.AccountChangeEventHandler | undefined;
|
|
21
|
+
handleNetworkChange: WALLET_API.NetworkChangeEventHandler | undefined;
|
|
22
|
+
switchNetworkOnlyFromWallet: boolean;
|
|
23
|
+
/** the starknet networks configuration from redcoast */
|
|
24
|
+
starknetNetworks: NetworkConfiguration[];
|
|
25
|
+
/** required for metamask snap integration as MM snaps don't have event listeners */
|
|
26
|
+
canSetEventListeners: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* used to obtain a WalletAccount to interact with the wallet
|
|
29
|
+
*/
|
|
30
|
+
wallet: StarknetWindowObject | undefined;
|
|
31
|
+
/** The wallet metadata. Replace with _metadata once inAppBrowser is migrated */
|
|
32
|
+
protected walletBookWallet: WalletSchema;
|
|
33
|
+
/**
|
|
34
|
+
* used to track wallet state (account and chain)
|
|
35
|
+
*/
|
|
36
|
+
walletData: WalletData | undefined;
|
|
37
|
+
logger: Logger;
|
|
38
|
+
constructor(name: string, id: string, opts: StarknetWalletConnectorProps);
|
|
39
|
+
/** implementing classes should use starknetkit or get-starknet-core functions here */
|
|
40
|
+
abstract prompt(options: PromptOptions): Promise<PromptResult>;
|
|
41
|
+
connect(): Promise<void>;
|
|
42
|
+
getAddress(): Promise<string | undefined>;
|
|
43
|
+
/**
|
|
44
|
+
* returns starknet wallet network id
|
|
45
|
+
*/
|
|
46
|
+
getNetwork(): Promise<string | undefined>;
|
|
47
|
+
getBalance(address: string): Promise<string | undefined>;
|
|
48
|
+
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
49
|
+
getWalletAccount(): Promise<WalletAccount | undefined>;
|
|
50
|
+
getProvider(): Promise<RpcProvider>;
|
|
51
|
+
isInstalledOnBrowser(): boolean;
|
|
52
|
+
endSession(): Promise<void>;
|
|
53
|
+
setupEventListeners(): void;
|
|
54
|
+
teardownEventListeners(): Promise<void>;
|
|
55
|
+
protected resolveRpcUrl(): Promise<string | undefined>;
|
|
56
|
+
protected mapChainIdToNetworkName(chainIdOrNetworkName: string): constants.NetworkName | undefined;
|
|
57
|
+
}
|
|
58
|
+
export type StarknetWalletConnectorType = StarknetWalletConnector;
|