transactional
/ StorageTransaction
workflow, but can be done. This means that no changes that happened in the same tx will be visible in any case. Which can create issues, but must be very clear that it never happens, so we encourage good design patterns.
#204
After much thinking, I think the "readonly recent snapshot" is good for both the actor model theory and rust borrowing rules. It will take some changes to the
transactional
/StorageTransaction
workflow, but can be done. This means that no changes that happened in the same tx will be visible in any case. Which can create issues, but must be very clear that it never happens, so we encourage good design patterns.eg. if a contract queries it's erc20 balance before releasing it, that balance may be off if I had another msg in the same transaction that sent funds here. I would prefer to be explicit here to never require this to work, and leave us the flexibility of the actor model. If this is absolutely needed for some use cases in the future, we can revisit this decision. But it is always easier to provide more accurate data to a contract without breaking things, than provide less accurate data.
We will also add a gas price per call and a max depth (as we have the overhead of many contracts open simultaneously), as well as enforce no call cycles.
Originally posted by @ethanfrey in #98 (comment)
The text was updated successfully, but these errors were encountered: