status-im/status-go

View on GitHub
services/wallet/decoder.go

Summary

Maintainability
A
0 mins
Test Coverage
F
50%
package wallet

import (
    "github.com/status-im/status-go/services/wallet/thirdparty"
    "github.com/status-im/status-go/services/wallet/thirdparty/fourbyte"
    "github.com/status-im/status-go/services/wallet/thirdparty/fourbytegithub"
)

type Decoder struct {
    Main     *fourbytegithub.Client
    Fallback *fourbyte.Client
}

func NewDecoder() *Decoder {
    return &Decoder{
        Main:     fourbytegithub.NewClient(),
        Fallback: fourbyte.NewClient(),
    }
}

func (d *Decoder) Decode(data string) (*thirdparty.DataParsed, error) {
    parsed, err := d.Main.Run(data)
    if err == nil {
        return parsed, nil
    }

    return d.Fallback.Run(data)
}