@@ -46,26 +46,28 @@ func TestStateDBCommitPropagatesOptions(t *testing.T) {
4646 },
4747 },
4848 )
49- var rec snapTreeRecorder
50- sdb , err := New (types .EmptyRootHash , NewDatabaseWithNodeDB (memdb , triedb ), & rec )
49+ trieRec , _ := triedb .Backend ().(* triedbRecorder )
50+ var snapRec snapTreeRecorder
51+ sdb , err := New (types .EmptyRootHash , NewDatabaseWithNodeDB (memdb , triedb ), & snapRec )
5152 require .NoError (t , err , "New()" )
5253
5354 // Ensures that rec.Update() will be called.
5455 sdb .SetNonce (common.Address {}, 42 )
5556
5657 const snapshotPayload = "hello world"
57- const trieDBPayload = "goodbye world"
58+ var (
59+ parentHash = common .HexToHash ("0x0102030405060708090a0b0c0d0e0f1011121314151617181920212223242526" )
60+ currentHash = common .HexToHash ("0x1234567890123456789012345678901234567890123456789012345678901234" )
61+ )
5862 snapshotOpt := stateconf .WithSnapshotUpdatePayload (snapshotPayload )
59- triedbOpt := stateconf .WithTrieDBUpdatePayload (trieDBPayload )
63+ triedbOpt := stateconf .WithTrieDBUpdatePayload (parentHash , currentHash )
6064 _ , err = sdb .Commit (0 , false , stateconf .WithSnapshotUpdateOpts (snapshotOpt ), stateconf .WithTrieDBUpdateOpts (triedbOpt ))
61- require .NoErrorf (t , err , "%T.Commit(..., %T, %T)" , sdb , snapshotOpt , triedbOpt )
6265
63- assert .Equalf (t , snapshotPayload , rec .gotPayload , "%T payload propagated via %T.Commit() to %T.Update()" , snapshotOpt , sdb , rec )
64- innerTrieDB , ok := triedb .Backend ().(* triedbRecorder )
65- if ! ok {
66- t .Fatalf ("expected %T to be a *triedbRecorder" , triedb .Backend ())
67- }
68- assert .Equalf (t , trieDBPayload , innerTrieDB .gotPayload , "%T payload propagated via %T.Commit() to %T.Update()" , triedbOpt , sdb , rec )
66+ require .NoErrorf (t , err , "%T.Commit(..., %T, %T)" , sdb , snapshotOpt , triedbOpt )
67+ assert .Equalf (t , snapshotPayload , snapRec .gotPayload , "%T payload propagated via %T.Commit() to %T.Update()" , snapshotOpt , sdb , snapRec )
68+ assert .Truef (t , trieRec .exists , "%T exists propagated via %T.Commit() to %T.Update()" , triedbOpt , sdb , trieRec )
69+ assert .Equalf (t , parentHash , trieRec .parentBlockHash , "%T parentHash propagated via %T.Commit() to %T.Update()" , triedbOpt , sdb , trieRec )
70+ assert .Equalf (t , currentHash , trieRec .currentBlockHash , "%T currentHash propagated via %T.Commit() to %T.Update()" , triedbOpt , sdb , trieRec )
6971}
7072
7173type snapTreeRecorder struct {
@@ -104,7 +106,9 @@ func (snapshotStub) Root() common.Hash {
104106
105107type triedbRecorder struct {
106108 * hashdb.Database
107- gotPayload any
109+ parentBlockHash common.Hash
110+ currentBlockHash common.Hash
111+ exists bool
108112}
109113
110114func (r * triedbRecorder ) Update (
@@ -115,7 +119,7 @@ func (r *triedbRecorder) Update(
115119 states * triestate.Set ,
116120 opts ... stateconf.TrieDBUpdateOption ,
117121) error {
118- r .gotPayload = stateconf .ExtractTrieDBUpdatePayload (opts ... )
122+ r .parentBlockHash , r . currentBlockHash , r . exists = stateconf .ExtractTrieDBUpdatePayload (opts ... )
119123 return r .Database .Update (root , parent , block , nodes , states )
120124}
121125
0 commit comments