// errors
var (
- ErrFindAccount = errors.New("Failed to find account")
- errAccntTxIDNotFound = errors.New("account TXID not found")
+ // ErrFindAccount = errors.New("Failed to find account")
+ errAccntTxIDNotFound = errors.New("account TXID not found")
+ errGetAssetDefinition = errors.New("Failed to find asset definition")
)
func accountIndexKey(xpubs []chainkd.XPub) []byte {
}
// GetAssetDefinition get asset definition by assetiD
-func (store *WalletStore) GetAssetDefinition(assetID *bc.AssetID) []byte {
- return store.walletDB.Get(asset.ExtAssetKey(assetID))
+func (store *WalletStore) GetAssetDefinition(assetID *bc.AssetID) (*asset.Asset, error) {
+ definitionByte := store.walletDB.Get(asset.ExtAssetKey(assetID))
+ if definitionByte == nil {
+ return nil, errGetAssetDefinition
+ }
+ definitionMap := make(map[string]interface{})
+ if err := json.Unmarshal(definitionByte, &definitionMap); err != nil {
+ return nil, err
+ }
+ alias := assetID.String()
+ externalAsset := &asset.Asset{
+ AssetID: *assetID,
+ Alias: &alias,
+ DefinitionMap: definitionMap,
+ RawDefinitionByte: definitionByte,
+ }
+ return externalAsset, nil
}
// SetAssetDefinition set assetID and definition