From 7c867a27962b7e4fae936434bde4a05600913a22 Mon Sep 17 00:00:00 2001 From: yohanscar Date: Sat, 25 Aug 2018 17:21:18 -0300 Subject: [PATCH 1/2] sta --- .../java/io/blk/erc20/ContractService.java | 48 ++++++++++++------- src/main/java/io/blk/erc20/Controller.java | 4 +- 2 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/main/java/io/blk/erc20/ContractService.java b/src/main/java/io/blk/erc20/ContractService.java index 67f2a67..d79851f 100644 --- a/src/main/java/io/blk/erc20/ContractService.java +++ b/src/main/java/io/blk/erc20/ContractService.java @@ -58,7 +58,7 @@ public String deploy( } public String name(String contractAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return humanStandardToken.name().send(); } catch (InterruptedException | ExecutionException e) { @@ -68,7 +68,7 @@ public String name(String contractAddress) throws Exception { public TransactionResponse approve( List privateFor, String contractAddress, String spender, BigInteger value) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress, privateFor); + HumanStandardToken humanStandardToken = load(contractAddress, privateFor,"",false); try { TransactionReceipt transactionReceipt = humanStandardToken .approve(spender, value).send(); @@ -79,7 +79,7 @@ public TransactionResponse approve( } public long totalSupply(String contractAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return extractLongValue(humanStandardToken.totalSupply().send()); } catch (InterruptedException | ExecutionException e) { @@ -89,7 +89,7 @@ public long totalSupply(String contractAddress) throws Exception { public TransactionResponse transferFrom( List privateFor, String contractAddress, String from, String to, BigInteger value) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress, privateFor); + HumanStandardToken humanStandardToken = load(contractAddress, privateFor,"",false); try { TransactionReceipt transactionReceipt = humanStandardToken .transferFrom(from, to, value).send(); @@ -100,7 +100,7 @@ public TransactionResponse transferFrom( } public long decimals(String contractAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return extractLongValue(humanStandardToken.decimals().send()); } catch (InterruptedException | ExecutionException e) { @@ -109,7 +109,7 @@ public long decimals(String contractAddress) throws Exception { } public String version(String contractAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return humanStandardToken.version().send(); } catch (InterruptedException | ExecutionException e) { @@ -118,7 +118,7 @@ public String version(String contractAddress) throws Exception { } public long balanceOf(String contractAddress, String ownerAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return extractLongValue(humanStandardToken.balanceOf(ownerAddress).send()); } catch (InterruptedException | ExecutionException e) { @@ -127,7 +127,7 @@ public long balanceOf(String contractAddress, String ownerAddress) throws Except } public String symbol(String contractAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return humanStandardToken.symbol().send(); } catch (InterruptedException | ExecutionException e) { @@ -136,8 +136,8 @@ public String symbol(String contractAddress) throws Exception { } public TransactionResponse transfer( - List privateFor, String contractAddress, String to, BigInteger value) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress, privateFor); + List privateFor, String contractAddress, String to, BigInteger value, String fromAddress) throws Exception { + HumanStandardToken humanStandardToken = load(contractAddress, privateFor,fromAddress,true); try { TransactionReceipt transactionReceipt = humanStandardToken .transfer(to, value).send(); @@ -150,7 +150,7 @@ public TransactionResponse transfer( public TransactionResponse approveAndCall( List privateFor, String contractAddress, String spender, BigInteger value, String extraData) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress, privateFor); + HumanStandardToken humanStandardToken = load(contractAddress, privateFor,"",false); try { TransactionReceipt transactionReceipt = humanStandardToken .approveAndCall( @@ -164,7 +164,7 @@ public TransactionResponse approveAndCall( } public long allowance(String contractAddress, String ownerAddress, String spenderAddress) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress); + HumanStandardToken humanStandardToken = load(contractAddress,"",false); try { return extractLongValue(humanStandardToken.allowance( ownerAddress, spenderAddress) @@ -174,16 +174,28 @@ public long allowance(String contractAddress, String ownerAddress, String spende } } - private HumanStandardToken load(String contractAddress, List privateFor) { - TransactionManager transactionManager = new ClientTransactionManager( - quorum, nodeConfiguration.getFromAddress(), privateFor); + private HumanStandardToken load(String contractAddress, List privateFor, String fromAddress, boolean withFromAddress) { + TransactionManager transactionManager = null; + if(withFromAddress){ + transactionManager = new ClientTransactionManager( + quorum, fromAddress, privateFor); + }else{ + transactionManager = new ClientTransactionManager( + quorum, nodeConfiguration.getFromAddress(), privateFor); + } return HumanStandardToken.load( contractAddress, quorum, transactionManager, GAS_PRICE, GAS_LIMIT); } - private HumanStandardToken load(String contractAddress) { - TransactionManager transactionManager = new ClientTransactionManager( - quorum, nodeConfiguration.getFromAddress(), Collections.emptyList()); + private HumanStandardToken load(String contractAddress,String fromAddress, boolean withFromAddress ) { + TransactionManager transactionManager = null; + if(withFromAddress){ + transactionManager = new ClientTransactionManager( + quorum, fromAddress, Collections.emptyList()); + }else{ + transactionManager = new ClientTransactionManager( + quorum, nodeConfiguration.getFromAddress(), Collections.emptyList()); + } return HumanStandardToken.load( contractAddress, quorum, transactionManager, GAS_PRICE, GAS_LIMIT); } diff --git a/src/main/java/io/blk/erc20/Controller.java b/src/main/java/io/blk/erc20/Controller.java index 1ff0037..d9c7e0c 100644 --- a/src/main/java/io/blk/erc20/Controller.java +++ b/src/main/java/io/blk/erc20/Controller.java @@ -158,7 +158,8 @@ TransactionResponse transfer( extractPrivateFor(request), contractAddress, transferRequest.getTo(), - transferRequest.getValue()); + transferRequest.getValue(), + transferRequest.getFrom()); } @ApiOperation( @@ -227,6 +228,7 @@ static class TransferFromRequest { static class TransferRequest { private final String to; private final BigInteger value; + private final String from; } @Data From b8fabe35c73d1bae1f2032f1c15d653abccf53ee Mon Sep 17 00:00:00 2001 From: yohanscar Date: Mon, 27 Aug 2018 19:36:19 -0300 Subject: [PATCH 2/2] new test --- src/main/java/io/blk/erc20/ContractService.java | 4 ++-- src/main/java/io/blk/erc20/Controller.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/blk/erc20/ContractService.java b/src/main/java/io/blk/erc20/ContractService.java index d79851f..dfc7865 100644 --- a/src/main/java/io/blk/erc20/ContractService.java +++ b/src/main/java/io/blk/erc20/ContractService.java @@ -67,8 +67,8 @@ public String name(String contractAddress) throws Exception { } public TransactionResponse approve( - List privateFor, String contractAddress, String spender, BigInteger value) throws Exception { - HumanStandardToken humanStandardToken = load(contractAddress, privateFor,"",false); + List privateFor, String contractAddress, String spender, BigInteger value, String ownerAddress) throws Exception { + HumanStandardToken humanStandardToken = load(contractAddress, privateFor,ownerAddress,true); try { TransactionReceipt transactionReceipt = humanStandardToken .approve(spender, value).send(); diff --git a/src/main/java/io/blk/erc20/Controller.java b/src/main/java/io/blk/erc20/Controller.java index d9c7e0c..be70368 100644 --- a/src/main/java/io/blk/erc20/Controller.java +++ b/src/main/java/io/blk/erc20/Controller.java @@ -84,7 +84,8 @@ TransactionResponse approve( extractPrivateFor(request), contractAddress, approveRequest.getSpender(), - approveRequest.getValue()); + approveRequest.getValue(), + approveRequest.getOwner()); } @ApiOperation("Get total supply of tokens") @@ -215,6 +216,7 @@ static class ContractSpecification { static class ApproveRequest { private final String spender; private final BigInteger value; + private final String owner; } @Data