ThereleaseAllfunction is limited to releasing a maximum of 12 contracts at once using an offset as an input. This is to avoid having an unbounded loop on the contracts being released which can lock the contract.
The limit of 12 came from our design assumption that we are going to deploy 1 contract per month, which would allow node operators to claim maximum of 12 months worth of payments at once. However, due to the message size limit on the FVM, we have to batch deploy our payouts, which means we deploy multiple contracts per month depending on the number of payees we have. Currently, we have to deploy ~6 batches per month which means we hit our offset limit in only 2 months.
Description
The
releaseAll
function is limited to releasing a maximum of 12 contracts at once using an offset as an input. This is to avoid having an unbounded loop on the contracts being released which can lock the contract.The limit of 12 came from our design assumption that we are going to deploy 1 contract per month, which would allow node operators to claim maximum of 12 months worth of payments at once. However, due to the message size limit on the FVM, we have to batch deploy our payouts, which means we deploy multiple contracts per month depending on the number of payees we have. Currently, we have to deploy ~6 batches per month which means we hit our offset limit in only 2 months.