From 27f5944f3014e32826dc29b90ed748ec292a6eb2 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Mon, 17 May 2021 09:30:39 +0300 Subject: [PATCH] [#71] neofs: remove `deposit` method Everything can be implemented in `OnNEP17Payment` directly. In case of 0 amount, exception is raised instead of returning `false` value. Signed-off-by: Evgenii Stratonikov --- neofs/neofs_contract.go | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/neofs/neofs_contract.go b/neofs/neofs_contract.go index 31a334d..972c143 100644 --- a/neofs/neofs_contract.go +++ b/neofs/neofs_contract.go @@ -8,7 +8,6 @@ package smart_contract - InitConfig User related methods: - - Deposit - Withdraw - Bind - Unbind @@ -67,6 +66,7 @@ const ( publicKeySize = 33 maxBalanceAmount = 9000 // Max integer of Fixed12 in JSON bound (2**53-1) + maxBalanceAmountGAS = maxBalanceAmount * 1_0000_0000 // hardcoded value to ignore deposit notification in onReceive ignoreDepositNotification = "\x57\x0b" @@ -253,6 +253,12 @@ func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) { return } + if amount <= 0 { + panic("onNEP17Payment: amount must be positive") + } else if maxBalanceAmountGAS < amount { + panic("onNEP17Payment: out of max amount limit") + } + caller := runtime.GetCallingScriptHash() if !common.BytesEqual(caller, interop.Hash160(gas.Hash)) { panic("onNEP17Payment: only GAS can be accepted for deposit") @@ -272,31 +278,6 @@ func OnNEP17Payment(from interop.Hash160, amount int, data interface{}) { runtime.Notify("Deposit", from, amount, rcv, tx.Hash) } -// Deposit gas assets to this script-hash address in NeoFS balance contract. -func Deposit(from interop.Hash160, amount int, rcv interop.Hash160) bool { - if !runtime.CheckWitness(from) { - panic("deposit: you should be the owner of the wallet") - } - - if amount > maxBalanceAmount { - panic("deposit: out of max amount limit") - } - - if amount <= 0 { - return false - } - amount = amount * 100000000 - - to := runtime.GetExecutingScriptHash() - - transferred := gas.Transfer(from, to, amount, rcv) - if !transferred { - panic("deposit: failed to transfer funds, aborting") - } - - return true -} - // Withdraw initialize gas asset withdraw from NeoFS balance. func Withdraw(user interop.Hash160, amount int) bool { if !runtime.CheckWitness(user) {