Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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';
Expand Down
Loading