diff --git a/netmap/netmap_contract.go b/netmap/netmap_contract.go index dce982d..e80f28a 100644 --- a/netmap/netmap_contract.go +++ b/netmap/netmap_contract.go @@ -32,7 +32,6 @@ type ( ) const ( - configuredKey = "initconfig" notaryDisabledKey = "notary" innerRingKey = "innerring" @@ -72,6 +71,7 @@ func _deploy(data interface{}, isUpdate bool) { addrBalance := args[2].(interop.Hash160) addrContainer := args[3].(interop.Hash160) keys := args[4].([]interop.PublicKey) + config := args[5].([][]byte) if !common.HasUpdateAccess(ctx) { panic("only owner can reinitialize contract") @@ -108,6 +108,18 @@ func _deploy(data interface{}, isUpdate bool) { runtime.Log("netmap contract notary disabled") } + ln := len(config) + if ln%2 != 0 { + panic("init: bad configuration") + } + + for i := 0; i < ln/2; i++ { + key := config[i*2] + val := config[i*2+1] + + setConfig(ctx, key, val) + } + runtime.Log("netmap contract initialized") } @@ -482,34 +494,6 @@ func SetConfig(id, key, val []byte) { runtime.Log("setConfig: configuration has been updated") } -// InitConfig method sets up initial key-value configuration pair. Can be invoked -// only once. -// -// Arguments should contain even number of byte arrays. First byte array is a -// configuration key and the second is configuration value. -func InitConfig(args [][]byte) { - ctx := storage.GetContext() - - if storage.Get(ctx, configuredKey) != nil { - panic("netmap: configuration already installed") - } - - ln := len(args) - if ln%2 != 0 { - panic("initConfig: bad arguments") - } - - for i := 0; i < ln/2; i++ { - key := args[i*2] - val := args[i*2+1] - - setConfig(ctx, key, val) - } - - storage.Put(ctx, configuredKey, true) - runtime.Log("netmap: config has been installed") -} - // ListConfig returns array of structures that contain key and value of all // NeoFS configuration records. Key and value are both byte arrays. func ListConfig() []record {