Skip to content

Commit

Permalink
fix: add metadata exception for asset_history
Browse files Browse the repository at this point in the history
Signed-off-by: Marko Kungla <marko.kungla@gmail.com>
  • Loading branch information
mkungla committed Oct 9, 2022
1 parent 8c614ff commit 055c0d3
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,23 +445,35 @@ func txHashesPL(txs []TxHash) io.Reader {
}

type metaArrayItem struct {
// JSON containing details about metadata within transaction.
JSON json.RawMessage `json:"json"`

// Key is metadata (index).
Key string `json:"key"`
Key string `json:"key,omitempty"`
// JSON containing details about metadata within transaction.
JSON json.RawMessage `json:"json,omitempty"`
}

func (m *TxMetadata) UnmarshalJSON(b []byte) error {
if len(b) == 0 || string(b) == "[]" {
return nil
}
var txMetadata map[string]json.RawMessage

if err2 := json.Unmarshal(b, &txMetadata); err2 != nil {
var txMetadataArray []metaArrayItem
if err2 := json.Unmarshal(b, &txMetadataArray); err2 != nil {
if err3 := json.Unmarshal(b, &txMetadata); err3 == nil {
*m = txMetadata
return nil
}
return fmt.Errorf("unmarshal metadata: %w", err2)
}
*m = txMetadata
if len(txMetadataArray) == 0 {
return nil
}
if len(txMetadataArray) == 1 && len(txMetadataArray[0].Key) == 0 {
return nil
}
(*m) = make(TxMetadata)
for _, meta := range txMetadataArray {
(*m)[meta.Key] = meta.JSON
}
return nil
}

Expand Down

0 comments on commit 055c0d3

Please sign in to comment.