Let’s take four contracts:
FooBarBazQux
Foo is the master contract, having a reference to all other contracts. Bar is just a storage device, containing some state. Baz and Qux are subordinate to Foo in the sense that they let it modify their storage.
Now, suppose that Foo has some logic dependent on some state in Bar. Depending on the value of the said state, Foo might modify either Baz or Qux.
If a user interacts with Foo, how are the access lists generated by the wallet?
Will the wallet include both Baz and Qux in the write-create access lists? Or only one of them, depending upon the state in Bar?
But if only one of them is included (say Baz), doesn’t this mean that the tx will fail if, prior to the user’s tx, another tx gets submitted that modifies the state of Bar so that Foo will touch Qux instead of Baz?