Summary
long_escrow has register_with, which lets the contract present its own address to the registry.
The registry also exposes update and deregister, and both authorize the same way — so both are
equally impossible to call from the command line, and neither has a wrapper.
The consequence is that registration is one-shot. An escrow registered with a wrong manifest is
stuck with it: register returns AlreadyRegistered forever and there is no path to fix it short
of deploying a new contract. Since the example exists to show the pattern an adopter should copy, it
is showing an incomplete one.
Acceptance Criteria
Tech Stack
Rust (edition 2021, toolchain 1.93.0 pinned in rust-toolchain.toml), soroban-sdk 27.0.4,
target wasm32v1-none. Build with stellar contract build, never cargo build. Tests are
#[cfg(test)] modules on Env::default(); run them with cargo test --all.
Summary
long_escrowhasregister_with, which lets the contract present its own address to the registry.The registry also exposes
updateandderegister, and both authorize the same way — so both areequally impossible to call from the command line, and neither has a wrapper.
The consequence is that registration is one-shot. An escrow registered with a wrong manifest is
stuck with it:
registerreturnsAlreadyRegisteredforever and there is no path to fix it shortof deploying a new contract. Since the example exists to show the pattern an adopter should copy, it
is showing an incomplete one.
Acceptance Criteria
update_withandderegister_withexist, gated onconfig.buyer.require_auth()likeregister_with.RegistryClient; theregistrycrate is still not a dependency —linking it copies the registry's exported functions into the escrow's wasm.
Registrartrait gains matching declarations that stay in step with the registry.fake_registrystub cover both, including rejection without buyer auth.Tech Stack
Rust (edition 2021, toolchain 1.93.0 pinned in
rust-toolchain.toml),soroban-sdk27.0.4,target
wasm32v1-none. Build withstellar contract build, nevercargo build. Tests are#[cfg(test)]modules onEnv::default(); run them withcargo test --all.