Description
Multi-call transaction bundler that allows dApps and users to bundle multiple complex interactions (e.g. approve token -> deposit -> borrow -> swap -> stake) into a single atomic transaction.
Location
contracts/bundle-executor/src/lib.rs:
// contracts/bundle-executor/src/lib.rs
pub fn execute_batch_bundle(env: Env, calls: Vec<ContractCall>) -> Vec<Bytes> {
// Executes sequence of contract invocations; reverts everything if any call fails
}
Impact
Reduces user transaction signing overhead from 5 prompts to 1, while eliminating partial execution failure risk.
Required Fix
- Parse dynamic ContractCall arguments and target contract addresses.
- Execute calls sequentially and collect return values.
- Enforce atomic rollback on any internal revert.
Reference
Identified during full codebase production readiness audit of soroban-playground.
Description
Multi-call transaction bundler that allows dApps and users to bundle multiple complex interactions (e.g. approve token -> deposit -> borrow -> swap -> stake) into a single atomic transaction.
Location
contracts/bundle-executor/src/lib.rs:Impact
Reduces user transaction signing overhead from 5 prompts to 1, while eliminating partial execution failure risk.
Required Fix
Reference
Identified during full codebase production readiness audit of soroban-playground.