diff --git a/.changeset/kind-toes-promise.md b/.changeset/kind-toes-promise.md new file mode 100644 index 00000000000..f6de46b042f --- /dev/null +++ b/.changeset/kind-toes-promise.md @@ -0,0 +1,6 @@ +--- +"@fuel-ts/forc": patch +"@fuel-ts/versions": patch +--- + +Upgrading forc to 0.49.1 diff --git a/apps/docs-snippets/test/fixtures/forc-projects/script-transfer-to-contract/src/main.sw b/apps/docs-snippets/test/fixtures/forc-projects/script-transfer-to-contract/src/main.sw index 64896ef70f9..8e7ca6bfd9b 100644 --- a/apps/docs-snippets/test/fixtures/forc-projects/script-transfer-to-contract/src/main.sw +++ b/apps/docs-snippets/test/fixtures/forc-projects/script-transfer-to-contract/src/main.sw @@ -1,7 +1,7 @@ // #region custom-transactions-1 script; -use std::token::force_transfer_to_contract; +use std::asset::force_transfer_to_contract; fn main( contract_address: b256, diff --git a/apps/docs-snippets/test/fixtures/forc-projects/transfer-to-address/src/main.sw b/apps/docs-snippets/test/fixtures/forc-projects/transfer-to-address/src/main.sw index 0e2c22d764a..126b69cf201 100644 --- a/apps/docs-snippets/test/fixtures/forc-projects/transfer-to-address/src/main.sw +++ b/apps/docs-snippets/test/fixtures/forc-projects/transfer-to-address/src/main.sw @@ -1,7 +1,7 @@ // #region contract-balance-2 contract; -use std::token::transfer_to_address; +use std::asset::transfer_to_address; abi TransferToAddress { #[payable] diff --git a/packages/abi-typegen/test/fixtures/forc-projects/full/src/main.sw b/packages/abi-typegen/test/fixtures/forc-projects/full/src/main.sw index 1cb3dbffd10..3499e5d942a 100644 --- a/packages/abi-typegen/test/fixtures/forc-projects/full/src/main.sw +++ b/packages/abi-typegen/test/fixtures/forc-projects/full/src/main.sw @@ -105,9 +105,7 @@ impl MyContract for Contract { x } fn types_evm_address(x: EvmAddress) -> EvmAddress { - EvmAddress::from( - 0x0606060606060606060606060606060606060606060606060606060606060606, - ) + EvmAddress::from(0x0606060606060606060606060606060606060606060606060606060606060606) } fn types_bytes(x: Bytes) -> Bytes { x diff --git a/packages/forc/VERSION b/packages/forc/VERSION index cffa44cf335..36328c43d5d 100644 --- a/packages/forc/VERSION +++ b/packages/forc/VERSION @@ -1 +1 @@ -0.48.1 +0.49.1 diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging-other-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging-other-contract/src/main.sw index af037fed599..f6389ba5eb5 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging-other-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging-other-contract/src/main.sw @@ -4,6 +4,38 @@ use std::logging::log; use advanced_logging_other_contract_abi::AdvancedLoggingOtherContract; +impl AbiEncode for str[25] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[34] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + impl AdvancedLoggingOtherContract for Contract { fn msg_from_other_contract(a: u8) { log(__to_str_array("Hello from other Contract")); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging/src/main.sw index 9210634b59c..246929f4e86 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/advanced-logging/src/main.sw @@ -7,6 +7,118 @@ use std::contract_id::ContractId; use advanced_logging_other_contract_abi::AdvancedLoggingOtherContract; +impl AbiEncode for str[8] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[10] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[11] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[12] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[14] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[18] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[24] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + enum GameState { Playing: u8, GameOver: u8, @@ -45,9 +157,7 @@ impl AdvancedLogging for Contract { ammo: 10, game_id: 10_11_12u64, state: GameState::Playing(1), - contract_Id: ContractId::from( - 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFF, - ), + contract_Id: ContractId::from(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFF), difficulty: Difficulty::Medium(true), }; @@ -95,9 +205,7 @@ impl AdvancedLogging for Contract { ammo: 10, game_id: 10_11_12u64, state: GameState::Playing(1), - contract_Id: ContractId::from( - 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFF, - ), + contract_Id: ContractId::from(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFF), difficulty: Difficulty::Medium(true), }; require(a == b, game_ref); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/call-test-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/call-test-contract/src/main.sw index b3878aa19bf..bf13595f5cb 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/call-test-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/call-test-contract/src/main.sw @@ -78,7 +78,7 @@ impl TestContract for Contract { value + 1 } fn call_external_foo(param: u64, contract_id: b256) -> u64 { - let external_contract = abi(TestContract, contract_id().into()); + let external_contract = abi(TestContract, contract_id); let response = external_contract.foo(param); response + 1 } diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/configurable-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/configurable-contract/src/main.sw index 6bee36141d6..e34d64c453a 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/configurable-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/configurable-contract/src/main.sw @@ -90,10 +90,6 @@ impl ConfigurableContract for Contract { } fn echo_configurables() -> (u8, u16, u32, u64, bool, b256, Colors, [[u32; 2]; 2], str[4], (u8, bool, str[2]), Struct1) { - ( - U8, - U16, U32, U64, BOOL, B256, ENUM, ARRAY, STR_4, TUPLE, - STRUCT_1, - ) + (U8, U16, U32, U64, BOOL, B256, ENUM, ARRAY, STR_4, TUPLE, STRUCT_1) } } diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw index 83fea8c70ba..1bb53d15dc6 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/coverage-contract/src/main.sw @@ -10,6 +10,38 @@ use std::assert::assert; use std::logging::log; use std::b512::B512; +impl AbiEncode for str[10] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[12] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + pub struct U8Struct { i: u8, } diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/liquidity-pool/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/liquidity-pool/src/main.sw index 87094659732..6297bee95c7 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/liquidity-pool/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/liquidity-pool/src/main.sw @@ -4,15 +4,15 @@ contract; use std::constants::ZERO_B256; use std::{ + asset::{ + mint_to_address, + transfer_to_address, + }, call_frames::{ contract_id, msg_asset_id, }, context::msg_amount, - token::{ - mint_to_address, - transfer_to_address, - }, }; abi LiquidityPool { diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/multi-token-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/multi-token-contract/src/main.sw index b4874384a89..f5761113960 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/multi-token-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/multi-token-contract/src/main.sw @@ -2,10 +2,10 @@ contract; use std::{ address::Address, + asset::*, context::balance_of, context::msg_amount, contract_id::ContractId, - token::*, }; use std::constants::ZERO_B256; diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/predicate-vector-types/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/predicate-vector-types/src/main.sw index 00185c0e659..792ad41c1ea 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/predicate-vector-types/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/predicate-vector-types/src/main.sw @@ -25,11 +25,7 @@ fn main( result = result && (u32_vec.get(1).unwrap() == 1u32); - result = result && (vec_in_vec - .get(0) - .unwrap() - .get(1) - .unwrap() == 1u32); + result = result && (vec_in_vec.get(0).unwrap().get(1).unwrap() == 1u32); result = result && (struct_in_vec.get(0).unwrap().a == 0u32); @@ -58,14 +54,15 @@ fn main( let (tuple_a, tuple_b) = vec_in_tuple; result = result && (tuple_a.get(1).unwrap() == 1u32); - result = result && (vec_in_a_vec_in_a_struct_in_a_vec - .get(1) - .unwrap() - .a - .get(1) - .unwrap() - .get(1) - .unwrap() == 10u32); + result = result + && (vec_in_a_vec_in_a_struct_in_a_vec + .get(1) + .unwrap() + .a + .get(1) + .unwrap() + .get(1) + .unwrap() == 10u32); result } diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/revert-error/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/revert-error/src/main.sw index 2aa919fe2b5..f41a64f8d76 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/revert-error/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/revert-error/src/main.sw @@ -1,15 +1,15 @@ contract; use std::{ + asset::{ + transfer_to_address, + }, bytes::Bytes, constants::BASE_ASSET_ID, logging::log, message::{ send_message, }, - token::{ - transfer_to_address, - }, }; use custom_errors::{AccessError, InputError}; diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/script-main-args/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/script-main-args/src/main.sw index 8cc6a229c79..bfc50f74d2d 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/script-main-args/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/script-main-args/src/main.sw @@ -3,6 +3,22 @@ script; use std::logging::log; +impl AbiEncode for str[6] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + fn main(foo: u8) -> u8 { log(__to_str_array("u8 foo")); log(foo); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/script-main-two-args/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/script-main-two-args/src/main.sw index e6925db541c..e057ed27b8c 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/script-main-two-args/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/script-main-two-args/src/main.sw @@ -6,6 +6,22 @@ struct Baz { x: u8, } +impl AbiEncode for str[6] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + fn main(foo: u8, bar: Baz) -> u8 { log(__to_str_array("u8 foo")); log(foo); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/script-with-vector/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/script-with-vector/src/main.sw index de319bf4e8f..3945cc4d848 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/script-with-vector/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/script-with-vector/src/main.sw @@ -2,6 +2,47 @@ script; use std::logging::log; +impl AbiEncode for str[14] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for str[10] { + fn abi_encode(self, ref mut buffer: Buffer) { + let s = from_str_array(self); + + let len = s.len(); + let ptr = s.as_ptr(); + + let mut i = 0; + while i < len { + let byte = ptr.add::(i).read::(); + buffer.push(byte); + i += 1; + } + } +} + +impl AbiEncode for raw_ptr { + fn abi_encode(self, ref mut buffer: Buffer) { + let address = asm(ptr: self) { + ptr: u64 + }; + buffer.push(address); + } +} + fn main(vector: Vec) { log(vector.get(0).unwrap()); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/token_abi/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/token_abi/src/main.sw index a0eec4d0aff..4fab0a48e2c 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/token_abi/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/token_abi/src/main.sw @@ -1,6 +1,6 @@ library; -use std::{address::Address, contract_id::ContractId, token::*}; +use std::{address::Address, asset::*, contract_id::ContractId}; abi Token { fn mint_coins(mint_amount: u64); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/token_contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/token_contract/src/main.sw index dc02e6e71ca..11751fc7204 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/token_contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/token_contract/src/main.sw @@ -1,7 +1,7 @@ // #region token-contract contract; -use std::{context::balance_of, context::msg_amount, token::*}; +use std::{asset::*, context::balance_of, context::msg_amount}; use token_abi::Token; use std::constants::ZERO_B256; diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw index 4b7bd580697..27018143ea5 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-contract/src/main.sw @@ -248,19 +248,15 @@ impl MyContract for Contract { } { let mut exp_vec_in_vec = Vec::new(); - exp_vec_in_vec - .push(vec_from([0, 1, 2])); - exp_vec_in_vec - .push(vec_from([0, 1, 2])); + exp_vec_in_vec.push(vec_from([0, 1, 2])); + exp_vec_in_vec.push(vec_from([0, 1, 2])); require(vec_in_vec == exp_vec_in_vec, "vec_in_vec err"); } { let mut exp_struct_in_vec = Vec::new(); - exp_struct_in_vec - .push(SomeStruct { a: 0u32 }); - exp_struct_in_vec - .push(SomeStruct { a: 1u32 }); + exp_struct_in_vec.push(SomeStruct { a: 0u32 }); + exp_struct_in_vec.push(SomeStruct { a: 1u32 }); require(struct_in_vec == exp_struct_in_vec, "struct_in_vec err"); } @@ -273,10 +269,8 @@ impl MyContract for Contract { } { let mut exp_array_in_vec = Vec::new(); - exp_array_in_vec - .push([0, 1]); - exp_array_in_vec - .push([0, 1]); + exp_array_in_vec.push([0, 1]); + exp_array_in_vec.push([0, 1]); require(array_in_vec == exp_array_in_vec, "array_in_vec err"); } @@ -293,19 +287,15 @@ impl MyContract for Contract { } { let mut exp_enum_in_vec = Vec::new(); - exp_enum_in_vec - .push(SomeEnum::a(0)); - exp_enum_in_vec - .push(SomeEnum::a(1)); + exp_enum_in_vec.push(SomeEnum::a(0)); + exp_enum_in_vec.push(SomeEnum::a(1)); require(enum_in_vec == exp_enum_in_vec, "enum_in_vec err"); } { let mut exp_tuple_in_vec = Vec::new(); - exp_tuple_in_vec - .push((0, 0)); - exp_tuple_in_vec - .push((1, 1)); + exp_tuple_in_vec.push((0, 0)); + exp_tuple_in_vec.push((1, 1)); require(tuple_in_vec == exp_tuple_in_vec, "tuple_in_vec err"); } @@ -320,15 +310,12 @@ impl MyContract for Contract { let mut inner_vec_1 = Vec::new(); let inner_inner_vec_1 = vec_from([0, 1, 2]); - inner_vec_1 - .push(inner_inner_vec_1); + inner_vec_1.push(inner_inner_vec_1); let inner_inner_vec_2 = vec_from([3, 4, 5]); - inner_vec_1 - .push(inner_inner_vec_2); + inner_vec_1.push(inner_inner_vec_2); - exp_vec_in_a_vec_in_a_struct_in_a_vec - .push(SomeStruct { a: inner_vec_1 }); + exp_vec_in_a_vec_in_a_struct_in_a_vec.push(SomeStruct { a: inner_vec_1 }); let mut inner_vec_2 = Vec::new(); diff --git a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw index b6a8d740bfd..1db2f241a64 100644 --- a/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw +++ b/packages/fuel-gauge/test/fixtures/forc-projects/vector-types-script/src/main.sw @@ -231,19 +231,15 @@ fn main( } { let mut exp_vec_in_vec = Vec::new(); - exp_vec_in_vec - .push(vec_from([0, 1, 2])); - exp_vec_in_vec - .push(vec_from([0, 1, 2])); + exp_vec_in_vec.push(vec_from([0, 1, 2])); + exp_vec_in_vec.push(vec_from([0, 1, 2])); require(vec_in_vec == exp_vec_in_vec, "vec_in_vec err"); } { let mut exp_struct_in_vec = Vec::new(); - exp_struct_in_vec - .push(SomeStruct { a: 0u32 }); - exp_struct_in_vec - .push(SomeStruct { a: 1u32 }); + exp_struct_in_vec.push(SomeStruct { a: 0u32 }); + exp_struct_in_vec.push(SomeStruct { a: 1u32 }); require(struct_in_vec == exp_struct_in_vec, "struct_in_vec err"); } @@ -256,10 +252,8 @@ fn main( } { let mut exp_array_in_vec = Vec::new(); - exp_array_in_vec - .push([0, 1]); - exp_array_in_vec - .push([0, 1]); + exp_array_in_vec.push([0, 1]); + exp_array_in_vec.push([0, 1]); require(array_in_vec == exp_array_in_vec, "array_in_vec err"); } @@ -276,19 +270,15 @@ fn main( } { let mut exp_enum_in_vec = Vec::new(); - exp_enum_in_vec - .push(SomeEnum::a(0)); - exp_enum_in_vec - .push(SomeEnum::a(1)); + exp_enum_in_vec.push(SomeEnum::a(0)); + exp_enum_in_vec.push(SomeEnum::a(1)); require(enum_in_vec == exp_enum_in_vec, "enum_in_vec err"); } { let mut exp_tuple_in_vec = Vec::new(); - exp_tuple_in_vec - .push((0, 0)); - exp_tuple_in_vec - .push((1, 1)); + exp_tuple_in_vec.push((0, 0)); + exp_tuple_in_vec.push((1, 1)); require(tuple_in_vec == exp_tuple_in_vec, "tuple_in_vec err"); } @@ -303,28 +293,22 @@ fn main( let mut inner_vec_1 = Vec::new(); let inner_inner_vec_1 = vec_from([0, 1, 2]); - inner_vec_1 - .push(inner_inner_vec_1); + inner_vec_1.push(inner_inner_vec_1); let inner_inner_vec_2 = vec_from([3, 4, 5]); - inner_vec_1 - .push(inner_inner_vec_2); + inner_vec_1.push(inner_inner_vec_2); - exp_vec_in_a_vec_in_a_struct_in_a_vec - .push(SomeStruct { a: inner_vec_1 }); + exp_vec_in_a_vec_in_a_struct_in_a_vec.push(SomeStruct { a: inner_vec_1 }); let mut inner_vec_2 = Vec::new(); let inner_inner_vec_3 = vec_from([6, 7, 8]); - inner_vec_2 - .push(inner_inner_vec_3); + inner_vec_2.push(inner_inner_vec_3); let inner_inner_vec_4 = vec_from([9, 10, 11]); - inner_vec_2 - .push(inner_inner_vec_4); + inner_vec_2.push(inner_inner_vec_4); - exp_vec_in_a_vec_in_a_struct_in_a_vec - .push(SomeStruct { a: inner_vec_2 }); + exp_vec_in_a_vec_in_a_struct_in_a_vec.push(SomeStruct { a: inner_vec_2 }); require( vec_in_a_vec_in_a_struct_in_a_vec == exp_vec_in_a_vec_in_a_struct_in_a_vec, diff --git a/packages/script/test/fixtures/forc-projects/call-test-script/src/main.sw b/packages/script/test/fixtures/forc-projects/call-test-script/src/main.sw index e7131afba44..421880956b4 100644 --- a/packages/script/test/fixtures/forc-projects/call-test-script/src/main.sw +++ b/packages/script/test/fixtures/forc-projects/call-test-script/src/main.sw @@ -2,7 +2,7 @@ script; fn log(v: T) { asm(r1: v) { - log r1 zero zero zero; + log r1 zero zero zero; } } diff --git a/packages/versions/src/lib/getBuiltinVersions.ts b/packages/versions/src/lib/getBuiltinVersions.ts index 209c24be200..3543042d917 100644 --- a/packages/versions/src/lib/getBuiltinVersions.ts +++ b/packages/versions/src/lib/getBuiltinVersions.ts @@ -1,6 +1,6 @@ export function getBuiltinVersions() { return { - FORC: '0.48.1', + FORC: '0.49.1', FUEL_CORE: '0.22.0', FUELS: '0.71.1', }; diff --git a/scripts/forc-check.sh b/scripts/forc-check.sh index 6e808106be3..3fccdd8f0b9 100755 --- a/scripts/forc-check.sh +++ b/scripts/forc-check.sh @@ -1,32 +1,36 @@ #!/bin/bash -forc_projects=$(find . -type f -name "Forc.toml") main_dir=$(pwd) +forc_tomls=$(find . -type f -name "Forc.toml") forc_fmt=$(realpath ./packages/forc/forc-binaries/forc-fmt) +expected_authors="authors = [\"Fuel Labs \"]" ERRORED=0 RED='\033[0;31m' NC='\033[0m' # No Color -authors="authors = [\"Fuel Labs \"]" -for i in $forc_projects; do - cd "${i/Forc.toml/''}" || exit +for forc_toml in $forc_tomls; do + + # cd into the respective forc project + cd ${forc_toml/Forc.toml/''} + + # validate forc formatting eval "$forc_fmt" --check if [ $? = "1" ]; then ERRORED=1 fi - # do authors checks only on projects, not on workspaces - if [ "$(head -n 1 Forc.toml)" != '[project]' ]; then - cd "$main_dir" || exit - continue + # validate TOML `authors` (for projects only) + if [ "$(head -n 1 Forc.toml)" == "[project]" ]; then + authors=$(grep "authors =" Forc.toml) + if [[ "$authors" != "$expected_authors" ]]; then + ERROR=1 + echo -e "authors field should be: ${RED}$expected_authors] ${NC} but is ${RED}$authors ${NC}" + fi fi - if [ "$authors" != "$(grep "authors =" Forc.toml)" ]; then - echo -e authors field should be: $RED"authors = [\"Fuel Labs \"]"$NC but is $RED"$authors"$NC - ERRORED=1 - fi - cd "$main_dir" || exit + # back to main dir + cd $main_dir done exit $ERRORED diff --git a/scripts/forc-format.sh b/scripts/forc-format.sh index 85f1880220a..6c45d1b3667 100755 --- a/scripts/forc-format.sh +++ b/scripts/forc-format.sh @@ -1,26 +1,27 @@ #!/bin/bash -forc_projects=$(find . -type f -name "Forc.toml") main_dir=$(pwd) +forc_tomls=$(find . -type f -name "Forc.toml") forc_fmt=$(realpath ./packages/forc/forc-binaries/forc-fmt) -authors="authors = [\"Fuel Labs \"]" +expected_authors="authors = [\"Fuel Labs \"]" -for i in $forc_projects; do - cd "${i/Forc.toml/''}" || exit +for forc_toml in $forc_tomls; do - eval "$forc_fmt" + # cd into the respective forc project + cd ${forc_toml/Forc.toml/''} - # format authors field only on projects, not on workspaces - if [ "$(head -n 1 Forc.toml)" != '[project]' ]; then - cd "$main_dir" || exit - continue - fi + # fix forc formatting + eval "$forc_fmt" - if [ "$(grep "authors =" Forc.toml)" = "" ]; then - sed -i "1 a $authors" Forc.toml - else - sed -i -E "s/authors =.*/${authors}/g" Forc.toml + # fix TOML `authors` (for projects only) + if [ "$(head -n 1 Forc.toml)" == "[project]" ]; then + authors=$(grep "authors =" Forc.toml) + if [[ "$authors" != "$expected_authors" ]]; then + sed -i.bkp "s/authors =.*/${expected_authors}/g" Forc.toml + rm "Forc.toml.bkp" + fi fi - cd "$main_dir" || exit + # back to main dir + cd $main_dir done