@ckb-ccc/core 0.0.9-alpha.1 → 0.0.10-alpha.4

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.
Files changed (190) hide show
  1. package/dist/ckb/transaction.d.ts +19 -15
  2. package/dist/ckb/transaction.d.ts.map +1 -1
  3. package/dist/ckb/transaction.js +44 -10
  4. package/dist/client/client.d.ts +1 -1
  5. package/dist/client/client.d.ts.map +1 -1
  6. package/dist/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  7. package/dist/client/clientPublicMainnet.advanced.js +30 -2
  8. package/dist/client/clientPublicMainnet.d.ts.map +1 -1
  9. package/dist/client/clientPublicMainnet.js +1 -1
  10. package/dist/client/clientPublicTestnet.advanced.js +3 -3
  11. package/dist/client/clientPublicTestnet.d.ts.map +1 -1
  12. package/dist/client/clientPublicTestnet.js +1 -1
  13. package/dist/client/clientTypes.advanced.d.ts +8 -8
  14. package/dist/client/clientTypes.advanced.d.ts.map +1 -1
  15. package/dist/client/clientTypes.d.ts +2 -2
  16. package/dist/client/clientTypes.d.ts.map +1 -1
  17. package/dist/client/clientTypes.js +2 -2
  18. package/dist/signer/ckb/index.d.ts +3 -0
  19. package/dist/signer/ckb/index.d.ts.map +1 -1
  20. package/dist/signer/ckb/index.js +3 -0
  21. package/dist/signer/ckb/signerCkbPrivateKey.d.ts +12 -0
  22. package/dist/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
  23. package/dist/signer/ckb/signerCkbPrivateKey.js +38 -0
  24. package/dist/signer/ckb/signerCkbPublicKey.d.ts +18 -0
  25. package/dist/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
  26. package/dist/signer/ckb/signerCkbPublicKey.js +44 -0
  27. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts +5 -0
  28. package/dist/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
  29. package/dist/signer/ckb/verifyCkbSecp256k1.js +14 -0
  30. package/dist/signer/evm/signerEvm.d.ts +2 -1
  31. package/dist/signer/evm/signerEvm.d.ts.map +1 -1
  32. package/dist/signer/evm/signerEvmAddressReadonly.d.ts +2 -2
  33. package/dist/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  34. package/dist/signer/signer/index.d.ts +8 -6
  35. package/dist/signer/signer/index.d.ts.map +1 -1
  36. package/dist/signer/signer/index.js +9 -5
  37. package/dist/utils/index.d.ts +18 -9
  38. package/dist/utils/index.d.ts.map +1 -1
  39. package/dist/utils/index.js +2 -2
  40. package/dist.commonjs/address/address.advanced.d.ts +29 -24
  41. package/dist.commonjs/address/address.advanced.js +115 -89
  42. package/dist.commonjs/address/advanced.d.ts +1 -1
  43. package/dist.commonjs/address/advanced.js +30 -14
  44. package/dist.commonjs/address/index.d.ts +51 -44
  45. package/dist.commonjs/address/index.js +84 -65
  46. package/dist.commonjs/advanced.d.ts +1 -1
  47. package/dist.commonjs/advanced.js +47 -22
  48. package/dist.commonjs/advancedBarrel.d.ts +1 -1
  49. package/dist.commonjs/advancedBarrel.js +30 -14
  50. package/dist.commonjs/barrel.d.ts +1 -1
  51. package/dist.commonjs/barrel.js +30 -14
  52. package/dist.commonjs/bytes/advanced.d.ts +11 -2
  53. package/dist.commonjs/bytes/index.d.ts +9 -3
  54. package/dist.commonjs/bytes/index.js +28 -26
  55. package/dist.commonjs/ckb/advanced.d.ts +1 -1
  56. package/dist.commonjs/ckb/advanced.js +47 -22
  57. package/dist.commonjs/ckb/index.d.ts +1 -1
  58. package/dist.commonjs/ckb/index.js +30 -14
  59. package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +420 -260
  60. package/dist.commonjs/ckb/molecule.advanced/generated.js +1536 -1332
  61. package/dist.commonjs/ckb/molecule.advanced/index.d.ts +3 -3
  62. package/dist.commonjs/ckb/molecule.advanced/index.js +34 -18
  63. package/dist.commonjs/ckb/script.advanced.d.ts +1 -1
  64. package/dist.commonjs/ckb/script.advanced.js +12 -9
  65. package/dist.commonjs/ckb/script.d.ts +121 -117
  66. package/dist.commonjs/ckb/script.js +220 -176
  67. package/dist.commonjs/ckb/transaction.advanced.d.ts +1 -1
  68. package/dist.commonjs/ckb/transaction.advanced.js +4 -4
  69. package/dist.commonjs/ckb/transaction.d.ts +806 -718
  70. package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
  71. package/dist.commonjs/ckb/transaction.js +1425 -1158
  72. package/dist.commonjs/client/advanced.d.ts +1 -1
  73. package/dist.commonjs/client/advanced.js +30 -14
  74. package/dist.commonjs/client/client.advanced.d.ts +23 -6
  75. package/dist.commonjs/client/client.advanced.js +89 -61
  76. package/dist.commonjs/client/client.d.ts +114 -54
  77. package/dist.commonjs/client/client.d.ts.map +1 -1
  78. package/dist.commonjs/client/client.js +215 -182
  79. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts +8 -4
  80. package/dist.commonjs/client/clientPublicMainnet.advanced.d.ts.map +1 -1
  81. package/dist.commonjs/client/clientPublicMainnet.advanced.js +215 -161
  82. package/dist.commonjs/client/clientPublicMainnet.d.ts +8 -6
  83. package/dist.commonjs/client/clientPublicMainnet.d.ts.map +1 -1
  84. package/dist.commonjs/client/clientPublicMainnet.js +17 -15
  85. package/dist.commonjs/client/clientPublicTestnet.advanced.d.ts +6 -3
  86. package/dist.commonjs/client/clientPublicTestnet.advanced.js +227 -199
  87. package/dist.commonjs/client/clientPublicTestnet.d.ts +8 -6
  88. package/dist.commonjs/client/clientPublicTestnet.d.ts.map +1 -1
  89. package/dist.commonjs/client/clientPublicTestnet.js +13 -13
  90. package/dist.commonjs/client/clientTypes.advanced.d.ts +14 -14
  91. package/dist.commonjs/client/clientTypes.advanced.d.ts.map +1 -1
  92. package/dist.commonjs/client/clientTypes.advanced.js +1 -1
  93. package/dist.commonjs/client/clientTypes.d.ts +52 -27
  94. package/dist.commonjs/client/clientTypes.d.ts.map +1 -1
  95. package/dist.commonjs/client/clientTypes.js +56 -22
  96. package/dist.commonjs/client/index.d.ts +1 -1
  97. package/dist.commonjs/client/index.js +30 -14
  98. package/dist.commonjs/client/jsonRpc/advanced.d.ts +1 -1
  99. package/dist.commonjs/client/jsonRpc/advanced.js +30 -14
  100. package/dist.commonjs/client/jsonRpc/index.d.ts +94 -75
  101. package/dist.commonjs/client/jsonRpc/index.js +135 -108
  102. package/dist.commonjs/client/jsonRpc/transformers.d.ts +76 -36
  103. package/dist.commonjs/client/jsonRpc/transformers.js +174 -152
  104. package/dist.commonjs/client/jsonRpc/types.d.ts +38 -38
  105. package/dist.commonjs/fixedPoint/index.d.ts +9 -3
  106. package/dist.commonjs/fixedPoint/index.js +26 -20
  107. package/dist.commonjs/fixedPoint/index.test.d.ts +1 -1
  108. package/dist.commonjs/fixedPoint/index.test.js +42 -36
  109. package/dist.commonjs/hasher/advanced.d.ts +1 -1
  110. package/dist.commonjs/hasher/index.d.ts +40 -37
  111. package/dist.commonjs/hasher/index.js +58 -48
  112. package/dist.commonjs/hex/index.d.ts +1 -1
  113. package/dist.commonjs/hex/index.js +1 -1
  114. package/dist.commonjs/index.d.ts +1 -1
  115. package/dist.commonjs/index.js +47 -22
  116. package/dist.commonjs/num/index.d.ts +1 -1
  117. package/dist.commonjs/num/index.js +39 -27
  118. package/dist.commonjs/signer/btc/index.d.ts +1 -1
  119. package/dist.commonjs/signer/btc/index.js +30 -14
  120. package/dist.commonjs/signer/btc/signerBtc.d.ts +47 -47
  121. package/dist.commonjs/signer/btc/signerBtc.js +89 -66
  122. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.d.ts +45 -45
  123. package/dist.commonjs/signer/btc/signerBtcPublicKeyReadonly.js +52 -52
  124. package/dist.commonjs/signer/btc/verify.d.ts +6 -2
  125. package/dist.commonjs/signer/btc/verify.js +10 -3
  126. package/dist.commonjs/signer/ckb/index.d.ts +4 -1
  127. package/dist.commonjs/signer/ckb/index.d.ts.map +1 -1
  128. package/dist.commonjs/signer/ckb/index.js +33 -14
  129. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts +12 -0
  130. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.d.ts.map +1 -0
  131. package/dist.commonjs/signer/ckb/signerCkbPrivateKey.js +56 -0
  132. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts +18 -0
  133. package/dist.commonjs/signer/ckb/signerCkbPublicKey.d.ts.map +1 -0
  134. package/dist.commonjs/signer/ckb/signerCkbPublicKey.js +58 -0
  135. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.d.ts +45 -45
  136. package/dist.commonjs/signer/ckb/signerCkbScriptReadonly.js +56 -56
  137. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts +11 -0
  138. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.d.ts.map +1 -0
  139. package/dist.commonjs/signer/ckb/verifyCkbSecp256k1.js +27 -0
  140. package/dist.commonjs/signer/ckb/verifyJoyId.d.ts +6 -2
  141. package/dist.commonjs/signer/ckb/verifyJoyId.js +11 -8
  142. package/dist.commonjs/signer/dummy/alwaysError.d.ts +4 -4
  143. package/dist.commonjs/signer/dummy/alwaysError.js +7 -7
  144. package/dist.commonjs/signer/dummy/dummy.d.ts +7 -7
  145. package/dist.commonjs/signer/dummy/dummy.js +16 -16
  146. package/dist.commonjs/signer/dummy/index.d.ts +1 -1
  147. package/dist.commonjs/signer/dummy/index.js +30 -14
  148. package/dist.commonjs/signer/dummy/openLink.d.ts +4 -4
  149. package/dist.commonjs/signer/dummy/openLink.js +7 -7
  150. package/dist.commonjs/signer/evm/index.d.ts +1 -1
  151. package/dist.commonjs/signer/evm/index.js +30 -14
  152. package/dist.commonjs/signer/evm/signerEvm.d.ts +43 -38
  153. package/dist.commonjs/signer/evm/signerEvm.d.ts.map +1 -1
  154. package/dist.commonjs/signer/evm/signerEvm.js +105 -70
  155. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts +38 -38
  156. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.d.ts.map +1 -1
  157. package/dist.commonjs/signer/evm/signerEvmAddressReadonly.js +42 -42
  158. package/dist.commonjs/signer/evm/verify.d.ts +6 -2
  159. package/dist.commonjs/signer/evm/verify.js +7 -2
  160. package/dist.commonjs/signer/index.d.ts +1 -1
  161. package/dist.commonjs/signer/index.js +30 -14
  162. package/dist.commonjs/signer/nostr/index.d.ts +1 -1
  163. package/dist.commonjs/signer/nostr/index.js +30 -14
  164. package/dist.commonjs/signer/nostr/signerNostr.d.ts +57 -57
  165. package/dist.commonjs/signer/nostr/signerNostr.js +100 -71
  166. package/dist.commonjs/signer/nostr/verify.d.ts +9 -3
  167. package/dist.commonjs/signer/nostr/verify.js +50 -39
  168. package/dist.commonjs/signer/signer/index.d.ts +171 -160
  169. package/dist.commonjs/signer/signer/index.d.ts.map +1 -1
  170. package/dist.commonjs/signer/signer/index.js +235 -195
  171. package/dist.commonjs/utils/index.d.ts +56 -14
  172. package/dist.commonjs/utils/index.d.ts.map +1 -1
  173. package/dist.commonjs/utils/index.js +19 -13
  174. package/package.json +2 -2
  175. package/src/ckb/transaction.ts +87 -33
  176. package/src/client/client.ts +1 -1
  177. package/src/client/clientPublicMainnet.advanced.ts +34 -2
  178. package/src/client/clientPublicMainnet.ts +1 -1
  179. package/src/client/clientPublicTestnet.advanced.ts +3 -3
  180. package/src/client/clientPublicTestnet.ts +1 -1
  181. package/src/client/clientTypes.advanced.ts +8 -8
  182. package/src/client/clientTypes.ts +4 -4
  183. package/src/signer/ckb/index.ts +3 -0
  184. package/src/signer/ckb/signerCkbPrivateKey.ts +58 -0
  185. package/src/signer/ckb/signerCkbPublicKey.ts +63 -0
  186. package/src/signer/ckb/verifyCkbSecp256k1.ts +27 -0
  187. package/src/signer/evm/signerEvm.ts +2 -2
  188. package/src/signer/evm/signerEvmAddressReadonly.ts +1 -1
  189. package/src/signer/signer/index.ts +17 -9
  190. package/src/utils/index.ts +24 -12
@@ -10,195 +10,228 @@ const client_advanced_1 = require("./client.advanced");
10
10
  const clientTypes_1 = require("./clientTypes");
11
11
  var KnownScript;
12
12
  (function (KnownScript) {
13
- KnownScript["Secp256k1Blake160"] = "Secp256k1Blake160";
14
- KnownScript["Secp256k1Multisig"] = "Secp256k1Multisig";
15
- KnownScript["AnyoneCanPay"] = "AnyoneCanPay";
16
- KnownScript["TypeId"] = "TypeId";
17
- KnownScript["XUdt"] = "XUdt";
18
- KnownScript["JoyId"] = "JoyId";
19
- KnownScript["COTA"] = "COTA";
20
- KnownScript["OmniLock"] = "OmniLock";
21
- KnownScript["NostrLock"] = "NostrLock";
22
- KnownScript["UniqueType"] = "UniqueType";
23
- KnownScript["SingleUseLock"] = "SingleUseLock";
24
- KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
13
+ KnownScript["Secp256k1Blake160"] = "Secp256k1Blake160";
14
+ KnownScript["Secp256k1Multisig"] = "Secp256k1Multisig";
15
+ KnownScript["AnyoneCanPay"] = "AnyoneCanPay";
16
+ KnownScript["TypeId"] = "TypeId";
17
+ KnownScript["XUdt"] = "XUdt";
18
+ KnownScript["JoyId"] = "JoyId";
19
+ KnownScript["COTA"] = "COTA";
20
+ KnownScript["OmniLock"] = "OmniLock";
21
+ KnownScript["NostrLock"] = "NostrLock";
22
+ KnownScript["UniqueType"] = "UniqueType";
23
+ KnownScript["SingleUseLock"] = "SingleUseLock";
24
+ KnownScript["OutputTypeProxyLock"] = "OutputTypeProxyLock";
25
25
  })(KnownScript || (exports.KnownScript = KnownScript = {}));
26
26
  class CellDepInfo {
27
- constructor(cellDep, type) {
28
- this.cellDep = cellDep;
29
- this.type = type;
30
- }
31
- static from(cellDepInfoLike) {
32
- return new CellDepInfo(ckb_1.CellDep.from(cellDepInfoLike.cellDep), (0, utils_1.apply)(ckb_1.Script.from, cellDepInfoLike.type));
33
- }
27
+ constructor(cellDep, type) {
28
+ this.cellDep = cellDep;
29
+ this.type = type;
30
+ }
31
+ static from(cellDepInfoLike) {
32
+ return new CellDepInfo(
33
+ ckb_1.CellDep.from(cellDepInfoLike.cellDep),
34
+ (0, utils_1.apply)(ckb_1.Script.from, cellDepInfoLike.type),
35
+ );
36
+ }
34
37
  }
35
38
  exports.CellDepInfo = CellDepInfo;
36
39
  class Client {
37
- constructor() {
38
- this.cachedTransactions = [];
39
- this.unusableOutPoints = [];
40
- this.usableCells = [];
41
- this.knownCells = [];
42
- }
43
- async markUsable(cellLike) {
44
- const cell = ckb_1.Cell.from(cellLike).clone();
45
- this.usableCells.push(cell);
46
- this.knownCells.push(cell);
47
- const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
48
- if (index !== -1) {
49
- this.unusableOutPoints.splice(index, 1);
50
- }
51
- }
52
- async markUnusable(outPointLike) {
53
- const outPoint = ckb_1.OutPoint.from(outPointLike);
54
- this.unusableOutPoints.push(outPoint.clone());
55
- const index = this.usableCells.findIndex((c) => c.outPoint.eq(outPoint));
56
- if (index !== -1) {
57
- this.usableCells.splice(index, 1);
58
- }
59
- }
60
- async getCell(outPointLike) {
61
- const outPoint = ckb_1.OutPoint.from(outPointLike);
62
- const cached = this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
63
- if (cached) {
64
- return cached.clone();
40
+ constructor() {
41
+ this.cachedTransactions = [];
42
+ this.unusableOutPoints = [];
43
+ this.usableCells = [];
44
+ this.knownCells = [];
45
+ }
46
+ async markUsable(cellLike) {
47
+ const cell = ckb_1.Cell.from(cellLike).clone();
48
+ this.usableCells.push(cell);
49
+ this.knownCells.push(cell);
50
+ const index = this.unusableOutPoints.findIndex((o) => cell.outPoint.eq(o));
51
+ if (index !== -1) {
52
+ this.unusableOutPoints.splice(index, 1);
53
+ }
54
+ }
55
+ async markUnusable(outPointLike) {
56
+ const outPoint = ckb_1.OutPoint.from(outPointLike);
57
+ this.unusableOutPoints.push(outPoint.clone());
58
+ const index = this.usableCells.findIndex((c) => c.outPoint.eq(outPoint));
59
+ if (index !== -1) {
60
+ this.usableCells.splice(index, 1);
61
+ }
62
+ }
63
+ async getCell(outPointLike) {
64
+ const outPoint = ckb_1.OutPoint.from(outPointLike);
65
+ const cached = this.knownCells.find((cell) => cell.outPoint.eq(outPoint));
66
+ if (cached) {
67
+ return cached.clone();
68
+ }
69
+ const transaction = await this.getTransactionNoCache(outPoint.txHash);
70
+ if (!transaction) {
71
+ return null;
72
+ }
73
+ const index = Number((0, num_1.numFrom)(outPoint.index));
74
+ if (index >= transaction.transaction.outputs.length) {
75
+ return null;
76
+ }
77
+ const cell = ckb_1.Cell.from({
78
+ outPoint,
79
+ cellOutput: transaction.transaction.outputs[index],
80
+ outputData: transaction.transaction.outputsData[index] ?? "0x",
81
+ });
82
+ this.knownCells.push(cell);
83
+ return cell.clone();
84
+ }
85
+ async findCellsPaged(key, order, limit, after) {
86
+ const res = await this.findCellsPagedNoCache(key, order, limit, after);
87
+ this.knownCells.push(...res.cells);
88
+ return res;
89
+ }
90
+ async *findCells(key, order, limit = 10) {
91
+ let last = undefined;
92
+ while (true) {
93
+ const { cells, lastCursor } = await this.findCellsPaged(
94
+ key,
95
+ order,
96
+ limit,
97
+ last,
98
+ );
99
+ for (const cell of cells) {
100
+ yield cell;
101
+ }
102
+ if (cells.length === 0 || cells.length < limit) {
103
+ return;
104
+ }
105
+ last = lastCursor;
106
+ }
107
+ }
108
+ /**
109
+ * Find cells by search key designed for collectable cells.
110
+ *
111
+ * @param key - The search key.
112
+ * @returns A async generator for yielding cells.
113
+ */
114
+ async *findCellsByCollectableSearchKey(keyLike, order, limit = 10) {
115
+ const key = clientTypes_1.ClientIndexerSearchKey.from(keyLike);
116
+ for (const cell of this.usableCells) {
117
+ if ((0, client_advanced_1.filterCell)(key, cell)) {
118
+ yield cell;
119
+ }
120
+ }
121
+ for await (const cell of this.findCells(key, order, limit)) {
122
+ if (!this.unusableOutPoints.some((o) => o.eq(cell.outPoint))) {
123
+ yield cell;
124
+ }
125
+ }
126
+ }
127
+ findCellsByLockAndType(lock, type, withData = true, order, limit = 10) {
128
+ return this.findCellsByCollectableSearchKey(
129
+ {
130
+ script: lock,
131
+ scriptType: "lock",
132
+ scriptSearchMode: "exact",
133
+ filter: {
134
+ script: type,
135
+ },
136
+ withData,
137
+ },
138
+ order,
139
+ limit,
140
+ );
141
+ }
142
+ findCellsByType(type, withData = true, order, limit = 10) {
143
+ return this.findCellsByCollectableSearchKey(
144
+ {
145
+ script: type,
146
+ scriptType: "type",
147
+ scriptSearchMode: "exact",
148
+ withData,
149
+ },
150
+ order,
151
+ limit,
152
+ );
153
+ }
154
+ async findSingletonCellByType(type, withData = false) {
155
+ for await (const cell of this.findCellsByType(
156
+ type,
157
+ withData,
158
+ undefined,
159
+ 1,
160
+ )) {
161
+ return cell;
162
+ }
163
+ }
164
+ async getCellDeps(...cellDepsInfoLike) {
165
+ return Promise.all(
166
+ cellDepsInfoLike.flat().map(async (infoLike) => {
167
+ const { cellDep, type } = CellDepInfo.from(infoLike);
168
+ if (type === undefined) {
169
+ return cellDep;
65
170
  }
66
- const transaction = await this.getTransactionNoCache(outPoint.txHash);
67
- if (!transaction) {
68
- return null;
171
+ const found = await this.findSingletonCellByType(type);
172
+ if (!found) {
173
+ return cellDep;
69
174
  }
70
- const index = Number((0, num_1.numFrom)(outPoint.index));
71
- if (index >= transaction.transaction.outputs.length) {
72
- return null;
73
- }
74
- const cell = ckb_1.Cell.from({
75
- outPoint,
76
- cellOutput: transaction.transaction.outputs[index],
77
- outputData: transaction.transaction.outputsData[index] ?? "0x",
175
+ return ckb_1.CellDep.from({
176
+ outPoint: found.outPoint,
177
+ depType: cellDep.depType,
78
178
  });
79
- this.knownCells.push(cell);
80
- return cell.clone();
81
- }
82
- async findCellsPaged(key, order, limit, after) {
83
- const res = await this.findCellsPagedNoCache(key, order, limit, after);
84
- this.knownCells.push(...res.cells);
85
- return res;
86
- }
87
- async *findCells(key, order, limit = 10) {
88
- let last = undefined;
89
- while (true) {
90
- const { cells, lastCursor } = await this.findCellsPaged(key, order, limit, last);
91
- for (const cell of cells) {
92
- yield cell;
93
- }
94
- if (cells.length === 0 || cells.length < limit) {
95
- return;
96
- }
97
- last = lastCursor;
98
- }
99
- }
100
- /**
101
- * Find cells by search key designed for collectable cells.
102
- *
103
- * @param key - The search key.
104
- * @returns A async generator for yielding cells.
105
- */
106
- async *findCellsByCollectableSearchKey(keyLike, order, limit = 10) {
107
- const key = clientTypes_1.ClientIndexerSearchKey.from(keyLike);
108
- for (const cell of this.usableCells) {
109
- if ((0, client_advanced_1.filterCell)(key, cell)) {
110
- yield cell;
111
- }
112
- }
113
- for await (const cell of this.findCells(key, order, limit)) {
114
- if (!this.unusableOutPoints.some((o) => o.eq(cell.outPoint))) {
115
- yield cell;
116
- }
117
- }
118
- }
119
- findCellsByLockAndType(lock, type, withData = true, order, limit = 10) {
120
- return this.findCellsByCollectableSearchKey({
121
- script: lock,
122
- scriptType: "lock",
123
- scriptSearchMode: "exact",
124
- filter: {
125
- script: type,
126
- },
127
- withData,
128
- }, order, limit);
129
- }
130
- findCellsByType(type, withData = true, order, limit = 10) {
131
- return this.findCellsByCollectableSearchKey({
132
- script: type,
133
- scriptType: "type",
134
- scriptSearchMode: "exact",
135
- withData,
136
- }, order, limit);
137
- }
138
- async findSingletonCellByType(type, withData = false) {
139
- for await (const cell of this.findCellsByType(type, withData, undefined, 1)) {
140
- return cell;
141
- }
142
- }
143
- async getCellDeps(...cellDepsInfoLike) {
144
- return Promise.all(cellDepsInfoLike.flat().map(async (infoLike) => {
145
- const { cellDep, type } = CellDepInfo.from(infoLike);
146
- if (type === undefined) {
147
- return cellDep;
148
- }
149
- const found = await this.findSingletonCellByType(type);
150
- if (!found) {
151
- return cellDep;
152
- }
153
- return ckb_1.CellDep.from({
154
- outPoint: found.outPoint,
155
- depType: cellDep.depType,
156
- });
157
- }));
158
- }
159
- async getBalanceSingle(lock) {
160
- return this.getCellsCapacity({
161
- script: lock,
162
- scriptType: "lock",
163
- scriptSearchMode: "exact",
164
- filter: {
165
- scriptLenRange: [0, 1],
166
- outputDataLenRange: [0, 1],
167
- },
168
- });
169
- }
170
- async getBalance(locks) {
171
- return (0, utils_1.reduceAsync)(locks, async (acc, lock) => acc + (await this.getBalanceSingle(lock)), fixedPoint_1.Zero);
172
- }
173
- async sendTransaction(transaction, validator) {
174
- const tx = ckb_1.Transaction.from(transaction);
175
- const txHash = await this.sendTransactionNoCache(tx, validator);
176
- this.cachedTransactions.push(tx.clone());
177
- await Promise.all(tx.inputs.map((i) => this.markUnusable(i.previousOutput)));
178
- await Promise.all(tx.outputs.map((o, i) => this.markUsable({
179
- cellOutput: o,
180
- outputData: tx.outputsData[i],
181
- outPoint: {
182
- txHash,
183
- index: i,
184
- },
185
- })));
186
- return txHash;
187
- }
188
- async getTransaction(txHashLike) {
189
- const txHash = (0, hex_1.hexFrom)(txHashLike);
190
- const res = await this.getTransactionNoCache(txHash);
191
- if (res !== null) {
192
- return res;
193
- }
194
- const tx = this.cachedTransactions.find((t) => t.hash() === txHash);
195
- if (!tx) {
196
- return null;
197
- }
198
- return {
199
- transaction: tx,
200
- status: "proposed",
201
- };
202
- }
179
+ }),
180
+ );
181
+ }
182
+ async getBalanceSingle(lock) {
183
+ return this.getCellsCapacity({
184
+ script: lock,
185
+ scriptType: "lock",
186
+ scriptSearchMode: "exact",
187
+ filter: {
188
+ scriptLenRange: [0, 1],
189
+ outputDataLenRange: [0, 1],
190
+ },
191
+ });
192
+ }
193
+ async getBalance(locks) {
194
+ return (0, utils_1.reduceAsync)(
195
+ locks,
196
+ async (acc, lock) => acc + (await this.getBalanceSingle(lock)),
197
+ fixedPoint_1.Zero,
198
+ );
199
+ }
200
+ async sendTransaction(transaction, validator) {
201
+ const tx = ckb_1.Transaction.from(transaction);
202
+ const txHash = await this.sendTransactionNoCache(tx, validator);
203
+ this.cachedTransactions.push(tx.clone());
204
+ await Promise.all(
205
+ tx.inputs.map((i) => this.markUnusable(i.previousOutput)),
206
+ );
207
+ await Promise.all(
208
+ tx.outputs.map((o, i) =>
209
+ this.markUsable({
210
+ cellOutput: o,
211
+ outputData: tx.outputsData[i],
212
+ outPoint: {
213
+ txHash,
214
+ index: i,
215
+ },
216
+ }),
217
+ ),
218
+ );
219
+ return txHash;
220
+ }
221
+ async getTransaction(txHashLike) {
222
+ const txHash = (0, hex_1.hexFrom)(txHashLike);
223
+ const res = await this.getTransactionNoCache(txHash);
224
+ if (res !== null) {
225
+ return res;
226
+ }
227
+ const tx = this.cachedTransactions.find((t) => t.hash() === txHash);
228
+ if (!tx) {
229
+ return null;
230
+ }
231
+ return {
232
+ transaction: tx,
233
+ status: "proposed",
234
+ };
235
+ }
203
236
  }
204
237
  exports.Client = Client;
@@ -1,6 +1,10 @@
1
1
  import { Script } from "../ckb";
2
2
  import { CellDepInfoLike, KnownScript } from "./client";
3
- export declare const MAINNET_SCRIPTS: Record<KnownScript, (Pick<Script, "codeHash" | "hashType"> & {
4
- cellDeps: CellDepInfoLike[];
5
- }) | undefined>;
6
- //# sourceMappingURL=clientPublicMainnet.advanced.d.ts.map
3
+ export declare const MAINNET_SCRIPTS: Record<
4
+ KnownScript,
5
+ | (Pick<Script, "codeHash" | "hashType"> & {
6
+ cellDeps: CellDepInfoLike[];
7
+ })
8
+ | undefined
9
+ >;
10
+ //# sourceMappingURL=clientPublicMainnet.advanced.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyLZ,CAAC"}
1
+ {"version":3,"file":"clientPublicMainnet.advanced.d.ts","sourceRoot":"","sources":["../../src/client/clientPublicMainnet.advanced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,eAAe,EAAE,MAAM,CAClC,WAAW,EACT,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,GACzE,SAAS,CAyNZ,CAAC"}