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