Repository navigation
Conversation
|
@Nemenwa Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
truthixify
left a comment
There was a problem hiding this comment.
Blocking issues on this exact head:
-
AnnouncerError::MetadataTooLong = 1conflicts with the repository-wide allocation instellar/ERRORS.md, which reserves 1000-1099 when stealth-announcer gains contract errors. Code 1 is already used by other public error enums, so raw protocol logs become ambiguous. Move this variant into the reserved range and document it inERRORS.md; the required error-catalog step will otherwise fail once formatting is fixed. -
stellar/bench/src/lib.rs:55still benchmarksmetadata_len=4096as a successful announcement. The requiredstellar-bench-prjob now panics withError(Contract, #1)on that case. Remove or convert the obsolete success case, update the authoritative baseline/PERF artifacts, and keep an explicit rejection measurement/test if desired. -
This changes the public contract spec, but the checked-in TypeScript binding and
stellar/abi/stealth_announcer.jsonstill describe the old interface and contain no new error enum. Regenerate them withpnpm bindings:stellarandstellar/abi/update.sh. -
cargo fmt --all --checkis currently red. Format the changed Rust files, and remove the unrelated rootpackage-lock.jsonrewrite from this PR.
The implementation tests well once formatted: all 40 stealth-announcer tests and the full Stellar workspace suite passed locally.
closes #225
Implemented a 1,024-byte metadata limit in the announcer contract. Oversized input now returns AnnouncerError::MetadataTooLong (code 1) before key validation. Audit tests cover 1,023-byte and 1,024-byte acceptance, 1,025-byte rejection, and resource ceilings.
The existing Soroban baseline measured the 1 KiB payload at 15,096 instructions, 1,610 memory bytes, and 1,216 event bytes, versus 4,288 event bytes at 4 KiB. I updated the audit finding with the rationale and measurements.
git diff --check and editor diagnostics passed. I couldn’t run the Cargo tests because cargo isn’t installed or available on PATH. The existing package-lock.json modification was left untouched.