syntax = "proto3"; package tycho.evm.v1; import "tycho/evm/v1/common.proto"; message ContractSlot { bytes slot = 2; bytes value = 3; } message ContractChange { bytes address = 1; // empty bytes indicates no change bytes balance = 2; // empty bytes indicates no change bytes code = 3; // empty sequence indicates no change repeated ContractSlot slots = 4; // Whether this is an update, creation or deletion ChangeType change = 5; } message TransactionContractChanges { Transaction tx = 1; repeated ContractChange contract_changes = 2; repeated ProtocolComponent component_changes = 3; repeated BalanceChange balance_changes = 4; } message BlockContractChanges { Block block = 1; repeated TransactionContractChanges changes = 2; }