Repository navigation
[Phase E5] Add releaser-authorized split settlement - #144
rajiabdulrahmon2020-ui wants to merge 11 commits into
Conversation
|
@rajiabdulrahmon2020-ui 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! 🚀 |
|
This PR has merge conflicts with |
|
@rajiabdulrahmon2020-ui Thanks for the PR. It can't be merged yet. To unblock it: CI is failing. Here's what broke:
Please fix these errors and run the same steps locally before pushing ( Merge conflicts: this branch conflicts with Push to this same branch and CI will re-run. Once it's green and conflict-free, it'll be reviewed for merge. |
# Conflicts: # ARCHITECTURE_ESSENTIALS.md # README.md # ROADMAP.md # contracts/escrow/src/lib.rs # docs/threat-model.md
|
@afeezorobsco-cyber I resolved the conflicts with main, integrated split settlement with the current quorum and token allowlist logic, and pushed the update. The focused split-settlement contract tests pass. Please review and merge when ready. |
|
@rajiabdulrahmon2020-ui Thanks for the update. The malware scan passed and there are no conflicts, but CI fails on two checks:
Push to this branch and CI will re-run. Once it's green it can be merged. |
|
@rajiabdulrahmon2020-ui Your latest push still has the same two failures: Update the Push to this branch and CI will re-run. Once it's green it can be merged. |
|
@rajiabdulrahmon2020-ui This PR now has merge conflicts with git fetch upstream # upstream = https://github.com/DocForum/docforum-escrow.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-leaseThe usual culprits are shared files like Automated message. It won't repeat unless the PR conflicts again after your next push. |
|
@afeezorobsco-cyber I resolved the conflicts with current |
|
@rajiabdulrahmon2020-ui This PR now has merge conflicts with git fetch upstream # upstream = https://github.com/DocForum/docforum-escrow.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-leaseThe usual culprits are shared files like Automated message. It won't repeat unless the PR conflicts again after your next push. |
# Conflicts: # contracts/escrow/src/lib.rs # sdk/src/generated/contract-client.ts
|
The branch now includes the latest main and the merge conflicts are resolved. I kept split settlement compatible with the acceptance changes and regenerated the contract bindings. The PR description still includes Closes #46. @afeezorobsco-cyber, please review the updated PR and merge it once the checks pass. |
|
@rajiabdulrahmon2020-ui This PR now has merge conflicts with git fetch upstream # upstream = https://github.com/DocForum/docforum-escrow.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-leaseThe usual culprits are shared files like Automated message. It won't repeat unless the PR conflicts again after your next push. |
|
@rajiabdulrahmon2020-ui CI is failing on this branch against the latest SDK bindings match contract WASM Soroban contract (test + wasm build)
cd contracts/escrow && cargo build --target wasm32v1-none --release
stellar contract bindings typescript --wasm target/wasm32v1-none/release/docforum_escrow.wasm --output-dir /tmp/escrow-bindings --overwrite
cp /tmp/escrow-bindings/src/index.ts ../../sdk/src/generated/contract-client.ts( Your change alters contract behaviour that the committed Soroban snapshots record. Run This PR also conflicts with |
|
@rajiabdulrahmon2020-ui CI is failing on this branch against the latest Soroban contract (test + wasm build)
|
|
@rajiabdulrahmon2020-ui CI is failing on this branch against the latest Soroban contract (test + wasm build) This is the same assertion as before. Run |
Bring the split settlement PR up to date with current main and fix the failing "Soroban contract (test + wasm build)" and "SDK bindings match contract WASM" checks. Conflict resolution: - lib.rs: keep main's pooled-escrow and releaser-rotation code and the new error variants. The split settlement error gets the unused discriminant 35 (main already uses 21 for InvalidRefundTo). - lib.rs: main's internal `settle` is renamed `settle_full`, so the public `settle` entry point does not collide with it. - README.md: take main's version. The contract surface moved to ARCHITECTURE_ESSENTIALS.md, where the settle row is added. - ROADMAP.md: keep main's lines and the PR's own line. - sdk/src/generated/contract-client.ts: take main's version and regenerate it with the pinned stellar CLI (28.1.0). Behaviour fixes to the settle entry point: - Enforce the same release-time and payee-acceptance gates as release. Before this, a split could pay out before release_not_before or without the required acceptance. - Reject amounts above the escrowed amount. The old range check only covered negative amounts. - Send the remainder to refund_to, which defaults to the payer. This is the same destination as refunds. - Reject pooled escrows, since pooled accounting cannot be split. CI fix: the split settlement test called create_escrow without the refund_to argument (&None) that main requires. Tests: cargo test (139 passing, including 4 split settlement tests), cargo build --target wasm32v1-none --release, and scripts/check-generated-bindings.sh.
|
Review needed: resolving conflicts changed what settle does, beyond the conflict fixes. It now enforces release_not_before and payee acceptance, rejects amounts above the escrowed total, sends the remainder to refund_to (not the payer), and rejects pooled escrows. Please confirm these semantics. The CI fix adds the missing create_escrow argument (&None) and regenerates bindings. The TLA+ spec is not updated. |
|
@rajiabdulrahmon2020-ui CI is failing in After the split settlement, the escrow is still |
|
@rajiabdulrahmon2020-ui This PR now has merge conflicts with git fetch upstream # upstream = https://github.com/DocForum/docforum-escrow.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-leaseThe usual culprits are shared docs like Automated message. It won't repeat unless the PR conflicts again after your next push. |
|
@afeezorobsco-cyber I fixed split settlement to refresh the status index and updated the committed test snapshot. The targeted split-settlement test passes locally, and the updated head passes the malware scan. GitHub still reports a merge conflict against current |
|
@rajiabdulrahmon2020-ui Heads-up: #268 just changed how contract PRs work in this repo. Your PR changes
This should also make your next merge from |
# Conflicts: # ROADMAP.md # contracts/escrow/src/lib.rs # sdk/src/generated/contract-client.ts
|
Synced this branch with current main and resolved the merge conflict. Kept CONTRACT_VERSION at 2.3.0, added the required issue #46 minor fragment and provisional InvalidSettlementAmount code 4600, and regenerated the SDK binding. Full Rust tests, the contract-change check, and generated-binding check pass. GitHub reports mergeable=true; Malware scan passed. @afeezorobsco-cyber, please recheck when convenient. |
|
@rajiabdulrahmon2020-ui This PR now has merge conflicts with git fetch upstream # upstream = https://github.com/DocForum/docforum-escrow.git
git rebase upstream/main
# resolve the conflicts, re-run the tests, then:
git push --force-with-leaseThe usual culprits are shared docs like Automated message. It won't repeat unless the PR conflicts again after your next push. |
Summary
Verification
cargo test --manifest-path contracts/escrow/Cargo.toml -- --test-threads=1passed../scripts/check-generated-bindings.shpassed.git diff --checkpassed.Closes #46