7 "github.com/spf13/cobra"
8 jww "github.com/spf13/jwalterweatherman"
10 "github.com/bytom/crypto/ed25519/chainkd"
11 "github.com/bytom/util"
15 createAssetCmd.PersistentFlags().IntVarP(&assetQuorum, "quorom", "q", 1, "quorum must be greater than 0 and less than or equal to the number of signers")
16 createAssetCmd.PersistentFlags().StringVarP(&assetToken, "access", "a", "", "access token")
17 createAssetCmd.PersistentFlags().StringVarP(&assetDefiniton, "definition", "d", "", "definition for the asset")
26 var createAssetCmd = &cobra.Command{
27 Use: "create-asset <alias> <xpub(s)>",
28 Short: "Create an asset",
29 Args: cobra.MinimumNArgs(2),
30 Run: func(cmd *cobra.Command, args []string) {
34 for _, x := range args[1:] {
35 xpub := chainkd.XPub{}
36 if err := xpub.UnmarshalText([]byte(x)); err != nil {
37 jww.ERROR.Println(err)
38 os.Exit(util.ErrLocalExe)
40 ins.RootXPubs = append(ins.RootXPubs, xpub)
43 ins.Quorum = assetQuorum
45 ins.AccessToken = assetToken
47 if len(assetDefiniton) != 0 {
48 definition := strings.Split(assetDefiniton, ":")
49 if len(definition) != 2 {
50 jww.ERROR.Println("Invalid definition")
51 os.Exit(util.ErrLocalExe)
53 ins.Definition = map[string]interface{}{definition[0]: definition[1]}
56 data, exitCode := util.ClientCall("/create-asset", &ins)
57 if exitCode != util.Success {
65 var getAssetCmd = &cobra.Command{
66 Use: "get-asset <assetID>",
67 Short: "get asset by assetID",
68 Args: cobra.ExactArgs(1),
69 Run: func(cmd *cobra.Command, args []string) {
74 data, exitCode := util.ClientCall("/get-asset", &filter)
75 if exitCode != util.Success {
83 var listAssetsCmd = &cobra.Command{
85 Short: "List the existing assets",
87 Run: func(cmd *cobra.Command, args []string) {
88 data, exitCode := util.ClientCall("/list-assets")
89 if exitCode != util.Success {
97 var updateAssetAliasCmd = &cobra.Command{
98 Use: "update-asset-alias <oldAlias> <newAlias>",
99 Short: "Update the asset alias",
100 Args: cobra.ExactArgs(2),
101 Run: func(cmd *cobra.Command, args []string) {
102 var updateAlias = struct {
103 OldAlias string `json:"old_alias"`
104 NewAlias string `json:"new_alias"`
105 }{OldAlias: args[0], NewAlias: args[1]}
107 if _, exitCode := util.ClientCall("/update-asset-alias", &updateAlias); exitCode != util.Success {
111 jww.FEEDBACK.Println("Successfully update asset alias")