@ickb/sdk 9000.0.1 → 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 +14 -11
- package/dist/constants.d.ts +0 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -24
- package/dist/constants.js.map +1 -1
- package/dist/conversion/estimate.d.ts +0 -6
- package/dist/conversion/estimate.d.ts.map +1 -1
- package/dist/conversion/estimate.js +1 -1
- package/dist/conversion/estimate.js.map +1 -1
- package/dist/conversion/maturity.d.ts +1 -1
- package/dist/conversion/maturity.js +13 -12
- package/dist/conversion/maturity.js.map +1 -1
- package/dist/conversion/plans.d.ts.map +1 -1
- package/dist/conversion/plans.js +6 -6
- package/dist/conversion/plans.js.map +1 -1
- package/dist/conversion/projection.d.ts +5 -6
- package/dist/conversion/projection.d.ts.map +1 -1
- package/dist/conversion/projection.js +11 -8
- package/dist/conversion/projection.js.map +1 -1
- package/dist/conversion/types.d.ts +29 -17
- package/dist/conversion/types.d.ts.map +1 -1
- package/dist/conversion/withdrawal_ring.d.ts +1 -3
- package/dist/conversion/withdrawal_ring.d.ts.map +1 -1
- package/dist/conversion/withdrawal_ring.js +4 -4
- package/dist/conversion/withdrawal_ring.js.map +1 -1
- package/dist/dao.d.ts +19 -5
- package/dist/dao.d.ts.map +1 -1
- package/dist/dao.js +24 -12
- package/dist/dao.js.map +1 -1
- package/dist/index.d.ts +9 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/logic.d.ts +10 -14
- package/dist/logic.d.ts.map +1 -1
- package/dist/logic.js +28 -39
- package/dist/logic.js.map +1 -1
- package/dist/order/cells.d.ts +10 -49
- package/dist/order/cells.d.ts.map +1 -1
- package/dist/order/cells.js +28 -146
- package/dist/order/cells.js.map +1 -1
- package/dist/order/conversion.d.ts +3 -9
- package/dist/order/conversion.d.ts.map +1 -1
- package/dist/order/conversion.js +8 -11
- package/dist/order/conversion.js.map +1 -1
- package/dist/order/fill.d.ts +2 -2
- package/dist/order/fill.js +3 -3
- package/dist/order/fill.js.map +1 -1
- package/dist/order/info.d.ts.map +1 -1
- package/dist/order/info.js +3 -0
- package/dist/order/info.js.map +1 -1
- package/dist/order/matcher.d.ts +1 -1
- package/dist/order/matcher.d.ts.map +1 -1
- package/dist/order/matcher.js +3 -2
- package/dist/order/matcher.js.map +1 -1
- package/dist/order/order.d.ts +6 -2
- package/dist/order/order.d.ts.map +1 -1
- package/dist/order/order.js +32 -37
- package/dist/order/order.js.map +1 -1
- package/dist/order/order_data.d.ts.map +1 -1
- package/dist/order/order_data.js +3 -0
- package/dist/order/order_data.js.map +1 -1
- package/dist/order/ratio.d.ts +0 -2
- package/dist/order/ratio.d.ts.map +1 -1
- package/dist/order/ratio.js +3 -11
- package/dist/order/ratio.js.map +1 -1
- package/dist/order/relative.d.ts.map +1 -1
- package/dist/order/relative.js +3 -0
- package/dist/order/relative.js.map +1 -1
- package/dist/owned_owner.d.ts +10 -15
- package/dist/owned_owner.d.ts.map +1 -1
- package/dist/owned_owner.js +27 -47
- package/dist/owned_owner.js.map +1 -1
- package/dist/sdk.d.ts +74 -31
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +81 -59
- package/dist/sdk.js.map +1 -1
- package/dist/send/sign_and_send_transaction.d.ts +32 -17
- package/dist/send/sign_and_send_transaction.d.ts.map +1 -1
- package/dist/send/sign_and_send_transaction.js +128 -28
- package/dist/send/sign_and_send_transaction.js.map +1 -1
- package/dist/send/wait_transaction.d.ts +7 -6
- package/dist/send/wait_transaction.d.ts.map +1 -1
- package/dist/send/wait_transaction.js +29 -61
- package/dist/send/wait_transaction.js.map +1 -1
- package/dist/udt.d.ts +20 -35
- package/dist/udt.d.ts.map +1 -1
- package/dist/udt.js +39 -103
- package/dist/udt.js.map +1 -1
- package/dist/utils/chain.d.ts +0 -35
- package/dist/utils/chain.d.ts.map +1 -1
- package/dist/utils/chain.js +1 -19
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/codec.d.ts.map +1 -1
- package/dist/utils/codec.js +3 -0
- package/dist/utils/codec.js.map +1 -1
- package/dist/utils/utils.d.ts +19 -46
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +53 -74
- package/dist/utils/utils.js.map +1 -1
- 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 +2 -2
- package/src/constants.ts +6 -25
- package/src/conversion/estimate.ts +1 -3
- package/src/conversion/maturity.ts +13 -14
- package/src/conversion/plans.ts +6 -6
- package/src/conversion/projection.ts +15 -7
- package/src/conversion/types.ts +32 -17
- package/src/conversion/withdrawal_ring.ts +4 -8
- package/src/dao.ts +38 -14
- package/src/index.ts +8 -8
- package/src/logic.ts +40 -52
- package/src/order/cells.ts +37 -174
- package/src/order/conversion.ts +8 -19
- package/src/order/fill.ts +3 -3
- package/src/order/info.ts +3 -0
- package/src/order/matcher.ts +3 -3
- package/src/order/order.ts +38 -52
- package/src/order/order_data.ts +3 -0
- package/src/order/ratio.ts +3 -20
- package/src/order/relative.ts +3 -0
- package/src/owned_owner.ts +47 -77
- package/src/sdk.ts +95 -108
- package/src/send/sign_and_send_transaction.ts +164 -28
- package/src/send/wait_transaction.ts +44 -88
- package/src/udt.ts +56 -124
- package/src/utils/chain.ts +0 -41
- package/src/utils/codec.ts +4 -0
- package/src/utils/utils.ts +76 -105
- package/src/utils/verified_client.ts +136 -0
- package/dist/utils/transaction_header.d.ts +0 -17
- package/dist/utils/transaction_header.d.ts.map +0 -1
- package/dist/utils/transaction_header.js +0 -44
- package/dist/utils/transaction_header.js.map +0 -1
- package/src/utils/transaction_header.ts +0 -66
package/dist/sdk.js
CHANGED
|
@@ -2,10 +2,11 @@ import { ccc } from "@ckb-ccc/core";
|
|
|
2
2
|
import { getConfig } from "./constants.js";
|
|
3
3
|
import { minimumOrderAmount } from "./conversion/estimate.js";
|
|
4
4
|
import { ckbToIckbConversionPlans, ickbToCkbConversionPlans, } from "./conversion/plans.js";
|
|
5
|
-
import { assertDaoOutputLimit, broadcastDeadline, DaoHeaderIndexError, DaoOutputLimitError, } from "./dao.js";
|
|
5
|
+
import { assertDaoOutputLimit, assertFresh, broadcastDeadline, DaoHeaderIndexError, DaoOutputLimitError, pushHeaderDep, tipMaxAgeMs, } from "./dao.js";
|
|
6
6
|
import { Ratio } from "./order/ratio.js";
|
|
7
7
|
import { ickbExchangeRatio } from "./udt.js";
|
|
8
8
|
import { compareBigInt, findCells, isPlainCapacityCell, unique } from "./utils/utils.js";
|
|
9
|
+
import { verifiedClient } from "./utils/verified_client.js";
|
|
9
10
|
/**
|
|
10
11
|
* Input count up to which one own transaction sweeps liquid cells.
|
|
11
12
|
*
|
|
@@ -17,8 +18,11 @@ import { compareBigInt, findCells, isPlainCapacityCell, unique } from "./utils/u
|
|
|
17
18
|
* turn, which this outpaces; a larger backlog takes several transactions.
|
|
18
19
|
*/
|
|
19
20
|
export const SWEEP_INPUT_LIMIT = 1000;
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The whole SDK, which the Node actors drive by relative import; the package barrel
|
|
23
|
+
* exposes the two conversion-workflow methods, and its assignment checks they agree.
|
|
24
|
+
*/
|
|
25
|
+
export class IckbSdk {
|
|
22
26
|
ickbUdt;
|
|
23
27
|
ownedOwner;
|
|
24
28
|
ickbLogic;
|
|
@@ -35,20 +39,38 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
35
39
|
}
|
|
36
40
|
// ---- State reads -------------------------------------------------------------------
|
|
37
41
|
/**
|
|
38
|
-
* Reads system, user-order, and account state
|
|
39
|
-
* caller's withdrawal timing rules (`BOT_LOCK_UP` or `WALLET_LOCK_UP`)
|
|
42
|
+
* Reads system, user-order, and account state at the sampled tip's parent, under the
|
|
43
|
+
* caller's withdrawal timing rules (`BOT_LOCK_UP` or `WALLET_LOCK_UP`) and, when given, a
|
|
44
|
+
* positive fee rate cap that replaces CCC's ceiling; a cap of zero or less throws.
|
|
40
45
|
*
|
|
41
|
-
* @remarks Every read
|
|
42
|
-
*
|
|
43
|
-
*
|
|
46
|
+
* @remarks Every read goes through `verifiedClient` and the tip's parent is bounded by the
|
|
47
|
+
* policy's slack, so a caller passes a plain client. Every read is complete and uncapped: a large
|
|
48
|
+
* book or pool costs a slower read, never a partial or failed one. Each account lock is
|
|
49
|
+
* enumerated by one uncached unfiltered exact-lock scan and classified client-side.
|
|
44
50
|
*/
|
|
45
|
-
async getL1AccountState(
|
|
46
|
-
|
|
51
|
+
async getL1AccountState(plainClient, locks, lockUp, maxFeeRate) {
|
|
52
|
+
// CCC reads a zero cap as no cap at all and would plan at a negative one.
|
|
53
|
+
if (maxFeeRate !== undefined && ccc.numFrom(maxFeeRate) <= ccc.Zero) {
|
|
54
|
+
throw new RangeError("maxFeeRate must be positive");
|
|
55
|
+
}
|
|
56
|
+
const client = verifiedClient(plainClient);
|
|
57
|
+
const live = await client.getTipHeader();
|
|
58
|
+
// The live tip can still lose a one-block race, and a transaction naming it as a header
|
|
59
|
+
// dep is then refused after signing; every recorded fork was one block deep.
|
|
60
|
+
const tip = await client.getHeaderByNumber(live.number - 1n);
|
|
61
|
+
if (tip?.hash !== live.parentHash) {
|
|
62
|
+
throw new Error(`Block ${String(live.number - 1n)} is not the parent of tip ${live.hash}`);
|
|
63
|
+
}
|
|
64
|
+
// The age bound is on the header the read is priced at: a fresh tip a node invented can
|
|
65
|
+
// name any old block as its parent.
|
|
66
|
+
assertFresh(tip, tipMaxAgeMs(lockUp));
|
|
47
67
|
const exchangeRatio = Ratio.from(ickbExchangeRatio(tip));
|
|
48
68
|
const [poolDeposits, orders, feeRate, accounts] = await Promise.all([
|
|
49
69
|
this.ickbLogic.findDeposits(client, tip),
|
|
50
70
|
this.order.findOrders(client),
|
|
51
|
-
|
|
71
|
+
// CCC clamps the sampled median at the cap, the connector's chosen rate too. A given cap
|
|
72
|
+
// replaces CCC's default ceiling, on purpose: the caller's cap is the ceiling.
|
|
73
|
+
client.getFeeRate(undefined, maxFeeRate === undefined ? undefined : { maxFeeRate }),
|
|
52
74
|
Promise.all([...unique(locks)].map(async (lock) => this.readLockCells(client, lock, tip))),
|
|
53
75
|
]);
|
|
54
76
|
return {
|
|
@@ -62,7 +84,7 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
62
84
|
poolDeposits,
|
|
63
85
|
lockUp,
|
|
64
86
|
},
|
|
65
|
-
|
|
87
|
+
userOrders: orders.filter((group) => group.isOwner(...locks)),
|
|
66
88
|
account: {
|
|
67
89
|
capacityCells: accounts.flatMap((account) => account.capacityCells),
|
|
68
90
|
nativeUdtCells: accounts.flatMap((account) => account.nativeUdtCells),
|
|
@@ -73,15 +95,16 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
73
95
|
}
|
|
74
96
|
/** Every Stack cell one lock owns, classified from a single exact-lock scan. */
|
|
75
97
|
async readLockCells(client, lock, tip) {
|
|
76
|
-
const
|
|
98
|
+
const scanned = await findCells(client, {
|
|
77
99
|
script: lock,
|
|
78
100
|
scriptType: "lock",
|
|
79
101
|
scriptSearchMode: "exact",
|
|
80
102
|
withData: true,
|
|
81
103
|
});
|
|
104
|
+
const cells = scanned.map(({ cell }) => cell);
|
|
82
105
|
const [receipts, withdrawalGroups] = await Promise.all([
|
|
83
|
-
this.ickbLogic.receiptsFrom(client,
|
|
84
|
-
this.ownedOwner.withdrawalGroupsFrom(client,
|
|
106
|
+
this.ickbLogic.receiptsFrom(client, scanned),
|
|
107
|
+
this.ownedOwner.withdrawalGroupsFrom(client, scanned, tip),
|
|
85
108
|
]);
|
|
86
109
|
return {
|
|
87
110
|
capacityCells: cells.filter(isPlainCapacityCell),
|
|
@@ -102,7 +125,7 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
102
125
|
* order rather than failing. Failure results are
|
|
103
126
|
* expected planning outcomes; when no plan can be funded the last completion error throws.
|
|
104
127
|
*/
|
|
105
|
-
async buildConversionTransaction(
|
|
128
|
+
async buildConversionTransaction(options) {
|
|
106
129
|
const { amount, context, direction } = options;
|
|
107
130
|
if (amount < 0n) {
|
|
108
131
|
return conversionFailure("amount-negative", context.estimatedMaturity);
|
|
@@ -113,21 +136,20 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
113
136
|
if (direction === "ickb-to-ckb" && amount > context.ickbAvailable) {
|
|
114
137
|
return conversionFailure("insufficient-ickb", context.estimatedMaturity);
|
|
115
138
|
}
|
|
116
|
-
const baseTx = ccc.Transaction.from(txLike);
|
|
117
139
|
const resolved = {
|
|
118
140
|
...options,
|
|
119
141
|
lock: options.lock ?? (await options.signer.getRecommendedAddressObj()).script,
|
|
120
142
|
};
|
|
121
143
|
if (amount === 0n) {
|
|
122
|
-
return this.buildCollectOnlyConversion(
|
|
144
|
+
return this.buildCollectOnlyConversion(resolved);
|
|
123
145
|
}
|
|
124
146
|
return direction === "ckb-to-ickb"
|
|
125
|
-
? this.buildCkbToIckbConversion(
|
|
126
|
-
: this.buildIckbToCkbConversion(
|
|
147
|
+
? this.buildCkbToIckbConversion(resolved)
|
|
148
|
+
: this.buildIckbToCkbConversion(resolved);
|
|
127
149
|
}
|
|
128
|
-
async buildCollectOnlyConversion(
|
|
150
|
+
async buildCollectOnlyConversion(options) {
|
|
129
151
|
const { context, lock, signer } = options;
|
|
130
|
-
const tx = this.buildBaseTransaction(
|
|
152
|
+
const tx = this.buildBaseTransaction(ccc.Transaction.default(), context);
|
|
131
153
|
// An empty collection to a lock of the signer's own would only compact the account;
|
|
132
154
|
// to another lock it moves the liquid cells, which completion builds from the sweep.
|
|
133
155
|
if (!hasTransactionActivity(tx) &&
|
|
@@ -139,19 +161,24 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
139
161
|
ok: true,
|
|
140
162
|
tx: completed,
|
|
141
163
|
estimatedMaturity: context.estimatedMaturity,
|
|
142
|
-
|
|
164
|
+
conversionKind: "collect-only",
|
|
143
165
|
isSweepComplete: sweepsAll(completed, context.cells),
|
|
144
166
|
};
|
|
145
167
|
}
|
|
146
|
-
async buildCkbToIckbConversion(
|
|
168
|
+
async buildCkbToIckbConversion(options) {
|
|
147
169
|
const { context, lock } = options;
|
|
148
170
|
// A plan is dropped only for an unrepresentable remainder order.
|
|
149
171
|
const plans = ckbToIckbConversionPlans(options);
|
|
150
172
|
if (plans.length === 0) {
|
|
151
|
-
return
|
|
173
|
+
return {
|
|
174
|
+
ok: false,
|
|
175
|
+
reason: "amount-too-small",
|
|
176
|
+
estimatedMaturity: context.estimatedMaturity,
|
|
177
|
+
minimum: minimumOrderAmount(true, context.system),
|
|
178
|
+
};
|
|
152
179
|
}
|
|
153
180
|
const { candidate: plan, tx } = await completeFirstFundable(plans, (candidate) => {
|
|
154
|
-
let partial = this.buildBaseTransaction(
|
|
181
|
+
let partial = this.buildBaseTransaction(ccc.Transaction.default(), context);
|
|
155
182
|
if (candidate.depositCount > 0) {
|
|
156
183
|
partial = this.ickbLogic.deposit(partial, candidate.depositCount, candidate.depositCapacity, lock);
|
|
157
184
|
}
|
|
@@ -164,20 +191,23 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
164
191
|
ok: true,
|
|
165
192
|
tx,
|
|
166
193
|
estimatedMaturity: plan.estimatedMaturity,
|
|
167
|
-
|
|
168
|
-
kind: conversionKind(plan.depositCount > 0, plan.order !== undefined),
|
|
169
|
-
},
|
|
194
|
+
conversionKind: conversionKind(plan.depositCount > 0, plan.order !== undefined),
|
|
170
195
|
isSweepComplete: sweepsAll(tx, context.cells),
|
|
171
196
|
};
|
|
172
197
|
}
|
|
173
|
-
async buildIckbToCkbConversion(
|
|
198
|
+
async buildIckbToCkbConversion(options) {
|
|
174
199
|
const { context, lock } = options;
|
|
175
200
|
const plans = ickbToCkbConversionPlans(options, context.system.poolDeposits);
|
|
176
201
|
if (plans.length === 0) {
|
|
177
|
-
return
|
|
202
|
+
return {
|
|
203
|
+
ok: false,
|
|
204
|
+
reason: "amount-too-small",
|
|
205
|
+
estimatedMaturity: context.estimatedMaturity,
|
|
206
|
+
minimum: minimumOrderAmount(false, context.system),
|
|
207
|
+
};
|
|
178
208
|
}
|
|
179
209
|
const { candidate: plan, tx } = await completeFirstFundable(plans, (candidate) => {
|
|
180
|
-
let partial = this.buildBaseTransaction(
|
|
210
|
+
let partial = this.buildBaseTransaction(ccc.Transaction.default(), context, {
|
|
181
211
|
deposits: candidate.selectedDeposits,
|
|
182
212
|
lock,
|
|
183
213
|
});
|
|
@@ -192,9 +222,7 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
192
222
|
ok: true,
|
|
193
223
|
tx,
|
|
194
224
|
estimatedMaturity: plan.estimatedMaturity,
|
|
195
|
-
|
|
196
|
-
kind: conversionKind(plan.selectedDeposits.length > 0, plan.order !== undefined),
|
|
197
|
-
},
|
|
225
|
+
conversionKind: conversionKind(plan.selectedDeposits.length > 0, plan.order !== undefined),
|
|
198
226
|
...(notice === undefined ? {} : { conversionNotice: notice }),
|
|
199
227
|
isSweepComplete: sweepsAll(tx, context.cells),
|
|
200
228
|
...(broadcastBefore === undefined ? {} : { broadcastBefore }),
|
|
@@ -206,6 +234,11 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
206
234
|
lock: options.lock,
|
|
207
235
|
feeRate: options.context.system.feeRate,
|
|
208
236
|
cells: options.context.cells,
|
|
237
|
+
protocolCells: [
|
|
238
|
+
...options.context.receipts,
|
|
239
|
+
...options.context.system.poolDeposits,
|
|
240
|
+
],
|
|
241
|
+
tip: options.context.system.tip,
|
|
209
242
|
});
|
|
210
243
|
}
|
|
211
244
|
// ---- Transaction building ----------------------------------------------------------
|
|
@@ -246,7 +279,8 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
246
279
|
*/
|
|
247
280
|
async completeTransaction(txLike, options) {
|
|
248
281
|
const { signer, feeRate } = options;
|
|
249
|
-
const tx =
|
|
282
|
+
const tx = ccc.Transaction.from(txLike).clone();
|
|
283
|
+
tx.addCellDeps(this.ickbUdt.cellDeps);
|
|
250
284
|
const changeLock = options.lock ?? (await signer.getRecommendedAddressObj()).script;
|
|
251
285
|
// Inputs come from one state read, each cell once, and each action spends its own
|
|
252
286
|
// cell kind, so a repeated out point is a builder bug: this is the one place that
|
|
@@ -266,17 +300,20 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
266
300
|
const plainCells = unspent
|
|
267
301
|
.filter(isPlainCapacityCell)
|
|
268
302
|
.toSorted((left, right) => compareBigInt(right.cellOutput.capacity, left.cellOutput.capacity));
|
|
269
|
-
await this.completeIckb(tx, signer.client, changeLock, ickbCells);
|
|
303
|
+
await this.completeIckb(tx, signer.client, changeLock, ickbCells, options.protocolCells);
|
|
270
304
|
// Plain CKB: the sweep first, then whatever the fee still needs beyond the limit.
|
|
271
305
|
const swept = sweep(tx, plainCells);
|
|
306
|
+
// Last of the header deps, so no index another step names shifts, and before the fee so
|
|
307
|
+
// its 32 bytes are paid for.
|
|
308
|
+
pushHeaderDep(tx, options.tip.hash);
|
|
272
309
|
await completeFee(tx, signer, changeLock, feeRate, plainCells.slice(swept));
|
|
273
310
|
assertDaoOutputLimit(tx, this.ickbLogic.dao.script);
|
|
274
311
|
return tx;
|
|
275
312
|
}
|
|
276
313
|
/** iCKB: what the outputs need first, then the sweep while the limit allows, then change. */
|
|
277
|
-
async completeIckb(tx, client, changeLock, ickbCells) {
|
|
278
|
-
const required = this.ickbUdt.
|
|
279
|
-
let balance = await this.ickbUdt.inputBalance(tx, client);
|
|
314
|
+
async completeIckb(tx, client, changeLock, ickbCells, protocolCells) {
|
|
315
|
+
const required = tx.getOutputsUdtBalance(this.ickbUdt.script);
|
|
316
|
+
let balance = await this.ickbUdt.inputBalance(tx, client, protocolCells);
|
|
280
317
|
for (const cell of ickbCells) {
|
|
281
318
|
if (balance >= required && tx.inputs.length >= SWEEP_INPUT_LIMIT) {
|
|
282
319
|
break;
|
|
@@ -291,12 +328,9 @@ const IckbSdkImplementation = class IckbSdk {
|
|
|
291
328
|
}
|
|
292
329
|
this.ickbUdt.addChange(tx, changeLock, balance - required);
|
|
293
330
|
}
|
|
294
|
-
}
|
|
295
|
-
/** Concrete iCKB SDK constructor and static estimators. */
|
|
296
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- The public type and runtime constructor intentionally share a name.
|
|
297
|
-
export const IckbSdk = IckbSdkImplementation;
|
|
331
|
+
}
|
|
298
332
|
/** Whether the transaction already carries any input or output. */
|
|
299
|
-
|
|
333
|
+
function hasTransactionActivity(tx) {
|
|
300
334
|
return tx.inputs.length > 0 || tx.outputs.length > 0;
|
|
301
335
|
}
|
|
302
336
|
/** An order the market can fill at a gain: priced past the DAO ratio on its matchable side. */
|
|
@@ -306,13 +340,8 @@ function isPastPar(group, exchangeRatio) {
|
|
|
306
340
|
return ((order.isCkb2UdtMatchable() && info.ckbToUdt.compare(exchangeRatio) < 0) ||
|
|
307
341
|
(order.isUdt2CkbMatchable() && exchangeRatio.compare(info.udtToCkb) < 0));
|
|
308
342
|
}
|
|
309
|
-
function conversionFailure(reason, estimatedMaturity
|
|
310
|
-
return {
|
|
311
|
-
ok: false,
|
|
312
|
-
reason,
|
|
313
|
-
estimatedMaturity,
|
|
314
|
-
...(minimum === undefined ? {} : { minimum }),
|
|
315
|
-
};
|
|
343
|
+
function conversionFailure(reason, estimatedMaturity) {
|
|
344
|
+
return { ok: false, reason, estimatedMaturity };
|
|
316
345
|
}
|
|
317
346
|
/** A plan always carries a deposit or an order, else it would be a collection. */
|
|
318
347
|
function conversionKind(hasDirect, hasOrder) {
|
|
@@ -329,13 +358,6 @@ function sweepsAll(tx, cells) {
|
|
|
329
358
|
async function isOwnLock(signer, lock) {
|
|
330
359
|
return (await signer.getAddressObjs()).some(({ script }) => script.eq(lock));
|
|
331
360
|
}
|
|
332
|
-
async function getFeeRate(client) {
|
|
333
|
-
const feeRate = await client.getFeeRate();
|
|
334
|
-
if (feeRate < 0n) {
|
|
335
|
-
throw new Error("Client fee rate must be non-negative");
|
|
336
|
-
}
|
|
337
|
-
return feeRate;
|
|
338
|
-
}
|
|
339
361
|
function udtBalance(cell) {
|
|
340
362
|
return ccc.udtBalanceFrom(cell.outputData);
|
|
341
363
|
}
|
package/dist/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/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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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/core";
|
|
2
|
+
import { type BroadcastDeadline } from "../dao.js";
|
|
2
3
|
/** Error from a broadcast whose outcome is unknown; the local transaction hash is retained. */
|
|
3
4
|
export declare class TransactionBroadcastError extends Error {
|
|
4
5
|
/** Chain transaction hash computed from the signed transaction before broadcast. */
|
|
@@ -20,25 +21,39 @@ export declare class TransactionExpiredError extends Error {
|
|
|
20
21
|
}, options?: ErrorOptions);
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
* CCC's cache wrapper.
|
|
24
|
+
* Verifies the inputs against the chain, signs locally, records chain identity before
|
|
25
|
+
* RPC, then broadcasts without CCC's cache wrapper.
|
|
25
26
|
*
|
|
26
|
-
* @remarks
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* `TransactionExpiredError` once
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* failure remains ambiguous and throws `TransactionBroadcastError`. The client
|
|
39
|
-
* cache is never marked: later attempts rebuild from exact committed reads.
|
|
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.
|
|
40
39
|
*/
|
|
41
|
-
export declare function signAndSendTransaction(signer: ccc.Signer, tx: ccc.TransactionLike, recordTxHash?: (txHash: ccc.Hex) => void, broadcastBefore?:
|
|
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;
|
|
42
57
|
/**
|
|
43
58
|
* Returns the primary lock plus all signer address locks, deduplicated by script hash.
|
|
44
59
|
*/
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ccc } from "@ckb-ccc/core";
|
|
2
|
-
import {
|
|
3
|
-
import { unique } from "../utils/utils.js";
|
|
2
|
+
import { assertFresh } from "../dao.js";
|
|
3
|
+
import { jsonRpcRequestor, unique } from "../utils/utils.js";
|
|
4
|
+
import { verifiedClient } from "../utils/verified_client.js";
|
|
4
5
|
/** Error from a broadcast whose outcome is unknown; the local transaction hash is retained. */
|
|
5
6
|
export class TransactionBroadcastError extends Error {
|
|
6
7
|
/** Chain transaction hash computed from the signed transaction before broadcast. */
|
|
@@ -24,44 +25,51 @@ export class TransactionExpiredError extends Error {
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
|
-
*
|
|
28
|
-
* CCC's cache wrapper.
|
|
28
|
+
* Verifies the inputs against the chain, signs locally, records chain identity before
|
|
29
|
+
* RPC, then broadcasts without CCC's cache wrapper.
|
|
29
30
|
*
|
|
30
|
-
* @remarks
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* `TransactionExpiredError` once
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* failure remains ambiguous and throws `TransactionBroadcastError`. The client
|
|
43
|
-
* cache is never marked: later attempts rebuild from exact committed reads.
|
|
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.
|
|
44
43
|
*/
|
|
45
|
-
export async function signAndSendTransaction(signer, tx, recordTxHash, broadcastBefore) {
|
|
44
|
+
export async function signAndSendTransaction(signer, tx, plannedFee, recordTxHash, broadcastBefore) {
|
|
46
45
|
// Transaction.from reuses Transaction instances, which a signer may mutate in place.
|
|
47
46
|
const requested = ccc.Transaction.from(tx).clone();
|
|
48
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);
|
|
49
51
|
const signed = await signer.signTransaction(tx);
|
|
50
52
|
if (economicBody(signed) !== requestedBody) {
|
|
51
53
|
throw new Error("Signer altered the transaction inputs, outputs or outputs data");
|
|
52
54
|
}
|
|
53
55
|
const txHash = signed.hash();
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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`);
|
|
60
63
|
}
|
|
61
64
|
if (broadcastBefore !== undefined) {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
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
|
+
});
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
75
|
recordTxHash?.(txHash);
|
|
@@ -80,6 +88,98 @@ export async function signAndSendTransaction(signer, tx, recordTxHash, broadcast
|
|
|
80
88
|
}
|
|
81
89
|
return txHash;
|
|
82
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
|
+
}
|
|
83
183
|
// Hashing a body-only transaction reuses CCC serialization to freeze the ordered
|
|
84
184
|
// inputs, outputs and outputs data, while ignoring signer-owned witnesses and
|
|
85
185
|
// the cell/header deps a connector may still have to prepare.
|