//
//  CryptoModule.m
//  Ready
//

#import <Foundation/Foundation.h>
#import <React/RCTBridgeModule.h>

@interface RCT_EXTERN_MODULE(ReadyWalletCrypto, NSObject)
+ (BOOL) requiresMainQueueSetup {
  return YES;
}

RCT_EXTERN_METHOD(signCurve25519:(NSString *)privateKey message:(NSString *)message resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(encryptFile: (NSString *)inputFileUri outputFileUri:(NSString *)outputFileUri resolve: (RCTPromiseResolveBlock)resolve reject: (RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(decryptFile: (NSString *)inputFileUri outputFileUri:(NSString *)outputFileUri key:(NSString *)key iv:(NSString *)iv resolve: (RCTPromiseResolveBlock)resolve reject: (RCTPromiseRejectBlock)reject)

RCT_EXTERN_METHOD(createWalletFromSeedPhrase:(NSString *)seedPhrase
  path:(NSString *)path
  resolve:(RCTPromiseResolveBlock)resolve
  reject:(RCTPromiseRejectBlock)reject)

@end
