@dynamic-labs/stellar 4.91.2 → 4.91.4
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 +20 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +8 -8
- package/src/connectors/DynamicWaasStellarConnector/DynamicWaasStellarConnector.cjs +6 -6
- package/src/connectors/DynamicWaasStellarConnector/DynamicWaasStellarConnector.d.ts +13 -1
- package/src/connectors/DynamicWaasStellarConnector/DynamicWaasStellarConnector.js +6 -6
- package/src/connectors/StellarWalletConnector/StellarWalletConnector.cjs +6 -6
- package/src/connectors/StellarWalletConnector/StellarWalletConnector.js +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.91.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.3...v4.91.4) (2026-07-01)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* conditionally use /op/ route for AA transactions based on block explorer support ([#11628](https://github.com/dynamic-labs/dynamic-auth/issues/11628)) ([95822dc](https://github.com/dynamic-labs/dynamic-auth/commit/95822dc0edbcd739afe870f0b3881555fdb17eb6))
|
|
8
|
+
* require error codes in all SDK error classes ([#11761](https://github.com/dynamic-labs/dynamic-auth/issues/11761)) ([5744811](https://github.com/dynamic-labs/dynamic-auth/commit/5744811efdd1e415aaf51eec5b3300b323ec1347))
|
|
9
|
+
|
|
10
|
+
### [4.91.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.2...v4.91.3) (2026-06-30)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **bitcoin:** detect late-registering wallet-standard wallets (DYNT-1210) ([#11747](https://github.com/dynamic-labs/dynamic-auth/issues/11747)) ([17809f6](https://github.com/dynamic-labs/dynamic-auth/commit/17809f6e811fe101367cc31a2d899a8d0b0d107e))
|
|
16
|
+
* fetch onramp providers lazily instead of eagerly on mount ([#11767](https://github.com/dynamic-labs/dynamic-auth/issues/11767)) ([3ee6708](https://github.com/dynamic-labs/dynamic-auth/commit/3ee67087142ae1942f865e0ab37b7108700b3327))
|
|
17
|
+
* **iframe-setup:** sync parent URL to iframe on pushState/replaceState ([#11751](https://github.com/dynamic-labs/dynamic-auth/issues/11751)) ([c8be3af](https://github.com/dynamic-labs/dynamic-auth/commit/c8be3afc301f77b349f23398bed940ce40f93b73))
|
|
18
|
+
* **nonce:** fetch nonce on demand when missing before wallet verification ([#11753](https://github.com/dynamic-labs/dynamic-auth/issues/11753)) ([4f01a21](https://github.com/dynamic-labs/dynamic-auth/commit/4f01a21b6081c852f32868c8a5e04d70aaf280a2)), closes [#1](https://github.com/dynamic-labs/dynamic-auth/issues/1)
|
|
19
|
+
* **react-native-extension:** arm loading timer before setUrl to cover pre-onLoadStart gap ([#11764](https://github.com/dynamic-labs/dynamic-auth/issues/11764)) ([31f2015](https://github.com/dynamic-labs/dynamic-auth/commit/31f20151a4b59279f9c133b723e50de771b06436))
|
|
20
|
+
* **webview-controller:** unwrap ZeroDev smart wallet for native gasless ([#11758](https://github.com/dynamic-labs/dynamic-auth/issues/11758)) ([989714e](https://github.com/dynamic-labs/dynamic-auth/commit/989714e414556868c8e0c54401aac1ed7354331b))
|
|
21
|
+
|
|
2
22
|
### [4.91.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.1...v4.91.2) (2026-06-26)
|
|
3
23
|
|
|
4
24
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/stellar",
|
|
3
|
-
"version": "4.91.
|
|
3
|
+
"version": "4.91.4",
|
|
4
4
|
"description": "A React SDK for implementing Stellar wallet web3 authentication and authorization to your website.",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
"@dynamic-labs-sdk/client": "1.12.1",
|
|
22
22
|
"@dynamic-labs/sdk-api-core": "0.0.1046",
|
|
23
23
|
"@stellar/stellar-sdk": "14.4.3",
|
|
24
|
-
"@dynamic-labs/wallet-connector-core": "4.91.
|
|
25
|
-
"@dynamic-labs/assert-package-version": "4.91.
|
|
24
|
+
"@dynamic-labs/wallet-connector-core": "4.91.4",
|
|
25
|
+
"@dynamic-labs/assert-package-version": "4.91.4",
|
|
26
26
|
"@lobstrco/signer-extension-api": "2.0.0",
|
|
27
27
|
"@stellar/freighter-api": "6.0.1",
|
|
28
|
-
"@dynamic-labs/logger": "4.91.
|
|
29
|
-
"@dynamic-labs/types": "4.91.
|
|
30
|
-
"@dynamic-labs/utils": "4.91.
|
|
31
|
-
"@dynamic-labs/waas": "4.91.
|
|
32
|
-
"@dynamic-labs/wallet-book": "4.91.
|
|
28
|
+
"@dynamic-labs/logger": "4.91.4",
|
|
29
|
+
"@dynamic-labs/types": "4.91.4",
|
|
30
|
+
"@dynamic-labs/utils": "4.91.4",
|
|
31
|
+
"@dynamic-labs/waas": "4.91.4",
|
|
32
|
+
"@dynamic-labs/wallet-book": "4.91.4",
|
|
33
33
|
"eventemitter3": "5.0.1"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {}
|
|
@@ -100,7 +100,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
100
100
|
var _a;
|
|
101
101
|
const signedSessionId = yield ((_a = this.getSignedSessionId) === null || _a === void 0 ? void 0 : _a.call(this));
|
|
102
102
|
if (!signedSessionId) {
|
|
103
|
-
throw new utils.DynamicError('Signed session ID is required');
|
|
103
|
+
throw new utils.DynamicError('Signed session ID is required', 'signed_session_id_is_required');
|
|
104
104
|
}
|
|
105
105
|
return signedSessionId;
|
|
106
106
|
});
|
|
@@ -122,7 +122,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
122
122
|
signedSessionId,
|
|
123
123
|
});
|
|
124
124
|
if (!targetWallet) {
|
|
125
|
-
throw new utils.DynamicError('Account not found');
|
|
125
|
+
throw new utils.DynamicError('Account not found', 'account_not_found');
|
|
126
126
|
}
|
|
127
127
|
const isWalletActive = walletConnectorCore.isSameAddress(targetWallet.accountAddress, this.activeAccountAddress || '', this.connectedChain);
|
|
128
128
|
if (!isWalletActive) {
|
|
@@ -189,7 +189,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
189
189
|
this.ensureActiveAccountFromVerifiedCredentials();
|
|
190
190
|
const walletClient = yield this.getWaasWalletClient();
|
|
191
191
|
if (!this.activeAccountAddress) {
|
|
192
|
-
throw new utils.DynamicError('Active account address is required');
|
|
192
|
+
throw new utils.DynamicError('Active account address is required', 'active_account_address_is_required');
|
|
193
193
|
}
|
|
194
194
|
const signedSessionId = yield this.requireSignedSessionId();
|
|
195
195
|
const mfaToken = yield ((_a = this.getMfaToken) === null || _a === void 0 ? void 0 : _a.call(this, {
|
|
@@ -248,7 +248,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
248
248
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
249
249
|
var _a, _b, _c;
|
|
250
250
|
if (!this.activeAccountAddress) {
|
|
251
|
-
throw new utils.DynamicError('Active account address is required');
|
|
251
|
+
throw new utils.DynamicError('Active account address is required', 'active_account_address_is_required');
|
|
252
252
|
}
|
|
253
253
|
const walletClient = yield this.getWaasWalletClient();
|
|
254
254
|
const signedSessionId = yield this.requireSignedSessionId();
|
|
@@ -296,7 +296,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
296
296
|
const horizonServer = yield this.getHorizonServer();
|
|
297
297
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
298
298
|
if (!horizonServer) {
|
|
299
|
-
throw new utils.DynamicError('No Horizon server available');
|
|
299
|
+
throw new utils.DynamicError('No Horizon server available', 'no_horizon_server_available');
|
|
300
300
|
}
|
|
301
301
|
return new StellarUiTransaction.StellarUiTransaction({
|
|
302
302
|
from,
|
|
@@ -304,7 +304,7 @@ class DynamicWaasStellarConnector extends waas.withDynamicWaas(StellarWalletConn
|
|
|
304
304
|
networkPassphrase,
|
|
305
305
|
onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
306
306
|
if (!transaction) {
|
|
307
|
-
throw new utils.DynamicError('Transaction must be provided');
|
|
307
|
+
throw new utils.DynamicError('Transaction must be provided', 'transaction_must_be_provided');
|
|
308
308
|
}
|
|
309
309
|
const signedXdr = yield this.signTransaction(transaction.toXDR());
|
|
310
310
|
const signedTransaction = stellarSdk.TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
|
|
@@ -80,7 +80,12 @@ declare const DynamicWaasStellarConnector_base: (abstract new (...args: any[]) =
|
|
|
80
80
|
thresholdSignatureScheme?: string | undefined;
|
|
81
81
|
publicAddressCheck?: string | undefined;
|
|
82
82
|
addressType?: string | undefined;
|
|
83
|
-
legacyWalletId?: string | undefined;
|
|
83
|
+
legacyWalletId?: string | undefined; /**
|
|
84
|
+
* Validates that the expected wallet address matches the active wallet
|
|
85
|
+
* Updates the active account address if it doesn't match
|
|
86
|
+
* @param expectedAddress - The expected wallet address to validate
|
|
87
|
+
* @throws {DynamicError} If signed session ID is not available or account is not found
|
|
88
|
+
*/
|
|
84
89
|
password?: string | undefined;
|
|
85
90
|
}): Promise<void>;
|
|
86
91
|
migrateFromFireblocks({ deviceId, jwt, walletPassword, ncwStorage, expectedAddresses, coinTypes, password, }: {
|
|
@@ -142,6 +147,13 @@ declare const DynamicWaasStellarConnector_base: (abstract new (...args: any[]) =
|
|
|
142
147
|
}): Promise<void>;
|
|
143
148
|
setPassword({ accountAddress, newPassword, }: {
|
|
144
149
|
accountAddress: string;
|
|
150
|
+
/**
|
|
151
|
+
* Internal method to sign a message with MFA token
|
|
152
|
+
* @param message - The message to sign
|
|
153
|
+
* @returns The signed message as a string
|
|
154
|
+
* @throws {DynamicError} If active account address is not set
|
|
155
|
+
* @throws {DynamicError} If signed session ID is not available
|
|
156
|
+
*/
|
|
145
157
|
newPassword: string;
|
|
146
158
|
}): Promise<void>;
|
|
147
159
|
signRawMessage({ accountAddress, message, password, }: {
|
|
@@ -96,7 +96,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
96
96
|
var _a;
|
|
97
97
|
const signedSessionId = yield ((_a = this.getSignedSessionId) === null || _a === void 0 ? void 0 : _a.call(this));
|
|
98
98
|
if (!signedSessionId) {
|
|
99
|
-
throw new DynamicError('Signed session ID is required');
|
|
99
|
+
throw new DynamicError('Signed session ID is required', 'signed_session_id_is_required');
|
|
100
100
|
}
|
|
101
101
|
return signedSessionId;
|
|
102
102
|
});
|
|
@@ -118,7 +118,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
118
118
|
signedSessionId,
|
|
119
119
|
});
|
|
120
120
|
if (!targetWallet) {
|
|
121
|
-
throw new DynamicError('Account not found');
|
|
121
|
+
throw new DynamicError('Account not found', 'account_not_found');
|
|
122
122
|
}
|
|
123
123
|
const isWalletActive = isSameAddress(targetWallet.accountAddress, this.activeAccountAddress || '', this.connectedChain);
|
|
124
124
|
if (!isWalletActive) {
|
|
@@ -185,7 +185,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
185
185
|
this.ensureActiveAccountFromVerifiedCredentials();
|
|
186
186
|
const walletClient = yield this.getWaasWalletClient();
|
|
187
187
|
if (!this.activeAccountAddress) {
|
|
188
|
-
throw new DynamicError('Active account address is required');
|
|
188
|
+
throw new DynamicError('Active account address is required', 'active_account_address_is_required');
|
|
189
189
|
}
|
|
190
190
|
const signedSessionId = yield this.requireSignedSessionId();
|
|
191
191
|
const mfaToken = yield ((_a = this.getMfaToken) === null || _a === void 0 ? void 0 : _a.call(this, {
|
|
@@ -244,7 +244,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
244
244
|
return __awaiter(this, void 0, void 0, function* () {
|
|
245
245
|
var _a, _b, _c;
|
|
246
246
|
if (!this.activeAccountAddress) {
|
|
247
|
-
throw new DynamicError('Active account address is required');
|
|
247
|
+
throw new DynamicError('Active account address is required', 'active_account_address_is_required');
|
|
248
248
|
}
|
|
249
249
|
const walletClient = yield this.getWaasWalletClient();
|
|
250
250
|
const signedSessionId = yield this.requireSignedSessionId();
|
|
@@ -292,7 +292,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
292
292
|
const horizonServer = yield this.getHorizonServer();
|
|
293
293
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
294
294
|
if (!horizonServer) {
|
|
295
|
-
throw new DynamicError('No Horizon server available');
|
|
295
|
+
throw new DynamicError('No Horizon server available', 'no_horizon_server_available');
|
|
296
296
|
}
|
|
297
297
|
return new StellarUiTransaction({
|
|
298
298
|
from,
|
|
@@ -300,7 +300,7 @@ class DynamicWaasStellarConnector extends withDynamicWaas(StellarWalletConnector
|
|
|
300
300
|
networkPassphrase,
|
|
301
301
|
onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
302
302
|
if (!transaction) {
|
|
303
|
-
throw new DynamicError('Transaction must be provided');
|
|
303
|
+
throw new DynamicError('Transaction must be provided', 'transaction_must_be_provided');
|
|
304
304
|
}
|
|
305
305
|
const signedXdr = yield this.signTransaction(transaction.toXDR());
|
|
306
306
|
const signedTransaction = TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
|
|
@@ -139,7 +139,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
139
139
|
try {
|
|
140
140
|
const provider = this.getProvider();
|
|
141
141
|
if (!provider) {
|
|
142
|
-
throw new utils.DynamicError('No Stellar provider found');
|
|
142
|
+
throw new utils.DynamicError('No Stellar provider found', 'no_stellar_provider_found');
|
|
143
143
|
}
|
|
144
144
|
const publicKey = yield provider.connect();
|
|
145
145
|
// Check if disconnect was called while we were waiting for provider.connect()
|
|
@@ -160,7 +160,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
160
160
|
}
|
|
161
161
|
catch (error) {
|
|
162
162
|
this.logger.error('[connect] Connection failed:', error);
|
|
163
|
-
throw new utils.DynamicError('Failed to connect to Stellar wallet');
|
|
163
|
+
throw new utils.DynamicError('Failed to connect to Stellar wallet', 'connect_to_stellar_wallet');
|
|
164
164
|
}
|
|
165
165
|
finally {
|
|
166
166
|
this.isConnecting = false;
|
|
@@ -211,7 +211,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
211
211
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
212
212
|
const provider = this.getProvider();
|
|
213
213
|
if (!provider) {
|
|
214
|
-
throw new utils.DynamicError('No Stellar provider found');
|
|
214
|
+
throw new utils.DynamicError('No Stellar provider found', 'no_stellar_provider_found');
|
|
215
215
|
}
|
|
216
216
|
const network = yield this.getNetwork();
|
|
217
217
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
@@ -230,7 +230,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
230
230
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
231
231
|
const address = yield this.getAddress();
|
|
232
232
|
if (!address) {
|
|
233
|
-
throw new utils.DynamicError('No connected address for hardware wallet signing');
|
|
233
|
+
throw new utils.DynamicError('No connected address for hardware wallet signing', 'no_connected_address_for_hardware_wallet');
|
|
234
234
|
}
|
|
235
235
|
const horizonServer = yield this.getHorizonServer();
|
|
236
236
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
@@ -516,7 +516,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
516
516
|
const horizonServer = yield this.getHorizonServer();
|
|
517
517
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
518
518
|
if (!horizonServer) {
|
|
519
|
-
throw new utils.DynamicError('No Horizon server available');
|
|
519
|
+
throw new utils.DynamicError('No Horizon server available', 'no_horizon_server_available');
|
|
520
520
|
}
|
|
521
521
|
return new StellarUiTransaction.StellarUiTransaction({
|
|
522
522
|
from,
|
|
@@ -524,7 +524,7 @@ class StellarWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
524
524
|
networkPassphrase,
|
|
525
525
|
onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
526
526
|
if (!transaction) {
|
|
527
|
-
throw new utils.DynamicError('Transaction must be provided');
|
|
527
|
+
throw new utils.DynamicError('Transaction must be provided', 'transaction_must_be_provided');
|
|
528
528
|
}
|
|
529
529
|
const signedXdr = yield this.signTransaction(transaction.toXDR());
|
|
530
530
|
const signedTransaction = stellarSdk.TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
|
|
@@ -135,7 +135,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
135
135
|
try {
|
|
136
136
|
const provider = this.getProvider();
|
|
137
137
|
if (!provider) {
|
|
138
|
-
throw new DynamicError('No Stellar provider found');
|
|
138
|
+
throw new DynamicError('No Stellar provider found', 'no_stellar_provider_found');
|
|
139
139
|
}
|
|
140
140
|
const publicKey = yield provider.connect();
|
|
141
141
|
// Check if disconnect was called while we were waiting for provider.connect()
|
|
@@ -156,7 +156,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
156
156
|
}
|
|
157
157
|
catch (error) {
|
|
158
158
|
this.logger.error('[connect] Connection failed:', error);
|
|
159
|
-
throw new DynamicError('Failed to connect to Stellar wallet');
|
|
159
|
+
throw new DynamicError('Failed to connect to Stellar wallet', 'connect_to_stellar_wallet');
|
|
160
160
|
}
|
|
161
161
|
finally {
|
|
162
162
|
this.isConnecting = false;
|
|
@@ -207,7 +207,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
207
207
|
return __awaiter(this, void 0, void 0, function* () {
|
|
208
208
|
const provider = this.getProvider();
|
|
209
209
|
if (!provider) {
|
|
210
|
-
throw new DynamicError('No Stellar provider found');
|
|
210
|
+
throw new DynamicError('No Stellar provider found', 'no_stellar_provider_found');
|
|
211
211
|
}
|
|
212
212
|
const network = yield this.getNetwork();
|
|
213
213
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
@@ -226,7 +226,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
226
226
|
return __awaiter(this, void 0, void 0, function* () {
|
|
227
227
|
const address = yield this.getAddress();
|
|
228
228
|
if (!address) {
|
|
229
|
-
throw new DynamicError('No connected address for hardware wallet signing');
|
|
229
|
+
throw new DynamicError('No connected address for hardware wallet signing', 'no_connected_address_for_hardware_wallet');
|
|
230
230
|
}
|
|
231
231
|
const horizonServer = yield this.getHorizonServer();
|
|
232
232
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
@@ -512,7 +512,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
512
512
|
const horizonServer = yield this.getHorizonServer();
|
|
513
513
|
const networkPassphrase = yield this.getNetworkPassphrase();
|
|
514
514
|
if (!horizonServer) {
|
|
515
|
-
throw new DynamicError('No Horizon server available');
|
|
515
|
+
throw new DynamicError('No Horizon server available', 'no_horizon_server_available');
|
|
516
516
|
}
|
|
517
517
|
return new StellarUiTransaction({
|
|
518
518
|
from,
|
|
@@ -520,7 +520,7 @@ class StellarWalletConnector extends WalletConnectorBase {
|
|
|
520
520
|
networkPassphrase,
|
|
521
521
|
onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
522
522
|
if (!transaction) {
|
|
523
|
-
throw new DynamicError('Transaction must be provided');
|
|
523
|
+
throw new DynamicError('Transaction must be provided', 'transaction_must_be_provided');
|
|
524
524
|
}
|
|
525
525
|
const signedXdr = yield this.signTransaction(transaction.toXDR());
|
|
526
526
|
const signedTransaction = TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
|