+package main
+
+import (
+ log "github.com/sirupsen/logrus"
+ "github.com/spf13/cobra"
+ "github.com/tendermint/tmlibs/cli"
+
+ "github.com/vapor/toolbar/mergeutxo"
+)
+
+var RootCmd = &cobra.Command{
+ Use: "utxomerge",
+ Short: "merge utxo.",
+ RunE: runReward,
+}
+
+var (
+ hostPort, accountID, password, address string
+ amount uint64
+)
+
+func init() {
+ RootCmd.Flags().StringVar(&hostPort, "host_port", "http://127.0.0.1:9889", "The url for the node. Default:http://127.0.0.1:9889")
+ RootCmd.Flags().StringVar(&accountID, "account_id", "", "The accountID of utxo needs to be merged")
+ RootCmd.Flags().StringVar(&password, "password", "", "Password of the account")
+ RootCmd.Flags().StringVar(&address, "address", "", "The received address after merging utxo")
+ RootCmd.Flags().Uint64Var(&amount, "amount", 0, "Total amount of merged utxo")
+}
+
+func runReward(cmd *cobra.Command, args []string) error {
+ log.Info("This tool belongs to an open-source project, we can not guarantee this tool is bug-free. Please check the code before using, developers will not be responsible for any asset loss due to bug!")
+ txIDs, err := mergeutxo.MergeUTXO(hostPort, accountID, password, address, amount)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Info("Merge utxo successfully. txID: ", txIDs)
+
+ return nil
+}
+
+func main() {
+ cmd := cli.PrepareBaseCmd(RootCmd, "merge_utxo", "./")
+ cmd.Execute()
+}