diff --git a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/constants.cairo b/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/constants.cairo index 16164bf1702..20bde887081 100644 --- a/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/constants.cairo +++ b/crates/apollo_starknet_os_program/src/cairo/starkware/starknet/core/os/constants.cairo @@ -79,7 +79,7 @@ const MUL_MOD_GAS_COST = 604; const ECDSA_GAS_COST = 10561; const MEMORY_HOLE_GAS_COST = 10; -const DEFAULT_INITIAL_GAS_COST = 100000000 * STEP_GAS_COST; +const DEFAULT_INITIAL_GAS_COST = 10000000000; const VALIDATE_MAX_SIERRA_GAS = 100000000; const EXECUTE_MAX_SIERRA_GAS = 1000000000; const DEFAULT_INITIAL_GAS_COST_NO_L2 = VALIDATE_MAX_SIERRA_GAS + EXECUTE_MAX_SIERRA_GAS; @@ -88,46 +88,43 @@ const DEFAULT_INITIAL_GAS_COST_NO_L2 = VALIDATE_MAX_SIERRA_GAS + EXECUTE_MAX_SIE // The initial budget at an entry point. This needs to be high enough to cover the initial get_gas. // The entry point may refund whatever remains from the initial budget. -const ENTRY_POINT_INITIAL_BUDGET = 100 * STEP_GAS_COST; +const ENTRY_POINT_INITIAL_BUDGET = 10000; // The gas cost of each syscall libfunc (this value is hard-coded by the compiler). // This needs to be high enough to cover OS costs in the case of failure due to out of gas. -const SYSCALL_BASE_GAS_COST = 100 * STEP_GAS_COST; +const SYSCALL_BASE_GAS_COST = 10000; // Syscall gas costs. -const CALL_CONTRACT_GAS_COST = 18 * RANGE_CHECK_GAS_COST + 903 * STEP_GAS_COST; -const DEPLOY_GAS_COST = 7 * PEDERSEN_GAS_COST + 21 * RANGE_CHECK_GAS_COST + 1173 * STEP_GAS_COST; -const DEPLOY_CALLDATA_FACTOR_GAS_COST = 1 * PEDERSEN_GAS_COST + 8 * STEP_GAS_COST; -const GET_BLOCK_HASH_GAS_COST = 2 * RANGE_CHECK_GAS_COST + 107 * STEP_GAS_COST; -const GET_CLASS_HASH_AT_GAS_COST = 1 * SYSCALL_BASE_GAS_COST; -const GET_EXECUTION_INFO_GAS_COST = 2 * RANGE_CHECK_GAS_COST + 125 * STEP_GAS_COST; -const LIBRARY_CALL_GAS_COST = 18 * RANGE_CHECK_GAS_COST + 879 * STEP_GAS_COST; -const REPLACE_CLASS_GAS_COST = 1 * RANGE_CHECK_GAS_COST + 106 * STEP_GAS_COST; +const CALL_CONTRACT_GAS_COST = 91560; +const DEPLOY_GAS_COST = 147120; +const DEPLOY_CALLDATA_FACTOR_GAS_COST = 4850; +const GET_BLOCK_HASH_GAS_COST = 10840; +const GET_CLASS_HASH_AT_GAS_COST = 10000; +const GET_EXECUTION_INFO_GAS_COST = 12640; +const LIBRARY_CALL_GAS_COST = 89160; +const REPLACE_CLASS_GAS_COST = 10670; // TODO(Yoni, 1/1/2026): take into account Patricia updates and dict squash. -const STORAGE_READ_GAS_COST = 1 * SYSCALL_BASE_GAS_COST; -const STORAGE_WRITE_GAS_COST = 1 * SYSCALL_BASE_GAS_COST; -const EMIT_EVENT_GAS_COST = 1 * SYSCALL_BASE_GAS_COST; -const SEND_MESSAGE_TO_L1_GAS_COST = 1 * RANGE_CHECK_GAS_COST + 144 * STEP_GAS_COST; -const META_TX_V0_GAS_COST = 9 * PEDERSEN_GAS_COST + 20 * RANGE_CHECK_GAS_COST + 1301 * - STEP_GAS_COST; -const META_TX_V0_CALLDATA_FACTOR_GAS_COST = 1 * PEDERSEN_GAS_COST + 8 * STEP_GAS_COST; +const STORAGE_READ_GAS_COST = 10000; +const STORAGE_WRITE_GAS_COST = 10000; +const EMIT_EVENT_GAS_COST = 10000; +const SEND_MESSAGE_TO_L1_GAS_COST = 14470; +const META_TX_V0_GAS_COST = 167950; +const META_TX_V0_CALLDATA_FACTOR_GAS_COST = 4850; // Note the the following costs include `SYSCALL_BASE_GAS_COST` implicitly. -const SECP256K1_ADD_GAS_COST = 29 * RANGE_CHECK_GAS_COST + 412 * STEP_GAS_COST; -const SECP256K1_GET_POINT_FROM_X_GAS_COST = 30 * RANGE_CHECK_GAS_COST + 397 * STEP_GAS_COST; -const SECP256K1_GET_XY_GAS_COST = 11 * RANGE_CHECK_GAS_COST + 209 * STEP_GAS_COST; -const SECP256K1_MUL_GAS_COST = 7045 * RANGE_CHECK_GAS_COST + 76507 * STEP_GAS_COST; -const SECP256K1_NEW_GAS_COST = 35 * RANGE_CHECK_GAS_COST + 463 * STEP_GAS_COST; -const SECP256R1_ADD_GAS_COST = 57 * RANGE_CHECK_GAS_COST + 595 * STEP_GAS_COST; -const SECP256R1_GET_POINT_FROM_X_GAS_COST = 44 * RANGE_CHECK_GAS_COST + 516 * STEP_GAS_COST; -const SECP256R1_GET_XY_GAS_COST = 11 * RANGE_CHECK_GAS_COST + 211 * STEP_GAS_COST; -const SECP256R1_MUL_GAS_COST = 13961 * RANGE_CHECK_GAS_COST + 125346 * STEP_GAS_COST; -const SECP256R1_NEW_GAS_COST = 49 * RANGE_CHECK_GAS_COST + 582 * STEP_GAS_COST; - -const KECCAK_GAS_COST = 1 * SYSCALL_BASE_GAS_COST; -const KECCAK_ROUND_COST_GAS_COST = 6 * BITWISE_BUILTIN_GAS_COST + 1 * KECCAK_BUILTIN_GAS_COST + 56 * - RANGE_CHECK_GAS_COST + 281 * STEP_GAS_COST; -const SHA256_PROCESS_BLOCK_GAS_COST = 1115 * BITWISE_BUILTIN_GAS_COST + 65 * RANGE_CHECK_GAS_COST + - 1867 * STEP_GAS_COST; +const SECP256K1_ADD_GAS_COST = 43230; +const SECP256K1_GET_POINT_FROM_X_GAS_COST = 41800; +const SECP256K1_GET_XY_GAS_COST = 21670; +const SECP256K1_MUL_GAS_COST = 8143850; +const SECP256K1_NEW_GAS_COST = 48750; +const SECP256R1_ADD_GAS_COST = 63490; +const SECP256R1_GET_POINT_FROM_X_GAS_COST = 54680; +const SECP256R1_GET_XY_GAS_COST = 21870; +const SECP256R1_MUL_GAS_COST = 13511870; +const SECP256R1_NEW_GAS_COST = 61630; + +const KECCAK_GAS_COST = 10000; +const KECCAK_ROUND_COST_GAS_COST = 171707; +const SHA256_PROCESS_BLOCK_GAS_COST = 841295; // Cairo 1.0 error codes. const ERROR_BLOCK_NUMBER_OUT_OF_RANGE = 'Block number out of range';