SpendInputType
CoinbaseInputType
ClainPeginInputType
- DposInputType
)
type (
return inp.AssetAmount
case *ClaimInput:
return inp.AssetAmount
- case *DposTx:
- return inp.AssetAmount
}
return bc.AssetAmount{}
}
return *inp.AssetId
case *ClaimInput:
return *inp.AssetId
- case *DposTx:
- return *inp.AssetId
}
return bc.AssetID{}
return inp.Amount
case *ClaimInput:
return inp.Amount
- case *DposTx:
- return inp.Amount
}
return 0
}
return inp.Arguments
case *ClaimInput:
return inp.Arguments
- case *DposTx:
- return inp.Arguments
}
return nil
}
inp.Arguments = args
case *ClaimInput:
inp.Arguments = args
- case *DposTx:
- inp.Arguments = args
}
}
if ci.Arbitrary, err = blockchain.ReadVarstr31(r); err != nil {
return err
}
- case DposInputType:
- ci := new(DposTx)
- t.TypedInput = ci
- if ci.SpendCommitmentSuffix, err = ci.SpendCommitment.readFrom(r, 1); err != nil {
- return err
- }
default:
return fmt.Errorf("unsupported input type %d", icType[0])
}
if inp.Arguments, err = blockchain.ReadVarstrList(r); err != nil {
return err
}
- case *DposTx:
- txType := uint64(0)
- if txType, err = blockchain.ReadVarint63(r); err != nil {
- return err
- }
- inp.Type = TxType(txType)
- var from []byte
- if from, err = blockchain.ReadVarstr31(r); err != nil {
- return err
- }
- inp.From = string(from)
- var to []byte
- if to, err = blockchain.ReadVarstr31(r); err != nil {
- return err
- }
- inp.To = string(to)
- if inp.Amount, err = blockchain.ReadVarint63(r); err != nil {
- return err
- }
- if inp.Stake, err = blockchain.ReadVarint63(r); err != nil {
- return err
- }
- if inp.Arguments, err = blockchain.ReadVarstrList(r); err != nil {
- return err
- }
-
- var info []byte
- if info, err = blockchain.ReadVarstr31(r); err != nil {
- return err
- }
- inp.Info = string(info)
}
return nil
})
if _, err = blockchain.WriteVarstr31(w, inp.Arbitrary); err != nil {
return errors.Wrap(err, "writing coinbase arbitrary")
}
- case *DposTx:
- if _, err = w.Write([]byte{DposInputType}); err != nil {
- return err
- }
- return inp.SpendCommitment.writeExtensibleString(w, inp.SpendCommitmentSuffix, t.AssetVersion)
}
return nil
}
_, err := blockchain.WriteVarstrList(w, inp.Arguments)
return err
- case *DposTx:
- if _, err := blockchain.WriteVarint63(w, uint64(inp.Type)); err != nil {
- return err
- }
- if _, err := blockchain.WriteVarstr31(w, []byte(inp.From)); err != nil {
- return err
- }
- if _, err := blockchain.WriteVarstr31(w, []byte(inp.To)); err != nil {
- return err
- }
- if _, err := blockchain.WriteVarint63(w, inp.Amount); err != nil {
- return err
- }
- if _, err := blockchain.WriteVarint63(w, inp.Stake); err != nil {
- return err
- }
- if _, err := blockchain.WriteVarstrList(w, inp.Arguments); err != nil {
- return err
- }
- _, err := blockchain.WriteVarstr31(w, []byte(inp.Info))
-
- return err
}
return nil
}