fix(treasury): Review and document gas usage for treasury contract hot paths#1265
Open
NUMBER72857 wants to merge 1 commit into
Open
fix(treasury): Review and document gas usage for treasury contract hot paths#1265NUMBER72857 wants to merge 1 commit into
NUMBER72857 wants to merge 1 commit into
Conversation
MyFanss#906) - gas_benchmarks.rs: correctness tests for deposit, withdraw, and balance-read hot paths using TreasuryClient + StellarAssetClient test helpers - Covers: deposit accumulation, overdraft rejection, zero/negative-amount guards, paused-contract short-circuit, and balance consistency between token_client and treasury internal reads - Inline doc table documents cost drivers and storage-tier choices: instance storage for all keys, auth-before-storage ordering in withdraw, amount guard before require_auth in deposit - All tests run immediately (no #[ignore]) — wired to real TreasuryClient Closes MyFanss#906
|
@NUMBER72857 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 file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds correctness tests for the three treasury hot paths —
deposit,withdraw, and the implicit balance-read insidewithdraw— documenting their cost drivers and storage-tier choices with inline analysis.Changes
gas_benchmarks.rs: 10 tests covering deposit accumulation, overdraft rejection, zero/negative-amount guards, paused-contract short-circuit, balance consistency, and full-withdrawaldeposit: single SACtransfercall — no further reduction availablewithdraw: auth before storage read (cheap early-abort) + balance checkrequire_authfor cheapest rejectionTreasuryClient+StellarAssetClientGas optimization notes
require_authin both hot paths keeps bad-input calls maximally cheapwithdrawensures unauthorized calls abort before any cross-contract callsADMIN/TOKEN/PAUSED/MIN_BALANCEis the correct tier (no per-entry TTL cost)Closes #906