- if err = b.AddInput(txInput, sigInst); err != nil {
- return errors.Wrap(err, "adding inputs")
+ op = vm.OP_VOTE
+ case types.CancelVote:
+ if len(a.Forgers) == 0 {
+ return errors.New("Forgers is null for dpos CancelVote")
+ }
+ if a.Amount < consensus.CancelVoteForgerFee {
+ return errors.New("The transaction fee is 10000000 for dpos Registe")
+ }
+
+ for _, forger := range a.Forgers {
+ if !dpos.GDpos.HaveVote(a.Address, forger) {
+ return fmt.Errorf("delegate name: %s is not voted", forger)
+ }