parent
a0d897d173
commit
72574e56eb
2 changed files with 193 additions and 21 deletions
129
.github/logo.svg
vendored
Normal file
129
.github/logo.svg
vendored
Normal file
|
@ -0,0 +1,129 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
sodipodi:docname="logo_fs.svg"
|
||||||
|
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||||
|
id="svg57"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 105 25"
|
||||||
|
height="25mm"
|
||||||
|
width="105mm">
|
||||||
|
<defs
|
||||||
|
id="defs51">
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath434">
|
||||||
|
<path
|
||||||
|
d="M 0,0 H 1366 V 768 H 0 Z"
|
||||||
|
id="path432" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-x="130"
|
||||||
|
inkscape:window-height="1040"
|
||||||
|
inkscape:window-width="1274"
|
||||||
|
height="50mm"
|
||||||
|
units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:cy="344.49897"
|
||||||
|
inkscape:cx="468.64708"
|
||||||
|
inkscape:zoom="0.7"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
borderopacity="1.0"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
id="base" />
|
||||||
|
<metadata
|
||||||
|
id="metadata54">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
inkscape:label="Layer 1">
|
||||||
|
<g
|
||||||
|
id="g424"
|
||||||
|
transform="matrix(0.35277777,0,0,-0.35277777,63.946468,10.194047)">
|
||||||
|
<path
|
||||||
|
d="m 0,0 v -8.093 h 12.287 v -3.94 H 0 V -24.067 H -4.534 V 3.898 H 15.677 V 0 Z"
|
||||||
|
style="fill:#00e396;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path426" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.35277777,0,0,-0.35277777,-315.43002,107.34005)"
|
||||||
|
id="g428">
|
||||||
|
<g
|
||||||
|
id="g430"
|
||||||
|
clip-path="url(#clipPath434)">
|
||||||
|
<g
|
||||||
|
id="g436"
|
||||||
|
transform="translate(1112.874,278.2981)">
|
||||||
|
<path
|
||||||
|
d="M 0,0 C 1.822,-0.932 3.354,-2.359 4.597,-4.28 L 1.165,-7.373 c -0.791,1.695 -1.779,2.924 -2.966,3.686 -1.186,0.763 -2.768,1.145 -4.745,1.145 -1.949,0 -3.461,-0.389 -4.534,-1.166 -1.074,-0.777 -1.61,-1.772 -1.61,-2.987 0,-1.13 0.523,-2.027 1.568,-2.69 1.045,-0.664 2.909,-1.236 5.593,-1.716 2.514,-0.452 4.512,-1.024 5.995,-1.716 1.483,-0.693 2.564,-1.554 3.242,-2.585 0.677,-1.031 1.016,-2.309 1.016,-3.834 0,-1.639 -0.466,-3.079 -1.398,-4.322 -0.932,-1.243 -2.239,-2.197 -3.919,-2.86 -1.681,-0.664 -3.623,-0.996 -5.826,-0.996 -5.678,0 -9.689,1.892 -12.033,5.678 l 3.178,3.178 c 0.903,-1.695 2.068,-2.939 3.495,-3.729 1.426,-0.791 3.199,-1.186 5.318,-1.186 2.005,0 3.58,0.345 4.724,1.038 1.144,0.692 1.716,1.674 1.716,2.945 0,1.017 -0.516,1.835 -1.547,2.457 -1.031,0.621 -2.832,1.172 -5.402,1.653 -2.571,0.479 -4.618,1.073 -6.143,1.779 -1.526,0.706 -2.635,1.582 -3.326,2.627 -0.693,1.045 -1.039,2.316 -1.039,3.813 0,1.582 0.438,3.023 1.314,4.322 0.875,1.299 2.14,2.33 3.792,3.093 1.653,0.763 3.58,1.144 5.783,1.144 C -4.018,1.398 -1.822,0.932 0,0"
|
||||||
|
style="fill:#00e396;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path438" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g440"
|
||||||
|
transform="translate(993.0239,277.5454)">
|
||||||
|
<path
|
||||||
|
d="m 0,0 c 2.054,-1.831 3.083,-4.465 3.083,-7.902 v -17.935 h -4.484 v 16.366 c 0,2.914 -0.626,5.024 -1.877,6.332 -1.253,1.308 -2.924,1.962 -5.016,1.962 -1.495,0 -2.896,-0.327 -4.204,-0.981 -1.308,-0.654 -2.381,-1.719 -3.222,-3.194 -0.841,-1.477 -1.261,-3.335 -1.261,-5.576 v -14.909 h -4.484 V 1.328 l 4.086,-1.674 0.118,-1.84 c 0.933,1.681 2.222,2.923 3.867,3.727 1.643,0.803 3.493,1.205 5.548,1.205 C -4.671,2.746 -2.055,1.83 0,0"
|
||||||
|
style="fill:#000033;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path442" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g444"
|
||||||
|
transform="translate(1027.9968,264.0386)">
|
||||||
|
<path
|
||||||
|
d="m 0,0 h -21.128 c 0.261,-2.84 1.205,-5.044 2.83,-6.613 1.625,-1.57 3.727,-2.355 6.305,-2.355 2.054,0 3.763,0.356 5.128,1.065 1.363,0.71 2.288,1.738 2.774,3.083 l 3.755,-1.961 c -1.121,-1.981 -2.616,-3.495 -4.484,-4.54 -1.868,-1.046 -4.259,-1.569 -7.173,-1.569 -4.223,0 -7.538,1.289 -9.948,3.867 -2.41,2.578 -3.615,6.146 -3.615,10.704 0,4.558 1.149,8.127 3.447,10.705 2.298,2.578 5.557,3.867 9.779,3.867 2.615,0 4.876,-0.58 6.782,-1.738 1.905,-1.158 3.343,-2.728 4.315,-4.707 C -0.262,7.827 0.224,5.605 0.224,3.139 0.224,2.092 0.149,1.046 0,0 m -18.298,10.144 c -1.513,-1.457 -2.438,-3.512 -2.775,-6.165 h 16.982 c -0.3,2.615 -1.159,4.661 -2.578,6.137 -1.42,1.476 -3.307,2.214 -5.661,2.214 -2.466,0 -4.455,-0.728 -5.968,-2.186"
|
||||||
|
style="fill:#000033;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path446" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g448"
|
||||||
|
transform="translate(1057.8818,276.4246)">
|
||||||
|
<path
|
||||||
|
d="m 0,0 c 2.41,-2.578 3.615,-6.147 3.615,-10.705 0,-4.558 -1.205,-8.126 -3.615,-10.704 -2.41,-2.578 -5.726,-3.867 -9.948,-3.867 -4.222,0 -7.537,1.289 -9.947,3.867 -2.41,2.578 -3.615,6.146 -3.615,10.704 0,4.558 1.205,8.127 3.615,10.705 2.41,2.578 5.725,3.867 9.947,3.867 C -5.726,3.867 -2.41,2.578 0,0 m -16.617,-2.858 c -1.607,-1.906 -2.41,-4.522 -2.41,-7.847 0,-3.326 0.803,-5.94 2.41,-7.846 1.607,-1.905 3.83,-2.858 6.669,-2.858 2.839,0 5.063,0.953 6.67,2.858 1.606,1.906 2.41,4.52 2.41,7.846 0,3.325 -0.804,5.941 -2.41,7.847 C -4.885,-0.953 -7.109,0 -9.948,0 c -2.839,0 -5.062,-0.953 -6.669,-2.858"
|
||||||
|
style="fill:#000033;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path450" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g452"
|
||||||
|
transform="matrix(0.35277777,0,0,-0.35277777,5.8329581,6.5590171)">
|
||||||
|
<path
|
||||||
|
d="m 0,0 0.001,-38.946 25.286,-9.076 V -8.753 L 52.626,1.321 27.815,10.207 Z"
|
||||||
|
style="fill:#00e599;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path454" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g456"
|
||||||
|
transform="matrix(0.35277777,0,0,-0.35277777,15.479008,10.041927)">
|
||||||
|
<path
|
||||||
|
d="M 0,0 V -21.306 L 25.293,-30.364 25.282,9.347 Z"
|
||||||
|
style="fill:#00b091;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||||
|
id="path458" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 6.5 KiB |
85
README.md
85
README.md
|
@ -1,40 +1,83 @@
|
||||||
# NeoFS smart-contract
|
<p align="center">
|
||||||
|
<img src="./.github/logo.svg" width="500px" alt="NeoFS">
|
||||||
This smart-contract controls list of NeoFS Inner Ring nodes, user assets in
|
</p>
|
||||||
NeoFS balance contract and stores NeoFS runtime configuration.
|
<p align="center">
|
||||||
|
<a href="https://fs.neo.org">NeoFS</a> related smart contracts.
|
||||||
## Getting Started
|
</p>
|
||||||
|
|
||||||
This repository contains:
|
---
|
||||||
|
|
||||||
- NeoFS smart-contract in Go
|
# Overview
|
||||||
|
|
||||||
### Prerequisites
|
NeoFS-Contract contains all NeoFS related contracts written for
|
||||||
|
[neo-go](https://github.com/nspcc-dev/neo-go) compiler. These contracts
|
||||||
|
are deployed both in mainnet and sidechain.
|
||||||
|
|
||||||
To compile smart-contract you need:
|
Mainnet contract:
|
||||||
|
|
||||||
- [neo-go](https://github.com/nspcc-dev/neo-go) >= 0.90.0
|
- neofs
|
||||||
|
|
||||||
## Compiling
|
Sidechain contracts:
|
||||||
|
|
||||||
To compile smart contract run `make build` command. Compiled contract
|
- alphabet contracts
|
||||||
`neofs_contract.nef` and manifest `config.json` will be placed in the same
|
- audit
|
||||||
directory.
|
- balance
|
||||||
|
- container
|
||||||
|
- neofsid
|
||||||
|
- netmap
|
||||||
|
- reputation
|
||||||
|
|
||||||
|
# Getting started
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
To compile smart contracts you need:
|
||||||
|
|
||||||
|
- [neo-go](https://github.com/nspcc-dev/neo-go) >= 0.91.0
|
||||||
|
|
||||||
|
Alphabet contracts built from template. To regenerate contracts from
|
||||||
|
template you need:
|
||||||
|
|
||||||
|
- [go](https://golang.org/dl/) >= 1.12
|
||||||
|
|
||||||
|
|
||||||
|
## 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 build
|
$ make all
|
||||||
neo-go contract compile -i neofs_contract.go -c neofs_config.yml -m config.json
|
neo-go contract compile -i alphabet/az/az_contract.go -c alphabet/config.yml -m alphabet/az/config.json
|
||||||
$ ls neofs_contract.nef config.json
|
neo-go contract compile -i alphabet/buky/buky_contract.go -c alphabet/config.yml -m alphabet/buky/config.json
|
||||||
config.json neofs_contract.nef
|
neo-go contract compile -i alphabet/vedi/vedi_contract.go -c alphabet/config.yml -m alphabet/vedi/config.json
|
||||||
|
neo-go contract compile -i alphabet/glagoli/glagoli_contract.go -c alphabet/config.yml -m alphabet/glagoli/config.json
|
||||||
|
neo-go contract compile -i alphabet/dobro/dobro_contract.go -c alphabet/config.yml -m alphabet/dobro/config.json
|
||||||
|
neo-go contract compile -i alphabet/jest/jest_contract.go -c alphabet/config.yml -m alphabet/jest/config.json
|
||||||
|
neo-go contract compile -i alphabet/zhivete/zhivete_contract.go -c alphabet/config.yml -m alphabet/zhivete/config.json
|
||||||
|
neo-go contract compile -i audit/audit_contract.go -c audit/config.yml -m audit/config.json
|
||||||
|
neo-go contract compile -i balance/balance_contract.go -c balance/config.yml -m balance/config.json
|
||||||
|
neo-go contract compile -i container/container_contract.go -c container/config.yml -m container/config.json
|
||||||
|
neo-go contract compile -i neofsid/neofsid_contract.go -c neofsid/config.yml -m neofsid/config.json
|
||||||
|
neo-go contract compile -i netmap/netmap_contract.go -c netmap/config.yml -m netmap/config.json
|
||||||
|
neo-go contract compile -i reputation/reputation_contract.go -c reputation/config.yml -m reputation/config.json
|
||||||
|
neo-go contract compile -i neofs/neofs_contract.go -c neofs/config.yml -m neofs/config.json
|
||||||
```
|
```
|
||||||
|
|
||||||
You can specify path to the `neo-go` binary with `NEOGO` environment variable:
|
You can specify path to the `neo-go` binary with `NEOGO` environment variable:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ NEOGO=/home/user/neo-go/bin/neo-go make build
|
$ NEOGO=/home/user/neo-go/bin/neo-go make all
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
Remove compiled files with `make clean` command.
|
||||||
|
|
||||||
|
Remove compiled files and alphabet contracts with `make mr_proper` command. Next time
|
||||||
|
`make all` or `make alphabet` command will generate new alphabet contracts from template.
|
||||||
|
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
This project is licensed under the GPLv3 License - see the
|
This project is licensed under the GPLv3 License - see the
|
||||||
[LICENSE.md](LICENSE.md) file for details
|
[LICENSE.md](LICENSE.md) file for details
|
||||||
|
|
Loading…
Reference in a new issue