Browse Source

accounts/abi/bind: add NoSend transact option (#22446)

This adds a new option to avoid sending the transaction which is
created by calling a bound contract method.
Martin Redmond 4 năm trước cách đây
mục cha
commit
38ea7f2cf4
1 tập tin đã thay đổi với 5 bổ sung0 xóa
  1. 5 0
      accounts/abi/bind/base.go

+ 5 - 0
accounts/abi/bind/base.go

@@ -54,6 +54,8 @@ type TransactOpts struct {
 	GasLimit uint64   // Gas limit to set for the transaction execution (0 = estimate)
 
 	Context context.Context // Network context to support cancellation and timeouts (nil = no timeout)
+
+	NoSend bool // Do all transact steps but do not send the transaction
 }
 
 // FilterOpts is the collection of options to fine tune filtering for events
@@ -260,6 +262,9 @@ func (c *BoundContract) transact(opts *TransactOpts, contract *common.Address, i
 	if err != nil {
 		return nil, err
 	}
+	if opts.NoSend {
+		return signedTx, nil
+	}
 	if err := c.transactor.SendTransaction(ensureContext(opts.Context), signedTx); err != nil {
 		return nil, err
 	}