@bronlabs/intents-sdk 1.0.116 → 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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"}
@@ -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") {
@@ -155,7 +155,7 @@ export class XrpNetwork {
155
155
  return signed.hash;
156
156
  }
157
157
  parseTokenAddress(tokenAddress) {
158
- const colonIndex = tokenAddress.indexOf(':');
158
+ const colonIndex = tokenAddress.indexOf('.');
159
159
  if (colonIndex === -1) {
160
160
  throw new Error(`Invalid XRP token address format: ${tokenAddress}. Expected "currency:issuer"`);
161
161
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bronlabs/intents-sdk",
3
- "version": "1.0.116",
3
+ "version": "1.0.117",
4
4
  "description": "SDK for Intents DeFi smart contracts",
5
5
  "keywords": [
6
6
  "defi",