fn compose_fungible_proof<Y: KernelSubstateApi<SystemLockData> + ClientApi<RuntimeError>>(
    proofs: &[Proof],
    resource_address: ResourceAddress,
    amount: Option<Decimal>,
    api: &mut Y
) -> Result<(FungibleProofSubstate, Vec<SubstateHandle>), RuntimeError>