reject zero-value and reused HTLC secrets - #245
Conversation
|
@Horlarmmy is attempting to deploy a commit to the karagoz's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
@Horlarmmy 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! 🚀 |
|
Sıfır değer kontrolleri doğru yönde ve ek testler geçiyor; fakat reuse kontrolünde önemli bir boşluk var: |
|
You're right. |
|
Thanks for the follow-up. The new canonical-lowercase path fixes the mixed-case preimage reuse gap, and the added casing test passes. I also verified the SDK suite ( I still cannot merge this revision against the current
Once the branch is rebased and all coordinator tests pass, I can re-review the mergeable PR. |
c11f042 to
68b28ad
Compare
|
All conflicts fixed @karagozemin |
|
Reviewed the latest head. I cannot merge this revision yet: GitHub still reports |
…eused-htlc-secrets # Conflicts: # coordinator/test/order-service.test.ts
|
Thank you @karagozemin |
What & Why
Prevents invalid or previously observed HTLC secrets from entering the swap flow. All-zero preimages/hashlocks and reused preimages are now rejected at the SDK, coordinator service, and API route layers. This closes a cross-chain safety gap where a malicious or buggy resolver could replay a preimage across orders, or submit a degenerate zero secret.
Closes #242
Touched surface
packages/sdk/— shared TypeScript SDKcoordinator/— order book + REST/WS servicefrontend/— React + Vite bridge UIresolver/— community resolver runnerrelayer/— legacy v1 listener / watchdogcontracts/— Solidity v2 (HTLCEscrow,ResolverRegistry)soroban/— Stellar Soroban contractsdocs/— documentation onlySettlement & refund semantics
Tests run
pnpm --filter @oversync/sdk build && pnpm --filter @oversync/sdk exec tsc --noEmitpnpm --filter @oversync/sdk testpnpm --filter @oversync/coordinator exec tsc --noEmit && pnpm --filter @oversync/coordinator testpnpm --filter @oversync/resolver exec tsc --noEmit && pnpm --filter @oversync/resolver testpnpm --filter @oversync/frontend exec tsc --noEmit && pnpm --filter @oversync/frontend testpnpm --filter @oversync/contracts compile && ...cd soroban && stellar contract build && cargo test --release(cd contracts && forge test ...)pnpm test:e2enode scripts/verify-addresses.mjsnode scripts/check-evidence-links.mjsSDK
pnpm --filter @oversync/sdk test
10 files passed (10)
128 tests passed (128)
Coordinator
pnpm --filter @oversync/coordinator exec tsc --noEmit
(clean)
pnpm --filter @oversync/coordinator test
7 passed | 7 failed (14)
86 tests passed (86)
The 7 failing suites all error with "No such built-in module: node:sqlite"
on Node 22. This is a pre-existing infra issue (needs Node 23+).
UI / evidence artefacts
n/a
Secrets, logging, and PII risk
.envcontent, wallet mnemonics, or preimages added to the repoconsole.*/logger.*line that prints secrets, preimages, signed payloads, or PIIPublic proof links (SCF / investor evidence)
n/a
Breaking change & rollback
Reviewer checklist
git revertrestores prior state