diff options
author | Dan Kinsley <dan@joincivil.com> | 2019-02-20 15:08:54 +0800 |
---|---|---|
committer | Guillaume Ballet <gballet@gmail.com> | 2019-02-20 15:08:54 +0800 |
commit | f49f95e2b055fa5610078df3059dccc74a65c615 (patch) | |
tree | c0319d9fd2eb4ce8e76305707e9c26231b90ccbb | |
parent | d3ccedc767372007e8b035c3d1f68218c3d59be5 (diff) | |
download | go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar.gz go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar.bz2 go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar.lz go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar.xz go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.tar.zst go-tangerine-f49f95e2b055fa5610078df3059dccc74a65c615.zip |
accounts/abi: mutex lock in TransactionByHash and code cleanup (#19133)
-rw-r--r-- | accounts/abi/bind/backends/simulated.go | 8 | ||||
-rw-r--r-- | accounts/abi/bind/backends/simulated_test.go | 16 | ||||
-rw-r--r-- | accounts/abi/bind/base_test.go | 16 |
3 files changed, 36 insertions, 4 deletions
diff --git a/accounts/abi/bind/backends/simulated.go b/accounts/abi/bind/backends/simulated.go index 400227c3a..de81db134 100644 --- a/accounts/abi/bind/backends/simulated.go +++ b/accounts/abi/bind/backends/simulated.go @@ -168,18 +168,18 @@ func (b *SimulatedBackend) TransactionReceipt(ctx context.Context, txHash common // blockchain. The isPending return value indicates whether the transaction has been // mined yet. Note that the transaction may not be part of the canonical chain even if // it's not pending. -func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash common.Hash) (tx *types.Transaction, isPending bool, err error) { +func (b *SimulatedBackend) TransactionByHash(ctx context.Context, txHash common.Hash) (*types.Transaction, bool, error) { + b.mu.Lock() + defer b.mu.Unlock() - tx = b.pendingBlock.Transaction(txHash) + tx := b.pendingBlock.Transaction(txHash) if tx != nil { return tx, true, nil } - tx, _, _, _ = rawdb.ReadTransaction(b.database, txHash) if tx != nil { return tx, false, nil } - return nil, false, ethereum.NotFound } diff --git a/accounts/abi/bind/backends/simulated_test.go b/accounts/abi/bind/backends/simulated_test.go index ac6e9e228..bd75807d7 100644 --- a/accounts/abi/bind/backends/simulated_test.go +++ b/accounts/abi/bind/backends/simulated_test.go @@ -1,3 +1,19 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + package backends_test import ( diff --git a/accounts/abi/bind/base_test.go b/accounts/abi/bind/base_test.go index 8adff8b59..02caf457a 100644 --- a/accounts/abi/bind/base_test.go +++ b/accounts/abi/bind/base_test.go @@ -1,3 +1,19 @@ +// Copyright 2019 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + package bind_test import ( |