ckb-session-kit 2.0.0 → 2.1.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/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
3
3
  This project follows [semantic versioning](https://semver.org/). The session lock is
4
4
  deployed on CKB **testnet only**; there is no mainnet deployment yet.
5
5
 
6
+ ## 2.1.0 (2026-11-05)
7
+
8
+ ### Added
9
+ - `fundInSession` and `sendWithSession`: fund a transaction the app built (its
10
+ own inputs, typed outputs, cell deps and witnesses) from a session without a
11
+ recipient, with no wallet prompt. The key cell pays the fee (default 2000
12
+ shannons/KB, `DEFAULT_FUND_FEE_RATE`, the same on every retry). Refused
13
+ before signing: a session with an on-chain recipient, an input under the
14
+ owner's lock (owner mode), an outflow over `maxPerTx`. `sendWithSession`
15
+ retries only when the node names one of the session's own cells as spent, and
16
+ rethrows any other refusal (the app's own cell taken, an RBF refusal) for the
17
+ app's loop. For CrowdCell pledges (CKBuilder-projects#6).
18
+ - `deadInputs` exported, `FundedTransaction`, `FundOptions`,
19
+ `SendWithSessionOptions` types, and `SessionPolicyError` reasons
20
+ `"session-has-recipient"`, `"owner-lock-input"`, `"app-tx-shape"`.
21
+ - CKB-VM tests of a session-funded pledge against CrowdCell's live testnet
22
+ scripts (`scripts/fetch-crowdcell.ts` saves them; not committed), and
23
+ `npm run smoke:fund-pledge`.
24
+ - `npm run smoke:pool-lag`: how long `get_live_cell(include_tx_pool=true)`
25
+ still shows a just-spent input live, per answering node (mentor review,
26
+ tracker #47, 3 Nov). On one node (testnet.ckb.dev) the node that took the
27
+ send never showed the input live (158 polls); on testnet.ckbapp.dev (two
28
+ backends) only the other backend did, in 13 of 20 sends, for up to about
29
+ 0.5 s. One kept-alive socket does not pin a backend there. Logs and table in
30
+ docs/SECURITY-EVIDENCE.md.
31
+
32
+ ### Documentation
33
+ - JoyID is accepted as an owner lock but reviewed from its documentation only:
34
+ its contract is closed source. README and docs/API.md show how an app refuses
35
+ JoyID owners itself before `openSession` (no option in the kit; no behaviour
36
+ change).
37
+
6
38
  ## 2.0.0 (2026-11-03)
7
39
 
8
40
  ### Upgrading from 1.0.0