aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/bind/base.go
diff options
context:
space:
mode:
authorDragan Milic <dragan@netice9.com>2019-01-03 19:54:24 +0800
committerGuillaume Ballet <gballet@gmail.com>2019-01-03 19:54:24 +0800
commit27913dd226e391b5260ab3b66ce7b75610a07ab7 (patch)
tree104eb5ed575105ad53237eab7401d1a392175fc6 /accounts/abi/bind/base.go
parentddaf48bf84b3ac54681b09d9dfbf439f6053cbc8 (diff)
downloaddexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar.gz
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar.bz2
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar.lz
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar.xz
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.tar.zst
dexon-27913dd226e391b5260ab3b66ce7b75610a07ab7.zip
accounts/abi/bind: add optional block number for calls (#17942)
Diffstat (limited to 'accounts/abi/bind/base.go')
-rw-r--r--accounts/abi/bind/base.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/accounts/abi/bind/base.go b/accounts/abi/bind/base.go
index 83ad1c8ae..c37bdf11d 100644
--- a/accounts/abi/bind/base.go
+++ b/accounts/abi/bind/base.go
@@ -36,10 +36,10 @@ type SignerFn func(types.Signer, common.Address, *types.Transaction) (*types.Tra
// CallOpts is the collection of options to fine tune a contract call request.
type CallOpts struct {
- Pending bool // Whether to operate on the pending state or the last known one
- From common.Address // Optional the sender address, otherwise the first account is used
-
- Context context.Context // Network context to support cancellation and timeouts (nil = no timeout)
+ Pending bool // Whether to operate on the pending state or the last known one
+ From common.Address // Optional the sender address, otherwise the first account is used
+ BlockNumber *big.Int // Optional the block number on which the call should be performed
+ Context context.Context // Network context to support cancellation and timeouts (nil = no timeout)
}
// TransactOpts is the collection of authorization data required to create a
@@ -148,10 +148,10 @@ func (c *BoundContract) Call(opts *CallOpts, result interface{}, method string,
}
}
} else {
- output, err = c.caller.CallContract(ctx, msg, nil)
+ output, err = c.caller.CallContract(ctx, msg, opts.BlockNumber)
if err == nil && len(output) == 0 {
// Make sure we have a contract to operate on, and bail out otherwise.
- if code, err = c.caller.CodeAt(ctx, c.address, nil); err != nil {
+ if code, err = c.caller.CodeAt(ctx, c.address, opts.BlockNumber); err != nil {
return err
} else if len(code) == 0 {
return ErrNoCode