WIP: FrostFS smart-contract
Find a file
Alex Vanin 9350d027cf [#194] container: Register TLD with contract as owner
When notary disabled, there is no committee multi signature
for named container creation. Therefore, zone owner should be
the contract itself.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-12-08 18:19:07 +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 Release v0.13.0 - Sinjido (신지도, 薪智島) 2021-12-07 15:57:31 +03:00
container [#194] container: Register TLD with contract as owner 2021-12-08 18:19:07 +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 [#192] processing: Add processing contract test 2021-12-07 11:28:51 +03:00
.gitignore [#25] Update gitignore 2021-03-05 17:13:49 +03:00
CHANGELOG.md Release v0.13.0 - Sinjido (신지도, 薪智島) 2021-12-07 15:57:31 +03:00
go.mod Update neo-go to v0.98.0 2021-12-07 16:00:22 +03:00
go.sum Update neo-go to v0.98.0 2021-12-07 16:00:22 +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.13.0 - Sinjido (신지도, 薪智島) 2021-12-07 15:57:31 +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
  • subnet

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
/home/user/go/bin/cli contract compile -i alphabet -c alphabet/config.yml -m alphabet/config.json -o alphabet/alphabet_contract.nef
/home/user/go/bin/cli contract compile -i audit -c audit/config.yml -m audit/config.json -o audit/audit_contract.nef
/home/user/go/bin/cli contract compile -i balance -c balance/config.yml -m balance/config.json -o balance/balance_contract.nef
/home/user/go/bin/cli contract compile -i container -c container/config.yml -m container/config.json -o container/container_contract.nef
/home/user/go/bin/cli contract compile -i neofsid -c neofsid/config.yml -m neofsid/config.json -o neofsid/neofsid_contract.nef
/home/user/go/bin/cli contract compile -i netmap -c netmap/config.yml -m netmap/config.json -o netmap/netmap_contract.nef
/home/user/go/bin/cli contract compile -i proxy -c proxy/config.yml -m proxy/config.json -o proxy/proxy_contract.nef
/home/user/go/bin/cli contract compile -i reputation -c reputation/config.yml -m reputation/config.json -o reputation/reputation_contract.nef
/home/user/go/bin/cli contract compile -i subnet -c subnet/config.yml -m subnet/config.json -o subnet/subnet_contract.nef
/home/user/go/bin/cli contract compile -i nns -c nns/config.yml -m nns/config.json -o nns/nns_contract.nef
/home/user/go/bin/cli contract compile -i neofs -c neofs/config.yml -m neofs/config.json -o neofs/neofs_contract.nef
/home/user/go/bin/cli 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
v0.13.x v2.11.0

License

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