@ickb/sdk 1000.0.82 → 9001.0.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.
Files changed (157) hide show
  1. package/README.md +84 -32
  2. package/dist/constants.d.ts +9 -22
  3. package/dist/constants.d.ts.map +1 -1
  4. package/dist/constants.js +62 -76
  5. package/dist/constants.js.map +1 -1
  6. package/dist/conversion/estimate.d.ts +33 -0
  7. package/dist/conversion/estimate.d.ts.map +1 -0
  8. package/dist/conversion/estimate.js +117 -0
  9. package/dist/conversion/estimate.js.map +1 -0
  10. package/dist/conversion/maturity.d.ts +15 -0
  11. package/dist/conversion/maturity.d.ts.map +1 -0
  12. package/dist/conversion/maturity.js +113 -0
  13. package/dist/conversion/maturity.js.map +1 -0
  14. package/dist/conversion/plans.d.ts +20 -0
  15. package/dist/conversion/plans.d.ts.map +1 -0
  16. package/dist/conversion/plans.js +106 -0
  17. package/dist/conversion/plans.js.map +1 -0
  18. package/dist/conversion/projection.d.ts +21 -0
  19. package/dist/conversion/projection.d.ts.map +1 -0
  20. package/dist/conversion/projection.js +94 -0
  21. package/dist/conversion/projection.js.map +1 -0
  22. package/dist/conversion/types.d.ts +264 -0
  23. package/dist/conversion/types.d.ts.map +1 -0
  24. package/dist/conversion/types.js +2 -0
  25. package/dist/conversion/types.js.map +1 -0
  26. package/dist/conversion/withdrawal_ring.d.ts +34 -0
  27. package/dist/conversion/withdrawal_ring.d.ts.map +1 -0
  28. package/dist/conversion/withdrawal_ring.js +87 -0
  29. package/dist/conversion/withdrawal_ring.js.map +1 -0
  30. package/dist/dao.d.ts +100 -0
  31. package/dist/dao.d.ts.map +1 -0
  32. package/dist/dao.js +125 -0
  33. package/dist/dao.js.map +1 -0
  34. package/dist/index.d.ts +49 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +20 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/logic.d.ts +81 -0
  39. package/dist/logic.d.ts.map +1 -0
  40. package/dist/logic.js +173 -0
  41. package/dist/logic.js.map +1 -0
  42. package/dist/order/cells.d.ts +168 -0
  43. package/dist/order/cells.d.ts.map +1 -0
  44. package/dist/order/cells.js +309 -0
  45. package/dist/order/cells.js.map +1 -0
  46. package/dist/order/conversion.d.ts +37 -0
  47. package/dist/order/conversion.d.ts.map +1 -0
  48. package/dist/order/conversion.js +120 -0
  49. package/dist/order/conversion.js.map +1 -0
  50. package/dist/order/fee.d.ts +9 -0
  51. package/dist/order/fee.d.ts.map +1 -0
  52. package/dist/order/fee.js +24 -0
  53. package/dist/order/fee.js.map +1 -0
  54. package/dist/order/fill.d.ts +36 -0
  55. package/dist/order/fill.d.ts.map +1 -0
  56. package/dist/order/fill.js +53 -0
  57. package/dist/order/fill.js.map +1 -0
  58. package/dist/order/info.d.ts +62 -0
  59. package/dist/order/info.d.ts.map +1 -0
  60. package/dist/order/info.js +102 -0
  61. package/dist/order/info.js.map +1 -0
  62. package/dist/order/master.d.ts +49 -0
  63. package/dist/order/master.d.ts.map +1 -0
  64. package/dist/order/master.js +27 -0
  65. package/dist/order/master.js.map +1 -0
  66. package/dist/order/matcher.d.ts +43 -0
  67. package/dist/order/matcher.d.ts.map +1 -0
  68. package/dist/order/matcher.js +124 -0
  69. package/dist/order/matcher.js.map +1 -0
  70. package/dist/order/order.d.ts +63 -0
  71. package/dist/order/order.d.ts.map +1 -0
  72. package/dist/order/order.js +234 -0
  73. package/dist/order/order.js.map +1 -0
  74. package/dist/order/order_data.d.ts +51 -0
  75. package/dist/order/order_data.d.ts.map +1 -0
  76. package/dist/order/order_data.js +67 -0
  77. package/dist/order/order_data.js.map +1 -0
  78. package/dist/order/ratio.d.ts +40 -0
  79. package/dist/order/ratio.d.ts.map +1 -0
  80. package/dist/order/ratio.js +74 -0
  81. package/dist/order/ratio.js.map +1 -0
  82. package/dist/order/relative.d.ts +43 -0
  83. package/dist/order/relative.d.ts.map +1 -0
  84. package/dist/order/relative.js +57 -0
  85. package/dist/order/relative.js.map +1 -0
  86. package/dist/owned_owner.d.ts +108 -0
  87. package/dist/owned_owner.d.ts.map +1 -0
  88. package/dist/owned_owner.js +260 -0
  89. package/dist/owned_owner.js.map +1 -0
  90. package/dist/sdk.d.ts +113 -41
  91. package/dist/sdk.d.ts.map +1 -1
  92. package/dist/sdk.js +410 -209
  93. package/dist/sdk.js.map +1 -1
  94. package/dist/send/sign_and_send_transaction.d.ts +61 -0
  95. package/dist/send/sign_and_send_transaction.d.ts.map +1 -0
  96. package/dist/send/sign_and_send_transaction.js +201 -0
  97. package/dist/send/sign_and_send_transaction.js.map +1 -0
  98. package/dist/send/wait_transaction.d.ts +42 -0
  99. package/dist/send/wait_transaction.d.ts.map +1 -0
  100. package/dist/send/wait_transaction.js +172 -0
  101. package/dist/send/wait_transaction.js.map +1 -0
  102. package/dist/udt.d.ts +108 -0
  103. package/dist/udt.d.ts.map +1 -0
  104. package/dist/udt.js +180 -0
  105. package/dist/udt.js.map +1 -0
  106. package/dist/utils/chain.d.ts +3 -0
  107. package/dist/utils/chain.d.ts.map +1 -0
  108. package/dist/utils/chain.js +2 -0
  109. package/dist/utils/chain.js.map +1 -0
  110. package/dist/utils/codec.d.ts +19 -0
  111. package/dist/utils/codec.d.ts.map +1 -0
  112. package/dist/utils/codec.js +69 -0
  113. package/dist/utils/codec.js.map +1 -0
  114. package/dist/utils/utils.d.ts +99 -0
  115. package/dist/utils/utils.d.ts.map +1 -0
  116. package/dist/utils/utils.js +130 -0
  117. package/dist/utils/utils.js.map +1 -0
  118. package/dist/utils/verified_client.d.ts +19 -0
  119. package/dist/utils/verified_client.d.ts.map +1 -0
  120. package/dist/utils/verified_client.js +92 -0
  121. package/dist/utils/verified_client.js.map +1 -0
  122. package/package.json +19 -26
  123. package/src/constants.ts +65 -181
  124. package/src/conversion/estimate.ts +155 -0
  125. package/src/conversion/maturity.ts +158 -0
  126. package/src/conversion/plans.ts +144 -0
  127. package/src/conversion/projection.ts +136 -0
  128. package/src/conversion/types.ts +302 -0
  129. package/src/conversion/withdrawal_ring.ts +122 -0
  130. package/src/dao.ts +196 -0
  131. package/src/index.ts +89 -3
  132. package/src/logic.ts +283 -0
  133. package/src/order/cells.ts +383 -0
  134. package/src/order/conversion.ts +162 -0
  135. package/src/order/fee.ts +30 -0
  136. package/src/order/fill.ts +83 -0
  137. package/src/order/info.ts +181 -0
  138. package/src/order/master.ts +42 -0
  139. package/src/order/matcher.ts +191 -0
  140. package/src/order/order.ts +288 -0
  141. package/src/order/order_data.ts +131 -0
  142. package/src/order/ratio.ts +127 -0
  143. package/src/order/relative.ts +109 -0
  144. package/src/owned_owner.ts +364 -0
  145. package/src/sdk.ts +542 -440
  146. package/src/send/sign_and_send_transaction.ts +256 -0
  147. package/src/send/wait_transaction.ts +227 -0
  148. package/src/udt.ts +249 -0
  149. package/src/utils/chain.ts +2 -0
  150. package/src/utils/codec.ts +78 -0
  151. package/src/utils/utils.ts +208 -0
  152. package/src/utils/verified_client.ts +136 -0
  153. package/dist/codec.d.ts +0 -3
  154. package/dist/codec.d.ts.map +0 -1
  155. package/dist/codec.js +0 -58
  156. package/dist/codec.js.map +0 -1
  157. package/src/codec.ts +0 -138
package/dist/sdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"../src/","sources":["sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { type BroadcastDeadline } from "../dao.js";
3
+ /** Error from a broadcast whose outcome is unknown; the local transaction hash is retained. */
4
+ export declare class TransactionBroadcastError extends Error {
5
+ /** Chain transaction hash computed from the signed transaction before broadcast. */
6
+ readonly txHash: ccc.Hex;
7
+ /** Creates a hash-preserving broadcast error. */
8
+ constructor(txHash: ccc.Hex, options: ErrorOptions);
9
+ }
10
+ /** Error from a send refused because the chain reached the transaction's broadcast deadline. */
11
+ export declare class TransactionExpiredError extends Error {
12
+ /** The deadline and the tip epoch that reached it. */
13
+ readonly epochs: {
14
+ broadcastBefore: ccc.Epoch;
15
+ tip: ccc.Epoch;
16
+ };
17
+ /** Creates the error for a deadline the tip has reached; nothing was sent. */
18
+ constructor(epochs: {
19
+ broadcastBefore: ccc.Epoch;
20
+ tip: ccc.Epoch;
21
+ }, options?: ErrorOptions);
22
+ }
23
+ /**
24
+ * Verifies the inputs against the chain, signs locally, records chain identity before
25
+ * RPC, then broadcasts without CCC's cache wrapper.
26
+ *
27
+ * @remarks Nothing is signed unless every cell attached to an input equals the output
28
+ * its creating transaction made, a bare `OutPoint` being valued from that output, and the
29
+ * signer kept the ordered inputs, outputs and outputs data.
30
+ * Nothing is sent when the chain would take more fee than `plannedFee`, the fee completion
31
+ * priced, `tx.estimateFee(feeRate)` at its rate. That fee is measured from verified values,
32
+ * a phase-2 DAO input proven in its request block with `get_transaction_proof`, so the
33
+ * client must be JSON-RPC. When `broadcastBefore` is given, the send is refused with
34
+ * `TransactionExpiredError` once a fresh tip reaches it.
35
+ * `recordTxHash` runs before the send RPC, for a caller that must record the hash before a
36
+ * send that may never answer; every later failure carries it as `TransactionBroadcastError`. A node already holding this exact transaction
37
+ * is an acceptance; any other send failure throws `TransactionBroadcastError`. Why each
38
+ * check exists: SDK README, Signing and broadcast.
39
+ */
40
+ export declare function signAndSendTransaction(signer: ccc.Signer, tx: ccc.TransactionLike, plannedFee: ccc.Num, recordTxHash?: (txHash: ccc.Hex) => void, broadcastBefore?: BroadcastDeadline): Promise<ccc.Hex>;
41
+ /** The node's `get_transaction_proof` answer for one transaction, the fields checked. */
42
+ export interface TransactionProof {
43
+ witnesses_root: ccc.Hex;
44
+ proof: {
45
+ indices: readonly ccc.Hex[];
46
+ lemmas: readonly ccc.Hex[];
47
+ };
48
+ }
49
+ /**
50
+ * Whether `proof` is a path from `txHash` to `header`'s transactions root. CKB builds that
51
+ * root over two subtrees, `blake2b(raw transactions root || witnesses root)`, each a
52
+ * complete binary Merkle tree whose node at position `i` has its parent at `(i - 1) / 2`
53
+ * and is a left child when `i` is odd; the index is the leaf's position and the lemmas are
54
+ * its siblings bottom up.
55
+ */
56
+ export declare function isCommittedIn(txHash: ccc.Hex, header: ccc.ClientBlockHeader, { witnesses_root: witnessesRoot, proof }: TransactionProof): boolean;
57
+ /**
58
+ * Returns the primary lock plus all signer address locks, deduplicated by script hash.
59
+ */
60
+ export declare function signerAccountLocks(signer: ccc.Signer, primaryLock: ccc.Script): Promise<ccc.Script[]>;
61
+ //# sourceMappingURL=sign_and_send_transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign_and_send_transaction.d.ts","sourceRoot":"","sources":["../../src/send/sign_and_send_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAIhE,+FAA+F;AAC/F,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,oFAAoF;IACpF,SAAgB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;IAEhC,iDAAiD;IACjD,YAAY,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAIjD;CACF;AAED,gGAAgG;AAChG,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,sDAAsD;IACtD,SAAgB,MAAM,EAAE;QAAE,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAA;KAAE,CAAC;IAEvE,8EAA8E;IAC9E,YACE,MAAM,EAAE;QAAE,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAA;KAAE,EACtD,OAAO,CAAC,EAAE,YAAY,EAKvB;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,EAAE,EAAE,GAAG,CAAC,eAAe,EACvB,UAAU,EAAE,GAAG,CAAC,GAAG,EACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,IAAI,EACxC,eAAe,CAAC,EAAE,iBAAiB,GAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAkDlB;AA6FD,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC;IACxB,KAAK,EAAE;QAAE,OAAO,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,CAAA;KAAE,CAAC;CACpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,EACf,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAC7B,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,gBAAgB,GACzD,OAAO,CAeT;AAUD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,WAAW,EAAE,GAAG,CAAC,MAAM,GACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAOvB"}
@@ -0,0 +1,201 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { assertFresh } from "../dao.js";
3
+ import { jsonRpcRequestor, unique } from "../utils/utils.js";
4
+ import { verifiedClient } from "../utils/verified_client.js";
5
+ /** Error from a broadcast whose outcome is unknown; the local transaction hash is retained. */
6
+ export class TransactionBroadcastError extends Error {
7
+ /** Chain transaction hash computed from the signed transaction before broadcast. */
8
+ txHash;
9
+ /** Creates a hash-preserving broadcast error. */
10
+ constructor(txHash, options) {
11
+ super(`Transaction ${txHash} broadcast outcome is unresolved`, options);
12
+ this.name = "TransactionBroadcastError";
13
+ this.txHash = txHash;
14
+ }
15
+ }
16
+ /** Error from a send refused because the chain reached the transaction's broadcast deadline. */
17
+ export class TransactionExpiredError extends Error {
18
+ /** The deadline and the tip epoch that reached it. */
19
+ epochs;
20
+ /** Creates the error for a deadline the tip has reached; nothing was sent. */
21
+ constructor(epochs, options) {
22
+ super("Transaction expired: the chain reached its broadcast deadline", options);
23
+ this.name = "TransactionExpiredError";
24
+ this.epochs = epochs;
25
+ }
26
+ }
27
+ /**
28
+ * Verifies the inputs against the chain, signs locally, records chain identity before
29
+ * RPC, then broadcasts without CCC's cache wrapper.
30
+ *
31
+ * @remarks Nothing is signed unless every cell attached to an input equals the output
32
+ * its creating transaction made, a bare `OutPoint` being valued from that output, and the
33
+ * signer kept the ordered inputs, outputs and outputs data.
34
+ * Nothing is sent when the chain would take more fee than `plannedFee`, the fee completion
35
+ * priced, `tx.estimateFee(feeRate)` at its rate. That fee is measured from verified values,
36
+ * a phase-2 DAO input proven in its request block with `get_transaction_proof`, so the
37
+ * client must be JSON-RPC. When `broadcastBefore` is given, the send is refused with
38
+ * `TransactionExpiredError` once a fresh tip reaches it.
39
+ * `recordTxHash` runs before the send RPC, for a caller that must record the hash before a
40
+ * send that may never answer; every later failure carries it as `TransactionBroadcastError`. A node already holding this exact transaction
41
+ * is an acceptance; any other send failure throws `TransactionBroadcastError`. Why each
42
+ * check exists: SDK README, Signing and broadcast.
43
+ */
44
+ export async function signAndSendTransaction(signer, tx, plannedFee, recordTxHash, broadcastBefore) {
45
+ // Transaction.from reuses Transaction instances, which a signer may mutate in place.
46
+ const requested = ccc.Transaction.from(tx).clone();
47
+ const requestedBody = economicBody(requested);
48
+ // The checks read through a verified client, whatever client the signer holds.
49
+ const client = verifiedClient(signer.client);
50
+ const inputs = await verifiedInputs(client, requested.inputs);
51
+ const signed = await signer.signTransaction(tx);
52
+ if (economicBody(signed) !== requestedBody) {
53
+ throw new Error("Signer altered the transaction inputs, outputs or outputs data");
54
+ }
55
+ const txHash = signed.hash();
56
+ const fee = await verifiedFee(client, signed, inputs);
57
+ // A plain JavaScript caller of the earlier signature passes undefined or its recordTxHash
58
+ // here: numFrom throws on undefined, and on a function either throws or reads 0n. A bare
59
+ // comparison of a bigint with either is false and would skip the check.
60
+ const planned = ccc.numFrom(plannedFee);
61
+ if (fee > planned) {
62
+ throw new Error(`Transaction ${txHash} pays ${String(fee)} shannons of fee, more than the ${String(planned)} planned`);
63
+ }
64
+ if (broadcastBefore !== undefined) {
65
+ const tip = await client.getTipHeader();
66
+ assertFresh(tip, broadcastBefore.tipMaxAgeMs);
67
+ const { epoch } = tip;
68
+ if (broadcastBefore.epoch.compare(epoch) <= 0) {
69
+ throw new TransactionExpiredError({
70
+ broadcastBefore: broadcastBefore.epoch,
71
+ tip: epoch,
72
+ });
73
+ }
74
+ }
75
+ recordTxHash?.(txHash);
76
+ // The signature binds the bytes, so the node can only have accepted this exact
77
+ // transaction; its returned hash adds nothing and the local one stays the identity.
78
+ try {
79
+ await signer.client.sendTransactionNoCache(signed);
80
+ }
81
+ catch (cause) {
82
+ // A duplicate submission of this exact transaction is already accepted.
83
+ if (cause instanceof ccc.ErrorClientDuplicatedTransaction &&
84
+ cause.txHash === txHash) {
85
+ return txHash;
86
+ }
87
+ throw new TransactionBroadcastError(txHash, { cause });
88
+ }
89
+ return txHash;
90
+ }
91
+ // The default lock signs each input as its OutPoint only, never the cell behind it, so
92
+ // the capacity, lock, type and data attached to an input are a node's claim: a node
93
+ // understating a plain cell's capacity or a UDT amount would turn the difference into
94
+ // fee or a burn on a transaction that passes every other check. The verified client reads
95
+ // the cell from its creating transaction, whose hash certifies its body.
96
+ async function verifiedInputs(client, inputs) {
97
+ return Promise.all(inputs.map(async (input) => {
98
+ const outPoint = input.previousOutput.toHex();
99
+ const cell = await client.getCell(input.previousOutput);
100
+ if (cell === undefined) {
101
+ throw new Error(`Input ${outPoint} is not an output of a known transaction`);
102
+ }
103
+ if ((input.cellOutput !== undefined && !cell.cellOutput.eq(input.cellOutput)) ||
104
+ (input.outputData !== undefined && input.outputData !== cell.outputData)) {
105
+ throw new Error(`Input ${outPoint} differs from the cell its transaction created`);
106
+ }
107
+ return cell;
108
+ }));
109
+ }
110
+ // The fee the chain will take: the verified inputs' capacity, plus the interest a phase-2
111
+ // DAO input collects, less the outputs. Completion priced that interest through the
112
+ // signer's client at whatever header the node named, so a lower rate there shortened the
113
+ // change; the miner would keep the difference under any fee-rate ceiling. A node names
114
+ // which block created a cell; the chain values it at headers the transaction names in its
115
+ // deps, the deposit header at the number the cell's data records and the request header
116
+ // at the block that committed the request, which the node must prove
117
+ // (assertCommittedIn), once per request transaction. The deposit header is then the one
118
+ // the cell's data numbers and the request header the real request block, so dao.c's own
119
+ // rules settle the rest on chain.
120
+ async function verifiedFee(client, signed, inputs) {
121
+ const deps = new Set(signed.headerDeps);
122
+ const proven = new Set();
123
+ let capacity = ccc.Zero;
124
+ for (const cell of inputs) {
125
+ capacity += cell.cellOutput.capacity;
126
+ const { depositHeader, withdrawHeader } = await cell.getNervosDaoInfo(client);
127
+ if (withdrawHeader === undefined) {
128
+ continue;
129
+ }
130
+ if (!deps.has(depositHeader.hash) || !deps.has(withdrawHeader.hash)) {
131
+ throw new Error(`Input ${cell.outPoint.toHex()} is valued at a header the transaction does not name`);
132
+ }
133
+ const { txHash } = cell.outPoint;
134
+ if (!proven.has(`${txHash}${withdrawHeader.hash}`)) {
135
+ await assertCommittedIn(client, txHash, withdrawHeader);
136
+ proven.add(`${txHash}${withdrawHeader.hash}`);
137
+ }
138
+ capacity += ccc.calcDaoProfit(cell.capacityFree, depositHeader, withdrawHeader);
139
+ }
140
+ return capacity - signed.getOutputsCapacity();
141
+ }
142
+ /**
143
+ * Refuses unless the node proves `txHash` is among the transactions of `header`'s block.
144
+ * An outpoint names its transaction, not the block that committed it, so a phase-2 input
145
+ * valued at the request header the node names could otherwise be valued at another
146
+ * request block of the same transaction. The proof is a Merkle path from the transaction
147
+ * hash to the header's transactions root, which the header's own hash binds.
148
+ */
149
+ async function assertCommittedIn(client, txHash, header) {
150
+ const requestor = jsonRpcRequestor(client);
151
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion, no-restricted-syntax -- the node's answer, checked field by field in isCommittedIn.
152
+ const proof = (await requestor.request("get_transaction_proof", [
153
+ [txHash],
154
+ header.hash,
155
+ ]));
156
+ if (!isCommittedIn(txHash, header, proof)) {
157
+ throw new Error(`Transaction ${txHash} is not proven in block ${header.hash}`);
158
+ }
159
+ }
160
+ /**
161
+ * Whether `proof` is a path from `txHash` to `header`'s transactions root. CKB builds that
162
+ * root over two subtrees, `blake2b(raw transactions root || witnesses root)`, each a
163
+ * complete binary Merkle tree whose node at position `i` has its parent at `(i - 1) / 2`
164
+ * and is a left child when `i` is odd; the index is the leaf's position and the lemmas are
165
+ * its siblings bottom up.
166
+ */
167
+ export function isCommittedIn(txHash, header, { witnesses_root: witnessesRoot, proof }) {
168
+ const [index, ...extra] = proof.indices;
169
+ if (index === undefined || extra.length > 0) {
170
+ return false;
171
+ }
172
+ let node = txHash;
173
+ let position = Number(index);
174
+ for (const lemma of proof.lemmas) {
175
+ if (position === 0) {
176
+ return false;
177
+ }
178
+ node = position % 2 === 1 ? ccc.hashCkb(node, lemma) : ccc.hashCkb(lemma, node);
179
+ position = (position - 1) >> 1;
180
+ }
181
+ return position === 0 && ccc.hashCkb(node, witnessesRoot) === header.transactionsRoot;
182
+ }
183
+ // Hashing a body-only transaction reuses CCC serialization to freeze the ordered
184
+ // inputs, outputs and outputs data, while ignoring signer-owned witnesses and
185
+ // the cell/header deps a connector may still have to prepare.
186
+ function economicBody(tx) {
187
+ const { inputs, outputs, outputsData } = ccc.Transaction.from(tx);
188
+ return ccc.Transaction.from({ inputs, outputs, outputsData }).hash();
189
+ }
190
+ /**
191
+ * Returns the primary lock plus all signer address locks, deduplicated by script hash.
192
+ */
193
+ export async function signerAccountLocks(signer, primaryLock) {
194
+ return [
195
+ ...unique([
196
+ primaryLock,
197
+ ...(await signer.getAddressObjs()).map(({ script }) => script),
198
+ ]),
199
+ ];
200
+ }
201
+ //# sourceMappingURL=sign_and_send_transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign_and_send_transaction.js","sourceRoot":"","sources":["../../src/send/sign_and_send_transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ /** Error reported when CKB gives a terminal non-committed transaction status. */
3
+ export declare class TransactionWaitError extends Error {
4
+ /** Hash of the transaction that reached a terminal status. */
5
+ readonly txHash: ccc.Hex;
6
+ /** Terminal status reported by the node. */
7
+ readonly status: string;
8
+ /** Optional rejection reason reported by the node. */
9
+ readonly reason: string | undefined;
10
+ /** Creates an error from a transaction hash and terminal node status. */
11
+ constructor(txHash: ccc.Hex, options: ErrorOptions & {
12
+ status: string;
13
+ reason?: string;
14
+ });
15
+ }
16
+ /** One bounded observation window for an already-broadcast transaction. */
17
+ export interface WaitTransactionOptions {
18
+ /** Absolute budget in milliseconds for the whole wait. Defaults to 60000. */
19
+ timeout?: number;
20
+ /** Delay in milliseconds between polls. Defaults to 2000. */
21
+ interval?: number;
22
+ /** Stops waiting, including on in-flight operations; their transports may still finish. */
23
+ signal?: AbortSignal;
24
+ }
25
+ /**
26
+ * Observes one already-broadcast transaction for a single bounded window and resolves
27
+ * once the node reports it committed.
28
+ *
29
+ * @remarks Stack waits at depth zero. Actors rebuild next turn; the app can reopen a
30
+ * window on the same hash without signing again. Callers needing deeper confirmation
31
+ * must observe it separately.
32
+ * The status is polled with raw `get_transaction` verbosity 1, since CCC's typed response
33
+ * discards a null transaction body and its rejection status; the client must be JSON-RPC,
34
+ * the connector's composed client included. The body is never read: no caller uses it,
35
+ * and the same node's word on it would verify nothing.
36
+ * Timeout and abort also apply while awaiting client
37
+ * operations, but the in-flight client operation receives no abort signal and may
38
+ * finish after this function rejects. Nothing here mutates the client cache: later attempts rebuild
39
+ * from exact committed reads.
40
+ */
41
+ export declare function waitTransaction(client: ccc.Client, txHashLike: ccc.HexLike, options?: WaitTransactionOptions): Promise<void>;
42
+ //# sourceMappingURL=wait_transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait_transaction.d.ts","sourceRoot":"","sources":["../../src/send/wait_transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAOpC,iFAAiF;AACjF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,8DAA8D;IAC9D,SAAgB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;IAChC,4CAA4C;IAC5C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3C,yEAAyE;IACzE,YACE,MAAM,EAAE,GAAG,CAAC,GAAG,EACf,OAAO,EAAE,YAAY,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAS5D;CACF;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,OAAO,EACvB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -0,0 +1,172 @@
1
+ import { ccc } from "@ckb-ccc/core";
2
+ import { jsonRpcRequestor } from "../utils/utils.js";
3
+ const MAX_TIMEOUT_MS = 2_147_483_647;
4
+ const DEFAULT_TIMEOUT_MS = 60_000;
5
+ const DEFAULT_INTERVAL_MS = 2_000;
6
+ /** Error reported when CKB gives a terminal non-committed transaction status. */
7
+ export class TransactionWaitError extends Error {
8
+ /** Hash of the transaction that reached a terminal status. */
9
+ txHash;
10
+ /** Terminal status reported by the node. */
11
+ status;
12
+ /** Optional rejection reason reported by the node. */
13
+ reason;
14
+ /** Creates an error from a transaction hash and terminal node status. */
15
+ constructor(txHash, options) {
16
+ const { status, reason } = options;
17
+ const detail = reason === undefined ? status : `${status}: ${reason}`;
18
+ super(`Transaction ${txHash} ended with status ${detail}`, options);
19
+ this.name = "TransactionWaitError";
20
+ this.txHash = txHash;
21
+ this.status = status;
22
+ this.reason = reason;
23
+ }
24
+ }
25
+ /**
26
+ * Observes one already-broadcast transaction for a single bounded window and resolves
27
+ * once the node reports it committed.
28
+ *
29
+ * @remarks Stack waits at depth zero. Actors rebuild next turn; the app can reopen a
30
+ * window on the same hash without signing again. Callers needing deeper confirmation
31
+ * must observe it separately.
32
+ * The status is polled with raw `get_transaction` verbosity 1, since CCC's typed response
33
+ * discards a null transaction body and its rejection status; the client must be JSON-RPC,
34
+ * the connector's composed client included. The body is never read: no caller uses it,
35
+ * and the same node's word on it would verify nothing.
36
+ * Timeout and abort also apply while awaiting client
37
+ * operations, but the in-flight client operation receives no abort signal and may
38
+ * finish after this function rejects. Nothing here mutates the client cache: later attempts rebuild
39
+ * from exact committed reads.
40
+ */
41
+ export async function waitTransaction(client, txHashLike, options = {}) {
42
+ const { timeout = DEFAULT_TIMEOUT_MS, interval = DEFAULT_INTERVAL_MS, signal, } = options;
43
+ validateWaitOptions(timeout, interval);
44
+ // Normalized before the window opens so a malformed hash cannot leave a timer
45
+ // or abort listener installed outside the try/finally that closes them.
46
+ const txHash = ccc.hexFrom(txHashLike);
47
+ signal?.throwIfAborted();
48
+ const budget = openWaitWindow(timeout, signal);
49
+ try {
50
+ for (;;) {
51
+ if (await isCommitted(client, txHash, budget)) {
52
+ // An abort synchronized into the gap between the last read and this
53
+ // return must not resolve the wait successfully.
54
+ budget.throwIfStopped();
55
+ return;
56
+ }
57
+ if (Date.now() + interval >= budget.deadline) {
58
+ throw budget.timeoutError;
59
+ }
60
+ await pollingSleep(interval, budget);
61
+ }
62
+ }
63
+ finally {
64
+ budget.close();
65
+ }
66
+ }
67
+ function validateWaitOptions(timeout, interval) {
68
+ assertCount(interval, "interval");
69
+ assertCount(timeout, "timeout");
70
+ // A single unarmed timer owns the whole window, so the budget must fit one.
71
+ if (timeout > MAX_TIMEOUT_MS) {
72
+ throw new RangeError(`timeout must not exceed ${String(MAX_TIMEOUT_MS)} ms`);
73
+ }
74
+ }
75
+ function assertCount(value, name) {
76
+ if (!Number.isSafeInteger(value) || value < 0) {
77
+ throw new RangeError(`${name} must be a non-negative safe integer`);
78
+ }
79
+ }
80
+ function openWaitWindow(timeout, signal) {
81
+ const stop = Promise.withResolvers();
82
+ const timeoutError = new ccc.ErrorClientWaitTransactionTimeout(timeout);
83
+ const timer = setTimeout(() => {
84
+ stop.reject(timeoutError);
85
+ }, timeout);
86
+ const onAbort = () => {
87
+ stop.reject(abortReason(signal));
88
+ };
89
+ signal?.addEventListener("abort", onAbort, { once: true });
90
+ // Only the operation currently racing this window consumes its rejection.
91
+ void stop.promise.catch(ignoreSettlement);
92
+ return {
93
+ deadline: Date.now() + timeout,
94
+ timeoutError,
95
+ stopped: stop.promise,
96
+ throwIfStopped: () => {
97
+ // Only a promise currently racing the window observes its rejection, so
98
+ // an abort landing outside a race has to be read from the signal itself.
99
+ if (signal?.aborted === true) {
100
+ throw abortReason(signal);
101
+ }
102
+ },
103
+ close: () => {
104
+ clearTimeout(timer);
105
+ signal?.removeEventListener("abort", onAbort);
106
+ },
107
+ };
108
+ }
109
+ function ignoreSettlement() {
110
+ // Deliberately empty: the racing caller owns the outcome.
111
+ }
112
+ function abortReason(signal) {
113
+ return signal?.reason instanceof Error
114
+ ? signal.reason
115
+ : new Error("Transaction wait aborted", { cause: signal?.reason });
116
+ }
117
+ async function within(operation, budget) {
118
+ if (Date.now() >= budget.deadline) {
119
+ throw budget.timeoutError;
120
+ }
121
+ const running = operation();
122
+ // The operation is not cancelled, so a settlement arriving after the window
123
+ // closed must stay handled rather than surface as an unhandled one.
124
+ void running.catch(ignoreSettlement);
125
+ const result = await Promise.race([running, budget.stopped]);
126
+ // An operation that settles in the same turn as an abort can win the race, so
127
+ // cancellation is decided before the result is accepted.
128
+ budget.throwIfStopped();
129
+ // An operation that blocks the event loop past the deadline starves the
130
+ // window timer, so its overdue result must not win the race.
131
+ if (Date.now() >= budget.deadline) {
132
+ throw budget.timeoutError;
133
+ }
134
+ return result;
135
+ }
136
+ async function pollingSleep(interval, budget) {
137
+ let timer;
138
+ const sleeping = new Promise((resolve) => {
139
+ timer = setTimeout(resolve, interval);
140
+ });
141
+ try {
142
+ await Promise.race([sleeping, budget.stopped]);
143
+ }
144
+ finally {
145
+ clearTimeout(timer);
146
+ }
147
+ }
148
+ async function isCommitted(client, txHash, budget) {
149
+ const requestor = jsonRpcRequestor(client);
150
+ // Raw verbosity-1 polling keeps a status-only rejection that CCC's typed transaction
151
+ // response discards (its body is null, so CCC returns nothing).
152
+ const { status, reason } = rawTransactionStatus(await within(async () => requestor.request("get_transaction", [txHash, "0x1"]), budget));
153
+ if (status === "rejected") {
154
+ throw new TransactionWaitError(txHash, { status, reason });
155
+ }
156
+ return status === "committed";
157
+ }
158
+ /** A node's raw `get_transaction` status record (verbosity 1), the fields read here. */
159
+ function rawTransactionStatus(response) {
160
+ const record = typeof response === "object" &&
161
+ response !== null &&
162
+ "tx_status" in response &&
163
+ typeof response.tx_status === "object" &&
164
+ response.tx_status !== null
165
+ ? response.tx_status
166
+ : {};
167
+ return {
168
+ status: "status" in record && typeof record.status === "string" ? record.status : undefined,
169
+ reason: "reason" in record && typeof record.reason === "string" ? record.reason : undefined,
170
+ };
171
+ }
172
+ //# sourceMappingURL=wait_transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait_transaction.js","sourceRoot":"","sources":["../../src/send/wait_transaction.ts"],"names":[],"mappings":"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"}