// Code generated by github.com/99designs/gqlgen, DO NOT EDIT.

package model

type AccessTuple struct {
	Address     string   `json:"address"`
	StorageKeys []string `json:"storageKeys"`
}

type Account struct {
	Address          string `json:"address"`
	Balance          string `json:"balance"`
	TransactionCount uint64 `json:"transactionCount"`
	Code             string `json:"code"`
	Storage          string `json:"storage"`
}

type Block struct {
	Number            uint64         `json:"number"`
	Hash              string         `json:"hash"`
	Parent            *Block         `json:"parent,omitempty"`
	Nonce             string         `json:"nonce"`
	TransactionsRoot  string         `json:"transactionsRoot"`
	TransactionCount  *int           `json:"transactionCount,omitempty"`
	StateRoot         string         `json:"stateRoot"`
	ReceiptsRoot      string         `json:"receiptsRoot"`
	Miner             *Account       `json:"miner"`
	ExtraData         string         `json:"extraData"`
	GasLimit          uint64         `json:"gasLimit"`
	GasUsed           uint64         `json:"gasUsed"`
	BaseFeePerGas     *string        `json:"baseFeePerGas,omitempty"`
	NextBaseFeePerGas *string        `json:"nextBaseFeePerGas,omitempty"`
	Timestamp         string         `json:"timestamp"`
	LogsBloom         string         `json:"logsBloom"`
	MixHash           string         `json:"mixHash"`
	Difficulty        string         `json:"difficulty"`
	OmmerCount        *int           `json:"ommerCount,omitempty"`
	Ommers            []*Block       `json:"ommers,omitempty"`
	OmmerAt           *Block         `json:"ommerAt,omitempty"`
	OmmerHash         string         `json:"ommerHash"`
	Transactions      []*Transaction `json:"transactions,omitempty"`
	TransactionAt     *Transaction   `json:"transactionAt,omitempty"`
	Logs              []*Log         `json:"logs"`
	Account           *Account       `json:"account"`
	Call              *CallResult    `json:"call,omitempty"`
	EstimateGas       uint64         `json:"estimateGas"`
	RawHeader         string         `json:"rawHeader"`
	Raw               string         `json:"raw"`
	Withdrawals       []*Withdrawal  `json:"withdrawals,omitempty"`
}

type BlockFilterCriteria struct {
	Addresses []string   `json:"addresses,omitempty"`
	Topics    [][]string `json:"topics,omitempty"`
}

type CallData struct {
	From                 *string `json:"from,omitempty"`
	To                   *string `json:"to,omitempty"`
	Gas                  *uint64 `json:"gas,omitempty"`
	GasPrice             *string `json:"gasPrice,omitempty"`
	MaxFeePerGas         *string `json:"maxFeePerGas,omitempty"`
	MaxPriorityFeePerGas *string `json:"maxPriorityFeePerGas,omitempty"`
	Value                *string `json:"value,omitempty"`
	Data                 *string `json:"data,omitempty"`
}

type CallResult struct {
	Data    string `json:"data"`
	GasUsed uint64 `json:"gasUsed"`
	Status  uint64 `json:"status"`
}

type FilterCriteria struct {
	FromBlock *uint64    `json:"fromBlock,omitempty"`
	ToBlock   *uint64    `json:"toBlock,omitempty"`
	Addresses []string   `json:"addresses,omitempty"`
	Topics    [][]string `json:"topics,omitempty"`
}

type Log struct {
	Index       int          `json:"index"`
	Account     *Account     `json:"account"`
	Topics      []string     `json:"topics"`
	Data        string       `json:"data"`
	Transaction *Transaction `json:"transaction"`
}

type Mutation struct {
}

type Pending struct {
	TransactionCount int            `json:"transactionCount"`
	Transactions     []*Transaction `json:"transactions,omitempty"`
	Account          *Account       `json:"account"`
	Call             *CallResult    `json:"call,omitempty"`
	EstimateGas      uint64         `json:"estimateGas"`
}

type Query struct {
}

type SyncState struct {
	StartingBlock uint64 `json:"startingBlock"`
	CurrentBlock  uint64 `json:"currentBlock"`
	HighestBlock  uint64 `json:"highestBlock"`
}

type Transaction struct {
	Hash                 string         `json:"hash"`
	Nonce                string         `json:"nonce"`
	Index                *int           `json:"index,omitempty"`
	From                 *Account       `json:"from"`
	To                   *Account       `json:"to,omitempty"`
	Value                string         `json:"value"`
	GasPrice             string         `json:"gasPrice"`
	MaxFeePerGas         *string        `json:"maxFeePerGas,omitempty"`
	MaxPriorityFeePerGas *string        `json:"maxPriorityFeePerGas,omitempty"`
	EffectiveTip         *string        `json:"effectiveTip,omitempty"`
	Gas                  uint64         `json:"gas"`
	InputData            string         `json:"inputData"`
	Block                *Block         `json:"block,omitempty"`
	Status               *uint64        `json:"status,omitempty"`
	GasUsed              *uint64        `json:"gasUsed,omitempty"`
	CumulativeGasUsed    *uint64        `json:"cumulativeGasUsed,omitempty"`
	EffectiveGasPrice    *string        `json:"effectiveGasPrice,omitempty"`
	CreatedContract      *Account       `json:"createdContract,omitempty"`
	Logs                 []*Log         `json:"logs,omitempty"`
	R                    string         `json:"r"`
	S                    string         `json:"s"`
	V                    string         `json:"v"`
	Type                 *int           `json:"type,omitempty"`
	AccessList           []*AccessTuple `json:"accessList,omitempty"`
	Raw                  string         `json:"raw"`
	RawReceipt           string         `json:"rawReceipt"`
}

type Withdrawal struct {
	Index     int    `json:"index"`
	Validator int    `json:"validator"`
	Address   string `json:"address"`
	Amount    string `json:"amount"`
}
