Documentation
¶
Index ¶
- Variables
- type BlockHashAndNumber
- type BlockHeader
- type BlockID
- type BlockWithTxHashes
- type BlockWithTxs
- type Class
- type DeclaredClass
- type DeployedContract
- type EmittedEvent
- type Entry
- type EntryPoint
- type EntryPoints
- type Event
- type EventFilter
- type EventsArg
- type EventsChunk
- type Handler
- func (h *Handler) BlockHashAndNumber() (*BlockHashAndNumber, *jsonrpc.Error)
- func (h *Handler) BlockNumber() (uint64, *jsonrpc.Error)
- func (h *Handler) BlockTransactionCount(id *BlockID) (uint64, *jsonrpc.Error)
- func (h *Handler) BlockWithTxHashes(id *BlockID) (*BlockWithTxHashes, *jsonrpc.Error)
- func (h *Handler) BlockWithTxs(id *BlockID) (*BlockWithTxs, *jsonrpc.Error)
- func (h *Handler) ChainID() (*felt.Felt, *jsonrpc.Error)
- func (h *Handler) Class(id *BlockID, classHash *felt.Felt) (*Class, *jsonrpc.Error)
- func (h *Handler) ClassAt(id *BlockID, address *felt.Felt) (*Class, *jsonrpc.Error)
- func (h *Handler) ClassHashAt(id *BlockID, address *felt.Felt) (*felt.Felt, *jsonrpc.Error)
- func (h *Handler) Events(args *EventsArg) (*EventsChunk, *jsonrpc.Error)
- func (h *Handler) Nonce(id *BlockID, address *felt.Felt) (*felt.Felt, *jsonrpc.Error)
- func (h *Handler) StateUpdate(id *BlockID) (*StateUpdate, *jsonrpc.Error)
- func (h *Handler) StorageAt(address, key *felt.Felt, id *BlockID) (*felt.Felt, *jsonrpc.Error)
- func (h *Handler) Syncing() (*Sync, *jsonrpc.Error)
- func (h *Handler) TransactionByBlockIDAndIndex(id *BlockID, txIndex int) (*Transaction, *jsonrpc.Error)
- func (h *Handler) TransactionByHash(hash *felt.Felt) (*Transaction, *jsonrpc.Error)
- func (h *Handler) TransactionReceiptByHash(hash *felt.Felt) (*TransactionReceipt, *jsonrpc.Error)
- type MsgToL1
- type Nonce
- type NumAsHex
- type ReplacedClass
- type ResultPageRequest
- type StateDiff
- type StateUpdate
- type Status
- type StorageDiff
- type Sync
- type Transaction
- type TransactionReceipt
- type TransactionType
Constants ¶
This section is empty.
Variables ¶
var ( ErrPendingNotSupported = errors.New("pending block is not supported yet") ErrBlockNotFound = &jsonrpc.Error{Code: 24, Message: "Block not found"} ErrContractNotFound = &jsonrpc.Error{Code: 20, Message: "Contract not found"} ErrTxnHashNotFound = &jsonrpc.Error{Code: 25, Message: "Transaction hash not found"} ErrNoBlock = &jsonrpc.Error{Code: 32, Message: "There are no blocks"} ErrInvalidTxIndex = &jsonrpc.Error{Code: 27, Message: "Invalid transaction index in a block"} ErrClassHashNotFound = &jsonrpc.Error{Code: 28, Message: "Class hash not found"} ErrInvalidContinuationToken = &jsonrpc.Error{Code: 33, Message: "Invalid continuation token"} ErrPageSizeTooBig = &jsonrpc.Error{Code: 31, Message: "Requested page size is too big"} ErrTooManyKeysInFilter = &jsonrpc.Error{Code: 34, Message: "Too many keys provided in a filter"} ErrInternal = &jsonrpc.Error{Code: jsonrpc.InternalError, Message: "Internal error"} )
Functions ¶
This section is empty.
Types ¶
type BlockHashAndNumber ¶ added in v0.3.0
type BlockHeader ¶
type BlockID ¶ added in v0.2.1
func (*BlockID) UnmarshalJSON ¶ added in v0.2.1
type BlockWithTxHashes ¶
type BlockWithTxHashes struct {
Status Status `json:"status"`
BlockHeader
TxnHashes []*felt.Felt `json:"transactions"`
}
type BlockWithTxs ¶
type BlockWithTxs struct {
Status Status `json:"status"`
BlockHeader
Transactions []*Transaction `json:"transactions"`
}
type Class ¶ added in v0.3.0
type DeclaredClass ¶ added in v0.2.1
type DeployedContract ¶
type EmittedEvent ¶ added in v0.3.1
type EntryPoint ¶ added in v0.3.0
type EntryPoints ¶ added in v0.3.0
type EntryPoints struct {
Constructor []EntryPoint `json:"CONSTRUCTOR"`
External []EntryPoint `json:"EXTERNAL"`
L1Handler []EntryPoint `json:"L1_HANDLER"`
}
type EventFilter ¶ added in v0.3.1
type EventsArg ¶ added in v0.3.1
type EventsArg struct {
EventFilter
ResultPageRequest
}
type EventsChunk ¶ added in v0.3.1
type EventsChunk struct {
Events []*EmittedEvent `json:"events"`
ContinuationToken string `json:"continuation_token,omitempty"`
}
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func New ¶
func New(bcReader blockchain.Reader, synchronizer *sync.Synchronizer, n utils.Network, logger utils.Logger) *Handler
func (*Handler) BlockHashAndNumber ¶ added in v0.3.0
func (h *Handler) BlockHashAndNumber() (*BlockHashAndNumber, *jsonrpc.Error)
BlockHashAndNumber returns the block hash and number of the latest synced block.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L517
func (*Handler) BlockNumber ¶
BlockNumber returns the latest synced block number.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L500
func (*Handler) BlockTransactionCount ¶ added in v0.2.1
BlockTransactionCount returns the number of transactions in a block identified by the given BlockID.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L373
func (*Handler) BlockWithTxHashes ¶ added in v0.2.1
func (h *Handler) BlockWithTxHashes(id *BlockID) (*BlockWithTxHashes, *jsonrpc.Error)
BlockWithTxHashes returns the block information with transaction hashes given a block ID.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L11
func (*Handler) BlockWithTxs ¶ added in v0.2.1
func (h *Handler) BlockWithTxs(id *BlockID) (*BlockWithTxs, *jsonrpc.Error)
BlockWithTxs returns the block information with full transactions given a block ID.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L44
func (*Handler) ChainID ¶ added in v0.2.1
ChainID returns the chain ID of the currently configured network.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L542
func (*Handler) Class ¶ added in v0.3.0
Class gets the contract class definition in the given block associated with the given hash
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L248
func (*Handler) ClassAt ¶ added in v0.3.0
ClassAt gets the contract class definition in the given block instantiated by the given contract address
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L329
func (*Handler) ClassHashAt ¶ added in v0.3.0
ClassHashAt gets the class hash for the contract deployed at the given address in the given block.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L292
func (*Handler) Events ¶ added in v0.3.1
func (h *Handler) Events(args *EventsArg) (*EventsChunk, *jsonrpc.Error)
Events gets the events matching a filter
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/94a969751b31f5d3e25a0c6850c723ddadeeb679/api/starknet_api_openrpc.json#L642
func (*Handler) Nonce ¶ added in v0.3.0
Nonce returns the nonce associated with the given address in the given block number
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L633
func (*Handler) StateUpdate ¶ added in v0.2.1
func (h *Handler) StateUpdate(id *BlockID) (*StateUpdate, *jsonrpc.Error)
StateUpdate returns the state update identified by the given BlockID.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L77
func (*Handler) StorageAt ¶ added in v0.3.0
StorageAt gets the value of the storage at the given address and key.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L110
func (*Handler) Syncing ¶ added in v0.3.0
Syncing returns the syncing status of the node.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/a789ccc3432c57777beceaa53a34a7ae2f25fda0/api/starknet_api_openrpc.json#L569
func (*Handler) TransactionByBlockIDAndIndex ¶ added in v0.2.1
func (h *Handler) TransactionByBlockIDAndIndex(id *BlockID, txIndex int) (*Transaction, *jsonrpc.Error)
TransactionByBlockIDAndIndex returns the details of a transaction identified by the given BlockID and index.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L184
func (*Handler) TransactionByHash ¶ added in v0.2.1
TransactionByHash returns the details of a transaction identified by the given hash.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L158
func (*Handler) TransactionReceiptByHash ¶ added in v0.2.1
TransactionReceiptByHash returns the receipt of a transaction identified by the given hash.
It follows the specification defined here: https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L222
type ReplacedClass ¶ added in v0.2.1
type ResultPageRequest ¶ added in v0.3.1
type StateDiff ¶
type StateDiff struct {
StorageDiffs []StorageDiff `json:"storage_diffs"`
Nonces []Nonce `json:"nonces"`
DeployedContracts []DeployedContract `json:"deployed_contracts"`
DeprecatedDeclaredClasses []*felt.Felt `json:"deprecated_declared_classes"`
DeclaredClasses []DeclaredClass `json:"declared_classes"`
ReplacedClasses []ReplacedClass `json:"replaced_classes"`
}
type StateUpdate ¶
type StorageDiff ¶
type Sync ¶ added in v0.3.0
type Sync struct {
Syncing *bool `json:"-"`
StartingBlockHash *felt.Felt `json:"starting_block_hash,omitempty"`
StartingBlockNumber *NumAsHex `json:"starting_block_num,omitempty"`
CurrentBlockHash *felt.Felt `json:"current_block_hash,omitempty"`
CurrentBlockNumber *NumAsHex `json:"current_block_num,omitempty"`
HighestBlockHash *felt.Felt `json:"highest_block_hash,omitempty"`
HighestBlockNumber *NumAsHex `json:"highest_block_num,omitempty"`
}
func (Sync) MarshalJSON ¶ added in v0.3.0
type Transaction ¶
type Transaction struct {
Hash *felt.Felt `json:"transaction_hash,omitempty"`
Type TransactionType `json:"type"`
Version *felt.Felt `json:"version,omitempty"`
Nonce *felt.Felt `json:"nonce,omitempty"`
MaxFee *felt.Felt `json:"max_fee,omitempty"`
ContractAddress *felt.Felt `json:"contract_address,omitempty"`
ContractAddressSalt *felt.Felt `json:"contract_address_salt,omitempty"`
ClassHash *felt.Felt `json:"class_hash,omitempty"`
ConstructorCalldata []*felt.Felt `json:"constructor_calldata,omitempty"`
SenderAddress *felt.Felt `json:"sender_address,omitempty"`
Signature *[]*felt.Felt `json:"signature,omitempty"`
Calldata *[]*felt.Felt `json:"calldata,omitempty"`
EntryPointSelector *felt.Felt `json:"entry_point_selector,omitempty"`
CompiledClassHash *felt.Felt `json:"compiled_class_hash,omitempty"`
}
type TransactionReceipt ¶
type TransactionReceipt struct {
Type TransactionType `json:"type"`
Hash *felt.Felt `json:"transaction_hash"`
ActualFee *felt.Felt `json:"actual_fee"`
Status Status `json:"status"`
BlockHash *felt.Felt `json:"block_hash"`
BlockNumber uint64 `json:"block_number"`
MessagesSent []*MsgToL1 `json:"messages_sent"`
Events []*Event `json:"events"`
ContractAddress *felt.Felt `json:"contract_address,omitempty"`
}
https://github.com/starkware-libs/starknet-specs/blob/master/api/starknet_api_openrpc.json#L1871
type TransactionType ¶
type TransactionType uint8
const ( TxnDeclare TransactionType = iota TxnDeploy TxnDeployAccount TxnInvoke TxnL1Handler )
func (TransactionType) MarshalJSON ¶
func (t TransactionType) MarshalJSON() ([]byte, error)