github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/state/runtime/instrumentation/intrumentation_test.go (about) 1 package instrumentation_test 2 3 /* 4 import ( 5 "context" 6 "encoding/json" 7 "io" 8 "os" 9 "testing" 10 11 "github.com/0xPolygon/supernets2-node/db" 12 "github.com/0xPolygon/supernets2-node/log" 13 "github.com/0xPolygon/supernets2-node/state" 14 "github.com/0xPolygon/supernets2-node/state/runtime/instrumentation" 15 "github.com/0xPolygon/supernets2-node/state/tree" 16 "github.com/0xPolygon/supernets2-node/test/dbutils" 17 "github.com/ethereum/go-ethereum/common" 18 "github.com/stretchr/testify/require" 19 ) 20 21 var ( 22 ctx = context.Background() 23 ) 24 25 var cfg = dbutils.NewConfigFromEnv() 26 27 var stateCfg = state.Config{ 28 DefaultChainID: 1000, 29 MaxCumulativeGasUsed: 800000, 30 } 31 32 func TestSCTxs(t *testing.T) { 33 var sequencerAddress = common.HexToAddress("0x617b3a3528F9cDd6630fd3301B9c8911F7Bf063D") 34 var transactionHash = "0x73487b885a5f595b48a9e4227f30c7d538cd89e8b54d565c7c559d2e073062a0" 35 // var transactionHash = "0x4a1b960d5fcf8107a41704e6d5cb3ec9a75bb0cb5c37b898b718c74a6bcab5bb" 36 // var transactionHash = "0xc63446b6277b82b8be92c3cbe57db9beb94c91063d6d0667e6e23aed178b836e" 37 // var transactionHash = "0xd071ac9bd2209febbfdc447834d7a763150f1f50ba444ef87fb838cdd060741a" 38 // var transactionHash = "0x2dc633855d6494fc846d5ab332b5c016998327654c38627434a26c7c2317deeb" 39 // var transactionHash = "0x152105092be3ec6fb42c4970b9b90d57e739b0351c64efe12e8510332ef495d6" 40 // var transactionHash = "0x125258172bbcfcc83c4dc4f81fe1858fcce1adc76ded265081f12e8b293ab449" 41 // var transactionHash = "0x545531ac79f04c010bb9d25789e8c6306a08efaa1e15e5bdc5c27c1f4bab181c" 42 // var transactionHash = "0x508c2cbfc84b8c3f6a54ccf4ef1fd56c9ce31fad4b05e843582a566e5a85e460" 43 // var transactionHash = "0x30632f89439ab8074d8252ee44f49c929e2e8eb5364708441c8d121f89a76c88" 44 // var transactionHash = "0xc532a6d8a85d50950d853a8d8cf66ac18741a40a3cd6666e55ef172756e1156d" 45 // var transactionHash = "0xd9bf4f0c140c06348e1231ccdc4f393a6475889a28b00f0ad01c8f6b3f9bf792" 46 47 // Create State db 48 stateDb, err := db.NewSQLDB(cfg) 49 require.NoError(t, err) 50 51 // Create State tree 52 store := tree.NewPostgresStore(stateDb) 53 mt := tree.NewMerkleTree(store, tree.DefaultMerkleTreeArity) 54 scCodeStore := tree.NewPostgresSCCodeStore(stateDb) 55 stateTree := tree.NewStateTree(mt, scCodeStore) 56 57 // Create state 58 st := state.NewState(stateCfg, state.NewPostgresStorage(stateDb), stateTree) 59 60 lastBatch, err := st.GetLastBatch(ctx, true, "") 61 require.NoError(t, err) 62 63 // Create Batch Processor 64 bp, err := st.NewBatchProcessor(ctx, sequencerAddress, lastBatch.Header.Root[:], "") 65 require.NoError(t, err) 66 67 // Execution Trace 68 receipt, err := bp.Host.State.GetTransactionReceipt(ctx, common.HexToHash(transactionHash), "") 69 require.NoError(t, err) 70 71 // Read tracer from filesystem 72 var tracer instrumentation.Tracer 73 tracerFile, err := os.Open("../../../test/tracers/tracer.json") 74 require.NoError(t, err) 75 defer tracerFile.Close() 76 77 byteCode, err := io.ReadAll(tracerFile) 78 require.NoError(t, err) 79 80 err = json.Unmarshal(byteCode, &tracer) 81 require.NoError(t, err) 82 83 result, err := st.DebugTransaction(context.Background(), receipt.TxHash, tracer.Code) 84 require.NoError(t, err) 85 86 // j, err := json.Marshal(result.ExecutorTrace) 87 // require.NoError(t, err) 88 // log.Debug(string(j)) 89 90 file, _ := json.MarshalIndent(result.ExecutorTrace, "", " ") 91 err = os.WriteFile("trace.json", file, 0644) 92 require.NoError(t, err) 93 94 log.Debug(string(result.ExecutorTraceResult)) 95 } 96 */