Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdddec66

Browse files
committed
TxRefactoring
JSON converter iter -> gsonOTher model refactoring and account provider wip
1 parent2556c0c commitdddec66

23 files changed

+487
-246
lines changed

‎pom.xml‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1414
<maven.compiler.source>1.8</maven.compiler.source>
1515
<maven.compiler.target>1.8</maven.compiler.target>
16+
<apache.http>4.5.6</apache.http>
1617
</properties>
1718

1819
<dependencies>
@@ -26,7 +27,13 @@
2627
<dependency>
2728
<groupId>org.apache.httpcomponents</groupId>
2829
<artifactId>httpclient</artifactId>
29-
<version>4.5.6</version>
30+
<version>${apache.http}</version>
31+
</dependency>
32+
33+
<dependency>
34+
<groupId>com.google.code.gson</groupId>
35+
<artifactId>gson</artifactId>
36+
<version>2.8.5</version>
3037
</dependency>
3138

3239
<dependency>

‎src/main/java/io/api/App.java‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
packageio.api;
22

33
importio.api.core.EtherScanApi;
4+
importio.api.model.Tx;
5+
6+
importjava.util.List;
47

58
/**
69
*
710
*/
811
publicclassApp {
912
publicstaticvoidmain(String[]args) {
1013
EtherScanApiapi =newEtherScanApi(args[0]);
11-
Stringabi =api.contract().contractAbi("0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413");
12-
System.out.println(abi);
14+
List<Tx>txs =api.account().txs("0x8d4426f94e42f721C7116E81d6688cd935cB3b4F");
15+
System.out.println("Test");
1316
}
1417
}

‎src/main/java/io/api/core/IAccountProvider.java‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
importio.api.model.Balance;
44
importio.api.model.Block;
5-
importio.api.model.Transaction;
5+
importio.api.model.Tx;
66

77
importjava.util.List;
88

@@ -25,22 +25,24 @@ public interface IAccountProvider {
2525
List<Balance>balances(List<String>addresses);
2626

2727
/** All txs */
28-
List<Transaction>txs(Stringaddress);
28+
List<Tx>txs(Stringaddress);
2929
/** Only last 10000 txs */
30-
List<Transaction>txs(Stringaddress,intstartBlock);
31-
List<Transaction>txs(Stringaddress,intstartBlock,intendBlock);
30+
List<Tx>txs(Stringaddress,longstartBlock);
31+
List<Tx>txs(Stringaddress,longstartBlock,longendBlock);
3232

3333
/** All internal txs */
34-
List<Transaction>txsInternal(Stringaddress);
34+
List<Tx>txsInternal(Stringaddress);
3535
/** Only last 10000 internal txs */
36-
List<Transaction>txsInternal(Stringaddress,intstartBlock);
37-
List<Transaction>txsInternal(Stringaddress,intstartBlock,intendBlock);
36+
List<Tx>txsInternal(Stringaddress,longstartBlock);
37+
List<Tx>txsInternal(Stringaddress,longstartBlock,longendBlock);
38+
/** Only last 10000 internal txs by txhash */
39+
List<Tx>txsInternalByHash(Stringtxhash);
3840

3941
/** All token txs */
40-
List<Transaction>txsToken(Stringaddress);
42+
List<Tx>txsToken(Stringaddress);
4143
/** Only last 10000 token txs */
42-
List<Transaction>txsToken(Stringaddress,intstartBlock);
43-
List<Transaction>txsToken(Stringaddress,intstartBlock,intendBlock);
44+
List<Tx>txsToken(Stringaddress,longstartBlock);
45+
List<Tx>txsToken(Stringaddress,longstartBlock,longendBlock);
4446

4547
/** All blocks mined by address */
4648
List<Block>minedBlocks(Stringaddress);

‎src/main/java/io/api/core/impl/AccountProvider.java‎

Lines changed: 73 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,19 @@
22

33
importcom.sun.istack.internal.NotNull;
44
importio.api.core.IAccountProvider;
5+
importio.api.error.EtherScanException;
56
importio.api.model.Balance;
67
importio.api.model.Block;
7-
importio.api.model.Transaction;
8+
importio.api.model.Tx;
9+
importio.api.model.temporary.BalanceResponseTO;
10+
importio.api.model.temporary.StringResponseTO;
11+
importio.api.model.temporary.TxResponseTO;
12+
importio.api.util.BasicUtils;
813

14+
importjava.util.Collections;
915
importjava.util.List;
1016
importjava.util.Map;
17+
importjava.util.stream.Collectors;
1118

1219
/**
1320
* ! NO DESCRIPTION !
@@ -20,12 +27,21 @@ public class AccountProvider extends BasicProvider implements IAccountProvider {
2027
privatestaticfinalintMAX_END_BLOCK =999999999;
2128
privatestaticfinalintMIN_START_BLOCK =0;
2229

30+
privatestaticfinalStringBALANCE_ACTION =ACTION_PARAM +"balance";
31+
privatestaticfinalStringBALANCE_MULTI_ACTION =ACTION_PARAM +"balancemulti";
32+
privatestaticfinalStringTX_ACTION =ACTION_PARAM +"txlist";
33+
privatestaticfinalStringTX_INTERNAL_ACTION =ACTION_PARAM +"txlistinternal";
34+
privatestaticfinalStringTX_TOKEN_ACTION =ACTION_PARAM +"tokentx";
35+
privatestaticfinalStringMINED_ACTION =ACTION_PARAM +"getminedblocks";
36+
2337
privatestaticfinalStringBLOCK_TYPE_PARAM ="&blocktype=blocks";
24-
privatestaticfinalStringSTART_BLOCK_PARAM ="&endblock=";
25-
privatestaticfinalStringEND_BLOCK_PARAM ="&startblock=";
38+
privatestaticfinalStringTAG_LATEST_PARAM ="&tag=latest";
39+
privatestaticfinalStringSTART_BLOCK_PARAM ="&startblock=";
40+
privatestaticfinalStringEND_BLOCK_PARAM ="&endblock=";
2641
privatestaticfinalStringSORT_DESC_PARAM ="&sort=desc";
2742
privatestaticfinalStringSORT_ASC_PARAM ="&sort=asc";
2843
privatestaticfinalStringADDRESS_PARAM ="&address=";
44+
privatestaticfinalStringTXHASH_PARAM ="&txhash=";
2945
privatestaticfinalStringOFFSET_PARAM ="&offset=";
3046
privatestaticfinalStringPAGE_PARAM ="&page=";
3147

@@ -37,66 +53,107 @@ public AccountProvider(final String baseUrl,
3753
@NotNull
3854
@Override
3955
publicBalancebalance(finalStringaddress) {
40-
returnnull;
56+
BasicUtils.validateAddress(address);
57+
58+
finalStringurlParams =BALANCE_ACTION +TAG_LATEST_PARAM +ADDRESS_PARAM +address;
59+
finalStringresponse =getRequest(urlParams);
60+
finalStringResponseTOconverted =convert(response,StringResponseTO.class);
61+
if (converted.getStatus() !=1)
62+
thrownewEtherScanException(converted.getMessage() +" with status " +converted.getStatus());
63+
64+
returnnewBalance(address,Long.valueOf(converted.getResult()));
4165
}
4266

4367
@NotNull
4468
@Override
4569
publicList<Balance>balances(finalList<String>addresses) {
46-
returnnull;
70+
BasicUtils.validateAddresses(addresses);
71+
if (addresses.isEmpty())
72+
returnCollections.emptyList();
73+
74+
finalStringurlParams =BALANCE_MULTI_ACTION +TAG_LATEST_PARAM +ADDRESS_PARAM +toAddressParam(addresses);
75+
finalStringresponse =getRequest(urlParams);
76+
finalBalanceResponseTOconverted =convert(response,BalanceResponseTO.class);
77+
if (converted.getStatus() !=1)
78+
thrownewEtherScanException(converted.getMessage() +" with status " +converted.getStatus());
79+
80+
returnconverted.getBalances().stream().map(Balance::of).collect(Collectors.toList());
81+
}
82+
83+
privateStringtoAddressParam(finalList<String>addresses) {
84+
returnaddresses.stream().collect(Collectors.joining(","));
4785
}
4886

4987
@NotNull
5088
@Override
51-
publicList<Transaction>txs(finalStringaddress) {
52-
returnnull;
89+
publicList<Tx>txs(finalStringaddress) {
90+
//TODO all txs implementations with pagination
91+
92+
returntxs(address,MIN_START_BLOCK,MAX_END_BLOCK);
5393
}
5494

5595
@NotNull
5696
@Override
57-
publicList<Transaction>txs(finalStringaddress,finalintstartBlock) {
97+
publicList<Tx>txs(finalStringaddress,finallongstartBlock) {
5898
returntxs(address,startBlock,MAX_END_BLOCK);
5999
}
60100

61101
@NotNull
62102
@Override
63-
publicList<Transaction>txs(finalStringaddress,finalintstartBlock,finalintendBlock) {
64-
returnnull;
103+
publicList<Tx>txs(finalStringaddress,finallongstartBlock,finallongendBlock) {
104+
BasicUtils.validateAddress(address);
105+
106+
finalStringblockParam =START_BLOCK_PARAM +startBlock +END_BLOCK_PARAM +endBlock;
107+
finalStringurlParams =TX_ACTION +ADDRESS_PARAM +address +blockParam +SORT_ASC_PARAM;
108+
finalStringresponse =getRequest(urlParams);
109+
finalTxResponseTOconverted =convert(response,TxResponseTO.class);
110+
if (converted.getStatus() !=1)
111+
thrownewEtherScanException(converted.getMessage() +" with status " +converted.getStatus());
112+
113+
return (converted.getResult() ==null)
114+
?Collections.emptyList()
115+
:converted.getResult();
65116
}
66117

67118
@NotNull
68119
@Override
69-
publicList<Transaction>txsInternal(finalStringaddress) {
120+
publicList<Tx>txsInternal(finalStringaddress) {
70121
returnnull;
71122
}
72123

73124
@NotNull
74125
@Override
75-
publicList<Transaction>txsInternal(finalStringaddress,finalintstartBlock) {
126+
publicList<Tx>txsInternal(finalStringaddress,finallongstartBlock) {
76127
returntxsInternal(address,startBlock,MAX_END_BLOCK);
77128
}
78129

79130
@NotNull
80131
@Override
81-
publicList<Transaction>txsInternal(finalStringaddress,finalintstartBlock,finalintendBlock) {
132+
publicList<Tx>txsInternal(finalStringaddress,finallongstartBlock,finallongendBlock) {
133+
returnnull;
134+
}
135+
136+
@NotNull
137+
@Override
138+
publicList<Tx>txsInternalByHash(Stringtxhash) {
82139
returnnull;
83140
}
84141

85142
@NotNull
86143
@Override
87-
publicList<Transaction>txsToken(finalStringaddress) {
144+
publicList<Tx>txsToken(finalStringaddress) {
88145
returnnull;
89146
}
90147

91148
@NotNull
92149
@Override
93-
publicList<Transaction>txsToken(finalStringaddress,finalintstartBlock) {
150+
publicList<Tx>txsToken(finalStringaddress,finallongstartBlock) {
94151
returntxsToken(address,startBlock,MAX_END_BLOCK);
95152
}
96153

97154
@NotNull
98155
@Override
99-
publicList<Transaction>txsToken(finalStringaddress,finalintstartBlock,finalintendBlock) {
156+
publicList<Tx>txsToken(finalStringaddress,finallongstartBlock,finallongendBlock) {
100157
returnnull;
101158
}
102159

‎src/main/java/io/api/core/impl/BasicProvider.java‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
packageio.api.core.impl;
22

3-
importcom.jsoniter.JsonIterator;
3+
importcom.google.gson.Gson;
44
importio.api.error.ConnectionException;
55
importio.api.error.ParseException;
66
importio.api.executor.HttpExecutor;
@@ -16,7 +16,9 @@
1616
*/
1717
abstractclassBasicProvider {
1818

19-
privatestaticfinalStringmoduleParam ="&module=";
19+
staticfinalStringACTION_PARAM ="&module=";
20+
21+
privatestaticfinalStringMODULE_PARAM ="&module=";
2022
privatefinalStringmodule;
2123

2224
privatefinalStringbaseUrl;
@@ -33,12 +35,12 @@ abstract class BasicProvider {
3335
}
3436

3537
privateStringgetModuleParam() {
36-
returnmoduleParam +module;
38+
returnMODULE_PARAM +module;
3739
}
3840

3941
<T>Tconvert(Stringjson,Class<T>tClass) {
4042
try {
41-
returnJsonIterator.deserialize(json,tClass);
43+
returnnewGson().fromJson(json,tClass);
4244
}catch (Exceptione) {
4345
thrownewParseException(e.getMessage(),e.getCause());
4446
}

‎src/main/java/io/api/core/impl/ContractProvider.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
*/
1515
publicclassContractProviderextendsBasicProviderimplementsIContractProvider {
1616

17-
privatestaticfinalStringABI_PARAM ="&action=getabi";
17+
privatestaticfinalStringACTION_ABI_PARAM ="&action=getabi";
1818
privatestaticfinalStringADDRESS_PARAM ="&address=";
1919

2020
publicContractProvider(finalStringbaseUrl,
@@ -26,8 +26,8 @@ public ContractProvider(final String baseUrl,
2626
publicStringcontractAbi(Stringaddress) {
2727
BasicUtils.validateAddress(address);
2828

29-
finalStringresponse =getRequest(ABI_PARAM +ADDRESS_PARAM +address);
30-
finalStringResponseTOconvert =convert(response,StringResponseTO.class);
31-
returnconvert.getMessage();
29+
finalStringresponse =getRequest(ACTION_ABI_PARAM +ADDRESS_PARAM +address);
30+
finalStringResponseTOconverted =convert(response,StringResponseTO.class);
31+
returnconverted.getResult();
3232
}
3333
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
packageio.api.error;
2+
3+
/**
4+
* ! NO DESCRIPTION !
5+
*
6+
* @author GoodforGod
7+
* @since 29.10.2018
8+
*/
9+
publicclassEtherScanExceptionextendsRuntimeException {
10+
11+
publicEtherScanException(Stringmessage) {
12+
super(message);
13+
}
14+
}

‎src/main/java/io/api/model/Balance.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
packageio.api.model;
22

3+
importio.api.model.temporary.BalanceTO;
4+
35
/**
46
* ! NO DESCRIPTION !
57
*
@@ -18,6 +20,10 @@ public Balance(final String address,
1820
this.balance =balance;
1921
}
2022

23+
publicstaticBalanceof(BalanceTObalance) {
24+
returnnewBalance(balance.getAccount(),Long.valueOf(balance.getBalance()));
25+
}
26+
2127
//<editor-fold desc="Getters">
2228
publicStringgetAddress() {
2329
returnaddress;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp