Main chain NeoFS contract was not updated to v0.14.2. Current
contract version is v0.14.0 However, there is no functional
changes between v0.14.0 and v0.14.2. To avoid NeoFS contract
update, this commit lowers minimal contract version.
All other contracts have been updated to v0.14.2 and they are not
affected by this change.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Only leave `IRNode` in neofs contract because it is public.
The newly added conversion in `AlphabetList` shouldn't be a problem
because this is a read method.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
Current height makes it impossible to change
role and make some operations in one block.
Also, it may lead to accepting some operations
that are approved by already not valid alphabet.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
Add `// V2 format` comment to V2 specific code
in contracts. In `subnet` contract change comment
to sync with other.
Signed-off-by: Pavel Karpy <carpawell@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>
Unified format uses transfer type as the first byte
and extra details next. List of transfer types used in
contracts defined in `transfer.go`. It includes:
- mint,
- burn,
- lock,
- unlock,
- container fee.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
`x*2/3` is not equal to `x/3*2` with integers.
The only correct way to calculate threshold is
the first one.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
For committee operations in side chain we can't use 5\7 multi
address, instead we should use 4\7 for this case.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Change []byte type to interop.*aliasName*
types in contracts where it is suitable to
improve the readability of the contracts.
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
Proxy contract used by notary contract as a main tx
payment provider. `Verify` function verifies if
main tx contains multisig of 5\7 inner ring
nodes. If so, then contract pays for transaction.
This is easier than support multisig wallet with
GAS assets, because inner ring can change, therefore
multisig wallet can change periodically.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Define InnerRingList function that calls "innerRingList" method of
particular smart contract. Define InnerRingListViaStorage function
that reads address of smart contract from the storage by key, and
calls InnerRingList with the result. Reuse these functions in all
contracts.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Replace getList function to common package and export it. Reuse the function
in Container and Reputation contracts.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Define IRNode structure in common package. Replace innerRingInvoker function
in common package and export it. Reuse this function in all contracts.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>