diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index ba2c89f..7fb1c11 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/misc.xml b/.idea/misc.xml
index c0f68ed..2827fab 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -25,9 +25,7 @@
-
-
-
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 35eb1dd..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c4c7f96..060a0dd 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -21,21 +21,32 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ packagingOptions {
+ exclude 'META-INF/INDEX.LIST'
+ exclude 'META-INF/DEPENDENCIES'
+ exclude 'META-INF/io.netty.versions.properties'
+ }
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
+ implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+ implementation 'org.glassfish:javax.json:1.0.4'
+ implementation 'com.google.code.gson:gson:2.8.5'
+ implementation ('org.hyperledger.fabric-sdk-java:fabric-sdk-java:1.2.1'){
+ exclude group:'org.glassfish', module:'javax.json'
+ exclude group:'log4j', module:'log4j'
+ }
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.1'
- androidTestImplementation 'com.android.support.test:rules:1.0.1'
- androidTestImplementation 'com.android.support:support-annotations:26.1.0'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test:rules:1.0.2'
+ androidTestImplementation 'com.android.support:support-annotations:28.0.0'
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
- implementation 'org.web3j:core:3.3.1-android'
implementation 'com.j256.ormlite:ormlite-core:5.1'
implementation 'com.j256.ormlite:ormlite-jdbc:5.1'
implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
diff --git a/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java b/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java
new file mode 100644
index 0000000..f215290
--- /dev/null
+++ b/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java
@@ -0,0 +1,66 @@
+package monnethic.mobile.test;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import com.example.monnthic.monnethicmobile.R;
+
+
+import org.hyperledger.fabric.sdk.NetworkConfig;
+import org.json.JSONObject;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import javax.json.Json;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+
+import io.grpc.internal.JsonParser;
+
+
+public class LearningTest {
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+
+ System.out.println(appContext.getFilesDir());
+
+ System.out.println(appContext.getPackageName());
+
+ InputStream is = appContext.getResources().openRawResource(R.raw.config);
+
+ try (JsonReader reader = Json.createReader(is)) {
+ JsonObject jsonConfig = (JsonObject) reader.read();
+ System.out.println(jsonConfig);
+ System.out.println(jsonConfig.getClass());
+ NetworkConfig config;
+ config = NetworkConfig.fromJsonObject(jsonConfig);
+ //System.out.println(config!=null);
+ }
+
+ /*
+ Writer writer = new StringWriter();
+ char[] buffer = new char[1024];
+ try {
+ Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ int n;
+ while ((n = reader.read(buffer)) != -1) {
+ writer.write(buffer, 0, n);
+ }
+ } finally {
+ is.close();
+ }
+
+ String jsonString = writer.toString();
+ JSONObject jsonObject = new JSONObject(jsonString);
+ System.out.println(jsonObject.getString("name"));
+ System.out.println(jsonObject.getJSONObject("organizations"));
+ */
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/AccessBlockchain.java b/app/src/main/java/monnethic/mobile/blockchain/AccessBlockchain.java
deleted file mode 100644
index 1f9293d..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/AccessBlockchain.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package monnethic.mobile.blockchain;
-
-import org.web3j.protocol.Web3j;
-import org.web3j.protocol.Web3jFactory;
-import org.web3j.protocol.core.methods.response.EthGetBalance;
-import org.web3j.protocol.core.methods.response.EthGetTransactionCount;
-import org.web3j.protocol.http.HttpService;
-import org.web3j.protocol.core.DefaultBlockParameterName;
-import org.web3j.utils.Convert;
-
-import java.math.BigInteger;
-
-import monnethic.mobile.transaction.Transaction;
-
-
-/**
- * Created by Guillaume on 28/05/2018.
- */
-
-public class AccessBlockchain {
- private static final String node3 = "http://5.51.59.70:1403";
- private static final String node2 = "http://93.30.148.59:1402";
- private static final String node1 = "http://93.30.148.59:1401";
- //private static String address_test = "0x5421c79d465a288c28e10aa43f9b7dff1b313c8e";
- private static String address_node3 = "0x869abc2dadd7e23c8b38f054276813a67d8131a7";
- //Web3j web3jNode2 = Web3jFactory.build(new HttpService(node2));
-
- public static void main(String [ ] args)
- {
- try{
- //USED FOR TEST
-
- /*
- Web3j web3jNode1 = Web3jFactory.build(new HttpService(node1));
- System.out.println(web3jNode1.ethCoinbase().sendAsync().get().getResult());
-
- EthGetTransactionCount transactionCount = web3jNode1.ethGetTransactionCount(address_test, DefaultBlockParameterName.LATEST).sendAsync().get();
- System.out.println(transactionCount);
- BigInteger nonce = transactionCount.getTransactionCount();
- System.out.println(nonce);
- */
- Web3j web3jNode1 = Web3jFactory.build(new HttpService(node1));
- System.out.println("Node 1 : ethAccounts : "+web3jNode1.ethAccounts().send().getAccounts());
- EthGetBalance ethGetBalance1 = web3jNode1.ethGetBalance("0x5421c79d465a288c28e10aa43f9b7dff1b313c8e", DefaultBlockParameterName.LATEST).sendAsync().get();
-
-
- Web3j web3jNode2 = Web3jFactory.build(new HttpService(node2));
- System.out.println("Noded 2 ethAccounts : "+web3jNode2.ethAccounts().send().getAccounts());
- EthGetBalance ethGetBalance2 = web3jNode2.ethGetBalance("0xef816528949bda3b87e19b86848fb28767156232", DefaultBlockParameterName.LATEST).sendAsync().get();
-
- System.out.println("Node 1 ethMining : "+web3jNode1.ethMining().send().getResult());
-
- System.out.println("Node 1 sync : "+web3jNode1.ethSyncing().send().getResult().toString());
-
-
- BigInteger wei1 = ethGetBalance1.getBalance();
- System.out.println("Node 1 balance is : "+wei1);
-
- BigInteger wei2 = ethGetBalance2.getBalance();
- System.out.println("Node 2 balance is : "+wei2);
-
- System.out.println("ethBlockNumber Node 1 : "+web3jNode1.ethBlockNumber().send().getResult());
- System.out.println("ethGetWork Node 1 : "+web3jNode1.ethGetWork().send().getResult());
-
-
- Web3j web3jNode3 = Web3jFactory.build(new HttpService(node3));
- System.out.println("Node 3 : ethAccounts : "+web3jNode3.ethAccounts().send().getAccounts());
-
- EthGetBalance ethGetBalance_n3 = web3jNode1.ethGetBalance(address_node3, DefaultBlockParameterName.LATEST).sendAsync().get();
- System.out.println("TEST node 1 wallet 3 : "+ethGetBalance_n3);
-
- //BigInteger test = getTheBalanceOfWallet(address);
- //System.out.println(test);
-
- //Web3j web3jNode1 = Web3jFactory.build(new HttpService(node1));
- //Web3j web3jNode2 = Web3jFactory.build(new HttpService(node2));
- //System.out.println("ethAccounts : "+web3jNode1.ethAccounts().send().getAccounts());
- //System.out.println("ethGasPrice : "+web3jNode1.ethGasPrice().send().getGasPrice());
- //System.out.println("ethGetWork : "+web3jNode1.ethGetWork().send().getResult());
- //System.out.println("ethBlockNumber : "+web3jNode1.ethBlockNumber().send().getResult());
- //EthGetBalance ethGetBalance = web3jNode1.ethGetBalance("0x5421c79d465a288c28e10aa43f9b7dff1b313c8e", DefaultBlockParameterName.LATEST).sendAsync().get();
- // BigInteger wei = ethGetBalance.getBalance();
- //System.out.println("wei is : "+wei);
-
- //System.out.println("*************************************************");
- //Web3j web3jNode1 = Web3jFactory.build(new HttpService(node1));
- //Web3j web3jNode2 = Web3jFactory.build(new HttpService(node2));
- //System.out.println("ethAccounts : "+web3jNode1.ethAccounts().send().getAccounts());
- //System.out.println("ethAccounts : "+web3jNode2.ethAccounts().send().getAccounts());
- //System.out.println("ethGasPrice : "+web3jNode2.ethGasPrice().send().getGasPrice());
- //System.out.println("ethGetWork : "+web3jNode2.ethGetWork().send().getResult());
- //System.out.println("ethBlockNumber : "+web3jNode2.ethBlockNumber().send().getResult());
- //EthGetBalance ethGetBalance2 = web3jNode2.ethGetBalance("0x0278467c617c13604b3d88b95c2257a3a8a7bc01", DefaultBlockParameterName.LATEST).sendAsync().get();
- //BigInteger wei2 = ethGetBalance2.getBalance();
- //System.out.println("wei is : "+wei2);
- }catch (Exception e){
- e.printStackTrace();
- }
-
- }
-
-
- //Get Balance function
- public BigInteger getTheBalanceOfWallet(String walletAddress){
- Web3j web3jNode1 = Web3jFactory.build(new HttpService(node1));
- try{
- EthGetBalance ethGetBalance = web3jNode1.ethGetBalance(walletAddress, DefaultBlockParameterName.LATEST).sendAsync().get();
- BigInteger wei = ethGetBalance.getBalance();
- return wei;
- }catch (Exception e){
- e.getMessage();
- e.printStackTrace();
- }
- return null;
- }
-
- //Send Transaction demo function
- public static boolean sendTransationTo(String addressSource, String addressDestination, BigInteger amountToSend){
- Web3j n1 = Web3jFactory.build(new HttpService(node1));
- try{
- EthGetTransactionCount transactionCount = n1.ethGetTransactionCount(addressSource, DefaultBlockParameterName.LATEST).sendAsync().get();
- String coinbase = n1.ethCoinbase().sendAsync().get().getResult();
- BigInteger nonce = transactionCount.getTransactionCount();
- BigInteger gasPrice = n1.ethGasPrice().send().getGasPrice();
- BigInteger gasLimit = gasPrice.multiply(BigInteger.valueOf(2));
-
- BigInteger amountEther = Convert.toWei(amountToSend.toString(), Convert.Unit.ETHER).toBigInteger();
- org.web3j.protocol.core.methods.request.Transaction transaction = org.web3j.protocol.core.methods.request.Transaction.createEtherTransaction(coinbase, nonce, gasPrice, gasLimit, addressDestination, amountEther);
- String txUnit = "ETHER";
-
- System.out.println("source : "+coinbase+"\nnonce : "+nonce+"\ngasPrice : "+gasPrice);
- System.out.println("gasLimit : "+gasLimit+"\ndestination : "+addressDestination+"\namount : "+amountEther);
-
- /*
- Send the transaction
- */
- //EthSendTransaction ethSendTransaction = n1.ethSendTransaction(transaction).sendAsync().get();
- //String txHash = ethSendTransaction.getTransactionHash();
- //TransactionReceipt txR = n1.ethGetTransactionReceipt(txHash).send().getResult();
- //txR.getBlockNumber();
- //insertTransaction(addressSource, addressDestination, amountToSend, txHash, txR.getBlockNumber().toString(), txUnit);
-
- return true;
-
-
- }catch (Exception e){
- e.getMessage();
- e.printStackTrace();
- }
- return false;
- }
-
- private void insertTransaction(String adS, String adD, BigInteger amTs, String txH, String blN, String txUnit){
-
- Transaction dbTrs = new Transaction();
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java b/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java
new file mode 100644
index 0000000..c6417bb
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java
@@ -0,0 +1,112 @@
+package monnethic.mobile.blockchain.client;
+
+import android.content.Context;
+
+import org.hyperledger.fabric.sdk.Enrollment;
+import org.hyperledger.fabric_ca.sdk.HFCAClient;
+import org.hyperledger.fabric_ca.sdk.RegistrationRequest;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import monnethic.mobile.blockchain.participant.UserContext;
+import monnethic.mobile.blockchain.utility.Util;
+
+public class CAClientWrapper {
+
+ private HFCAClient hfcaClient;
+ private String org;
+ private String url = "http://ca.org1.example.com:7054";
+ private String mspId = "";
+
+
+ public CAClientWrapper(String url, String org){
+ this.org=org;
+ init(url);
+ }
+
+ void init(String url){
+ try{
+ this.hfcaClient = HFCAClient.createNewInstance(url,null);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ //Method to enroll admin
+ public void enrollAdmin(Context context, String name, String secret, String org) throws Exception {
+ UserContext adminContext;
+ adminContext = Util.readUserContext(context,name,secret);
+ if(adminContext!=null){
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.WARNING, "Admin already enrolled, skip");
+ return;
+ }
+
+ Enrollment enrollment = hfcaClient.enroll(name,secret);
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "Admin enrolled");
+
+ adminContext = new UserContext();
+ adminContext.setName(name);
+ adminContext.setEnrollment(enrollment);
+ adminContext.setAffiliation(org);
+ adminContext.setMspId(mspId);
+
+ Util.writeUserContext(context,adminContext);
+ }
+
+ //Method to register and enroll user
+ public void regiserUser(Context context, String userName, String registrarAdmin) throws Exception{
+ UserContext userContext;
+ userContext = Util.readUserContext(context,org,userName);
+ if(userContext!=null){
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.WARNING, "User already registered");
+ return;
+ }
+ RegistrationRequest registrationRequest = new RegistrationRequest(userName,org);
+ UserContext registrarContext = Util.readUserContext(context,org,registrarAdmin);
+ if(registrarAdmin==null){
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.SEVERE, "Registar not enrolled");
+ throw new Exception("registrar context not found");
+ }
+
+ String enrollSecret = hfcaClient.register(registrationRequest, registrarContext);
+
+ Enrollment enrollment = hfcaClient.enroll(userName,enrollSecret);
+
+ userContext = new UserContext();
+ userContext.setMspId(mspId);
+ userContext.setAffiliation(org); //TODO GET MSPID IN ORGANIZATIONS, ORGNAME
+ userContext.setEnrollment(enrollment);
+ userContext.setName(userName);
+
+ Util.writeUserContext(context,userContext);
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "User has been successfully registered");
+ }
+
+
+ //Method to get userContext
+ public static UserContext getUserContext(Context context, String userName, String org){
+ UserContext userContext;
+ userContext = Util.readUserContext(context,org,userName);
+ if(userContext!=null){
+ return userContext;
+ }
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.SEVERE, "User context not found : "+userName+" - "+org);
+ return userContext;
+ }
+
+ //Method to enroll user.
+ public UserContext enrollUser(Context context, String userName, String enrollSecret, String org) throws Exception {
+ Enrollment enrollment = hfcaClient.enroll(userName,enrollSecret);
+
+ UserContext userContext = new UserContext();
+ userContext.setMspId(mspId);
+ userContext.setAffiliation(this.org);
+ userContext.setEnrollment(enrollment);
+ userContext.setName(userName);
+
+ Util.writeUserContext(context, userContext);
+ Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "UserName - "+userName+" enrolled");
+ return userContext;
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java b/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java
new file mode 100644
index 0000000..789e3b6
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java
@@ -0,0 +1,86 @@
+package monnethic.mobile.blockchain.network;
+
+import android.content.Context;
+
+import com.example.monnthic.monnethicmobile.R;
+
+import org.hyperledger.fabric.sdk.NetworkConfig;
+import org.json.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.logging.XMLFormatter;
+
+import javax.json.JsonObject;
+
+public class LoadConfigInfo {
+ private static final Integer lock = 0;
+ private static JSONObject jsonObject;
+
+ //Generate JSONObject from configFile
+ private LoadConfigInfo(Context context) {
+
+ InputStream is = context.getResources().openRawResource(R.raw.config);
+ Writer writer = new StringWriter();
+ char[] buffer = new char[1024];
+ try {
+ Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+ int n;
+ while ((n = reader.read(buffer)) != -1) {
+ writer.write(buffer, 0, n);
+ }
+ } catch (Exception e){
+ e.getMessage();
+ } finally {
+ try{
+ if(is!=null) {
+ is.close();
+ }
+ }catch (Exception e){
+ e.getMessage();
+ }
+ }
+
+ String jsonString = writer.toString();
+ try{
+ jsonObject = new JSONObject(jsonString);
+ }catch (Exception e){
+ e.getMessage();
+ }
+ }
+
+ private static void getInstanceFile(Context context){
+ try{
+ synchronized (lock){
+ if(jsonObject == null){
+ new LoadConfigInfo(context);
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ //TODO GET ORGANIZATION INFOS
+ public static String getOrgInfo(Context context, String org) {
+ getInstanceFile(context);
+ return "";
+ }
+
+
+ //TODO GET ORGANIZATION NAME
+ public static String getOrgName(Context context){
+ getInstanceFile(context);
+ return "";
+ }
+
+ //TODO GET MSPID IN ORG NAME
+ public static String getMspId(Context context,String orgName){
+ getInstanceFile(context);
+ return "";
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java b/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java
new file mode 100644
index 0000000..c34efb4
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java
@@ -0,0 +1,72 @@
+package monnethic.mobile.blockchain.participant;
+
+import org.hyperledger.fabric.sdk.Enrollment;
+import org.hyperledger.fabric.sdk.User;
+
+import java.io.Serializable;
+import java.util.Set;
+
+public class UserContext implements User, Serializable {
+
+ private static final long serialVersionUID = 1L;
+ protected String name;
+ protected Set roles;
+ protected String account;
+ protected String affiliation;
+ protected Enrollment enrollment;
+ protected String mspId;
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name){
+ this.name=name;
+ }
+
+ @Override
+ public Set getRoles() {
+ return roles;
+ }
+
+ public void setRoles(Set roles){
+ this.roles=roles;
+ }
+
+ @Override
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account){
+ this.account=account;
+ }
+
+ @Override
+ public String getAffiliation() {
+ return null;
+ }
+
+ public void setAffiliation(String affiliation){
+ this.affiliation=affiliation;
+ }
+
+ @Override
+ public Enrollment getEnrollment() {
+ return enrollment;
+ }
+
+ public void setEnrollment(Enrollment enrollment){
+ this.enrollment=enrollment;
+ }
+
+ @Override
+ public String getMspId() {
+ return mspId;
+ }
+
+ public void setMspId(String mspId){
+ this.mspId=mspId;
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java b/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java
new file mode 100644
index 0000000..3cbe3fa
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java
@@ -0,0 +1,98 @@
+package monnethic.mobile.blockchain.utility;
+
+import android.content.Context;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import monnethic.mobile.blockchain.participant.UserContext;
+
+public class Util {
+
+ private Context context;
+
+ public Util(Context context){
+ this.context=context;
+ }
+
+ //Method which write user info into a directory
+ public static void writeUserContext(Context context, UserContext userContext){
+ ObjectOutputStream out = null;
+ FileOutputStream file = null;
+ try{
+ String filename = userContext.getName()+".context";
+ String dirPath = context.getFilesDir()+"userInfos/"+userContext.getAffiliation();
+ String pathFile = dirPath+"/"+filename;
+
+ File dir = new File(dirPath);
+ if(!dir.exists()){
+ dir.mkdirs();
+ }
+
+ file = null;
+ file = new FileOutputStream(pathFile);
+ out = new ObjectOutputStream(file);
+
+ out.writeObject(userContext);
+ }catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ try {
+ if (out != null){
+ out.close();
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ try{
+ if(file != null){
+ file.close();
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }
+
+ //Method to read user in file
+ public static UserContext readUserContext(Context context, String affiliation, String username){
+ UserContext userContext = null;
+ FileInputStream fileInputStream = null;
+ ObjectInputStream in = null;
+
+ try{
+ String filename = username+".context";
+ String dirPath = context.getFilesDir()+"userInfos/"+affiliation;
+ String pathFile = dirPath+"/"+filename;
+
+ File file = new File(pathFile);
+
+ if(file.exists()){
+ fileInputStream = new FileInputStream(pathFile);
+ in = new ObjectInputStream(fileInputStream);
+ userContext = (UserContext) in.readObject();
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ try {
+ if(in != null){
+ in.close();
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ try {
+ if(fileInputStream!=null){
+ fileInputStream.close();
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ return userContext;
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/wallet/WalletPresenterActivity.java b/app/src/main/java/monnethic/mobile/wallet/WalletPresenterActivity.java
index 4559921..d958f7b 100644
--- a/app/src/main/java/monnethic/mobile/wallet/WalletPresenterActivity.java
+++ b/app/src/main/java/monnethic/mobile/wallet/WalletPresenterActivity.java
@@ -10,9 +10,7 @@ import android.widget.TextView;
import com.example.monnthic.monnethicmobile.R;
-import org.web3j.utils.Convert;
-import monnethic.mobile.blockchain.AccessBlockchain;
import monnethic.mobile.transaction.TransactionActivity;
public class WalletPresenterActivity extends AppCompatActivity {
@@ -34,9 +32,9 @@ public class WalletPresenterActivity extends AppCompatActivity {
addressPublic.setText(address);
if(initiateBalance(address)==null){
- balance.setText("Error");
+ balance.setText("IN DEV");
}else{
- balance.setText(Convert.fromWei(initiateBalance(address).toString(), Convert.Unit.ETHER).toString());
+ balance.setText("IN DEV");
}
buttonSendTransaction.setOnClickListener(new View.OnClickListener() {
@@ -61,9 +59,6 @@ public class WalletPresenterActivity extends AppCompatActivity {
}
public String initiateBalance(String address){
- AccessBlockchain ab = new AccessBlockchain();
- System.out.println("addresse "+ address);
- String balanceIs = ab.getTheBalanceOfWallet(address).toString();
- return balanceIs;
+ return "";
}
}
diff --git a/app/src/main/res/raw/config.json b/app/src/main/res/raw/config.json
new file mode 100644
index 0000000..0ab8802
--- /dev/null
+++ b/app/src/main/res/raw/config.json
@@ -0,0 +1,61 @@
+{
+ "name": "hlfv1",
+ "x-type": "hlfv1",
+ "x-commitTimeout": 300,
+ "version": "1.0.0",
+ "client": {
+ "organization": "Org1",
+ "connection": {
+ "timeout": {
+ "peer": {
+ "endorser": "300",
+ "eventHub": "300",
+ "eventReg": "300"
+ },
+ "orderer": "300"
+ }
+ }
+ },
+ "channels": {
+ "composerchannel": {
+ "orderers": [
+ "orderer.example.com"
+ ],
+ "peers": {
+ "peer0.org1.example.com": {
+ "endorsingPeer": true,
+ "chaincodeQuery": true,
+ "ledgerQuery": true,
+ "eventSource": true
+ }
+ }
+ }
+ },
+ "organizations": {
+ "Org1": {
+ "mspid": "Org1MSP",
+ "peers": [
+ "peer0.org1.example.com"
+ ],
+ "certificateAuthorities": [
+ "ca.org1.example.com"
+ ]
+ }
+ },
+ "orderers": {
+ "orderer.example.com": {
+ "url": "grpc://orderer.example.com:7050"
+ }
+ },
+ "peers": {
+ "peer0.org1.example.com": {
+ "url": "grpc://peer0.org1.example.com:7051"
+ }
+ },
+ "certificateAuthorities": {
+ "ca.org1.example.com": {
+ "url": "http://ca.org1.example.com:7054",
+ "caName": "ca.org1.example.com"
+ }
+ }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 077cb2f..8d3ef8e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.4'
+ classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 1149d34..c48191b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Sep 24 08:37:23 CEST 2018
+#Sun Oct 14 15:18:06 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip