parent
00d431e69c
commit
5ae858da0d
|
@ -138,8 +138,6 @@ dependencies {
|
||||||
compile project(':react-native-fs')
|
compile project(':react-native-fs')
|
||||||
compile project(':react-native-image-crop-picker')
|
compile project(':react-native-image-crop-picker')
|
||||||
compile project(':react-native-webview-bridge')
|
compile project(':react-native-webview-bridge')
|
||||||
//compile(name:'statusgo-android-16', ext:'aar')
|
|
||||||
compile(group: 'status-im', name: 'status-go', version: '0.1.0-574f68-service', ext: 'aar')
|
|
||||||
|
|
||||||
compile fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
|
compile fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<service
|
<service
|
||||||
android:name=".geth.service.GethService"
|
android:name=".module.StatusService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="true"/>
|
android:exported="true"/>
|
||||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
|
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
|
||||||
|
|
|
@ -14,7 +14,7 @@ import java.util.Properties;
|
||||||
public class MainActivity extends ReactActivity {
|
public class MainActivity extends ReactActivity {
|
||||||
private static final String TAG = "MainActivity";
|
private static final String TAG = "MainActivity";
|
||||||
|
|
||||||
protected void startStatus() {
|
protected void configureStatus() {
|
||||||
// Required because of crazy APN settings redirecting localhost (found in GB)
|
// Required because of crazy APN settings redirecting localhost (found in GB)
|
||||||
Properties properties = System.getProperties();
|
Properties properties = System.getProperties();
|
||||||
properties.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
|
properties.setProperty("http.nonProxyHosts", "localhost|127.0.0.1");
|
||||||
|
@ -26,7 +26,7 @@ public class MainActivity extends ReactActivity {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
if (!RootUtil.isDeviceRooted()) {
|
if (!RootUtil.isDeviceRooted()) {
|
||||||
startStatus();
|
configureStatus();
|
||||||
} else {
|
} else {
|
||||||
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
|
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
|
||||||
.setMessage(getResources().getString(R.string.root_warning))
|
.setMessage(getResources().getString(R.string.root_warning))
|
||||||
|
@ -34,7 +34,7 @@ public class MainActivity extends ReactActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
startStatus();
|
configureStatus();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(getResources().getString(R.string.root_cancel), new OnClickListener() {
|
.setNegativeButton(getResources().getString(R.string.root_cancel), new OnClickListener() {
|
||||||
|
|
|
@ -7,7 +7,7 @@ import com.facebook.react.ReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.shell.MainReactPackage;
|
import com.facebook.react.shell.MainReactPackage;
|
||||||
|
|
||||||
import com.statusim.Jail.JailPackage;
|
import com.statusim.module.StatusPackage;
|
||||||
import io.realm.react.RealmReactPackage;
|
import io.realm.react.RealmReactPackage;
|
||||||
import com.oblador.vectoricons.VectorIconsPackage;
|
import com.oblador.vectoricons.VectorIconsPackage;
|
||||||
import com.rt2zz.reactnativecontacts.ReactNativeContacts;
|
import com.rt2zz.reactnativecontacts.ReactNativeContacts;
|
||||||
|
@ -18,7 +18,6 @@ import com.lwansbrough.RCTCamera.*;
|
||||||
import com.centaurwarchief.smslistener.SmsListenerPackage;
|
import com.centaurwarchief.smslistener.SmsListenerPackage;
|
||||||
import com.github.yamill.orientation.OrientationPackage;
|
import com.github.yamill.orientation.OrientationPackage;
|
||||||
import com.rnfs.RNFSPackage;
|
import com.rnfs.RNFSPackage;
|
||||||
import com.statusim.geth.module.GethPackage;
|
|
||||||
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
||||||
import fr.bamlab.rnimageresizer.ImageResizerPackage;
|
import fr.bamlab.rnimageresizer.ImageResizerPackage;
|
||||||
import com.reactnative.picker.PickerPackage;
|
import com.reactnative.picker.PickerPackage;
|
||||||
|
@ -39,7 +38,7 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
protected List<ReactPackage> getPackages() {
|
protected List<ReactPackage> getPackages() {
|
||||||
return Arrays.asList(
|
return Arrays.asList(
|
||||||
new MainReactPackage(),
|
new MainReactPackage(),
|
||||||
new JailPackage(),
|
new StatusPackage(),
|
||||||
new RealmReactPackage(),
|
new RealmReactPackage(),
|
||||||
new VectorIconsPackage(),
|
new VectorIconsPackage(),
|
||||||
new ReactNativeContacts(),
|
new ReactNativeContacts(),
|
||||||
|
@ -50,7 +49,6 @@ public class MainApplication extends Application implements ReactApplication {
|
||||||
new SmsListenerPackage(),
|
new SmsListenerPackage(),
|
||||||
new OrientationPackage(),
|
new OrientationPackage(),
|
||||||
new RNFSPackage(),
|
new RNFSPackage(),
|
||||||
new GethPackage(),
|
|
||||||
new ReactNativeDialogsPackage(),
|
new ReactNativeDialogsPackage(),
|
||||||
new ImageResizerPackage(),
|
new ImageResizerPackage(),
|
||||||
new PickerPackage(),
|
new PickerPackage(),
|
||||||
|
|
|
@ -1,242 +0,0 @@
|
||||||
package com.statusim.geth.module;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
import com.facebook.react.bridge.*;
|
|
||||||
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
||||||
import com.statusim.geth.service.ConnectorHandler;
|
|
||||||
import com.statusim.geth.service.GethConnector;
|
|
||||||
import com.statusim.geth.service.GethMessages;
|
|
||||||
import com.statusim.geth.service.GethService;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
class GethModule extends ReactContextBaseJavaModule implements LifecycleEventListener, ConnectorHandler {
|
|
||||||
|
|
||||||
private static final String TAG = "GethModule";
|
|
||||||
|
|
||||||
private GethConnector geth = null;
|
|
||||||
|
|
||||||
private HashMap<String, Callback> callbacks = new HashMap<>();
|
|
||||||
|
|
||||||
GethModule(ReactApplicationContext reactContext) {
|
|
||||||
super(reactContext);
|
|
||||||
reactContext.addLifecycleEventListener(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "Geth";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onHostResume() { // Actvity `onResume`
|
|
||||||
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (geth == null) {
|
|
||||||
geth = new GethConnector(currentActivity, GethService.class);
|
|
||||||
geth.registerHandler(this);
|
|
||||||
}
|
|
||||||
geth.bindService();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onHostPause() { // Actvity `onPause`
|
|
||||||
|
|
||||||
if (geth != null) {
|
|
||||||
geth.unbindService();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onHostDestroy() { // Actvity `onDestroy`
|
|
||||||
|
|
||||||
if (geth != null) {
|
|
||||||
geth.stopNode(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectorConnected() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConnectorDisconnected() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean handleMessage(Message message) {
|
|
||||||
|
|
||||||
Log.d(TAG, "Received message: " + message.toString());
|
|
||||||
boolean isClaimed = true;
|
|
||||||
Bundle data = message.getData();
|
|
||||||
String callbackIdentifier = data.getString(GethConnector.CALLBACK_IDENTIFIER);
|
|
||||||
Log.d(TAG, "callback identifier: " + callbackIdentifier);
|
|
||||||
Callback callback = callbacks.remove(callbackIdentifier);
|
|
||||||
if (callback == null) {
|
|
||||||
Log.d(TAG, "Could not find callback: " + callbackIdentifier);
|
|
||||||
}
|
|
||||||
switch (message.what) {
|
|
||||||
case GethMessages.MSG_NODE_STARTED:
|
|
||||||
if (callback != null) {
|
|
||||||
callback.invoke(true);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_NODE_STOPPED:
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_ACCOUNT_CREATED:
|
|
||||||
if (callback != null) {
|
|
||||||
callback.invoke(data.getString("data"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_ACCOUNT_RECOVERED:
|
|
||||||
if (callback != null) {
|
|
||||||
callback.invoke(data.getString("data"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_LOGGED_IN:
|
|
||||||
if (callback != null) {
|
|
||||||
callback.invoke(data.getString("result"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_TRANSACTION_COMPLETED:
|
|
||||||
String result = data.getString("result");
|
|
||||||
Log.d(TAG, "Send result: " + result + (callback == null));
|
|
||||||
if (callback != null) {
|
|
||||||
callback.invoke(result);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GethMessages.MSG_GETH_EVENT:
|
|
||||||
String event = data.getString("event");
|
|
||||||
WritableMap params = Arguments.createMap();
|
|
||||||
params.putString("jsonEvent", event);
|
|
||||||
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("gethEvent", params);
|
|
||||||
default:
|
|
||||||
isClaimed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isClaimed;
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void startNode(Callback callback, Callback onAlreadyRunning) {
|
|
||||||
|
|
||||||
if (GethService.isRunning()) {
|
|
||||||
onAlreadyRunning.invoke();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
callback.invoke("Activity doesn't exist");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (geth == null) {
|
|
||||||
callback.invoke("Geth connector is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String callbackIdentifier = createIdentifier();
|
|
||||||
callbacks.put(callbackIdentifier, callback);
|
|
||||||
|
|
||||||
geth.startNode(callbackIdentifier);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void login(String address, String password, Callback callback) {
|
|
||||||
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
callback.invoke("Activity doesn't exist");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (geth == null) {
|
|
||||||
callback.invoke("Geth connector is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String callbackIdentifier = createIdentifier();
|
|
||||||
callbacks.put(callbackIdentifier, callback);
|
|
||||||
|
|
||||||
geth.login(callbackIdentifier, address, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void createAccount(String password, Callback callback) {
|
|
||||||
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
callback.invoke("Activity doesn't exist");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (geth == null) {
|
|
||||||
callback.invoke("Geth connector is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String callbackIdentifier = createIdentifier();
|
|
||||||
callbacks.put(callbackIdentifier, callback);
|
|
||||||
|
|
||||||
geth.createAccount(callbackIdentifier, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void recoverAccount(String passphrase, String password, Callback callback) {
|
|
||||||
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
callback.invoke("Activity doesn't exist");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (geth == null) {
|
|
||||||
callback.invoke("Geth connector is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String callbackIdentifier = createIdentifier();
|
|
||||||
callbacks.put(callbackIdentifier, callback);
|
|
||||||
|
|
||||||
geth.recoverAccount(callbackIdentifier, passphrase, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
private String createIdentifier() {
|
|
||||||
return UUID.randomUUID().toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
|
||||||
public void completeTransaction(String hash, String password, Callback callback) {
|
|
||||||
Activity currentActivity = getCurrentActivity();
|
|
||||||
|
|
||||||
if (currentActivity == null) {
|
|
||||||
callback.invoke("Activity doesn't exist");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (geth == null) {
|
|
||||||
callback.invoke("Geth connector is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.d(TAG, "Complete transaction: " + hash);
|
|
||||||
String callbackIdentifier = createIdentifier();
|
|
||||||
callbacks.put(callbackIdentifier, callback);
|
|
||||||
|
|
||||||
geth.completeTransaction(callbackIdentifier, hash, password);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,125 +0,0 @@
|
||||||
package com.statusim.geth.service;
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
public class GethConnector extends ServiceConnector {
|
|
||||||
|
|
||||||
private static final String TAG = "GethConnector";
|
|
||||||
|
|
||||||
public static final String CALLBACK_IDENTIFIER = "callbackIdentifier";
|
|
||||||
|
|
||||||
public GethConnector(Context context, Class serviceClass) {
|
|
||||||
|
|
||||||
super(context, serviceClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void startNode(String callbackIdentifier) {
|
|
||||||
|
|
||||||
if (checkBound()) {
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_START_NODE, null);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(startNode) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void stopNode(String callbackIdentifier) {
|
|
||||||
|
|
||||||
if (checkBound()) {
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_STOP_NODE, null);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(stopNode) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void login(String callbackIdentifier, String address, String password) {
|
|
||||||
|
|
||||||
if (checkBound()) {
|
|
||||||
Bundle data = new Bundle();
|
|
||||||
data.putString("address", address);
|
|
||||||
data.putString("password", password);
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_LOGIN, data);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(unlockAccount) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void createAccount(String callbackIdentifier, String password) {
|
|
||||||
|
|
||||||
if (checkBound()) {
|
|
||||||
Bundle data = new Bundle();
|
|
||||||
data.putString("password", password);
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_CREATE_ACCOUNT, data);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(createAccount) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void recoverAccount(String callbackIdentifier, String passphrase, String password) {
|
|
||||||
|
|
||||||
if (checkBound()) {
|
|
||||||
Bundle data = new Bundle();
|
|
||||||
data.putString("passphrase", passphrase);
|
|
||||||
data.putString("password", password);
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_RECOVER_ACCOUNT, data);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(recoverAccount) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void completeTransaction(String callbackIdentifier, String hash, String password){
|
|
||||||
if (checkBound()) {
|
|
||||||
Bundle data = new Bundle();
|
|
||||||
data.putString("hash", hash);
|
|
||||||
data.putString("password", password);
|
|
||||||
Message msg = createMessage(callbackIdentifier, GethMessages.MSG_COMPLETE_TRANSACTION, data);
|
|
||||||
try {
|
|
||||||
serviceMessenger.send(msg);
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.e(TAG, "Exception sending message(completeTransaction) to service: ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private boolean checkBound() {
|
|
||||||
|
|
||||||
if (!isBound) {
|
|
||||||
Log.d(TAG, "GethConnector not bound!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Message createMessage(String callbackIdentifier, int idMessage, Bundle data) {
|
|
||||||
|
|
||||||
Log.d(TAG, "Client messenger: " + clientMessenger.toString());
|
|
||||||
Message msg = Message.obtain(null, idMessage, 0, 0);
|
|
||||||
msg.replyTo = clientMessenger;
|
|
||||||
if (data == null) {
|
|
||||||
data = new Bundle();
|
|
||||||
}
|
|
||||||
data.putString(CALLBACK_IDENTIFIER, callbackIdentifier);
|
|
||||||
msg.setData(data);
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,70 +0,0 @@
|
||||||
package com.statusim.geth.service;
|
|
||||||
|
|
||||||
|
|
||||||
public class GethMessages {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start the node
|
|
||||||
*/
|
|
||||||
static final int MSG_START_NODE = 1;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Node started event
|
|
||||||
*/
|
|
||||||
public static final int MSG_NODE_STARTED = 2;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Stop the node
|
|
||||||
*/
|
|
||||||
static final int MSG_STOP_NODE = 3;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Node stopped event
|
|
||||||
*/
|
|
||||||
public static final int MSG_NODE_STOPPED = 4;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unlock an account
|
|
||||||
*/
|
|
||||||
static final int MSG_LOGIN = 5;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Account unlocked event
|
|
||||||
*/
|
|
||||||
public static final int MSG_LOGGED_IN = 6;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an account
|
|
||||||
*/
|
|
||||||
static final int MSG_CREATE_ACCOUNT = 7;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Account created event
|
|
||||||
*/
|
|
||||||
public static final int MSG_ACCOUNT_CREATED = 8;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an account
|
|
||||||
*/
|
|
||||||
static final int MSG_RECOVER_ACCOUNT = 9;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Account created event
|
|
||||||
*/
|
|
||||||
public static final int MSG_ACCOUNT_RECOVERED = 10;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Account complete transaction event
|
|
||||||
*/
|
|
||||||
static final int MSG_COMPLETE_TRANSACTION = 11;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Account complete transaction event
|
|
||||||
*/
|
|
||||||
public static final int MSG_TRANSACTION_COMPLETED = 11;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Geth event
|
|
||||||
*/
|
|
||||||
public static final int MSG_GETH_EVENT = 12;
|
|
||||||
}
|
|
|
@ -20,7 +20,7 @@ project(':realm').projectDir = new File(rootProject.projectDir, '../node_modules
|
||||||
include ':react-native-linear-gradient'
|
include ':react-native-linear-gradient'
|
||||||
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
|
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
|
||||||
include ':react-native-status'
|
include ':react-native-status'
|
||||||
project(':react-native-status').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-status/android')
|
project(':react-native-status').projectDir = new File(rootProject.projectDir, '../modules/react-native-status/android')
|
||||||
include ':react-native-camera'
|
include ':react-native-camera'
|
||||||
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
||||||
include ':react-native-orientation', ':app'
|
include ':react-native-orientation', ':app'
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
2028DFFA1D4275B600227DCD /* SF-UI-Display-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */; };
|
2028DFFA1D4275B600227DCD /* SF-UI-Display-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */; };
|
||||||
2028DFFB1D4275B600227DCD /* SF-UI-Display-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */; };
|
2028DFFB1D4275B600227DCD /* SF-UI-Display-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */; };
|
||||||
2028DFFC1D4275B600227DCD /* SF-UI-Display-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */; };
|
2028DFFC1D4275B600227DCD /* SF-UI-Display-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = 2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */; };
|
||||||
20AB9EC61D47CC0300E7FD9C /* libRCTJail.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 201067C41D4789F700FA83B6 /* libRCTJail.a */; };
|
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 201067C41D4789F700FA83B6 /* libRCTStatus.a */; };
|
||||||
20B2DBFC1D47C70C00427CD8 /* Statusgo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20B2DBFB1D47C70C00427CD8 /* Statusgo.framework */; };
|
20B2DBFC1D47C70C00427CD8 /* Statusgo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20B2DBFB1D47C70C00427CD8 /* Statusgo.framework */; };
|
||||||
213311F38CA74CE280FD09AD /* libRNI18n.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52F6ED6465184513A082652B /* libRNI18n.a */; };
|
213311F38CA74CE280FD09AD /* libRNI18n.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 52F6ED6465184513A082652B /* libRNI18n.a */; };
|
||||||
22118DE1207A419FBFE7B62D /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CD48A32459B64E96843BB238 /* libRealmReact.a */; };
|
22118DE1207A419FBFE7B62D /* libRealmReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CD48A32459B64E96843BB238 /* libRealmReact.a */; };
|
||||||
|
@ -131,10 +131,10 @@
|
||||||
};
|
};
|
||||||
201067C31D4789F700FA83B6 /* PBXContainerItemProxy */ = {
|
201067C31D4789F700FA83B6 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = 439B6B4B407A4E2AACAFE5BE /* RCTJail.xcodeproj */;
|
containerPortal = 439B6B4B407A4E2AACAFE5BE /* RCTStatus.xcodeproj */;
|
||||||
proxyType = 2;
|
proxyType = 2;
|
||||||
remoteGlobalIDString = 206C9F3A1D474E910063E3E6;
|
remoteGlobalIDString = 206C9F3A1D474E910063E3E6;
|
||||||
remoteInfo = RCTJail;
|
remoteInfo = RCTStatus;
|
||||||
};
|
};
|
||||||
20B7D0FD1D3F74CC00B70F14 /* PBXContainerItemProxy */ = {
|
20B7D0FD1D3F74CC00B70F14 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
|
@ -249,16 +249,16 @@
|
||||||
2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Regular.otf"; sourceTree = "<group>"; };
|
2028DFF61D4275B600227DCD /* SF-UI-Display-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Regular.otf"; sourceTree = "<group>"; };
|
||||||
2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Semibold.otf"; sourceTree = "<group>"; };
|
2028DFF71D4275B600227DCD /* SF-UI-Display-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Semibold.otf"; sourceTree = "<group>"; };
|
||||||
2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Thin.otf"; sourceTree = "<group>"; };
|
2028DFF81D4275B600227DCD /* SF-UI-Display-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SF-UI-Display-Thin.otf"; sourceTree = "<group>"; };
|
||||||
20B2DBDD1D47BD5E00427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Statusgo.framework; path = "../node_modules/react-native-status/ios/RCTJail/Statusgo.framework"; sourceTree = "<group>"; };
|
20B2DBDD1D47BD5E00427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Statusgo.framework; path = "../modules/react-native-status/ios/RCTStatus/Statusgo.framework"; sourceTree = "<group>"; };
|
||||||
20B2DBF71D47C25500427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Statusgo.framework; sourceTree = "<group>"; };
|
20B2DBF71D47C25500427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Statusgo.framework; sourceTree = "<group>"; };
|
||||||
20B2DBFB1D47C70C00427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Statusgo.framework; path = "../node_modules/react-native-status/ios/Statusgo.framework"; sourceTree = "<group>"; };
|
20B2DBFB1D47C70C00427CD8 /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Statusgo.framework; path = "../modules/react-native-status/ios/Statusgo.framework"; sourceTree = "<group>"; };
|
||||||
2756305FAFF144C4A6B0A039 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
|
2756305FAFF144C4A6B0A039 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = "<group>"; };
|
||||||
2F0276A9E90843E996A0E762 /* UdpSockets.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = UdpSockets.xcodeproj; path = "../node_modules/react-native-udp/ios/UdpSockets.xcodeproj"; sourceTree = "<group>"; };
|
2F0276A9E90843E996A0E762 /* UdpSockets.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = UdpSockets.xcodeproj; path = "../node_modules/react-native-udp/ios/UdpSockets.xcodeproj"; sourceTree = "<group>"; };
|
||||||
305F194186D848FDB07AF34C /* RNFS.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNFS.xcodeproj; path = "../node_modules/react-native-fs/RNFS.xcodeproj"; sourceTree = "<group>"; };
|
305F194186D848FDB07AF34C /* RNFS.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNFS.xcodeproj; path = "../node_modules/react-native-fs/RNFS.xcodeproj"; sourceTree = "<group>"; };
|
||||||
3384AFA9609A409B81928AD5 /* libRCTContacts.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTContacts.a; sourceTree = "<group>"; };
|
3384AFA9609A409B81928AD5 /* libRCTContacts.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRCTContacts.a; sourceTree = "<group>"; };
|
||||||
359B076A658B4FBAB5128B03 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
|
359B076A658B4FBAB5128B03 /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = "<group>"; };
|
||||||
38E1A2C8D0734EE99E2B16CE /* TcpSockets.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = TcpSockets.xcodeproj; path = "../node_modules/react-native-tcp/ios/TcpSockets.xcodeproj"; sourceTree = "<group>"; };
|
38E1A2C8D0734EE99E2B16CE /* TcpSockets.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = TcpSockets.xcodeproj; path = "../node_modules/react-native-tcp/ios/TcpSockets.xcodeproj"; sourceTree = "<group>"; };
|
||||||
439B6B4B407A4E2AACAFE5BE /* RCTJail.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTJail.xcodeproj; path = "../node_modules/react-native-status/ios/RCTJail/RCTJail.xcodeproj"; sourceTree = "<group>"; };
|
439B6B4B407A4E2AACAFE5BE /* RCTStatus.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTStatus.xcodeproj; path = "../modules/react-native-status/ios/RCTStatus/RCTStatus.xcodeproj"; sourceTree = "<group>"; };
|
||||||
43A6FA689D844B0BAF3AA8B4 /* RCTOrientation.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTOrientation.xcodeproj; path = "../node_modules/react-native-orientation/iOS/RCTOrientation.xcodeproj"; sourceTree = "<group>"; };
|
43A6FA689D844B0BAF3AA8B4 /* RCTOrientation.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RCTOrientation.xcodeproj; path = "../node_modules/react-native-orientation/iOS/RCTOrientation.xcodeproj"; sourceTree = "<group>"; };
|
||||||
45FB5F523DE04BDE9877869C /* RNRandomBytes.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNRandomBytes.xcodeproj; path = "../node_modules/react-native-randombytes/RNRandomBytes.xcodeproj"; sourceTree = "<group>"; };
|
45FB5F523DE04BDE9877869C /* RNRandomBytes.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNRandomBytes.xcodeproj; path = "../node_modules/react-native-randombytes/RNRandomBytes.xcodeproj"; sourceTree = "<group>"; };
|
||||||
46E2F6052EB44C698C680894 /* RNI18n.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNI18n.xcodeproj; path = "../node_modules/react-native-i18n/RNI18n.xcodeproj"; sourceTree = "<group>"; };
|
46E2F6052EB44C698C680894 /* RNI18n.xcodeproj */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "wrapper.pb-project"; name = RNI18n.xcodeproj; path = "../node_modules/react-native-i18n/RNI18n.xcodeproj"; sourceTree = "<group>"; };
|
||||||
|
@ -301,7 +301,7 @@
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
20B2DBFC1D47C70C00427CD8 /* Statusgo.framework in Frameworks */,
|
20B2DBFC1D47C70C00427CD8 /* Statusgo.framework in Frameworks */,
|
||||||
20AB9EC61D47CC0300E7FD9C /* libRCTJail.a in Frameworks */,
|
20AB9EC61D47CC0300E7FD9C /* libRCTStatus.a in Frameworks */,
|
||||||
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
146834051AC3E58100842450 /* libReact.a in Frameworks */,
|
||||||
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
|
||||||
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
|
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
|
||||||
|
@ -462,7 +462,7 @@
|
||||||
201067BA1D4789F700FA83B6 /* Products */ = {
|
201067BA1D4789F700FA83B6 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
201067C41D4789F700FA83B6 /* libRCTJail.a */,
|
201067C41D4789F700FA83B6 /* libRCTStatus.a */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -583,7 +583,7 @@
|
||||||
F090E261B9854867A728CE4F /* RealmReact.xcodeproj */,
|
F090E261B9854867A728CE4F /* RealmReact.xcodeproj */,
|
||||||
38E1A2C8D0734EE99E2B16CE /* TcpSockets.xcodeproj */,
|
38E1A2C8D0734EE99E2B16CE /* TcpSockets.xcodeproj */,
|
||||||
2F0276A9E90843E996A0E762 /* UdpSockets.xcodeproj */,
|
2F0276A9E90843E996A0E762 /* UdpSockets.xcodeproj */,
|
||||||
439B6B4B407A4E2AACAFE5BE /* RCTJail.xcodeproj */,
|
439B6B4B407A4E2AACAFE5BE /* RCTStatus.xcodeproj */,
|
||||||
5E5A7625B76441D984EA8C0D /* RCTImageResizer.xcodeproj */,
|
5E5A7625B76441D984EA8C0D /* RCTImageResizer.xcodeproj */,
|
||||||
);
|
);
|
||||||
name = Libraries;
|
name = Libraries;
|
||||||
|
@ -724,7 +724,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ProductGroup = 201067BA1D4789F700FA83B6 /* Products */;
|
ProductGroup = 201067BA1D4789F700FA83B6 /* Products */;
|
||||||
ProjectRef = 439B6B4B407A4E2AACAFE5BE /* RCTJail.xcodeproj */;
|
ProjectRef = 439B6B4B407A4E2AACAFE5BE /* RCTStatus.xcodeproj */;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ProductGroup = 78C398B11ACF4ADC00677621 /* Products */;
|
ProductGroup = 78C398B11ACF4ADC00677621 /* Products */;
|
||||||
|
@ -866,10 +866,10 @@
|
||||||
remoteRef = 201067711D477F5E00FA83B6 /* PBXContainerItemProxy */;
|
remoteRef = 201067711D477F5E00FA83B6 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
201067C41D4789F700FA83B6 /* libRCTJail.a */ = {
|
201067C41D4789F700FA83B6 /* libRCTStatus.a */ = {
|
||||||
isa = PBXReferenceProxy;
|
isa = PBXReferenceProxy;
|
||||||
fileType = archive.ar;
|
fileType = archive.ar;
|
||||||
path = libRCTJail.a;
|
path = libRCTStatus.a;
|
||||||
remoteRef = 201067C31D4789F700FA83B6 /* PBXContainerItemProxy */;
|
remoteRef = 201067C31D4789F700FA83B6 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
|
@ -1144,8 +1144,8 @@
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||||
|
@ -1185,8 +1185,8 @@
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = StatusIm/Info.plist;
|
INFOPLIST_FILE = StatusIm/Info.plist;
|
||||||
|
@ -1250,8 +1250,8 @@
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||||
|
@ -1304,8 +1304,8 @@
|
||||||
"$(SRCROOT)/../node_modules/realm/src/**",
|
"$(SRCROOT)/../node_modules/realm/src/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-tcp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
"$(SRCROOT)/../node_modules/react-native-udp/ios/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-status/ios/RCTJail/RCTJail/**",
|
"$(SRCROOT)/../modules/react-native-status/ios/RCTStatus/**",
|
||||||
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
"$(SRCROOT)/../node_modules/react-native-image-resizer/ios/RCTImageResizer",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
apply plugin: 'com.android.library'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 23
|
||||||
|
buildToolsVersion "23.0.1"
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion 16
|
||||||
|
targetSdkVersion 22
|
||||||
|
versionCode 1
|
||||||
|
versionName "1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile 'com.facebook.react:react-native:+'
|
||||||
|
compile(group: 'status-im', name: 'status-go', version: '0.1.0-module', ext: 'aar')
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.statusim.module">
|
||||||
|
</manifest>
|
|
@ -1,4 +1,4 @@
|
||||||
package com.statusim.geth.service;
|
package com.statusim.module;
|
||||||
|
|
||||||
|
|
||||||
import android.os.Message;
|
import android.os.Message;
|
|
@ -1,4 +1,4 @@
|
||||||
package com.statusim.geth.service;
|
package com.statusim.module;
|
||||||
|
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
@ -69,6 +69,7 @@ public class ServiceConnector {
|
||||||
// interact with the service. We are communicating with the
|
// interact with the service. We are communicating with the
|
||||||
// service using a Messenger, so here we get a client-side
|
// service using a Messenger, so here we get a client-side
|
||||||
// representation of that from the raw IBinder object.
|
// representation of that from the raw IBinder object.
|
||||||
|
|
||||||
serviceMessenger = new Messenger(service);
|
serviceMessenger = new Messenger(service);
|
||||||
isBound = true;
|
isBound = true;
|
||||||
for (ConnectorHandler handler: handlers) {
|
for (ConnectorHandler handler: handlers) {
|
|
@ -0,0 +1,135 @@
|
||||||
|
package com.statusim.module;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.Message;
|
||||||
|
import android.os.RemoteException;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
public class StatusConnector extends ServiceConnector {
|
||||||
|
|
||||||
|
private static final String TAG = "StatusConnector";
|
||||||
|
|
||||||
|
public static final String CALLBACK_IDENTIFIER = "callbackIdentifier";
|
||||||
|
|
||||||
|
public StatusConnector(Context context, Class serviceClass) {
|
||||||
|
|
||||||
|
super(context, serviceClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startNode(String callbackIdentifier) {
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_START_NODE, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopNode(String callbackIdentifier) {
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_STOP_NODE, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void login(String callbackIdentifier, String address, String password) {
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("address", address);
|
||||||
|
data.putString("password", password);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_LOGIN, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createAccount(String callbackIdentifier, String password) {
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("password", password);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_CREATE_ACCOUNT, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void recoverAccount(String callbackIdentifier, String passphrase, String password) {
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("passphrase", passphrase);
|
||||||
|
data.putString("password", password);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_RECOVER_ACCOUNT, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void completeTransaction(String callbackIdentifier, String hash, String password){
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("hash", hash);
|
||||||
|
data.putString("password", password);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_COMPLETE_TRANSACTION, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initJail(String callbackIdentifier, String js){
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("js", js);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_JAIL_INIT, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void parseJail(String callbackIdentifier, String chatId, String js){
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("chatId", chatId);
|
||||||
|
data.putString("js", js);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_JAIL_PARSE, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void callJail(String callbackIdentifier, String chatId, String path, String params){
|
||||||
|
|
||||||
|
if (checkBound()) {
|
||||||
|
Bundle data = new Bundle();
|
||||||
|
data.putString("chatId", chatId);
|
||||||
|
data.putString("path", path);
|
||||||
|
data.putString("params", params);
|
||||||
|
sendMessage(callbackIdentifier, StatusMessages.MSG_JAIL_CALL, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkBound() {
|
||||||
|
|
||||||
|
if (!isBound) {
|
||||||
|
Log.d(TAG, "StatusConnector not bound!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Message createMessage(String callbackIdentifier, int idMessage, Bundle data) {
|
||||||
|
|
||||||
|
Log.d(TAG, "Client messenger: " + clientMessenger.toString());
|
||||||
|
Message msg = Message.obtain(null, idMessage, 0, 0);
|
||||||
|
msg.replyTo = clientMessenger;
|
||||||
|
if (data == null) {
|
||||||
|
data = new Bundle();
|
||||||
|
}
|
||||||
|
data.putString(CALLBACK_IDENTIFIER, callbackIdentifier);
|
||||||
|
msg.setData(data);
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMessage(String callbackIdentifier, int idMessage, Bundle data) {
|
||||||
|
|
||||||
|
Message msg = createMessage(callbackIdentifier, idMessage, data);
|
||||||
|
try {
|
||||||
|
serviceMessenger.send(msg);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Exception sending message(" + msg.toString() + ") to service: ", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.statusim.module;
|
||||||
|
|
||||||
|
|
||||||
|
public class StatusMessages {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start the node
|
||||||
|
*/
|
||||||
|
static final int MSG_START_NODE = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop the node
|
||||||
|
*/
|
||||||
|
static final int MSG_STOP_NODE = 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unlock an account
|
||||||
|
*/
|
||||||
|
static final int MSG_LOGIN = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an account
|
||||||
|
*/
|
||||||
|
static final int MSG_CREATE_ACCOUNT = 4;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an account
|
||||||
|
*/
|
||||||
|
static final int MSG_RECOVER_ACCOUNT = 5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Account complete transaction event
|
||||||
|
*/
|
||||||
|
static final int MSG_COMPLETE_TRANSACTION = 6;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Geth event
|
||||||
|
*/
|
||||||
|
public static final int MSG_GETH_EVENT = 7;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize jail
|
||||||
|
*/
|
||||||
|
public static final int MSG_JAIL_INIT = 8;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse js in jail
|
||||||
|
*/
|
||||||
|
public static final int MSG_JAIL_PARSE = 9;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse js in jail
|
||||||
|
*/
|
||||||
|
public static final int MSG_JAIL_CALL = 10;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,298 @@
|
||||||
|
package com.statusim.module;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.os.Message;
|
||||||
|
import android.os.RemoteException;
|
||||||
|
import com.facebook.react.bridge.*;
|
||||||
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventListener, ConnectorHandler {
|
||||||
|
|
||||||
|
private static final String TAG = "StatusModule";
|
||||||
|
|
||||||
|
private StatusConnector status = null;
|
||||||
|
|
||||||
|
private HashMap<String, Callback> callbacks = new HashMap<>();
|
||||||
|
|
||||||
|
StatusModule(ReactApplicationContext reactContext) {
|
||||||
|
super(reactContext);
|
||||||
|
reactContext.addLifecycleEventListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "Status";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHostResume() { // Actvity `onResume`
|
||||||
|
|
||||||
|
Activity currentActivity = getCurrentActivity();
|
||||||
|
if (currentActivity == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (status == null) {
|
||||||
|
status = new StatusConnector(currentActivity, StatusService.class);
|
||||||
|
status.registerHandler(this);
|
||||||
|
}
|
||||||
|
status.bindService();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHostPause() { // Actvity `onPause`
|
||||||
|
|
||||||
|
if (status != null) {
|
||||||
|
status.unbindService();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHostDestroy() { // Actvity `onDestroy`
|
||||||
|
|
||||||
|
if (status != null) {
|
||||||
|
status.stopNode(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConnectorConnected() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConnectorDisconnected() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handleMessage(Message message) {
|
||||||
|
|
||||||
|
Log.d(TAG, "Received message: " + message.toString());
|
||||||
|
boolean isClaimed = true;
|
||||||
|
Bundle bundle = message.getData();
|
||||||
|
String callbackIdentifier = bundle.getString(StatusConnector.CALLBACK_IDENTIFIER);
|
||||||
|
String data = bundle.getString("data");
|
||||||
|
Callback callback = callbacks.remove(callbackIdentifier);
|
||||||
|
switch (message.what) {
|
||||||
|
case StatusMessages.MSG_START_NODE:
|
||||||
|
case StatusMessages.MSG_STOP_NODE:
|
||||||
|
case StatusMessages.MSG_LOGIN:
|
||||||
|
case StatusMessages.MSG_CREATE_ACCOUNT:
|
||||||
|
case StatusMessages.MSG_RECOVER_ACCOUNT:
|
||||||
|
case StatusMessages.MSG_COMPLETE_TRANSACTION:
|
||||||
|
case StatusMessages.MSG_JAIL_INIT:
|
||||||
|
case StatusMessages.MSG_JAIL_PARSE:
|
||||||
|
case StatusMessages.MSG_JAIL_CALL:
|
||||||
|
if (callback == null) {
|
||||||
|
Log.d(TAG, "Could not find callback: " + callbackIdentifier);
|
||||||
|
} else {
|
||||||
|
callback.invoke(data);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case StatusMessages.MSG_GETH_EVENT:
|
||||||
|
String event = bundle.getString("event");
|
||||||
|
WritableMap params = Arguments.createMap();
|
||||||
|
params.putString("jsonEvent", event);
|
||||||
|
getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit("gethEvent", params);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
isClaimed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return isClaimed;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkAvailability() {
|
||||||
|
|
||||||
|
Activity currentActivity = getCurrentActivity();
|
||||||
|
if (currentActivity == null) {
|
||||||
|
Log.d(TAG, "Activity doesn't exist");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status == null) {
|
||||||
|
Log.d(TAG, "Status connector is null");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Geth
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void startNode(Callback callback, Callback onAlreadyRunning) {
|
||||||
|
|
||||||
|
if (StatusService.isRunning()) {
|
||||||
|
onAlreadyRunning.invoke();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.startNode(callbackIdentifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void login(String address, String password, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.login(callbackIdentifier, address, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void createAccount(String password, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.createAccount(callbackIdentifier, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void recoverAccount(String passphrase, String password, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.recoverAccount(callbackIdentifier, passphrase, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String createIdentifier() {
|
||||||
|
return UUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void completeTransaction(String hash, String password, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.d(TAG, "Complete transaction: " + hash);
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.completeTransaction(callbackIdentifier, hash, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Jail
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void initJail(String js, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.initJail(callbackIdentifier, js);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void parseJail(String chatId, String js, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.parseJail(callbackIdentifier, chatId, js);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void callJail(String chatId, String path, String params, Callback callback) {
|
||||||
|
|
||||||
|
if (!checkAvailability()) {
|
||||||
|
callback.invoke(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String callbackIdentifier = createIdentifier();
|
||||||
|
callbacks.put(callbackIdentifier, callback);
|
||||||
|
|
||||||
|
status.callJail(callbackIdentifier, chatId, path, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void setAdjustResize() {
|
||||||
|
|
||||||
|
final Activity activity = getCurrentActivity();
|
||||||
|
if (activity == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void setAdjustPan() {
|
||||||
|
|
||||||
|
final Activity activity = getCurrentActivity();
|
||||||
|
if (activity == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void setSoftInputMode(final int mode) {
|
||||||
|
|
||||||
|
final Activity activity = getCurrentActivity();
|
||||||
|
if (activity == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
activity.runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
activity.getWindow().setSoftInputMode(mode);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,22 +1,23 @@
|
||||||
package com.statusim.geth.module;
|
package com.statusim.module;
|
||||||
|
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.bridge.JavaScriptModule;
|
import com.facebook.react.bridge.JavaScriptModule;
|
||||||
import com.facebook.react.bridge.NativeModule;
|
import com.facebook.react.bridge.NativeModule;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.uimanager.ViewManager;
|
import com.facebook.react.uimanager.ViewManager;
|
||||||
|
import com.statusim.module.StatusService;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class GethPackage implements ReactPackage {
|
public class StatusPackage implements ReactPackage {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||||
List<NativeModule> modules = new ArrayList<>();
|
List<NativeModule> modules = new ArrayList<>();
|
||||||
|
|
||||||
modules.add(new GethModule(reactContext));
|
modules.add(new StatusModule(reactContext));
|
||||||
|
|
||||||
return modules;
|
return modules;
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package com.statusim.geth.service;
|
package com.statusim.module;
|
||||||
|
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -12,11 +12,11 @@ import com.github.status_im.status_go.Statusgo;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class GethService extends Service {
|
public class StatusService extends Service {
|
||||||
|
|
||||||
private static final String TAG = "GethService";
|
private static final String TAG = "StatusService";
|
||||||
|
|
||||||
private static boolean isGethInitialized = false;
|
private static boolean isStatusInitialized = false;
|
||||||
private final Handler handler = new Handler();
|
private final Handler handler = new Handler();
|
||||||
|
|
||||||
private static String dataFolder;
|
private static String dataFolder;
|
||||||
|
@ -25,9 +25,9 @@ public class GethService extends Service {
|
||||||
|
|
||||||
private static class IncomingHandler extends Handler {
|
private static class IncomingHandler extends Handler {
|
||||||
|
|
||||||
private final WeakReference<GethService> service;
|
private final WeakReference<StatusService> service;
|
||||||
|
|
||||||
IncomingHandler(GethService service) {
|
IncomingHandler(StatusService service) {
|
||||||
|
|
||||||
this.service = new WeakReference<>(service);
|
this.service = new WeakReference<>(service);
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public class GethService extends Service {
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(Message message) {
|
public void handleMessage(Message message) {
|
||||||
|
|
||||||
GethService service = this.service.get();
|
StatusService service = this.service.get();
|
||||||
if (service != null) {
|
if (service != null) {
|
||||||
if (!service.handleMessage(message)) {
|
if (!service.handleMessage(message)) {
|
||||||
super.handleMessage(message);
|
super.handleMessage(message);
|
||||||
|
@ -48,15 +48,21 @@ public class GethService extends Service {
|
||||||
|
|
||||||
|
|
||||||
public static void signalEvent(String jsonEvent) {
|
public static void signalEvent(String jsonEvent) {
|
||||||
|
|
||||||
Log.d(TAG, "Signal event: " + jsonEvent);
|
Log.d(TAG, "Signal event: " + jsonEvent);
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("event", jsonEvent);
|
replyData.putString("event", jsonEvent);
|
||||||
|
|
||||||
Message replyMessage = Message.obtain(null, GethMessages.MSG_GETH_EVENT, 0, 0, null);
|
Message replyMessage = Message.obtain(null, StatusMessages.MSG_GETH_EVENT, 0, 0, null);
|
||||||
replyMessage.setData(replyData);
|
replyMessage.setData(replyData);
|
||||||
sendReply(applicationMessenger, replyMessage);
|
sendReply(applicationMessenger, replyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
System.loadLibrary("statusgoraw");
|
||||||
|
System.loadLibrary("statusgo");
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBinder onBind(Intent intent) {
|
public IBinder onBind(Intent intent) {
|
||||||
|
@ -65,53 +71,68 @@ public class GethService extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
|
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
System.loadLibrary("statusgoraw");
|
|
||||||
System.loadLibrary("statusgo");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
//TODO: stop geth
|
//TODO: stop geth
|
||||||
stopNode(null);
|
stopNode(null);
|
||||||
isGethInitialized = false;
|
isStatusInitialized = false;
|
||||||
Log.d(TAG, "Geth Service stopped !");
|
Log.d(TAG, "Status Service stopped !");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
|
|
||||||
return Service.START_STICKY;
|
return Service.START_STICKY;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean handleMessage(Message message) {
|
private boolean handleMessage(Message message) {
|
||||||
|
|
||||||
switch (message.what) {
|
switch (message.what) {
|
||||||
|
|
||||||
case GethMessages.MSG_START_NODE:
|
case StatusMessages.MSG_START_NODE:
|
||||||
Log.d(TAG, "Received start node message." + message.toString());
|
Log.d(TAG, "Received start node message." + message.toString());
|
||||||
startNode(message);
|
startNode(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GethMessages.MSG_STOP_NODE:
|
case StatusMessages.MSG_STOP_NODE:
|
||||||
stopNode(message);
|
stopNode(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GethMessages.MSG_CREATE_ACCOUNT:
|
case StatusMessages.MSG_CREATE_ACCOUNT:
|
||||||
createAccount(message);
|
createAccount(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GethMessages.MSG_RECOVER_ACCOUNT:
|
case StatusMessages.MSG_RECOVER_ACCOUNT:
|
||||||
recoverAccount(message);
|
recoverAccount(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GethMessages.MSG_LOGIN:
|
case StatusMessages.MSG_LOGIN:
|
||||||
login(message);
|
login(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GethMessages.MSG_COMPLETE_TRANSACTION:
|
case StatusMessages.MSG_COMPLETE_TRANSACTION:
|
||||||
completeTransaction(message);
|
completeTransaction(message);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case StatusMessages.MSG_JAIL_INIT:
|
||||||
|
initJail(message);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case StatusMessages.MSG_JAIL_PARSE:
|
||||||
|
parseJail(message);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case StatusMessages.MSG_JAIL_CALL:
|
||||||
|
callJail(message);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -120,11 +141,12 @@ public class GethService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startNode(Message message) {
|
private void startNode(Message message) {
|
||||||
if (!isGethInitialized) {
|
|
||||||
isGethInitialized = true;
|
if (!isStatusInitialized) {
|
||||||
|
isStatusInitialized = true;
|
||||||
Log.d(TAG, "Client messenger1: " + message.replyTo.toString());
|
Log.d(TAG, "Client messenger1: " + message.replyTo.toString());
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String callbackIdentifier = data.getString(GethConnector.CALLBACK_IDENTIFIER);
|
String callbackIdentifier = data.getString(StatusConnector.CALLBACK_IDENTIFIER);
|
||||||
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
||||||
new StartTask(message.replyTo, callbackIdentifier).execute();
|
new StartTask(message.replyTo, callbackIdentifier).execute();
|
||||||
}
|
}
|
||||||
|
@ -136,11 +158,13 @@ public class GethService extends Service {
|
||||||
Messenger messenger;
|
Messenger messenger;
|
||||||
|
|
||||||
StartTask(Messenger messenger, String callbackIdentifier) {
|
StartTask(Messenger messenger, String callbackIdentifier) {
|
||||||
|
|
||||||
this.messenger = messenger;
|
this.messenger = messenger;
|
||||||
this.callbackIdentifier = callbackIdentifier;
|
this.callbackIdentifier = callbackIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Void doInBackground(Void... args) {
|
protected Void doInBackground(Void... args) {
|
||||||
|
|
||||||
startGeth();
|
startGeth();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -151,20 +175,19 @@ public class GethService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onGethStarted(Messenger messenger, String callbackIdentifier) {
|
private void onGethStarted(Messenger messenger, String callbackIdentifier) {
|
||||||
Log.d(TAG, "Geth Service started");
|
|
||||||
Message replyMessage = Message.obtain(null, GethMessages.MSG_NODE_STARTED, 0, 0, null);
|
Log.d(TAG, "Geth Node started");
|
||||||
|
Message replyMessage = Message.obtain(null, StatusMessages.MSG_START_NODE, 0, 0, null);
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
||||||
replyData.putString(GethConnector.CALLBACK_IDENTIFIER, callbackIdentifier);
|
replyData.putString(StatusConnector.CALLBACK_IDENTIFIER, callbackIdentifier);
|
||||||
replyMessage.setData(replyData);
|
replyMessage.setData(replyData);
|
||||||
sendReply(messenger, replyMessage);
|
sendReply(messenger, replyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startGeth() {
|
private void startGeth() {
|
||||||
|
|
||||||
|
|
||||||
File extStore = Environment.getExternalStorageDirectory();
|
File extStore = Environment.getExternalStorageDirectory();
|
||||||
|
|
||||||
dataFolder = extStore.exists() ?
|
dataFolder = extStore.exists() ?
|
||||||
extStore.getAbsolutePath() + "/ethereum" :
|
extStore.getAbsolutePath() + "/ethereum" :
|
||||||
getApplicationInfo().dataDir + "/ethereum";
|
getApplicationInfo().dataDir + "/ethereum";
|
||||||
|
@ -197,10 +220,11 @@ public class GethService extends Service {
|
||||||
private void stopNode(Message message) {
|
private void stopNode(Message message) {
|
||||||
// TODO: stop node
|
// TODO: stop node
|
||||||
|
|
||||||
createAndSendReply(message, GethMessages.MSG_NODE_STOPPED, null);
|
createAndSendReply(message, StatusMessages.MSG_STOP_NODE, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createAccount(Message message) {
|
private void createAccount(Message message) {
|
||||||
|
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String password = data.getString("password");
|
String password = data.getString("password");
|
||||||
Log.d(TAG, "Creating account: " + password);
|
Log.d(TAG, "Creating account: " + password);
|
||||||
|
@ -209,10 +233,11 @@ public class GethService extends Service {
|
||||||
|
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("data", jsonData);
|
replyData.putString("data", jsonData);
|
||||||
createAndSendReply(message, GethMessages.MSG_ACCOUNT_CREATED, replyData);
|
createAndSendReply(message, StatusMessages.MSG_CREATE_ACCOUNT, replyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recoverAccount(Message message) {
|
private void recoverAccount(Message message) {
|
||||||
|
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String passphrase = data.getString("passphrase");
|
String passphrase = data.getString("passphrase");
|
||||||
String password = data.getString("password");
|
String password = data.getString("password");
|
||||||
|
@ -222,10 +247,11 @@ public class GethService extends Service {
|
||||||
|
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("data", jsonData);
|
replyData.putString("data", jsonData);
|
||||||
createAndSendReply(message, GethMessages.MSG_ACCOUNT_RECOVERED, replyData);
|
createAndSendReply(message, StatusMessages.MSG_RECOVER_ACCOUNT, replyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void login(Message message) {
|
private void login(Message message) {
|
||||||
|
|
||||||
applicationMessenger = message.replyTo;
|
applicationMessenger = message.replyTo;
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String address = data.getString("address");
|
String address = data.getString("address");
|
||||||
|
@ -234,14 +260,15 @@ public class GethService extends Service {
|
||||||
Log.d(TAG, "Loggedin account: " + result);
|
Log.d(TAG, "Loggedin account: " + result);
|
||||||
|
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("result", result);
|
replyData.putString("data", result);
|
||||||
createAndSendReply(message, GethMessages.MSG_LOGGED_IN, replyData);
|
createAndSendReply(message, StatusMessages.MSG_LOGIN, replyData);
|
||||||
|
|
||||||
// Test signalEvent
|
// Test signalEvent
|
||||||
//signalEvent("{ \"type\": \"test\", \"event\": \"test event\" }");
|
//signalEvent("{ \"type\": \"test\", \"event\": \"test event\" }");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void completeTransaction(Message message){
|
private void completeTransaction(Message message){
|
||||||
|
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String hash = data.getString("hash");
|
String hash = data.getString("hash");
|
||||||
String password = data.getString("password");
|
String password = data.getString("password");
|
||||||
|
@ -251,12 +278,50 @@ public class GethService extends Service {
|
||||||
Log.d(TAG, "After CompleteTransaction: " + result);
|
Log.d(TAG, "After CompleteTransaction: " + result);
|
||||||
|
|
||||||
Bundle replyData = new Bundle();
|
Bundle replyData = new Bundle();
|
||||||
replyData.putString("result", result);
|
replyData.putString("data", result);
|
||||||
createAndSendReply(message, GethMessages.MSG_TRANSACTION_COMPLETED, replyData);
|
createAndSendReply(message, StatusMessages.MSG_COMPLETE_TRANSACTION, replyData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initJail(Message message){
|
||||||
|
|
||||||
|
Bundle data = message.getData();
|
||||||
|
String js = data.getString("js");
|
||||||
|
|
||||||
|
Statusgo.initJail(js);
|
||||||
|
|
||||||
|
Bundle replyData = new Bundle();
|
||||||
|
createAndSendReply(message, StatusMessages.MSG_JAIL_INIT, replyData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void parseJail(Message message){
|
||||||
|
|
||||||
|
Bundle data = message.getData();
|
||||||
|
String chatId = data.getString("chatId");
|
||||||
|
String js = data.getString("js");
|
||||||
|
|
||||||
|
String result = Statusgo.parse(chatId, js);
|
||||||
|
|
||||||
|
Bundle replyData = new Bundle();
|
||||||
|
replyData.putString("data", result);
|
||||||
|
createAndSendReply(message, StatusMessages.MSG_JAIL_PARSE, replyData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void callJail(Message message){
|
||||||
|
|
||||||
|
Bundle data = message.getData();
|
||||||
|
String chatId = data.getString("chatId");
|
||||||
|
String path = data.getString("path");
|
||||||
|
String params = data.getString("params");
|
||||||
|
|
||||||
|
String result = Statusgo.call(chatId, path, params);
|
||||||
|
|
||||||
|
Bundle replyData = new Bundle();
|
||||||
|
replyData.putString("data", result);
|
||||||
|
createAndSendReply(message, StatusMessages.MSG_JAIL_CALL, replyData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isRunning() {
|
public static boolean isRunning() {
|
||||||
return isGethInitialized;
|
return isStatusInitialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createAndSendReply(Message message, int replyIdMessage, Bundle replyData) {
|
private static void createAndSendReply(Message message, int replyIdMessage, Bundle replyData) {
|
||||||
|
@ -269,15 +334,16 @@ public class GethService extends Service {
|
||||||
replyData = new Bundle();
|
replyData = new Bundle();
|
||||||
}
|
}
|
||||||
Bundle data = message.getData();
|
Bundle data = message.getData();
|
||||||
String callbackIdentifier = data.getString(GethConnector.CALLBACK_IDENTIFIER);
|
String callbackIdentifier = data.getString(StatusConnector.CALLBACK_IDENTIFIER);
|
||||||
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
Log.d(TAG, "Callback identifier: " + callbackIdentifier);
|
||||||
replyData.putString(GethConnector.CALLBACK_IDENTIFIER, callbackIdentifier);
|
replyData.putString(StatusConnector.CALLBACK_IDENTIFIER, callbackIdentifier);
|
||||||
replyMessage.setData(replyData);
|
replyMessage.setData(replyData);
|
||||||
|
|
||||||
sendReply(message.replyTo, replyMessage);
|
sendReply(message.replyTo, replyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void sendReply(Messenger messenger, Message message) {
|
private static void sendReply(Messenger messenger, Message message) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
messenger.send(message);
|
messenger.send(message);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
|
@ -0,0 +1,4 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
import { NativeModules } from 'react-native';
|
||||||
|
module.exports = NativeModules.Status;
|
|
@ -0,0 +1,6 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import "RCTBridgeModule.h"
|
||||||
|
#import "RCTLog.h"
|
||||||
|
|
||||||
|
@interface Status : NSObject <RCTBridgeModule>
|
||||||
|
@end
|
|
@ -0,0 +1,55 @@
|
||||||
|
#import "RCTStatus.h"
|
||||||
|
|
||||||
|
#import <Statusgo/Statusgo.h>
|
||||||
|
|
||||||
|
@implementation Status
|
||||||
|
@synthesize bridge = _bridge;
|
||||||
|
|
||||||
|
RCT_EXPORT_MODULE();
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(initJail: (NSString *) js
|
||||||
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
|
initJail((char *) [js UTF8String]);
|
||||||
|
callback(@[[NSNull null]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(parseJail:(NSString *)chatId
|
||||||
|
js:(NSString *)js
|
||||||
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"parseJail() method called");
|
||||||
|
#endif
|
||||||
|
char * result = parse((char *) [chatId UTF8String], (char *) [js UTF8String]);
|
||||||
|
callback(@[[NSNull null], [NSString stringWithUTF8String: result]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(callJail:(NSString *)chatId
|
||||||
|
path:(NSString *)path
|
||||||
|
params:(NSString *)params
|
||||||
|
callback:(RCTResponseSenderBlock)callback) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"callJail() method called");
|
||||||
|
#endif
|
||||||
|
char * result = call((char *) [chatId UTF8String], (char *) [path UTF8String], (char *) [params UTF8String]);
|
||||||
|
callback(@[[NSNull null], [NSString stringWithUTF8String: result]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(setAdjustResize) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"setAdjustResize() works only on Android");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(setAdjustPan) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"setAdjustPan() works only on Android");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
RCT_EXPORT_METHOD(setSoftInputMode: (NSInteger) i) {
|
||||||
|
#if DEBUG
|
||||||
|
NSLog(@"setSoftInputMode() works only on Android");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,302 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
206C9F3E1D474E910063E3E6 /* RCTStatus.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 206C9F3D1D474E910063E3E6 /* RCTStatus.h */; };
|
||||||
|
206C9F401D474E910063E3E6 /* RCTStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 206C9F3F1D474E910063E3E6 /* RCTStatus.m */; };
|
||||||
|
20AB9EAE1D47CBF500E7FD9C /* Statusgo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20AB9EAD1D47CBF500E7FD9C /* Statusgo.framework */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
206C9F381D474E910063E3E6 /* Copy Files */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = "include/$(PRODUCT_NAME)";
|
||||||
|
dstSubfolderSpec = 16;
|
||||||
|
files = (
|
||||||
|
206C9F3E1D474E910063E3E6 /* RCTStatus.h in Copy Files */,
|
||||||
|
);
|
||||||
|
name = "Copy Files";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
206C9F3A1D474E910063E3E6 /* libRCTStatus.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTStatus.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
206C9F3D1D474E910063E3E6 /* RCTStatus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTStatus.h; sourceTree = "<group>"; };
|
||||||
|
206C9F3F1D474E910063E3E6 /* RCTStatus.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTStatus.m; sourceTree = "<group>"; };
|
||||||
|
20AB9EAD1D47CBF500E7FD9C /* Statusgo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Statusgo.framework; path = "../../../../../react-native-status/ios/Statusgo.framework"; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
206C9F371D474E910063E3E6 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
20AB9EAE1D47CBF500E7FD9C /* Statusgo.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
206C9F311D474E910063E3E6 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
20AB9EAD1D47CBF500E7FD9C /* Statusgo.framework */,
|
||||||
|
206C9F3C1D474E910063E3E6 /* RCTStatus */,
|
||||||
|
206C9F3B1D474E910063E3E6 /* Products */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
206C9F3B1D474E910063E3E6 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
206C9F3A1D474E910063E3E6 /* libRCTStatus.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
206C9F3C1D474E910063E3E6 /* RCTStatus */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
206C9F3D1D474E910063E3E6 /* RCTStatus.h */,
|
||||||
|
206C9F3F1D474E910063E3E6 /* RCTStatus.m */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
206C9F391D474E910063E3E6 /* RCTStatus */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 206C9F431D474E910063E3E6 /* Build configuration list for PBXNativeTarget "RCTStatus" */;
|
||||||
|
buildPhases = (
|
||||||
|
206C9F361D474E910063E3E6 /* Sources */,
|
||||||
|
206C9F371D474E910063E3E6 /* Frameworks */,
|
||||||
|
206C9F381D474E910063E3E6 /* Copy Files */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = RCTStatus;
|
||||||
|
productName = RCTStatus;
|
||||||
|
productReference = 206C9F3A1D474E910063E3E6 /* libRCTStatus.a */;
|
||||||
|
productType = "com.apple.product-type.library.static";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
206C9F321D474E910063E3E6 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0730;
|
||||||
|
ORGANIZATIONNAME = Status.im;
|
||||||
|
TargetAttributes = {
|
||||||
|
206C9F391D474E910063E3E6 = {
|
||||||
|
CreatedOnToolsVersion = 7.3.1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
buildConfigurationList = 206C9F351D474E910063E3E6 /* Build configuration list for PBXProject "RCTStatus" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = 206C9F311D474E910063E3E6;
|
||||||
|
productRefGroup = 206C9F3B1D474E910063E3E6 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
206C9F391D474E910063E3E6 /* RCTStatus */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
206C9F361D474E910063E3E6 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
206C9F401D474E910063E3E6 /* RCTStatus.m in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
206C9F411D474E910063E3E6 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_TESTABILITY = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
206C9F421D474E910063E3E6 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
206C9F441D474E910063E3E6 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ARCHS = (
|
||||||
|
"$(ARCHS_STANDARD)",
|
||||||
|
x86_64,
|
||||||
|
);
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||||
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(PROJECT_DIR)/..",
|
||||||
|
);
|
||||||
|
FRAMEWORK_VERSION = A;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(SRCROOT)/../../../React/**",
|
||||||
|
"$(SRCROOT)/../../../react-native/React/**",
|
||||||
|
);
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-ObjC",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
VALID_ARCHS = "armv7 armv7s arm64 x86_64";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
206C9F451D474E910063E3E6 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ARCHS = (
|
||||||
|
"$(ARCHS_STANDARD)",
|
||||||
|
x86_64,
|
||||||
|
);
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||||
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(PROJECT_DIR)/..",
|
||||||
|
);
|
||||||
|
FRAMEWORK_VERSION = A;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(SRCROOT)/../../../React/**",
|
||||||
|
"$(SRCROOT)/../../../react-native/React/**",
|
||||||
|
);
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||||
|
ONLY_ACTIVE_ARCH = NO;
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-ObjC",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
VALID_ARCHS = "armv7 armv7s arm64 x86_64";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
206C9F351D474E910063E3E6 /* Build configuration list for PBXProject "RCTStatus" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
206C9F411D474E910063E3E6 /* Debug */,
|
||||||
|
206C9F421D474E910063E3E6 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
206C9F431D474E910063E3E6 /* Build configuration list for PBXNativeTarget "RCTStatus" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
206C9F441D474E910063E3E6 /* Debug */,
|
||||||
|
206C9F451D474E910063E3E6 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 206C9F321D474E910063E3E6 /* Project object */;
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
/* Created by "go tool cgo" - DO NOT EDIT. */
|
||||||
|
|
||||||
|
/* package github.com/status-im/status-go/src */
|
||||||
|
|
||||||
|
/* Start of preamble from import "C" comments. */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* End of preamble from import "C" comments. */
|
||||||
|
|
||||||
|
|
||||||
|
/* Start of boilerplate cgo prologue. */
|
||||||
|
|
||||||
|
#ifndef GO_CGO_PROLOGUE_H
|
||||||
|
#define GO_CGO_PROLOGUE_H
|
||||||
|
|
||||||
|
typedef signed char GoInt8;
|
||||||
|
typedef unsigned char GoUint8;
|
||||||
|
typedef short GoInt16;
|
||||||
|
typedef unsigned short GoUint16;
|
||||||
|
typedef int GoInt32;
|
||||||
|
typedef unsigned int GoUint32;
|
||||||
|
typedef long long GoInt64;
|
||||||
|
typedef unsigned long long GoUint64;
|
||||||
|
typedef GoInt64 GoInt;
|
||||||
|
typedef GoUint64 GoUint;
|
||||||
|
typedef __SIZE_TYPE__ GoUintptr;
|
||||||
|
typedef float GoFloat32;
|
||||||
|
typedef double GoFloat64;
|
||||||
|
typedef float _Complex GoComplex64;
|
||||||
|
typedef double _Complex GoComplex128;
|
||||||
|
|
||||||
|
/*
|
||||||
|
static assertion to make sure the file is being used on architecture
|
||||||
|
at least with matching size of GoInt.
|
||||||
|
*/
|
||||||
|
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
|
||||||
|
|
||||||
|
typedef struct { const char *p; GoInt n; } GoString;
|
||||||
|
typedef void *GoMap;
|
||||||
|
typedef void *GoChan;
|
||||||
|
typedef struct { void *t; void *v; } GoInterface;
|
||||||
|
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* End of boilerplate cgo prologue. */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
extern char* CreateAccount(char* p0);
|
||||||
|
|
||||||
|
extern char* Login(char* p0, char* p1);
|
||||||
|
|
||||||
|
extern char* UnlockAccount(char* p0, char* p1, GoInt p2);
|
||||||
|
|
||||||
|
extern char* StartNode(char* p0);
|
||||||
|
|
||||||
|
extern char* parse(char* p0, char* p1);
|
||||||
|
|
||||||
|
extern char* call(char* p0, char* p1, char* p2);
|
||||||
|
|
||||||
|
extern void initJail(char* p0);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,4 @@
|
||||||
|
framework module "Statusgo" {
|
||||||
|
header "Statusgo.h"
|
||||||
|
export *
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1 @@
|
||||||
|
bd7ae0b1c5bf90e4a4fa06bd17667234485f130a
|
|
@ -0,0 +1 @@
|
||||||
|
A
|
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/bash
|
||||||
|
##########################################################
|
||||||
|
# Fix Symlinks
|
||||||
|
#
|
||||||
|
# Usage : Copy this file into the Framework directory,
|
||||||
|
# Execute it passing the Framework Name in argument.
|
||||||
|
#
|
||||||
|
##########################################################
|
||||||
|
|
||||||
|
if [ -z $1 ] ; then
|
||||||
|
echo "Usage : $0 <Framework_Name>"
|
||||||
|
exit -1
|
||||||
|
else
|
||||||
|
echo "Removing current Symlinks files"
|
||||||
|
rm Headers
|
||||||
|
rm Resources
|
||||||
|
rm Modules
|
||||||
|
rm $1
|
||||||
|
rm Versions/Current
|
||||||
|
|
||||||
|
echo "Creating new Symlinks"
|
||||||
|
cd Versions
|
||||||
|
ln -s A Current
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
ln -s ./Versions/Current/Headers Headers
|
||||||
|
ln -s ./Versions/Current/Resources Resources
|
||||||
|
ln -s ./Versions/Current/Modules Modules
|
||||||
|
ln -s ./Versions/Current/$1 $1
|
||||||
|
|
||||||
|
echo "Job done!"
|
||||||
|
fi
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"private": true,
|
||||||
|
"nativePackage": true,
|
||||||
|
"name": "react-native-status",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Manage Geth, Jail & Background Service",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+ssh://git@github.com/status-im/react-native-status.git"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/status-im/react-native-status/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/status-im/react-native-status#readme"
|
||||||
|
}
|
|
@ -46,7 +46,6 @@
|
||||||
"react-native-orientation": "github:youennPennarun/react-native-orientation",
|
"react-native-orientation": "github:youennPennarun/react-native-orientation",
|
||||||
"react-native-qrcode": "^0.2.2",
|
"react-native-qrcode": "^0.2.2",
|
||||||
"react-native-randombytes": "^2.1.0",
|
"react-native-randombytes": "^2.1.0",
|
||||||
"react-native-status": "github:status-im/react-native-status#ios-module",
|
|
||||||
"react-native-tcp": "^1.0.1",
|
"react-native-tcp": "^1.0.1",
|
||||||
"react-native-udp": "^1.2.5",
|
"react-native-udp": "^1.2.5",
|
||||||
"react-native-vector-icons": "^2.0.3",
|
"react-native-vector-icons": "^2.0.3",
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
[re-frame.core :refer [register-handler after dispatch dispatch-sync debug]]
|
[re-frame.core :refer [register-handler after dispatch dispatch-sync debug]]
|
||||||
[status-im.utils.logging :as log]
|
[status-im.utils.logging :as log]
|
||||||
[status-im.protocol.api :as api]
|
[status-im.protocol.api :as api]
|
||||||
[status-im.components.geth :as geth]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.persistence.simple-kv-store :as kv]
|
[status-im.persistence.simple-kv-store :as kv]
|
||||||
[status-im.protocol.state.storage :as storage]
|
[status-im.protocol.state.storage :as storage]
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
(after #(dispatch [:init-wallet-chat]))
|
(after #(dispatch [:init-wallet-chat]))
|
||||||
(u/side-effect!
|
(u/side-effect!
|
||||||
(fn [_ [_ password]]
|
(fn [_ [_ password]]
|
||||||
(geth/create-account
|
(status/create-account
|
||||||
password
|
password
|
||||||
#(account-created % password)))))
|
#(account-created % password)))))
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.db :refer [default-view]]
|
[status-im.db :refer [default-view]]
|
||||||
[status-im.persistence.realm.core :as realm]
|
[status-im.persistence.realm.core :as realm]
|
||||||
[status-im.components.geth :as geth]))
|
[status-im.components.status :as status]))
|
||||||
|
|
||||||
|
|
||||||
(defn set-login-from-qr
|
(defn set-login-from-qr
|
||||||
|
@ -48,12 +48,12 @@
|
||||||
:login-account
|
:login-account
|
||||||
(u/side-effect!
|
(u/side-effect!
|
||||||
(fn [db [_ address password]]
|
(fn [db [_ address password]]
|
||||||
(geth/login address password
|
(status/login address password
|
||||||
(fn [result]
|
(fn [result]
|
||||||
(let [data (json->clj result)
|
(let [data (json->clj result)
|
||||||
error (:error data)
|
error (:error data)
|
||||||
success (zero? (count error))]
|
success (zero? (count error))]
|
||||||
(log/debug "Logged in account: ")
|
(log/debug "Logged in account: ")
|
||||||
(if success
|
(if success
|
||||||
(logged-in db address)
|
(logged-in db address)
|
||||||
(dispatch [:set-in [:login :error] error]))))))))
|
(dispatch [:set-in [:login :error] error]))))))))
|
|
@ -1,10 +1,8 @@
|
||||||
(ns status-im.accounts.recover.handlers
|
(ns status-im.accounts.recover.handlers
|
||||||
(:require [re-frame.core :refer [register-handler after dispatch dispatch-sync]]
|
(:require [re-frame.core :refer [register-handler after dispatch dispatch-sync]]
|
||||||
[status-im.components.geth :as geth]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.handlers :as u]
|
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.utils.identicon :refer [identicon]]
|
[status-im.utils.identicon :refer [identicon]]
|
||||||
[status-im.chat.sign-up :as sign-up-service]
|
|
||||||
[status-im.utils.logging :as log]
|
[status-im.utils.logging :as log]
|
||||||
[clojure.string :as str]))
|
[clojure.string :as str]))
|
||||||
|
|
||||||
|
@ -31,7 +29,7 @@
|
||||||
|
|
||||||
(defn recover-account
|
(defn recover-account
|
||||||
[{:keys [recover] :as db} [_ passphrase password]]
|
[{:keys [recover] :as db} [_ passphrase password]]
|
||||||
(geth/recover-account passphrase password (fn [result] (account-recovered result password)))
|
(status/recover-account passphrase password (fn [result] (account-recovered result password)))
|
||||||
db)
|
db)
|
||||||
|
|
||||||
(register-handler :recover-account recover-account)
|
(register-handler :recover-account recover-account)
|
|
@ -32,7 +32,7 @@
|
||||||
[status-im.utils.encryption]
|
[status-im.utils.encryption]
|
||||||
status-im.persistence.realm.core
|
status-im.persistence.realm.core
|
||||||
[status-im.utils.logging :as log]
|
[status-im.utils.logging :as log]
|
||||||
[status-im.components.jail :as j]))
|
[status-im.components.status :as status]))
|
||||||
|
|
||||||
(defn init-back-button-handler! []
|
(defn init-back-button-handler! []
|
||||||
(let [new-listener (fn []
|
(let [new-listener (fn []
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
(dispatch-sync [:reset-app])
|
(dispatch-sync [:reset-app])
|
||||||
(dispatch [:initialize-crypt])
|
(dispatch [:initialize-crypt])
|
||||||
(dispatch [:initialize-geth])
|
(dispatch [:initialize-geth])
|
||||||
(j/set-soft-input-mode j/adjust-resize)
|
(status/set-soft-input-mode status/adjust-resize)
|
||||||
(dispatch [:load-user-phone-number])
|
(dispatch [:load-user-phone-number])
|
||||||
(init-back-button-handler!)
|
(init-back-button-handler!)
|
||||||
(.registerComponent app-registry "StatusIm" #(r/reactify-component app-root)))
|
(.registerComponent app-registry "StatusIm" #(r/reactify-component app-root)))
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
[status-im.handlers.content-suggestions :refer [get-content-suggestions]]
|
[status-im.handlers.content-suggestions :refer [get-content-suggestions]]
|
||||||
[status-im.utils.phone-number :refer [format-phone-number
|
[status-im.utils.phone-number :refer [format-phone-number
|
||||||
valid-mobile-number?]]
|
valid-mobile-number?]]
|
||||||
[status-im.components.jail :as j]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.chat.handlers.commands :refer [command-prefix]]
|
[status-im.chat.handlers.commands :refer [command-prefix]]
|
||||||
[status-im.chat.utils :refer [console? not-console?]]
|
[status-im.chat.utils :refer [console? not-console?]]
|
||||||
|
@ -411,9 +411,9 @@
|
||||||
(after
|
(after
|
||||||
(fn [{:keys [current-chat-id]} [_ mode chat-id]]
|
(fn [{:keys [current-chat-id]} [_ mode chat-id]]
|
||||||
(when (or (nil? chat-id) (= current-chat-id chat-id))
|
(when (or (nil? chat-id) (= current-chat-id chat-id))
|
||||||
(j/set-soft-input-mode (if (= :pan mode)
|
(status/set-soft-input-mode (if (= :pan mode)
|
||||||
j/adjust-pan
|
status/adjust-pan
|
||||||
j/adjust-resize)))))
|
status/adjust-resize)))))
|
||||||
(fn [db [_ chat-id mode]]
|
(fn [db [_ chat-id mode]]
|
||||||
(assoc-in db [:kb-mode chat-id] mode)))
|
(assoc-in db [:kb-mode chat-id] mode)))
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
(ns status-im.chat.handlers.commands
|
(ns status-im.chat.handlers.commands
|
||||||
(:require [re-frame.core :refer [enrich after dispatch]]
|
(:require [re-frame.core :refer [enrich after dispatch]]
|
||||||
[status-im.utils.handlers :refer [register-handler] :as u]
|
[status-im.utils.handlers :refer [register-handler] :as u]
|
||||||
[status-im.components.jail :as j]
|
[status-im.components.status :as status]
|
||||||
[status-im.components.react :as r]
|
[status-im.components.react :as r]
|
||||||
[status-im.models.commands :as commands]
|
[status-im.models.commands :as commands]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
|
@ -30,12 +30,12 @@
|
||||||
0
|
0
|
||||||
:suggestions]
|
:suggestions]
|
||||||
params {:value (content-by-command command content)}]
|
params {:value (content-by-command command content)}]
|
||||||
(j/call current-chat-id
|
(status/call-jail current-chat-id
|
||||||
path
|
path
|
||||||
params
|
params
|
||||||
#(dispatch [:suggestions-handler {:command command
|
#(dispatch [:suggestions-handler {:command command
|
||||||
:content content
|
:content content
|
||||||
:chat-id current-chat-id} %])))))
|
:chat-id current-chat-id} %])))))
|
||||||
|
|
||||||
(defn cancel-command!
|
(defn cancel-command!
|
||||||
[{:keys [canceled-command]}]
|
[{:keys [canceled-command]}]
|
||||||
|
@ -69,10 +69,10 @@
|
||||||
name
|
name
|
||||||
:preview]
|
:preview]
|
||||||
params {:value content}]
|
params {:value content}]
|
||||||
(j/call chat-id
|
(status/call-jail chat-id
|
||||||
path
|
path
|
||||||
params
|
params
|
||||||
#(dispatch [:command-preview chat-id id %]))))
|
#(dispatch [:command-preview chat-id id %]))))
|
||||||
|
|
||||||
(defn command-input
|
(defn command-input
|
||||||
([{:keys [current-chat-id] :as db}]
|
([{:keys [current-chat-id] :as db}]
|
||||||
|
@ -106,10 +106,10 @@
|
||||||
:validator]
|
:validator]
|
||||||
params {:value content
|
params {:value content
|
||||||
:command data}]
|
:command data}]
|
||||||
(j/call chat-id
|
(status/call-jail chat-id
|
||||||
path
|
path
|
||||||
params
|
params
|
||||||
#(dispatch [::validate! data %]))))
|
#(dispatch [::validate! data %]))))
|
||||||
|
|
||||||
(register-handler :stage-command
|
(register-handler :stage-command
|
||||||
(after start-validate!)
|
(after start-validate!)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
(:require [status-im.utils.handlers :refer [register-handler] :as u]
|
(:require [status-im.utils.handlers :refer [register-handler] :as u]
|
||||||
[clojure.string :as s]
|
[clojure.string :as s]
|
||||||
[status-im.models.messages :as messages]
|
[status-im.models.messages :as messages]
|
||||||
[status-im.components.jail :as j]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.random :as random]
|
[status-im.utils.random :as random]
|
||||||
[status-im.utils.datetime :as time]
|
[status-im.utils.datetime :as time]
|
||||||
[re-frame.core :refer [enrich after debug dispatch path]]
|
[re-frame.core :refer [enrich after debug dispatch path]]
|
||||||
|
@ -146,10 +146,10 @@
|
||||||
params {:value content
|
params {:value content
|
||||||
:command {:from address
|
:command {:from address
|
||||||
:to to}}]
|
:to to}}]
|
||||||
(j/call chat-id
|
(status/call-jail chat-id
|
||||||
path
|
path
|
||||||
params
|
params
|
||||||
#(dispatch [:command-handler! chat-id parameters %]))))))
|
#(dispatch [:command-handler! chat-id parameters %]))))))
|
||||||
|
|
||||||
(register-handler ::prepare-message
|
(register-handler ::prepare-message
|
||||||
(u/side-effect!
|
(u/side-effect!
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
(:require [re-frame.core :refer [after dispatch subscribe trim-v debug]]
|
(:require [re-frame.core :refer [after dispatch subscribe trim-v debug]]
|
||||||
[status-im.utils.handlers :as u]
|
[status-im.utils.handlers :as u]
|
||||||
[status-im.utils.utils :refer [http-get toast]]
|
[status-im.utils.utils :refer [http-get toast]]
|
||||||
[status-im.components.jail :as j]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.commands.utils :refer [generate-hiccup reg-handler]]
|
[status-im.commands.utils :refer [generate-hiccup reg-handler]]
|
||||||
[clojure.string :as s]
|
[clojure.string :as s]
|
||||||
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
(defn init-render-command!
|
(defn init-render-command!
|
||||||
[_ [chat-id command message-id data]]
|
[_ [chat-id command message-id data]]
|
||||||
(j/call chat-id [command :render] data
|
(status/call-jail chat-id [command :render] data
|
||||||
#(dispatch [::render-command chat-id message-id %])))
|
#(dispatch [::render-command chat-id message-id %])))
|
||||||
|
|
||||||
(defn render-command
|
(defn render-command
|
||||||
[db [chat-id message-id markup]]
|
[db [chat-id message-id markup]]
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
[status-im.utils.utils :refer [http-get toast]]
|
[status-im.utils.utils :refer [http-get toast]]
|
||||||
[clojure.string :as s]
|
[clojure.string :as s]
|
||||||
[status-im.persistence.realm.core :as realm]
|
[status-im.persistence.realm.core :as realm]
|
||||||
[status-im.components.jail :as j]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.types :refer [json->clj]]
|
[status-im.utils.types :refer [json->clj]]
|
||||||
[status-im.commands.utils :refer [reg-handler]]))
|
[status-im.commands.utils :refer [reg-handler]]))
|
||||||
|
|
||||||
|
@ -54,12 +54,12 @@
|
||||||
(hash file))
|
(hash file))
|
||||||
|
|
||||||
(defn parse-commands! [_ [identity file]]
|
(defn parse-commands! [_ [identity file]]
|
||||||
(j/parse identity file
|
(status/parse-jail identity file
|
||||||
(fn [result]
|
(fn [result]
|
||||||
(let [{:keys [error result]} (json->clj result)]
|
(let [{:keys [error result]} (json->clj result)]
|
||||||
(if error
|
(if error
|
||||||
(dispatch [::loading-failed! identity ::error-in-jail error])
|
(dispatch [::loading-failed! identity ::error-in-jail error])
|
||||||
(dispatch [::add-commands identity file result]))))))
|
(dispatch [::add-commands identity file result]))))))
|
||||||
|
|
||||||
(defn validate-hash
|
(defn validate-hash
|
||||||
[db [identity file]]
|
[db [identity file]]
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
(ns status-im.components.geth
|
|
||||||
(:require [status-im.components.react :as r]
|
|
||||||
[re-frame.core :refer [dispatch]]))
|
|
||||||
|
|
||||||
(def geth
|
|
||||||
(when (exists? (.-NativeModules r/react-native))
|
|
||||||
(.-Geth (.-NativeModules r/react-native))))
|
|
||||||
|
|
||||||
(.addListener r/device-event-emitter "gethEvent"
|
|
||||||
#(dispatch [:signal-event (.-jsonEvent %)]))
|
|
||||||
|
|
||||||
(defn start-node [on-result on-already-running]
|
|
||||||
(when geth
|
|
||||||
(.startNode geth on-result on-already-running)))
|
|
||||||
|
|
||||||
(defn create-account [password on-result]
|
|
||||||
(when geth
|
|
||||||
(.createAccount geth password on-result)))
|
|
||||||
|
|
||||||
(defn recover-account [passphrase password on-result]
|
|
||||||
(when geth
|
|
||||||
(.recoverAccount geth passphrase password on-result)))
|
|
||||||
|
|
||||||
(defn login [address password on-result]
|
|
||||||
(when geth
|
|
||||||
(.login geth address password on-result)))
|
|
||||||
|
|
||||||
(defn complete-transaction
|
|
||||||
[hash password callback]
|
|
||||||
(when geth
|
|
||||||
(.completeTransaction geth hash password callback)))
|
|
|
@ -1,36 +0,0 @@
|
||||||
(ns status-im.components.jail
|
|
||||||
(:require-macros [status-im.utils.slurp :refer [slurp]])
|
|
||||||
(:require [status-im.components.react :as r]
|
|
||||||
[status-im.utils.types :as t]))
|
|
||||||
|
|
||||||
(def status-js (slurp "resources/status.js"))
|
|
||||||
|
|
||||||
(def jail
|
|
||||||
(when (exists? (.-NativeModules r/react-native))
|
|
||||||
(.-Jail (.-NativeModules r/react-native))))
|
|
||||||
|
|
||||||
(when jail
|
|
||||||
(.init jail status-js))
|
|
||||||
|
|
||||||
(defn parse [chat-id file callback]
|
|
||||||
(when jail
|
|
||||||
(.parse jail chat-id file callback)))
|
|
||||||
|
|
||||||
(defn cljs->json [data]
|
|
||||||
(.stringify js/JSON (clj->js data)))
|
|
||||||
|
|
||||||
(defn call [chat-id path params callback]
|
|
||||||
(when jail
|
|
||||||
(println :call chat-id (cljs->json path) (cljs->json params))
|
|
||||||
(let [cb (fn [r]
|
|
||||||
(let [r' (t/json->clj r)]
|
|
||||||
(println r')
|
|
||||||
(callback r')))]
|
|
||||||
(.call jail chat-id (cljs->json path) (cljs->json params) cb))))
|
|
||||||
|
|
||||||
(defn set-soft-input-mode [mode]
|
|
||||||
(when jail
|
|
||||||
(.setSoftInputMode jail mode)))
|
|
||||||
|
|
||||||
(def adjust-resize 16)
|
|
||||||
(def adjust-pan 32)
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
(ns status-im.components.status
|
||||||
|
(:require-macros [status-im.utils.slurp :refer [slurp]])
|
||||||
|
(:require [status-im.components.react :as r]
|
||||||
|
[status-im.utils.types :as t]
|
||||||
|
[re-frame.core :refer [dispatch]]
|
||||||
|
[status-im.utils.logging :as log]))
|
||||||
|
|
||||||
|
(def status-js (slurp "resources/status.js"))
|
||||||
|
|
||||||
|
(def status
|
||||||
|
(when (exists? (.-NativeModules r/react-native))
|
||||||
|
(.-Status (.-NativeModules r/react-native))))
|
||||||
|
|
||||||
|
(when status
|
||||||
|
(.initJail status status-js #(log/debug "jail initialized")))
|
||||||
|
|
||||||
|
(.addListener r/device-event-emitter "gethEvent"
|
||||||
|
#(dispatch [:signal-event (.-jsonEvent %)]))
|
||||||
|
|
||||||
|
(defn start-node [on-result on-already-running]
|
||||||
|
(when status
|
||||||
|
(.startNode status on-result on-already-running)))
|
||||||
|
|
||||||
|
(defn create-account [password on-result]
|
||||||
|
(when status
|
||||||
|
(.createAccount status password on-result)))
|
||||||
|
|
||||||
|
(defn recover-account [passphrase password on-result]
|
||||||
|
(when status
|
||||||
|
(.recoverAccount status passphrase password on-result)))
|
||||||
|
|
||||||
|
(defn login [address password on-result]
|
||||||
|
(when status
|
||||||
|
(.login status address password on-result)))
|
||||||
|
|
||||||
|
(defn complete-transaction
|
||||||
|
[hash password callback]
|
||||||
|
(when status
|
||||||
|
(.completeTransaction status hash password callback)))
|
||||||
|
|
||||||
|
(defn parse-jail [chat-id file callback]
|
||||||
|
(when status
|
||||||
|
(.parseJail status chat-id file callback)))
|
||||||
|
|
||||||
|
(defn cljs->json [data]
|
||||||
|
(.stringify js/JSON (clj->js data)))
|
||||||
|
|
||||||
|
(defn call-jail [chat-id path params callback]
|
||||||
|
(when status
|
||||||
|
(println :call chat-id (cljs->json path) (cljs->json params))
|
||||||
|
(let [cb (fn [r]
|
||||||
|
(let [r' (t/json->clj r)]
|
||||||
|
(println r')
|
||||||
|
(callback r')))]
|
||||||
|
(.callJail status chat-id (cljs->json path) (cljs->json params) cb))))
|
||||||
|
|
||||||
|
(defn set-soft-input-mode [mode]
|
||||||
|
(when status
|
||||||
|
(.setSoftInputMode status mode)))
|
||||||
|
|
||||||
|
(def adjust-resize 16)
|
||||||
|
(def adjust-pan 32)
|
|
@ -8,7 +8,7 @@
|
||||||
[status-im.protocol.state.storage :as storage]
|
[status-im.protocol.state.storage :as storage]
|
||||||
[status-im.utils.logging :as log]
|
[status-im.utils.logging :as log]
|
||||||
[status-im.utils.crypt :refer [gen-random-bytes]]
|
[status-im.utils.crypt :refer [gen-random-bytes]]
|
||||||
[status-im.components.geth :as geth]
|
[status-im.components.status :as status]
|
||||||
[status-im.utils.handlers :refer [register-handler] :as u]
|
[status-im.utils.handlers :refer [register-handler] :as u]
|
||||||
status-im.chat.handlers
|
status-im.chat.handlers
|
||||||
status-im.group-settings.handlers
|
status-im.group-settings.handlers
|
||||||
|
@ -112,8 +112,8 @@
|
||||||
(u/side-effect!
|
(u/side-effect!
|
||||||
(fn [db _]
|
(fn [db _]
|
||||||
(log/debug "Starting node")
|
(log/debug "Starting node")
|
||||||
(geth/start-node (fn [result] (node-started db result))
|
(status/start-node (fn [result] (node-started db result))
|
||||||
#(log/debug "Geth already initialized")))))
|
#(log/debug "Geth already initialized")))))
|
||||||
|
|
||||||
(register-handler :crypt-initialized
|
(register-handler :crypt-initialized
|
||||||
(u/side-effect!
|
(u/side-effect!
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
[status-im.navigation.handlers :as nav]
|
[status-im.navigation.handlers :as nav]
|
||||||
[status-im.utils.handlers :as u]
|
[status-im.utils.handlers :as u]
|
||||||
[status-im.utils.types :as t]
|
[status-im.utils.types :as t]
|
||||||
[status-im.components.geth :as g]
|
[status-im.components.status :as status]
|
||||||
cljsjs.web3
|
cljsjs.web3
|
||||||
[clojure.string :as s]))
|
[clojure.string :as s]))
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
(do
|
(do
|
||||||
;(dispatch [:set :wrong-password? false])
|
;(dispatch [:set :wrong-password? false])
|
||||||
(doseq [hash hashes]
|
(doseq [hash hashes]
|
||||||
(g/complete-transaction
|
(status/complete-transaction
|
||||||
hash
|
hash
|
||||||
password
|
password
|
||||||
#(dispatch [:transaction-completed hash %])))
|
#(dispatch [:transaction-completed hash %])))
|
||||||
|
|
Loading…
Reference in New Issue