v1

package
v0.0.0-...-3a5d5d8 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: LGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPublicLegacyAPI

func NewPublicLegacyAPI(fch *fch.Feechain, namespace string) rpc.API

NewPublicLegacyAPI creates a new API for the RPC interface

func NewReceipt

func NewReceipt(
	tx interface{}, blockHash common.Hash, blockNumber, blockIndex uint64, receipt *types.Receipt,
) (interface{}, error)

NewReceipt returns a transaction OR staking transaction that will serialize to the RPC representation.

Types

type BlockFactory

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

BlockFactory is the factory for v1 rpc block

func NewBlockFactory

func NewBlockFactory(provider rpc_common.BlockDataProvider) *BlockFactory

NewBlockFactory return the block factory with the given provider

func (*BlockFactory) NewBlock

func (fac *BlockFactory) NewBlock(b *types.Block, args *rpc_common.BlockArgs) (interface{}, error)

NewBlock converts the given block to the RPC output which depends on fullTx. If inclTx is true transactions are returned. When fullTx is true the returned block contains full transaction details, otherwise it will only contain transaction hashes.

type BlockWithFullTx

type BlockWithFullTx struct {
	Number           *hexutil.Big          `json:"number"`
	ViewID           *hexutil.Big          `json:"viewID"`
	Epoch            *hexutil.Big          `json:"epoch"`
	Hash             common.Hash           `json:"hash"`
	ParentHash       common.Hash           `json:"parentHash"`
	Nonce            uint64                `json:"nonce"`
	MixHash          common.Hash           `json:"mixHash"`
	LogsBloom        ethtypes.Bloom        `json:"logsBloom"`
	StateRoot        common.Hash           `json:"stateRoot"`
	Miner            string                `json:"miner"`
	Difficulty       uint64                `json:"difficulty"`
	ExtraData        hexutil.Bytes         `json:"extraData"`
	Size             hexutil.Uint64        `json:"size"`
	GasLimit         hexutil.Uint64        `json:"gasLimit"`
	GasUsed          hexutil.Uint64        `json:"gasUsed"`
	VRF              common.Hash           `json:"vrf"`
	VRFProof         hexutil.Bytes         `json:"vrfProof"`
	Timestamp        hexutil.Uint64        `json:"timestamp"`
	TransactionsRoot common.Hash           `json:"transactionsRoot"`
	ReceiptsRoot     common.Hash           `json:"receiptsRoot"`
	Uncles           []common.Hash         `json:"uncles"`
	Transactions     []*Transaction        `json:"transactions"`
	StakingTxs       []*StakingTransaction `json:"stakingTransactions"`
	Signers          []string              `json:"signers,omitempty"`
}

BlockWithFullTx represents a block that will serialize to the RPC representation of a block having FULL transactions in the Transaction & Staking transaction fields.

type BlockWithTxHash

type BlockWithTxHash struct {
	Number           *hexutil.Big   `json:"number"`
	ViewID           *hexutil.Big   `json:"viewID"`
	Epoch            *hexutil.Big   `json:"epoch"`
	Hash             common.Hash    `json:"hash"`
	ParentHash       common.Hash    `json:"parentHash"`
	Nonce            uint64         `json:"nonce"`
	MixHash          common.Hash    `json:"mixHash"`
	LogsBloom        ethtypes.Bloom `json:"logsBloom"`
	StateRoot        common.Hash    `json:"stateRoot"`
	Miner            string         `json:"miner"`
	Difficulty       uint64         `json:"difficulty"`
	ExtraData        hexutil.Bytes  `json:"extraData"`
	Size             hexutil.Uint64 `json:"size"`
	GasLimit         hexutil.Uint64 `json:"gasLimit"`
	GasUsed          hexutil.Uint64 `json:"gasUsed"`
	VRF              common.Hash    `json:"vrf"`
	VRFProof         hexutil.Bytes  `json:"vrfProof"`
	Timestamp        hexutil.Uint64 `json:"timestamp"`
	TransactionsRoot common.Hash    `json:"transactionsRoot"`
	ReceiptsRoot     common.Hash    `json:"receiptsRoot"`
	Uncles           []common.Hash  `json:"uncles"`
	Transactions     []common.Hash  `json:"transactions"`
	EthTransactions  []common.Hash  `json:"transactionsInEthHash"`
	StakingTxs       []common.Hash  `json:"stakingTransactions"`
	Signers          []string       `json:"signers,omitempty"`
}

BlockWithTxHash represents a block that will serialize to the RPC representation of a block having ONLY transaction hashes in the Transaction & Staking transaction fields.

type CollectRewardsMsg

type CollectRewardsMsg struct {
	DelegatorAddress string `json:"delegatorAddress"`
}

CollectRewardsMsg represents a staking transaction's collect rewards directive that will serialize to the RPC representation

type CreateValidatorMsg

type CreateValidatorMsg struct {
	ValidatorAddress   string                    `json:"validatorAddress"`
	CommissionRate     *hexutil.Big              `json:"commissionRate"`
	MaxCommissionRate  *hexutil.Big              `json:"maxCommissionRate"`
	MaxChangeRate      *hexutil.Big              `json:"maxChangeRate"`
	MinSelfDelegation  *hexutil.Big              `json:"minSelfDelegation"`
	MaxTotalDelegation *hexutil.Big              `json:"maxTotalDelegation"`
	Amount             *hexutil.Big              `json:"amount"`
	Name               string                    `json:"name"`
	Website            string                    `json:"website"`
	Identity           string                    `json:"identity"`
	SecurityContact    string                    `json:"securityContact"`
	Details            string                    `json:"details"`
	SlotPubKeys        []bls.SerializedPublicKey `json:"slotPubKeys"`
}

CreateValidatorMsg represents a staking transaction's create validator directive that will serialize to the RPC representation

type CxReceipt

type CxReceipt struct {
	BlockHash   common.Hash  `json:"blockHash"`
	BlockNumber *hexutil.Big `json:"blockNumber"`
	TxHash      common.Hash  `json:"hash"`
	From        string       `json:"from"`
	To          string       `json:"to"`
	ShardID     uint32       `json:"shardID"`
	ToShardID   uint32       `json:"toShardID"`
	Amount      *hexutil.Big `json:"value"`
}

CxReceipt represents a CxReceipt that will serialize to the RPC representation of a CxReceipt

func NewCxReceipt

func NewCxReceipt(cx *types.CXReceipt, blockHash common.Hash, blockNumber uint64) (*CxReceipt, error)

NewCxReceipt returns a CxReceipt that will serialize to the RPC representation

type DelegateMsg

type DelegateMsg struct {
	DelegatorAddress string       `json:"delegatorAddress"`
	ValidatorAddress string       `json:"validatorAddress"`
	Amount           *hexutil.Big `json:"amount"`
}

DelegateMsg represents a staking transaction's delegate directive that will serialize to the RPC representation

type EditValidatorMsg

type EditValidatorMsg struct {
	ValidatorAddress   string                   `json:"validatorAddress"`
	CommissionRate     *hexutil.Big             `json:"commissionRate"`
	MinSelfDelegation  *hexutil.Big             `json:"minSelfDelegation"`
	MaxTotalDelegation *hexutil.Big             `json:"maxTotalDelegation"`
	Name               string                   `json:"name"`
	Website            string                   `json:"website"`
	Identity           string                   `json:"identity"`
	SecurityContact    string                   `json:"securityContact"`
	Details            string                   `json:"details"`
	SlotPubKeyToAdd    *bls.SerializedPublicKey `json:"slotPubKeyToAdd"`
	SlotPubKeyToRemove *bls.SerializedPublicKey `json:"slotPubKeyToRemove"`
}

EditValidatorMsg represents a staking transaction's edit validator directive that will serialize to the RPC representation

type PublicLegacyService

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

PublicLegacyService provides an API to access the Feechain blockchain. Services here are legacy methods, specific to the V1 RPC that can be deprecated in the future.

func (*PublicLegacyService) GetBalance

func (s *PublicLegacyService) GetBalance(
	ctx context.Context, address string, blockNr rpc.BlockNumber,
) (*hexutil.Big, error)

GetBalance returns the amount of Atto for the given address in the state of the given block number. The rpc.LatestBlockNumber and rpc.PendingBlockNumber meta block numbers are also allowed.

type StakingTransaction

type StakingTransaction struct {
	BlockHash        common.Hash    `json:"blockHash"`
	BlockNumber      *hexutil.Big   `json:"blockNumber"`
	From             string         `json:"from"`
	Timestamp        hexutil.Uint64 `json:"timestamp"`
	Gas              hexutil.Uint64 `json:"gas"`
	GasPrice         *hexutil.Big   `json:"gasPrice"`
	Hash             common.Hash    `json:"hash"`
	Nonce            hexutil.Uint64 `json:"nonce"`
	TransactionIndex hexutil.Uint   `json:"transactionIndex"`
	V                *hexutil.Big   `json:"v"`
	R                *hexutil.Big   `json:"r"`
	S                *hexutil.Big   `json:"s"`
	Type             string         `json:"type"`
	Msg              interface{}    `json:"msg"`
}

StakingTransaction represents a staking transaction that will serialize to the RPC representation of a staking transaction

func NewStakingTransaction

func NewStakingTransaction(tx *staking.StakingTransaction, blockHash common.Hash,
	blockNumber uint64, timestamp uint64, index uint64,
) (*StakingTransaction, error)

NewStakingTransaction returns a staking transaction that will serialize to the RPC representation, with the given location metadata set (if available).

func NewStakingTransactionFromBlockHash

func NewStakingTransactionFromBlockHash(b *types.Block, hash common.Hash) (*StakingTransaction, error)

NewStakingTransactionFromBlockHash returns a staking transaction that will serialize to the RPC representation.

func NewStakingTransactionFromBlockIndex

func NewStakingTransactionFromBlockIndex(b *types.Block, index uint64) (*StakingTransaction, error)

NewStakingTransactionFromBlockIndex returns a staking transaction that will serialize to the RPC representation.

func StakingTransactionsFromBlock

func StakingTransactionsFromBlock(b *types.Block) ([]*StakingTransaction, error)

StakingTransactionsFromBlock return rpc staking transactions from a block

type StakingTxReceipt

type StakingTxReceipt struct {
	BlockHash         common.Hash       `json:"blockHash"`
	TransactionHash   common.Hash       `json:"transactionHash"`
	BlockNumber       hexutil.Uint64    `json:"blockNumber"`
	TransactionIndex  hexutil.Uint64    `json:"transactionIndex"`
	GasUsed           hexutil.Uint64    `json:"gasUsed"`
	CumulativeGasUsed hexutil.Uint64    `json:"cumulativeGasUsed"`
	ContractAddress   common.Address    `json:"contractAddress"`
	Logs              []*types.Log      `json:"logs"`
	LogsBloom         ethtypes.Bloom    `json:"logsBloom"`
	Sender            string            `json:"sender"`
	Type              staking.Directive `json:"type"`
	Root              hexutil.Bytes     `json:"root"`
	Status            hexutil.Uint      `json:"status"`
}

StakingTxReceipt represents a staking transaction receipt that will serialize to the RPC representation.

func NewStakingTxReceipt

func NewStakingTxReceipt(
	tx *staking.StakingTransaction, blockHash common.Hash, blockNumber, blockIndex uint64, receipt *types.Receipt,
) (*StakingTxReceipt, error)

NewStakingTxReceipt returns a staking transaction receipt that will serialize to the RPC representation

type Transaction

type Transaction struct {
	BlockHash        common.Hash    `json:"blockHash"`
	BlockNumber      *hexutil.Big   `json:"blockNumber"`
	From             string         `json:"from"`
	Timestamp        hexutil.Uint64 `json:"timestamp"`
	Gas              hexutil.Uint64 `json:"gas"`
	GasPrice         *hexutil.Big   `json:"gasPrice"`
	Hash             common.Hash    `json:"hash"`
	EthHash          common.Hash    `json:"ethHash"`
	Input            hexutil.Bytes  `json:"input"`
	Nonce            hexutil.Uint64 `json:"nonce"`
	To               string         `json:"to"`
	TransactionIndex hexutil.Uint   `json:"transactionIndex"`
	Value            *hexutil.Big   `json:"value"`
	ShardID          uint32         `json:"shardID"`
	ToShardID        uint32         `json:"toShardID"`
	V                *hexutil.Big   `json:"v"`
	R                *hexutil.Big   `json:"r"`
	S                *hexutil.Big   `json:"s"`
}

Transaction represents a transaction that will serialize to the RPC representation of a transaction

func NewTransaction

func NewTransaction(
	tx *types.Transaction, blockHash common.Hash,
	blockNumber uint64, timestamp uint64, index uint64,
) (*Transaction, error)

NewTransaction returns a transaction that will serialize to the RPC representation, with the given location metadata set (if available). Note that all txs on Feechain are replay protected (post EIP155 epoch).

func NewTransactionFromBlockHash

func NewTransactionFromBlockHash(b *types.Block, hash common.Hash) (*Transaction, error)

NewTransactionFromBlockHash returns a transaction that will serialize to the RPC representation.

func NewTransactionFromBlockIndex

func NewTransactionFromBlockIndex(b *types.Block, index uint64) (*Transaction, error)

NewTransactionFromBlockIndex returns a transaction that will serialize to the RPC representation.

type TxReceipt

type TxReceipt struct {
	BlockHash         common.Hash    `json:"blockHash"`
	TransactionHash   common.Hash    `json:"transactionHash"`
	BlockNumber       hexutil.Uint64 `json:"blockNumber"`
	TransactionIndex  hexutil.Uint64 `json:"transactionIndex"`
	GasUsed           hexutil.Uint64 `json:"gasUsed"`
	CumulativeGasUsed hexutil.Uint64 `json:"cumulativeGasUsed"`
	ContractAddress   common.Address `json:"contractAddress"`
	Logs              []*types.Log   `json:"logs"`
	LogsBloom         ethtypes.Bloom `json:"logsBloom"`
	ShardID           uint32         `json:"shardID"`
	From              string         `json:"from"`
	To                string         `json:"to"`
	Root              hexutil.Bytes  `json:"root"`
	Status            hexutil.Uint   `json:"status"`
}

TxReceipt represents a transaction receipt that will serialize to the RPC representation.

func NewTxReceipt

func NewTxReceipt(
	tx *types.Transaction, blockHash common.Hash, blockNumber, blockIndex uint64, receipt *types.Receipt,
) (*TxReceipt, error)

NewTxReceipt returns a transaction receipt that will serialize to the RPC representation

type UndelegateMsg

type UndelegateMsg struct {
	DelegatorAddress string       `json:"delegatorAddress"`
	ValidatorAddress string       `json:"validatorAddress"`
	Amount           *hexutil.Big `json:"amount"`
}

UndelegateMsg represents a staking transaction's delegate directive that will serialize to the RPC representation

Jump to

Keyboard shortcuts

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