//
//  JSIUtils.hpp
//  jsi-rn-wallet-core
//
//  Created by Oscar on 24.03.22.
//

#ifndef JSIUtils_hpp
#define JSIUtils_hpp

#include <stdio.h>
#include <string>
#include <jsi/jsi.h>
#ifdef ANDROID
#include "TrustWalletCore/TWString.h"
#else
#include <TrustWalletCore/TWString.h>
#endif // ANDROID

using namespace std;
using namespace facebook;

enum BiometricsState {
  biometricsStateAvailable,
  biometricsStateNotAvailable,
  biometricsStateLocked
};

struct StringOptional
{
  bool hasValue;
  string value;
};

jsi::Value walletUtf8BytesToString(jsi::Runtime &rt, TWString *bytes);

void throwJSError(jsi::Runtime &rt, string methodName, string msg);
void throwJSError(jsi::Runtime &rt, string msg);

#endif /* JSIUtils_hpp */
