@bronlabs/intents-sdk 1.0.115 → 1.0.117

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.
@@ -11,4 +11,6 @@ export declare class CosmosNetwork implements Network {
11
11
  getDecimals(tokenAddress: string): Promise<number>;
12
12
  getTxData(txHash: string, tokenAddress: string): Promise<TransactionData | undefined>;
13
13
  transfer(privateKey: string, to: string, value: bigint, tokenAddress: string): Promise<string>;
14
+ private parseEventAttributes;
15
+ private rpcCall;
14
16
  }
@@ -1,34 +1,8 @@
1
1
  import { log } from '../utils.js';
2
2
  import { proxyFetch } from '../proxy.js';
3
- import { decodeTxRaw, DirectSecp256k1Wallet } from '@cosmjs/proto-signing';
4
- import { GasPrice, SigningStargateClient, StargateClient } from '@cosmjs/stargate';
3
+ import { DirectSecp256k1Wallet } from '@cosmjs/proto-signing';
4
+ import { GasPrice, SigningStargateClient } from '@cosmjs/stargate';
5
5
  import { Tendermint37Client } from '@cosmjs/tendermint-rpc';
6
- import { MsgSend } from 'cosmjs-types/cosmos/bank/v1beta1/tx';
7
- class ProxyRpcClient {
8
- constructor(url) {
9
- this.url = url;
10
- }
11
- disconnect() { }
12
- async execute(request) {
13
- const response = await proxyFetch(this.url, {
14
- method: 'POST',
15
- headers: { 'Content-Type': 'application/json' },
16
- body: JSON.stringify(request),
17
- });
18
- if (!response.ok) {
19
- const body = await response.text().catch(() => '');
20
- throw new Error(`Cosmos RPC request to ${this.url} failed: ${response.status} ${response.statusText} - ${body}`);
21
- }
22
- const json = await response.json();
23
- if (json.error) {
24
- throw new Error(JSON.stringify(json.error));
25
- }
26
- return json;
27
- }
28
- }
29
- function createCometClient(rpcUrl) {
30
- return Tendermint37Client.create(new ProxyRpcClient(rpcUrl));
31
- }
32
6
  export class CosmosNetwork {
33
7
  constructor(rpcUrl, nativeDenom, bech32, gasPrice, confirmations = 1) {
34
8
  this.retryDelay = 15000;
@@ -39,13 +13,7 @@ export class CosmosNetwork {
39
13
  this.bech32 = bech32;
40
14
  }
41
15
  async ping() {
42
- const client = StargateClient.create(createCometClient(this.rpcUrl));
43
- try {
44
- await client.getHeight();
45
- }
46
- finally {
47
- client.disconnect();
48
- }
16
+ await this.rpcCall('status');
49
17
  }
50
18
  async getDecimals(tokenAddress) {
51
19
  let denom = tokenAddress;
@@ -54,27 +22,24 @@ export class CosmosNetwork {
54
22
  }
55
23
  const firstLetter = denom[0];
56
24
  if (firstLetter === 'u') {
57
- // micro
58
25
  return 6;
59
26
  }
60
27
  if (firstLetter === 'a') {
61
- // atto
62
28
  return 18;
63
29
  }
64
30
  if (firstLetter === 'n') {
65
- // nano
66
31
  return 9;
67
32
  }
68
33
  return 0;
69
34
  }
70
35
  async getTxData(txHash, tokenAddress) {
71
- const client = StargateClient.create(createCometClient(this.rpcUrl));
72
- const resp = await client.getTx(txHash);
73
- if (!resp) {
36
+ const hashBase64 = Buffer.from(txHash, 'hex').toString('base64');
37
+ const result = await this.rpcCall('tx', { hash: hashBase64, prove: false });
38
+ if (!result || !result.tx_result) {
74
39
  return;
75
40
  }
76
- if (resp.code !== 0) {
77
- log.warn(`Transaction ${txHash} failed on blockchain: ${JSON.stringify(resp)}`);
41
+ if (result.tx_result.code !== 0) {
42
+ log.warn(`Transaction ${txHash} failed on blockchain: code=${result.tx_result.code}`);
78
43
  return {
79
44
  from: "",
80
45
  to: "",
@@ -83,10 +48,10 @@ export class CosmosNetwork {
83
48
  confirmed: false
84
49
  };
85
50
  }
86
- const decodedTx = decodeTxRaw(resp.tx);
87
- const txMessage = decodedTx.body.messages.find((message) => message.typeUrl === '/cosmos.bank.v1beta1.MsgSend');
88
- if (!txMessage) {
89
- log.warn(`Transaction ${txHash} has no MsgSend message: ${JSON.stringify(resp)}`);
51
+ const events = result.tx_result.events || [];
52
+ const transferEvent = events.find((e) => e.type === 'transfer');
53
+ if (!transferEvent) {
54
+ log.warn(`Transaction ${txHash} has no transfer event`);
90
55
  return {
91
56
  from: "",
92
57
  to: "",
@@ -95,15 +60,15 @@ export class CosmosNetwork {
95
60
  confirmed: false
96
61
  };
97
62
  }
98
- const decodedMsg = MsgSend.decode(txMessage.value);
63
+ const attrs = this.parseEventAttributes(transferEvent.attributes);
99
64
  let denom = tokenAddress;
100
- // Native token - specified denom
101
65
  if (tokenAddress === "0x0") {
102
66
  denom = this.nativeDenom;
103
67
  }
104
- const messageAmount = decodedMsg.amount.find((a) => a.denom === denom);
105
- if (!messageAmount) {
106
- log.warn(`Transaction ${txHash} has no amount for denom ${denom}: ${JSON.stringify(resp)}`);
68
+ const amountStr = attrs.amount || '';
69
+ const amountMatch = amountStr.match(new RegExp(`(\\d+)${denom}`));
70
+ if (!amountMatch) {
71
+ log.warn(`Transaction ${txHash} has no amount for denom ${denom}: ${amountStr}`);
107
72
  return {
108
73
  from: "",
109
74
  to: "",
@@ -112,33 +77,81 @@ export class CosmosNetwork {
112
77
  confirmed: false
113
78
  };
114
79
  }
115
- const currentBlockResp = await client.getBlock();
116
- const currentBlock = currentBlockResp.header.height;
117
- const txBlock = resp.height;
80
+ const blockResult = await this.rpcCall('block');
81
+ const currentBlock = parseInt(blockResult.block.header.height);
82
+ const txBlock = parseInt(result.height);
118
83
  const confirmed = (currentBlock - txBlock) >= this.confirmations;
119
84
  log.info(`Confirmations ${txHash}: ${currentBlock}, confirmed: ${confirmed}`);
120
85
  return {
121
- from: decodedMsg.fromAddress,
122
- to: decodedMsg.toAddress,
86
+ from: attrs.sender || '',
87
+ to: attrs.recipient || '',
123
88
  token: tokenAddress,
124
- amount: BigInt(messageAmount.amount),
125
- confirmed: confirmed
89
+ amount: BigInt(amountMatch[1]),
90
+ confirmed
126
91
  };
127
92
  }
128
93
  async transfer(privateKey, to, value, tokenAddress) {
129
- // 1) Create wallet/signer
130
94
  const wallet = await DirectSecp256k1Wallet.fromKey(Buffer.from(privateKey, 'hex'), this.bech32);
131
95
  const [account] = await wallet.getAccounts();
132
96
  const sender = account.address;
133
- // 2) Connect signing client
97
+ const cometClient = await Tendermint37Client.create({
98
+ execute: async (request) => {
99
+ const response = await proxyFetch(this.rpcUrl, {
100
+ method: 'POST',
101
+ headers: { 'Content-Type': 'application/json' },
102
+ body: JSON.stringify(request),
103
+ });
104
+ if (!response.ok) {
105
+ throw new Error(`Cosmos RPC error: ${response.status}`);
106
+ }
107
+ const json = await response.json();
108
+ if (json.error) {
109
+ throw new Error(JSON.stringify(json.error));
110
+ }
111
+ return json;
112
+ },
113
+ disconnect: () => { }
114
+ });
134
115
  const gasPrice = GasPrice.fromString(`${this.gasPrice}${this.nativeDenom}`);
135
- const client = SigningStargateClient.createWithSigner(createCometClient(this.rpcUrl), wallet, { gasPrice });
116
+ const client = await SigningStargateClient.createWithSigner(cometClient, wallet, { gasPrice });
136
117
  const denom = tokenAddress === "0x0" ? this.nativeDenom : tokenAddress;
137
- // 3) Build amount (in *base* denom)
138
118
  const amount = [{ denom, amount: value.toString() }];
139
- // CosmosJs simulates tx and do transfer
140
119
  const resultAuto = await client.sendTokens(sender, to, amount, "auto");
141
120
  return resultAuto.transactionHash;
142
121
  }
122
+ parseEventAttributes(attributes) {
123
+ const result = {};
124
+ for (const attr of attributes) {
125
+ try {
126
+ const key = Buffer.from(attr.key, 'base64').toString('utf-8');
127
+ const value = attr.value ? Buffer.from(attr.value, 'base64').toString('utf-8') : '';
128
+ result[key] = value;
129
+ }
130
+ catch {
131
+ result[attr.key] = attr.value || '';
132
+ }
133
+ }
134
+ return result;
135
+ }
136
+ async rpcCall(method, params = {}) {
137
+ const resp = await proxyFetch(this.rpcUrl, {
138
+ method: 'POST',
139
+ headers: { 'Content-Type': 'application/json' },
140
+ body: JSON.stringify({
141
+ jsonrpc: '2.0',
142
+ id: 1,
143
+ method,
144
+ params
145
+ })
146
+ });
147
+ if (!resp.ok) {
148
+ throw new Error(`Cosmos RPC error ${resp.status}: ${(await resp.text()).substring(0, 1024)}`);
149
+ }
150
+ const json = await resp.json();
151
+ if (json.error) {
152
+ throw new Error(`Cosmos RPC error: ${JSON.stringify(json.error)}`);
153
+ }
154
+ return json.result;
155
+ }
143
156
  }
144
157
  //# sourceMappingURL=cosmos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/networks/cosmos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/networks/cosmos.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { TonNetwork } from './ton.js';
5
5
  import { CantonNetwork } from './canton.js';
6
6
  import { BtcNetwork } from './btc.js';
7
7
  import { CosmosNetwork } from "./cosmos.js";
8
+ import { XrpNetwork } from './xrp.js';
8
9
  const networkBuilders = {
9
10
  "testBTC": (cf) => new BtcNetwork(cf.rpcUrl, 1),
10
11
  "testETH": (cf) => new EvmNetwork(cf.rpcUrl, 1),
@@ -12,6 +13,8 @@ const networkBuilders = {
12
13
  "testTRX": (cf) => new TrxNetwork(cf.rpcUrl, 10),
13
14
  "testSOL": (cf) => new SolNetwork(cf.rpcUrl, 10),
14
15
  "testCC": (cf) => new CantonNetwork(cf.rpcUrl, cf.ledgerApiUrl, cf.scanApiUrl, cf.authUrl, cf.clientId, cf.clientSecret, cf.walletAddress, cf.daUtilitiesApiUrl),
16
+ "testXRP": (cf) => new XrpNetwork(cf.rpcUrl, 1),
17
+ "testGNK": (cf) => new CosmosNetwork(cf.rpcUrl, 'ngonka', 'gonka', 0, 1),
15
18
  "BTC": (cf) => new BtcNetwork(cf.rpcUrl, 2),
16
19
  "ETH": (cf) => new EvmNetwork(cf.rpcUrl, 4),
17
20
  "OP": (cf) => new EvmNetwork(cf.rpcUrl, 20),
@@ -25,7 +28,7 @@ const networkBuilders = {
25
28
  "TON": (cf) => new TonNetwork(cf.rpcUrl, 20),
26
29
  "CC": (cf) => new CantonNetwork(cf.rpcUrl, cf.ledgerApiUrl, cf.scanApiUrl, cf.authUrl, cf.clientId, cf.clientSecret, cf.walletAddress, cf.daUtilitiesApiUrl),
27
30
  "GNK": (cf) => new CosmosNetwork(cf.rpcUrl, 'ngonka', 'gonka', 0, 1),
28
- "testGNK": (cf) => new CosmosNetwork(cf.rpcUrl, 'ngonka', 'gonka', 0, 1)
31
+ "XRP": (cf) => new XrpNetwork(cf.rpcUrl, 1),
29
32
  };
30
33
  export const initNetworks = (configs, filter) => Object.entries(networkBuilders).reduce((acc, [networkName, builder]) => {
31
34
  if (configs[networkName]?.rpcUrl && (!filter || filter(configs[networkName]))) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export class TonNetwork {
13
13
  });
14
14
  }
15
15
  async ping() {
16
- await this.request('/api/v3/masterchainInfo');
16
+ await this.request("/api/v3/masterchainInfo");
17
17
  }
18
18
  async getDecimals(tokenAddress) {
19
19
  if (tokenAddress === "0x0") {
@@ -0,0 +1,17 @@
1
+ import { Network, TransactionData } from './index.js';
2
+ export declare class XrpNetwork implements Network {
3
+ private readonly rpcUrl;
4
+ private readonly authHeaders;
5
+ private readonly confirmations;
6
+ private readonly nativeAssetDecimals;
7
+ readonly retryDelay: number;
8
+ constructor(rpcUrl: string, confirmations?: number);
9
+ ping(): Promise<void>;
10
+ getDecimals(tokenAddress: string): Promise<number>;
11
+ getTxData(txHash: string, tokenAddress: string, recipientAddress: string): Promise<TransactionData | undefined>;
12
+ transfer(privateKey: string, to: string, value: bigint, tokenAddress: string): Promise<string>;
13
+ private parseTokenAddress;
14
+ private parseTomlDecimals;
15
+ private getCurrentValidatedLedger;
16
+ private rpcCall;
17
+ }
@@ -0,0 +1,201 @@
1
+ import Big from 'big.js';
2
+ import { Wallet } from 'xrpl';
3
+ import { log } from '../utils.js';
4
+ import { proxyFetch } from '../proxy.js';
5
+ const DEFAULT_ISSUED_CURRENCY_DECIMALS = 15;
6
+ export class XrpNetwork {
7
+ constructor(rpcUrl, confirmations = 1) {
8
+ this.authHeaders = {};
9
+ this.nativeAssetDecimals = 6;
10
+ this.retryDelay = 10000;
11
+ if (rpcUrl.includes('@')) {
12
+ const [rpcUrlPart, apiKey] = rpcUrl.split('@', 2);
13
+ this.rpcUrl = rpcUrlPart;
14
+ this.authHeaders = { 'x-api-key': apiKey };
15
+ }
16
+ else {
17
+ this.rpcUrl = rpcUrl;
18
+ }
19
+ this.confirmations = confirmations;
20
+ }
21
+ async ping() {
22
+ await this.rpcCall('server_info');
23
+ }
24
+ async getDecimals(tokenAddress) {
25
+ if (tokenAddress === "0x0") {
26
+ return this.nativeAssetDecimals;
27
+ }
28
+ const { issuer, currency } = this.parseTokenAddress(tokenAddress);
29
+ try {
30
+ const accountInfo = await this.rpcCall('account_info', { account: issuer, ledger_index: 'validated' });
31
+ const domainHex = accountInfo?.account_data?.Domain;
32
+ if (!domainHex) {
33
+ log.warn(`XRP issuer ${issuer} has no Domain field, using default decimals ${DEFAULT_ISSUED_CURRENCY_DECIMALS}`);
34
+ return DEFAULT_ISSUED_CURRENCY_DECIMALS;
35
+ }
36
+ const domain = Buffer.from(domainHex, 'hex').toString('utf-8');
37
+ const tomlUrl = `https://${domain}/.well-known/xrp-ledger.toml`;
38
+ const resp = await proxyFetch(tomlUrl);
39
+ if (!resp.ok) {
40
+ log.warn(`Failed to fetch ${tomlUrl}: ${resp.status}, using default decimals`);
41
+ return DEFAULT_ISSUED_CURRENCY_DECIMALS;
42
+ }
43
+ const toml = await resp.text();
44
+ const decimals = this.parseTomlDecimals(toml, currency);
45
+ if (decimals !== null) {
46
+ log.info(`Fetched decimals for ${currency}:${issuer} from ${tomlUrl}: ${decimals}`);
47
+ return decimals;
48
+ }
49
+ log.warn(`No display_decimals found for ${currency} in ${tomlUrl}, using default ${DEFAULT_ISSUED_CURRENCY_DECIMALS}`);
50
+ return DEFAULT_ISSUED_CURRENCY_DECIMALS;
51
+ }
52
+ catch (e) {
53
+ log.warn(`Failed to fetch decimals for ${tokenAddress}: ${e}, using default ${DEFAULT_ISSUED_CURRENCY_DECIMALS}`);
54
+ return DEFAULT_ISSUED_CURRENCY_DECIMALS;
55
+ }
56
+ }
57
+ async getTxData(txHash, tokenAddress, recipientAddress) {
58
+ const result = await this.rpcCall('tx', { transaction: txHash, binary: false });
59
+ if (!result || result.error || result.status === 'error') {
60
+ return;
61
+ }
62
+ if (result.TransactionType !== 'Payment') {
63
+ log.warn(`Transaction ${txHash} is not a Payment: ${result.TransactionType}`);
64
+ return;
65
+ }
66
+ if (!result.validated) {
67
+ return;
68
+ }
69
+ const meta = result.meta || result.metaData;
70
+ const currentLedger = await this.getCurrentValidatedLedger();
71
+ const confirmed = currentLedger - result.ledger_index >= this.confirmations;
72
+ if (!meta || meta.TransactionResult !== 'tesSUCCESS') {
73
+ log.warn(`Transaction ${txHash} failed: ${meta?.TransactionResult}`);
74
+ return { from: "", to: "", token: "", amount: 0n, confirmed };
75
+ }
76
+ if (result.Destination !== recipientAddress) {
77
+ log.warn(`Transaction ${txHash} destination ${result.Destination} does not match ${recipientAddress}`);
78
+ return { from: "", to: "", token: "", amount: 0n, confirmed };
79
+ }
80
+ const deliveredAmount = meta.delivered_amount;
81
+ if (deliveredAmount === undefined || deliveredAmount === null) {
82
+ log.warn(`Transaction ${txHash} has no delivered_amount`);
83
+ return;
84
+ }
85
+ log.info(`Confirmations ${txHash}: ${currentLedger - result.ledger_index}`);
86
+ if (tokenAddress === "0x0") {
87
+ if (typeof deliveredAmount !== 'string') {
88
+ log.warn(`Transaction ${txHash} native delivered_amount is not a string: ${typeof deliveredAmount}`);
89
+ return;
90
+ }
91
+ return {
92
+ from: result.Account,
93
+ to: result.Destination,
94
+ token: tokenAddress,
95
+ amount: BigInt(deliveredAmount),
96
+ confirmed
97
+ };
98
+ }
99
+ if (typeof deliveredAmount !== 'object' || !deliveredAmount.value || !deliveredAmount.currency || !deliveredAmount.issuer) {
100
+ log.warn(`Transaction ${txHash} issued delivered_amount is malformed`);
101
+ return;
102
+ }
103
+ const { currency, issuer } = this.parseTokenAddress(tokenAddress);
104
+ if (deliveredAmount.currency !== currency || deliveredAmount.issuer !== issuer) {
105
+ log.warn(`Transaction ${txHash} delivered ${deliveredAmount.currency}:${deliveredAmount.issuer} does not match ${currency}:${issuer}`);
106
+ return { from: "", to: "", token: "", amount: 0n, confirmed };
107
+ }
108
+ const decimals = await this.getDecimals(tokenAddress);
109
+ const amount = BigInt(new Big(deliveredAmount.value)
110
+ .times(new Big(10).pow(decimals))
111
+ .toFixed(0));
112
+ return {
113
+ from: result.Account,
114
+ to: result.Destination,
115
+ token: tokenAddress,
116
+ amount,
117
+ confirmed
118
+ };
119
+ }
120
+ async transfer(privateKey, to, value, tokenAddress) {
121
+ const wallet = Wallet.fromSeed(privateKey);
122
+ const accountInfo = await this.rpcCall('account_info', {
123
+ account: wallet.classicAddress,
124
+ ledger_index: 'validated'
125
+ });
126
+ const feeResult = await this.rpcCall('fee');
127
+ const openLedgerFee = parseInt(feeResult.drops.open_ledger_fee);
128
+ const fee = Math.min(openLedgerFee, 1000).toString();
129
+ const currentLedger = await this.getCurrentValidatedLedger();
130
+ let amount;
131
+ if (tokenAddress === '0x0') {
132
+ amount = value.toString();
133
+ }
134
+ else {
135
+ const { currency, issuer } = this.parseTokenAddress(tokenAddress);
136
+ const decimals = await this.getDecimals(tokenAddress);
137
+ amount = {
138
+ value: new Big(value.toString())
139
+ .div(new Big(10).pow(decimals))
140
+ .toFixed(),
141
+ currency,
142
+ issuer
143
+ };
144
+ }
145
+ const signed = wallet.sign({
146
+ TransactionType: 'Payment',
147
+ Account: wallet.classicAddress,
148
+ Destination: to,
149
+ Amount: amount,
150
+ Sequence: accountInfo.account_data.Sequence,
151
+ Fee: fee,
152
+ LastLedgerSequence: currentLedger + 20
153
+ });
154
+ await this.rpcCall('submit', { tx_blob: signed.tx_blob });
155
+ return signed.hash;
156
+ }
157
+ parseTokenAddress(tokenAddress) {
158
+ const colonIndex = tokenAddress.indexOf('.');
159
+ if (colonIndex === -1) {
160
+ throw new Error(`Invalid XRP token address format: ${tokenAddress}. Expected "currency:issuer"`);
161
+ }
162
+ return {
163
+ currency: tokenAddress.substring(0, colonIndex),
164
+ issuer: tokenAddress.substring(colonIndex + 1)
165
+ };
166
+ }
167
+ parseTomlDecimals(toml, currency) {
168
+ const sections = toml.split('[[CURRENCIES]]');
169
+ for (const section of sections) {
170
+ const codeMatch = section.match(/code\s*=\s*"([^"]+)"/);
171
+ const decimalsMatch = section.match(/display_decimals\s*=\s*(\d+)/);
172
+ if (codeMatch && codeMatch[1] === currency && decimalsMatch) {
173
+ return parseInt(decimalsMatch[1]);
174
+ }
175
+ }
176
+ return null;
177
+ }
178
+ async getCurrentValidatedLedger() {
179
+ const result = await this.rpcCall('ledger', { ledger_index: 'validated' });
180
+ return result.ledger_index;
181
+ }
182
+ async rpcCall(method, params = {}) {
183
+ const resp = await proxyFetch(this.rpcUrl, {
184
+ method: 'POST',
185
+ headers: {
186
+ 'Content-Type': 'application/json',
187
+ ...this.authHeaders
188
+ },
189
+ body: JSON.stringify({
190
+ method,
191
+ params: [params]
192
+ })
193
+ });
194
+ if (!resp.ok) {
195
+ throw new Error(`XRP RPC error ${resp.status}: ${(await resp.text()).substring(0, 1024)}`);
196
+ }
197
+ const json = await resp.json();
198
+ return json.result;
199
+ }
200
+ }
201
+ //# sourceMappingURL=xrp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrp.js","sourceRoot":"","sources":["../../src/networks/xrp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bronlabs/intents-sdk",
3
- "version": "1.0.115",
3
+ "version": "1.0.117",
4
4
  "description": "SDK for Intents DeFi smart contracts",
5
5
  "keywords": [
6
6
  "defi",
@@ -55,7 +55,8 @@
55
55
  "tron-format-address": "^0.1.12",
56
56
  "tronweb": "^6.0.4",
57
57
  "winston": "^3.17.0",
58
- "ws": "^8.18.3"
58
+ "ws": "^8.18.3",
59
+ "xrpl": "^4.0.0"
59
60
  },
60
61
  "devDependencies": {
61
62
  "@types/big.js": "^6.2.2",