Label: complexity: high
Points: 200
Description
Released invoice proceeds sit idle until recipients manually move them. This issue adds amm_on_release: bool — when set, _release() deposits each recipient's share into an AMM liquidity pool contract, providing instant liquidity and yield on released funds.
Technical Context
Involves lib.rs _release(). Store amm_contract: Option<Address> in persistent storage. When invoice.amm_on_release is true and amm_contract is set, for each recipient call amm_contract.add_liquidity(recipient, amount) instead of direct transfer. Use mock AMM contract in tests.
Acceptance Criteria
Label: complexity: high
Points: 200
Description
Released invoice proceeds sit idle until recipients manually move them. This issue adds
amm_on_release: bool— when set,_release()deposits each recipient's share into an AMM liquidity pool contract, providing instant liquidity and yield on released funds.Technical Context
Involves
lib.rs_release(). Storeamm_contract: Option<Address>in persistent storage. Wheninvoice.amm_on_releaseis true andamm_contractis set, for each recipient callamm_contract.add_liquidity(recipient, amount)instead of direct transfer. Use mock AMM contract in tests.Acceptance Criteria
create_invoice()acceptsamm_on_release: bool_release()calls AMM contract for each recipient when flag setamm_on_release = falsecargo clippypasses with zero warnings