good morning!!!!

Skip to content
Snippets Groups Projects
Unverified Commit adf47661 authored by ledgerwatch's avatar ledgerwatch Committed by GitHub
Browse files

Scan transaction to select test cases (#2225)


* Scan txs

* Find examples with access lists

Co-authored-by: default avatarAlex Sharp <alexsharp@Alexs-MacBook-Pro.local>
parent 876dde50
Branches
Tags
No related merge requests found
...@@ -2030,6 +2030,44 @@ func trimTxs(chaindata string) error { ...@@ -2030,6 +2030,44 @@ func trimTxs(chaindata string) error {
return nil return nil
} }
func scanTxs(chaindata string) error {
db := kv2.MustOpen(chaindata).RwKV()
defer db.Close()
tx, err := db.BeginRo(context.Background())
if err != nil {
return err
}
defer tx.Rollback()
c, err := tx.Cursor(dbutils.EthTx)
if err != nil {
return err
}
defer c.Close()
trTypes := make(map[byte]int)
trTypesAl := make(map[byte]int)
for k, v, err := c.First(); k != nil; k, v, err = c.Next() {
if err != nil {
return err
}
var tr types.Transaction
if tr, err = types.DecodeTransaction(rlp.NewStream(bytes.NewReader(v), 0)); err != nil {
return err
}
if _, ok := trTypes[tr.Type()]; !ok {
fmt.Printf("Example for type %d:\n%x\n", tr.Type(), v)
}
trTypes[tr.Type()]++
if tr.GetAccessList().StorageKeys() > 0 {
if _, ok := trTypesAl[tr.Type()]; !ok {
fmt.Printf("Example for type %d with AL:\n%x\n", tr.Type(), v)
}
trTypesAl[tr.Type()]++
}
}
fmt.Printf("Transaction types: %v\n", trTypes)
return nil
}
func scanReceipts(chaindata string) error { func scanReceipts(chaindata string) error {
dbdb := kv2.MustOpen(chaindata).RwKV() dbdb := kv2.MustOpen(chaindata).RwKV()
defer dbdb.Close() defer dbdb.Close()
...@@ -2266,6 +2304,9 @@ func main() { ...@@ -2266,6 +2304,9 @@ func main() {
case "trimTxs": case "trimTxs":
err = trimTxs(*chaindata) err = trimTxs(*chaindata)
case "scanTxs":
err = scanTxs(*chaindata)
case "scanReceipts": case "scanReceipts":
err = scanReceipts(*chaindata) err = scanReceipts(*chaindata)
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment