Getting application address at creation into inner TX

Hello,

I am testing the different application creation on Algorand, and wondering something. Currently in my python project, when I want to create an application, I am doing it in 2 step to create and fund it like that :

txn = transaction.ApplicationCreateTxn(
sender=sender.getAddress(),
on_complete=transaction.OnComplete.NoOpOC,
approval_program=approval,
clear_program=clear,
global_schema=globalSchema,
local_schema=localSchema,
app_args=app_args,
sp=client.suggested_params(),
)

and then

undAppTxn = transaction.PaymentTxn(
sender=funder.getAddress(),
receiver=appAddr,
amt=fundingAmount,
sp=suggestedParams,
)

the reason of that is because of the appAddr : currently I wait the application to be deploy before to get it using the app id with a function :

appAddr = get_application_address(appID)

and be able to put it in my fund transaction. But on a user side, it means 2 transaction to sign with around 4-5 seconds between each one of it, that is not very userfriendly.

Ideally, I would be able to get the “future” application id directly on the fly and then be able to group both tx to sign only 1 time. Is it something possible or I should keep the way I am doing it right now ?

1 Like