FrostFS smart-contract
Find a file
Evgenii Stratonikov fd70f28b47 [#236] *: Notify user on success
Add notifications to:
- container put, delete, setEACL
- netmap addPeer, updateState

Because notifications are limited in size (currently arguments should be
less than 1024 bytes) provide only minimal information, such as entity
ID (container ID or node public key).

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-04-13 12:14:35 +03:00
.github .github: add testing workflow 2021-10-07 14:53:27 +03:00
alphabet [#234] *: Fix some lint issues 2022-03-28 10:27:25 +03:00
audit [#222] *: Replace IRNode with raw public keys 2022-03-23 11:33:27 +03:00
balance [#222] *: Replace IRNode with raw public keys 2022-03-23 11:33:27 +03:00
common [#231] Lower minimal contract version update to v0.14.0 2022-03-23 18:48:14 +03:00
container [#236] *: Notify user on success 2022-04-13 12:14:35 +03:00
neofs [#232] *: Remove old update code 2022-03-29 09:44:38 +03:00
neofsid [#222] *: Replace IRNode with raw public keys 2022-03-23 11:33:27 +03:00
netmap [#236] *: Notify user on success 2022-04-13 12:14:35 +03:00
nns [#238] nns: Fix maxDomainNameFragmentLength 2022-04-05 14:57:06 +03:00
processing [#209] *: use current block index in GetDesignatedByRole 2022-01-11 11:57:00 +03:00
proxy *: remove update migration code 2022-02-07 17:49:07 +03:00
reputation [#222] *: Replace IRNode with raw public keys 2022-03-23 11:33:27 +03:00
subnet *: remove update migration code 2022-02-07 17:49:07 +03:00
tests [#232] netmap: Allow to configure snapshot history size 2022-03-29 09:44:38 +03:00
.gitignore [#25] Update gitignore 2021-03-05 17:13:49 +03:00
CHANGELOG.md Release v0.15.0 - Heuksando (흑산도, 黑山島) 2022-03-23 18:48:14 +03:00
go.mod [#234] go.mod: Update neo-go version 2022-03-28 10:27:25 +03:00
go.sum [#234] go.mod: Update neo-go version 2022-03-28 10:27:25 +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.14.2 2022-02-07 19:08:48 +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