Files
ark/noah/send.go
Pietralberto Mazza 0210d39866 Monorepo scaffolding (#16)
* Change scaffolding

* Fix gh action
2023-11-27 14:23:22 +01:00

61 lines
1.3 KiB
Go

package main
import (
"encoding/json"
"fmt"
"github.com/ark-network/ark/common"
"github.com/urfave/cli/v2"
)
var (
receiversFlag = cli.StringFlag{
Name: "receivers",
Usage: "receivers of the send transaction, JSON encoded: '[{\"to\": \"<...>\", \"amount\": <...>}, ...]'",
Value: "",
Required: true,
}
)
var sendCommand = cli.Command{
Name: "send",
Usage: "Send VTXOs to a list of addresses",
Action: sendAction,
Flags: []cli.Flag{&receiversFlag},
}
func sendAction(ctx *cli.Context) error {
receivers := ctx.String("receivers")
// parse json encoded receivers
var receiversJSON []receiverJSON
if err := json.Unmarshal([]byte(receivers), &receiversJSON); err != nil {
return fmt.Errorf("invalid receivers: %s", err)
}
if len(receiversJSON) <= 0 {
return fmt.Errorf("no receivers specified")
}
for _, receiver := range receiversJSON {
// TODO: check if receiver asp public key is valid
_, _, _, err := common.DecodeAddress(receiver.To)
if err != nil {
return fmt.Errorf("invalid receiver address: %s", err)
}
if receiver.Amount <= 0 {
return fmt.Errorf("invalid amount: %d", receiver.Amount)
}
}
fmt.Println("send command is not implemented yet")
return nil
}
type receiverJSON struct {
To string `json:"to"`
Amount int64 `json:"amount"`
}