diff --git a/.github/actions/install-cairo/action.yml b/.github/actions/install-cairo/action.yml index aec329067..1fc97dcc5 100644 --- a/.github/actions/install-cairo/action.yml +++ b/.github/actions/install-cairo/action.yml @@ -4,11 +4,11 @@ description: A composite action that installs cairo and scarb binaries inputs: cairo_version: description: Cairo release version - default: "v2.1.0" + default: "v2.2.0" required: false scarb_version: description: Scarb release version - default: "v0.6.0" + default: "v0.7.0" required: false runs: diff --git a/contracts/Scarb.toml b/contracts/Scarb.toml index 2d2a6323c..8dad26bb7 100644 --- a/contracts/Scarb.toml +++ b/contracts/Scarb.toml @@ -12,7 +12,7 @@ sierra = "cairo-compile . -r" # Note: currently testing doesn't work with dependencies [dependencies] starknet = ">=1.0.0" -openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", rev = "495ed8a" } # latest cairo-2 branch +openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", tag = "v0.7.0-rc.0" } [lib] diff --git a/contracts/src/libraries/token/erc677.cairo b/contracts/src/libraries/token/erc677.cairo index c0f390218..630edf093 100644 --- a/contracts/src/libraries/token/erc677.cairo +++ b/contracts/src/libraries/token/erc677.cairo @@ -30,7 +30,7 @@ mod ERC677 { #[event] #[derive(Drop, starknet::Event)] enum Event { - Transfer: Transfer, + Transfer: Transfer, } #[derive(Drop, starknet::Event)] @@ -51,7 +51,7 @@ mod ERC677 { self .emit( Event::Transfer( - Transfer { from: sender, to: to, value: value, data: data.clone(), } + Transfer { from: sender, to: to, value: value, data: data.clone(), } ) ); diff --git a/contracts/src/multisig.cairo b/contracts/src/multisig.cairo index 01c32a942..3aae1181f 100644 --- a/contracts/src/multisig.cairo +++ b/contracts/src/multisig.cairo @@ -4,7 +4,7 @@ use starknet::ContractAddress; use starknet::class_hash::ClassHash; fn assert_unique_values< - T, impl TCopy: Copy, impl TDrop: Drop, impl TPartialEq: PartialEq, + T, impl TCopy: Copy, impl TDrop: Drop, impl TPartialEq: PartialEq, >( a: @Array:: ) { @@ -13,7 +13,7 @@ fn assert_unique_values< } fn _assert_unique_values_loop< - T, impl TCopy: Copy, impl TDrop: Drop, impl TPartialEq: PartialEq, + T, impl TCopy: Copy, impl TDrop: Drop, impl TPartialEq: PartialEq, >( a: @Array::, len: usize, j: usize, k: usize ) { @@ -84,6 +84,7 @@ mod Multisig { use starknet::Felt252TryIntoContractAddress; use starknet::StorageBaseAddress; use starknet::SyscallResult; + use starknet::SyscallResultTrait; use starknet::call_contract_syscall; use starknet::get_caller_address; use starknet::get_contract_address; @@ -169,7 +170,7 @@ mod Multisig { self._is_signer.read(address) } - fn get_signers_len(self: @ContractState, ) -> usize { + fn get_signers_len(self: @ContractState,) -> usize { self._signers_len.read() } @@ -180,11 +181,11 @@ mod Multisig { signers } - fn get_threshold(self: @ContractState, ) -> usize { + fn get_threshold(self: @ContractState,) -> usize { self._threshold.read() } - fn get_transactions_len(self: @ContractState, ) -> u128 { + fn get_transactions_len(self: @ContractState,) -> u128 { self._next_nonce.read() } @@ -207,7 +208,7 @@ mod Multisig { (transaction, calldata) } - fn type_and_version(self: @ContractState, ) -> felt252 { + fn type_and_version(self: @ContractState,) -> felt252 { 'Multisig 1.0.0' } diff --git a/contracts/src/ocr2/mocks/mock_aggregator.cairo b/contracts/src/ocr2/mocks/mock_aggregator.cairo index e7e6cd622..4a8ab2038 100644 --- a/contracts/src/ocr2/mocks/mock_aggregator.cairo +++ b/contracts/src/ocr2/mocks/mock_aggregator.cairo @@ -16,9 +16,12 @@ mod MockAggregator { use traits::Into; use chainlink::ocr2::aggregator::IAggregator; - use chainlink::ocr2::aggregator::Aggregator::{Transmission, NewTransmission, Event}; + use chainlink::ocr2::aggregator::Aggregator::{Transmission, NewTransmission}; use chainlink::ocr2::aggregator::Round; + #[event] + use chainlink::ocr2::aggregator::Aggregator::Event; + #[storage] struct Storage { _transmissions: LegacyMap, diff --git a/contracts/src/tests/test_access_controller.cairo b/contracts/src/tests/test_access_controller.cairo index f9d270b50..862dc5248 100644 --- a/contracts/src/tests/test_access_controller.cairo +++ b/contracts/src/tests/test_access_controller.cairo @@ -29,7 +29,7 @@ fn setup() -> ContractAddress { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_upgrade_not_owner() { let sender = setup(); let mut state = STATE(); @@ -43,7 +43,7 @@ fn test_access_control() { let owner = setup(); // Deploy access controller let calldata = array![owner.into(), // owner - ]; + ]; let (accessControllerAddr, _) = deploy_syscall( AccessController::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false ) diff --git a/contracts/src/tests/test_aggregator.cairo b/contracts/src/tests/test_aggregator.cairo index db6eb6c70..b004bd9fa 100644 --- a/contracts/src/tests/test_aggregator.cairo +++ b/contracts/src/tests/test_aggregator.cairo @@ -81,7 +81,7 @@ fn setup() -> ( // deploy billing access controller let calldata = array![acc1.into(), // owner = acc1; - ]; + ]; let (billingAccessControllerAddr, _) = deploy_syscall( AccessController::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false ) @@ -93,7 +93,7 @@ fn setup() -> ( // deploy link token contract let calldata = array![acc1.into(), // minter = acc1; acc1.into(), // owner = acc1; - ]; + ]; let (linkTokenAddr, _) = deploy_syscall( LinkToken::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false ) @@ -151,7 +151,7 @@ fn test_access_control() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_upgrade_non_owner() { let sender = setup(); let mut state = STATE(); @@ -162,7 +162,7 @@ fn test_upgrade_non_owner() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_set_billing_access_controller_not_owner() { let (owner, acc2, billingAccessController, _) = setup(); let mut state = STATE(); @@ -177,7 +177,7 @@ fn test_set_billing_access_controller_not_owner() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('caller does not have access', ))] +#[should_panic(expected: ('caller does not have access',))] fn test_set_billing_config_no_access() { let (owner, acc2, billingAccessController, _) = setup(); let mut state = STATE(); @@ -278,7 +278,7 @@ fn test_set_billing_config_as_acc_with_access() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_set_payees_caller_not_owner() { let (owner, acc2, _, _) = setup(); let mut state = STATE(); @@ -286,7 +286,7 @@ fn test_set_payees_caller_not_owner() { ref state, owner, contract_address_const::<777>(), 0, 100, acc2, 8, 123 ); - let payees = array![PayeeConfig { transmitter: acc2, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: acc2, payee: acc2, },]; // set payee should revert if caller is not owner set_caller_address(acc2); @@ -302,7 +302,7 @@ fn test_set_single_payee() { ref state, owner, contract_address_const::<777>(), 0, 100, acc2, 8, 123 ); - let payees = array![PayeeConfig { transmitter: acc2, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: acc2, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); @@ -318,11 +318,8 @@ fn test_set_multiple_payees() { ); let payees = array![ - PayeeConfig { - transmitter: acc2, payee: acc2, - }, PayeeConfig { - transmitter: owner, payee: owner, - }, + PayeeConfig { transmitter: acc2, payee: acc2, }, + PayeeConfig { transmitter: owner, payee: owner, }, ]; set_caller_address(owner); @@ -331,7 +328,7 @@ fn test_set_multiple_payees() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('only current payee can update', ))] +#[should_panic(expected: ('only current payee can update',))] fn test_transfer_payeeship_caller_not_payee() { let (owner, acc2, _, _) = setup(); let mut state = STATE(); @@ -340,7 +337,7 @@ fn test_transfer_payeeship_caller_not_payee() { ); let transmitter = contract_address_const::<123>(); - let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); @@ -349,7 +346,7 @@ fn test_transfer_payeeship_caller_not_payee() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('cannot transfer to self', ))] +#[should_panic(expected: ('cannot transfer to self',))] fn test_transfer_payeeship_to_self() { let (owner, acc2, _, _) = setup(); let mut state = STATE(); @@ -358,7 +355,7 @@ fn test_transfer_payeeship_to_self() { ); let transmitter = contract_address_const::<123>(); - let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); @@ -368,7 +365,7 @@ fn test_transfer_payeeship_to_self() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('only proposed payee can accept', ))] +#[should_panic(expected: ('only proposed payee can accept',))] fn test_accept_payeeship_caller_not_proposed_payee() { let (owner, acc2, _, _) = setup(); let mut state = STATE(); @@ -377,7 +374,7 @@ fn test_accept_payeeship_caller_not_proposed_payee() { ); let transmitter = contract_address_const::<123>(); - let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); @@ -396,7 +393,7 @@ fn test_transfer_and_accept_payeeship() { ); let transmitter = contract_address_const::<123>(); - let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, }, ]; + let payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); @@ -422,7 +419,7 @@ fn test_owed_payment_no_rounds() { ); let transmitter = contract_address_const::<123>(); - let mut payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, }, ]; + let mut payees = array![PayeeConfig { transmitter: transmitter, payee: acc2, },]; set_caller_address(owner); PayeeManagementImpl::set_payees(ref state, payees); diff --git a/contracts/src/tests/test_aggregator_proxy.cairo b/contracts/src/tests/test_aggregator_proxy.cairo index 4ce1087e9..6f1462691 100644 --- a/contracts/src/tests/test_aggregator_proxy.cairo +++ b/contracts/src/tests/test_aggregator_proxy.cairo @@ -65,7 +65,7 @@ fn test_ownable() { let (account, mockAggregatorAddr, _, _, _) = setup(); // Deploy aggregator proxy let calldata = array![account.into(), // owner = account - mockAggregatorAddr.into(), ]; + mockAggregatorAddr.into(),]; let (aggregatorProxyAddr, _) = deploy_syscall( AggregatorProxy::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false ) @@ -80,7 +80,7 @@ fn test_access_control() { let (account, mockAggregatorAddr, _, _, _) = setup(); // Deploy aggregator proxy let calldata = array![account.into(), // owner = account - mockAggregatorAddr.into(), ]; + mockAggregatorAddr.into(),]; let (aggregatorProxyAddr, _) = deploy_syscall( AggregatorProxy::TEST_CLASS_HASH.try_into().unwrap(), 0, calldata.span(), false ) @@ -91,7 +91,7 @@ fn test_access_control() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_upgrade_non_owner() { let (_, _, _, _, _) = setup(); let mut state = STATE(); @@ -119,7 +119,7 @@ fn test_query_latest_round_data() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('user does not have read access', ))] +#[should_panic(expected: ('user does not have read access',))] fn test_query_latest_round_data_without_access() { let (owner, mockAggregatorAddr, mockAggregator, _, _) = setup(); let mut state = STATE(); diff --git a/contracts/src/tests/test_erc677.cairo b/contracts/src/tests/test_erc677.cairo index 3b64e0f65..77bef112d 100644 --- a/contracts/src/tests/test_erc677.cairo +++ b/contracts/src/tests/test_erc677.cairo @@ -63,7 +63,7 @@ fn transfer_and_call(receiver: ContractAddress) { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('ERC20: transfer to 0', ))] +#[should_panic(expected: ('ERC20: transfer to 0',))] fn test_to_zero_address() { setup(); transfer_and_call(Zeroable::zero()); @@ -82,7 +82,7 @@ fn test_valid_transfer_and_call() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('ENTRYPOINT_NOT_FOUND', ))] +#[should_panic(expected: ('ENTRYPOINT_NOT_FOUND',))] fn test_invalid_receiver_supports_interface_true() { setup(); let (receiver_address, receiver) = setup_invalid_receiver(); @@ -104,7 +104,7 @@ fn test_invalid_receiver_supports_interface_false() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('CONTRACT_NOT_DEPLOYED', ))] +#[should_panic(expected: ('CONTRACT_NOT_DEPLOYED',))] fn test_nonexistent_receiver() { setup(); diff --git a/contracts/src/tests/test_link_token.cairo b/contracts/src/tests/test_link_token.cairo index 267ebf1dc..111d4d951 100644 --- a/contracts/src/tests/test_link_token.cairo +++ b/contracts/src/tests/test_link_token.cairo @@ -48,7 +48,7 @@ fn test_ownable() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('minter is 0', ))] +#[should_panic(expected: ('minter is 0',))] fn test_constructor_zero_address() { let sender = setup(); let mut state = STATE(); @@ -89,7 +89,7 @@ fn test_permissioned_mint_from_minter() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('only minter', ))] +#[should_panic(expected: ('only minter',))] fn test_permissioned_mint_from_nonminter() { let sender = setup(); let mut state = STATE(); @@ -103,7 +103,7 @@ fn test_permissioned_mint_from_nonminter() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('u256_sub Overflow', ))] +#[should_panic(expected: ('u256_sub Overflow',))] fn test_permissioned_burn_from_minter() { let zero = 0; let sender = setup(); @@ -132,7 +132,7 @@ fn test_permissioned_burn_from_minter() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('only minter', ))] +#[should_panic(expected: ('only minter',))] fn test_permissioned_burn_from_nonminter() { let sender = setup(); let mut state = STATE(); @@ -146,7 +146,7 @@ fn test_permissioned_burn_from_nonminter() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Ownable: caller is not owner', ))] +#[should_panic(expected: ('Ownable: caller is not owner',))] fn test_upgrade_non_owner() { let sender = setup(); let mut state = STATE(); diff --git a/contracts/src/tests/test_multisig.cairo b/contracts/src/tests/test_multisig.cairo index d8b64c3a3..179dd3472 100644 --- a/contracts/src/tests/test_multisig.cairo +++ b/contracts/src/tests/test_multisig.cairo @@ -282,7 +282,7 @@ fn test_execute_confirmation_below_threshold() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('only multisig allowed', ))] +#[should_panic(expected: ('only multisig allowed',))] fn test_upgrade_not_multisig() { let mut state = STATE(); let account = contract_address_const::<777>(); @@ -325,7 +325,7 @@ fn test_execute() { #[test] #[available_gas(8000000)] -#[should_panic(expected: ('invalid signer', ))] +#[should_panic(expected: ('invalid signer',))] fn test_execute_not_signer() { let mut state = STATE(); let signer1 = contract_address_const::<1>(); @@ -349,7 +349,7 @@ fn test_execute_not_signer() { #[test] #[available_gas(8000000)] -#[should_panic(expected: ('transaction invalid', ))] +#[should_panic(expected: ('transaction invalid',))] fn test_execute_after_set_signers() { let mut state = STATE(); let contract_address = contract_address_const::<100>(); @@ -379,7 +379,7 @@ fn test_execute_after_set_signers() { #[test] #[available_gas(8000000)] -#[should_panic(expected: ('transaction invalid', ))] +#[should_panic(expected: ('transaction invalid',))] fn test_execute_after_set_signers_and_threshold() { let mut state = STATE(); let contract_address = contract_address_const::<100>(); @@ -409,7 +409,7 @@ fn test_execute_after_set_signers_and_threshold() { #[test] #[available_gas(8000000)] -#[should_panic(expected: ('transaction invalid', ))] +#[should_panic(expected: ('transaction invalid',))] fn test_execute_after_set_threshold() { let mut state = STATE(); let contract_address = contract_address_const::<100>(); diff --git a/contracts/src/tests/test_sequencer_uptime_feed.cairo b/contracts/src/tests/test_sequencer_uptime_feed.cairo index 1292e394e..558f40b2b 100644 --- a/contracts/src/tests/test_sequencer_uptime_feed.cairo +++ b/contracts/src/tests/test_sequencer_uptime_feed.cairo @@ -83,7 +83,7 @@ fn test_set_l1_sender() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('user does not have read access', ))] +#[should_panic(expected: ('user does not have read access',))] fn test_latest_round_data_no_access() { let (owner, sequencerFeedAddr, _) = setup(); let mut proxy = PROXY(); @@ -93,7 +93,7 @@ fn test_latest_round_data_no_access() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('user does not have read access', ))] +#[should_panic(expected: ('user does not have read access',))] fn test_aggregator_proxy_response() { let (owner, sequencerFeedAddr, _) = setup(); let mut proxy = PROXY(); diff --git a/contracts/src/tests/test_upgradeable.cairo b/contracts/src/tests/test_upgradeable.cairo index 4788d74b0..3da6b6991 100644 --- a/contracts/src/tests/test_upgradeable.cairo +++ b/contracts/src/tests/test_upgradeable.cairo @@ -27,7 +27,7 @@ fn test_upgrade() { #[test] #[available_gas(2000000)] -#[should_panic(expected: ('Class hash cannot be zero', ))] +#[should_panic(expected: ('Class hash cannot be zero',))] fn test_upgrade_zero_hash() { let sender = setup(); diff --git a/contracts/src/token/link_token.cairo b/contracts/src/token/link_token.cairo index eb534871b..6134de169 100644 --- a/contracts/src/token/link_token.cairo +++ b/contracts/src/token/link_token.cairo @@ -28,7 +28,7 @@ mod LinkToken { #[storage] struct Storage { - _minter: ContractAddress, + _minter: ContractAddress, } // diff --git a/contracts/src/token/mock/valid_erc667_receiver.cairo b/contracts/src/token/mock/valid_erc667_receiver.cairo index fce48fe5c..33e72c129 100644 --- a/contracts/src/token/mock/valid_erc667_receiver.cairo +++ b/contracts/src/token/mock/valid_erc667_receiver.cairo @@ -12,7 +12,7 @@ mod ValidReceiver { #[storage] struct Storage { - _sender: ContractAddress, + _sender: ContractAddress, } #[constructor] diff --git a/examples/contracts/aggregator-consumer/src/ocr2/consumer.cairo b/examples/contracts/aggregator-consumer/src/ocr2/consumer.cairo index 3da49258e..3b3916316 100644 --- a/examples/contracts/aggregator-consumer/src/ocr2/consumer.cairo +++ b/examples/contracts/aggregator-consumer/src/ocr2/consumer.cairo @@ -10,7 +10,7 @@ mod AggregatorConsumer { #[storage] struct Storage { - _ocr_address: ContractAddress, + _ocr_address: ContractAddress, } #[constructor] diff --git a/examples/contracts/aggregator-consumer/src/ocr2/price_consumer_with_sequencer.cairo b/examples/contracts/aggregator-consumer/src/ocr2/price_consumer_with_sequencer.cairo index 2e4536cf7..f279d9985 100644 --- a/examples/contracts/aggregator-consumer/src/ocr2/price_consumer_with_sequencer.cairo +++ b/examples/contracts/aggregator-consumer/src/ocr2/price_consumer_with_sequencer.cairo @@ -35,16 +35,14 @@ mod AggregatorPriceConsumerWithSequencer { #[extrnal(v0)] fn get_latest_price(self: @ContractState) -> u128 { assert_sequencer_healthy(self); - let round = IAggregatorDispatcher { - contract_address: self._aggregator_address.read() - }.latest_round_data(); + let round = IAggregatorDispatcher { contract_address: self._aggregator_address.read() } + .latest_round_data(); round.answer } fn assert_sequencer_healthy(self: @ContractState) { - let round = IAggregatorDispatcher { - contract_address: self._uptime_feed_address.read() - }.latest_round_data(); + let round = IAggregatorDispatcher { contract_address: self._uptime_feed_address.read() } + .latest_round_data(); let timestamp = starknet::info::get_block_info().unbox().block_timestamp; // After 60 sec the report is considered stale diff --git a/examples/contracts/proxy-consumer/src/proxy_consumer.cairo b/examples/contracts/proxy-consumer/src/proxy_consumer.cairo index 1ea30585b..5be522cd5 100644 --- a/examples/contracts/proxy-consumer/src/proxy_consumer.cairo +++ b/examples/contracts/proxy-consumer/src/proxy_consumer.cairo @@ -34,9 +34,8 @@ mod ProxyConsumer { #[external(v0)] fn get_latest_round_data(ref self: ContractState) -> Round { - let round = IAggregatorDispatcher { - contract_address: self._proxy_address.read() - }.latest_round_data(); + let round = IAggregatorDispatcher { contract_address: self._proxy_address.read() } + .latest_round_data(); self._feed_data.write(round); round } diff --git a/ops/devnet/environment.go b/ops/devnet/environment.go index c2f7f00cf..7e6654147 100644 --- a/ops/devnet/environment.go +++ b/ops/devnet/environment.go @@ -71,7 +71,7 @@ func defaultProps() map[string]any { "starknet-dev": map[string]any{ "image": map[string]any{ "image": "shardlabs/starknet-devnet", - "version": "v0.6.0a0", + "version": "v0.6.0", }, "resources": map[string]any{ "requests": map[string]any{ diff --git a/ops/scripts/devnet-hardhat.sh b/ops/scripts/devnet-hardhat.sh index f51be53e7..39ae970ba 100755 --- a/ops/scripts/devnet-hardhat.sh +++ b/ops/scripts/devnet-hardhat.sh @@ -31,10 +31,10 @@ echo "Checking CPU structure..." if [[ $cpu_struct == *"arm"* ]] then echo "Starting arm devnet container..." - container_version="0.5.5-arm" + container_version="0.6.0-arm" else echo "Starting i386 devnet container..." - container_version="0.5.5" + container_version="0.6.0" fi echo "Starting starknet-devnet: ${startup_args}" diff --git a/vendor/cairo b/vendor/cairo index 0f77760aa..ad5570f0f 160000 --- a/vendor/cairo +++ b/vendor/cairo @@ -1 +1 @@ -Subproject commit 0f77760aa2e7750b2dda7e708403584e3040b6ad +Subproject commit ad5570f0f25dbbffd9daedf02df140ff9e7291e4 diff --git a/vendor/scarb b/vendor/scarb index 532d8e349..58cc88efb 160000 --- a/vendor/scarb +++ b/vendor/scarb @@ -1 +1 @@ -Subproject commit 532d8e34955e41553e35aaa1b1f7c445b7ddb844 +Subproject commit 58cc88efb4f8b9923735931e47d72912457ec321 diff --git a/yarn.lock b/yarn.lock index 2e863f84b..3aea101dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -274,11 +274,11 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/runtime@^7.15.4": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + version "7.22.11" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" + integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/runtime@^7.20.1", "@babel/runtime@^7.5.5": version "7.22.10" @@ -1500,9 +1500,9 @@ integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== "@noble/hashes@~1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" - integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== "@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" @@ -1939,9 +1939,9 @@ tslib "^1.9.3" "@shardlabs/starknet-hardhat-plugin@^0.8.0-alpha.0", "@shardlabs/starknet-hardhat-plugin@^0.8.0-alpha.2": - version "0.8.0-alpha.3" - resolved "https://registry.yarnpkg.com/@shardlabs/starknet-hardhat-plugin/-/starknet-hardhat-plugin-0.8.0-alpha.3.tgz#dc7528d8a385d9bfec560a0d98e0ee246885a58c" - integrity sha512-rVVzR7yNe4q9Z7VBJLSbHlnTCYS6/wH/HlpIAajBsDzB1sKh4GUyPctTHMkLKCA7Ke4lf3Kryff1myxGXPsnNg== + version "0.8.0-alpha.4" + resolved "https://registry.yarnpkg.com/@shardlabs/starknet-hardhat-plugin/-/starknet-hardhat-plugin-0.8.0-alpha.4.tgz#7ba13736cf0abf0ab296eec4550603e38659eb46" + integrity sha512-RlhyXWfLu4CfLR83DcmJHKB5e1VB+t6pF5MVyQgkapSEVScMoBwDaNQJZzM+4nDViAm2/MqXib/gGM5HIW8+0w== dependencies: "@iarna/toml" "^2.2.5" "@nomiclabs/hardhat-docker" "^2.0.2" @@ -1951,7 +1951,7 @@ form-data "^4.0.0" glob "^10.0.0" shelljs "^0.8.5" - starknet "^4.22.0" + starknet "~5.19.3" "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2241,7 +2241,7 @@ abbrev@1.0.x: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== -abi-wan-kanabi@^1.0.1, abi-wan-kanabi@^1.0.2: +abi-wan-kanabi@^1.0.1, abi-wan-kanabi@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abi-wan-kanabi/-/abi-wan-kanabi-1.0.3.tgz#0d8607f2a2ccb2151a69debea1c3bb68b76c5aa2" integrity sha512-Xwva0AnhXx/IVlzo3/kwkI7Oa7ZX7codtcSn+Gmoa2PmjGPF/0jeVud9puasIPtB7V50+uBdUj4Mh3iATqtBvg== @@ -2491,9 +2491,9 @@ available-typed-arrays@^1.0.5: integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== axios-retry@^3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.5.1.tgz#d902f69fe1b2a71902e29605318f887bef0981c6" - integrity sha512-mQRJ4IyAUnYig14BQ4MnnNHHuH1cNH7NW4JxEUD6mNJwK6pwOY66wKLCwZ6Y0o3POpfStalqRC+J4+Hnn6Om7w== + version "3.6.0" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.6.0.tgz#3bf6edbce42e526a3f7ac70b1891b645adb4c301" + integrity sha512-jtH4qWTKZ2a17dH6tjq52Y1ssNV0lKge6/Z9Lw67s9Wt01nGTg4hg7/LJBGYfDci44NTANJQlCPHPOT/TSFm9w== dependencies: "@babel/runtime" "^7.15.4" is-retry-allowed "^2.2.0" @@ -4790,9 +4790,9 @@ istanbul-reports@^3.1.3: istanbul-lib-report "^3.0.0" jackspeak@^2.0.3: - version "2.2.2" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.2.tgz#707c62733924b8dc2a0a629dc6248577788b5385" - integrity sha512-mgNtVv4vUuaKA97yxUHoA3+FkuhtxkjdXEWOyB/N76fjy0FjezEt34oy3epBtvCvS+7DyKwqCFWx/oJLV5+kCg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.0.tgz#aa228a94de830f31d4e4f0184427ce91c4ff1493" + integrity sha512-uKmsITSsF4rUWQHzqaRUuyAir3fZfW3f202Ee34lz/gZCi970CPZwyQXLGNgWJvvZbvFyzeyGq0+4fcG/mBKZg== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -5429,9 +5429,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== lru_map@^0.3.3: version "0.3.3" @@ -5618,9 +5618,9 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" - integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== + version "7.0.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" + integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== mixme@^0.5.1: version "0.5.9" @@ -5800,7 +5800,14 @@ node-environment-flags@1.0.6: object.getownpropertydescriptors "^2.0.3" semver "^5.7.0" -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.6: +node-fetch@^2.6.0, node-fetch@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.12, node-fetch@^2.6.6: version "2.6.12" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== @@ -6423,11 +6430,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -regenerator-runtime@^0.13.11: - version "0.13.11" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" @@ -6751,9 +6753,9 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-concat@^1.0.0: version "1.0.1" @@ -6935,30 +6937,13 @@ starknet@^3.5.1: ts-custom-error "^3.2.0" url-join "^4.0.1" -starknet@^4.22.0: - version "4.22.0" - resolved "https://registry.yarnpkg.com/starknet/-/starknet-4.22.0.tgz#8d0c628e2a8e868ee9b4757afe89f07b05ec55ff" - integrity sha512-jC9Taxb6a/ht9zmS1LU/DSLfwJKpgCJnE9AktVksc5SE/+jQMpqxsq6fm7PRiqupjiqRC1DOS8N47cj+KaGv4Q== - dependencies: - "@ethersproject/bytes" "^5.6.1" - bn.js "^5.2.1" - elliptic "^6.5.4" - ethereum-cryptography "^1.0.3" - hash.js "^1.1.7" - isomorphic-fetch "^3.0.0" - json-bigint "^1.0.0" - minimalistic-assert "^1.0.1" - pako "^2.0.4" - ts-custom-error "^3.3.1" - url-join "^4.0.1" - -starknet@^5.17.0: - version "5.19.1" - resolved "https://registry.yarnpkg.com/starknet/-/starknet-5.19.1.tgz#84f1d4e82c5badc5d76d4d954fec3d1ec1883bdb" - integrity sha512-UYQnMxTbFSr+8D8s60rnB6pw80vlQCUVAJ00uJ4qFRMkhykT1IQJfhx5AUKiYgoWhDVLYlbY9LpEPwQ2rkxhsw== +starknet@^5.17.0, starknet@~5.19.3: + version "5.19.3" + resolved "https://registry.yarnpkg.com/starknet/-/starknet-5.19.3.tgz#fa43ed55b1b33718b900eaf67b1ae90e32226303" + integrity sha512-lftyE2mTnkguma3dTnIW2miTjLX25Snu7pBWpOB2LjFr9ja1nfXPITOjAkDHeOFwv1jRXLlGCAxxGbl3lxgbFQ== dependencies: "@noble/curves" "~1.0.0" - abi-wan-kanabi "^1.0.2" + abi-wan-kanabi "^1.0.3" isomorphic-fetch "^3.0.0" lossless-json "^2.0.8" micro-starknet "~0.2.1" @@ -7327,7 +7312,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-custom-error@^3.2.0, ts-custom-error@^3.3.1: +ts-custom-error@^3.2.0: version "3.3.1" resolved "https://registry.yarnpkg.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz#8bd3c8fc6b8dc8e1cb329267c45200f1e17a65d1" integrity sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==