Closed carpawell closed 4 months ago
shared memory is not the root of the problem. According to the actor concept, the resulting tx should not be modified due to calculated fees. Therefore, we should use a special actor instead of modifying the tx
the closest approach could be TransactionModifier
opt, but
MakeUnsigned* methods do not run it.
lets create an issue in Neo Go project to find the best solution
shared memory is not the root of the problem
What do you mean? We are not allowed to run our tests in some cases. With this PR it can be done now. It either works or not. Do you want to change it to the actors in this PR? Why?
lets create an issue in Neo Go project to find the best solution
How should it sound?
It either works or not.
definitely it should work. But proposed solution is a crutch to me: modifying actor-prepared txs is unsafe and can lead to incorrect behavior. Since in this case the crutch is working, we can merge it only with issue+FIXME
How should it sound?
i'll do my best to create it
we can merge it only with issue+FIXME
https://github.com/nspcc-dev/neofs-contract/issues/418. I want to be sure any bigger change works and want to see if there are more places with similar problems. Currently, I have to concentrate on deployment and just want a fix in the master.
The whole
makeUnsignedDesignateCommitteeNotaryTx
is designed to be called many times if something goes wrong. But currently neo-go's actor shares signers with TXs it produces, so the actor is broken immediately after this func is called. Can be seen only if transaction-to-sign is expired, in practice happened when deployment nodes were started with a huge delay.