As soon as migration required changes in memory, we
need bigger scope. Otherwise in requires two step migration
which is unpleasant and annoying.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Balance check at container.Put command will drop some invalid
transactions from the side chain network before inner ring
approval.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
In v0.8.0:
- containers were stored as stable marshaled binary,
In v0.9.0:
- containers are stored the same way as eACL,
- eACL structure has new `token []byte field`.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
With contract migration from v0.8.0 to v0.9.0 we need to replace
structures in contract memory. This produces native contract calls
that are not available in scope of `management.Update`. Therefore
we need to apply new scope first.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
With `NetmapCandidate` storage nodes can monitor
if they are expected to be in the netmap at next
epoch or not. This is also important for monitoring
when some nodes does not bootstrap immediately.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
There is a number of contracts which return only `true` value.
Also handling `FAULT` on the client is easier then also checking return
value.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
Container now stored the same way as ExtendedACL: with
signature and session token. This is required for signature
checks when session token presented.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Signature check may fail if container has NFT attributes.
So these checks should be done in alphabet nodes and not
inside the contract.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Everything can be implemented in `OnNEP17Payment` directly.
In case of 0 amount, exception is raised instead of returning `false`
value.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
Processing contracts pays for cheque that transfer
assets back to the user, so user should transfer
some fee to this contract.
Withdraw fee defined in NeoFS global configuration.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Processing contract deployed in main chain and processes
multi signature invocations of NeoFS contract by
verifying multi signature and paying for it.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
All ballots and voting methods are gone. Multi signature
checks are used in all contracts.
Default global config values are also removed. Configuration
must be provided by initialization script.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Ballots are inefficient to collect invocations of contract methods.
Instead contract can check multi signature collected outside of the
contract, e.g. with notary service.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>