From 79cff420b4958bd7b54bbddec0c3ea9bd8c992c4 Mon Sep 17 00:00:00 2001
From: Alex Vanin <alexey@nspcc.ru>
Date: Wed, 24 Mar 2021 11:10:31 +0300
Subject: [PATCH] [#58] container: Use alphabet list from chain

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
---
 container/container_contract.go | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/container/container_contract.go b/container/container_contract.go
index 5b83cfc..1096c19 100644
--- a/container/container_contract.go
+++ b/container/container_contract.go
@@ -96,7 +96,7 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
 	containerID := crypto.Sha256(container)
 	neofsIDContractAddr := storage.Get(ctx, neofsIDContractKey).(interop.Hash160)
 
-	multiaddr := common.InnerRingMultiAddressViaStorage(ctx, netmapContractKey)
+	multiaddr := common.AlphabetAddress()
 	if !runtime.CheckWitness(multiaddr) {
 		if !isSignedByOwnerKey(container, signature, ownerID, publicKey) {
 			// check keys from NeoFSID
@@ -118,9 +118,9 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
 
 	// todo: check if new container with unique container id
 
-	innerRing := common.InnerRingList(netmapContractAddr)
-	for i := 0; i < len(innerRing); i++ {
-		node := innerRing[i]
+	alphabet := common.AlphabetNodes()
+	for i := 0; i < len(alphabet); i++ {
+		node := alphabet[i]
 		to := contract.CreateStandardAccount(node.PublicKey)
 
 		tx := contract.Call(balanceContractAddr, "transferX",
@@ -151,7 +151,7 @@ func Delete(containerID, signature []byte) bool {
 		panic("delete: container does not exist")
 	}
 
-	multiaddr := common.InnerRingMultiAddressViaStorage(ctx, netmapContractKey)
+	multiaddr := common.AlphabetAddress()
 	if !runtime.CheckWitness(multiaddr) {
 		// check provided key
 		neofsIDContractAddr := storage.Get(ctx, neofsIDContractKey).(interop.Hash160)
@@ -334,7 +334,7 @@ func ListContainerSizes(epoch int) [][]byte {
 func NewEpoch(epochNum int) {
 	ctx := storage.GetContext()
 
-	multiaddr := common.InnerRingMultiAddressViaStorage(ctx, netmapContractKey)
+	multiaddr := common.AlphabetAddress()
 	if !runtime.CheckWitness(multiaddr) {
 		panic("newEpoch: this method must be invoked from inner ring")
 	}
@@ -346,9 +346,7 @@ func NewEpoch(epochNum int) {
 }
 
 func StartContainerEstimation(epoch int) bool {
-	ctx := storage.GetReadOnlyContext()
-
-	multiaddr := common.InnerRingMultiAddressViaStorage(ctx, netmapContractKey)
+	multiaddr := common.AlphabetAddress()
 	if !runtime.CheckWitness(multiaddr) {
 		panic("startEstimation: only inner ring nodes can invoke this")
 	}
@@ -360,9 +358,7 @@ func StartContainerEstimation(epoch int) bool {
 }
 
 func StopContainerEstimation(epoch int) bool {
-	ctx := storage.GetReadOnlyContext()
-
-	multiaddr := common.InnerRingMultiAddressViaStorage(ctx, netmapContractKey)
+	multiaddr := common.AlphabetAddress()
 	if !runtime.CheckWitness(multiaddr) {
 		panic("stopEstimation: only inner ring nodes can invoke this")
 	}