From 5e604b6f8b290be5fc3e0f08f14f681f756ecc5c Mon Sep 17 00:00:00 2001 From: Pavel Karpy Date: Tue, 30 Nov 2021 16:21:14 +0300 Subject: [PATCH] [#184] *: Check status of `neo.Transfer` and `gas.Transfer` Signed-off-by: Pavel Karpy --- alphabet/alphabet_contract.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/alphabet/alphabet_contract.go b/alphabet/alphabet_contract.go index 830396b..8a85ef7 100644 --- a/alphabet/alphabet_contract.go +++ b/alphabet/alphabet_contract.go @@ -136,7 +136,9 @@ func Emit() { contractHash := runtime.GetExecutingScriptHash() - neo.Transfer(contractHash, contractHash, neo.BalanceOf(contractHash), nil) + if !neo.Transfer(contractHash, contractHash, neo.BalanceOf(contractHash), nil) { + panic("failed to transfer funds, aborting") + } gasBalance := gas.BalanceOf(contractHash) @@ -148,7 +150,10 @@ func Emit() { panic("no gas to emit") } - gas.Transfer(contractHash, proxyAddr, proxyGas, nil) + if !gas.Transfer(contractHash, proxyAddr, proxyGas, nil) { + runtime.Log("could not transfer GAS to proxy contract") + } + gasBalance -= proxyGas runtime.Log("utility token has been emitted to proxy contract") @@ -168,7 +173,9 @@ func Emit() { if gasPerNode != 0 { for _, node := range innerRing { address := contract.CreateStandardAccount(node.PublicKey) - gas.Transfer(contractHash, address, gasPerNode, nil) + if !gas.Transfer(contractHash, address, gasPerNode, nil) { + runtime.Log("could not transfer GAS to one of IR node") + } } runtime.Log("utility token has been emitted to inner ring nodes")