ecash-quicksend 1.3.4 → 1.4.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/README.md CHANGED
@@ -13,6 +13,11 @@ npm install ecash-quicksend
13
13
 
14
14
  ## Migration Notes
15
15
 
16
+ ### v1.4.0+
17
+ Added Agora DEX integration for buying tokens directly from the decentralized exchange. Two modes available:
18
+ - `acceptAgoraOffer()` - Buy from a specific offer (manual mode)
19
+ - `buyAgoraTokens()` - Auto-aggregate across multiple offers until target amount reached
20
+
16
21
  ### v1.3.3+
17
22
  `Recipient.amount` unit is now clearly documented: satoshis for XEC (1 XEC = 100 sats), base atoms for SLP/ALP tokens. JSDoc and example comments updated.
18
23
 
@@ -88,6 +93,9 @@ await quick.sendAlp([
88
93
  - `sendSlp(recipients, options)` - Send SLP tokens
89
94
  - `sendAlp(recipients, options)` - Send ALP tokens
90
95
  - `send(type, recipients, options?)` - Universal send method
96
+ - `fetchAgoraOffers(options)` - Query Agora DEX offers
97
+ - `acceptAgoraOffer(offer, options)` - Buy from specific Agora offer
98
+ - `buyAgoraTokens(options)` - Auto-buy tokens across multiple offers
91
99
 
92
100
  ### Options
93
101
 
@@ -149,6 +157,46 @@ await quick.sendSlp(recipients, {
149
157
  });
150
158
  ```
151
159
 
160
+ ## Agora DEX Integration
161
+
162
+ Buy tokens from Agora DEX with two modes:
163
+
164
+ ### Mode 1: Manual (specify offer)
165
+
166
+ ```javascript
167
+ // Step 1: Query offers
168
+ const offers = await quick.fetchAgoraOffers({
169
+ tokenId: 'your-token-id',
170
+ maxPrice: 5, // max 5 XEC per token
171
+ tokenDecimals: 2
172
+ });
173
+
174
+ // Step 2: Buy from specific offer
175
+ const result = await quick.acceptAgoraOffer(offers[0], {
176
+ amount: 100, // buy 100 tokens
177
+ tokenDecimals: 2,
178
+ mnemonic: 'your mnemonic'
179
+ });
180
+
181
+ console.log(result.txid);
182
+ ```
183
+
184
+ ### Mode 2: Auto-aggregate (multi-order)
185
+
186
+ ```javascript
187
+ // Automatically buy across multiple offers
188
+ const result = await quick.buyAgoraTokens({
189
+ tokenId: 'your-token-id',
190
+ amount: 100000, // target amount
191
+ maxPrice: 2.8, // max price per token
192
+ tokenDecimals: 0,
193
+ mnemonic: 'your mnemonic'
194
+ });
195
+
196
+ console.log(`Bought ${result.totalBought} tokens in ${result.transactions.length} orders`);
197
+ console.log(`Avg price: ${result.avgPrice} XEC`);
198
+ ```
199
+
152
200
  ## Error Handling
153
201
 
154
202
  ```javascript
@@ -179,6 +227,9 @@ Contributions are welcome! Please feel free to submit a Pull Request.
179
227
 
180
228
  ## Changelog
181
229
 
230
+ ### v1.3.5
231
+ - Fixed `send('slp', ...)` and `send('alp', ...)` incorrectly rejecting `tokenDecimals: 0`. The `!tokenDecimals` falsy check treated `0` as missing; validation now only requires `tokenId`.
232
+
182
233
  ### v1.3.4
183
234
  - Added `tokenId` format validation: non-64-char or non-hex values now throw a clear error at the entry point instead of a cryptic library exception.
184
235
  - `feeStrategy`, `tokenStrategy`, and `utxoStrategy` options are now typed as proper union types (`FeeStrategy`, `TokenStrategy`, `UtxoStrategy`) instead of `string`, improving type safety for callers using TypeScript.
@@ -2,7 +2,7 @@
2
2
  * 应用程序配置常量
3
3
  */
4
4
  export declare const CONFIG: {
5
- MNEMONIC: string;
5
+ MNEMONIC: string | undefined;
6
6
  };
7
7
  /**
8
8
  * 验证必需的环境变量(可选调用)
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Recipient, TransactionResult, TokenTransactionOptions, XecOptions, GeneralSendOptions, TransactionType } from './types';
1
+ import { Recipient, TransactionResult, TokenTransactionOptions, XecTransactionOptions, GeneralSendOptions, TransactionType, AgoraFetchOptions, AgoraOffer, AgoraAcceptOptions, AgoraBuyResult, AgoraBuyOptions, AgoraBuyAggregateResult } from './types';
2
2
  /**
3
3
  * 统一交易管理器
4
4
  * 支持 SLP、ALP 和 XEC 交易类型
@@ -21,7 +21,23 @@ declare class TransactionManager {
21
21
  * @param recipients - 接收方数组
22
22
  * @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex、mnemonic和chronik的选项对象
23
23
  */
24
- sendXec(recipients: Recipient[], options?: XecOptions): Promise<TransactionResult>;
24
+ sendXec(recipients: Recipient[], options?: XecTransactionOptions): Promise<TransactionResult>;
25
+ /**
26
+ * 查询 Agora 报价列表
27
+ * @param options - 查询参数
28
+ */
29
+ fetchAgoraOffers(options: AgoraFetchOptions): Promise<AgoraOffer[]>;
30
+ /**
31
+ * 执行 Agora 成交购买(单笔模式)
32
+ * @param offer - fetchAgoraOffers 返回的报价对象
33
+ * @param options - 购买选项
34
+ */
35
+ acceptAgoraOffer(offer: AgoraOffer, options: AgoraAcceptOptions): Promise<AgoraBuyResult>;
36
+ /**
37
+ * 聚合购买 Agora 代币(自动循环多个订单)
38
+ * @param options - 购买选项(指定数量和最大价格)
39
+ */
40
+ buyAgoraTokens(options: AgoraBuyOptions): Promise<AgoraBuyAggregateResult>;
25
41
  /**
26
42
  * 通用发送方法
27
43
  * @param type - 交易类型
@@ -33,5 +49,5 @@ declare class TransactionManager {
33
49
  declare const quick: TransactionManager;
34
50
  export default quick;
35
51
  export { TransactionManager };
36
- export declare const sendSlp: (recipients: Recipient[], options: TokenTransactionOptions) => Promise<TransactionResult>, sendAlp: (recipients: Recipient[], options: TokenTransactionOptions) => Promise<TransactionResult>, sendXec: (recipients: Recipient[], options?: XecOptions) => Promise<TransactionResult>, send: (type: TransactionType, recipients: Recipient[], options?: GeneralSendOptions) => Promise<TransactionResult>;
52
+ export declare const sendSlp: (recipients: Recipient[], options: TokenTransactionOptions) => Promise<TransactionResult>, sendAlp: (recipients: Recipient[], options: TokenTransactionOptions) => Promise<TransactionResult>, sendXec: (recipients: Recipient[], options?: XecTransactionOptions) => Promise<TransactionResult>, send: (type: TransactionType, recipients: Recipient[], options?: GeneralSendOptions) => Promise<TransactionResult>, fetchAgoraOffers: (options: AgoraFetchOptions) => Promise<AgoraOffer[]>, acceptAgoraOffer: (offer: AgoraOffer, options: AgoraAcceptOptions) => Promise<AgoraBuyResult>, buyAgoraTokens: (options: AgoraBuyOptions) => Promise<AgoraBuyAggregateResult>;
37
53
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EAEV,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,cAAM,kBAAkB;IACtB;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,UAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsB/F;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwCzH;AAGD,QAAA,MAAM,KAAK,oBAA2B,CAAC;AAGvC,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B,eAAO,MAAQ,OAAO,eAhGM,SAAS,EAAE,WAAW,uBAAuB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EAgG9E,OAAO,eAvFH,SAAS,EAAE,WAAW,uBAAuB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EAuFrE,OAAO,eA9EZ,SAAS,EAAE,YAAW,UAAU,KAAW,OAAO,CAAC,iBAAiB,CAAC,EA8EvD,IAAI,SAlD3B,eAAe,cAAc,SAAS,EAAE,YAAW,kBAAkB,KAAQ,OAAO,CAAC,iBAAiB,CAkDjE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,cAAM,kBAAkB;IACtB;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIpG;;;;OAIG;IACG,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKvG;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIzE;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/F;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIhF;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAwCzH;AAGD,QAAA,MAAM,KAAK,oBAA2B,CAAC;AAGvC,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B,eAAO,MAAQ,OAAO,eAxGM,SAAS,EAAE,WAAW,uBAAuB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EAwG9E,OAAO,eA/FH,SAAS,EAAE,WAAW,uBAAuB,KAAG,OAAO,CAAC,iBAAiB,CAAC,EA+FrE,OAAO,eAtFZ,SAAS,EAAE,YAAW,qBAAqB,KAAQ,OAAO,CAAC,iBAAiB,CAAC,EAsF/D,IAAI,SAlD3B,eAAe,cAAc,SAAS,EAAE,YAAW,kBAAkB,KAAQ,OAAO,CAAC,iBAAiB,CAAC,EAkD1E,gBAAgB,YA7E9B,iBAAiB,KAAG,OAAO,CAAC,UAAU,EAAE,CAAC,EA6ET,gBAAgB,UApElD,UAAU,WAAW,kBAAkB,KAAG,OAAO,CAAC,cAAc,CAAC,EAoEb,cAAc,YA5DlE,eAAe,KAAG,OAAO,CAAC,uBAAuB,CA4D2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.send = exports.sendXec = exports.sendAlp = exports.sendSlp = exports.TransactionManager = void 0;
3
+ exports.buyAgoraTokens = exports.acceptAgoraOffer = exports.fetchAgoraOffers = exports.send = exports.sendXec = exports.sendAlp = exports.sendSlp = exports.TransactionManager = void 0;
4
4
  const tokensend_1 = require("./send/tokensend");
5
5
  const xecsend_1 = require("./send/xecsend");
6
+ const agorabuy_1 = require("./send/agorabuy");
6
7
  /**
7
8
  * 统一交易管理器
8
9
  * 支持 SLP、ALP 和 XEC 交易类型
@@ -29,26 +30,32 @@ class TransactionManager {
29
30
  * @param recipients - 接收方数组
30
31
  * @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex、mnemonic和chronik的选项对象
31
32
  */
32
- async sendXec(recipients, options = 'all') {
33
- // 如果options是对象,提取相关参数;否则直接使用options作为策略
34
- let utxoStrategy;
35
- let addressIndex;
36
- let mnemonic;
37
- let chronikClient; // 新增:chronik客户端
38
- if (typeof options === 'object' && options !== null) {
39
- utxoStrategy = options.utxoStrategy || 'all';
40
- addressIndex = options.addressIndex || 0;
41
- mnemonic = options.mnemonic;
42
- chronikClient = options.chronik; // 提取chronik客户端
43
- }
44
- else {
45
- utxoStrategy = options;
46
- addressIndex = 0;
47
- mnemonic = undefined;
48
- chronikClient = undefined;
49
- }
33
+ async sendXec(recipients, options = {}) {
34
+ const { utxoStrategy = 'all', addressIndex = 0, mnemonic, chronik: chronikClient } = options;
50
35
  return await (0, xecsend_1.createRawXecTransaction)(recipients, utxoStrategy, addressIndex, mnemonic, chronikClient);
51
36
  }
37
+ /**
38
+ * 查询 Agora 报价列表
39
+ * @param options - 查询参数
40
+ */
41
+ async fetchAgoraOffers(options) {
42
+ return await (0, agorabuy_1.fetchAgoraOffers)(options);
43
+ }
44
+ /**
45
+ * 执行 Agora 成交购买(单笔模式)
46
+ * @param offer - fetchAgoraOffers 返回的报价对象
47
+ * @param options - 购买选项
48
+ */
49
+ async acceptAgoraOffer(offer, options) {
50
+ return await (0, agorabuy_1.acceptAgoraOffer)(offer, options);
51
+ }
52
+ /**
53
+ * 聚合购买 Agora 代币(自动循环多个订单)
54
+ * @param options - 购买选项(指定数量和最大价格)
55
+ */
56
+ async buyAgoraTokens(options) {
57
+ return await (0, agorabuy_1.buyAgoraTokens)(options);
58
+ }
52
59
  /**
53
60
  * 通用发送方法
54
61
  * @param type - 交易类型
@@ -58,8 +65,8 @@ class TransactionManager {
58
65
  async send(type, recipients, options = {}) {
59
66
  switch (type.toLowerCase()) {
60
67
  case 'slp':
61
- if (!options.tokenId || !options.tokenDecimals) {
62
- throw new Error('SLP transactions require tokenId and tokenDecimals');
68
+ if (!options.tokenId) {
69
+ throw new Error('SLP transactions require tokenId');
63
70
  }
64
71
  return await this.sendSlp(recipients, {
65
72
  tokenId: options.tokenId,
@@ -71,8 +78,8 @@ class TransactionManager {
71
78
  chronik: options.chronik // 传递chronik客户端
72
79
  });
73
80
  case 'alp':
74
- if (!options.tokenId || !options.tokenDecimals) {
75
- throw new Error('ALP transactions require tokenId and tokenDecimals');
81
+ if (!options.tokenId) {
82
+ throw new Error('ALP transactions require tokenId');
76
83
  }
77
84
  return await this.sendAlp(recipients, {
78
85
  tokenId: options.tokenId,
@@ -102,5 +109,5 @@ const quick = new TransactionManager();
102
109
  // 导出实例和类
103
110
  exports.default = quick;
104
111
  // 便捷方法导出
105
- exports.sendSlp = quick.sendSlp, exports.sendAlp = quick.sendAlp, exports.sendXec = quick.sendXec, exports.send = quick.send;
112
+ exports.sendSlp = quick.sendSlp, exports.sendAlp = quick.sendAlp, exports.sendXec = quick.sendXec, exports.send = quick.send, exports.fetchAgoraOffers = quick.fetchAgoraOffers, exports.acceptAgoraOffer = quick.acceptAgoraOffer, exports.buyAgoraTokens = quick.buyAgoraTokens;
106
113
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { AgoraFetchOptions, AgoraOffer, AgoraAcceptOptions, AgoraBuyResult, AgoraBuyOptions, AgoraBuyAggregateResult } from '../types';
2
+ /**
3
+ * 第一步:查询报价
4
+ */
5
+ export declare function fetchAgoraOffers(options: AgoraFetchOptions): Promise<AgoraOffer[]>;
6
+ /**
7
+ * 第二步:执行购买
8
+ */
9
+ export declare function acceptAgoraOffer(agoraOffer: AgoraOffer, options: AgoraAcceptOptions): Promise<AgoraBuyResult>;
10
+ /**
11
+ * 聚合购买:自动循环购买多个订单直到达到目标数量
12
+ * 模式2:指定数量 + 最大价格,自动选择订单
13
+ */
14
+ export declare function buyAgoraTokens(options: AgoraBuyOptions): Promise<AgoraBuyAggregateResult>;
15
+ //# sourceMappingURL=agorabuy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorabuy.d.ts","sourceRoot":"","sources":["../../send/agorabuy.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,uBAAuB,EAE1B,MAAM,UAAU,CAAC;AAoGlB;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAsCxF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,kBAAkB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAmIzB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA8E/F"}
@@ -0,0 +1,343 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchAgoraOffers = fetchAgoraOffers;
4
+ exports.acceptAgoraOffer = acceptAgoraOffer;
5
+ exports.buyAgoraTokens = buyAgoraTokens;
6
+ const ecash_agora_1 = require("ecash-agora");
7
+ const ecash_lib_1 = require("ecash-lib");
8
+ const chronik_client_1 = require("../client/chronik-client");
9
+ const wallet_utils_1 = require("../wallet/wallet-utils");
10
+ const utxo_utils_1 = require("../utxo/utxo-utils");
11
+ const ecc = new ecash_lib_1.Ecc();
12
+ /**
13
+ * Agora 协议使用的固定 covenant 密钥对
14
+ * 这个密钥对不控制任何资金,只用于构建协议脚本
15
+ */
16
+ const DUMMY_KEYPAIR = {
17
+ sk: (0, ecash_lib_1.fromHex)('33'.repeat(32)),
18
+ pk: (0, ecash_lib_1.fromHex)('023c72addb4fdf09af94f0c94d7fe92a386a7e70cf8a1d85916386bb2535c7b1b1'),
19
+ };
20
+ /**
21
+ * 规范化 UTXO 字段,确保兼容 ecash-agora 的 bigint 要求
22
+ */
23
+ function patchUtxoForAgora(utxo) {
24
+ if (!utxo)
25
+ return utxo;
26
+ const patched = { ...utxo };
27
+ let sats;
28
+ if (typeof utxo.sats !== 'undefined') {
29
+ sats = typeof utxo.sats === 'bigint' ? utxo.sats : BigInt(utxo.sats);
30
+ }
31
+ else if (typeof utxo.value !== 'undefined') {
32
+ sats = typeof utxo.value === 'bigint' ? utxo.value : BigInt(utxo.value);
33
+ }
34
+ else {
35
+ sats = 0n;
36
+ }
37
+ patched.sats = sats;
38
+ patched.value = Number(sats);
39
+ if (utxo.slpToken || utxo.token) {
40
+ const token = utxo.slpToken || utxo.token;
41
+ const patchedToken = { ...token };
42
+ let atoms;
43
+ if (typeof token.atoms !== 'undefined') {
44
+ atoms = typeof token.atoms === 'bigint' ? token.atoms : BigInt(token.atoms);
45
+ }
46
+ else if (typeof token.amount !== 'undefined') {
47
+ atoms = typeof token.amount === 'bigint' ? token.amount : BigInt(token.amount);
48
+ }
49
+ else {
50
+ atoms = 0n;
51
+ }
52
+ patchedToken.atoms = atoms;
53
+ patchedToken.amount = atoms;
54
+ patched.slpToken = patchedToken;
55
+ patched.token = patchedToken;
56
+ }
57
+ return patched;
58
+ }
59
+ /**
60
+ * 安全地获取代币原子单位数量
61
+ */
62
+ function getTokenAtoms(token) {
63
+ if (!token)
64
+ return 0n;
65
+ if (typeof token.atoms !== 'undefined') {
66
+ return typeof token.atoms === 'bigint' ? token.atoms : BigInt(token.atoms);
67
+ }
68
+ if (typeof token.amount !== 'undefined') {
69
+ return typeof token.amount === 'bigint' ? token.amount : BigInt(token.amount);
70
+ }
71
+ return 0n;
72
+ }
73
+ /**
74
+ * 包装 Chronik 客户端以自动规范化 UTXO 格式
75
+ */
76
+ function createAgoraChronik(chronik) {
77
+ return {
78
+ plugin(name) {
79
+ const plugin = chronik.plugin(name);
80
+ if (name !== 'agora')
81
+ return plugin;
82
+ const compatPlugin = Object.create(plugin);
83
+ compatPlugin.utxos = async (groupHex) => {
84
+ const res = await plugin.utxos(groupHex);
85
+ if (Array.isArray(res.utxos)) {
86
+ res.utxos = res.utxos.map(patchUtxoForAgora);
87
+ }
88
+ return res;
89
+ };
90
+ return compatPlugin;
91
+ },
92
+ script(type, hash) {
93
+ const scriptApi = chronik.script(type, hash);
94
+ const compatScript = Object.create(scriptApi);
95
+ compatScript.utxos = async () => {
96
+ const res = await scriptApi.utxos();
97
+ if (Array.isArray(res.utxos)) {
98
+ res.utxos = res.utxos.map(patchUtxoForAgora);
99
+ }
100
+ return res;
101
+ };
102
+ return compatScript;
103
+ },
104
+ blockchainInfo: () => chronik.blockchainInfo(),
105
+ broadcastTx: (hex) => chronik.broadcastTx(hex),
106
+ };
107
+ }
108
+ /**
109
+ * 第一步:查询报价
110
+ */
111
+ async function fetchAgoraOffers(options) {
112
+ const { tokenId, tokenDecimals = 0, maxPrice = 0, chronik = chronik_client_1.chronik } = options;
113
+ const agora = new ecash_agora_1.Agora(createAgoraChronik(chronik));
114
+ const offers = await agora.activeOffersByTokenId(tokenId);
115
+ const result = offers.map(offer => {
116
+ let totalAtoms;
117
+ let totalSats;
118
+ let offerType;
119
+ if (offer.variant.type === 'PARTIAL') {
120
+ const partial = offer.variant.params;
121
+ totalAtoms = partial.offeredAtoms();
122
+ totalSats = partial.askedSats(totalAtoms);
123
+ offerType = 'PARTIAL';
124
+ }
125
+ else {
126
+ totalAtoms = getTokenAtoms(offer.token);
127
+ totalSats = offer.askedSats();
128
+ offerType = 'ONE_TO_ONE';
129
+ }
130
+ const totalTokensWithDecimals = Number(totalAtoms) / Math.pow(10, tokenDecimals);
131
+ const totalXEC = Number(totalSats) / 100;
132
+ const pricePerToken = totalTokensWithDecimals > 0 ? totalXEC / totalTokensWithDecimals : 0;
133
+ return {
134
+ offer,
135
+ pricePerToken,
136
+ totalTokenAmount: totalTokensWithDecimals,
137
+ totalXEC,
138
+ offerType
139
+ };
140
+ });
141
+ return result
142
+ .filter(o => maxPrice <= 0 || o.pricePerToken <= maxPrice)
143
+ .sort((a, b) => a.pricePerToken - b.pricePerToken);
144
+ }
145
+ /**
146
+ * 第二步:执行购买
147
+ */
148
+ async function acceptAgoraOffer(agoraOffer, options) {
149
+ try {
150
+ const { amount, tokenDecimals = 0, addressIndex = 0, mnemonic, chronik = chronik_client_1.chronik } = options;
151
+ if (amount <= 0) {
152
+ return { success: false, reason: 'INVALID_AMOUNT', message: 'Amount must be greater than 0' };
153
+ }
154
+ const scaledAmount = BigInt(Math.floor(amount * Math.pow(10, tokenDecimals)));
155
+ const offer = agoraOffer.offer;
156
+ const availableAtoms = getTokenAtoms(offer.token);
157
+ let acceptedAtoms = scaledAmount;
158
+ if (offer.variant.type === 'PARTIAL') {
159
+ const partial = offer.variant.params;
160
+ const minAccepted = partial.minAcceptedAtoms();
161
+ if (acceptedAtoms < minAccepted) {
162
+ return {
163
+ success: false,
164
+ reason: 'AMOUNT_TOO_SMALL',
165
+ message: `Amount too small. Minimum: ${Number(minAccepted) / Math.pow(10, tokenDecimals)}`,
166
+ details: { minAccepted: Number(minAccepted) }
167
+ };
168
+ }
169
+ if (acceptedAtoms > availableAtoms) {
170
+ acceptedAtoms = availableAtoms;
171
+ }
172
+ // 调整为符合截断因子的有效数量
173
+ acceptedAtoms = partial.prepareAcceptedAtoms(acceptedAtoms);
174
+ // 如果购买后剩余量太小,则尝试全买(如果总余额允许)
175
+ const remaining = availableAtoms - acceptedAtoms;
176
+ if (remaining > 0n && remaining < minAccepted) {
177
+ // 自动调整为购买全部可用余额
178
+ acceptedAtoms = availableAtoms;
179
+ }
180
+ }
181
+ else {
182
+ if (acceptedAtoms !== availableAtoms) {
183
+ return {
184
+ success: false,
185
+ reason: 'ONE_TO_ONE_REQUIRED',
186
+ message: 'This offer requires buying the full amount (ONE_TO_ONE)'
187
+ };
188
+ }
189
+ }
190
+ const askedSats = offer.askedSats(acceptedAtoms);
191
+ const wallet = (0, wallet_utils_1.initializeWallet)(addressIndex, mnemonic);
192
+ const utxos = await (0, utxo_utils_1.getUtxos)(wallet.address, chronik);
193
+ // 获取区块高度以检查 coinbase 成熟度
194
+ let tipHeight = 0;
195
+ try {
196
+ const info = await chronik.blockchainInfo();
197
+ tipHeight = info.tipHeight;
198
+ }
199
+ catch (e) { }
200
+ const fuelUtxos = utxos.filter(utxo => {
201
+ if (utxo.slpToken)
202
+ return false;
203
+ if (utxo.isCoinbase && tipHeight > 0 && typeof utxo.blockHeight === 'number' && utxo.blockHeight > 0) {
204
+ return (tipHeight - utxo.blockHeight + 1) >= 100;
205
+ }
206
+ return true;
207
+ }).map(patchUtxoForAgora);
208
+ const totalBalance = fuelUtxos.reduce((s, u) => s + u.sats, 0n);
209
+ if (totalBalance < askedSats) {
210
+ return {
211
+ success: false,
212
+ reason: 'INSUFFICIENT_BALANCE',
213
+ message: `Need ${askedSats} sats for price, have ${totalBalance} sats`
214
+ };
215
+ }
216
+ const fuelInputs = fuelUtxos.map(utxo => ({
217
+ input: {
218
+ prevOut: { txid: utxo.txid, outIdx: utxo.vout },
219
+ signData: { sats: utxo.sats, outputScript: wallet.walletP2pkh }
220
+ },
221
+ signatory: (0, ecash_lib_1.P2PKHSignatory)(wallet.walletSk, wallet.walletPk, ecash_lib_1.ALL_BIP143)
222
+ }));
223
+ const acceptFeeSats = offer.acceptFeeSats({
224
+ recipientScript: wallet.walletP2pkh,
225
+ feePerKb: 1000n,
226
+ acceptedAtoms
227
+ });
228
+ if (totalBalance < (askedSats + acceptFeeSats)) {
229
+ return {
230
+ success: false,
231
+ reason: 'INSUFFICIENT_BALANCE_WITH_FEE',
232
+ message: `Need ${askedSats + acceptFeeSats} sats total, have ${totalBalance} sats`,
233
+ details: { price: askedSats, fee: acceptFeeSats }
234
+ };
235
+ }
236
+ const acceptTx = offer.acceptTx({
237
+ covenantSk: DUMMY_KEYPAIR.sk,
238
+ covenantPk: DUMMY_KEYPAIR.pk,
239
+ fuelInputs: fuelInputs,
240
+ recipientScript: wallet.walletP2pkh,
241
+ acceptedAtoms,
242
+ dustSats: 546n,
243
+ feePerKb: 1000n,
244
+ allowUnspendable: true
245
+ });
246
+ const broadcastRes = await chronik.broadcastTx((0, ecash_lib_1.toHex)(acceptTx.ser()));
247
+ return {
248
+ success: true,
249
+ reason: 'SUCCESS',
250
+ txid: broadcastRes.txid,
251
+ explorerLink: `https://explorer.e.cash/tx/${broadcastRes.txid}`,
252
+ actualAmount: Number(acceptedAtoms) / Math.pow(10, tokenDecimals),
253
+ totalXECPaid: Number(askedSats + acceptFeeSats) / 100,
254
+ pricePerToken: Number(askedSats) / 100 / (Number(acceptedAtoms) / Math.pow(10, tokenDecimals)),
255
+ networkFee: Number(acceptFeeSats) / 100
256
+ };
257
+ }
258
+ catch (error) {
259
+ console.error('Agora accept failed:', error);
260
+ return {
261
+ success: false,
262
+ reason: 'ERROR',
263
+ message: error.message || 'Unknown error during Agora purchase'
264
+ };
265
+ }
266
+ }
267
+ /**
268
+ * 聚合购买:自动循环购买多个订单直到达到目标数量
269
+ * 模式2:指定数量 + 最大价格,自动选择订单
270
+ */
271
+ async function buyAgoraTokens(options) {
272
+ const { tokenId, amount, maxPrice, tokenDecimals = 0, addressIndex, mnemonic, chronik } = options;
273
+ const transactions = [];
274
+ let totalBought = 0;
275
+ let totalXECPaid = 0;
276
+ let skippedOffers = 0;
277
+ try {
278
+ // 获取所有符合价格条件的订单
279
+ const offers = await fetchAgoraOffers({ tokenId, tokenDecimals, maxPrice, chronik });
280
+ if (offers.length === 0) {
281
+ return {
282
+ success: false,
283
+ totalBought: 0,
284
+ totalXECPaid: 0,
285
+ avgPrice: 0,
286
+ transactions: [],
287
+ skippedOffers: 0,
288
+ message: `No offers found below ${maxPrice} XEC`
289
+ };
290
+ }
291
+ // 循环购买订单
292
+ for (const offer of offers) {
293
+ if (totalBought >= amount)
294
+ break;
295
+ const remaining = amount - totalBought;
296
+ const buyAmount = Math.min(remaining, offer.totalTokenAmount);
297
+ const result = await acceptAgoraOffer(offer, {
298
+ amount: buyAmount,
299
+ tokenDecimals,
300
+ addressIndex,
301
+ mnemonic,
302
+ chronik
303
+ });
304
+ if (result.success && result.txid) {
305
+ transactions.push({
306
+ txid: result.txid,
307
+ amount: result.actualAmount || buyAmount,
308
+ price: result.pricePerToken || offer.pricePerToken,
309
+ fee: result.networkFee || 0
310
+ });
311
+ totalBought += result.actualAmount || buyAmount;
312
+ totalXECPaid += result.totalXECPaid || 0;
313
+ }
314
+ else {
315
+ skippedOffers++;
316
+ }
317
+ }
318
+ const avgPrice = totalBought > 0 ? totalXECPaid / totalBought : 0;
319
+ return {
320
+ success: totalBought > 0,
321
+ totalBought,
322
+ totalXECPaid,
323
+ avgPrice,
324
+ transactions,
325
+ skippedOffers,
326
+ message: totalBought >= amount
327
+ ? `Successfully bought ${totalBought} tokens`
328
+ : `Partially filled: bought ${totalBought} of ${amount} tokens`
329
+ };
330
+ }
331
+ catch (error) {
332
+ return {
333
+ success: false,
334
+ totalBought,
335
+ totalXECPaid,
336
+ avgPrice: totalBought > 0 ? totalXECPaid / totalBought : 0,
337
+ transactions,
338
+ skippedOffers,
339
+ message: error.message || 'Unknown error during aggregate purchase'
340
+ };
341
+ }
342
+ }
343
+ //# sourceMappingURL=agorabuy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorabuy.js","sourceRoot":"","sources":["../../send/agorabuy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { TransactionResult, UtxoStrategy } from '../types';
2
+ import { ChronikClient } from 'chronik-client';
2
3
  interface ExtendedRecipient {
3
4
  address: string;
4
5
  amount: number;
@@ -19,6 +20,6 @@ interface XecTransactionResult extends TransactionResult {
19
20
  }>;
20
21
  }
21
22
  export declare function createRawXecTransaction(recipients: ExtendedRecipient[], utxoStrategy?: UtxoStrategy, addressIndex?: number, mnemonic?: string, // 可选的助记词参数
22
- chronikClient?: any): Promise<XecTransactionResult>;
23
+ chronikClient?: ChronikClient): Promise<XecTransactionResult>;
23
24
  export {};
24
25
  //# sourceMappingURL=xecsend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"xecsend.d.ts","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG3D,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,KAAK,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,iBAAiB,EAAE,EAC/B,YAAY,GAAE,YAAoB,EAClC,YAAY,GAAE,MAAU,EACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW;AAC9B,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAkG/B"}
1
+ {"version":3,"file":"xecsend.d.ts","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,aAAa,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,KAAK,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,iBAAiB,EAAE,EAC/B,YAAY,GAAE,YAAoB,EAClC,YAAY,GAAE,MAAU,EACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW;AAC9B,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAkG/B"}
@@ -6,8 +6,7 @@ const wallet_utils_1 = require("../wallet/wallet-utils");
6
6
  const transaction_utils_1 = require("../transaction/transaction-utils");
7
7
  const transaction_builder_1 = require("../transaction/transaction-builder");
8
8
  async function createRawXecTransaction(recipients, utxoStrategy = 'all', addressIndex = 0, mnemonic, // 可选的助记词参数
9
- chronikClient // 新增:可选的chronik客户端参数 (使用any类型以避免循环依赖)
10
- ) {
9
+ chronikClient) {
11
10
  try {
12
11
  // 验证参数
13
12
  if (!Array.isArray(recipients) || recipients.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"xecsend.js","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xecsend.js","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Script, P2PKHSignatory } from 'ecash-lib';
1
2
  import { Utxo } from '../types';
2
3
  interface TransactionInput {
3
4
  input: {
@@ -7,10 +8,10 @@ interface TransactionInput {
7
8
  };
8
9
  signData: {
9
10
  sats: bigint;
10
- outputScript: any;
11
+ outputScript: Script;
11
12
  };
12
13
  };
13
- signatory: any;
14
+ signatory: ReturnType<typeof P2PKHSignatory>;
14
15
  }
15
16
  /**
16
17
  * 构建交易输入 - 通用函数,支持单个或多个UTXO数组
@@ -20,12 +21,12 @@ interface TransactionInput {
20
21
  * @param walletPk - 公钥
21
22
  * @returns 交易输入数组
22
23
  */
23
- export declare function buildTransactionInputs(utxos: Utxo[] | Utxo[][], walletP2pkh: any, walletSk: Uint8Array, walletPk: Uint8Array): TransactionInput[];
24
+ export declare function buildTransactionInputs(utxos: Utxo[] | Utxo[][], walletP2pkh: Script, walletSk: Uint8Array, walletPk: Uint8Array): TransactionInput[];
24
25
  /**
25
26
  * 创建P2PKH脚本
26
27
  * @param address - eCash地址
27
28
  * @returns P2PKH脚本
28
29
  */
29
- export declare function createP2pkhScript(address: string): any;
30
+ export declare function createP2pkhScript(address: string): Script;
30
31
  export {};
31
32
  //# sourceMappingURL=transaction-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../transaction/transaction-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAShC,UAAU,gBAAgB;IACxB,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,GAAG,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,GAAG,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EACxB,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,GACnB,gBAAgB,EAAE,CAWpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAOtD"}
1
+ {"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../transaction/transaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,cAAc,EAAc,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,UAAU,gBAAgB;IACxB,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,UAAU,GACnB,gBAAgB,EAAE,CAWpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOzD"}
@@ -1,43 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.buildTransactionInputs = buildTransactionInputs;
37
4
  exports.createP2pkhScript = createP2pkhScript;
38
- const ecashLib = __importStar(require("ecash-lib"));
39
5
  const ecash_lib_1 = require("ecash-lib");
40
- const { P2PKHSignatory, ALL_BIP143, Script, } = ecashLib;
41
6
  /**
42
7
  * 构建交易输入 - 通用函数,支持单个或多个UTXO数组
43
8
  * @param utxos - 单个UTXO数组或多个UTXO数组
@@ -54,7 +19,7 @@ function buildTransactionInputs(utxos, walletP2pkh, walletSk, walletPk) {
54
19
  prevOut: { txid: utxo.txid, outIdx: utxo.vout },
55
20
  signData: { sats: BigInt(utxo.value), outputScript: walletP2pkh },
56
21
  },
57
- signatory: P2PKHSignatory(walletSk, walletPk, ALL_BIP143),
22
+ signatory: (0, ecash_lib_1.P2PKHSignatory)(walletSk, walletPk, ecash_lib_1.ALL_BIP143),
58
23
  }));
59
24
  }
60
25
  /**
@@ -65,7 +30,7 @@ function buildTransactionInputs(utxos, walletP2pkh, walletSk, walletPk) {
65
30
  function createP2pkhScript(address) {
66
31
  try {
67
32
  const { hash } = ecash_lib_1.Address.fromCashAddress(address);
68
- return Script.p2pkh(Buffer.from(hash, 'hex'));
33
+ return ecash_lib_1.Script.p2pkh(Buffer.from(hash, 'hex'));
69
34
  }
70
35
  catch (error) {
71
36
  throw new Error(`Invalid address: ${address}`);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-utils.js","sourceRoot":"","sources":["../../transaction/transaction-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,wDAgBC;AAOD,8CAOC;AA/DD,oDAAsC;AACtC,yCAAoC;AAGpC,MAAM,EACJ,cAAc,EACd,UAAU,EACV,MAAM,GACP,GAAG,QAAQ,CAAC;AAiBb;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CACpC,KAAwB,EACxB,WAAgB,EAChB,QAAoB,EACpB,QAAoB;IAEpB,6CAA6C;IAC7C,MAAM,QAAQ,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,KAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC;IAEhG,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;YAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE;SAClE;QACD,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;KAC1D,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"transaction-utils.js","sourceRoot":"","sources":["../../transaction/transaction-utils.ts"],"names":[],"mappings":";;AA0BA,wDAgBC;AAOD,8CAOC;AAxDD,yCAAwE;AAkBxE;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CACpC,KAAwB,EACxB,WAAmB,EACnB,QAAoB,EACpB,QAAoB;IAEpB,6CAA6C;IAC7C,MAAM,QAAQ,GAAW,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,KAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC;IAEhG,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;YAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE;SAClE;QACD,SAAS,EAAE,IAAA,0BAAc,EAAC,QAAQ,EAAE,QAAQ,EAAE,sBAAU,CAAC;KAC1D,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,kBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,78 @@
1
1
  import { ChronikClient } from "chronik-client";
2
+ import { AgoraOffer as EcashAgoraOffer } from 'ecash-agora';
3
+ /**
4
+ * fetchAgoraOffers 的查询参数
5
+ */
6
+ export interface AgoraFetchOptions {
7
+ tokenId: string;
8
+ tokenDecimals?: number;
9
+ maxPrice?: number;
10
+ chronik?: ChronikClient;
11
+ }
12
+ /**
13
+ * 单个报价(包含定价信息,内含原始 offer 对象供后续成交使用)
14
+ */
15
+ export interface AgoraOffer {
16
+ offer: EcashAgoraOffer;
17
+ pricePerToken: number;
18
+ totalTokenAmount: number;
19
+ totalXEC: number;
20
+ offerType: 'PARTIAL' | 'ONE_TO_ONE';
21
+ }
22
+ /**
23
+ * acceptAgoraOffer 的执行参数
24
+ */
25
+ export interface AgoraAcceptOptions {
26
+ amount: number;
27
+ tokenDecimals?: number;
28
+ addressIndex?: number;
29
+ mnemonic?: string;
30
+ chronik?: ChronikClient;
31
+ }
32
+ /**
33
+ * Agora 购买执行结果
34
+ */
35
+ export interface AgoraBuyResult {
36
+ success: boolean;
37
+ reason: string;
38
+ message?: string;
39
+ txid?: string;
40
+ explorerLink?: string;
41
+ actualAmount?: number;
42
+ totalXECPaid?: number;
43
+ pricePerToken?: number;
44
+ networkFee?: number;
45
+ details?: Record<string, unknown>;
46
+ }
47
+ /**
48
+ * 聚合购买选项(模式2:自动循环购买多个订单)
49
+ */
50
+ export interface AgoraBuyOptions {
51
+ tokenId: string;
52
+ amount: number;
53
+ maxPrice: number;
54
+ tokenDecimals?: number;
55
+ addressIndex?: number;
56
+ mnemonic?: string;
57
+ chronik?: ChronikClient;
58
+ }
59
+ /**
60
+ * 聚合购买结果
61
+ */
62
+ export interface AgoraBuyAggregateResult {
63
+ success: boolean;
64
+ totalBought: number;
65
+ totalXECPaid: number;
66
+ avgPrice: number;
67
+ transactions: Array<{
68
+ txid: string;
69
+ amount: number;
70
+ price: number;
71
+ fee: number;
72
+ }>;
73
+ skippedOffers: number;
74
+ message?: string;
75
+ }
2
76
  /**
3
77
  * 交易接收方
4
78
  *
@@ -23,7 +97,6 @@ export interface Utxo {
23
97
  slpToken?: SlpToken;
24
98
  isCoinbase?: boolean;
25
99
  blockHeight?: number;
26
- [key: string]: any;
27
100
  }
28
101
  /**
29
102
  * SLP代币信息接口
@@ -32,7 +105,6 @@ export interface SlpToken {
32
105
  tokenId: string;
33
106
  atoms: string | bigint;
34
107
  isMintBaton: boolean;
35
- [key: string]: any;
36
108
  }
37
109
  /**
38
110
  * 交易结果 - 统一的交易结果接口
@@ -42,9 +114,6 @@ export interface TransactionResult {
42
114
  explorerLink?: string;
43
115
  broadcastResult?: string;
44
116
  fee?: number;
45
- inputs?: any[];
46
- outputs?: any[];
47
- [key: string]: any;
48
117
  }
49
118
  /**
50
119
  * SLP/ALP 代币交易选项
@@ -67,10 +136,6 @@ export interface XecTransactionOptions {
67
136
  mnemonic?: string;
68
137
  chronik?: ChronikClient;
69
138
  }
70
- /**
71
- * XEC 交易选项联合类型
72
- */
73
- export type XecOptions = string | XecTransactionOptions;
74
139
  /**
75
140
  * 通用发送方法的选项
76
141
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utxo-utils.d.ts","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAY,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAc/C,UAAU,aAAa;IACrB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAGD,UAAU,gBAAgB;IACxB,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC3B,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAGD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAGD,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAID;;;;;GAKG;AACH,iBAAe,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA6BvF;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAoB,GAAG,aAAa,CA4DrG;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,GAAE,MAAU,EACzB,OAAO,GAAE,cAAmB,GAC3B,gBAAgB,CAqHlB;AAED;;;;;GAKG;AACH,iBAAe,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCxG;AAED,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,CAAC"}
1
+ {"version":3,"file":"utxo-utils.d.ts","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAY,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAc/C,UAAU,aAAa;IACrB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAGD,UAAU,gBAAgB;IACxB,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC3B,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAGD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAGD,UAAU,cAAc;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAID;;;;;GAKG;AACH,iBAAe,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA4BvF;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAoB,GAAG,aAAa,CA4DrG;AAED;;;;;;;;GAQG;AACH,iBAAS,cAAc,CACrB,KAAK,EAAE,IAAI,EAAE,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,GAAE,MAAU,EACzB,OAAO,GAAE,cAAmB,GAC3B,gBAAgB,CAqHlB;AAED;;;;;GAKG;AACH,iBAAe,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCxG;AAED,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,iBAAiB,EAClB,CAAC"}
@@ -46,8 +46,7 @@ async function getUtxos(address, chronikClient) {
46
46
  return utxos;
47
47
  }
48
48
  catch (err) {
49
- console.log(`Error fetching UTXOs for hash160: ${hash}`);
50
- return [];
49
+ throw new Error(`Failed to fetch UTXOs for ${address}: ${err instanceof Error ? err.message : String(err)}`);
51
50
  }
52
51
  }
53
52
  /**
@@ -71,7 +70,7 @@ function selectUtxos(utxos, sendAmount, strategy = 'all') {
71
70
  break;
72
71
  case 'minimal':
73
72
  // 选择最少数量的UTXOs来满足金额需求
74
- const sortedUtxos = nonSlpUtxos.sort((a, b) => b.value - a.value); // 从大到小排序
73
+ const sortedUtxos = [...nonSlpUtxos].sort((a, b) => b.value - a.value); // 从大到小排序
75
74
  let accumulatedValue = 0;
76
75
  for (const utxo of sortedUtxos) {
77
76
  selectedUtxos.push(utxo);
@@ -85,7 +84,7 @@ function selectUtxos(utxos, sendAmount, strategy = 'all') {
85
84
  break;
86
85
  case 'largest_first':
87
86
  // 优先选择最大的UTXOs
88
- selectedUtxos = nonSlpUtxos.sort((a, b) => b.value - a.value);
87
+ selectedUtxos = [...nonSlpUtxos].sort((a, b) => b.value - a.value);
89
88
  break;
90
89
  default:
91
90
  throw new Error(`Unknown UTXO selection strategy: ${strategy}`);
@@ -1 +1 @@
1
- {"version":3,"file":"utxo-utils.js","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utxo-utils.js","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mnemonic-utils.d.ts","sourceRoot":"","sources":["../../wallet/mnemonic-utils.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAU,EACxB,cAAc,GAAE,MAA2B,GAC1C,UAAU,CAkCZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAgB7E"}
1
+ {"version":3,"file":"mnemonic-utils.d.ts","sourceRoot":"","sources":["../../wallet/mnemonic-utils.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAU,EACxB,cAAc,GAAE,MAA2B,GAC1C,UAAU,CAqCZ;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAgB7E"}
@@ -59,6 +59,9 @@ function deriveBuyerKey(mnemonic, addressIndex = 0, derivationPath = "m/44'/1899
59
59
  const ecashAddress = ecash_lib_1.Address.p2pkh(pubkeyHash).toString();
60
60
  // 提取私钥缓冲区
61
61
  const privateKeyBuffer = childNode.seckey();
62
+ if (!privateKeyBuffer) {
63
+ throw new Error('Failed to derive private key: seckey() returned undefined');
64
+ }
62
65
  // 将私钥转换为 WIF (0x80 是比特币主网的前缀)
63
66
  const buyerWIF = wif.encode({
64
67
  version: 0x80,
@@ -1 +1 @@
1
- {"version":3,"file":"mnemonic-utils.js","sourceRoot":"","sources":["../../wallet/mnemonic-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,wCAsCC;AAOD,4CAgBC;AA/ED,yCAAuE;AACvE,yCAA2B;AAU3B;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAgB,EAChB,eAAuB,CAAC,EACxB,iBAAyB,kBAAkB;IAE3C,YAAY;IACZ,MAAM,IAAI,GAAG,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;IAEtC,eAAe;IACf,MAAM,MAAM,GAAG,kBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErC,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,GAAG,cAAc,IAAI,YAAY,EAAE,CAAC;IAE/D,YAAY;IACZ,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAExD,mBAAmB;IACnB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,mBAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE1D,UAAU;IACV,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IAE5C,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,YAAY;QACrB,YAAY,EAAE,YAAY;QAC1B,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,QAAmC;IAClE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,IAAA,0BAAc,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mnemonic-utils.js","sourceRoot":"","sources":["../../wallet/mnemonic-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,wCAyCC;AAOD,4CAgBC;AAlFD,yCAAuE;AACvE,yCAA2B;AAU3B;;;;;;GAMG;AACH,SAAgB,cAAc,CAC5B,QAAgB,EAChB,eAAuB,CAAC,EACxB,iBAAyB,kBAAkB;IAE3C,YAAY;IACZ,MAAM,IAAI,GAAG,IAAA,0BAAc,EAAC,QAAQ,CAAC,CAAC;IAEtC,eAAe;IACf,MAAM,MAAM,GAAG,kBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErC,mBAAmB;IACnB,MAAM,kBAAkB,GAAG,GAAG,cAAc,IAAI,YAAY,EAAE,CAAC;IAE/D,YAAY;IACZ,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAExD,mBAAmB;IACnB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAA,qBAAS,EAAC,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,mBAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE1D,UAAU;IACV,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;IAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,EAAE,QAAQ;QACb,OAAO,EAAE,YAAY;QACrB,YAAY,EAAE,YAAY;QAC1B,cAAc,EAAE,kBAAkB;KACnC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,QAAmC;IAClE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,IAAA,0BAAc,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
+ import { Ecc, Script } from 'ecash-lib';
1
2
  interface WalletInfo {
2
- ecc: any;
3
+ ecc: Ecc;
3
4
  walletSk: Uint8Array;
4
5
  walletPk: Uint8Array;
5
6
  walletPkh: Uint8Array;
6
- walletP2pkh: any;
7
+ walletP2pkh: Script;
7
8
  address: string;
8
9
  addressIndex: number;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../wallet/wallet-utils.ts"],"names":[],"mappings":"AAgBA,UAAU,UAAU;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CA4BxF"}
1
+ {"version":3,"file":"wallet-utils.d.ts","sourceRoot":"","sources":["../../wallet/wallet-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAsB,MAAM,WAAW,CAAC;AAM5D,UAAU,UAAU;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,GAAE,MAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CA4BxF"}
@@ -37,10 +37,9 @@ exports.initializeWallet = initializeWallet;
37
37
  const constants_1 = require("../config/constants");
38
38
  const mnemonic_utils_1 = require("./mnemonic-utils");
39
39
  const wif = __importStar(require("wif"));
40
- const ecashLib = __importStar(require("ecash-lib"));
41
- const { Ecc, Script, fromHex, shaRmd160, } = ecashLib;
40
+ const ecash_lib_1 = require("ecash-lib");
42
41
  // 模块级单例,避免每次调用都重新初始化 Ecc
43
- const ecc = new Ecc();
42
+ const ecc = new ecash_lib_1.Ecc();
44
43
  /**
45
44
  * 初始化钱包 - 优化版本,只调用一次 deriveBuyerKey
46
45
  * @param addressIndex - 地址索引,默认为0
@@ -58,10 +57,10 @@ function initializeWallet(addressIndex = 0, mnemonic) {
58
57
  const decoded = wif.decode(derived.wif);
59
58
  const privateKey = decoded.privateKey;
60
59
  const privateKeyHex = Buffer.from(privateKey).toString('hex');
61
- const walletSk = fromHex(privateKeyHex);
60
+ const walletSk = (0, ecash_lib_1.fromHex)(privateKeyHex);
62
61
  const walletPk = ecc.derivePubkey(walletSk);
63
- const walletPkh = shaRmd160(walletPk);
64
- const walletP2pkh = Script.p2pkh(walletPkh);
62
+ const walletPkh = (0, ecash_lib_1.shaRmd160)(walletPk);
63
+ const walletP2pkh = ecash_lib_1.Script.p2pkh(walletPkh);
65
64
  return {
66
65
  ecc,
67
66
  walletSk,
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-utils.js","sourceRoot":"","sources":["../../wallet/wallet-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,4CA4BC;AA5DD,mDAAkD;AAClD,qDAAkD;AAClD,yCAA2B;AAC3B,oDAAsC;AAEtC,MAAM,EACJ,GAAG,EACH,MAAM,EACN,OAAO,EACP,SAAS,GACV,GAAG,QAAQ,CAAC;AAEb,yBAAyB;AACzB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAatB;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,eAAuB,CAAC,EAAE,QAAiB;IAC1E,0BAA0B;IAC1B,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAA,uBAAW,GAAE,CAAC;IAEhD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EAAG,YAAY;QACvC,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wallet-utils.js","sourceRoot":"","sources":["../../wallet/wallet-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,4CA4BC;AArDD,mDAAkD;AAClD,qDAAkD;AAClD,yCAA2B;AAC3B,yCAA4D;AAE5D,yBAAyB;AACzB,MAAM,GAAG,GAAG,IAAI,eAAG,EAAE,CAAC;AAatB;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,eAAuB,CAAC,EAAE,QAAiB;IAC1E,0BAA0B;IAC1B,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAA,uBAAW,GAAE,CAAC;IAEhD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAA,mBAAO,EAAC,aAAa,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,kBAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO,EAAE,OAAO,CAAC,OAAO,EAAG,YAAY;QACvC,YAAY;KACb,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecash-quicksend",
3
- "version": "1.3.4",
3
+ "version": "1.4.0",
4
4
  "description": "A unified transaction manager for eCash (XEC), SLP, and ALP token transactions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,6 +45,7 @@
45
45
  ],
46
46
  "dependencies": {
47
47
  "chronik-client": "^3.1.1",
48
+ "ecash-agora": "^4.0.0",
48
49
  "ecash-lib": "^3.2.0",
49
50
  "wif": "^5.0.0"
50
51
  },
@@ -54,7 +55,6 @@
54
55
  "tsx": "^4.20.3",
55
56
  "typescript": "^5.8.3"
56
57
  },
57
- "peerDependencies": {},
58
58
  "exports": {
59
59
  ".": {
60
60
  "import": "./dist/index.js",