WIP: FrostFS smart-contract
Find a file
Pavel Karpy 9d0a82bc89 [#190] common: Check NeoFS role for the next block
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>
2021-12-07 11:25:58 +03:00
.github .github: add testing workflow 2021-10-07 14:53:27 +03:00
alphabet [#184] *: Check status of neo.Transfer and gas.Transfer 2021-12-02 13:09:50 +03:00
audit [#185] *: Use neo-go's interop constants instead of local 2021-12-02 13:09:50 +03:00
balance [#185] *: Use neo-go's interop constants instead of local 2021-12-02 13:09:50 +03:00
common [#190] common: Check NeoFS role for the next block 2021-12-07 11:25:58 +03:00
container [#185] *: Use storage.DeserializeValues flag for search 2021-12-02 13:09:50 +03:00
neofs [#184] *: Cast to struct `iterator.Value() k/v pair 2021-12-02 13:09:50 +03:00
neofsid [#101] *: update storage after voting 2021-12-02 14:14:40 +03:00
netmap [#154] netmap: implement Register method 2021-12-06 11:03:33 +03:00
nns nns: disallow conflicting records on register 2021-12-02 14:14:22 +03:00
processing [#184] *: Change panic to Log+ABORT in OnNEP17Payment 2021-12-02 13:09:50 +03:00
proxy [#184] *: Change panic to Log+ABORT in OnNEP17Payment 2021-12-02 13:09:50 +03:00
reputation [#101] *: update storage after voting 2021-12-02 14:14:40 +03:00
subnet [#184] *: Move all panics on witness checks in common 2021-11-30 12:14:19 +03:00
tests [#154] netmap: implement Register method 2021-12-06 11:03:33 +03:00
.gitignore [#25] Update gitignore 2021-03-05 17:13:49 +03:00
CHANGELOG.md Backport changelog v0.12.2 2021-11-30 12:26:56 +03:00
go.mod [#184] go.mod: Update neo-go 2021-12-02 13:09:50 +03:00
go.sum [#184] go.mod: Update neo-go 2021-12-02 13:09:50 +03:00
LICENSE.md init commit 2020-04-01 19:27:29 +03:00
Makefile [#177] Makefile: build with neo-go from go.mod 2021-11-25 11:26:35 +03:00
README.md Release v0.12.1 2021-10-19 18:08:52 +03:00

NeoFS

NeoFS related smart contracts.


Overview

NeoFS-Contract contains all NeoFS related contracts written for neo-go compiler. These contracts are deployed both in main chain and side chain.

Main chain contracts:

  • neofs
  • processing

Side chain contracts:

  • alphabet
  • audit
  • balance
  • container
  • neofsid
  • netmap
  • nns
  • proxy
  • reputation

Getting started

Prerequisites

To compile smart contracts you need:

Compilation

To build and compile smart contract run make all command. Compiled contracts *_contract.nef and manifest config.json files are placed in the corresponding directories.

$ make all
neo-go contract compile -i alphabet -c alphabet/config.yml -m alphabet/config.json -o alphabet/alphabet_contract.nef
neo-go contract compile -i audit -c audit/config.yml -m audit/config.json -o audit/audit_contract.nef
neo-go contract compile -i balance -c balance/config.yml -m balance/config.json -o balance/balance_contract.nef
neo-go contract compile -i container -c container/config.yml -m container/config.json -o container/container_contract.nef
neo-go contract compile -i neofsid -c neofsid/config.yml -m neofsid/config.json -o neofsid/neofsid_contract.nef
neo-go contract compile -i netmap -c netmap/config.yml -m netmap/config.json -o netmap/netmap_contract.nef
neo-go contract compile -i proxy -c proxy/config.yml -m proxy/config.json -o proxy/proxy_contract.nef
neo-go contract compile -i reputation -c reputation/config.yml -m reputation/config.json -o reputation/reputation_contract.nef
neo-go contract compile -i nns -c nns/config.yml -m nns/config.json -o nns/nns_contract.nef
neo-go contract compile -i neofs -c neofs/config.yml -m neofs/config.json -o neofs/neofs_contract.nef
neo-go contract compile -i processing -c processing/config.yml -m processing/config.json -o processing/processing_contract.nef

You can specify path to the neo-go binary with NEOGO environment variable:

$ NEOGO=/home/user/neo-go/bin/neo-go make all

Remove compiled files with make clean or make mr_proper command.

Testing

Smartcontract tests reside in tests/ directory. To execute test suite after applying changes simply run make test.

$ make test
ok      github.com/nspcc-dev/neofs-contract/tests       0.462s

NeoFS API compatibility

neofs-contract version supported NeoFS API versions
v0.9.x v2.7.0, v2.8.0
v0.10.x v2.7.0, v2.8.0
v0.11.x v2.7.0, v2.8.0, v2.9.0
v0.12.x v2.10.0

License

This project is licensed under the GPLv3 License - see the LICENSE.md file for details