4 ms·
i'm surprised they don't have inbuilt support for some kind of async transfer primitive. so instead of doing: address.call.value(amount) and the call being syn
by benmmurphy 10y ago
i'm surprised they don't have inbuilt support for some kind of async transfer primitive. so instead of doing:
address.call.value(amount) and the call being synchronous
you do:
address.call.queue_value(amount) and then at the end of your contract execution it runs the asynchronous calls that have been queued
a lot of the DAO calls (all of them??) to external addresses don't need the result so having an asynchronous transfer primitive would have just solved the problem.
these external callbacks are very dangerous. for example you have function _entry_ call function _logic_ and everything is ok. then someone decides to change function _logic_ to perform an external callback and this breaks the behaviour of function _entry_. when you have this non-local side effects from changes you will create security bugs very easily.