-
Notifications
You must be signed in to change notification settings - Fork 64
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
Conversation
This file contains 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
K1-R1
previously approved these changes
Mar 11, 2025
SwayStar123
approved these changes
Mar 13, 2025
K1-R1
approved these changes
Mar 13, 2025
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…
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
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.
Type of change
Changes
The following changes have been made:
Add
when unsafe math and overflow are enabledMultiply
when unsafe math and overflow are enabledSubtract
when unsafe math and overflow are enabledChecklist
Breaking*
orNew Feature
labels where relevant.