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.PaymentAmount, 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.WriteVarint63(w, inp.PaymentAmount); 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
}