diff options
author | Péter Szilágyi <peterke@gmail.com> | 2018-02-23 17:50:16 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-23 17:50:16 +0800 |
commit | 7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf (patch) | |
tree | 066d68abcb5cbe1980b0b770b8d135e06b54225d /accounts | |
parent | a1984ce727642b1989657b9eb430562d47f89c70 (diff) | |
parent | 5cf1d354704cd2cbc5c64c96d4aaabeeec7dd161 (diff) | |
download | go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar.gz go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar.bz2 go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar.lz go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar.xz go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.tar.zst go-tangerine-7f74bdf8dded0e1ac3c01e043c2ed89d78f308cf.zip |
Merge pull request #16164 from karalabe/les-receipt-fix-optimal
eth, les, light: filter on logs only, derive receipts on demand
Diffstat (limited to 'accounts')
-rw-r--r-- | accounts/abi/bind/backends/simulated.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/accounts/abi/bind/backends/simulated.go b/accounts/abi/bind/backends/simulated.go index bd342a8cb..fe7dea4da 100644 --- a/accounts/abi/bind/backends/simulated.go +++ b/accounts/abi/bind/backends/simulated.go @@ -428,10 +428,23 @@ func (fb *filterBackend) HeaderByNumber(ctx context.Context, block rpc.BlockNumb } return fb.bc.GetHeaderByNumber(uint64(block.Int64())), nil } + func (fb *filterBackend) GetReceipts(ctx context.Context, hash common.Hash) (types.Receipts, error) { return core.GetBlockReceipts(fb.db, hash, core.GetBlockNumber(fb.db, hash)), nil } +func (fb *filterBackend) GetLogs(ctx context.Context, hash common.Hash) ([][]*types.Log, error) { + receipts := core.GetBlockReceipts(fb.db, hash, core.GetBlockNumber(fb.db, hash)) + if receipts == nil { + return nil, nil + } + logs := make([][]*types.Log, len(receipts)) + for i, receipt := range receipts { + logs[i] = receipt.Logs + } + return logs, nil +} + func (fb *filterBackend) SubscribeTxPreEvent(ch chan<- core.TxPreEvent) event.Subscription { return event.NewSubscription(func(quit <-chan struct{}) error { <-quit |