Commit a8ab5352 authored by linj's avatar linj

fix unfreeze cli

parent 8f13412b
...@@ -8,6 +8,7 @@ import ( ...@@ -8,6 +8,7 @@ import (
"encoding/hex" "encoding/hex"
"encoding/json" "encoding/json"
"fmt" "fmt"
"math"
"os" "os"
"strings" "strings"
...@@ -64,22 +65,34 @@ func createFlag(cmd *cobra.Command) *cobra.Command { ...@@ -64,22 +65,34 @@ func createFlag(cmd *cobra.Command) *cobra.Command {
return cmd return cmd
} }
func getCreateFlags(cmd *cobra.Command) *pty.UnfreezeCreate { func checkAmount(amount float64) error {
if amount < 0 || amount > float64(types.MaxCoin/types.Coin) {
return types.ErrAmount
}
return nil
}
func getCreateFlags(cmd *cobra.Command) (*pty.UnfreezeCreate, error) {
beneficiary, _ := cmd.Flags().GetString("beneficiary") beneficiary, _ := cmd.Flags().GetString("beneficiary")
exec, _ := cmd.Flags().GetString("asset_exec") exec, _ := cmd.Flags().GetString("asset_exec")
symbol, _ := cmd.Flags().GetString("asset_symbol") symbol, _ := cmd.Flags().GetString("asset_symbol")
total, _ := cmd.Flags().GetInt64("total") total, _ := cmd.Flags().GetFloat64("total")
startTs, _ := cmd.Flags().GetInt64("start_ts") startTs, _ := cmd.Flags().GetInt64("start_ts")
if err := checkAmount(total); err != nil {
return nil, types.ErrAmount
}
totalInt64 := int64(math.Trunc((total+0.0000001)*1e4)) * 1e4
unfreeze := &pty.UnfreezeCreate{ unfreeze := &pty.UnfreezeCreate{
StartTime: startTs, StartTime: startTs,
AssetExec: exec, AssetExec: exec,
AssetSymbol: symbol, AssetSymbol: symbol,
TotalCount: total, TotalCount: totalInt64,
Beneficiary: beneficiary, Beneficiary: beneficiary,
Means: "", Means: "",
} }
return unfreeze return unfreeze, nil
} }
func fixAmountCmd() *cobra.Command { func fixAmountCmd() *cobra.Command {
...@@ -89,7 +102,7 @@ func fixAmountCmd() *cobra.Command { ...@@ -89,7 +102,7 @@ func fixAmountCmd() *cobra.Command {
Run: fixAmount, Run: fixAmount,
} }
cmd = createFlag(cmd) cmd = createFlag(cmd)
cmd.Flags().Int64P("amount", "a", 0, "amount every period") cmd.Flags().Float64P("amount", "a", 0, "amount every period")
cmd.MarkFlagRequired("amount") cmd.MarkFlagRequired("amount")
cmd.Flags().Int64P("period", "p", 0, "period in second") cmd.Flags().Int64P("period", "p", 0, "period in second")
...@@ -98,12 +111,21 @@ func fixAmountCmd() *cobra.Command { ...@@ -98,12 +111,21 @@ func fixAmountCmd() *cobra.Command {
} }
func fixAmount(cmd *cobra.Command, args []string) { func fixAmount(cmd *cobra.Command, args []string) {
create := getCreateFlags(cmd) create, err := getCreateFlags(cmd)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
amount, _ := cmd.Flags().GetInt64("amount") amount, _ := cmd.Flags().GetFloat64("amount")
if err = checkAmount(amount); err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
amountInt64 := int64(math.Trunc((amount+0.0000001)*1e4)) * 1e4
period, _ := cmd.Flags().GetInt64("period") period, _ := cmd.Flags().GetInt64("period")
create.Means = pty.FixAmountX create.Means = pty.FixAmountX
create.MeansOpt = &pty.UnfreezeCreate_FixAmount{FixAmount: &pty.FixAmount{Period: period, Amount: amount}} create.MeansOpt = &pty.UnfreezeCreate_FixAmount{FixAmount: &pty.FixAmount{Period: period, Amount: amountInt64}}
paraName, _ := cmd.Flags().GetString("paraName") paraName, _ := cmd.Flags().GetString("paraName")
tx, err := pty.CreateUnfreezeCreateTx(paraName, create) tx, err := pty.CreateUnfreezeCreateTx(paraName, create)
...@@ -135,7 +157,11 @@ func leftCmd() *cobra.Command { ...@@ -135,7 +157,11 @@ func leftCmd() *cobra.Command {
} }
func left(cmd *cobra.Command, args []string) { func left(cmd *cobra.Command, args []string) {
create := getCreateFlags(cmd) create, err := getCreateFlags(cmd)
if err != nil {
fmt.Fprintln(os.Stderr, err)
return
}
tenThousandth, _ := cmd.Flags().GetInt64("ten_thousandth") tenThousandth, _ := cmd.Flags().GetInt64("ten_thousandth")
period, _ := cmd.Flags().GetInt64("period") period, _ := cmd.Flags().GetInt64("period")
...@@ -190,7 +216,7 @@ func showCmd() *cobra.Command { ...@@ -190,7 +216,7 @@ func showCmd() *cobra.Command {
func queryWithdrawCmd() *cobra.Command { func queryWithdrawCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "show", Use: "show_withdraw",
Short: "show available withdraw amount of one unfreeze construct", Short: "show available withdraw amount of one unfreeze construct",
Run: queryWithdraw, Run: queryWithdraw,
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment