7 "github.com/vapor/asset"
8 "github.com/vapor/crypto/ed25519/chainkd"
9 chainjson "github.com/vapor/encoding/json"
11 log "github.com/sirupsen/logrus"
15 func (a *API) createAsset(ctx context.Context, ins struct {
16 Alias string `json:"alias"`
17 RootXPubs []chainkd.XPub `json:"root_xpubs"`
18 Quorum int `json:"quorum"`
19 Definition map[string]interface{} `json:"definition"`
20 LimitHeight int64 `json:"limit_height"`
21 IssuanceProgram chainjson.HexBytes `json:"issuance_program"`
23 ass, err := a.wallet.AssetReg.Define(
28 strings.ToUpper(strings.TrimSpace(ins.Alias)),
32 return NewErrorResponse(err)
35 annotatedAsset, err := asset.Annotated(ass)
37 return NewErrorResponse(err)
40 log.WithField("asset ID", annotatedAsset.ID.String()).Info("Created asset")
42 return NewSuccessResponse(annotatedAsset)
45 // POST /update-asset-alias
46 func (a *API) updateAssetAlias(updateAlias struct {
48 NewAlias string `json:"alias"`
50 if err := a.wallet.AssetReg.UpdateAssetAlias(updateAlias.ID, updateAlias.NewAlias); err != nil {
51 return NewErrorResponse(err)
54 return NewSuccessResponse(nil)