[#79] Panic instead of returning bool value

There is a number of contracts which return only `true` value.
Also handling `FAULT` on the client is easier then also checking return
value.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2021-05-21 14:37:31 +03:00 committed by Alex Vanin
parent de255b0a43
commit db2b1be746
7 changed files with 62 additions and 127 deletions

View file

@ -117,7 +117,7 @@ func checkPermission(ir []common.IRNode) bool {
return runtime.CheckWitness(node.PublicKey) return runtime.CheckWitness(node.PublicKey)
} }
func Emit() bool { func Emit() {
ctx := storage.GetReadOnlyContext() ctx := storage.GetReadOnlyContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -135,8 +135,7 @@ func Emit() bool {
proxyGas := gasBalance / 2 proxyGas := gasBalance / 2
if proxyGas == 0 { if proxyGas == 0 {
runtime.Log("no gas to emit") panic("no gas to emit")
return false
} }
gas.Transfer(contractHash, proxyAddr, proxyGas, nil) gas.Transfer(contractHash, proxyAddr, proxyGas, nil)
@ -161,8 +160,6 @@ func Emit() bool {
runtime.Log("utility token has been emitted to inner ring nodes") runtime.Log("utility token has been emitted to inner ring nodes")
} }
return true
} }
func Vote(epoch int, candidates []interop.PublicKey) { func Vote(epoch int, candidates []interop.PublicKey) {

View file

@ -84,7 +84,7 @@ func Migrate(script []byte, manifest []byte) bool {
return true return true
} }
func Put(rawAuditResult []byte) bool { func Put(rawAuditResult []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -116,8 +116,6 @@ func Put(rawAuditResult []byte) bool {
storage.Put(ctx, hdr.ID(), rawAuditResult) storage.Put(ctx, hdr.ID(), rawAuditResult)
runtime.Log("audit: result has been saved") runtime.Log("audit: result has been saved")
return true
} }
func Get(id []byte) []byte { func Get(id []byte) []byte {

View file

@ -126,7 +126,7 @@ func Transfer(from, to interop.Hash160, amount int, data interface{}) bool {
return token.transfer(ctx, from, to, amount, false, nil) return token.transfer(ctx, from, to, amount, false, nil)
} }
func TransferX(from, to interop.Hash160, amount int, details []byte) bool { func TransferX(from, to interop.Hash160, amount int, details []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -161,24 +161,21 @@ func TransferX(from, to interop.Hash160, amount int, details []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
} }
result := token.transfer(ctx, from, to, amount, true, details) result := token.transfer(ctx, from, to, amount, true, details)
if result { if !result {
runtime.Log("transferX: success") panic("transferX: fail")
} else {
// consider panic there
runtime.Log("transferX: fail")
} }
return result runtime.Log("transferX: success")
} }
func Lock(txDetails []byte, from, to interop.Hash160, amount, until int) bool { func Lock(txDetails []byte, from, to interop.Hash160, amount, until int) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -214,7 +211,7 @@ func Lock(txDetails []byte, from, to interop.Hash160, amount, until int) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -230,11 +227,9 @@ func Lock(txDetails []byte, from, to interop.Hash160, amount, until int) bool {
runtime.Log("lock: created lock account") runtime.Log("lock: created lock account")
runtime.Notify("Lock", txDetails, from, to, amount, until) runtime.Notify("Lock", txDetails, from, to, amount, until)
return true
} }
func NewEpoch(epochNum int) bool { func NewEpoch(epochNum int) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -272,11 +267,9 @@ func NewEpoch(epochNum int) bool {
token.transfer(ctx, addr, acc.Parent, acc.Balance, true, details) token.transfer(ctx, addr, acc.Parent, acc.Balance, true, details)
} }
} }
return true
} }
func Mint(to interop.Hash160, amount int, txDetails []byte) bool { func Mint(to interop.Hash160, amount int, txDetails []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -306,7 +299,7 @@ func Mint(to interop.Hash160, amount int, txDetails []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -322,11 +315,9 @@ func Mint(to interop.Hash160, amount int, txDetails []byte) bool {
storage.Put(ctx, token.CirculationKey, supply) storage.Put(ctx, token.CirculationKey, supply)
runtime.Log("mint: assets were minted") runtime.Log("mint: assets were minted")
runtime.Notify("Mint", to, amount) runtime.Notify("Mint", to, amount)
return true
} }
func Burn(from interop.Hash160, amount int, txDetails []byte) bool { func Burn(from interop.Hash160, amount int, txDetails []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -356,7 +347,7 @@ func Burn(from interop.Hash160, amount int, txDetails []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -376,8 +367,6 @@ func Burn(from interop.Hash160, amount int, txDetails []byte) bool {
storage.Put(ctx, token.CirculationKey, supply) storage.Put(ctx, token.CirculationKey, supply)
runtime.Log("burn: assets were burned") runtime.Log("burn: assets were burned")
runtime.Notify("Burn", from, amount) runtime.Notify("Burn", from, amount)
return true
} }
func Version() int { func Version() int {

View file

@ -110,7 +110,7 @@ func Migrate(script []byte, manifest []byte) bool {
return true return true
} }
func Put(container []byte, signature interop.Signature, publicKey interop.PublicKey, token []byte) bool { func Put(container []byte, signature interop.Signature, publicKey interop.PublicKey, token []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -142,7 +142,7 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
if !alphabetCall { if !alphabetCall {
runtime.Notify("containerPut", container, signature, publicKey, token) runtime.Notify("containerPut", container, signature, publicKey, token)
return true return
} }
from := common.WalletToScriptHash(ownerID) from := common.WalletToScriptHash(ownerID)
@ -159,7 +159,7 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -169,16 +169,13 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
node := alphabet[i] node := alphabet[i]
to := contract.CreateStandardAccount(node.PublicKey) to := contract.CreateStandardAccount(node.PublicKey)
tx := contract.Call(balanceContractAddr, "transferX", contract.Call(balanceContractAddr, "transferX",
contract.All, contract.All,
from, from,
to, to,
containerFee, containerFee,
details, details,
) )
if !tx.(bool) {
panic("put: can't transfer assets for container creation")
}
} }
addContainer(ctx, containerID, ownerID, cnr) addContainer(ctx, containerID, ownerID, cnr)
@ -188,11 +185,9 @@ func Put(container []byte, signature interop.Signature, publicKey interop.Public
} }
runtime.Log("put: added new container") runtime.Log("put: added new container")
return true
} }
func Delete(containerID []byte, signature interop.Signature, token []byte) bool { func Delete(containerID []byte, signature interop.Signature, token []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -218,7 +213,7 @@ func Delete(containerID []byte, signature interop.Signature, token []byte) bool
if !alphabetCall { if !alphabetCall {
runtime.Notify("containerDelete", containerID, signature, token) runtime.Notify("containerDelete", containerID, signature, token)
return true return
} }
if notaryDisabled { if notaryDisabled {
@ -227,7 +222,7 @@ func Delete(containerID []byte, signature interop.Signature, token []byte) bool
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -235,8 +230,6 @@ func Delete(containerID []byte, signature interop.Signature, token []byte) bool
removeContainer(ctx, containerID, ownerID) removeContainer(ctx, containerID, ownerID)
runtime.Log("delete: remove container") runtime.Log("delete: remove container")
return true
} }
func Get(containerID []byte) Container { func Get(containerID []byte) Container {
@ -276,7 +269,7 @@ func List(owner []byte) [][]byte {
return list return list
} }
func SetEACL(eACL []byte, signature interop.Signature, publicKey interop.PublicKey, token []byte) bool { func SetEACL(eACL []byte, signature interop.Signature, publicKey interop.PublicKey, token []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -307,7 +300,7 @@ func SetEACL(eACL []byte, signature interop.Signature, publicKey interop.PublicK
if !alphabetCall { if !alphabetCall {
runtime.Notify("setEACL", eACL, signature, publicKey, token) runtime.Notify("setEACL", eACL, signature, publicKey, token)
return true return
} }
rule := ExtendedACL{ rule := ExtendedACL{
@ -325,7 +318,7 @@ func SetEACL(eACL []byte, signature interop.Signature, publicKey interop.PublicK
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -334,8 +327,6 @@ func SetEACL(eACL []byte, signature interop.Signature, publicKey interop.PublicK
common.SetSerialized(ctx, key, rule) common.SetSerialized(ctx, key, rule)
runtime.Log("setEACL: success") runtime.Log("setEACL: success")
return true
} }
func EACL(containerID []byte) ExtendedACL { func EACL(containerID []byte) ExtendedACL {
@ -349,7 +340,7 @@ func EACL(containerID []byte) ExtendedACL {
return getEACL(ctx, containerID) return getEACL(ctx, containerID)
} }
func PutContainerSize(epoch int, cid []byte, usedSize int, pubKey interop.PublicKey) bool { func PutContainerSize(epoch int, cid []byte, usedSize int, pubKey interop.PublicKey) {
ctx := storage.GetContext() ctx := storage.GetContext()
if !runtime.CheckWitness(pubKey) { if !runtime.CheckWitness(pubKey) {
@ -367,7 +358,7 @@ func PutContainerSize(epoch int, cid []byte, usedSize int, pubKey interop.Public
for i := range s.estimations { for i := range s.estimations {
est := s.estimations[i] est := s.estimations[i]
if common.BytesEqual(est.from, pubKey) { if common.BytesEqual(est.from, pubKey) {
return false panic("invalid estimation")
} }
} }
@ -379,8 +370,6 @@ func PutContainerSize(epoch int, cid []byte, usedSize int, pubKey interop.Public
storage.Put(ctx, key, std.Serialize(s)) storage.Put(ctx, key, std.Serialize(s))
runtime.Log("container: saved container size estimation") runtime.Log("container: saved container size estimation")
return true
} }
func GetContainerSize(id []byte) containerSizes { func GetContainerSize(id []byte) containerSizes {
@ -434,7 +423,7 @@ func NewEpoch(epochNum int) {
} }
} }
func StartContainerEstimation(epoch int) bool { func StartContainerEstimation(epoch int) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -462,7 +451,7 @@ func StartContainerEstimation(epoch int) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -470,11 +459,9 @@ func StartContainerEstimation(epoch int) bool {
runtime.Notify("StartEstimation", epoch) runtime.Notify("StartEstimation", epoch)
runtime.Log("startEstimation: notification has been produced") runtime.Log("startEstimation: notification has been produced")
return true
} }
func StopContainerEstimation(epoch int) bool { func StopContainerEstimation(epoch int) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -502,7 +489,7 @@ func StopContainerEstimation(epoch int) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -510,8 +497,6 @@ func StopContainerEstimation(epoch int) bool {
runtime.Notify("StopEstimation", epoch) runtime.Notify("StopEstimation", epoch)
runtime.Log("stopEstimation: notification has been produced") runtime.Log("stopEstimation: notification has been produced")
return true
} }
func Version() int { func Version() int {

View file

@ -159,7 +159,7 @@ func InnerRingCandidates() []common.IRNode {
} }
// InnerRingCandidateRemove removes key from the list of inner ring candidates. // InnerRingCandidateRemove removes key from the list of inner ring candidates.
func InnerRingCandidateRemove(key interop.PublicKey) bool { func InnerRingCandidateRemove(key interop.PublicKey) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -204,19 +204,17 @@ func InnerRingCandidateRemove(key interop.PublicKey) bool {
n := common.Vote(ctx, hashID, nodeKey) n := common.Vote(ctx, hashID, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, hashID) common.RemoveVotes(ctx, hashID)
} }
common.SetSerialized(ctx, candidatesKey, nodes) common.SetSerialized(ctx, candidatesKey, nodes)
return true
} }
// InnerRingCandidateAdd adds key to the list of inner ring candidates. // InnerRingCandidateAdd adds key to the list of inner ring candidates.
func InnerRingCandidateAdd(key interop.PublicKey) bool { func InnerRingCandidateAdd(key interop.PublicKey) {
ctx := storage.GetContext() ctx := storage.GetContext()
if !runtime.CheckWitness(key) { if !runtime.CheckWitness(key) {
@ -242,8 +240,6 @@ func InnerRingCandidateAdd(key interop.PublicKey) bool {
runtime.Log("irCandidateAdd: candidate has been added") runtime.Log("irCandidateAdd: candidate has been added")
common.SetSerialized(ctx, candidatesKey, list) common.SetSerialized(ctx, candidatesKey, list)
return true
} }
// OnNEP17Payment is a callback for NEP-17 compatible native GAS contract. // OnNEP17Payment is a callback for NEP-17 compatible native GAS contract.
@ -279,7 +275,7 @@ func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
} }
// Withdraw initialize gas asset withdraw from NeoFS balance. // Withdraw initialize gas asset withdraw from NeoFS balance.
func Withdraw(user interop.Hash160, amount int) bool { func Withdraw(user interop.Hash160, amount int) {
if !runtime.CheckWitness(user) { if !runtime.CheckWitness(user) {
panic("withdraw: you should be the owner of the wallet") panic("withdraw: you should be the owner of the wallet")
} }
@ -322,13 +318,11 @@ func Withdraw(user interop.Hash160, amount int) bool {
tx := runtime.GetScriptContainer() tx := runtime.GetScriptContainer()
runtime.Notify("Withdraw", user, amount, tx.Hash) runtime.Notify("Withdraw", user, amount, tx.Hash)
return true
} }
// Cheque sends gas assets back to the user if they were successfully // Cheque sends gas assets back to the user if they were successfully
// locked in NeoFS balance contract. // locked in NeoFS balance contract.
func Cheque(id []byte, user interop.Hash160, amount int, lockAcc []byte) bool { func Cheque(id []byte, user interop.Hash160, amount int, lockAcc []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -357,7 +351,7 @@ func Cheque(id []byte, user interop.Hash160, amount int, lockAcc []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -370,12 +364,10 @@ func Cheque(id []byte, user interop.Hash160, amount int, lockAcc []byte) bool {
runtime.Log("cheque: funds have been transferred") runtime.Log("cheque: funds have been transferred")
runtime.Notify("Cheque", id, user, amount, lockAcc) runtime.Notify("Cheque", id, user, amount, lockAcc)
return true
} }
// Bind public key with user's account to use it in NeoFS requests. // Bind public key with user's account to use it in NeoFS requests.
func Bind(user []byte, keys []interop.PublicKey) bool { func Bind(user []byte, keys []interop.PublicKey) {
if !runtime.CheckWitness(user) { if !runtime.CheckWitness(user) {
panic("binding: you should be the owner of the wallet") panic("binding: you should be the owner of the wallet")
} }
@ -388,12 +380,10 @@ func Bind(user []byte, keys []interop.PublicKey) bool {
} }
runtime.Notify("Bind", user, keys) runtime.Notify("Bind", user, keys)
return true
} }
// Unbind public key from user's account // Unbind public key from user's account
func Unbind(user []byte, keys []interop.PublicKey) bool { func Unbind(user []byte, keys []interop.PublicKey) {
if !runtime.CheckWitness(user) { if !runtime.CheckWitness(user) {
panic("unbinding: you should be the owner of the wallet") panic("unbinding: you should be the owner of the wallet")
} }
@ -406,13 +396,11 @@ func Unbind(user []byte, keys []interop.PublicKey) bool {
} }
runtime.Notify("Unbind", user, keys) runtime.Notify("Unbind", user, keys)
return true
} }
// AlphabetUpdate updates list of alphabet nodes with provided list of // AlphabetUpdate updates list of alphabet nodes with provided list of
// public keys. // public keys.
func AlphabetUpdate(id []byte, args []interop.PublicKey) bool { func AlphabetUpdate(id []byte, args []interop.PublicKey) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -456,7 +444,7 @@ func AlphabetUpdate(id []byte, args []interop.PublicKey) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -466,8 +454,6 @@ func AlphabetUpdate(id []byte, args []interop.PublicKey) bool {
runtime.Notify("AlphabetUpdate", id, newAlphabet) runtime.Notify("AlphabetUpdate", id, newAlphabet)
runtime.Log("alphabetUpdate: alphabet list has been updated") runtime.Log("alphabetUpdate: alphabet list has been updated")
return true
} }
// Config returns value of NeoFS configuration with provided key. // Config returns value of NeoFS configuration with provided key.
@ -477,7 +463,7 @@ func Config(key []byte) interface{} {
} }
// SetConfig key-value pair as a NeoFS runtime configuration value. // SetConfig key-value pair as a NeoFS runtime configuration value.
func SetConfig(id, key, val []byte) bool { func SetConfig(id, key, val []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -504,7 +490,7 @@ func SetConfig(id, key, val []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -514,8 +500,6 @@ func SetConfig(id, key, val []byte) bool {
runtime.Notify("SetConfig", id, key, val) runtime.Notify("SetConfig", id, key, val)
runtime.Log("setConfig: configuration has been updated") runtime.Log("setConfig: configuration has been updated")
return true
} }
// ListConfig returns array of all key-value pairs of NeoFS configuration. // ListConfig returns array of all key-value pairs of NeoFS configuration.
@ -538,7 +522,7 @@ func ListConfig() []record {
} }
// InitConfig set up initial NeoFS key-value configuration. // InitConfig set up initial NeoFS key-value configuration.
func InitConfig(args [][]byte) bool { func InitConfig(args [][]byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
if getConfig(ctx, candidateFeeConfigKey) != nil { if getConfig(ctx, candidateFeeConfigKey) != nil {
@ -558,8 +542,6 @@ func InitConfig(args [][]byte) bool {
} }
runtime.Log("neofs: config has been installed") runtime.Log("neofs: config has been installed")
return true
} }
// Version of contract. // Version of contract.

View file

@ -69,7 +69,7 @@ func Migrate(script []byte, manifest []byte) bool {
return true return true
} }
func AddKey(owner []byte, keys []interop.PublicKey) bool { func AddKey(owner []byte, keys []interop.PublicKey) {
if len(owner) != 25 { if len(owner) != 25 {
panic("addKey: incorrect owner") panic("addKey: incorrect owner")
} }
@ -127,7 +127,7 @@ addLoop:
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -135,11 +135,9 @@ addLoop:
common.SetSerialized(ctx, owner, info) common.SetSerialized(ctx, owner, info)
runtime.Log("addKey: key bound to the owner") runtime.Log("addKey: key bound to the owner")
return true
} }
func RemoveKey(owner []byte, keys []interop.PublicKey) bool { func RemoveKey(owner []byte, keys []interop.PublicKey) {
if len(owner) != 25 { if len(owner) != 25 {
panic("removeKey: incorrect owner") panic("removeKey: incorrect owner")
} }
@ -194,15 +192,13 @@ rmLoop:
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
} }
common.SetSerialized(ctx, owner, info) common.SetSerialized(ctx, owner, info)
return true
} }
func Key(owner []byte) [][]byte { func Key(owner []byte) [][]byte {

View file

@ -127,7 +127,7 @@ func InnerRingList() []common.IRNode {
return getIRNodes(ctx) return getIRNodes(ctx)
} }
func UpdateInnerRing(keys []interop.PublicKey) bool { func UpdateInnerRing(keys []interop.PublicKey) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -162,7 +162,7 @@ func UpdateInnerRing(keys []interop.PublicKey) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -170,11 +170,9 @@ func UpdateInnerRing(keys []interop.PublicKey) bool {
runtime.Log("updateInnerRing: inner ring list updated") runtime.Log("updateInnerRing: inner ring list updated")
common.SetSerialized(ctx, innerRingKey, irList) common.SetSerialized(ctx, innerRingKey, irList)
return true
} }
func AddPeer(nodeInfo []byte) bool { func AddPeer(nodeInfo []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -199,7 +197,7 @@ func AddPeer(nodeInfo []byte) bool {
panic("addPeer: witness check failed") panic("addPeer: witness check failed")
} }
runtime.Notify("AddPeer", nodeInfo) runtime.Notify("AddPeer", nodeInfo)
return true return
} }
candidate := storageNode{ candidate := storageNode{
@ -215,7 +213,7 @@ func AddPeer(nodeInfo []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -227,11 +225,9 @@ func AddPeer(nodeInfo []byte) bool {
common.SetSerialized(ctx, netmapKey, nm) common.SetSerialized(ctx, netmapKey, nm)
runtime.Log("addPeer: add storage node to the network map") runtime.Log("addPeer: add storage node to the network map")
} }
return true
} }
func UpdateState(state int, publicKey interop.PublicKey) bool { func UpdateState(state int, publicKey interop.PublicKey) {
if len(publicKey) != 33 { if len(publicKey) != 33 {
panic("updateState: incorrect public key") panic("updateState: incorrect public key")
} }
@ -261,7 +257,7 @@ func UpdateState(state int, publicKey interop.PublicKey) bool {
runtime.Notify("UpdateState", state, publicKey) runtime.Notify("UpdateState", state, publicKey)
return true return
} }
if notaryDisabled { if notaryDisabled {
@ -270,7 +266,7 @@ func UpdateState(state int, publicKey interop.PublicKey) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -284,11 +280,9 @@ func UpdateState(state int, publicKey interop.PublicKey) bool {
default: default:
panic("updateState: unsupported state") panic("updateState: unsupported state")
} }
return true
} }
func NewEpoch(epochNum int) bool { func NewEpoch(epochNum int) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -316,7 +310,7 @@ func NewEpoch(epochNum int) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -324,7 +318,7 @@ func NewEpoch(epochNum int) bool {
currentEpoch := storage.Get(ctx, snapshotEpoch).(int) currentEpoch := storage.Get(ctx, snapshotEpoch).(int)
if epochNum <= currentEpoch { if epochNum <= currentEpoch {
return false // ignore invocations with invalid epoch panic("invalid epoch") // ignore invocations with invalid epoch
} }
data0snapshot := getSnapshot(ctx, snapshot0Key) data0snapshot := getSnapshot(ctx, snapshot0Key)
@ -345,8 +339,6 @@ func NewEpoch(epochNum int) bool {
cleanup(ctx, epochNum) cleanup(ctx, epochNum)
runtime.Notify("NewEpoch", epochNum) runtime.Notify("NewEpoch", epochNum)
return true
} }
func Epoch() int { func Epoch() int {
@ -387,7 +379,7 @@ func Config(key []byte) interface{} {
return getConfig(ctx, key) return getConfig(ctx, key)
} }
func SetConfig(id, key, val []byte) bool { func SetConfig(id, key, val []byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool) notaryDisabled := storage.Get(ctx, notaryDisabledKey).(bool)
@ -414,7 +406,7 @@ func SetConfig(id, key, val []byte) bool {
n := common.Vote(ctx, id, nodeKey) n := common.Vote(ctx, id, nodeKey)
if n < threshold { if n < threshold {
return true return
} }
common.RemoveVotes(ctx, id) common.RemoveVotes(ctx, id)
@ -423,11 +415,9 @@ func SetConfig(id, key, val []byte) bool {
setConfig(ctx, key, val) setConfig(ctx, key, val)
runtime.Log("setConfig: configuration has been updated") runtime.Log("setConfig: configuration has been updated")
return true
} }
func InitConfig(args [][]byte) bool { func InitConfig(args [][]byte) {
ctx := storage.GetContext() ctx := storage.GetContext()
if storage.Get(ctx, configuredKey) != nil { if storage.Get(ctx, configuredKey) != nil {
@ -448,8 +438,6 @@ func InitConfig(args [][]byte) bool {
storage.Put(ctx, configuredKey, true) storage.Put(ctx, configuredKey, true)
runtime.Log("netmap: config has been installed") runtime.Log("netmap: config has been installed")
return true
} }
func ListConfig() []record { func ListConfig() []record {