package main import ( "fmt" "github.com/urfave/cli/v2" ) var ( addressFlag = cli.StringFlag{ Name: "address", Usage: "main chain address receiving the redeeemed VTXO", Value: "", Required: true, } amountToRedeemFlag = cli.Uint64Flag{ Name: "amount", Usage: "amount to redeem", Value: 0, Required: false, } forceFlag = cli.BoolFlag{ Name: "force", Usage: "force redemption without collaborate with the Ark service provider", Value: false, Required: false, } ) var redeemCommand = cli.Command{ Name: "redeem", Usage: "Redeem VTXO(s) to onchain", Flags: []cli.Flag{&addressFlag, &amountToRedeemFlag, &forceFlag}, Action: redeemAction, } func redeemAction(ctx *cli.Context) error { address := ctx.String("address") amount := ctx.Uint64("amount") force := ctx.Bool("force") if len(address) <= 0 { return fmt.Errorf("missing address flag (--address)") } if !force && amount <= 0 { return fmt.Errorf("missing amount flag (--amount)") } if force { return unilateralRedeem(address) } return collaborativeRedeem(address, amount) } func collaborativeRedeem(address string, amount uint64) error { fmt.Println("collaborative redeem is not implemented yet") return nil } func unilateralRedeem(address string) error { fmt.Println("unilateral redeem is not implemented yet") return nil }