Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BigInt inline tests for unsafe math and overflow #333

Merged
merged 4 commits into from
Mar 14, 2025

Conversation

bitzoic
Copy link
Member

@bitzoic bitzoic commented Mar 11, 2025

Type of change

  • Improvement (refactoring, restructuring repository, cleaning tech debt, ...)

Changes

The following changes have been made:

  • Adds tests for expected behavior from Add when unsafe math and overflow are enabled
  • Adds tests for expected behavior from Multiply when unsafe math and overflow are enabled
  • Adds tests for expected behavior from Subtract when unsafe math and overflow are enabled

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.
  • I have updated the changelog to reflect the changes on this PR.

@bitzoic bitzoic added the Lib: Math Label used to filter for the library issue label Mar 11, 2025
@bitzoic bitzoic self-assigned this Mar 11, 2025
@bitzoic bitzoic requested a review from a team as a code owner March 11, 2025 20:38
K1-R1
K1-R1 previously approved these changes Mar 11, 2025
@K1-R1 K1-R1 requested a review from SwayStar123 March 11, 2025 22:55
@bitzoic bitzoic merged commit c151254 into master Mar 14, 2025
11 checks passed
@bitzoic bitzoic deleted the bitzoic-bigint-tests branch March 14, 2025 12:03
bitzoic added a commit that referenced this pull request Mar 18, 2025
commit f868bde27d82e3d6054baff1d8d6b0270a14c1bd
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Tue Mar 18 08:13:40 2025 -0300

    Update to forc `v0.67.0` and prepare `v0.25.0` release (#334)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Updates the repository to forc `v0.67.0`
    - Prepares for the `v0.25.0` release

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit c151254d423a8b8262c8b0d1187ef6f24dbdefc3
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Mar 14 09:03:38 2025 -0300

    Add `BigInt` inline tests for unsafe math and overflow (#333)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Adds tests for expected behavior from `Add` when unsafe math and
    overflow are enabled
    - Adds tests for expected behavior from `Multiply` when unsafe math and
    overflow are enabled
    - Adds tests for expected behavior from `Subtract` when unsafe math and
    overflow are enabled

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 1723c528f6b09fdfcbfb866f302cd6f8eedf429d
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Mon Mar 10 15:27:08 2025 -0300

    Remove `_with_configurables` functions from `Bytecode` Library and use `Option`  (#330)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)
    - Breaking

    ## Changes

    The following changes have been made:

    - Removes `compute_bytecode_root_with_configurables()`,
    `compute_predicate_address_with_configurables()`,
    `verify_contract_bytecode_with_configurables()`,
    `verify_predicate_address_with_configurables()`.
    - Adds `Option<ContractConfigurables>` argument to
    `compute_bytecode_root()`, `compute_predicate_address()`,
    `verify_contract_bytecode()`, `verify_predicate_address()`.

    ## Notes

    - This PR reimplements https://github.com/FuelLabs/sway-libs/pull/285 as
    this is the first breaking release since then

    ## Breaking

    The following demonstrates the breaking change:

    Before:
    ```sway
    fn foo(my_bytecode: Vec<u8>, my_configurables: ContractConfigurables, my_contract_id: ContractId, my_predicate_address: Address) {
         // Compute bytecode root
         let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode);
         let root_with_configurables: BytecodeRoot = compute_bytecode_root_with_configurables(my_bytecode, my_configurables);

         // Compute predicate address
         let address_no_configurables: Address = compute_predicate_address(my_bytecode);
         let address_with_configurables: Address = compute_predicate_address_with_configurables(my_bytecode, my_configurables);

         // Verify contract bytecode
         verify_contract_bytecode(my_contract_id, my_bytecode); // No configurables
         verify_contract_bytecode_with_configurables(my_contract_id, my_bytecode, my_configurables); // With configurables

         // Verify predicate address
         verify_predicate_address(my_predicate_address, my_bytecode); // No configurables
         verify_predicate_address_with_configurables(my_predicate_address, my_bytecode, my_configurables); // With configurables
    }
    ```

    After:
    ```sway
    fn foo(my_bytecode: Vec<u8>, my_configurables: ContractConfigurables, my_contract_id: ContractId, my_predicate_address: Address) {
         // Compute bytecode root
         let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, None);
         let root_with_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, Some(my_configurables));

         // Compute predicate address
         let address_no_configurables: Address = compute_predicate_address(my_bytecode, None);
         let address_with_configurables: Address = compute_predicate_address(my_bytecode, Some(my_configurables));

         // Verify contract bytecode
         verify_contract_bytecode(my_contract_id, my_bytecode, None); // No configurables
         verify_contract_bytecode(my_contract_id, my_bytecode, Some(my_configurables)); // With configurables

         // Verify predicate address
         verify_predicate_address(my_predicate_address, my_bytecode, None); // No configurables
         verify_predicate_address(my_predicate_address, my_bytecode, Some(my_configurables)); // With configurables
    }
    ```

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>

commit ad7974d64b2a4aac229569560020d1e725dd76f2
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Thu Mar 6 20:58:03 2025 +0530

    Add missing breaking change docs for PR #312  (#331)

    ## Type of change
    - Documentation

    ## Changes

    The following changes have been made:

    - Adds breaking change warning and example fix for the TotalOrd
    implementation pr #312

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit c5c3252e3db6684b9a8d642fab7b460aa8799abe
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Thu Mar 6 11:00:37 2025 -0300

    Introduce Sparse Merkle Tree Library (#329)

    ## Type of change

    <!--Delete points that do not apply-->

    - New Library

    ## Changes

    The following changes have been made:

    - Introduces a library to process and verify sparse merkle trees

    ## Breaking

    - The Binary Merkle Proof Library imports have changes:

    Before:
    ```sway
    use sway_libs::merkle::binary_poof::*;
    ```

    After:
    ```sway
    use sway_libs::merkle::binary::*;
    ```

    - The `LEAF`, `NODE`, `leaf_digest()`, and `node_disgest()` functions
    and constants imports have changed:

    Before:
    ```sway
    use sway_libs::merkle::binary_proof::{LEAF, NODE, leaf_digest, node_digest};
    ```

    After:
    ```sway
    use sway_libs::merkle::common::{LEAF, NODE, node_digest};
    use sway_libs::merkle::binary::{leaf_digest};
    ```

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #18

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>

commit 98a80665672571aa96661e61eec83009edef2f0b
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Thu Mar 6 19:07:50 2025 +0530

    Implement TotalOrd for signed integers (#312)

    ## Type of change

    - New feature

    ## Changes

    - Implements TotalOrd for all signed integers and adds tests
    - Updates forc version in ci to 0.66.5 (total ord was added in this
    version)

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 70a5b2bee71baa51011f7b88d128f0228b500946
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Tue Feb 18 10:54:49 2025 -0300

    Introduce Big Integers Library (#326)

    ## Type of change

    <!--Delete points that do not apply-->

    - New Library

    ## Changes

    The following changes have been made:

    - Introduces the Big Integers Library with the `BigUint` type

    The `BigUint` type has the following functions:
    - `new()`
    - `equal_limb_size()`
    - `number_of_limbs()`
    - `limbs()`
    - `get_limb()`
    - `zero()`
    - `is_zero()`

    The following traits are implemented for the `BigUint` type:

    - `Clone`
    - `From<u8>`
    - `TryInto<u8>`
    - `From<u16>`
    - `TryInto<u16>`
    - `From<u32>`
    - `TryInto<u32>`
    - `From<u64>`
    - `TryInto<u64>`
    - `From<U128>`
    - `TryInto<U128>`
    - `From<u256>`
    - `TryInto<u256>`
    - `From<Bytes>`
    - `Into<Bytes>`
    - `Eq`
    - `Ord`
    - `OrdEq`
    - `Add`
    - `Multiply`
    - `Subtract`

    ## Notes

    - Until this PR is merged, CI link check will error with:
    ```
    ERROR: 1 dead links found!
      [✖] https://fuellabs.github.io/sway-libs/master/sway_libs/bigint/index.html → Status: 404
    ```

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 06a01afc8e67f80135fe03b83aa9cf3218b6270d
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Mon Feb 10 20:04:08 2025 -0300

    Update to forc `v0.66.7` and fuel-core `v0.41.4` and fuels `v0.70.0` (#327)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Updates the repository to forc `v0.66.7`
    - Updates the repository to fuel-core `v0.41.4`
    - Updates the repository to rust `v1.84.0`

    ## Notes

    - Required for the BigInt library

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit a4b264f2e432f0a5f3e90f06a3f5b6b4ba7baf23
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Tue Feb 4 09:46:02 2025 -0300

    Prepare for v0.24.2 release (#324)

    ## Type of change

    <!--Delete points that do not apply-->

    - Release

    ## Changes

    The following changes have been made:

    - Updates all instances of `v0.24.1` to `v0.24.2`.

    ## Notes

    - Required for compatibility with forc `v0.66.6`.

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 4cd9e12388414801ef98eb36eb9335b707fe21aa
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Jan 31 11:06:57 2025 +0100

    Update to forc `v0.66.6` (#323)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Updates the repository to forc `v0.66.6`

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [ ] I have updated the changelog to reflect the changes on this PR.

commit df5112e3f73696c612aa65427063d42440a878d1
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Fri Jan 31 15:36:02 2025 +0530

    Expand asset library docs (#322)

    ## Type of change

    - Documentation

    ## Changes

    The following changes have been made:

    - Add examples and expand documentation

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 205e0e617cea37649c31b93563393ded79c76493
Author: grandfather <iotas.echoes-6o@icloud.com>
Date:   Thu Jan 23 12:34:03 2025 +0100

    Typo fix in specification.md (#321)

    # Pull Request: Typo Fix in `specification.md`

    ## Description

    This pull request addresses a minor typo in the `specification.md` file.
    The word **"audiance"** has been corrected to **"audience"** for clarity
    and professionalism.

    ## Changes Made

    - Fixed the typo in the sentence:
    > _For simplicity, a specification can be broken into two levels of
    detail and the one you choose depends on your target audiance._
      - Updated to:
    > _For simplicity, a specification can be broken into two levels of
    detail and the one you choose depends on your target audience._

    - [x] The change is a typo fix

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>

commit 0d0824a57a7fe920a85f2af7399fbd29c11c7eff
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Wed Jan 22 19:18:54 2025 +0700

    Improve signed integer docs (#318)

    ## Type of change

    - Documentation

    ## Changes

    The following changes have been made:

    - The documentation was expanded
    - More examples were added

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: Cameron Carstens <bitzoic.eth@gmail.com>

commit e81bdc6a3ec8ac10600f39904c90ed53e60685c2
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Tue Jan 21 21:47:12 2025 +0700

    Improve ownership docs (#319)

    ## Type of change

    - Documentation

    ## Changes

    The following changes have been made:

    - Expand the documentation
    - Add examples and a new full contract example

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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).
    - [ ] I have requested a review from the relevant team or maintainers.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit d5577010cacb82db13101107f20914b240c146eb
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Wed Jan 8 10:33:03 2025 +0100

    Update rust versions to v1.83.0 (#317)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Updates the rust version in CI to v1.83.0

    ## Notes

    - Over the deployment freeze, something broke and the rust version needs
    to be updated.

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 44066b12344979514426c14ae8088c1690fc34d6
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Sat Dec 14 08:51:45 2024 +0000

    Prepare master for version v0.24.1 (#314)

    ## Type of change

    <!--Delete points that do not apply-->

    - Release

    ## Changes

    The following changes have been made:

    - Updates all instances and mentions of v0.24.0 to v0.24.1

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 24d01a6bccf6ada68317dcd90df92424c36223a7
Author: SwayStar123 <46050679+SwayStar123@users.noreply.github.com>
Date:   Thu Dec 12 18:00:17 2024 +0530

    Fix readme link (#311)

    ## Type of change

    - Bug fix

    ## Changes

    Old link lead to queue, corrected the link

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [ ] I have updated the changelog to reflect the changes on this PR.

    Co-authored-by: Cameron Carstens <bitzoic.eth@gmail.com>

commit 0cec568c6cf6ffd2dfcbafc4dd7ae012f6ab8b01
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Tue Dec 10 23:09:39 2024 +0000

    Reentrancy Tests with Proxy (#310)

    ## Type of change

    <!--Delete points that do not apply-->

    - New feature

    ## Changes

    The following changes have been made:

    - Adds tests to ensure that the reentrancy guard works with a proxy
    contract
    - Refactors the reentrancy guard test contracts to use storage

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 8e40e68032aaa1fb9afdda70f2ca8ee5e5e8c4e4
Author: Call Delegation <106365423+calldelegation@users.noreply.github.com>
Date:   Tue Dec 10 11:10:25 2024 -0500

    docs: Link checker (#313)

    ## Type of change

    Link checker so that broken links are caught before it reaches the docs
    hub

    ## Related Issues

    [<!--Delete everything after the "#" symbol and replace it with a
    number. No spaces between hash and
    number-->](https://github.com/FuelLabs/docs-hub/pull/533)

    ## 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)
    - [ ] 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](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.
    - [ ] I have updated the changelog to reflect the changes on this PR.

commit 7c4c4643176450d9214a83c803fd5be6e79f54e5
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Nov 29 11:41:01 2024 +0100

    Add fallback tests to reentrancy guard library (#309)

    ## Type of change

    <!--Delete points that do not apply-->

    - New feature

    ## Changes

    The following changes have been made:

    - Adds tests to the reentrancy guard library using the `fallback`
    function, ensuring the reentrancy guard still works

    ## Notes

    - This Pr compliments #307

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>

commit f901f5097690b060ae2d6df469f893112d579150
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Wed Nov 27 01:56:14 2024 +0700

    Remove comments on cross-contract reentrancy venerability (#308)

    ## Type of change

    <!--Delete points that do not apply-->

    - Documentation

    ## Changes

    The following changes have been made:

    - Removed cautionary note on cross-contract vulnerability in inline docs
    - Removed comment on cross-contract vulnerability in documentation
    - Added note stating cross-contract reentrancy not possible but to still
    exercise caution

    ## Notes

    - Cross-contract reentrancy occurs when a contract like a vault issues
    and manages assets for token contract. However, as Fuel uses native
    assets, no contract call must be made to update balances. Therefore it
    is not possible to perform a cross-contract reentrancy attack.
    - A cautionary note on relying on other contracts for state has been
    added as this can introduce dependency attacks.

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #307

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 03f8ff9939471f0a5b6659e1b91c14e4bf39a9b7
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Nov 1 10:06:43 2024 +0700

    Fix links in Upgradeability Library docs (#304)

    ## Type of change

    <!--Delete points that do not apply-->

    - Bug fix

    ## Changes

    The following changes have been made:

    - Fixes links to the SRC-14 documentation

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #303

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>

commit 5e3977190a72912104e8aec16d64de5479cea0db
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Wed Oct 30 12:11:01 2024 +0700

    Update SRC-7 naming (#306)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)
    - Documentation

    ## Changes

    The following changes have been made:

    - Updates the SRC-7 naming to "Onchain Asset Metadata Standard"
    - Adds comments on the SRC-7 intent for stateful metadata

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>

commit 2aed0cae3de22fe0fd56c6ac7d42502b14170c28
Author: Call Delegation <106365423+calldelegation@users.noreply.github.com>
Date:   Tue Oct 29 04:24:52 2024 -0400

    docs: Fix ignition docs (#300)

    ## Type of change

    <!--Delete points that do not apply-->

    - Bug fix
    - New feature
    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)
    - Documentation
    - Other (describe below)

    ## Changes

    The following changes have been made:

    - Change 1
    - Change 2

    ## Notes

    - Note 1

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #\<issue number\>

    ## 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).
    - [ ] If my change requires substantial documentation changes, I have
    [requested support from the DevRel
    team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
    - [ ] 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](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
    - [ ] I have requested a review from the relevant team or maintainers.
    - [ ] I have updated the changelog to reflect the changes on this PR.

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>
    Co-authored-by: Cameron Carstens <bitzoic.eth@gmail.com>

commit 9927e985a56466fdfbf89a248aca4388e89e004f
Author: mcisb <83702309+KyryloKilin@users.noreply.github.com>
Date:   Mon Oct 28 13:48:50 2024 +0300

    chore: fix md typos (#302)

    Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com>

commit 05f8644817b20406d068913184c708ab12c60299
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Oct 25 09:21:44 2024 +0545

    Update to forc v0.66.2, fuel-core v0.40. and fuels-rs v0.66.9 (#305)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Updates to forc v0.66.2
    - Updates to fuel-core v0.40.0
    - Updates to fuels-rs v0.66.9

    ## Notes

    - This PR fixes CI on the repository and must be merged first

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 50107770ff892d0d997c33dd469b6913b3d49fec
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Mon Sep 23 18:41:02 2024 +0545

    Fix README headers (#298)

    ## Type of change

    <!--Delete points that do not apply-->

    - Bug fix

    ## Changes

    The following changes have been made:

    - Makes the Upgradability libraries header an h4 over and h2

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit d77ab39d050f051b189620b8d6474aea7d271fbf
Author: Call Delegation <106365423+calldelegation@users.noreply.github.com>
Date:   Thu Sep 5 09:27:22 2024 -0400

    Fixe docs anchor for basic SRC-7 example (#297)

    ## Type of change

    <!--Delete points that do not apply-->

    - Bug fix
    - Documentation

    ## Changes

    The following changes have been made:

    - Fixes docs anchor for basic SRC-7 example

    ## 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).
    - [ ] If my change requires substantial documentation changes, I have
    [requested support from the DevRel
    team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
    - [ ] 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](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
    - [ ] I have requested a review from the relevant team or maintainers.
    - [ ] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: bitzoic <bitzoic.eth@gmail.com>

commit b03cc281241b36945da0fa3bd816862219334c25
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Aug 30 21:52:16 2024 +0800

    Revert breaking changes to asset library (#294)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Removes the breaking changes from the asset library made in
    https://github.com/FuelLabs/sway-libs/pull/286
    - Leaves improvements made in
    https://github.com/FuelLabs/sway-libs/pull/286

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 93cfa355e74d7a4088372b9b930e653d784cbb86
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Aug 30 21:43:51 2024 +0800

    Revert remove _with_configurables functions from Bytecode Library and use Option instead (#293)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Removes the breaking changes from
    https://github.com/FuelLabs/sway-libs/pull/285
    - Leaves the `BytecodeRoot` and `Contractconfigurables` types

    ## 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).
    - [ ] If my change requires substantial documentation changes, I have
    [requested support from the DevRel
    team](https://github.com/FuelLabs/devrel-requests/issues/new/choose)
    - [ ] 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](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md).
    - [ ] I have requested a review from the relevant team or maintainers.
    - [ ] I have updated the changelog to reflect the changes on this PR.

commit 74ab16895b79e3f82185613008b3d6ad59702dc3
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Aug 30 20:23:25 2024 +0800

    Prepare for v0.24.0 release (#291)

    ## Type of change

    <!--Delete points that do not apply-->

    - Release

    ## Changes

    The following changes have been made:

    - Prepares master for the v0.24.0 release

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit d67f94cdb91ffa2df2ff4c599c7c4cd3bd567331
Author: K1-R1 <77465250+K1-R1@users.noreply.github.com>
Date:   Fri Aug 30 09:23:18 2024 +0100

    Upgradeability: use specific storage slot for owner functionality (#290)

    ## Type of change

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - The upgradeability lib has been updated to use a specific storage slot
    for the proxy owner
    - The upgradeability example has been updated to use a specific storage
    slot for the proxy owner
    - The upgradeability test contract has been updated to use a specific
    storage slot for the proxy owner

    ## Notes

    The `_proxy_owner()`, `only_proxy_owner()` and `_set_proxy_owner()`
    functions no longer take `storage.proxy_owner` as a parameter. Instead
    they directly read and write to the storage slot
    `0xbb79927b15d9259ea316f2ecb2297d6cc8851888a98278c0a2e03e1a091ea754`
    which is `sha256("storage_SRC14_1")`.

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #287

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: bitzoic <bitzoic.eth@gmail.com>

commit fda3ebc733a2707270e8fd66005155afb3f90cab
Author: K1-R1 <77465250+K1-R1@users.noreply.github.com>
Date:   Fri Aug 30 09:08:30 2024 +0100

    Update to forc 0.63.3 and fuel-rs 0.66.2 (#289)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Changes

    The following changes have been made:

    - Update to forc 0.63.3 and fuel-core 0.34.0
    - Update to fuel-rs 0.66.2

    ## Notes

    - Bytecode tests are currently failing

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #288

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] I have updated the documentation where relevant (API docs, the
    reference, and the Sway book).
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

    ---------

    Co-authored-by: bitzoic <bitzoic.eth@gmail.com>

commit e60e82e5e3002fe6606c1021550c50fb7083f100
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Fri Aug 30 10:56:45 2024 +0800

    Update to Sway-Standards v0.6.0 (#286)

    ## Type of change

    <!--Delete points that do not apply-->

    - Breaking
    - New feature
    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)

    ## Breaking

    The following breaking changes have been made:

    1. The support functions for `Metadata` have been removed. They have
    been moved to sway-standards.

    Before:

    ```sway
    use sway_libs::asset::metadata::*;

    fn foo(my_metadata: Metadata) {
         let res: bool = my_metadata.is_b256();
         let res: bool = my_metadata.is_string();
         let res: bool = my_metadata.is_bytes();
         let res: bool = my_metadata.is_uint();
    }
    ```

    After:

    ```sway
    use standards::src7::*;

    fn foo(my_metadata: Metadata) {
         let res: bool = my_metadata.is_b256();
         let res: bool = my_metadata.is_string();
         let res: bool = my_metadata.is_bytes();
         let res: bool = my_metadata.is_uint();
    }
    ```

    2. The `SetMetadata` and `_set_metadata` function definitions have
    changed. The `metadata` argument is now an `Option<Metadata>` and the
    argument order has changed.

    Before:

    ```sway
    impl SetAssetMetadata for Contract {
        #[storage(read, write)]
        fn set_metadata(asset: AssetId, key: String, metadata: Metadata) {
            _set_metadata(storage.metadata, asset, key, metadata);
        }
    }
    ```

    After:

    ```sway
    impl SetAssetMetadata for Contract {
        #[storage(read, write)]
        fn set_metadata(asset: AssetId, metadata: Option<Metadata>, key: String) {
            _set_metadata(storage.metadata, asset, metadata, key);
        }
    }
    ```

    3. The `_set_name()` function's `name` argument is now an
    `Option<String>`

    Before:

    ```sway
    fn foo(asset: AssetId) {
        _set_name(storage.name, asset, String::from_ascii_str("Ether"));
    }
    ```

    After:

    ```sway
    fn foo(asset: AssetId) {
        _set_name(storage.name, asset, Some(String::from_ascii_str("Ether")));
    }
    ```

    3. The `_set_symbol()` function's `name` argument is now an
    `Option<String>`

    Before:

    ```sway
    fn foo(asset: AssetId) {
        _set_symbol(storage.name, asset, String::from_ascii_str("ETH"));
    }
    ```

    After:

    ```sway
    fn foo(asset: AssetId) {
        _set_symbol(storage.name, asset, Some(String::from_ascii_str("ETH")));
    }
    ```

    4. The `_mint()` function's `sub_id` argument is now an `Option<SubId>`

    Before:

    ```sway
    fn foo(recipient: Identity, amount: u64) {
        let asset_id = _mint(storage.total_assets, storage.total_supply, recipient, SubId::zero(), amount);
    }
    ```

    After:

    ```sway
    fn foo(recipient: Identity, amount: u64) {
        let asset_id = _mint(storage.total_assets, storage.total_supply, recipient, Some(SubId::zero()), amount);
    }
    ```

    ## Changes

    The following changes have been made:

    - Updated all `Forc.toml` files to use sway-standards `v0.6.0`
    - Updated docs to mention logging
    - Removed `Metadata` convenience functions
    - The `_metadata()` function has been added
    - The `_set_metadata()` function's `metadata` argument is now an
    `Option<Metadata>` and the argument order has changed
    - The `SetMetadata` abi's `set_metadata()` `metadata` argument is now an
    `Option<Metadata>` and the argument order has changed
    - `_set_metadata()` now reverts if the metadata is an empty string
    - `_set_metadata()` now reverts if the metadata are empty bytes
    - The `_set_name()` function's `name` argument is now an
    `Option<String>`
    - `_set_name()` now reverts if the `name` argument is an empty string
    - The `_set_symbol()` function's `name` argument is now an
    `Option<String>`
    - `_set_symbol()` now reverts if the `symbol` argument is an empty
    string
    - The `_mint()` function's `sub_id` argument is now an `Option<SubId>`
    - `_mint()` now reverts if the `amount` argument is zero
    - `_burn()` now reverts if the `amount` argument is zero
    - Test edge cases for `_mint()` have been added
    - Test edge cases for `_burn()` have been added
    - Test edge cases for `_set_name()` have been added
    - Test edge cases for `_set_symbol()` have been added
    - Test edge cases for `_set_decimals()` have been added

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit afb9fcdae8492449a28fa215f876ea3c4e63ade3
Author: Cameron Carstens <bitzoic.eth@gmail.com>
Date:   Wed Aug 28 09:59:00 2024 +0800

    Remove `_with_configurables` functions from Bytecode Library and use `Option` instead (#285)

    ## Type of change

    <!--Delete points that do not apply-->

    - Improvement (refactoring, restructuring repository, cleaning tech
    debt, ...)
    - Breaking

    ## Breaking

    The following demonstrates the breaking change:

    Before:
    ```sway
    fn foo(my_bytecode: Vec<u8>, my_configurables: ContractConfigurables, my_contract_id: ContractId, my_predicate_address: Address) {
         // Compute bytecode root
         let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode);
         let root_with_configurables: BytecodeRoot = compute_bytecode_root_with_configurables(my_bytecode, my_configurables);

         // Compute predicate address
         let address_no_configurables: Address = compute_predicate_address(my_bytecode);
         let address_with_configurables: Address = compute_predicate_address_with_configurables(my_bytecode, my_configurables);

         // Verify contract bytecode
         verify_contract_bytecode(my_contract_id, my_bytecode); // No configurables
         verify_contract_bytecode_with_configurables(my_contract_id, my_bytecode, my_configurables); // With configurables

         // Verify predicate address
         verify_predicate_address(my_predicate_address, my_bytecode); // No configurables
         verify_predicate_address_with_configurables(my_predicate_address, my_bytecode, my_configurables); // With configurables
    }
    ```

    After:
    ```sway
    fn foo(my_bytecode: Vec<u8>, my_configurables: ContractConfigurables, my_contract_id: ContractId, my_predicate_address: Address) {
         // Compute bytecode root
         let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, None);
         let root_with_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, Some(my_configurables));

         // Compute predicate address
         let address_no_configurables: Address = compute_predicate_address(my_bytecode, None);
         let address_with_configurables: Address = compute_predicate_address(my_bytecode, Some(my_configurables));

         // Verify contract bytecode
         verify_contract_bytecode(my_contract_id, my_bytecode, None); // No configurables
         verify_contract_bytecode(my_contract_id, my_bytecode, Some(my_configurables)); // With configurables

         // Verify predicate address
         verify_predicate_address(my_predicate_address, my_bytecode, None); // No configurables
         verify_predicate_address(my_predicate_address, my_bytecode, Some(my_configurables)); // With configurables
    }
    ```

    ## Changes

    The following changes have been made:

    - `compute_bytecode_root_with_configurables()` has been removed in place
    of `compute_bytecode_root()` with an `Option` argument for configurables
    - `compute_predicate_address_with_configurables()` has been removed in
    place of `compute_predicate_address()` with an `Option` argument for
    configurables
    - `verify_contract_bytecode_with_configurables()` has been removed in
    place of `verify_contract_bytecode()` with an `Option` argument for
    configurables
    - `verify_predicate_address_with_configurables()` has been removed in
    place of `verify_predicate_address()` with an `Option` argument for
    configurables
    - The `BytecodeRoot` type has been added
    - The `ContractConfigurables` type has been added

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #219

    ## Checklist

    - [x] I have linked to any relevant issues.
    - [x] I have commented my code, particularly in hard-to-understand
    areas.
    - [x] 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.
    - [x] I have updated the changelog to reflect the changes on this PR.

commit 847c0d332749e260e387f10ae8cdb6d27d06156a
Author: withbest <seekseat@outlook.com>
Date:   Fri Aug 16 05:07:31 2024 +0900

    chore: fix some comments (#271)

    ## Type of change

    - Documentation

    ## Changes

    -  fix some comments

    ## Notes

    - Note 1

    ## Related Issues

    <!--Delete everything after the "#" symbol and replace it with a number.
    No spaces between hash and number-->

    Closes #\<issue number\>

    ## 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).
    - [ ] If my change requires substant…
This was referenced Mar 18, 2025
bitzoic added a commit that referenced this pull request Mar 18, 2025
## [Version 0.25.0]

### Added v0.25.0

- [#312](#312) Implements
`TotalOrd` trait for `I8`, `I16`, `I32`, `I64`, `I128`, and `I256`.
- [#326](#326) Introduces the
Big Integers Library with the `BigUint` type.
- [#329](#329) Introduce the
Sparse Merkle Proof Library.
- [#333](#333) Adds `BigInt`
inline tests for expected behavior on overflow and unsafe math.

### Changed v0.25.0

- [#327](#327) Updates the
repository to forc `v0.66.7`, fuel-core `v0.41.4`, and fuels `v0.70.0`.
- [#334](#334) Prepares for
the `v0.25.0` release.

### Fixed v0.25.0

- None

### Breaking v0.25.0

- [#329](#329) Breaks imports
for the Binary Merkle Library.

Before:

```sway
use sway_libs::merkle::binary_poof::*;
```

After:

```sway
use sway_libs::merkle::binary::*;
```

- [#329](#329) Breaks imports
for the `LEAF`, `NODE`, `leaf_digest()`, and `node_disgest()` functions
and constants.

Before:

```sway
use sway_libs::merkle::binary_proof::{LEAF, NODE, leaf_digest, node_digest};
```

After:

```sway
use sway_libs::merkle::common::{LEAF, NODE, node_digest};
use sway_libs::merkle::binary::{leaf_digest};
```

- [#330](#330) Removes
`_with_configurables()` functions from Bytecode Library in favor of
using an `Option`.

Before:

```sway
// Compute bytecode root
let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode);
let root_with_configurables: BytecodeRoot = compute_bytecode_root_with_configurables(my_bytecode, my_configurables);

// Compute predicate address
let address_no_configurables: Address = compute_predicate_address(my_bytecode);
let address_with_configurables: Address = compute_predicate_address_with_configurables(my_bytecode, my_configurables);

// Verify contract bytecode
verify_contract_bytecode(my_contract_id, my_bytecode); // No configurables
verify_contract_bytecode_with_configurables(my_contract_id, my_bytecode, my_configurables); // With configurables

// Verify predicate address
verify_predicate_address(my_predicate_address, my_bytecode); // No configurables
verify_predicate_address_with_configurables(my_predicate_address, my_bytecode, my_configurables); // With configurables
```

After:

```sway
// Compute bytecode root
let root_no_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, None);
let root_with_configurables: BytecodeRoot = compute_bytecode_root(my_bytecode, Some(my_configurables));

// Compute predicate address
let address_no_configurables: Address = compute_predicate_address(my_bytecode, None);
let address_with_configurables: Address = compute_predicate_address(my_bytecode, Some(my_configurables));

// Verify contract bytecode
verify_contract_bytecode(my_contract_id, my_bytecode, None); // No configurables
verify_contract_bytecode(my_contract_id, my_bytecode, Some(my_configurables)); // With configurables

// Verify predicate address
verify_predicate_address(my_predicate_address, my_bytecode, None); // No configurables
verify_predicate_address(my_predicate_address, my_bytecode, Some(my_configurables)); // With configurables
```

- [#312](#312) Breaks
functionality of `I8`, `I16`, `I32`, `I64`, `I128`, and `I256`'s
`::min()` and `::max()` functions. These functions are now used for
comparison for two values of the type and return the higher or lower
value respectively. To obtain the minimum and maximum values you must
now use the `::MIN` and `::MAX` associated constants.

Before:

```sway
fn foo() -> I8 {
    let minimum_i8 = I8::min();
    let maximum_i8 = I8::max();
}
```

After:

```sway
fn foo() -> I8 {
    let minimum_i8 = I8::MIN;
    let maximum_i8 = I8::MAX;
}
```

- [#334](#334) Updates to the
forc `v0.67.0` release. Earlier versions are *not* compatible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Lib: Math Label used to filter for the library issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants