API Reference — Transactions¶
financepype.operations.transactions.models¶
BlockchainTransactionState¶
class BlockchainTransactionState(Enum)
| Value | String | Description |
|---|---|---|
PENDING_BROADCAST |
"pending" |
Created, not yet sent |
BROADCASTED |
"broadcasted" |
Sent to network |
CONFIRMED |
"completed" |
Included in a block |
FINALIZED |
"finalized" |
Enough confirmations |
FAILED |
"failed" |
Execution failed on chain |
REJECTED |
"rejected" |
Rejected by simulation or node |
CANCELLED |
"cancelled" |
Cancelled by user |
BlockchainTransactionFee¶
class BlockchainTransactionFee(OperationFee)
Extends OperationFee with blockchain-specific defaults:
fee_typealwaysFeeType.ABSOLUTEimpact_typealwaysFeeImpactType.ADDED_TO_COSTSassetisBlockchainAsset | None
BlockchainTransactionReceipt¶
class BlockchainTransactionReceipt(BaseModel) [frozen]
| Field | Type | Description |
|---|---|---|
transaction_id |
BlockchainIdentifier |
The transaction hash |
Subclasses may add data: Any for chain-specific receipt fields.
BlockchainTransactionUpdate¶
class BlockchainTransactionUpdate(BaseModel)
| Field | Type | Description |
|---|---|---|
update_timestamp |
float |
Unix timestamp of update |
client_transaction_id |
str \| None |
Client-side ID |
transaction_id |
BlockchainIdentifier \| None |
Chain hash |
new_state |
BlockchainTransactionState |
Target state |
receipt |
BlockchainTransactionReceipt \| None |
Receipt if available |
explorer_link |
str \| None |
Block explorer URL |
other_data |
dict[str, Any] |
Extra chain-specific data |
Validator: validate_identifiers — at least one of client_transaction_id or transaction_id must be present.
financepype.operations.transactions.transaction¶
BlockchainTransaction¶
class BlockchainTransaction(Operation) [abstract]
Manages the full lifecycle of a blockchain transaction.
Fields
| Field | Type | Default | Description |
|---|---|---|---|
current_state |
BlockchainTransactionState |
PENDING_BROADCAST |
Lifecycle state |
operator_operation_id |
BlockchainIdentifier \| None |
None |
Transaction hash |
signed_transaction |
Any \| None |
None |
Signed tx data |
receipt |
BlockchainTransactionReceipt \| None |
None |
On-chain receipt |
fee |
BlockchainTransactionFee \| None |
None |
Fee structure |
explorer_link |
str \| None |
None |
Block explorer URL |
Properties (from Operation)
client_transaction_id -> str— alias forclient_operation_idtransaction_id -> BlockchainIdentifier | None— alias foroperator_operation_idpaid_fee -> BlockchainTransactionFee | None[abstract]
Abstract Properties (subclasses must implement)
| Property | Type | Description |
|---|---|---|
can_be_modified |
bool |
Can gas price be adjusted? |
can_be_cancelled |
bool |
Can the tx be cancelled? |
can_be_speeded_up |
bool |
Can tx be accelerated? |
Status Properties
| Property | Condition |
|---|---|
is_pending |
PENDING_BROADCAST or BROADCASTED |
is_pending_broadcast |
PENDING_BROADCAST |
is_broadcasted |
BROADCASTED |
is_failure |
FAILED or REJECTED |
is_completed |
CONFIRMED or FINALIZED |
is_finalized |
FINALIZED |
is_cancelled |
CANCELLED |
is_closed |
CONFIRMED, FINALIZED, FAILED, REJECTED, or CANCELLED |
Methods
| Method | Signature | Description |
|---|---|---|
process_operation_update |
(update: BlockchainTransactionUpdate) -> bool |
Apply state update |
update_signed_transaction |
(signed_tx: Any) -> None |
Set signed tx (once only) |
process_receipt |
(receipt: BlockchainTransactionReceipt) -> bool [abstract] |
Handle chain receipt |
from_transaction |
classmethod (tx, **kwargs) -> Self |
Copy constructor |
process_operation_update logic
- If
transaction_idis None, set from update (first confirmation). - Reject updates where
transaction_iddoesn't match. - Reject updates older than
last_update_timestamp. - Update state, explorer link, and process receipt if present.
financepype.operations.transactions.tracker¶
TransactionTracker¶
Extends OperationTracker for BlockchainTransaction instances. Interface is identical to OperationTracker.
financepype.operations.transactions.proposal¶
TransactionProposal¶
class TransactionProposal(OperationProposal)
Extends OperationProposal for blockchain transaction pre-flight analysis. Implement the five abstract methods from OperationProposal.
financepype.operations.transactions.events¶
Transaction events published through the operator's MultiPublisher. Event classes are used with TransactionTracker.trigger_event(...).
financepype.operators.blockchains.identifier¶
BlockchainIdentifier¶
Represents a chain-native identifier (e.g., transaction hash, contract address). Used as operator_operation_id in BlockchainTransaction and as identifier in BlockchainAsset.
from financepype.operators.blockchains.identifier import BlockchainIdentifier