Client responses#

Dataclasses representing responses from Starknet. They need to stay backwards compatible for old transactions/blocks to be fetchable.

If you encounter a ValidationError in the context of an RPC response, it is possible to disable validation. This can be achieved by setting the environment variable, STARKNET_PY_MARSHMALLOW_UKNOWN_EXCLUDE, to true. Consequently, any unknown fields in response will be excluded.

class starknet_py.net.client_models.BlockHashAndNumber#

BlockHashAndNumber(block_hash: int, block_number: int)

__init__(block_hash: int, block_number: int) None#
class starknet_py.net.client_models.BlockHeader#

Dataclass representing a block header.

__init__(block_hash: int, parent_hash: int, block_number: int, new_root: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str) None#
class starknet_py.net.client_models.BlockStateUpdate#

Dataclass representing a change in state of a block.

__init__(block_hash: int, new_root: int, old_root: int, state_diff: StateDiff) None#
enum starknet_py.net.client_models.BlockStatus(value)#

Enum representing block status.

Valid values are as follows:

PENDING = <BlockStatus.PENDING: 'PENDING'>#
REJECTED = <BlockStatus.REJECTED: 'REJECTED'>#
ACCEPTED_ON_L2 = <BlockStatus.ACCEPTED_ON_L2: 'ACCEPTED_ON_L2'>#
ACCEPTED_ON_L1 = <BlockStatus.ACCEPTED_ON_L1: 'ACCEPTED_ON_L1'>#
class starknet_py.net.client_models.BlockTransactionTrace#

Dataclass representing a single transaction trace in a block.

__init__(transaction_hash: int, trace_root: InvokeTransactionTrace | DeclareTransactionTrace | DeployAccountTransactionTrace | L1HandlerTransactionTrace) None#
class starknet_py.net.client_models.Call#

Dataclass representing a call to Starknet contract.

__init__(to_addr: int, selector: int, calldata: List[int]) None#
enum starknet_py.net.client_models.CallType(value)#

Enum class representing call types.

Valid values are as follows:

DELEGATE = <CallType.DELEGATE: 'DELEGATE'>#
LIBRARY_CALL = <CallType.LIBRARY_CALL: 'LIBRARY_CALL'>#
CALL = <CallType.CALL: 'CALL'>#
class starknet_py.net.client_models.CasmClass#

Dataclass representing class compiled to Cairo assembly.

__init__(prime: int, bytecode: List[int], hints: List[Any], pythonic_hints: List[Any], compiler_version: str, entry_points_by_type: CasmClassEntryPointsByType, bytecode_segment_lengths: List[int] | None) None#
class starknet_py.net.client_models.CasmClassEntryPoint#

Dataclass representing CasmClass entrypoint.

__init__(selector: int, offset: int, builtins: List[str] | None) None#
class starknet_py.net.client_models.CasmClassEntryPointsByType#

Dataclass representing CasmClass entrypoints by entry point type.

__init__(constructor: List[CasmClassEntryPoint], external: List[CasmClassEntryPoint], l1_handler: List[CasmClassEntryPoint]) None#
class starknet_py.net.client_models.CompiledContract#

Dataclass representing ContractClass with required abi.

__init__(program: dict, entry_points_by_type: ~starknet_py.net.client_models.EntryPointsByType, abi: ~typing.List[~starknet_py.abi.v0.shape.StructDict | ~starknet_py.abi.v0.shape.FunctionDict | ~starknet_py.abi.v0.shape.ConstructorDict | ~starknet_py.abi.v0.shape.L1HandlerDict | ~starknet_py.abi.v0.shape.EventDict] = <factory>) None#
class starknet_py.net.client_models.ComputationResources#

Dataclass representing the resources consumed by the VM.

__init__(steps: int, memory_holes: int | None, range_check_builtin_applications: int | None, pedersen_builtin_applications: int | None, poseidon_builtin_applications: int | None, ec_op_builtin_applications: int | None, ecdsa_builtin_applications: int | None, bitwise_builtin_applications: int | None, keccak_builtin_applications: int | None, segment_arena_builtin: int | None) None#
class starknet_py.net.client_models.ContractClass#

Dataclass representing contract declared to Starknet.

__init__(program: dict, entry_points_by_type: EntryPointsByType, abi: List[StructDict | FunctionDict | ConstructorDict | L1HandlerDict | EventDict] | None = None) None#
class starknet_py.net.client_models.ContractsNonce#

Dataclass representing nonce of the contract.

__init__(contract_address: int, nonce: int) None#
enum starknet_py.net.client_models.DAMode(value)#

Specifies a storage domain in Starknet. Each domain has different guarantees regarding availability.

Valid values are as follows:

L1 = <DAMode.L1: 0>#
L2 = <DAMode.L2: 1>#
class starknet_py.net.client_models.DataResources#

Dataclass representing the data-availability resources of the transaction

__init__(l1_gas: int, l1_data_gas: int) None#
class starknet_py.net.client_models.DeclareTransactionResponse#

Dataclass representing a result of declaring a contract on Starknet.

__init__(transaction_hash: int, code: str | None = None, class_hash: int = 0) None#
class starknet_py.net.client_models.DeclareTransactionTrace#

Dataclass representing a transaction trace of an DECLARE transaction.

__init__(execution_resources: ExecutionResources, validate_invocation: FunctionInvocation | None = None, fee_transfer_invocation: FunctionInvocation | None = None, state_diff: StateDiff | None = None) None#
class starknet_py.net.client_models.DeclareTransactionV0#

Dataclass representing declare transaction v0.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, sender_address: int, class_hash: int) None#
class starknet_py.net.client_models.DeclareTransactionV1#

Dataclass representing declare transaction v1.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, sender_address: int, class_hash: int, nonce: int) None#
class starknet_py.net.client_models.DeclareTransactionV2#

Dataclass representing declare transaction v2.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, sender_address: int, class_hash: int, compiled_class_hash: int, nonce: int) None#
class starknet_py.net.client_models.DeclareTransactionV3#

Dataclass representing declare transaction v3.

__init__(hash: int | None, signature: List[int], version: int, resource_bounds: ResourceBoundsMapping, paymaster_data: List[int], tip: int, nonce_data_availability_mode: DAMode, fee_data_availability_mode: DAMode, sender_address: int, class_hash: int, compiled_class_hash: int, nonce: int, account_deployment_data: List[int]) None#
class starknet_py.net.client_models.DeclaredContractHash#

Dataclass containing hashes of the declared contract.

__init__(class_hash: int, compiled_class_hash: int) None#
class starknet_py.net.client_models.DeployAccountTransactionResponse#

Dataclass representing a result of deploying an account contract to Starknet.

__init__(transaction_hash: int, code: str | None = None, address: int = 0) None#
class starknet_py.net.client_models.DeployAccountTransactionTrace#

Dataclass representing a transaction trace of an DEPLOY_ACCOUNT transaction.

__init__(constructor_invocation: FunctionInvocation, execution_resources: ExecutionResources, validate_invocation: FunctionInvocation | None = None, fee_transfer_invocation: FunctionInvocation | None = None, state_diff: StateDiff | None = None) None#
class starknet_py.net.client_models.DeployAccountTransactionV1#

Dataclass representing deploy account transaction v1.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, nonce: int, contract_address_salt: int, constructor_calldata: List[int], class_hash: int) None#
class starknet_py.net.client_models.DeployAccountTransactionV3#

Dataclass representing deploy account transaction v3.

__init__(hash: int | None, signature: List[int], version: int, resource_bounds: ResourceBoundsMapping, paymaster_data: List[int], tip: int, nonce_data_availability_mode: DAMode, fee_data_availability_mode: DAMode, nonce: int, contract_address_salt: int, constructor_calldata: List[int], class_hash: int) None#
class starknet_py.net.client_models.DeployTransaction#

Dataclass representing deploy transaction.

__init__(hash: int | None, signature: List[int], version: int, contract_address_salt: int, constructor_calldata: List[int], class_hash: int) None#
class starknet_py.net.client_models.DeployedContract#

Dataclass representing basic data of the deployed contract.

__init__(address: int, class_hash: int) None#
class starknet_py.net.client_models.DeprecatedTransaction#

Dataclass representing common attributes of transactions v1 and v2.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int) None#
class starknet_py.net.client_models.EmittedEvent#

Dataclass representing an event emitted by transaction.

__init__(from_address: int, keys: List[int], data: List[int], transaction_hash: int, block_hash: int | None = None, block_number: int | None = None) None#
class starknet_py.net.client_models.EntryPoint#

Dataclass representing contract entry point.

__init__(offset: int, selector: int) None#
enum starknet_py.net.client_models.EntryPointType(value)#

Enum class representing entry point types.

Valid values are as follows:

EXTERNAL = <EntryPointType.EXTERNAL: 'EXTERNAL'>#
L1_HANDLER = <EntryPointType.L1_HANDLER: 'L1_HANDLER'>#
CONSTRUCTOR = <EntryPointType.CONSTRUCTOR: 'CONSTRUCTOR'>#
class starknet_py.net.client_models.EntryPointsByType#

Dataclass representing contract class entrypoints by entry point type.

__init__(constructor: List[EntryPoint], external: List[EntryPoint], l1_handler: List[EntryPoint]) None#
class starknet_py.net.client_models.EstimatedFee#

Dataclass representing estimated fee.

__init__(gas_consumed: int, gas_price: int, data_gas_consumed: int, data_gas_price: int, overall_fee: int, unit: PriceUnit) None#
class starknet_py.net.client_models.Event#

Dataclass representing a Starknet event.

__init__(from_address: int, keys: List[int], data: List[int]) None#
class starknet_py.net.client_models.EventsChunk#

Dataclass representing events returned by FullNodeClient.get_events method.

__init__(events: List[EmittedEvent], continuation_token: str | None = None) None#
class starknet_py.net.client_models.ExecutionResources#

Dataclass representing the resources consumed by the transaction, includes both computation and data.

__init__(steps: int, memory_holes: int | None, range_check_builtin_applications: int | None, pedersen_builtin_applications: int | None, poseidon_builtin_applications: int | None, ec_op_builtin_applications: int | None, ecdsa_builtin_applications: int | None, bitwise_builtin_applications: int | None, keccak_builtin_applications: int | None, segment_arena_builtin: int | None, data_availability: DataResources) None#
class starknet_py.net.client_models.FeePayment#

Dataclass representing fee payment info as it appears in receipts.

__init__(amount: int, unit: PriceUnit) None#
class starknet_py.net.client_models.FunctionInvocation#

Dataclass representing an invocation of a function.

__init__(contract_address: int, entry_point_selector: int, calldata: List[int], caller_address: int, class_hash: int, entry_point_type: EntryPointType, call_type: CallType, result: List[int], calls: List[FunctionInvocation], events: List[OrderedEvent], messages: List[OrderedMessage], computation_resources: ComputationResources) None#
class starknet_py.net.client_models.InvokeTransactionTrace#

Dataclass representing a transaction trace of an INVOKE transaction.

__init__(execute_invocation: FunctionInvocation | RevertedFunctionInvocation, execution_resources: ExecutionResources, validate_invocation: FunctionInvocation | None = None, fee_transfer_invocation: FunctionInvocation | None = None, state_diff: StateDiff | None = None) None#
class starknet_py.net.client_models.InvokeTransactionV0#

Dataclass representing invoke transaction v0.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, calldata: List[int], contract_address: int, entry_point_selector: int) None#
class starknet_py.net.client_models.InvokeTransactionV1#

Dataclass representing invoke transaction v1.

__init__(hash: int | None, signature: List[int], version: int, max_fee: int, calldata: List[int], sender_address: int, nonce: int) None#
class starknet_py.net.client_models.InvokeTransactionV3#

Dataclass representing invoke transaction v3.

__init__(hash: int | None, signature: List[int], version: int, resource_bounds: ResourceBoundsMapping, paymaster_data: List[int], tip: int, nonce_data_availability_mode: DAMode, fee_data_availability_mode: DAMode, calldata: List[int], sender_address: int, nonce: int, account_deployment_data: List[int]) None#
enum starknet_py.net.client_models.L1DAMode(value)#

An enumeration.

Valid values are as follows:

BLOB = <L1DAMode.BLOB: 'BLOB'>#
CALLDATA = <L1DAMode.CALLDATA: 'CALLDATA'>#
class starknet_py.net.client_models.L1HandlerTransaction#

Dataclass representing l1 handler transaction.

__init__(hash: int | None, signature: List[int], version: int, contract_address: int, calldata: List[int], entry_point_selector: int, nonce: int) None#
class starknet_py.net.client_models.L1HandlerTransactionTrace#

Dataclass representing a transaction trace of an L1_HANDLER transaction.

__init__(execution_resources: ExecutionResources | None, function_invocation: FunctionInvocation, state_diff: StateDiff | None = None) None#
class starknet_py.net.client_models.L2toL1Message#

Dataclass representing a L2->L1 message.

__init__(payload: List[int], l2_address: int, l1_address: int) None#
class starknet_py.net.client_models.OrderedEvent#

Dataclass representing an event alongside its order within the transaction.

__init__(keys: List[int], data: List[int], order: int) None#
class starknet_py.net.client_models.OrderedMessage#

Dataclass representing a message alongside its order within the transaction.

__init__(payload: List[int], l2_address: int, l1_address: int, order: int) None#
class starknet_py.net.client_models.PendingBlockHeader#

PendingBlockHeader(parent_hash: int, timestamp: int, sequencer_address: int, l1_gas_price: starknet_py.net.client_models.ResourcePrice, l1_data_gas_price: starknet_py.net.client_models.ResourcePrice, l1_da_mode: starknet_py.net.client_models.L1DAMode, starknet_version: str)

__init__(parent_hash: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str) None#
class starknet_py.net.client_models.PendingBlockStateUpdate#

Dataclass representing a pending change in state of a block.

__init__(old_root: int, state_diff: StateDiff) None#
class starknet_py.net.client_models.PendingStarknetBlock#

Dataclass representing a pending block on Starknet.

__init__(parent_hash: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, transactions: List[Transaction]) None#
class starknet_py.net.client_models.PendingStarknetBlockWithReceipts#

Dataclass representing a pending block on Starknet with txs and receipts result

__init__(parent_hash: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, transactions: List[TransactionWithReceipt]) None#
class starknet_py.net.client_models.PendingStarknetBlockWithTxHashes#

Dataclass representing a pending block on Starknet containing transaction hashes.

__init__(parent_hash: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, transactions: List[int]) None#
enum starknet_py.net.client_models.PriceUnit(value)#

Enum representing price unit types.

Valid values are as follows:

WEI = <PriceUnit.WEI: 'WEI'>#
FRI = <PriceUnit.FRI: 'FRI'>#
class starknet_py.net.client_models.ReplacedClass#

Dataclass representing new class_hash of the contract.

__init__(contract_address: int, class_hash: int) None#
class starknet_py.net.client_models.ResourceBounds#

Dataclass representing max amount and price of the resource that can be used in the transaction.

__init__(max_amount: int, max_price_per_unit: int) None#
class starknet_py.net.client_models.ResourceBoundsMapping#

Dataclass representing resource limits that can be used in the transaction.

__init__(l1_gas: ResourceBounds, l2_gas: ResourceBounds) None#
class starknet_py.net.client_models.ResourcePrice#

Dataclass representing prices of L1 gas.

__init__(price_in_wei: int, price_in_fri: int) None#
class starknet_py.net.client_models.RevertedFunctionInvocation#

Dataclass representing revert reason for the transaction.

__init__(revert_reason: str) None#
class starknet_py.net.client_models.SentTransactionResponse#

Dataclass representing a result of sending a transaction to Starknet.

__init__(transaction_hash: int, code: str | None = None) None#
class starknet_py.net.client_models.SierraCompiledContract#

Dataclass representing SierraContractClass with required abi.

__init__(contract_class_version: str, sierra_program: ~typing.List[str], entry_points_by_type: ~starknet_py.net.client_models.SierraEntryPointsByType, abi: str = <factory>) None#
class starknet_py.net.client_models.SierraContractClass#

Dataclass representing Cairo1 contract declared to Starknet

__init__(contract_class_version: str, sierra_program: List[str], entry_points_by_type: SierraEntryPointsByType, abi: str | None = None) None#
class starknet_py.net.client_models.SierraEntryPoint#

Dataclass representing contract entry point

__init__(function_idx: int, selector: int) None#
class starknet_py.net.client_models.SierraEntryPointsByType#

Dataclass representing contract class entrypoints by entry point type

__init__(constructor: List[SierraEntryPoint], external: List[SierraEntryPoint], l1_handler: List[SierraEntryPoint]) None#
class starknet_py.net.client_models.SimulatedTransaction#

Dataclass representing a simulated transaction returned by starknet_simulateTransactions method.

__init__(transaction_trace: InvokeTransactionTrace | DeclareTransactionTrace | DeployAccountTransactionTrace | L1HandlerTransactionTrace, fee_estimation: EstimatedFee) None#
enum starknet_py.net.client_models.SimulationFlag(value)#

Enum class representing possible simulation flags for trace API.

Member Type:

str

Valid values are as follows:

SKIP_VALIDATE = <SimulationFlag.SKIP_VALIDATE: 'SKIP_VALIDATE'>#
SKIP_FEE_CHARGE = <SimulationFlag.SKIP_FEE_CHARGE: 'SKIP_FEE_CHARGE'>#
class starknet_py.net.client_models.StarknetBlock#

Dataclass representing a block on Starknet.

__init__(block_hash: int, parent_hash: int, block_number: int, new_root: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, status: BlockStatus, transactions: List[Transaction]) None#
class starknet_py.net.client_models.StarknetBlockWithReceipts#

Dataclass representing a block on Starknet with txs and receipts result

__init__(block_hash: int, parent_hash: int, block_number: int, new_root: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, status: BlockStatus, transactions: List[TransactionWithReceipt]) None#
class starknet_py.net.client_models.StarknetBlockWithTxHashes#

Dataclass representing a block on Starknet containing transaction hashes.

__init__(block_hash: int, parent_hash: int, block_number: int, new_root: int, timestamp: int, sequencer_address: int, l1_gas_price: ResourcePrice, l1_data_gas_price: ResourcePrice, l1_da_mode: L1DAMode, starknet_version: str, status: BlockStatus, transactions: List[int]) None#
class starknet_py.net.client_models.StateDiff#

Dataclass representing state changes in the block.

__init__(storage_diffs: List[StorageDiffItem], deprecated_declared_classes: List[int], declared_classes: List[DeclaredContractHash], deployed_contracts: List[DeployedContract], replaced_classes: List[ReplacedClass], nonces: List[ContractsNonce]) None#
class starknet_py.net.client_models.StorageDiffItem#

Dataclass representing all storage changes for the contract.

__init__(address: int, storage_entries: List[StorageEntry]) None#
class starknet_py.net.client_models.StorageEntry#

Dataclass representing single change in the storage.

__init__(key: int, value: int) None#
class starknet_py.net.client_models.SyncStatus#

SyncStatus(starting_block_hash: int, starting_block_num: int, current_block_hash: int, current_block_num: int, highest_block_hash: int, highest_block_num: int)

__init__(starting_block_hash: int, starting_block_num: int, current_block_hash: int, current_block_num: int, highest_block_hash: int, highest_block_num: int) None#
class starknet_py.net.client_models.Transaction#

Dataclass representing common attributes of all transactions.

__init__(hash: int | None, signature: List[int], version: int) None#
enum starknet_py.net.client_models.TransactionExecutionStatus(value)#

Enum representing transaction execution statuses.

Valid values are as follows:

SUCCEEDED = <TransactionExecutionStatus.SUCCEEDED: 'SUCCEEDED'>#
REVERTED = <TransactionExecutionStatus.REVERTED: 'REVERTED'>#
enum starknet_py.net.client_models.TransactionFinalityStatus(value)#

Enum representing transaction finality statuses.

Valid values are as follows:

ACCEPTED_ON_L2 = <TransactionFinalityStatus.ACCEPTED_ON_L2: 'ACCEPTED_ON_L2'>#
ACCEPTED_ON_L1 = <TransactionFinalityStatus.ACCEPTED_ON_L1: 'ACCEPTED_ON_L1'>#
class starknet_py.net.client_models.TransactionReceipt#

Dataclass representing details of sent transaction.

__init__(transaction_hash: int, execution_status: ~starknet_py.net.client_models.TransactionExecutionStatus, finality_status: ~starknet_py.net.client_models.TransactionFinalityStatus, execution_resources: ~starknet_py.net.client_models.ExecutionResources, actual_fee: ~starknet_py.net.client_models.FeePayment, type: ~starknet_py.net.client_models.TransactionType, events: ~typing.List[~starknet_py.net.client_models.Event] = <factory>, messages_sent: ~typing.List[~starknet_py.net.client_models.L2toL1Message] = <factory>, block_number: int | None = None, block_hash: int | None = None, contract_address: int | None = None, message_hash: int | None = None, revert_reason: str | None = None) None#
enum starknet_py.net.client_models.TransactionStatus(value)#

Enum representing transaction statuses.

Valid values are as follows:

RECEIVED = <TransactionStatus.RECEIVED: 'RECEIVED'>#
REJECTED = <TransactionStatus.REJECTED: 'REJECTED'>#
ACCEPTED_ON_L2 = <TransactionStatus.ACCEPTED_ON_L2: 'ACCEPTED_ON_L2'>#
ACCEPTED_ON_L1 = <TransactionStatus.ACCEPTED_ON_L1: 'ACCEPTED_ON_L1'>#
class starknet_py.net.client_models.TransactionStatusResponse#

Dataclass representing transaction status for the FullNodeClient.

__init__(finality_status: TransactionStatus, execution_status: TransactionExecutionStatus | None = None) None#
enum starknet_py.net.client_models.TransactionType(value)#

Enum representing transaction types.

Valid values are as follows:

INVOKE = <TransactionType.INVOKE: 'INVOKE'>#
DECLARE = <TransactionType.DECLARE: 'DECLARE'>#
DEPLOY_ACCOUNT = <TransactionType.DEPLOY_ACCOUNT: 'DEPLOY_ACCOUNT'>#
DEPLOY = <TransactionType.DEPLOY: 'DEPLOY'>#
L1_HANDLER = <TransactionType.L1_HANDLER: 'L1_HANDLER'>#
class starknet_py.net.client_models.TransactionV3#

Dataclass representing common attributes of all transactions v3.

__init__(hash: int | None, signature: List[int], version: int, resource_bounds: ResourceBoundsMapping, paymaster_data: List[int], tip: int, nonce_data_availability_mode: DAMode, fee_data_availability_mode: DAMode) None#
class starknet_py.net.client_models.TransactionWithReceipt#

TransactionWithReceipt(transaction: starknet_py.net.client_models.Transaction, receipt: starknet_py.net.client_models.TransactionReceipt)

__init__(transaction: Transaction, receipt: TransactionReceipt) None#