From f3330687296326e9abe5739d84f3e8686ee314d8 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 15:58:08 +0300 Subject: [PATCH 1/9] workflows: switch to org-wide linter Signed-off-by: Roman Khimov --- .github/workflows/config/.golangci.yml | 5 ----- .github/workflows/go.yml | 13 +------------ 2 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 .github/workflows/config/.golangci.yml diff --git a/.github/workflows/config/.golangci.yml b/.github/workflows/config/.golangci.yml deleted file mode 100644 index 1fda7f2a..00000000 --- a/.github/workflows/config/.golangci.yml +++ /dev/null @@ -1,5 +0,0 @@ -issues: - exclude-rules: - - path: ./rpc - linters: - - unused # RPC bindings are allowed to contain some unused convertors. diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index a5b6ea09..1deca02b 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -7,18 +7,7 @@ on: jobs: lint: name: Lint - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: golangci-lint - uses: golangci/golangci-lint-action@v4 - with: - version: latest - args: --config=.github/workflows/config/.golangci.yml + uses: nspcc-dev/.github/.github/workflows/go-linter.yml@master tests: name: Tests From f14a9f2965448fc069a44dc28d09f14b4ee2c860 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:02:01 +0300 Subject: [PATCH 2/9] Makefile: add lint target for local linting Signed-off-by: Roman Khimov --- .gitignore | 1 + Makefile | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index 6367f6ad..ebc6d2a0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ bindings_config.yml /vendor/ .idea /bin/ +.golangci.yml # debhelpers **/.debhelper diff --git a/Makefile b/Makefile index 7bbd19d2..23bfda26 100644 --- a/Makefile +++ b/Makefile @@ -75,3 +75,10 @@ debclean: fmt: @gofmt -l -w -s $$(find . -type f -name '*.go'| grep -v "/vendor/") + +.golangci.yml: + wget -O $@ https://github.com/nspcc-dev/.github/raw/master/.golangci.yml + +# Lint Go code +lint: .golangci.yml + golangci-lint run From f547f07dc670c7eeb7f293c32e85597f84dc78b6 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:02:16 +0300 Subject: [PATCH 3/9] *: fix all godot warnings Signed-off-by: Roman Khimov --- contracts/audit/contract.go | 2 +- contracts/container/contract.go | 4 ++-- contracts/neofs/contract.go | 2 +- deploy/contracts.go | 2 +- tests/dump/common.go | 4 ++-- tests/migration/util.go | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/contracts/audit/contract.go b/contracts/audit/contract.go index daf61cce..2caaf384 100644 --- a/contracts/audit/contract.go +++ b/contracts/audit/contract.go @@ -24,7 +24,7 @@ type ( // epoch and container ID since we iterate over these values. But we can shrink // public key by using first bytes of the hashed value. -// V2 format +// V2 format. const maxKeySize = 24 // 24 + 32 (container ID length) + 8 (epoch length) = 64 func (a AuditHeader) ID() []byte { diff --git a/contracts/container/contract.go b/contracts/container/contract.go index 20003e12..f8488dfc 100644 --- a/contracts/container/contract.go +++ b/contracts/container/contract.go @@ -58,7 +58,7 @@ const ( // nolint:deadcode,unused nnsDefaultTLD = "container" - // V2 format + // V2 format. containerIDSize = interop.Hash256Len // SHA256 size singleEstimatePrefix = "est" @@ -68,7 +68,7 @@ const ( deletedKeyPrefix = 'd' estimatePostfixSize = 10 - // default SOA record field values + // default SOA record field values. defaultRefresh = 3600 // 1 hour defaultRetry = 600 // 10 min defaultExpire = 3600 * 24 * 365 * 10 // 10 years diff --git a/contracts/neofs/contract.go b/contracts/neofs/contract.go index 87111958..aada9863 100644 --- a/contracts/neofs/contract.go +++ b/contracts/neofs/contract.go @@ -36,7 +36,7 @@ const ( maxBalanceAmount = 9000 // Max integer of Fixed12 in JSON bound (2**53-1) maxBalanceAmountGAS = int64(maxBalanceAmount) * 1_0000_0000 - // hardcoded value to ignore deposit notification in onReceive + // hardcoded value to ignore deposit notification in onReceive. ignoreDepositNotification = "\x57\x0b" ) diff --git a/deploy/contracts.go b/deploy/contracts.go index 1c710aea..dceb9cfc 100644 --- a/deploy/contracts.go +++ b/deploy/contracts.go @@ -27,7 +27,7 @@ const ( ) const ( - // WitnessSet is not needed + // WitnessSet is not needed. _ WitnessSet = iota // WitnessValidators requires committee 2/3n+1. WitnessValidators diff --git a/tests/dump/common.go b/tests/dump/common.go index 46008985..a0eb892f 100644 --- a/tests/dump/common.go +++ b/tests/dump/common.go @@ -65,9 +65,9 @@ func (x *dumpStreams) close() { } const ( - // word separator used in dump file naming + // word separator used in dump file naming. sep = "-" - // suffix of file with contracts' states + // suffix of file with contracts' states. statesFileSuffix = "contracts.json" ) diff --git a/tests/migration/util.go b/tests/migration/util.go index 1e34cb7c..aa81e3cc 100644 --- a/tests/migration/util.go +++ b/tests/migration/util.go @@ -24,7 +24,7 @@ func checkSingleTrueInStack(tb testing.TB, stack []stackitem.Item) { require.True(tb, ok) } -// inheritor of storage.Store canceling Close method +// inheritor of storage.Store canceling Close method. type nopCloseStore struct { storage.Store } From a1c15a6f9f3bce71c76975efe1921a676cff3db1 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:03:32 +0300 Subject: [PATCH 4/9] *: fix errorlint warnings tests/dump/reader.go:93:7 errorlint comparing with == will fail on wrapped errors. Use errors.Is to check for a specific error cmd/dump/main.go:29:47 errorlint non-wrapping format verb for fmt.Errorf. Use `%w` to format errors Signed-off-by: Roman Khimov --- cmd/dump/main.go | 2 +- tests/dump/reader.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/dump/main.go b/cmd/dump/main.go index 26f9f7da..b6416a95 100644 --- a/cmd/dump/main.go +++ b/cmd/dump/main.go @@ -26,7 +26,7 @@ func main() { err := os.MkdirAll(rootDir, 0700) if err != nil { - log.Fatal(fmt.Errorf("create root dir: %v", err)) + log.Fatal(fmt.Errorf("create root dir: %w", err)) } err = _dump(*neoRPCEndpoint, rootDir, *chainLabel) diff --git a/tests/dump/reader.go b/tests/dump/reader.go index f0c00082..91a4df78 100644 --- a/tests/dump/reader.go +++ b/tests/dump/reader.go @@ -88,7 +88,7 @@ func (x *Reader) fromDumpStreams(rContracts, rStorageItems io.Reader) error { for { rec, err = _csv.Read() if err != nil { - if err == io.EOF { + if errors.Is(err, io.EOF) { return nil } return fmt.Errorf("read next CSV record: %w", err) From b1518a48bf2d3258c077c0ca54bdd525b0229d1f Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:17:06 +0300 Subject: [PATCH 5/9] contracts: use range loops where possible neofs-contracts have a lot of very old code that was written even before NeoGo compiler has added support for range loops. Now it can be simplified. Signed-off-by: Roman Khimov --- common/ir.go | 3 +-- common/vote.go | 11 +++-------- contracts/alphabet/contract.go | 4 ++-- contracts/container/contract.go | 3 +-- contracts/neofs/contract.go | 12 ++++-------- contracts/netmap/contract.go | 3 +-- 6 files changed, 12 insertions(+), 24 deletions(-) diff --git a/common/ir.go b/common/ir.go index e05ee2da..5e42c5c5 100644 --- a/common/ir.go +++ b/common/ir.go @@ -18,8 +18,7 @@ const irListMethod = "innerRingList" // InnerRingInvoker returns the public key of the inner ring node that has invoked the contract. // Work around for environments without notary support. func InnerRingInvoker(ir []interop.PublicKey) interop.PublicKey { - for i := 0; i < len(ir); i++ { - node := ir[i] + for _, node := range ir { if runtime.CheckWitness(node) { return node } diff --git a/common/vote.go b/common/vote.go index 42eb2939..37c9c73a 100644 --- a/common/vote.go +++ b/common/vote.go @@ -38,9 +38,7 @@ func Vote(ctx storage.Context, id, from []byte) int { blockHeight = ledger.CurrentIndex() ) - for i := 0; i < len(candidates); i++ { - cnd := candidates[i] - + for _, cnd := range candidates { if blockHeight-cnd.Height > blockDiff { continue } @@ -84,8 +82,7 @@ func RemoveVotes(ctx storage.Context, id []byte) { index int ) - for i := 0; i < len(candidates); i++ { - cnd := candidates[i] + for i, cnd := range candidates { if bytesEqual(cnd.ID, id) { index = i break @@ -103,9 +100,7 @@ func TryPurgeVotes(ctx storage.Context) bool { candidates = getBallots(ctx) blockHeight = ledger.CurrentIndex() ) - for i := 0; i < len(candidates); i++ { - cnd := candidates[i] - + for _, cnd := range candidates { if blockHeight-cnd.Height <= blockDiff { return false } diff --git a/contracts/alphabet/contract.go b/contracts/alphabet/contract.go index 3982749f..6f864f8c 100644 --- a/contracts/alphabet/contract.go +++ b/contracts/alphabet/contract.go @@ -163,7 +163,7 @@ func switchToNotary(ctx storage.Context, args []any) { ledger.CurrentIndex() + lockInterval, // till } - for i := 0; i < len(innerRingNodes); i++ { + for i := range innerRingNodes { addr := contract.CreateStandardAccount(innerRingNodes[i]) if !gas.Transfer(currentContract, addr, perNodeGASSimple, nil) { panic("failed to transfer part of GAS to the Inner Ring node") @@ -175,7 +175,7 @@ func switchToNotary(ctx storage.Context, args []any) { } } - for i := 0; i < len(storageNodes); i++ { + for i := range storageNodes { publicKey := storageNodes[i].blob[2:35] // hardcoded because there was no other way addr := contract.CreateStandardAccount(publicKey) if !gas.Transfer(currentContract, addr, perNodeGASSimple, nil) { diff --git a/contracts/container/contract.go b/contracts/container/contract.go index f8488dfc..72d75884 100644 --- a/contracts/container/contract.go +++ b/contracts/container/contract.go @@ -301,8 +301,7 @@ func PutNamed(container []byte, signature interop.Signature, details := common.ContainerFeeTransferDetails(containerID) - for i := 0; i < len(alphabet); i++ { - node := alphabet[i] + for _, node := range alphabet { to := contract.CreateStandardAccount(node) contract.Call(balanceContractAddr, "transferX", diff --git a/contracts/neofs/contract.go b/contracts/neofs/contract.go index aada9863..fe888f80 100644 --- a/contracts/neofs/contract.go +++ b/contracts/neofs/contract.go @@ -70,8 +70,7 @@ func _deploy(data any, isUpdate bool) { panic("incorrect length of contract script hash") } - for i := 0; i < len(args.keys); i++ { - pub := args.keys[i] + for _, pub := range args.keys { if len(pub) != interop.PublicKeyCompressedLen { panic("incorrect public key length") } @@ -374,8 +373,7 @@ func Bind(user interop.Hash160, keys []interop.PublicKey) { panic("you should be the owner of the wallet") } - for i := 0; i < len(keys); i++ { - pubKey := keys[i] + for _, pubKey := range keys { if len(pubKey) != interop.PublicKeyCompressedLen { panic("incorrect public key size") } @@ -394,8 +392,7 @@ func Unbind(user interop.Hash160, keys []interop.PublicKey) { panic("you should be the owner of the wallet") } - for i := 0; i < len(keys); i++ { - pubKey := keys[i] + for _, pubKey := range keys { if len(pubKey) != interop.PublicKeyCompressedLen { panic("incorrect public key size") } @@ -435,8 +432,7 @@ func AlphabetUpdate(id []byte, args []interop.PublicKey) { newAlphabet := []interop.PublicKey{} - for i := 0; i < len(args); i++ { - pubKey := args[i] + for _, pubKey := range args { if len(pubKey) != interop.PublicKeyCompressedLen { panic("invalid public key in alphabet list") } diff --git a/contracts/netmap/contract.go b/contracts/netmap/contract.go index bb9a31f8..d070afcb 100644 --- a/contracts/netmap/contract.go +++ b/contracts/netmap/contract.go @@ -663,8 +663,7 @@ func filterNetmap(ctx storage.Context) []Node { result = []Node{} ) - for i := 0; i < len(netmap); i++ { - item := netmap[i] + for _, item := range netmap { if item.State != nodestate.Offline { result = append(result, item) } From 992b805b564cda6f15139825e9420b650b4b9452 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:18:12 +0300 Subject: [PATCH 6/9] tests: use Go 1.22+ int ranging where appropriate Fix intrange warnings. Signed-off-by: Roman Khimov --- tests/neofs_test.go | 2 +- tests/netmap_test.go | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/neofs_test.go b/tests/neofs_test.go index df5aa0fb..4dd6618e 100644 --- a/tests/neofs_test.go +++ b/tests/neofs_test.go @@ -42,7 +42,7 @@ func newNeoFSInvoker(t *testing.T, n int, config ...any) (*neotest.ContractInvok e := newExecutor(t) accounts := make([]*wallet.Account, n) - for i := 0; i < n; i++ { + for i := range accounts { acc, err := wallet.NewAccount() require.NoError(t, err) diff --git a/tests/netmap_test.go b/tests/netmap_test.go index 8f751287..86f45d85 100644 --- a/tests/netmap_test.go +++ b/tests/netmap_test.go @@ -113,13 +113,13 @@ func TestNewEpoch(t *testing.T) { for i := range nodes { size := rand.IntN(5) + 1 arr := make([]testNodeInfo, size) - for j := 0; j < size; j++ { + for j := range arr { arr[j] = newStorageNode(t, cNm) } nodes[i] = arr } - for i := 0; i < epochCount; i++ { + for i := range nodes { for _, tn := range nodes[i] { cNm.WithSigners(tn.signer).Invoke(t, stackitem.Null{}, "addPeer", tn.raw) cNm.Invoke(t, stackitem.Null{}, "addPeerIR", tn.raw) @@ -244,7 +244,7 @@ func TestUpdateSnapshotCount(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, s.Len()) checkSnapshot(t, s, nodes[epochCount-1]) - for i := 0; i < epochCount; i++ { + for i := range epochCount { checkSnapshotAt(t, i, cNm, nodes[epochCount-i-1]) } for i := epochCount; i < newCount; i++ { @@ -268,7 +268,7 @@ func TestUpdateSnapshotCount(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, s.Len()) checkSnapshot(t, s, nodes[epochCount-1]) - for i := 0; i < newCount-3; i++ { + for i := range newCount - 3 { checkSnapshotAt(t, i, cNm, nodes[epochCount-i-1]) } for i := newCount - 3; i < newCount; i++ { @@ -292,7 +292,7 @@ func TestUpdateSnapshotCount(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, s.Len()) checkSnapshot(t, s, nodes[epochCount-1]) - for i := 0; i < newCount; i++ { + for i := range newCount { checkSnapshotAt(t, i, cNm, nodes[epochCount-i-1]) } _, err = cNm.TestInvoke(t, "snapshot", int64(newCount)) @@ -313,7 +313,7 @@ func TestUpdateSnapshotCount(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, s.Len()) checkSnapshot(t, s, nodes[epochCount-1]) - for i := 0; i < newCount; i++ { + for i := range newCount { checkSnapshotAt(t, i, cNm, nodes[epochCount-i-1]) } _, err = cNm.TestInvoke(t, "snapshot", int64(newCount)) From cccf112a3b163ba8f0b980da2cba626b9c0f19b0 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:18:39 +0300 Subject: [PATCH 7/9] contracts: suppress intrange Can't be used in contracts now, see https://github.com/nspcc-dev/neo-go/issues/3525 Signed-off-by: Roman Khimov --- common/nns.go | 2 +- contracts/neofs/contract.go | 2 +- contracts/netmap/contract.go | 6 +++--- contracts/nns/contract.go | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/common/nns.go b/common/nns.go index 0be5c05a..4417bd05 100644 --- a/common/nns.go +++ b/common/nns.go @@ -45,7 +45,7 @@ func ResolveFSContractWithNNS(nns interop.Hash160, contractName string) interop. } if len(records[0]) == 2*interop.Hash160Len { var h = make([]byte, interop.Hash160Len) - for i := 0; i < interop.Hash160Len; i++ { + for i := 0; i < interop.Hash160Len; i++ { //nolint:intrange // Not supported by NeoGo ii := (interop.Hash160Len - i - 1) * 2 h[i] = byte(std.Atoi(records[0][ii:ii+2], 16)) } diff --git a/contracts/neofs/contract.go b/contracts/neofs/contract.go index fe888f80..798d117e 100644 --- a/contracts/neofs/contract.go +++ b/contracts/neofs/contract.go @@ -93,7 +93,7 @@ func _deploy(data any, isUpdate bool) { panic("bad configuration") } - for i := 0; i < ln/2; i++ { + for i := 0; i < ln/2; i++ { //nolint:intrange // Not supported by NeoGo key := args.config[i*2] val := args.config[i*2+1] diff --git a/contracts/netmap/contract.go b/contracts/netmap/contract.go index d070afcb..dc32cf90 100644 --- a/contracts/netmap/contract.go +++ b/contracts/netmap/contract.go @@ -87,7 +87,7 @@ func _deploy(data any, isUpdate bool) { if version < 16*1_000 { count := getSnapshotCount(ctx) prefix := []byte(snapshotKeyPrefix) - for i := 0; i < count; i++ { + for i := 0; i < count; i++ { //nolint:intrange // Not supported by NeoGo key := append(prefix, byte(i)) data := storage.Get(ctx, key) if data != nil { @@ -154,7 +154,7 @@ func _deploy(data any, isUpdate bool) { panic("bad configuration") } - for i := 0; i < ln/2; i++ { + for i := 0; i < ln/2; i++ { //nolint:intrange // Not supported by NeoGo key := args.config[i*2] val := args.config[i*2+1] @@ -167,7 +167,7 @@ func _deploy(data any, isUpdate bool) { storage.Put(ctx, snapshotBlockKey, 0) prefix := []byte(snapshotKeyPrefix) - for i := 0; i < DefaultSnapshotCount; i++ { + for i := 0; i < DefaultSnapshotCount; i++ { //nolint:intrange // Not supported by NeoGo common.SetSerialized(ctx, append(prefix, byte(i)), []Node{}) } storage.Put(ctx, snapshotCurrentIDKey, 0) diff --git a/contracts/nns/contract.go b/contracts/nns/contract.go index 98c5ecd1..4b04a9a1 100644 --- a/contracts/nns/contract.go +++ b/contracts/nns/contract.go @@ -888,7 +888,7 @@ func safeSplitAndCheck(name string) ([]string, string) { } fragments := std.StringSplit(name, ".") l = len(fragments) - for i := 0; i < l; i++ { + for i := 0; i < l; i++ { //nolint:intrange // Not supported by NeoGo if !checkFragment(fragments[i], i == l-1) { return nil, "invalid domain fragment" } @@ -1022,7 +1022,7 @@ func tokenIDFromName(ctx storage.Context, name string) string { sum := 0 l := len(fragments) - 1 - for i := 0; i < l; i++ { + for i := 0; i < l; i++ { //nolint:intrange // Not supported by NeoGo tokenKey := getTokenKey([]byte(name[sum:])) nameKey := getNameStateKey(tokenKey) nsBytes := storage.Get(ctx, nameKey) From 036c0ecae423a89f95e29e86bfd67feae6f29f07 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:21:26 +0300 Subject: [PATCH 8/9] tests: fix whitespace error tests/container_test.go:170:1 whitespace unnecessary trailing newline Signed-off-by: Roman Khimov --- tests/container_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/container_test.go b/tests/container_test.go index cd45f5c6..bd615db5 100644 --- a/tests/container_test.go +++ b/tests/container_test.go @@ -166,7 +166,6 @@ func checkContainerList(t *testing.T, c *neotest.ContractInvoker, expected [][]b } require.ElementsMatch(t, expected, actual) }) - } func TestContainerPut(t *testing.T) { From b1699568484cd67c172acfdbca7b802ba057e0b0 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Tue, 10 Sep 2024 16:24:38 +0300 Subject: [PATCH 9/9] contracts: update binaries for recent changes Signed-off-by: Roman Khimov --- contracts/alphabet/contract.nef | Bin 4040 -> 4021 bytes contracts/alphabet/manifest.json | 2 +- contracts/balance/contract.nef | Bin 3145 -> 3142 bytes contracts/balance/manifest.json | 2 +- contracts/container/contract.nef | Bin 6725 -> 6710 bytes contracts/container/manifest.json | 2 +- contracts/neofs/contract.nef | Bin 4712 -> 4666 bytes contracts/neofs/manifest.json | 2 +- contracts/neofsid/contract.nef | Bin 1618 -> 1615 bytes contracts/neofsid/manifest.json | 2 +- contracts/netmap/contract.nef | Bin 4631 -> 4622 bytes contracts/netmap/manifest.json | 2 +- contracts/reputation/contract.nef | Bin 1344 -> 1341 bytes contracts/reputation/manifest.json | 2 +- 14 files changed, 7 insertions(+), 7 deletions(-) diff --git a/contracts/alphabet/contract.nef b/contracts/alphabet/contract.nef index 56d7d3fe78e355c9904a5da8ceca8132baa9c559..ba707d27b6ecca311441763003c33c15cfc360a7 100755 GIT binary patch delta 218 zcmX>hzg2#NFcagP$s$bgjINtYn3geXGc#70SQVHvFcfBZof7c&Hj)tX^*&dWnI&{? zK7)u3yQ`}!r^6hj7eIQm2U{*95L&Spa%9!AEd&33%pjEvHgz4*>>to`!;e{r^H&15i##NsNjRZT1- z>s)bWw$Qox3?e!#oDNxYij*E~c4fg`8GEjzgNy+DQPnuv1e2 diff --git a/contracts/alphabet/manifest.json b/contracts/alphabet/manifest.json index 648bb7b1..c218efe2 100755 --- a/contracts/alphabet/manifest.json +++ b/contracts/alphabet/manifest.json @@ -1 +1 @@ -{"name":"NeoFS Alphabet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"emit","offset":2846,"parameters":[],"returntype":"Void","safe":false},{"name":"gas","offset":2667,"parameters":[],"returntype":"Integer","safe":true},{"name":"name","offset":3477,"parameters":[],"returntype":"String","safe":true},{"name":"neo","offset":2681,"parameters":[],"returntype":"Integer","safe":true},{"name":"onNEP17Payment","offset":1163,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":2535,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":3497,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":3493,"parameters":[],"returntype":"Integer","safe":true},{"name":"vote","offset":3305,"parameters":[{"name":"epoch","type":"Integer"},{"name":"candidates","type":"Array"}],"returntype":"Void","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer","vote"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file +{"name":"NeoFS Alphabet","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"emit","offset":2827,"parameters":[],"returntype":"Void","safe":false},{"name":"gas","offset":2648,"parameters":[],"returntype":"Integer","safe":true},{"name":"name","offset":3458,"parameters":[],"returntype":"String","safe":true},{"name":"neo","offset":2662,"parameters":[],"returntype":"Integer","safe":true},{"name":"onNEP17Payment","offset":1160,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"update","offset":2516,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"verify","offset":3478,"parameters":[],"returntype":"Boolean","safe":true},{"name":"version","offset":3474,"parameters":[],"returntype":"Integer","safe":true},{"name":"vote","offset":3286,"parameters":[{"name":"epoch","type":"Integer"},{"name":"candidates","type":"Array"}],"returntype":"Void","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer","vote"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/balance/contract.nef b/contracts/balance/contract.nef index 958052dbd5e46a17482b8c155fbc35a4f9a436cd..cf3a3be3f3fc711076ab30ff793a3d21ca15aa6f 100755 GIT binary patch delta 205 zcmX>paZF-E8YAPa$?1#{jE5&5V6@|%&CI}%#i-z?$B|*0yqTNnGm|zmV}*%TfjJvP zVTRW!0dH?32_awab48h1Lg(f)i0H7py1H^Y%u#v)q$lgJZediM{E+oGWA)^_Z2F8> zCiAk-Wt=p5HG3ML_OJi{3o}ha|Nj49VJb3No?M z307qB=l}mI)7z76IJ5bt{s0T@{|yo<*u0gKmyywF@?kDVCWfDz*|_Z)S!S)gG!p<_ C-c2F^ delta 208 zcmX>maZ+MK8YAP~$?1#{jK?M)V6@|%$IQTx#i-z?$B|*0wwashGm{<*V}*%rfjJvP zp+HeqhSv=h)>BF>t^!-t#4@tZ6=!A(otw`fqQk=JkTs`B>A_@8)-8;3lkc(qW~`We zi%p;L;$$xNxs3gjSFoq?Y5e;CzcAA@^zZ-w6{dodWjNFr_e^%?NMr1syow`+(PT0^ zrwSkUPp~43KmY$%nckRe$(hYJ=?7S7|8I~`?&eLLyo`+YlMiq?GX4FrnVH+3kwsZ* GjXMB}UQQ?g diff --git a/contracts/balance/manifest.json b/contracts/balance/manifest.json index 1f3e4195..5211e175 100755 --- a/contracts/balance/manifest.json +++ b/contracts/balance/manifest.json @@ -1 +1 @@ -{"name":"NeoFS Balance","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":1549,"parameters":[{"name":"account","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"burn","offset":2101,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"decimals","offset":1527,"parameters":[],"returntype":"Integer","safe":true},{"name":"lock","offset":1695,"parameters":[{"name":"txDetails","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}],"returntype":"Void","safe":false},{"name":"mint","offset":1980,"parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"newEpoch","offset":1850,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"symbol","offset":1523,"parameters":[],"returntype":"String","safe":true},{"name":"totalSupply","offset":1531,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":1568,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"transferX","offset":1592,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":1392,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":2252,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Lock","parameters":[{"name":"txID","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"TransferX","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","subscribeForNewEpoch"]}],"supportedstandards":["NEP-17"],"trusts":[],"extra":null} \ No newline at end of file +{"name":"NeoFS Balance","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":93,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"balanceOf","offset":1546,"parameters":[{"name":"account","type":"Hash160"}],"returntype":"Integer","safe":true},{"name":"burn","offset":2098,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"decimals","offset":1524,"parameters":[],"returntype":"Integer","safe":true},{"name":"lock","offset":1692,"parameters":[{"name":"txDetails","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}],"returntype":"Void","safe":false},{"name":"mint","offset":1977,"parameters":[{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txDetails","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"newEpoch","offset":1847,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"symbol","offset":1520,"parameters":[],"returntype":"String","safe":true},{"name":"totalSupply","offset":1528,"parameters":[],"returntype":"Integer","safe":true},{"name":"transfer","offset":1565,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Boolean","safe":false},{"name":"transferX","offset":1589,"parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":1389,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":2249,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"Lock","parameters":[{"name":"txID","type":"ByteArray"},{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"until","type":"Integer"}]},{"name":"Transfer","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"}]},{"name":"TransferX","parameters":[{"name":"from","type":"Hash160"},{"name":"to","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"details","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","subscribeForNewEpoch"]}],"supportedstandards":["NEP-17"],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/container/contract.nef b/contracts/container/contract.nef index 39015559bd292453c8ad287cb0234b49396fd50e..1423863e8b1034bce24512f9b662f46d2e770da7 100755 GIT binary patch delta 482 zcmX?Vvdv_}M@B~b&7T;J7#W>5t1@3@WaQrbo8=ahHZx;|iB*9)8$)4+*C_#SZzBmI zU+;58nOQ>T<}--su)DgtayraWdI6*-GjptB)SkSKV-Mqz$=RIxjIxtwb0%`ju{qBE zmVU0F!u0%PcCPFE8<`jw%1k|f{r_LinQ1D&`7M_;W4Pu|AXhkF*wpyX|NmL0oWFrw zk$g^wl@=f?%SH1=9na5fXDS!V=gJq$=gk)h5jjvUp3lR>SyGgkSDcnw6d|849^#l( z8y)02N9hE}N!dKkGLrf1JRC)->6yhPsYUYnk`NWER+UTSOH4k+qc120RKS^-k`k1f zoL`h8pD#6;i&s@oIwM~?pCj1unY~0ywbu<5)>BF>t^xvDa+y_v2Lgl+l*{DsumN>> zr&h}6%S?{tRp*!G;R+}%2`)`ePAx9Zmz_MB*M~8C@&n$r+#A0A|6i14x(DdZ$%4Gn zn>X|IGIRd@^#6Zpt|{lY$(}+AjB_Su3C&>)-pnrS&7|=9{r~@knWo=?Dl#epOiNi9 z7#zZx7)>t&#S1b_?@ulg_2g)RaQY@67M;kk@x%ZB4&jW#8k1LZ>|s1OIfGN5QEKuG&O~l` zHpkiD($5uCnBJbu!gZa0FB1bpnW@{a|NqN5GfibSzv7Z+Oji2|ZMabt%gg7SEMhCg(i_R$*RoXr|hR0b(DxaN)qbM~!v$!O+NIqW*qGZ*oa>;zj z$-8;<1*L%sI1^J+f>M+7i&EtCr6>R9QPq>l$d}3I2zGpCFVRvBcaMOUTxONvfdHWc z<+3?EY(QP!sg?5ivXlLI)%oRkxB^N`f=iQ=Q;Uo9Tg}Y*?$iJOrMaemzfQIiQefojzu5-|91#yWS;zARB>~jSTHlA+T=r$ K1uT(mFEarB7PfW( diff --git a/contracts/container/manifest.json b/contracts/container/manifest.json index 10a7c510..40cf49f8 100755 --- a/contracts/container/manifest.json +++ b/contracts/container/manifest.json @@ -1 +1 @@ -{"name":"NeoFS Container","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":83,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alias","offset":3712,"parameters":[{"name":"cid","type":"ByteArray"}],"returntype":"String","safe":true},{"name":"containersOf","offset":3852,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"count","offset":3807,"parameters":[],"returntype":"Integer","safe":true},{"name":"delete","offset":3202,"parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"eACL","offset":4264,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"get","offset":3599,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getContainerSize","offset":4524,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"iterateAllContainerSizes","offset":4897,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"iterateContainerSizes","offset":4799,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"Hash256"}],"returntype":"InteropInterface","safe":true},{"name":"list","offset":3906,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listContainerSizes","offset":4638,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"newEpoch","offset":4949,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":1649,"parameters":[{"name":"a","type":"Hash160"},{"name":"b","type":"Integer"},{"name":"c","type":"ByteArray"},{"name":"d","type":"Any"}],"returntype":"Void","safe":false},{"name":"owner","offset":3661,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"put","offset":2040,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"putContainerSize","offset":4322,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"usedSize","type":"Integer"},{"name":"pubKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"putNamed","offset":2056,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"},{"name":"name","type":"String"},{"name":"zone","type":"String"}],"returntype":"Void","safe":false},{"name":"setEACL","offset":4002,"parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"startContainerEstimation","offset":4979,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"stopContainerEstimation","offset":5060,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"update","offset":1907,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":5140,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"PutSuccess","parameters":[{"name":"containerID","type":"Hash256"},{"name":"publicKey","type":"PublicKey"}]},{"name":"DeleteSuccess","parameters":[{"name":"containerID","type":"ByteArray"}]},{"name":"SetEACLSuccess","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"publicKey","type":"PublicKey"}]},{"name":"StartEstimation","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"StopEstimation","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","addKey","transferX","register","registerTLD","addRecord","deleteRecords","subscribeForNewEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file +{"name":"NeoFS Container","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":83,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alias","offset":3697,"parameters":[{"name":"cid","type":"ByteArray"}],"returntype":"String","safe":true},{"name":"containersOf","offset":3837,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"InteropInterface","safe":true},{"name":"count","offset":3792,"parameters":[],"returntype":"Integer","safe":true},{"name":"delete","offset":3187,"parameters":[{"name":"containerID","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"eACL","offset":4249,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"get","offset":3584,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getContainerSize","offset":4509,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"iterateAllContainerSizes","offset":4882,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"InteropInterface","safe":true},{"name":"iterateContainerSizes","offset":4784,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"Hash256"}],"returntype":"InteropInterface","safe":true},{"name":"list","offset":3891,"parameters":[{"name":"owner","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listContainerSizes","offset":4623,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"newEpoch","offset":4934,"parameters":[{"name":"epochNum","type":"Integer"}],"returntype":"Void","safe":false},{"name":"onNEP11Payment","offset":1646,"parameters":[{"name":"a","type":"Hash160"},{"name":"b","type":"Integer"},{"name":"c","type":"ByteArray"},{"name":"d","type":"Any"}],"returntype":"Void","safe":false},{"name":"owner","offset":3646,"parameters":[{"name":"containerID","type":"ByteArray"}],"returntype":"ByteArray","safe":true},{"name":"put","offset":2037,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"putContainerSize","offset":4307,"parameters":[{"name":"epoch","type":"Integer"},{"name":"cid","type":"ByteArray"},{"name":"usedSize","type":"Integer"},{"name":"pubKey","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"putNamed","offset":2053,"parameters":[{"name":"container","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"},{"name":"name","type":"String"},{"name":"zone","type":"String"}],"returntype":"Void","safe":false},{"name":"setEACL","offset":3987,"parameters":[{"name":"eACL","type":"ByteArray"},{"name":"signature","type":"Signature"},{"name":"publicKey","type":"PublicKey"},{"name":"token","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"startContainerEstimation","offset":4964,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"stopContainerEstimation","offset":5045,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Void","safe":false},{"name":"update","offset":1904,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":5125,"parameters":[],"returntype":"Integer","safe":true}],"events":[{"name":"PutSuccess","parameters":[{"name":"containerID","type":"Hash256"},{"name":"publicKey","type":"PublicKey"}]},{"name":"DeleteSuccess","parameters":[{"name":"containerID","type":"ByteArray"}]},{"name":"SetEACLSuccess","parameters":[{"name":"containerID","type":"ByteArray"},{"name":"publicKey","type":"PublicKey"}]},{"name":"StartEstimation","parameters":[{"name":"epoch","type":"Integer"}]},{"name":"StopEstimation","parameters":[{"name":"epoch","type":"Integer"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","addKey","transferX","register","registerTLD","addRecord","deleteRecords","subscribeForNewEpoch"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/neofs/contract.nef b/contracts/neofs/contract.nef index 4eb19b9f89d9232daed376092cb2139b9e0e16eb..0a276b2c433edc7636e3e85e57732fe1a3eb30f3 100755 GIT binary patch delta 931 zcmZ{jOK1~87{_-uX?8b{c6Td^P{nRTv?@hxM)BEHjcBS64W;y$w$|NbA8EQtH}%m= zQ4fOXs25|k^&)~G6crRPil-tQR0QkuQmBF#wN?>zoHRk|!PCIZ_y2#t|MxNP{dfE~ zwgP&VM4u+}MctGu0yLO_ZGdsM;BXyp#|k*ucM zgHbq5Gy#5LA*@AS_^T!)XP76w-jQD9BH#=^j0_etNiA1<->g&&k&?7rc~pz3e8X{! zF%cyArp1Fofn=*ZCJlz@iYXy&d6}-bsv2g$9E0X>j1!>_Cv62cr}#d(Otd(XF3-IL z9NZUhCHkbQyfj@(uRNV+;E2IyG*)%QckCC&=|u36l^cXDXtk>YgwU|7+2!?66dXYJ zTu0dxZi-4L;8wJqDT=3lVm!bZoZjRJ$p#yRJCL7!NzbrnxYxA%2YSn`1aA@N9sw=r zs(TlhMW5VL;u04{MJDV0&R6wmCD1FwH{;WuI=~j3bJkhp@ySBdH)72g%$&6qg;QwQ zX95~+^fdd*@q*=*qEK~XU0!-jQdzmESm^UQw<&s$5^X&PjCiQyKa!>YNL=lD*L;y1 z2{kR;5IqM3XOP#orLKVxnJVm@#h5Q-a%G6!C5Wt!?$&JT){B|EbenJ}fu_XY-HVrN zM}-lxLMs`A7iUN+)?f{$G%*ru|5uFX{RJ%suYbYV(nyd2&RgAD`6KPAp166y;7}*8 qxSoB+xIc$@-v;&pkrSqGh!g5+P7`HT*DB7t$AiKe;5@YM`ISEiLQAXw delta 952 zcmaizOK1~O6o%(c#(Ct?-lV?j1MC>5v=uFFFH#gum58J$fl#_mu{xQV%uFY*Nl?4c zg@uTViyMtEa3cr`QWv^t6ZxbMCnueiOd1 z5zyfvj(~n3;4)|fo%j+s&xaZduf8MJIaH+% z;&!eY+W*~k3xXl&YdjIz;NvKQef$Gj5b$gM5k2z_-w@it9sEu>0lM*F?=~=vr@Svi zT`Wb#?ze=Qhb>l0+9jj+7aiX+5V*_CYVZE+x)~K8g}t~l&>j@OkR+VJ%_gzq=qXkM zS>VAfzODsi*u}bPQL#2`yrQ9PX>HI~?P5GMY5AGWDSf9B?>hpFWMuF^qG4Q(gR;bacx^?Fy^i#mC^28Rzdt``ihnyWq6v-o!7 z{H?rfs|mD+2-VtX@U=dY5_>K{iUB?99R?p diff --git a/contracts/neofs/manifest.json b/contracts/neofs/manifest.json index 0dc3b4c3..56ccd749 100755 --- a/contracts/neofs/manifest.json +++ b/contracts/neofs/manifest.json @@ -1 +1 @@ -{"name":"NeoFS","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":74,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alphabetAddress","offset":1388,"parameters":[],"returntype":"Hash160","safe":true},{"name":"alphabetList","offset":1336,"parameters":[],"returntype":"Array","safe":true},{"name":"alphabetUpdate","offset":3535,"parameters":[{"name":"id","type":"ByteArray"},{"name":"args","type":"Array"}],"returntype":"Void","safe":false},{"name":"bind","offset":3255,"parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"cheque","offset":2975,"parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAcc","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":3909,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"innerRingCandidateAdd","offset":1856,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidateRemove","offset":1481,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidates","offset":1409,"parameters":[],"returntype":"Array","safe":true},{"name":"listConfig","offset":4161,"parameters":[],"returntype":"Array","safe":true},{"name":"onNEP17Payment","offset":2106,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":3927,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"unbind","offset":3394,"parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":1226,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":4243,"parameters":[],"returntype":"Integer","safe":true},{"name":"withdraw","offset":2552,"parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"}],"returntype":"Void","safe":false}],"events":[{"name":"Deposit","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"receiver","type":"Hash160"},{"name":"txHash","type":"Hash256"}]},{"name":"Withdraw","parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txHash","type":"Hash256"}]},{"name":"Cheque","parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAccount","type":"ByteArray"}]},{"name":"Bind","parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}]},{"name":"Unbind","parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}]},{"name":"AlphabetUpdate","parameters":[{"name":"id","type":"ByteArray"},{"name":"alphabet","type":"Array"}]},{"name":"SetConfig","parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"value","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file +{"name":"NeoFS","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":74,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"alphabetAddress","offset":1363,"parameters":[],"returntype":"Hash160","safe":true},{"name":"alphabetList","offset":1311,"parameters":[],"returntype":"Array","safe":true},{"name":"alphabetUpdate","offset":3498,"parameters":[{"name":"id","type":"ByteArray"},{"name":"args","type":"Array"}],"returntype":"Void","safe":false},{"name":"bind","offset":3230,"parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"cheque","offset":2950,"parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAcc","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"config","offset":3863,"parameters":[{"name":"key","type":"ByteArray"}],"returntype":"Any","safe":true},{"name":"innerRingCandidateAdd","offset":1831,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidateRemove","offset":1456,"parameters":[{"name":"key","type":"PublicKey"}],"returntype":"Void","safe":false},{"name":"innerRingCandidates","offset":1384,"parameters":[],"returntype":"Array","safe":true},{"name":"listConfig","offset":4115,"parameters":[],"returntype":"Array","safe":true},{"name":"onNEP17Payment","offset":2081,"parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"setConfig","offset":3881,"parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"val","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"unbind","offset":3363,"parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}],"returntype":"Void","safe":false},{"name":"update","offset":1201,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":4197,"parameters":[],"returntype":"Integer","safe":true},{"name":"withdraw","offset":2527,"parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"}],"returntype":"Void","safe":false}],"events":[{"name":"Deposit","parameters":[{"name":"from","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"receiver","type":"Hash160"},{"name":"txHash","type":"Hash256"}]},{"name":"Withdraw","parameters":[{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"txHash","type":"Hash256"}]},{"name":"Cheque","parameters":[{"name":"id","type":"ByteArray"},{"name":"user","type":"Hash160"},{"name":"amount","type":"Integer"},{"name":"lockAccount","type":"ByteArray"}]},{"name":"Bind","parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}]},{"name":"Unbind","parameters":[{"name":"user","type":"Hash160"},{"name":"keys","type":"Array"}]},{"name":"AlphabetUpdate","parameters":[{"name":"id","type":"ByteArray"},{"name":"alphabet","type":"Array"}]},{"name":"SetConfig","parameters":[{"name":"id","type":"ByteArray"},{"name":"key","type":"ByteArray"},{"name":"value","type":"ByteArray"}]}]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update","transfer"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file diff --git a/contracts/neofsid/contract.nef b/contracts/neofsid/contract.nef index e09d0dd3be7a90d5f3f5545a0f99618f680b9552..0f4c257f61141f9d9528bc39239e320fac0d8954 100755 GIT binary patch delta 101 zcmV-r0Gj{O49^UZ)d6&o)?ER;vorxX0V@Lmcr-e2Hv#~0XiCZuOG`2s5=~3aa%pN3 z&Yu7jEC)qJMF~KhBIrd$MU$EWodGzLI0JbB7n8CBF9B_n;sdV%?vs)P%mE>jUj^?3 HaXWF}sWc)! delta 104 zcmV-u0GI#I4AKmc)d6>r)?ER>vorxX0WJgqcr-n5Hv#~05OQj0O4uX?$|3|s5Va;2 zXll-LX=@VBp8ymr1PMTDoN^-Ila~UW0X35~19<@yldl6W0cw-q1Fr$=laB<<0UncF K1@8pl1bJmPn~HDk z3QT7K6__&r{r?{oaCg z-pd}ys6LsW!w6`+6NeS!sm-+`|Qt|&80=-hk; z5gm3{S65DlIZ7{p^yE6Gxr`Q*Wtd|bjVD(z>oayvUd0^E7`K^?#f*_9Xq&?a0KI@6 Aj{pDw delta 99 zcmV-p0G$853cw1G)d6LZ)?ERlvorx50WJgqcr-n5Hv#~05OQj0O4uX?$|3|s5Va;2 zXll-LX=@VBp8ymr1PMTDoN^-IlY0W40X35u16=_ylXn9z0fv*O16u)GvjYS+0R(|) F5IR3T9zp;B diff --git a/contracts/reputation/manifest.json b/contracts/reputation/manifest.json index ae73a8f5..e138ce39 100755 --- a/contracts/reputation/manifest.json +++ b/contracts/reputation/manifest.json @@ -1 +1 @@ -{"name":"NeoFS Reputation","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":914,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getByID","offset":930,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":1020,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"put","offset":804,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"},{"name":"value","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":670,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1098,"parameters":[],"returntype":"Integer","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file +{"name":"NeoFS Reputation","abi":{"methods":[{"name":"_initialize","offset":0,"parameters":[],"returntype":"Void","safe":false},{"name":"_deploy","offset":35,"parameters":[{"name":"data","type":"Any"},{"name":"isUpdate","type":"Boolean"}],"returntype":"Void","safe":false},{"name":"get","offset":911,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"getByID","offset":927,"parameters":[{"name":"id","type":"ByteArray"}],"returntype":"Array","safe":true},{"name":"listByEpoch","offset":1017,"parameters":[{"name":"epoch","type":"Integer"}],"returntype":"Array","safe":true},{"name":"put","offset":801,"parameters":[{"name":"epoch","type":"Integer"},{"name":"peerID","type":"ByteArray"},{"name":"value","type":"ByteArray"}],"returntype":"Void","safe":false},{"name":"update","offset":667,"parameters":[{"name":"script","type":"ByteArray"},{"name":"manifest","type":"ByteArray"},{"name":"data","type":"Any"}],"returntype":"Void","safe":false},{"name":"version","offset":1095,"parameters":[],"returntype":"Integer","safe":false}],"events":[]},"features":{},"groups":[],"permissions":[{"contract":"*","methods":["update"]}],"supportedstandards":[],"trusts":[],"extra":null} \ No newline at end of file