call_with_limit() en Dusk parece una opción de llamada de contrato pequeña, pero cambia la forma en que los recursos de ejecución pueden moverse entre contratos.
Cuando un contrato inteligente de Dusk llama a otro, no tiene que entregar lo que sea que quede de gas. Con call_with_limit(), el llamador puede asignar a esa subllamada en particular su propio presupuesto.
Eso crea un límite más interesante de lo que parece a primera vista. Una transacción de Dusk todavía puede tener gas disponible mientras que un contrato descendente ya no tiene permitido gastar más de ese gas. Eso se siente digno de observar mientras Dusk busca llevar los mercados financieros onchain con instituciones con licencia de la UE, donde las llamadas compuestas entre contratos necesitan límites de ejecución previsibles. Lo que todavía no sé es si esto le da a los contratos de Dusk una forma significativa de aislar recursos de ejecución, o si simplemente traslada el riesgo de quedarse sin gas del nivel de la transacción a límites de subllamada definidos por el llamador.
Los detalles que vale la pena seguir son el límite que recibe cada llamada, qué ocurre cuando un destinatario agota solo esa asignación y si el llamador puede continuar con el gas que reste.
Un alto límite de gas de la transacción me dice cuánto presupuesto de ejecución existe en total. Me dice menos sobre qué tan segura es la forma en que ese presupuesto se reparte a lo largo de una cadena de llamadas entre contratos.
Más útil es si las subllamadas acotadas fallan de manera predecible sin desestabilizar el resto del camino de ejecución.
Me importaría más ese aislamiento de recursos que el límite de gas destacado de la transacción.
La pregunta es si Dusk está creando un límite real de ejecución entre contratos, o si solo agrega otro lugar donde una transacción compuesta puede quedarse sin recursos.
Estoy observando cómo los contratos reales de Dusk establecen esos límites y qué ocurre cuando una llamada acotada agota su asignación.

#dusk $DUSK @Dusk