WIP: FrostFS smart-contract
Find a file
Leonard Lyubich d95bc53589 [#269] netmap: Return same type from reading methods
There is a need to return similar structure of information about the
storage nodes from the contract storage readers. In previous
implementation some methods didn't return node state which can differ
with the one encoded in the node's BLOB.

Define `Node` structure of the information about the storage nodes
recorded in the contract storage. Return `[]Node` from all related
methods.

Also improve docs of touched contract methods.

Signed-off-by: Leonard Lyubich <ctulhurider@gmail.com>
2022-09-30 17:31:58 +04:00
.github [nspcc-dev/nspcc-infra#840]: Add DCO check 2022-09-22 20:10:51 +03:00
alphabet [#240] English Check 2022-04-26 23:22:06 +03:00
audit [#240] English Check 2022-04-26 23:22:06 +03:00
balance [#240] English Check 2022-04-26 23:22:06 +03:00
common [#252] Release v0.15.4 2022-07-27 12:14:20 +03:00
container [#265] container: Adjust container-contract permissions 2022-09-07 12:16:49 +03:00
neofs [#248] *: Fix integer types 2022-07-06 14:28:47 +03:00
neofsid [#240] English Check 2022-04-26 23:22:06 +03:00
netmap [#269] netmap: Return same type from reading methods 2022-09-30 17:31:58 +04:00
nns [#259] nns: Check admin in Renew 2022-08-29 12:03:24 +03:00
processing [#240] English Check 2022-04-26 23:22:06 +03:00
proxy [#240] English Check 2022-04-26 23:22:06 +03:00
reputation [#240] English Check 2022-04-26 23:22:06 +03:00
subnet [#240] English Check 2022-04-26 23:22:06 +03:00
tests [#269] netmap: Return same type from reading methods 2022-09-30 17:31:58 +04:00
.gitignore [#25] Update gitignore 2021-03-05 17:13:49 +03:00
CHANGELOG.md [#269] netmap: Return same type from reading methods 2022-09-30 17:31:58 +04:00
go.mod [#261] go.mod: Update neo-go to v0.99.2 2022-08-23 12:29:47 +03:00
go.sum [#261] go.mod: Update neo-go to v0.99.2 2022-08-23 12:29:47 +03:00
LICENSE.md init commit 2020-04-01 19:27:29 +03:00
Makefile [#264] make: Fix commit abbrev length in version 2022-09-06 12:14:03 +03:00
README.md [#240] English Check 2022-04-26 23:22:06 +03:00
VERSION [#252] Release v0.15.4 2022-07-27 12:14:20 +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 the mainchain and the sidechain.

Mainchain contracts:

  • neofs
  • processing

Sidechain 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
v0.14.x v2.11.0
v0.15.x v2.11.0, v2.12.0

License

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