mirror of
https://github.com/aljazceru/ark.git
synced 2026-02-02 18:14:49 +01:00
* CLI skeleton * noah CLI: send flags * add cypher.go file * fix .PHONY * add password_hash in state.json * encode public key using common pkg * use common.DecodeUrl * remove cli.Exit calls * redeem command: make --amount flag optional only if --force is not set * remove validateURL func * chmod +x scripts/build-noah * Update cmd/noah/redeem.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/redeem.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/init.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/main.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/send.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * rework receive and send * Update cmd/noah/send.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/send.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * Update cmd/noah/redeem.go Co-authored-by: João Bordalo <bordalix@users.noreply.github.com> * receive command: return ark address --------- Co-authored-by: bordalix <joao.bordalo@gmail.com> Co-authored-by: João Bordalo <bordalix@users.noreply.github.com>
61 lines
1.3 KiB
Go
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"`
|
|
}
|