Skip to content
Snippets Groups Projects
Select Git revision
  • 5b749210b6195a17e70f0e224605e3f0f5233f9a
  • without_tipselection default
  • develop protected
  • fix/grafana-local-dashboard
  • wasp
  • fix/dashboard-explorer-freeze
  • master
  • feat/timerqueue
  • test/sync_debug_and_650
  • feat/sync_revamp_inv
  • wip/sync
  • tool/db-recovery
  • portcheck/fix
  • fix/synchronization
  • feat/new-dashboard-analysis
  • feat/refactored-analysis-dashboard
  • feat/new-analysis-dashboard
  • test/demo-prometheus-fpc
  • prometheus_metrics
  • wip/analysis-server
  • merge/fpc-test-value-transfer
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.3
  • v0.1.2
  • v0.1.1
  • v0.1.0
28 results

sendfunds.go

Blame
  • sendfunds.go 1.71 KiB
    package main
    
    import (
    	"flag"
    	"fmt"
    	"os"
    
    	"github.com/iotaledger/goshimmer/client/wallet"
    	"github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/address"
    	"github.com/iotaledger/goshimmer/dapps/valuetransfers/packages/balance"
    	"github.com/mr-tron/base58"
    )
    
    func execSendFundsCommand(command *flag.FlagSet, cliWallet *wallet.Wallet) {
    	helpPtr := command.Bool("help", false, "show this help screen")
    	addressPtr := command.String("dest-addr", "", "destination address for the transfer")
    	amountPtr := command.Int64("amount", 0, "the amount of tokens that are supposed to be sent")
    	colorPtr := command.String("color", "IOTA", "color of the tokens to transfer (optional)")
    
    	err := command.Parse(os.Args[2:])
    	if err != nil {
    		panic(err)
    	}
    
    	if *helpPtr {
    		printUsage(command)
    	}
    
    	if *addressPtr == "" {
    		printUsage(command, "dest-addr has to be set")
    	}
    	if *amountPtr <= 0 {
    		printUsage(command, "amount has to be set and be bigger than 0")
    	}
    	if *colorPtr == "" {
    		printUsage(command, "color must be set")
    	}
    
    	destinationAddress, err := address.FromBase58(*addressPtr)
    	if err != nil {
    		printUsage(command, err.Error())
    	}
    
    	var color balance.Color
    	switch *colorPtr {
    	case "IOTA":
    		color = balance.ColorIOTA
    	case "NEW":
    		color = balance.ColorNew
    	default:
    		colorBytes, parseErr := base58.Decode(*colorPtr)
    		if parseErr != nil {
    			printUsage(command, parseErr.Error())
    		}
    
    		color, _, parseErr = balance.ColorFromBytes(colorBytes)
    		if parseErr != nil {
    			printUsage(command, parseErr.Error())
    		}
    	}
    
    	_, err = cliWallet.SendFunds(
    		wallet.Destination(destinationAddress, uint64(*amountPtr), color),
    	)
    	if err != nil {
    		printUsage(command, err.Error())
    	}
    
    	fmt.Println()
    	fmt.Println("Sending funds ... [DONE]")