frostfs-contract

module
v0.19.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2024 License: GPL-3.0

README

FrostFS

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:

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

Directories

Path Synopsis
Alphabet contract is a contract deployed in FrostFS sidechain.
Alphabet contract is a contract deployed in FrostFS sidechain.
Balance contract is a contract deployed in FrostFS sidechain.
Balance contract is a contract deployed in FrostFS sidechain.
Container contract is a contract deployed in FrostFS sidechain.
Container contract is a contract deployed in FrostFS sidechain.
FrostFS contract is a contract deployed in FrostFS mainchain.
FrostFS contract is a contract deployed in FrostFS mainchain.
Package frostfsid
Package frostfsid
Netmap contract is a contract deployed in FrostFS sidechain.
Netmap contract is a contract deployed in FrostFS sidechain.
Package nns contains non-divisible non-fungible NEP11-compatible token implementation.
Package nns contains non-divisible non-fungible NEP11-compatible token implementation.
Processing contract is a contract deployed in FrostFS mainchain.
Processing contract is a contract deployed in FrostFS mainchain.
Proxy contract is a contract deployed in FrostFS sidechain.
Proxy contract is a contract deployed in FrostFS sidechain.
rpcclient
alphabet
Package alphabet contains RPC wrappers for Alphabet contract.
Package alphabet contains RPC wrappers for Alphabet contract.
balance
Package balance contains RPC wrappers for Balance contract.
Package balance contains RPC wrappers for Balance contract.
container
Package container contains RPC wrappers for Container contract.
Package container contains RPC wrappers for Container contract.
frostfs
Package frostfs contains RPC wrappers for FrostFS contract.
Package frostfs contains RPC wrappers for FrostFS contract.
frostfsid
Package identity contains RPC wrappers for Identity contract.
Package identity contains RPC wrappers for Identity contract.
netmap
Package netmap contains RPC wrappers for Netmap contract.
Package netmap contains RPC wrappers for Netmap contract.
nns
Package nameservice contains RPC wrappers for NameService contract.
Package nameservice contains RPC wrappers for NameService contract.
policy
Package ape contains RPC wrappers for APE contract.
Package ape contains RPC wrappers for APE contract.
processing
Package multisignatureprocessing contains RPC wrappers for Multi Signature Processing contract.
Package multisignatureprocessing contains RPC wrappers for Multi Signature Processing contract.
proxy
Package notaryproxy contains RPC wrappers for Notary Proxy contract.
Package notaryproxy contains RPC wrappers for Notary Proxy contract.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL