6 "github.com/bytom/bytom/encoding/blockchain"
7 "github.com/bytom/bytom/protocol/bc"
10 // CoinbaseInput records the coinbase message
11 type CoinbaseInput struct {
15 // NewCoinbaseInput creates a new coinbase input struct
16 func NewCoinbaseInput(arbitrary []byte) *TxInput {
19 TypedInput: &CoinbaseInput{Arbitrary: arbitrary},
23 // AssetID implement the TypedInput.
24 func (cb *CoinbaseInput) AssetID() bc.AssetID {
28 // InputType is the interface function for return the input type
29 func (cb *CoinbaseInput) InputType() uint8 { return CoinbaseInputType }
31 func (cb *CoinbaseInput) readCommitment(r *blockchain.Reader) (err error) {
32 cb.Arbitrary, err = blockchain.ReadVarstr31(r)
36 func (cb *CoinbaseInput) readWitness(_ *blockchain.Reader) error { return nil }
38 func (cb *CoinbaseInput) writeCommitment(w io.Writer, _ uint64) error {
39 if _, err := w.Write([]byte{CoinbaseInputType}); err != nil {
43 _, err := blockchain.WriteVarstr31(w, cb.Arbitrary)
47 func (cb *CoinbaseInput) writeWitness(_ io.Writer) error { return nil }