feeder

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2023 License: Apache-2.0 Imports: 14 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExponentialBackoff

func ExponentialBackoff(wait time.Duration) time.Duration

func NopBackoff

func NopBackoff(d time.Duration) time.Duration

Types

type Backoff

type Backoff func(wait time.Duration) time.Duration

type Block

type Block struct {
	Hash             *felt.Felt            `json:"block_hash"`
	ParentHash       *felt.Felt            `json:"parent_block_hash"`
	Number           uint64                `json:"block_number"`
	StateRoot        *felt.Felt            `json:"state_root"`
	Status           string                `json:"status"`
	GasPrice         *felt.Felt            `json:"gas_price"`
	Transactions     []*Transaction        `json:"transactions"`
	Timestamp        uint64                `json:"timestamp"`
	Version          string                `json:"starknet_version"`
	Receipts         []*TransactionReceipt `json:"transaction_receipts"`
	SequencerAddress *felt.Felt            `json:"sequencer_address"`
}

Block object returned by the feeder in JSON format for "get_block" endpoint

type BuiltinInstanceCounter

type BuiltinInstanceCounter struct {
	Pedersen   uint64 `json:"pedersen_builtin"`
	RangeCheck uint64 `json:"range_check_builtin"`
	Bitwise    uint64 `json:"bitwise_builtin"`
	Output     uint64 `json:"output_builtin"`
	Ecsda      uint64 `json:"ecdsa_builtin"`
	EcOp       uint64 `json:"ec_op_builtin"`
}

type Cairo0Definition

type Cairo0Definition struct {
	Abi         json.RawMessage `json:"abi"`
	EntryPoints struct {
		Constructor []EntryPoint `json:"CONSTRUCTOR"`
		External    []EntryPoint `json:"EXTERNAL"`
		L1Handler   []EntryPoint `json:"L1_HANDLER"`
	} `json:"entry_points_by_type"`
	Program json.RawMessage `json:"program"`
}

type ClassDefinition

type ClassDefinition struct {
	V0 *Cairo0Definition
	V1 *SierraDefinition
}

func (*ClassDefinition) UnmarshalJSON

func (c *ClassDefinition) UnmarshalJSON(data []byte) error

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(clientURL string) *Client

func NewTestClient

func NewTestClient(network utils.Network) (*Client, closeTestClient)

NewTestClient returns a client and a function to close a test server.

func (*Client) Block

func (c *Client) Block(ctx context.Context, blockID string) (*Block, error)

func (*Client) ClassDefinition

func (c *Client) ClassDefinition(ctx context.Context, classHash *felt.Felt) (*ClassDefinition, error)

func (*Client) CompiledClassDefinition added in v0.3.1

func (c *Client) CompiledClassDefinition(ctx context.Context, classHash *felt.Felt) (json.RawMessage, error)

func (*Client) StateUpdate

func (c *Client) StateUpdate(ctx context.Context, blockNumber uint64) (*StateUpdate, error)

func (*Client) Transaction

func (c *Client) Transaction(ctx context.Context, transactionHash *felt.Felt) (*TransactionStatus, error)

func (*Client) WithBackoff

func (c *Client) WithBackoff(b Backoff) *Client

func (*Client) WithLogger

func (c *Client) WithLogger(log utils.SimpleLogger) *Client

func (*Client) WithMaxRetries

func (c *Client) WithMaxRetries(num int) *Client

func (*Client) WithMaxWait

func (c *Client) WithMaxWait(d time.Duration) *Client

func (*Client) WithMinWait

func (c *Client) WithMinWait(d time.Duration) *Client

type EntryPoint

type EntryPoint struct {
	Selector *felt.Felt `json:"selector"`
	Offset   *felt.Felt `json:"offset"`
}

type Event

type Event struct {
	From *felt.Felt   `json:"from_address"`
	Data []*felt.Felt `json:"data"`
	Keys []*felt.Felt `json:"keys"`
}

type ExecutionResources

type ExecutionResources struct {
	Steps                  uint64                 `json:"n_steps"`
	BuiltinInstanceCounter BuiltinInstanceCounter `json:"builtin_instance_counter"`
	MemoryHoles            uint64                 `json:"n_memory_holes"`
}

type Hints

type Hints map[uint64]interface{}

type Identifiers

type Identifiers map[string]struct {
	CairoType   string         `json:"cairo_type,omitempty"`
	Decorators  *[]interface{} `json:"decorators,omitempty"`
	Destination string         `json:"destination,omitempty"`
	FullName    string         `json:"full_name,omitempty"`
	Members     *interface{}   `json:"members,omitempty"`
	Pc          *uint64        `json:"pc,omitempty"`
	References  *[]interface{} `json:"references,omitempty"`
	Size        *uint64        `json:"size,omitempty"`
	Type        string         `json:"type,omitempty"`
	Value       json.Number    `json:"value,omitempty"`
}

type L1ToL2Message

type L1ToL2Message struct {
	From     string       `json:"from_address"`
	Payload  []*felt.Felt `json:"payload"`
	Selector *felt.Felt   `json:"selector"`
	To       *felt.Felt   `json:"to_address"`
	Nonce    *felt.Felt   `json:"nonce"`
}

type L2ToL1Message

type L2ToL1Message struct {
	From    *felt.Felt   `json:"from_address"`
	Payload []*felt.Felt `json:"payload"`
	To      string       `json:"to_address"`
}

type Program

type Program struct {
	Attributes       interface{} `json:"attributes,omitempty"`
	Builtins         []string    `json:"builtins"`
	CompilerVersion  string      `json:"compiler_version,omitempty"`
	Data             []string    `json:"data"`
	DebugInfo        interface{} `json:"debug_info"`
	Hints            Hints       `json:"hints"`
	Identifiers      Identifiers `json:"identifiers"`
	MainScope        interface{} `json:"main_scope"`
	Prime            string      `json:"prime"`
	ReferenceManager interface{} `json:"reference_manager"`
}

type SierraDefinition

type SierraDefinition struct {
	Abi         string `json:"abi"`
	EntryPoints struct {
		Constructor []SierraEntryPoint `json:"CONSTRUCTOR"`
		External    []SierraEntryPoint `json:"EXTERNAL"`
		L1Handler   []SierraEntryPoint `json:"L1_HANDLER"`
	} `json:"entry_points_by_type"`
	Program []*felt.Felt `json:"sierra_program"`
	Version string       `json:"contract_class_version"`
}

type SierraEntryPoint

type SierraEntryPoint struct {
	Index    uint64     `json:"function_idx"`
	Selector *felt.Felt `json:"selector"`
}

type StateUpdate

type StateUpdate struct {
	BlockHash *felt.Felt `json:"block_hash"`
	NewRoot   *felt.Felt `json:"new_root"`
	OldRoot   *felt.Felt `json:"old_root"`

	StateDiff struct {
		StorageDiffs map[string][]struct {
			Key   *felt.Felt `json:"key"`
			Value *felt.Felt `json:"value"`
		} `json:"storage_diffs"`

		Nonces            map[string]*felt.Felt `json:"nonces"`
		DeployedContracts []struct {
			Address   *felt.Felt `json:"address"`
			ClassHash *felt.Felt `json:"class_hash"`
		} `json:"deployed_contracts"`

		// v0.11.0
		OldDeclaredContracts []*felt.Felt `json:"old_declared_contracts"`
		DeclaredClasses      []struct {
			ClassHash         *felt.Felt `json:"class_hash"`
			CompiledClassHash *felt.Felt `json:"compiled_class_hash"`
		} `json:"declared_classes"`
		ReplacedClasses []struct {
			Address   *felt.Felt `json:"address"`
			ClassHash *felt.Felt `json:"class_hash"`
		} `json:"replaced_classes"`
	} `json:"state_diff"`
}

StateUpdate object returned by the feeder in JSON format for "get_state_update" endpoint

type Transaction

type Transaction struct {
	Hash                *felt.Felt   `json:"transaction_hash"`
	Version             *felt.Felt   `json:"version"`
	ContractAddress     *felt.Felt   `json:"contract_address"`
	ContractAddressSalt *felt.Felt   `json:"contract_address_salt"`
	ClassHash           *felt.Felt   `json:"class_hash"`
	ConstructorCallData []*felt.Felt `json:"constructor_calldata"`
	Type                string       `json:"type"`
	SenderAddress       *felt.Felt   `json:"sender_address"`
	MaxFee              *felt.Felt   `json:"max_fee"`
	Signature           []*felt.Felt `json:"signature"`
	CallData            []*felt.Felt `json:"calldata"`
	EntryPointSelector  *felt.Felt   `json:"entry_point_selector"`
	Nonce               *felt.Felt   `json:"nonce"`
	CompiledClassHash   *felt.Felt   `json:"compiled_class_hash"`
}

Transaction object returned by the feeder in JSON format for multiple endpoints

type TransactionReceipt

type TransactionReceipt struct {
	ActualFee          *felt.Felt          `json:"actual_fee"`
	Events             []*Event            `json:"events"`
	ExecutionResources *ExecutionResources `json:"execution_resources"`
	L1ToL2Message      *L1ToL2Message      `json:"l1_to_l2_consumed_message"`
	L2ToL1Message      []*L2ToL1Message    `json:"l2_to_l1_messages"`
	TransactionHash    *felt.Felt          `json:"transaction_hash"`
	TransactionIndex   uint64              `json:"transaction_index"`
}

type TransactionStatus

type TransactionStatus struct {
	Status           string       `json:"status"`
	BlockHash        *felt.Felt   `json:"block_hash"`
	BlockNumber      uint64       `json:"block_number"`
	TransactionIndex uint64       `json:"transaction_index"`
	Transaction      *Transaction `json:"transaction"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL