Skip to content

Conversation

zees-dev
Copy link
Contributor

@zees-dev zees-dev commented Sep 12, 2025

Description

When using forc-call with a large --amount, the transaction incorrectly sets output count equal to the amount value (e.g., transferring 1000 units creates 1000 outputs).

Solution

  • Added --variable-output parameter to explicitly control output count
  • Changed default behavior to estimate minimum outputs via dry-run instead of using using amount value as UTXO outputs
  • Improved type safety by changing script_json: serde_json::Value to script: fuel_tx::Script

Testing

  • Updated tests to verify correct output counts
  • Added assertions to check script.outputs().len() matches expectations
  • Tests confirm behavior in both dry-run and live execution modes

Addresses: #7383

Checklist

  • I have linked to any relevant issues.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation where relevant (API docs, the reference, and the Sway book).
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
  • I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
  • I have requested a review from the relevant team or maintainers.

@zees-dev zees-dev requested a review from a team as a code owner September 12, 2025 04:36
@zees-dev zees-dev self-assigned this Sep 12, 2025
@zees-dev zees-dev added bug Something isn't working forc-call Everything related to the `forc-call` plugin in `forc-client` package team:tooling Tooling Team dev-experience Anything to do with the developer experience labels Sep 12, 2025
rymnc
rymnc previously approved these changes Sep 12, 2025
Copy link
Member

@rymnc rymnc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for fixing this :)

JoshuaBatty
JoshuaBatty previously approved these changes Sep 12, 2025
@zees-dev zees-dev merged commit 4f1af43 into master Sep 12, 2025
39 checks passed
@zees-dev zees-dev deleted the fix/forc-call-variable-output branch September 12, 2025 05:36
Elaela22soL pushed a commit to Elaela22soL/sway that referenced this pull request Sep 26, 2025
…Labs#7384)

## Description

When using `forc-call` with a large `--amount`, the transaction
incorrectly sets output count equal to the amount value (e.g.,
transferring 1000 units creates 1000 outputs).

### Solution
- Added `--variable-output` parameter to explicitly control output count
- Changed default behavior to estimate minimum outputs via dry-run
instead of using using amount value as UTXO outputs
- Improved type safety by changing `script_json: serde_json::Value` to
`script: fuel_tx::Script`

## Testing
- Updated tests to verify correct output counts
- Added assertions to check `script.outputs().len()` matches
expectations
- Tests confirm behavior in both dry-run and live execution modes

Addresses: FuelLabs#7383

## Checklist

- [x] I have linked to any relevant issues.
- [x] I have commented my code, particularly in hard-to-understand
areas.
- [ ] I have updated the documentation where relevant (API docs, the
reference, and the Sway book).
- [ ] If my change requires substantial documentation changes, I have
[requested support from the DevRel
team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
- [x] I have added tests that prove my fix is effective or that my
feature works.
- [x] I have added (or requested a maintainer to add) the necessary
`Breaking*` or `New Feature` labels where relevant.
- [x] I have done my best to ensure that my PR adheres to [the Fuel Labs
Code Review
Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
- [x] I have requested a review from the relevant team or maintainers.

---------

Co-authored-by: z <zees-dev@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dev-experience Anything to do with the developer experience forc-call Everything related to the `forc-call` plugin in `forc-client` package team:tooling Tooling Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants