@bronlabs/intents-sdk 1.0.115 → 1.0.116
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/dist/networks/index.js +4 -1
- package/dist/networks/index.js.map +1 -1
- package/dist/networks/xrp.d.ts +17 -0
- package/dist/networks/xrp.js +201 -0
- package/dist/networks/xrp.js.map +1 -0
- package/package.json +3 -2
package/dist/networks/index.js
CHANGED
|
@@ -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
|
-
"
|
|
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":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
3
|
+
"version": "1.0.116",
|
|
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",
|