Documentation
¶
Index ¶
- Variables
- func GenerateRandomBlock(number uint64) *edgetypes.Block
- func IsEmptyAddress(addr []byte) bool
- func NewEdgeBlockchain() (*edgeBlockchainHandle, error)
- func PolyBlockToEdge(polyBlock rpctypes.PolyBlock) *edgetypes.Block
- func ReadProtoFromFile(filepath string) ([][]byte, error)
- type BlockReader
- type JSONBlockReader
- type JSONReceiptReader
- type ProtoBlockReader
- type ReceiptReader
Constants ¶
This section is empty.
Variables ¶
var (
BlockReadEOF = errors.New("no more blocks to read")
)
var ForgeCmd = &cobra.Command{ Use: "forge", Short: "Forge dumped blocks on top of a genesis file.", Long: usage, RunE: func(cmd *cobra.Command, args []string) error { fmt.Println("forge called") blockchain, err := NewEdgeBlockchain() if err != nil { return err } blockReader, err := OpenBlockReader(inputForge.BlocksFile, inputForge.Mode) if err != nil { return err } receiptReader, err := OpenReceiptReader(inputForge.ReceiptsFile, inputForge.Mode) if inputForge.IncludeTxFees && err != nil { return err } err = readAllBlocksToChain(blockchain, blockReader, receiptReader) return err }, Args: func(cmd *cobra.Command, args []string) error { if inputForge.Client != "edge" { return fmt.Errorf("the client %s is not supported. Only Edge is supported", inputForge.Client) } if !slices.Contains([]string{"json", "proto"}, inputForge.Mode) { return fmt.Errorf("output format must one of [json, proto]") } f, err := os.Open(inputForge.GenesisFile) if err != nil { return fmt.Errorf("unable to open genesis file: %w", err) } genesisData, err := io.ReadAll(f) if err != nil { return fmt.Errorf("unable to read genesis file data: %w", err) } inputForge.GenesisData = genesisData return nil }, }
forgeCmd represents the forge command
Functions ¶
func GenerateRandomBlock ¶
GenerateRandomBlock in most cases we can use existing blocks and transactions for forgeries and testing, but at some point we might want to generate complete random blocks especially if we want to model state size after 10 - 20 years of operation
func IsEmptyAddress ¶
IsEmptyAddress will just check a slice of bytes to check if it's all zeros or not.
func NewEdgeBlockchain ¶
func NewEdgeBlockchain() (*edgeBlockchainHandle, error)
func PolyBlockToEdge ¶
PolyBlockToEdge will take the generic PolyBlock interface and convert it into an Edge compatible block.
func ReadProtoFromFile ¶
Types ¶
type BlockReader ¶
func OpenBlockReader ¶
func OpenBlockReader(file string, mode string) (BlockReader, error)
OpenBlockReader returns a block reader object which can be used to read the file. It will return a mode specific block reader.
type JSONBlockReader ¶
type JSONBlockReader struct {
// contains filtered or unexported fields
}
type JSONReceiptReader ¶ added in v0.1.17
type JSONReceiptReader struct {
// contains filtered or unexported fields
}
func (*JSONReceiptReader) ReadReceipt ¶ added in v0.1.17
func (receiptsReader *JSONReceiptReader) ReadReceipt() (*rpctypes.RawTxReceipt, error)
type ProtoBlockReader ¶
type ProtoBlockReader struct {
// contains filtered or unexported fields
}
type ReceiptReader ¶ added in v0.1.17
type ReceiptReader interface {
ReadReceipt() (*rpctypes.RawTxReceipt, error)
}
func OpenReceiptReader ¶ added in v0.1.17
func OpenReceiptReader(file string, mode string) (ReceiptReader, error)
OpenReceiptReader returns a receipt reader object which can be used to read the file. It will return a mode specific receipt reader.