Repository navigation
Validate Toccata v2.1 and add noncustodial buyer-seller escrow - #2
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2257004734
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if contract.spends.len() != 1 { | ||
| return Err(TestnetError::Unsupported( | ||
| "legacy single-spend instantiation cannot preserve multiple paths in one locking script; use a reviewed native dispatcher".to_owned(), | ||
| )); |
There was a problem hiding this comment.
Keep the gated proof fallback usable for multi-spend contracts
When Tn12ContractHarness processes a multi-spend contract, this guard makes deploy_and_execute return Unsupported, but the fallback in sdk/tests/tn12_integration.rs calls gated_proof, which reaches the same build_contract_run and guard before .expect("gated proof") panics. Consequently, the documented live contract suite can no longer produce dry-run proofs for Escrow, AtomicSwap, or Vault; the fallback needs a path that records the unsupported instantiation without attempting it again.
Useful? React with 👍 / 👎.
A KaspaScript spend fragment ending in VERIFY left no successful stack result for the native engine. Spend instantiation now closes a non-empty verified body with true and rejects empty bodies. Artifact fragments and deterministic goldens retain their existing meaning.
An isolated companion SDK pins Rusty Kaspa v2.1.0 and constructs actual native v1 transactions with explicit fees, compute budgets, storage mass, genesis/continuation bindings, and RPC round trips. Native tests cover both KaspaScript and released Silverscript v1.0.0 bytecode with underpayment controls, plus a signed offline genesis/continuation/exit fixture, replay rejection, and rollback/reapply. CI checks the pinned integration. CLI status now reports the dated post-activation baseline while preserving the production-readiness gate.
Validation: 83 feature-enabled workspace tests passed with two live network tests ignored; seven native integration tests passed; workspace/native Clippy and formatting checks passed. These are offline native-engine and fixture results, not funded TN10 acceptance. No keys, network submission, mainnet unlock, or release publication are introduced. The legacy 0.15.0 SDK feature remains historical and is not silently promoted.
Buyer/Seller Escrow Follow-Up
contracts/buyer_seller_escrow.ksand a native single-P2SH dispatcher containing both cooperative buyer-and-seller release and buyer timeout refund.Verification on the new head: 85 workspace tests passed (two live tests ignored), 19 native tests passed, both Rustfmt/Clippy lanes and diff checks passed. CI reruns on this commit.
Buyer withholding, deadline races, lost-key recovery and capped-fee limitations are documented. Wallet-provider signing, visual approval, funded TN10 acceptance and DAG/indexer recovery remain unverified. Public fixture keys must never be funded. Repository push/merge is authorized; release publication and live fund movement are not part of this PR.