OSDN Git Service

feat: add cross-chain output (#56)
[bytom/vapor.git] / protocol / bc / types / txinput.go
index 58d01d6..22e4485 100644 (file)
@@ -14,8 +14,6 @@ const (
        IssuanceInputType uint8 = iota
        SpendInputType
        CoinbaseInputType
-       ClainPeginInputType
-       DposInputType
 )
 
 type (
@@ -25,7 +23,6 @@ type (
                TypedInput
                CommitmentSuffix []byte
                WitnessSuffix    []byte
-               Peginwitness     [][]byte
        }
 
        // TypedInput return the txinput type.
@@ -47,10 +44,6 @@ func (t *TxInput) AssetAmount() bc.AssetAmount {
                }
        case *SpendInput:
                return inp.AssetAmount
-       case *ClaimInput:
-               return inp.AssetAmount
-       case *DposTx:
-               return inp.AssetAmount
        }
        return bc.AssetAmount{}
 }
@@ -62,10 +55,6 @@ func (t *TxInput) AssetID() bc.AssetID {
                return inp.AssetID()
        case *SpendInput:
                return *inp.AssetId
-       case *ClaimInput:
-               return *inp.AssetId
-       case *DposTx:
-               return *inp.AssetId
 
        }
        return bc.AssetID{}
@@ -78,10 +67,6 @@ func (t *TxInput) Amount() uint64 {
                return inp.Amount
        case *SpendInput:
                return inp.Amount
-       case *ClaimInput:
-               return inp.Amount
-       case *DposTx:
-               return inp.Amount
        }
        return 0
 }
@@ -117,10 +102,6 @@ func (t *TxInput) Arguments() [][]byte {
                return inp.Arguments
        case *SpendInput:
                return inp.Arguments
-       case *ClaimInput:
-               return inp.Arguments
-       case *DposTx:
-               return inp.Arguments
        }
        return nil
 }
@@ -132,10 +113,6 @@ func (t *TxInput) SetArguments(args [][]byte) {
                inp.Arguments = args
        case *SpendInput:
                inp.Arguments = args
-       case *ClaimInput:
-               inp.Arguments = args
-       case *DposTx:
-               inp.Arguments = args
        }
 }
 
@@ -152,9 +129,6 @@ func (t *TxInput) readFrom(r *blockchain.Reader) (err error) {
                return err
        }
 
-       if t.Peginwitness, err = blockchain.ReadVarstrList(r); err != nil {
-               return err
-       }
        var assetID bc.AssetID
        t.CommitmentSuffix, err = blockchain.ReadExtensibleString(r, func(r *blockchain.Reader) error {
                if t.AssetVersion != 1 {
@@ -185,24 +159,14 @@ func (t *TxInput) readFrom(r *blockchain.Reader) (err error) {
                        if si.SpendCommitmentSuffix, err = si.SpendCommitment.readFrom(r, 1); err != nil {
                                return err
                        }
-               case ClainPeginInputType:
-                       ci := new(ClaimInput)
-                       t.TypedInput = ci
-                       if ci.SpendCommitmentSuffix, err = ci.SpendCommitment.readFrom(r, 1); err != nil {
-                               return err
-                       }
+
                case CoinbaseInputType:
                        ci := new(CoinbaseInput)
                        t.TypedInput = ci
                        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])
                }
@@ -239,41 +203,6 @@ func (t *TxInput) readFrom(r *blockchain.Reader) (err error) {
                        if inp.Arguments, err = blockchain.ReadVarstrList(r); err != nil {
                                return err
                        }
-               case *ClaimInput:
-                       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
        })
@@ -286,9 +215,6 @@ func (t *TxInput) writeTo(w io.Writer) error {
                return errors.Wrap(err, "writing asset version")
        }
 
-       if _, err := blockchain.WriteVarstrList(w, t.Peginwitness); err != nil {
-               return errors.Wrap(err, "writing pegin witness")
-       }
        if _, err := blockchain.WriteExtensibleString(w, t.CommitmentSuffix, t.writeInputCommitment); err != nil {
                return errors.Wrap(err, "writing input commitment")
        }
@@ -322,11 +248,7 @@ func (t *TxInput) writeInputCommitment(w io.Writer) (err error) {
                        return err
                }
                return inp.SpendCommitment.writeExtensibleString(w, inp.SpendCommitmentSuffix, t.AssetVersion)
-       case *ClaimInput:
-               if _, err = w.Write([]byte{ClainPeginInputType}); err != nil {
-                       return err
-               }
-               return inp.SpendCommitment.writeExtensibleString(w, inp.SpendCommitmentSuffix, t.AssetVersion)
+
        case *CoinbaseInput:
                if _, err = w.Write([]byte{CoinbaseInputType}); err != nil {
                        return err
@@ -334,11 +256,6 @@ func (t *TxInput) writeInputCommitment(w io.Writer) (err error) {
                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
 }
@@ -347,6 +264,7 @@ func (t *TxInput) writeInputWitness(w io.Writer) error {
        if t.AssetVersion != 1 {
                return nil
        }
+
        switch inp := t.TypedInput.(type) {
        case *IssuanceInput:
                if _, err := blockchain.WriteVarstr31(w, inp.AssetDefinition); err != nil {
@@ -364,32 +282,6 @@ func (t *TxInput) writeInputWitness(w io.Writer) error {
        case *SpendInput:
                _, err := blockchain.WriteVarstrList(w, inp.Arguments)
                return err
-       case *ClaimInput:
-               _, 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
 }