syntax = "proto3";

package tycho.evm.v1;

import "tycho/evm/v1/common.proto";

// WARNING: DEPRECATED. Please use common.proto's TransactionChanges and BlockChanges instead.
// This file contains proto definitions specific to the VM integration.

// A set of changes aggregated by transaction.
message TransactionContractChanges {
  // The transaction instance that results in the changes.
  Transaction tx = 1;
  // Contains the changes induced by the above transaction, aggregated on a per-contract basis.
  repeated ContractChange contract_changes = 2;
  // An array of newly added components.
  repeated ProtocolComponent component_changes = 3;
  // An array of balance changes to components.
  repeated BalanceChange balance_changes = 4;
}

// A set of transaction changes within a single block.
message BlockContractChanges {
  // The block for which these changes are collectively computed.
  Block block = 1;
  // The set of transaction changes observed in the specified block.
  repeated TransactionContractChanges changes = 2;
}
