withdraw(epsilon) -> refresh(markets) -> supply(amount), all inside a
single invocation on proxy. caller must carry real authorization
(tx source / recorded auth) — this contract adds no privileges.
fn atomic_supply(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
proxy: soroban_sdk::Address,
market: u32,
epsilon: i128,
amount: i128,
) -> i128