ecash-quicksend 1.0.4 → 1.0.5
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 +13 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -9
- package/dist/index.js.map +1 -1
- package/dist/send/tokensend.d.ts.map +1 -1
- package/dist/send/tokensend.js +4 -3
- package/dist/send/tokensend.js.map +1 -1
- package/dist/send/xecsend.d.ts +2 -1
- package/dist/send/xecsend.d.ts.map +1 -1
- package/dist/send/xecsend.js +4 -3
- package/dist/send/xecsend.js.map +1 -1
- package/dist/transaction/transaction-builder.d.ts +7 -1
- package/dist/transaction/transaction-builder.d.ts.map +1 -1
- package/dist/transaction/transaction-builder.js +4 -2
- package/dist/transaction/transaction-builder.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utxo/utxo-utils.d.ts +5 -2
- package/dist/utxo/utxo-utils.d.ts.map +1 -1
- package/dist/utxo/utxo-utils.js +7 -4
- package/dist/utxo/utxo-utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -77,6 +77,7 @@ await quick.sendAlp([
|
|
|
77
77
|
utxoStrategy?: 'all' | 'minimal' | 'largest_first';
|
|
78
78
|
addressIndex?: number;
|
|
79
79
|
mnemonic?: string;
|
|
80
|
+
chronik?: ChronikClient;
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
// Token Options (SLP/ALP)
|
|
@@ -87,6 +88,7 @@ await quick.sendAlp([
|
|
|
87
88
|
feeStrategy?: 'all' | 'minimal' | 'largest_first';
|
|
88
89
|
tokenStrategy?: 'all' | 'largest' | 'minimal';
|
|
89
90
|
mnemonic?: string;
|
|
91
|
+
chronik?: ChronikClient;
|
|
90
92
|
}
|
|
91
93
|
```
|
|
92
94
|
|
|
@@ -116,6 +118,17 @@ await quick.send('slp', recipients, {
|
|
|
116
118
|
tokenId: 'token-id',
|
|
117
119
|
tokenDecimals: 2
|
|
118
120
|
});
|
|
121
|
+
|
|
122
|
+
// Custom chronik client
|
|
123
|
+
import { ChronikClient } from 'chronik-client';
|
|
124
|
+
const customChronik = new ChronikClient('https://your-chronik-url.com');
|
|
125
|
+
|
|
126
|
+
await quick.sendXec(recipients, { chronik: customChronik });
|
|
127
|
+
await quick.sendSlp(recipients, {
|
|
128
|
+
tokenId: 'token-id',
|
|
129
|
+
tokenDecimals: 2,
|
|
130
|
+
chronik: customChronik
|
|
131
|
+
});
|
|
119
132
|
```
|
|
120
133
|
|
|
121
134
|
## Error Handling
|
package/dist/index.d.ts
CHANGED
|
@@ -7,26 +7,26 @@ declare class TransactionManager {
|
|
|
7
7
|
/**
|
|
8
8
|
* 发送 SLP 代币
|
|
9
9
|
* @param recipients - 接收方数组
|
|
10
|
-
* @param options -
|
|
10
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
11
11
|
*/
|
|
12
12
|
sendSlp(recipients: Recipient[], options: TokenTransactionOptions): Promise<TransactionResult>;
|
|
13
13
|
/**
|
|
14
14
|
* 发送 ALP 代币
|
|
15
15
|
* @param recipients - 接收方数组
|
|
16
|
-
* @param options -
|
|
16
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
17
17
|
*/
|
|
18
18
|
sendAlp(recipients: Recipient[], options: TokenTransactionOptions): Promise<TransactionResult>;
|
|
19
19
|
/**
|
|
20
20
|
* 发送 XEC (eCash)
|
|
21
21
|
* @param recipients - 接收方数组
|
|
22
|
-
* @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex和
|
|
22
|
+
* @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex、mnemonic和chronik的选项对象
|
|
23
23
|
*/
|
|
24
24
|
sendXec(recipients: Recipient[], options?: XecOptions): Promise<TransactionResult>;
|
|
25
25
|
/**
|
|
26
26
|
* 通用发送方法
|
|
27
27
|
* @param type - 交易类型
|
|
28
28
|
* @param recipients - 接收方数组
|
|
29
|
-
* @param options -
|
|
29
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
30
30
|
*/
|
|
31
31
|
send(type: TransactionType, recipients: Recipient[], options?: GeneralSendOptions): Promise<TransactionResult>;
|
|
32
32
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,EAChB,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;
|
|
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,EAChB,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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ class TransactionManager {
|
|
|
8
8
|
/**
|
|
9
9
|
* 发送 SLP 代币
|
|
10
10
|
* @param recipients - 接收方数组
|
|
11
|
-
* @param options -
|
|
11
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
12
12
|
*/
|
|
13
13
|
async sendSlp(recipients, options) {
|
|
14
14
|
return await createRawSlpTransaction(recipients, options);
|
|
@@ -16,7 +16,7 @@ class TransactionManager {
|
|
|
16
16
|
/**
|
|
17
17
|
* 发送 ALP 代币
|
|
18
18
|
* @param recipients - 接收方数组
|
|
19
|
-
* @param options -
|
|
19
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
20
20
|
*/
|
|
21
21
|
async sendAlp(recipients, options) {
|
|
22
22
|
return await createRawAlpTransaction(recipients, options);
|
|
@@ -24,30 +24,33 @@ class TransactionManager {
|
|
|
24
24
|
/**
|
|
25
25
|
* 发送 XEC (eCash)
|
|
26
26
|
* @param recipients - 接收方数组
|
|
27
|
-
* @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex和
|
|
27
|
+
* @param options - UTXO选择策略字符串或包含utxoStrategy、addressIndex、mnemonic和chronik的选项对象
|
|
28
28
|
*/
|
|
29
29
|
async sendXec(recipients, options = 'all') {
|
|
30
30
|
// 如果options是对象,提取相关参数;否则直接使用options作为策略
|
|
31
31
|
let utxoStrategy;
|
|
32
32
|
let addressIndex;
|
|
33
33
|
let mnemonic;
|
|
34
|
+
let chronikClient; // 新增:chronik客户端
|
|
34
35
|
if (typeof options === 'object' && options !== null) {
|
|
35
36
|
utxoStrategy = options.utxoStrategy || 'all';
|
|
36
37
|
addressIndex = options.addressIndex || 0;
|
|
37
|
-
mnemonic = options.mnemonic;
|
|
38
|
+
mnemonic = options.mnemonic;
|
|
39
|
+
chronikClient = options.chronik; // 提取chronik客户端
|
|
38
40
|
}
|
|
39
41
|
else {
|
|
40
42
|
utxoStrategy = options;
|
|
41
43
|
addressIndex = 0;
|
|
42
44
|
mnemonic = undefined;
|
|
45
|
+
chronikClient = undefined;
|
|
43
46
|
}
|
|
44
|
-
return await createRawXecTransaction(recipients, utxoStrategy, addressIndex, mnemonic);
|
|
47
|
+
return await createRawXecTransaction(recipients, utxoStrategy, addressIndex, mnemonic, chronikClient);
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
50
|
* 通用发送方法
|
|
48
51
|
* @param type - 交易类型
|
|
49
52
|
* @param recipients - 接收方数组
|
|
50
|
-
* @param options -
|
|
53
|
+
* @param options - 交易选项(可包含助记词和chronik实例)
|
|
51
54
|
*/
|
|
52
55
|
async send(type, recipients, options = {}) {
|
|
53
56
|
switch (type.toLowerCase()) {
|
|
@@ -61,7 +64,8 @@ class TransactionManager {
|
|
|
61
64
|
addressIndex: options.addressIndex,
|
|
62
65
|
feeStrategy: options.feeStrategy,
|
|
63
66
|
tokenStrategy: options.tokenStrategy,
|
|
64
|
-
mnemonic: options.mnemonic
|
|
67
|
+
mnemonic: options.mnemonic,
|
|
68
|
+
chronik: options.chronik // 传递chronik客户端
|
|
65
69
|
});
|
|
66
70
|
case 'alp':
|
|
67
71
|
if (!options.tokenId || !options.tokenDecimals) {
|
|
@@ -73,13 +77,15 @@ class TransactionManager {
|
|
|
73
77
|
addressIndex: options.addressIndex,
|
|
74
78
|
feeStrategy: options.feeStrategy,
|
|
75
79
|
tokenStrategy: options.tokenStrategy,
|
|
76
|
-
mnemonic: options.mnemonic
|
|
80
|
+
mnemonic: options.mnemonic,
|
|
81
|
+
chronik: options.chronik // 传递chronik客户端
|
|
77
82
|
});
|
|
78
83
|
case 'xec':
|
|
79
84
|
const xecOptions = {
|
|
80
85
|
utxoStrategy: options.utxoStrategy,
|
|
81
86
|
addressIndex: options.addressIndex,
|
|
82
|
-
mnemonic: options.mnemonic
|
|
87
|
+
mnemonic: options.mnemonic,
|
|
88
|
+
chronik: options.chronik // 传递chronik客户端
|
|
83
89
|
};
|
|
84
90
|
return await this.sendXec(recipients, xecOptions);
|
|
85
91
|
default:
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAW5D;;;GAGG;AACH,MAAM,kBAAkB;IACtB;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAAgC;QACrE,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAAgC;QACrE,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,UAAsB,KAAK;QAChE,wCAAwC;QACxC,IAAI,YAAoB,CAAC;QACzB,IAAI,YAAoB,CAAC;QACzB,IAAI,QAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAW5D;;;GAGG;AACH,MAAM,kBAAkB;IACtB;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAAgC;QACrE,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,OAAgC;QACrE,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAAuB,EAAE,UAAsB,KAAK;QAChE,wCAAwC;QACxC,IAAI,YAAoB,CAAC;QACzB,IAAI,YAAoB,CAAC;QACzB,IAAI,QAA4B,CAAC;QACjC,IAAI,aAA8B,CAAC,CAAC,gBAAgB;QAEpD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACpD,YAAY,GAAI,OAAiC,CAAC,YAAY,IAAI,KAAK,CAAC;YACxE,YAAY,GAAI,OAAiC,CAAC,YAAY,IAAI,CAAC,CAAC;YACpE,QAAQ,GAAI,OAAiC,CAAC,QAAQ,CAAC;YACvD,aAAa,GAAI,OAAiC,CAAC,OAAO,CAAC,CAAC,eAAe;QAC7E,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,OAAiB,CAAC;YACjC,YAAY,GAAG,CAAC,CAAC;YACjB,QAAQ,GAAG,SAAS,CAAC;YACrB,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,IAAqB,EAAE,UAAuB,EAAE,UAA8B,EAAE;QACzF,QAAQ,IAAI,CAAC,WAAW,EAAqB,EAAE,CAAC;YAC9C,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;oBACpC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;iBACzC,CAAC,CAAC;YACL,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;oBACpC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,aAAa,EAAE,OAAO,CAAC,aAAa;oBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;iBACzC,CAAC,CAAC;YACL,KAAK,KAAK;gBACR,MAAM,UAAU,GAA0B;oBACxC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;iBACzC,CAAC;gBACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACpD;gBACE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,SAAS;AACT,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEvC,SAAS;AACT,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,SAAS;AACT,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokensend.d.ts","sourceRoot":"","sources":["../../send/tokensend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokensend.d.ts","sourceRoot":"","sources":["../../send/tokensend.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAwKjF;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEnI;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEnI"}
|
package/dist/send/tokensend.js
CHANGED
|
@@ -67,11 +67,12 @@ async function createTokenTransaction(recipients, options, tokenType = 'SLP') {
|
|
|
67
67
|
{ key: 'tokenId', message: 'tokenId is required' },
|
|
68
68
|
{ key: 'tokenDecimals', message: 'tokenDecimals is required', checkUndefined: true }
|
|
69
69
|
]);
|
|
70
|
-
const { tokenId, tokenDecimals, addressIndex = 0, feeStrategy = 'all', tokenStrategy = 'all', mnemonic //
|
|
70
|
+
const { tokenId, tokenDecimals, addressIndex = 0, feeStrategy = 'all', tokenStrategy = 'all', mnemonic, // 从选项中提取助记词
|
|
71
|
+
chronik: chronikClient // 新增:从选项中提取chronik客户端
|
|
71
72
|
} = options;
|
|
72
73
|
// 初始化钱包 - 使用指定的地址索引和可选的助记词
|
|
73
74
|
const { walletSk, walletPk, walletP2pkh, address: utxoAddress } = initializeWallet(addressIndex, mnemonic);
|
|
74
|
-
const utxos = await getUtxos(utxoAddress);
|
|
75
|
+
const utxos = await getUtxos(utxoAddress, chronikClient); // 传递chronik客户端
|
|
75
76
|
if (utxos.length === 0) {
|
|
76
77
|
throw new Error(`No UTXOs found for address index ${addressIndex}`);
|
|
77
78
|
}
|
|
@@ -100,7 +101,7 @@ async function createTokenTransaction(recipients, options, tokenType = 'SLP') {
|
|
|
100
101
|
outputs = buildSlpOutputs(tokenId, finalSendAmounts, recipients, tokenChange, dustLimit, walletP2pkh);
|
|
101
102
|
}
|
|
102
103
|
// 构建并广播交易
|
|
103
|
-
return await buildAndBroadcastTransaction(inputs, outputs, { dustLimit });
|
|
104
|
+
return await buildAndBroadcastTransaction(inputs, outputs, { dustLimit, chronik: chronikClient }); // 传递chronik客户端
|
|
104
105
|
}
|
|
105
106
|
catch (error) {
|
|
106
107
|
console.error(`${tokenType} transaction creation failed:`, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokensend.js","sourceRoot":"","sources":["../../send/tokensend.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tokensend.js","sourceRoot":"","sources":["../../send/tokensend.ts"],"names":[],"mappings":"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"}
|
package/dist/send/xecsend.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ interface XecTransactionResult extends TransactionResult {
|
|
|
18
18
|
address: string;
|
|
19
19
|
}>;
|
|
20
20
|
}
|
|
21
|
-
export declare function createRawXecTransaction(recipients: ExtendedRecipient[], utxoStrategy?: string, addressIndex?: number, mnemonic?: string
|
|
21
|
+
export declare function createRawXecTransaction(recipients: ExtendedRecipient[], utxoStrategy?: string, addressIndex?: number, mnemonic?: string, // 可选的助记词参数
|
|
22
|
+
chronikClient?: any): Promise<XecTransactionResult>;
|
|
22
23
|
export {};
|
|
23
24
|
//# sourceMappingURL=xecsend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xecsend.d.ts","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"xecsend.d.ts","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,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,MAAc,EAC5B,YAAY,GAAE,MAAU,EACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW;AAC9B,aAAa,CAAC,EAAE,GAAG,GAClB,OAAO,CAAC,oBAAoB,CAAC,CA4G/B"}
|
package/dist/send/xecsend.js
CHANGED
|
@@ -4,7 +4,8 @@ import { getUtxos, selectUtxos } from '../utxo/utxo-utils';
|
|
|
4
4
|
import { initializeWallet } from '../wallet/wallet-utils';
|
|
5
5
|
import { buildTransactionInputs, createP2pkhScript } from '../transaction/transaction-utils';
|
|
6
6
|
import { buildAndBroadcastTransaction, logTransactionSummary } from '../transaction/transaction-builder';
|
|
7
|
-
export async function createRawXecTransaction(recipients, utxoStrategy = 'all', addressIndex = 0, mnemonic //
|
|
7
|
+
export async function createRawXecTransaction(recipients, utxoStrategy = 'all', addressIndex = 0, mnemonic, // 可选的助记词参数
|
|
8
|
+
chronikClient // 新增:可选的chronik客户端参数 (使用any类型以避免循环依赖)
|
|
8
9
|
) {
|
|
9
10
|
try {
|
|
10
11
|
// 验证参数
|
|
@@ -27,7 +28,7 @@ export async function createRawXecTransaction(recipients, utxoStrategy = 'all',
|
|
|
27
28
|
}
|
|
28
29
|
// 初始化钱包 - 使用指定的地址索引和可选的助记词
|
|
29
30
|
const { walletSk, walletPk, walletP2pkh, address: utxoAddress } = initializeWallet(addressIndex, mnemonic);
|
|
30
|
-
const utxos = await getUtxos(utxoAddress);
|
|
31
|
+
const utxos = await getUtxos(utxoAddress, chronikClient); // 传递chronik客户端
|
|
31
32
|
if (utxos.length === 0) {
|
|
32
33
|
throw new Error(`No UTXOs found for address index ${addressIndex}`);
|
|
33
34
|
}
|
|
@@ -76,7 +77,7 @@ export async function createRawXecTransaction(recipients, utxoStrategy = 'all',
|
|
|
76
77
|
// 添加找零脚本 - 保持原始逻辑!
|
|
77
78
|
outputs.push(walletP2pkh);
|
|
78
79
|
// 构建并广播交易
|
|
79
|
-
const result = await buildAndBroadcastTransaction(inputs, outputs);
|
|
80
|
+
const result = await buildAndBroadcastTransaction(inputs, outputs, { chronik: chronikClient }); // 传递chronik客户端
|
|
80
81
|
return {
|
|
81
82
|
...result,
|
|
82
83
|
utxoSelection,
|
package/dist/send/xecsend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xecsend.js","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"xecsend.js","sourceRoot":"","sources":["../../send/xecsend.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChronikClient } from "chronik-client";
|
|
2
2
|
interface TransactionOptions {
|
|
3
3
|
feePerKb?: bigint;
|
|
4
4
|
dustSats?: bigint;
|
|
5
5
|
dustLimit?: number;
|
|
6
|
+
chronik?: ChronikClient;
|
|
7
|
+
}
|
|
8
|
+
interface TransactionResult {
|
|
9
|
+
explorerLink: string;
|
|
10
|
+
broadcastResult: string;
|
|
11
|
+
txid: string;
|
|
6
12
|
}
|
|
7
13
|
interface RequiredParamConfig {
|
|
8
14
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-builder.d.ts","sourceRoot":"","sources":["../../transaction/transaction-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transaction-builder.d.ts","sourceRoot":"","sources":["../../transaction/transaction-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAK/C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAGD,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,UAAU,mBAAmB;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,GAAG,EAAE,EACb,OAAO,EAAE,GAAG,EAAE,EACd,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsC5B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAMzF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAEtE"}
|
|
@@ -9,7 +9,9 @@ const { TxBuilder, toHex } = ecashLib;
|
|
|
9
9
|
* @returns 包含 explorer 链接和交易 ID 的对象
|
|
10
10
|
*/
|
|
11
11
|
export async function buildAndBroadcastTransaction(inputs, outputs, options = {}) {
|
|
12
|
-
const { feePerKb = 1000n, dustSats = 546n, dustLimit = 546
|
|
12
|
+
const { feePerKb = 1000n, dustSats = 546n, dustLimit = 546, chronik: chronikClient // 提取chronik客户端
|
|
13
|
+
} = options;
|
|
14
|
+
const client = chronikClient || chronik; // 使用传入的chronik客户端或默认的
|
|
13
15
|
try {
|
|
14
16
|
// 构建交易
|
|
15
17
|
const txBuild = new TxBuilder({ inputs, outputs });
|
|
@@ -21,7 +23,7 @@ export async function buildAndBroadcastTransaction(inputs, outputs, options = {}
|
|
|
21
23
|
// 序列化交易
|
|
22
24
|
const rawTxHex = toHex(tx.ser());
|
|
23
25
|
// 广播交易
|
|
24
|
-
const broadcastResponse = await
|
|
26
|
+
const broadcastResponse = await client.broadcastTx(rawTxHex);
|
|
25
27
|
if (!broadcastResponse) {
|
|
26
28
|
throw new Error("Empty Chronik broadcast response");
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-builder.js","sourceRoot":"","sources":["../../transaction/transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"transaction-builder.js","sourceRoot":"","sources":["../../transaction/transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,QAAQ,MAAM,WAAW,CAAC;AAGjC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;AAwBtC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAa,EACb,OAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,EACJ,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,GAAG,EACf,OAAO,EAAE,aAAa,CAAC,eAAe;MACvC,GAAG,OAAO,CAAC;IAEZ,MAAM,MAAM,GAAG,aAAa,IAAI,OAAO,CAAC,CAAC,sBAAsB;IAE/D,IAAI,CAAC;QACH,OAAO;QACP,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnD,OAAO;QACP,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YACtB,QAAQ;YACR,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;SACtE,CAAC,CAAC;QAEH,QAAQ;QACR,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,OAAO;QACP,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;YACL,YAAY,EAAE,8BAA8B,iBAAiB,CAAC,IAAI,EAAE;YACpE,eAAe,EAAE,iBAAiB,CAAC,IAAI;YACvC,IAAI,EAAE,iBAAiB,CAAC,IAAI;SAC7B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAW,EAAE,QAA+B;IACjF,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,QAAQ,EAAE,CAAC;QACxD,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAY;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ChronikClient } from "chronik-client";
|
|
1
2
|
/**
|
|
2
3
|
* 交易接收方
|
|
3
4
|
*/
|
|
@@ -46,6 +47,7 @@ export interface TokenTransactionOptions {
|
|
|
46
47
|
feeStrategy?: string;
|
|
47
48
|
tokenStrategy?: string;
|
|
48
49
|
mnemonic?: string;
|
|
50
|
+
chronik?: ChronikClient;
|
|
49
51
|
}
|
|
50
52
|
/**
|
|
51
53
|
* XEC 交易选项(可以是字符串或对象)
|
|
@@ -54,6 +56,7 @@ export interface XecTransactionOptions {
|
|
|
54
56
|
utxoStrategy?: string;
|
|
55
57
|
addressIndex?: number;
|
|
56
58
|
mnemonic?: string;
|
|
59
|
+
chronik?: ChronikClient;
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
62
|
* XEC 交易选项联合类型
|
|
@@ -70,6 +73,7 @@ export interface GeneralSendOptions {
|
|
|
70
73
|
feeStrategy?: string;
|
|
71
74
|
tokenStrategy?: string;
|
|
72
75
|
mnemonic?: string;
|
|
76
|
+
chronik?: ChronikClient;
|
|
73
77
|
}
|
|
74
78
|
/**
|
|
75
79
|
* 交易类型
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,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,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,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,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,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,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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,QAAQ,GAAG,UAAU,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Utxo, Recipient } from '../types';
|
|
2
|
+
import { ChronikClient } from 'chronik-client';
|
|
2
3
|
interface UtxoSelection {
|
|
3
4
|
selectedUtxos: Utxo[];
|
|
4
5
|
totalInputValue: number;
|
|
@@ -48,9 +49,10 @@ type UtxoStrategy = 'all' | 'minimal' | 'largest_first';
|
|
|
48
49
|
/**
|
|
49
50
|
* Get UTXOs for a given address
|
|
50
51
|
* @param address - eCash address
|
|
52
|
+
* @param chronikClient - Optional chronik client instance (uses default if not provided)
|
|
51
53
|
* @returns Array of UTXOs
|
|
52
54
|
*/
|
|
53
|
-
declare function getUtxos(address: string): Promise<Utxo[]>;
|
|
55
|
+
declare function getUtxos(address: string, chronikClient?: ChronikClient): Promise<Utxo[]>;
|
|
54
56
|
/**
|
|
55
57
|
* 选择合适的UTXOs用于普通XEC交易
|
|
56
58
|
* @param utxos - 所有可用的UTXOs
|
|
@@ -72,8 +74,9 @@ declare function selectSlpUtxos(utxos: Utxo[], tokenId: string, recipients: Reci
|
|
|
72
74
|
/**
|
|
73
75
|
* 获取地址余额信息
|
|
74
76
|
* @param address - eCash地址
|
|
77
|
+
* @param chronikClient - Optional chronik client instance (uses default if not provided)
|
|
75
78
|
* @returns 余额信息
|
|
76
79
|
*/
|
|
77
|
-
declare function getAddressBalance(address: string): Promise<AddressBalance>;
|
|
80
|
+
declare function getAddressBalance(address: string, chronikClient?: ChronikClient): Promise<AddressBalance>;
|
|
78
81
|
export { getUtxos, selectUtxos, selectSlpUtxos, getAddressBalance };
|
|
79
82
|
//# sourceMappingURL=utxo-utils.d.ts.map
|
|
@@ -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,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"utxo-utils.d.ts","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAY,SAAS,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/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,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;IAClD,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;CAC/C;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;AAGD,KAAK,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;AAExD;;;;;GAKG;AACH,iBAAe,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAuBvF;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,EAAE,MAAM,EACrB,OAAO,GAAE,cAAmB,GAC3B,gBAAgB,CAgHlB;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"}
|
package/dist/utxo/utxo-utils.js
CHANGED
|
@@ -3,12 +3,14 @@ import { chronik } from '../client/chronik-client';
|
|
|
3
3
|
/**
|
|
4
4
|
* Get UTXOs for a given address
|
|
5
5
|
* @param address - eCash address
|
|
6
|
+
* @param chronikClient - Optional chronik client instance (uses default if not provided)
|
|
6
7
|
* @returns Array of UTXOs
|
|
7
8
|
*/
|
|
8
|
-
async function getUtxos(address) {
|
|
9
|
+
async function getUtxos(address, chronikClient) {
|
|
9
10
|
const { type, hash } = decodeCashAddress(address);
|
|
11
|
+
const client = chronikClient || chronik; // 使用传入的chronik客户端或默认的
|
|
10
12
|
try {
|
|
11
|
-
const utxosResponse = await
|
|
13
|
+
const utxosResponse = await client.script(type, hash).utxos();
|
|
12
14
|
if (!utxosResponse || !utxosResponse.utxos) {
|
|
13
15
|
throw new Error('utxosResponse does not contain utxos property');
|
|
14
16
|
}
|
|
@@ -188,11 +190,12 @@ function selectSlpUtxos(utxos, tokenId, recipients, tokenDecimals, options = {})
|
|
|
188
190
|
/**
|
|
189
191
|
* 获取地址余额信息
|
|
190
192
|
* @param address - eCash地址
|
|
193
|
+
* @param chronikClient - Optional chronik client instance (uses default if not provided)
|
|
191
194
|
* @returns 余额信息
|
|
192
195
|
*/
|
|
193
|
-
async function getAddressBalance(address) {
|
|
196
|
+
async function getAddressBalance(address, chronikClient) {
|
|
194
197
|
try {
|
|
195
|
-
const utxos = await getUtxos(address);
|
|
198
|
+
const utxos = await getUtxos(address, chronikClient);
|
|
196
199
|
const nonSlpUtxos = utxos.filter(utxo => !utxo.slpToken);
|
|
197
200
|
const slpUtxos = utxos.filter(utxo => utxo.slpToken);
|
|
198
201
|
const totalBalance = nonSlpUtxos.reduce((sum, utxo) => sum + utxo.value, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utxo-utils.js","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"utxo-utils.js","sourceRoot":"","sources":["../../utxo/utxo-utils.ts"],"names":[],"mappings":"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"}
|