diff --git a/Exchanger/exchanger.go b/Exchanger/exchanger.go index 6f5a93a..090c7a6 100644 --- a/Exchanger/exchanger.go +++ b/Exchanger/exchanger.go @@ -21,15 +21,14 @@ func _deploy(data interface{}, isUpdate bool) { }) if len(args.zaCoinHash) != interop.Hash160Len { - panic("invalid hash of zaCoin contract") - } - + panic("invalid hash of zaCoin contract") + } ctx := storage.GetContext() storage.Put(ctx, zaCoinHashKey, args.zaCoinHash) } -func BuyZaCoin(gasCount int){ +func BuyZaCoin(gasCount int) bool { playerOwner := runtime.GetScriptContainer().Sender playerBalance := gas.BalanceOf(playerOwner) @@ -40,12 +39,19 @@ func BuyZaCoin(gasCount int){ contractHash := runtime.GetExecutingScriptHash() transferredGas := gas.Transfer(playerOwner, contractHash, gasCount, nil).(bool) + if !transferredGas { - panic("failed to transfer gas") - } - transferredZaCoin := contract.Call(zaCoinHash, "transfer", contract.All, contractHash, playerBalance, gasCount, nil).(bool) + panic("failed to transfer gas") + } + resultAmountZaCoin := gasCount * 57 + transferredZaCoin := contract.Call(zaCoinHash, "transfer", contract.All, contractHash, playerBalance, resultAmountZaCoin, nil).(bool) if !transferredZaCoin { panic("failed to transfer zaCoins") + } else { + runtime.Log("Gas balance: ", gas.BalanceOf(playerOwner)) + runtime.Log("ZaCoin balance: ", contract.Call(zaCoinHash, "balanceOf", contract.ReadStates, playerOwner)) } + + return transferredZaCoin }