Evgenii Stratonikov
ba7329c3a7
`PrevVersion` marks suitable version that we can upgrade from. However, we can have multiple minor versions, so, currently an upgrade from v0.19.3 to v0.19.1 is possible. Prevent this with an additional check. Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com> |
||
---|---|---|
.forgejo/workflows | ||
.github | ||
alphabet | ||
balance | ||
common | ||
commonclient | ||
container | ||
debian | ||
frostfs | ||
frostfsid | ||
netmap | ||
nns | ||
policy | ||
processing | ||
proxy | ||
rpcclient | ||
tests | ||
.gitignore | ||
CHANGELOG.md | ||
go.mod | ||
go.sum | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
VERSION |
FrostFS related smart contracts.
Overview
FrostFS-Contract contains all FrostFS related contracts written for neo-go compiler. These contracts are deployed both in the mainchain and the sidechain.
Mainchain contracts:
- frostfs
- processing
Sidechain contracts:
- alphabet
- audit
- balance
- container
- frostfsid
- netmap
- nns
- proxy
- reputation
Getting started
Prerequisites
To compile smart contracts you need:
- neo-go >= 0.99.2
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 frostfsid -c frostfsid/config.yml -m frostfsid/config.json -o frostfsid/frostfsid_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 nns -c nns/config.yml -m nns/config.json -o nns/nns_contract.nef
/home/user/go/bin/cli contract compile -i frostfs -c frostfs/config.yml -m frostfs/config.json -o frostfs/frostfs_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.
Building Debian package
To build Debian package containing compiled contracts, run make debpackage
command. Package will install compiled contracts *_contract.nef
and manifest
config.json
with corresponding directories to /var/lib/neofs/contract
for
further usage.
It will download and build neo-go, if needed.
To clean package-related files, use make debclean
.
Testing
Smartcontract tests reside in tests/
directory. To execute test suite
after applying changes, simply run make test
.
$ make test
ok git.frostfs.info/TrueCloudLab/frostfs-contract/tests 0.462s
License
This project is licensed under the GPLv3 License - see the LICENSE.md file for details