what's the maximum no of outgoing transactions for one contract invocation?

Hi devs,

In the past we've experienced a maximum number of 10 outgoing transactions for a processTransaction callback. Back then it was described to be a sort of protection, arbitrarily choosen to limit what a single contract can transact in one call.

I was lately checking the docs but only found a limit of 10 ARDR per outgoing transaction for the processTransaction callback. the 10 ARDR per transaction would have to be in the contract runner account balance. However there was not other limit (10 tx in total) mentioned.

Hence the questions: Does the limit still exist, and if, is it configurable? Does it also apply to processBlock?

The native http callers can be used to circumvent the limit, does this impact unit testing in any way?

Thanks a lot!

That's correct, the parameter is maxSubmittedTransactionsPerInvocation for the contract runner (remember that depending on where you define it you might need to prefix it with addon.contractRunner.).

If you have generated a unit test to verify this you should have seen a message in the logs saying so, like this:

Contract cannot submit more than %d transactions in a single invocation, it generated %d transactions, consider increasing maxSubmittedTransactionsPerInvocation

Otherwise maybe there's something else going on.

1 Like