10void update_enqueued_calls_for_protocol_contract(Tx& tx,
15 for (
auto& call : tx.setup_enqueued_calls) {
16 if (call.request.contract_address == prev_address) {
17 call.request.contract_address = new_address;
21 for (
auto& call : tx.app_logic_enqueued_calls) {
22 if (call.request.contract_address == prev_address) {
23 call.request.contract_address = new_address;
27 if (tx.teardown_enqueued_call.has_value() && tx.teardown_enqueued_call->request.contract_address == prev_address) {
28 tx.teardown_enqueued_call->request.contract_address = new_address;
36 const std::vector<AztecAddress>& contract_addresses,
39 if (contract_addresses.empty()) {
50 AztecAddress derived_address = contract_addresses[contract_address_index];
59 update_enqueued_calls_for_protocol_contract(
60 tx, derived_address, canonical_address);
70 update_enqueued_calls_for_protocol_contract(
71 tx, canonical_address, derived_address);
#define MAX_PROTOCOL_CONTRACTS
T select(std::mt19937_64 &rng) const
constexpr ProtocolContractsMutationConfig PROTOCOL_CONTRACTS_MUTATION_CONFIGURATION
void mutate_protocol_contracts(ProtocolContracts &protocol_contracts, Tx &tx, const std::vector< AztecAddress > &contract_addresses, std::mt19937_64 &rng)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::array< AztecAddress, MAX_PROTOCOL_CONTRACTS > derived_addresses