Summary
extendViaFootprint guards the empty case but has no upper bound on the number of ledger keys in
one extendFootprintTtl. A long --key list is built into a transaction, simulated, and rejected
by the network for exceeding its resource limits.
The operator gets a network error describing resource usage instead of being told their key list is
too long. Note that src/rpc/ttl.ts already chunks reads at 100 keys per request, so the repository
has a precedent for bounding this locally rather than discovering the limit remotely.
Acceptance Criteria
Tech Stack
TypeScript 5.7 on Node 22+ (CI runs 22 and 24), ESM with moduleResolution: "NodeNext" — relative
imports need the .js extension. @stellar/stellar-sdk is pinned to an exact version; verify RPC
API shape against the installed copy, not against documentation. Tests are Vitest under test/ and
run without a network. npm run format:check, npm run lint, npm run build and npm test must
all be clean.
Summary
extendViaFootprintguards the empty case but has no upper bound on the number of ledger keys inone
extendFootprintTtl. A long--keylist is built into a transaction, simulated, and rejectedby the network for exceeding its resource limits.
The operator gets a network error describing resource usage instead of being told their key list is
too long. Note that
src/rpc/ttl.tsalready chunks reads at 100 keys per request, so the repositoryhas a precedent for bounding this locally rather than discovering the limit remotely.
Acceptance Criteria
accepted rather than by picking a round number.
simulation or network call.
lkeep extend --helpand in the README's--keydescription.Tech Stack
TypeScript 5.7 on Node 22+ (CI runs 22 and 24), ESM with
moduleResolution: "NodeNext"— relativeimports need the
.jsextension.@stellar/stellar-sdkis pinned to an exact version; verify RPCAPI shape against the installed copy, not against documentation. Tests are Vitest under
test/andrun without a network.
npm run format:check,npm run lint,npm run buildandnpm testmustall be clean.