forked from TrueCloudLab/frostfs-contract
[#184] *: Change panic
to Log
+ABORT
in OnNEP17Payment
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
e6a33e8193
commit
a2f5f7a74a
5 changed files with 19 additions and 7 deletions
|
@ -28,7 +28,7 @@ const (
|
||||||
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
||||||
caller := runtime.GetCallingScriptHash()
|
caller := runtime.GetCallingScriptHash()
|
||||||
if !common.BytesEqual(caller, []byte(gas.Hash)) && !common.BytesEqual(caller, []byte(neo.Hash)) {
|
if !common.BytesEqual(caller, []byte(gas.Hash)) && !common.BytesEqual(caller, []byte(neo.Hash)) {
|
||||||
panic("alphabet contract accepts GAS and NEO only")
|
common.AbortWithMessage("alphabet contract accepts GAS and NEO only")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
package common
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/interop/runtime"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/interop/util"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
mintPrefix = []byte{0x01}
|
mintPrefix = []byte{0x01}
|
||||||
burnPrefix = []byte{0x02}
|
burnPrefix = []byte{0x02}
|
||||||
|
@ -33,3 +38,10 @@ func UnlockTransferDetails(epoch int) []byte {
|
||||||
func ContainerFeeTransferDetails(cid []byte) []byte {
|
func ContainerFeeTransferDetails(cid []byte) []byte {
|
||||||
return append(containerFeePrefix, cid...)
|
return append(containerFeePrefix, cid...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AbortWithMessage calls `runtime.Log` with passed message
|
||||||
|
// and calls `ABORT` opcode.
|
||||||
|
func AbortWithMessage(msg string) {
|
||||||
|
runtime.Log(msg)
|
||||||
|
util.Abort()
|
||||||
|
}
|
||||||
|
|
|
@ -244,14 +244,14 @@ func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if amount <= 0 {
|
if amount <= 0 {
|
||||||
panic("amount must be positive")
|
common.AbortWithMessage("amount must be positive")
|
||||||
} else if maxBalanceAmountGAS < amount {
|
} else if maxBalanceAmountGAS < amount {
|
||||||
panic("out of max amount limit")
|
common.AbortWithMessage("out of max amount limit")
|
||||||
}
|
}
|
||||||
|
|
||||||
caller := runtime.GetCallingScriptHash()
|
caller := runtime.GetCallingScriptHash()
|
||||||
if !common.BytesEqual(caller, interop.Hash160(gas.Hash)) {
|
if !common.BytesEqual(caller, interop.Hash160(gas.Hash)) {
|
||||||
panic("only GAS can be accepted for deposit")
|
common.AbortWithMessage("only GAS can be accepted for deposit")
|
||||||
}
|
}
|
||||||
|
|
||||||
switch len(rcv) {
|
switch len(rcv) {
|
||||||
|
@ -259,7 +259,7 @@ func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
||||||
case 0:
|
case 0:
|
||||||
rcv = from
|
rcv = from
|
||||||
default:
|
default:
|
||||||
panic("invalid data argument, expected Hash160")
|
common.AbortWithMessage("invalid data argument, expected Hash160")
|
||||||
}
|
}
|
||||||
|
|
||||||
runtime.Log("funds have been transferred")
|
runtime.Log("funds have been transferred")
|
||||||
|
|
|
@ -22,7 +22,7 @@ const (
|
||||||
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
||||||
caller := runtime.GetCallingScriptHash()
|
caller := runtime.GetCallingScriptHash()
|
||||||
if !common.BytesEqual(caller, []byte(gas.Hash)) {
|
if !common.BytesEqual(caller, []byte(gas.Hash)) {
|
||||||
panic("processing contract accepts GAS only")
|
common.AbortWithMessage("processing contract accepts GAS only")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ const (
|
||||||
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) {
|
||||||
caller := runtime.GetCallingScriptHash()
|
caller := runtime.GetCallingScriptHash()
|
||||||
if !common.BytesEqual(caller, []byte(gas.Hash)) {
|
if !common.BytesEqual(caller, []byte(gas.Hash)) {
|
||||||
panic("proxy contract accepts GAS only")
|
common.AbortWithMessage("proxy contract accepts GAS only")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue