CashScript / cashscript

⚖️ Easily write and interact with Bitcoin Cash smart contracts
https://cashscript.org
MIT License
111 stars 77 forks source link

[enhancement] enable placing constructor params in any part of function body #156

Open A60AB5450353F40E opened 10 months ago

A60AB5450353F40E commented 10 months ago

Declare them in contract() statement, but decide their position later, so compiled bytecode can add them later to avoid unnecessary stack juggling

rkalis commented 8 months ago

This could be a nice optimisation. There's also some advantages to keeping them at the start with e.g. simulated state. I think it's also easier to use compiled CashScript contracts outside of the official SDK if the constructor args are at the start.

So it might not be worth the extra complexity / tradeoffs to add this functionality, and the optimisation is probably not super big, so it might be more fruitful to allow for larger contracts on BCH instead. I'll leave the issue open to consider in the future.