50 .caller_pc = caller_pc,
53 .gas_limit = gas_limit,
57 .internal_call_stack_at_exit = {},
58 .num_nested_calls = 0,
78 top_call_stack_metadata.
reverted = !success;
98 .contract_address = 0,
101 .is_static_call =
false,
106 .internal_call_stack_at_exit = {},
107 .halting_message = revert_message,
108 .num_nested_calls = 0,
120 auto cd_size =
context.get_parent_cd_size();
121 return [&
context, cd_size](uint32_t max_size) -> std::vector<FF> {
124 auto data =
context.get_calldata(0, std::min(max_size, cd_size));
126 return std::vector<FF>(
data.begin(),
data.end());
131 uint32_t rd_mem_offset_in_child,
134 return [&
context, rd_mem_offset_in_child, rd_size](uint32_t max_size) -> std::vector<FF> {
138 std::vector<FF>
data;
139 uint32_t effective_rd_size = std::min(max_size, rd_size);
140 data.reserve(effective_rd_size);
142 for (uint32_t i = 0; i < effective_rd_size; i++) {
143 data.push_back(
memory.get(rd_mem_offset_in_child + i).as_ff());
152 return [&internal_call_stack_manager]() -> std::vector<PC> {
#define BB_ASSERT(expression,...)
#define BB_ASSERT_GT(left, right,...)
#define BB_ASSERT_EQ(actual, expected,...)
virtual std::vector< PC > get_current_call_stack() const =0
const std::vector< MemoryValue > data
AztecAddress contract_address
std::function< std::vector< PC >()> InternalCallStackProvider
InternalCallStackProvider make_internal_call_stack_provider(const InternalCallStackManagerInterface &internal_call_stack_manager)
std::function< std::vector< FF >(uint32_t max_size)> CalldataProvider
std::function< std::vector< FF >(uint32_t max_size)> ReturnDataProvider
CalldataProvider make_calldata_provider(const ContextInterface &context)
ReturnDataProvider make_return_data_provider(const ContextInterface &context, uint32_t rd_mem_offset_in_child, uint32_t rd_size)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
uint32_t max_call_stack_depth
uint32_t max_returndata_size_in_fields
uint32_t max_call_stack_items
uint32_t max_calldata_size_in_fields