@dynamic-labs/stellar 4.63.1 → 4.64.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,11 @@
1
1
 
2
+ ## [4.64.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.63.1...v4.64.0) (2026-02-25)
3
+
4
+
5
+ ### Features
6
+
7
+ * add addTrustline method to the stellar wallet ([#10510](https://github.com/dynamic-labs/dynamic-auth/issues/10510)) ([e8690e8](https://github.com/dynamic-labs/dynamic-auth/commit/e8690e821dfe867355618d970380568487c3dd36))
8
+
2
9
  ### [4.63.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.63.0...v4.63.1) (2026-02-24)
3
10
 
4
11
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.63.1";
6
+ var version = "4.64.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.63.1";
2
+ var version = "4.64.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/stellar",
3
- "version": "4.63.1",
3
+ "version": "4.64.0",
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",
@@ -20,15 +20,15 @@
20
20
  "dependencies": {
21
21
  "@dynamic-labs/sdk-api-core": "0.0.875",
22
22
  "@stellar/stellar-sdk": "14.4.3",
23
- "@dynamic-labs/wallet-connector-core": "4.63.1",
24
- "@dynamic-labs/assert-package-version": "4.63.1",
23
+ "@dynamic-labs/wallet-connector-core": "4.64.0",
24
+ "@dynamic-labs/assert-package-version": "4.64.0",
25
25
  "@lobstrco/signer-extension-api": "2.0.0",
26
26
  "@stellar/freighter-api": "6.0.1",
27
- "@dynamic-labs/logger": "4.63.1",
28
- "@dynamic-labs/types": "4.63.1",
29
- "@dynamic-labs/utils": "4.63.1",
30
- "@dynamic-labs/waas": "4.63.1",
31
- "@dynamic-labs/wallet-book": "4.63.1",
27
+ "@dynamic-labs/logger": "4.64.0",
28
+ "@dynamic-labs/types": "4.64.0",
29
+ "@dynamic-labs/utils": "4.64.0",
30
+ "@dynamic-labs/waas": "4.64.0",
31
+ "@dynamic-labs/wallet-book": "4.64.0",
32
32
  "eventemitter3": "5.0.1"
33
33
  },
34
34
  "peerDependencies": {}
@@ -0,0 +1,30 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var stellarSdk = require('@stellar/stellar-sdk');
7
+
8
+ const DEFAULT_TIMEOUT = 180;
9
+ /**
10
+ * Builds a Stellar change trust transaction to add or modify a trustline.
11
+ *
12
+ * @param params - Transaction parameters
13
+ * @param params.asset - The asset to establish a trustline for
14
+ * @param params.limit - Optional maximum balance limit. Defaults to max if not provided
15
+ * @param params.networkPassphrase - The network passphrase
16
+ * @param params.sourceAccount - The source account establishing the trustline
17
+ * @returns A built Stellar transaction
18
+ */
19
+ const buildTrustlineTransaction = (params) => {
20
+ const { asset, limit, networkPassphrase, sourceAccount } = params;
21
+ return new stellarSdk.TransactionBuilder(sourceAccount, {
22
+ fee: stellarSdk.BASE_FEE,
23
+ networkPassphrase,
24
+ })
25
+ .addOperation(stellarSdk.Operation.changeTrust({ asset, limit }))
26
+ .setTimeout(DEFAULT_TIMEOUT)
27
+ .build();
28
+ };
29
+
30
+ exports.buildTrustlineTransaction = buildTrustlineTransaction;
@@ -0,0 +1,17 @@
1
+ import { type Asset, type Horizon, Transaction } from '@stellar/stellar-sdk';
2
+ /**
3
+ * Builds a Stellar change trust transaction to add or modify a trustline.
4
+ *
5
+ * @param params - Transaction parameters
6
+ * @param params.asset - The asset to establish a trustline for
7
+ * @param params.limit - Optional maximum balance limit. Defaults to max if not provided
8
+ * @param params.networkPassphrase - The network passphrase
9
+ * @param params.sourceAccount - The source account establishing the trustline
10
+ * @returns A built Stellar transaction
11
+ */
12
+ export declare const buildTrustlineTransaction: (params: {
13
+ asset: Asset;
14
+ limit?: string;
15
+ networkPassphrase: string;
16
+ sourceAccount: Horizon.AccountResponse;
17
+ }) => Transaction;
@@ -0,0 +1,26 @@
1
+ 'use client'
2
+ import { TransactionBuilder, BASE_FEE, Operation } from '@stellar/stellar-sdk';
3
+
4
+ const DEFAULT_TIMEOUT = 180;
5
+ /**
6
+ * Builds a Stellar change trust transaction to add or modify a trustline.
7
+ *
8
+ * @param params - Transaction parameters
9
+ * @param params.asset - The asset to establish a trustline for
10
+ * @param params.limit - Optional maximum balance limit. Defaults to max if not provided
11
+ * @param params.networkPassphrase - The network passphrase
12
+ * @param params.sourceAccount - The source account establishing the trustline
13
+ * @returns A built Stellar transaction
14
+ */
15
+ const buildTrustlineTransaction = (params) => {
16
+ const { asset, limit, networkPassphrase, sourceAccount } = params;
17
+ return new TransactionBuilder(sourceAccount, {
18
+ fee: BASE_FEE,
19
+ networkPassphrase,
20
+ })
21
+ .addOperation(Operation.changeTrust({ asset, limit }))
22
+ .setTimeout(DEFAULT_TIMEOUT)
23
+ .build();
24
+ };
25
+
26
+ export { buildTrustlineTransaction };
@@ -1,4 +1,5 @@
1
1
  export { buildPaymentTransaction } from './buildPaymentTransaction';
2
+ export { buildTrustlineTransaction } from './buildTrustlineTransaction';
2
3
  export { checkTrustline } from './checkTrustline';
3
4
  export { createPaymentAsset } from './createPaymentAsset';
4
5
  export { createTransactionMemo } from './createTransactionMemo';
@@ -7,6 +7,7 @@ var _tslib = require('../../_virtual/_tslib.cjs');
7
7
  var stellarSdk = require('@stellar/stellar-sdk');
8
8
  var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
9
  var buildPaymentTransaction = require('../utils/buildPaymentTransaction.cjs');
10
+ var buildTrustlineTransaction = require('../utils/buildTrustlineTransaction.cjs');
10
11
  var checkTrustline = require('../utils/checkTrustline.cjs');
11
12
  var createPaymentAsset = require('../utils/createPaymentAsset.cjs');
12
13
  var getAccountBalance = require('../utils/getAccountBalance.cjs');
@@ -99,6 +100,37 @@ class StellarWallet extends walletConnectorCore.Wallet {
99
100
  return response.hash;
100
101
  });
101
102
  }
103
+ /**
104
+ * Adds a trustline for a non-native Stellar asset to the wallet.
105
+ *
106
+ * Trustlines allow an account to hold and transact with non-native assets.
107
+ * Each trustline reserves a small amount of XLM as a base reserve.
108
+ *
109
+ * @param assetCode - Asset code (e.g., "USDC")
110
+ * @param assetIssuer - Asset issuer public key
111
+ * @param limit - Optional maximum balance the account can hold. Defaults to max if not provided
112
+ * @returns Transaction hash
113
+ */
114
+ addTrustline(_a) {
115
+ return _tslib.__awaiter(this, arguments, void 0, function* ({ assetCode, assetIssuer, limit, }) {
116
+ yield this._connector.connect();
117
+ const horizonServer = yield this.getHorizonServer();
118
+ const sourceAccount = yield horizonServer.loadAccount(this.address);
119
+ const networkPassphrase = yield this._connector.getNetworkPassphrase();
120
+ const asset = createPaymentAsset.createPaymentAsset({ code: assetCode, issuer: assetIssuer });
121
+ const transaction = buildTrustlineTransaction.buildTrustlineTransaction({
122
+ asset,
123
+ limit,
124
+ networkPassphrase,
125
+ sourceAccount,
126
+ });
127
+ const transactionXdr = transaction.toXDR();
128
+ const signedXdr = yield this.signTransaction(transactionXdr);
129
+ const transactionToSubmit = stellarSdk.TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
130
+ const response = yield horizonServer.submitTransaction(transactionToSubmit);
131
+ return response.hash;
132
+ });
133
+ }
102
134
  /**
103
135
  * Signs a Stellar transaction XDR.
104
136
  *
@@ -30,6 +30,22 @@ export declare class StellarWallet extends Wallet<StellarWalletConnector> {
30
30
  * @returns Transaction hash
31
31
  */
32
32
  sendBalance(params: StellarSendBalanceProps): Promise<string>;
33
+ /**
34
+ * Adds a trustline for a non-native Stellar asset to the wallet.
35
+ *
36
+ * Trustlines allow an account to hold and transact with non-native assets.
37
+ * Each trustline reserves a small amount of XLM as a base reserve.
38
+ *
39
+ * @param assetCode - Asset code (e.g., "USDC")
40
+ * @param assetIssuer - Asset issuer public key
41
+ * @param limit - Optional maximum balance the account can hold. Defaults to max if not provided
42
+ * @returns Transaction hash
43
+ */
44
+ addTrustline({ assetCode, assetIssuer, limit, }: {
45
+ assetCode: string;
46
+ assetIssuer: string;
47
+ limit?: string;
48
+ }): Promise<string>;
33
49
  /**
34
50
  * Signs a Stellar transaction XDR.
35
51
  *
@@ -3,6 +3,7 @@ import { __awaiter } from '../../_virtual/_tslib.js';
3
3
  import { TransactionBuilder } from '@stellar/stellar-sdk';
4
4
  import { Wallet } from '@dynamic-labs/wallet-connector-core';
5
5
  import { buildPaymentTransaction } from '../utils/buildPaymentTransaction.js';
6
+ import { buildTrustlineTransaction } from '../utils/buildTrustlineTransaction.js';
6
7
  import { checkTrustline } from '../utils/checkTrustline.js';
7
8
  import { createPaymentAsset } from '../utils/createPaymentAsset.js';
8
9
  import { getAccountBalance } from '../utils/getAccountBalance.js';
@@ -95,6 +96,37 @@ class StellarWallet extends Wallet {
95
96
  return response.hash;
96
97
  });
97
98
  }
99
+ /**
100
+ * Adds a trustline for a non-native Stellar asset to the wallet.
101
+ *
102
+ * Trustlines allow an account to hold and transact with non-native assets.
103
+ * Each trustline reserves a small amount of XLM as a base reserve.
104
+ *
105
+ * @param assetCode - Asset code (e.g., "USDC")
106
+ * @param assetIssuer - Asset issuer public key
107
+ * @param limit - Optional maximum balance the account can hold. Defaults to max if not provided
108
+ * @returns Transaction hash
109
+ */
110
+ addTrustline(_a) {
111
+ return __awaiter(this, arguments, void 0, function* ({ assetCode, assetIssuer, limit, }) {
112
+ yield this._connector.connect();
113
+ const horizonServer = yield this.getHorizonServer();
114
+ const sourceAccount = yield horizonServer.loadAccount(this.address);
115
+ const networkPassphrase = yield this._connector.getNetworkPassphrase();
116
+ const asset = createPaymentAsset({ code: assetCode, issuer: assetIssuer });
117
+ const transaction = buildTrustlineTransaction({
118
+ asset,
119
+ limit,
120
+ networkPassphrase,
121
+ sourceAccount,
122
+ });
123
+ const transactionXdr = transaction.toXDR();
124
+ const signedXdr = yield this.signTransaction(transactionXdr);
125
+ const transactionToSubmit = TransactionBuilder.fromXDR(signedXdr, networkPassphrase);
126
+ const response = yield horizonServer.submitTransaction(transactionToSubmit);
127
+ return response.hash;
128
+ });
129
+ }
98
130
  /**
99
131
  * Signs a Stellar transaction XDR.
100
132
  *