46 std::vector<FF>
calldata = calldata_provider(max_calldata_size);
52 .caller_pc = caller_pc,
54 .is_static_call = is_static_call,
55 .gas_limit = gas_limit,
59 .internal_call_stack_at_exit = {},
60 .num_nested_calls = 0,
76 uint32_t max_return_data_size =
78 std::vector<FF> return_data = return_data_provider(max_return_data_size);
83 top_call_stack_metadata.
reverted = !success;
103 .contract_address = 0,
106 .is_static_call =
false,
111 .internal_call_stack_at_exit = {},
112 .halting_message = revert_message,
113 .num_nested_calls = 0,
126 auto cd_size =
context.get_parent_cd_size();
127 return [&
context,
cd_offset, cd_size](uint32_t max_size) -> std::vector<FF> {
131 return std::vector<FF>(
data.begin(),
data.end());
133 vinfo(
"Failed to collect calldata (to:",
151 return [&
context, rd_offset, rd_size](uint32_t max_size) -> std::vector<FF> {
154 std::vector<FF>
data;
155 data.reserve(std::min(max_size, rd_size));
156 for (uint32_t i = 0; i < std::min(max_size, rd_size); i++) {
157 data.push_back(
memory.get(rd_offset + i).as_ff());
161 vinfo(
"Failed to collect returndata (to:",
180 return [&internal_call_stack_manager]() -> std::vector<PC> {
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)
ReturnDataProvider make_return_data_provider(const ContextInterface &context, uint32_t rd_offset, uint32_t rd_size)
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)
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