@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.
- package/README.md +84 -32
- package/dist/constants.d.ts +9 -22
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +62 -76
- package/dist/constants.js.map +1 -1
- package/dist/conversion/estimate.d.ts +33 -0
- package/dist/conversion/estimate.d.ts.map +1 -0
- package/dist/conversion/estimate.js +117 -0
- package/dist/conversion/estimate.js.map +1 -0
- package/dist/conversion/maturity.d.ts +15 -0
- package/dist/conversion/maturity.d.ts.map +1 -0
- package/dist/conversion/maturity.js +113 -0
- package/dist/conversion/maturity.js.map +1 -0
- package/dist/conversion/plans.d.ts +20 -0
- package/dist/conversion/plans.d.ts.map +1 -0
- package/dist/conversion/plans.js +106 -0
- package/dist/conversion/plans.js.map +1 -0
- package/dist/conversion/projection.d.ts +21 -0
- package/dist/conversion/projection.d.ts.map +1 -0
- package/dist/conversion/projection.js +94 -0
- package/dist/conversion/projection.js.map +1 -0
- package/dist/conversion/types.d.ts +264 -0
- package/dist/conversion/types.d.ts.map +1 -0
- package/dist/conversion/types.js +2 -0
- package/dist/conversion/types.js.map +1 -0
- package/dist/conversion/withdrawal_ring.d.ts +34 -0
- package/dist/conversion/withdrawal_ring.d.ts.map +1 -0
- package/dist/conversion/withdrawal_ring.js +87 -0
- package/dist/conversion/withdrawal_ring.js.map +1 -0
- package/dist/dao.d.ts +100 -0
- package/dist/dao.d.ts.map +1 -0
- package/dist/dao.js +125 -0
- package/dist/dao.js.map +1 -0
- package/dist/index.d.ts +49 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -3
- package/dist/index.js.map +1 -1
- package/dist/logic.d.ts +81 -0
- package/dist/logic.d.ts.map +1 -0
- package/dist/logic.js +173 -0
- package/dist/logic.js.map +1 -0
- package/dist/order/cells.d.ts +168 -0
- package/dist/order/cells.d.ts.map +1 -0
- package/dist/order/cells.js +309 -0
- package/dist/order/cells.js.map +1 -0
- package/dist/order/conversion.d.ts +37 -0
- package/dist/order/conversion.d.ts.map +1 -0
- package/dist/order/conversion.js +120 -0
- package/dist/order/conversion.js.map +1 -0
- package/dist/order/fee.d.ts +9 -0
- package/dist/order/fee.d.ts.map +1 -0
- package/dist/order/fee.js +24 -0
- package/dist/order/fee.js.map +1 -0
- package/dist/order/fill.d.ts +36 -0
- package/dist/order/fill.d.ts.map +1 -0
- package/dist/order/fill.js +53 -0
- package/dist/order/fill.js.map +1 -0
- package/dist/order/info.d.ts +62 -0
- package/dist/order/info.d.ts.map +1 -0
- package/dist/order/info.js +102 -0
- package/dist/order/info.js.map +1 -0
- package/dist/order/master.d.ts +49 -0
- package/dist/order/master.d.ts.map +1 -0
- package/dist/order/master.js +27 -0
- package/dist/order/master.js.map +1 -0
- package/dist/order/matcher.d.ts +43 -0
- package/dist/order/matcher.d.ts.map +1 -0
- package/dist/order/matcher.js +124 -0
- package/dist/order/matcher.js.map +1 -0
- package/dist/order/order.d.ts +63 -0
- package/dist/order/order.d.ts.map +1 -0
- package/dist/order/order.js +234 -0
- package/dist/order/order.js.map +1 -0
- package/dist/order/order_data.d.ts +51 -0
- package/dist/order/order_data.d.ts.map +1 -0
- package/dist/order/order_data.js +67 -0
- package/dist/order/order_data.js.map +1 -0
- package/dist/order/ratio.d.ts +40 -0
- package/dist/order/ratio.d.ts.map +1 -0
- package/dist/order/ratio.js +74 -0
- package/dist/order/ratio.js.map +1 -0
- package/dist/order/relative.d.ts +43 -0
- package/dist/order/relative.d.ts.map +1 -0
- package/dist/order/relative.js +57 -0
- package/dist/order/relative.js.map +1 -0
- package/dist/owned_owner.d.ts +108 -0
- package/dist/owned_owner.d.ts.map +1 -0
- package/dist/owned_owner.js +260 -0
- package/dist/owned_owner.js.map +1 -0
- package/dist/sdk.d.ts +113 -41
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +410 -209
- package/dist/sdk.js.map +1 -1
- package/dist/send/sign_and_send_transaction.d.ts +61 -0
- package/dist/send/sign_and_send_transaction.d.ts.map +1 -0
- package/dist/send/sign_and_send_transaction.js +201 -0
- package/dist/send/sign_and_send_transaction.js.map +1 -0
- package/dist/send/wait_transaction.d.ts +42 -0
- package/dist/send/wait_transaction.d.ts.map +1 -0
- package/dist/send/wait_transaction.js +172 -0
- package/dist/send/wait_transaction.js.map +1 -0
- package/dist/udt.d.ts +108 -0
- package/dist/udt.d.ts.map +1 -0
- package/dist/udt.js +180 -0
- package/dist/udt.js.map +1 -0
- package/dist/utils/chain.d.ts +3 -0
- package/dist/utils/chain.d.ts.map +1 -0
- package/dist/utils/chain.js +2 -0
- package/dist/utils/chain.js.map +1 -0
- package/dist/utils/codec.d.ts +19 -0
- package/dist/utils/codec.d.ts.map +1 -0
- package/dist/utils/codec.js +69 -0
- package/dist/utils/codec.js.map +1 -0
- package/dist/utils/utils.d.ts +99 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +130 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/verified_client.d.ts +19 -0
- package/dist/utils/verified_client.d.ts.map +1 -0
- package/dist/utils/verified_client.js +92 -0
- package/dist/utils/verified_client.js.map +1 -0
- package/package.json +19 -26
- package/src/constants.ts +65 -181
- package/src/conversion/estimate.ts +155 -0
- package/src/conversion/maturity.ts +158 -0
- package/src/conversion/plans.ts +144 -0
- package/src/conversion/projection.ts +136 -0
- package/src/conversion/types.ts +302 -0
- package/src/conversion/withdrawal_ring.ts +122 -0
- package/src/dao.ts +196 -0
- package/src/index.ts +89 -3
- package/src/logic.ts +283 -0
- package/src/order/cells.ts +383 -0
- package/src/order/conversion.ts +162 -0
- package/src/order/fee.ts +30 -0
- package/src/order/fill.ts +83 -0
- package/src/order/info.ts +181 -0
- package/src/order/master.ts +42 -0
- package/src/order/matcher.ts +191 -0
- package/src/order/order.ts +288 -0
- package/src/order/order_data.ts +131 -0
- package/src/order/ratio.ts +127 -0
- package/src/order/relative.ts +109 -0
- package/src/owned_owner.ts +364 -0
- package/src/sdk.ts +542 -440
- package/src/send/sign_and_send_transaction.ts +256 -0
- package/src/send/wait_transaction.ts +227 -0
- package/src/udt.ts +249 -0
- package/src/utils/chain.ts +2 -0
- package/src/utils/codec.ts +78 -0
- package/src/utils/utils.ts +208 -0
- package/src/utils/verified_client.ts +136 -0
- package/dist/codec.d.ts +0 -3
- package/dist/codec.d.ts.map +0 -1
- package/dist/codec.js +0 -58
- package/dist/codec.js.map +0 -1
- 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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"}
|