[#728] neofs-adm: update to neofs-contract@v0.10.1

Add config parameters to netmap and neofs contracts.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2021-07-29 13:06:25 +03:00 committed by Alex Vanin
parent 01806db612
commit 9c1fb0b55e
2 changed files with 53 additions and 2 deletions

View file

@ -119,6 +119,14 @@ func newInitializeContext(cmd *cobra.Command, v *viper.Viper) (*initializeContex
return nil, fmt.Errorf("can't find consensus account: %w", err) return nil, fmt.Errorf("can't find consensus account: %w", err)
} }
if viper.GetInt64(epochDurationInitFlag) <= 0 {
return nil, fmt.Errorf("epoch duration must be positive")
}
if viper.GetInt64(maxObjectSizeInitFlag) <= 0 {
return nil, fmt.Errorf("max object size must be positive")
}
initCtx := &initializeContext{ initCtx := &initializeContext{
Client: c, Client: c,
ConsensusAcc: consensusAcc, ConsensusAcc: consensusAcc,

View file

@ -15,6 +15,7 @@ import (
"github.com/nspcc-dev/neo-go/pkg/smartcontract/nef" "github.com/nspcc-dev/neo-go/pkg/smartcontract/nef"
"github.com/nspcc-dev/neo-go/pkg/util" "github.com/nspcc-dev/neo-go/pkg/util"
"github.com/nspcc-dev/neofs-node/pkg/innerring" "github.com/nspcc-dev/neofs-node/pkg/innerring"
"github.com/spf13/viper"
) )
const ( const (
@ -31,6 +32,26 @@ const (
reputationContract = "reputation" reputationContract = "reputation"
) )
const (
netmapEpochKey = "EpochDuration"
netmapMaxObjectSizeKey = "MaxObjectSize"
netmapAuditFeeKey = "AuditFee"
netmapContainerFeeKey = "ContainerFee"
netmapEigenTrustIterationsKey = "EigenTrustIterations"
netmapEigenTrustAlphaKey = "EigenTrustAlpha"
netmapBasicIncomeRateKey = "BasicIncomeRate"
netmapInnerRingCandidateFeeKey = "InnerRingCandidateFee"
netmapWithdrawFeeKey = "WithdrawFee"
defaultAuditFee = 10000
defaultContainerFee = 1000
defaultEigenTrustIterations = 4
defaultEigenTrustAlpha = "0.1"
defaultBasicIncomeRate = 100000000
defaultInnerRingCandidateFee = 10000000000
defaultWithdrawFee = 100000000
)
var contractList = []string{ var contractList = []string{
auditContract, auditContract,
balanceContract, balanceContract,
@ -238,7 +259,8 @@ func (c *initializeContext) getContractDeployData(ctrName string, keysParam []sm
case neofsContract: case neofsContract:
items = append(items, items = append(items,
newContractParameter(smartcontract.Hash160Type, c.Contracts[processingContract].Hash), newContractParameter(smartcontract.Hash160Type, c.Contracts[processingContract].Hash),
newContractParameter(smartcontract.ArrayType, keysParam)) newContractParameter(smartcontract.ArrayType, keysParam),
newContractParameter(smartcontract.ArrayType, smartcontract.Parameter{}))
case processingContract: case processingContract:
items = append(items, newContractParameter(smartcontract.Hash160Type, c.Contracts[neofsContract].Hash)) items = append(items, newContractParameter(smartcontract.Hash160Type, c.Contracts[neofsContract].Hash))
return items[1:] // no notary info return items[1:] // no notary info
@ -259,10 +281,31 @@ func (c *initializeContext) getContractDeployData(ctrName string, keysParam []sm
newContractParameter(smartcontract.Hash160Type, c.Contracts[netmapContract].Hash), newContractParameter(smartcontract.Hash160Type, c.Contracts[netmapContract].Hash),
newContractParameter(smartcontract.Hash160Type, c.Contracts[containerContract].Hash)) newContractParameter(smartcontract.Hash160Type, c.Contracts[containerContract].Hash))
case netmapContract: case netmapContract:
configParam := []smartcontract.Parameter{
{Type: smartcontract.StringType, Value: netmapEpochKey},
{Type: smartcontract.IntegerType, Value: viper.GetInt64(epochDurationInitFlag)},
{Type: smartcontract.StringType, Value: netmapMaxObjectSizeKey},
{Type: smartcontract.IntegerType, Value: viper.GetInt64(maxObjectSizeInitFlag)},
{Type: smartcontract.StringType, Value: netmapAuditFeeKey},
{Type: smartcontract.IntegerType, Value: int64(defaultAuditFee)},
{Type: smartcontract.StringType, Value: netmapContainerFeeKey},
{Type: smartcontract.IntegerType, Value: int64(defaultContainerFee)},
{Type: smartcontract.StringType, Value: netmapEigenTrustIterationsKey},
{Type: smartcontract.IntegerType, Value: int64(defaultEigenTrustIterations)},
{Type: smartcontract.StringType, Value: netmapEigenTrustAlphaKey},
{Type: smartcontract.StringType, Value: defaultEigenTrustAlpha},
{Type: smartcontract.StringType, Value: netmapBasicIncomeRateKey},
{Type: smartcontract.IntegerType, Value: int64(defaultBasicIncomeRate)},
{Type: smartcontract.StringType, Value: netmapInnerRingCandidateFeeKey},
{Type: smartcontract.IntegerType, Value: int64(defaultInnerRingCandidateFee)},
{Type: smartcontract.StringType, Value: netmapWithdrawFeeKey},
{Type: smartcontract.IntegerType, Value: int64(defaultWithdrawFee)},
}
items = append(items, items = append(items,
newContractParameter(smartcontract.Hash160Type, c.Contracts[balanceContract].Hash), newContractParameter(smartcontract.Hash160Type, c.Contracts[balanceContract].Hash),
newContractParameter(smartcontract.Hash160Type, c.Contracts[containerContract].Hash), newContractParameter(smartcontract.Hash160Type, c.Contracts[containerContract].Hash),
newContractParameter(smartcontract.ArrayType, keysParam)) newContractParameter(smartcontract.ArrayType, keysParam),
newContractParameter(smartcontract.ArrayType, configParam))
case proxyContract: case proxyContract:
items = append(items, newContractParameter(smartcontract.Hash160Type, c.Contracts[netmapContract].Hash)) items = append(items, newContractParameter(smartcontract.Hash160Type, c.Contracts[netmapContract].Hash))
case reputationContract: case reputationContract: