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

Commit2556c0c

Browse files
committed
Exceptions introduced
Minor refactoringWork in Progress
1 parent68bbb4c commit2556c0c

14 files changed

+227
-40
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77
*/
88
publicclassApp {
99
publicstaticvoidmain(String[]args) {
10-
System.out.println("Hello World!");
1110
EtherScanApiapi =newEtherScanApi(args[0]);
1211
Stringabi =api.contract().contractAbi("0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413");
13-
inti =abi.length();
12+
System.out.println(abi);
1413
}
1514
}

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
importio.api.model.Transaction;
66

77
importjava.util.List;
8-
importjava.util.Optional;
98

109
/**
1110
* EtherScan - API Descriptions
@@ -17,33 +16,30 @@
1716
publicinterfaceIAccountProvider {
1817

1918
/** Address ETH balance */
20-
Optional<Balance>balance(Stringaddress);
19+
Balancebalance(Stringaddress);
2120

2221
/**
2322
* Maximum 20 address for batch request
24-
* If address > 20, then there will be more than 1 request
23+
* If address > 20, then there will be more than 1 request performed
2524
*/
2625
List<Balance>balances(List<String>addresses);
2726

2827
/** All txs */
2928
List<Transaction>txs(Stringaddress);
3029
/** Only last 10000 txs */
3130
List<Transaction>txs(Stringaddress,intstartBlock);
32-
/** Only last 10000 txs */
3331
List<Transaction>txs(Stringaddress,intstartBlock,intendBlock);
3432

3533
/** All internal txs */
3634
List<Transaction>txsInternal(Stringaddress);
3735
/** Only last 10000 internal txs */
3836
List<Transaction>txsInternal(Stringaddress,intstartBlock);
39-
/** Only last 10000 internal txs */
4037
List<Transaction>txsInternal(Stringaddress,intstartBlock,intendBlock);
4138

4239
/** All token txs */
4340
List<Transaction>txsToken(Stringaddress);
4441
/** Only last 10000 token txs */
4542
List<Transaction>txsToken(Stringaddress,intstartBlock);
46-
/** Only last 10000 token txs */
4743
List<Transaction>txsToken(Stringaddress,intstartBlock,intendBlock);
4844

4945
/** All blocks mined by address */
Lines changed: 91 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
packageio.api.core.impl;
22

3+
importcom.sun.istack.internal.NotNull;
4+
importio.api.core.IAccountProvider;
5+
importio.api.model.Balance;
6+
importio.api.model.Block;
7+
importio.api.model.Transaction;
8+
9+
importjava.util.List;
310
importjava.util.Map;
411

512
/**
@@ -8,19 +15,94 @@
815
* @author GoodforGod
916
* @since 28.10.2018
1017
*/
11-
publicclassAccountProviderextendsBasicProvider {
18+
publicclassAccountProviderextendsBasicProviderimplementsIAccountProvider {
19+
20+
privatestaticfinalintMAX_END_BLOCK =999999999;
21+
privatestaticfinalintMIN_START_BLOCK =0;
1222

13-
privatestaticfinalStringstartBlockParam ="&endblock=";
14-
privatestaticfinalStringendBlockParam ="&startblock=";
15-
privatestaticfinalStringoffsetParam ="&offset=";
16-
privatestaticfinalStringpageParam ="&page=";
17-
privatestaticfinalStringsortAscParam ="&sort=asc";
18-
privatestaticfinalStringsortDescParam ="&sort=desc";
19-
privatestaticfinalStringblockTypeParam ="&blocktype=blocks";
20-
privatestaticfinalStringaddressParam ="&address=";
23+
privatestaticfinalStringBLOCK_TYPE_PARAM ="&blocktype=blocks";
24+
privatestaticfinalStringSTART_BLOCK_PARAM ="&endblock=";
25+
privatestaticfinalStringEND_BLOCK_PARAM ="&startblock=";
26+
privatestaticfinalStringSORT_DESC_PARAM ="&sort=desc";
27+
privatestaticfinalStringSORT_ASC_PARAM ="&sort=asc";
28+
privatestaticfinalStringADDRESS_PARAM ="&address=";
29+
privatestaticfinalStringOFFSET_PARAM ="&offset=";
30+
privatestaticfinalStringPAGE_PARAM ="&page=";
2131

2232
publicAccountProvider(finalStringbaseUrl,
2333
finalMap<String,String>header) {
2434
super("account",baseUrl,header);
2535
}
36+
37+
@NotNull
38+
@Override
39+
publicBalancebalance(finalStringaddress) {
40+
returnnull;
41+
}
42+
43+
@NotNull
44+
@Override
45+
publicList<Balance>balances(finalList<String>addresses) {
46+
returnnull;
47+
}
48+
49+
@NotNull
50+
@Override
51+
publicList<Transaction>txs(finalStringaddress) {
52+
returnnull;
53+
}
54+
55+
@NotNull
56+
@Override
57+
publicList<Transaction>txs(finalStringaddress,finalintstartBlock) {
58+
returntxs(address,startBlock,MAX_END_BLOCK);
59+
}
60+
61+
@NotNull
62+
@Override
63+
publicList<Transaction>txs(finalStringaddress,finalintstartBlock,finalintendBlock) {
64+
returnnull;
65+
}
66+
67+
@NotNull
68+
@Override
69+
publicList<Transaction>txsInternal(finalStringaddress) {
70+
returnnull;
71+
}
72+
73+
@NotNull
74+
@Override
75+
publicList<Transaction>txsInternal(finalStringaddress,finalintstartBlock) {
76+
returntxsInternal(address,startBlock,MAX_END_BLOCK);
77+
}
78+
79+
@NotNull
80+
@Override
81+
publicList<Transaction>txsInternal(finalStringaddress,finalintstartBlock,finalintendBlock) {
82+
returnnull;
83+
}
84+
85+
@NotNull
86+
@Override
87+
publicList<Transaction>txsToken(finalStringaddress) {
88+
returnnull;
89+
}
90+
91+
@NotNull
92+
@Override
93+
publicList<Transaction>txsToken(finalStringaddress,finalintstartBlock) {
94+
returntxsToken(address,startBlock,MAX_END_BLOCK);
95+
}
96+
97+
@NotNull
98+
@Override
99+
publicList<Transaction>txsToken(finalStringaddress,finalintstartBlock,finalintendBlock) {
100+
returnnull;
101+
}
102+
103+
@NotNull
104+
@Override
105+
publicList<Block>minedBlocks(finalStringaddress) {
106+
returnnull;
107+
}
26108
}

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

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

3-
importio.api.core.executor.HttpExecutor;
3+
importcom.jsoniter.JsonIterator;
4+
importio.api.error.ConnectionException;
5+
importio.api.error.ParseException;
6+
importio.api.executor.HttpExecutor;
47

58
importjava.io.IOException;
69
importjava.util.Map;
@@ -33,16 +36,20 @@ private String getModuleParam() {
3336
returnmoduleParam +module;
3437
}
3538

36-
<T>Tdeserialize(Stringjson,Class<T>tClass) {
37-
returndeserialize(json,tClass);
39+
<T>Tconvert(Stringjson,Class<T>tClass) {
40+
try {
41+
returnJsonIterator.deserialize(json,tClass);
42+
}catch (Exceptione) {
43+
thrownewParseException(e.getMessage(),e.getCause());
44+
}
3845
}
3946

4047
StringgetRequest(finalStringurlParameters) {
4148
try {
4249
finalStringfullUrl =baseUrl +getModuleParam() +urlParameters;
4350
returnexecutor.get(fullUrl,headers);
4451
}catch (IOExceptione) {
45-
thrownewRuntimeException(e.getLocalizedMessage());
52+
thrownewConnectionException(e.getLocalizedMessage(),e.getCause());
4653
}
4754
}
4855
}

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

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

33
importio.api.core.IContractProvider;
4+
importio.api.model.temporary.StringResponseTO;
45
importio.api.util.BasicUtils;
56

67
importjava.util.Map;
@@ -13,8 +14,8 @@
1314
*/
1415
publicclassContractProviderextendsBasicProviderimplementsIContractProvider {
1516

16-
privatestaticfinalStringabiParam ="&action=getabi";
17-
privatestaticfinalStringaddressParam ="&address=";
17+
privatestaticfinalStringABI_PARAM ="&action=getabi";
18+
privatestaticfinalStringADDRESS_PARAM ="&address=";
1819

1920
publicContractProvider(finalStringbaseUrl,
2021
finalMap<String,String>headers) {
@@ -23,9 +24,10 @@ public ContractProvider(final String baseUrl,
2324

2425
@Override
2526
publicStringcontractAbi(Stringaddress) {
26-
if(!BasicUtils.isAddress(address))
27-
thrownewRuntimeException("Not address");
27+
BasicUtils.validateAddress(address);
2828

29-
returngetRequest(addressParam +address +abiParam);
29+
finalStringresponse =getRequest(ABI_PARAM +ADDRESS_PARAM +address);
30+
finalStringResponseTOconvert =convert(response,StringResponseTO.class);
31+
returnconvert.getMessage();
3032
}
3133
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
packageio.api.error;
2+
3+
/**
4+
* ! NO DESCRIPTION !
5+
*
6+
* @author GoodforGod
7+
* @since 29.10.2018
8+
*/
9+
publicclassConnectionExceptionextendsRuntimeException {
10+
11+
publicConnectionException(Stringmessage) {
12+
super(message);
13+
}
14+
15+
publicConnectionException(Stringmessage,Throwablecause) {
16+
super(message,cause);
17+
}
18+
}
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+
publicclassInvalidAddressExceptionextendsRuntimeException {
10+
11+
publicInvalidAddressException(Stringmessage) {
12+
super(message);
13+
}
14+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
packageio.api.error;
2+
3+
/**
4+
* ! NO DESCRIPTION !
5+
*
6+
* @author GoodforGod
7+
* @since 29.10.2018
8+
*/
9+
publicclassParseExceptionextendsRuntimeException {
10+
11+
publicParseException(Stringmessage) {
12+
super(message);
13+
}
14+
15+
publicParseException(Stringmessage,Throwablecause) {
16+
super(message,cause);
17+
}
18+
}

‎src/main/java/io/api/core/executor/HttpExecutor.java‎renamed to ‎src/main/java/io/api/executor/HttpExecutor.java‎

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
packageio.api.core.executor;
1+
packageio.api.executor;
22

33
importjava.io.BufferedReader;
44
importjava.io.IOException;
@@ -18,30 +18,41 @@
1818
*/
1919
publicclassHttpExecutor {
2020

21+
privatefinalinttimeout;
22+
23+
publicHttpExecutor() {
24+
this(30000);
25+
}
26+
27+
publicHttpExecutor(inttimeout) {
28+
this.timeout =timeout;
29+
}
30+
2131
publicStringget(finalStringurlAsString,
2232
finalMap<String,String>headers)throwsIOException {
2333

2434
finalURLurl =newURL(urlAsString);
2535
finalHttpURLConnectionconnection = (HttpURLConnection)url.openConnection();
2636
connection.setRequestMethod("GET");
37+
connection.setConnectTimeout(timeout);
2738
headers.forEach(connection::setRequestProperty);
28-
connection.setConnectTimeout(30000);
2939

3040
finalintstatus =connection.getResponseCode();
3141
if (status ==HTTP_MOVED_TEMP ||status ==HTTP_MOVED_PERM) {
3242
finalStringlocation =connection.getHeaderField("Location");
3343
returnget(location,headers);
3444
}
3545

36-
finalBufferedReaderin =newBufferedReader(newInputStreamReader(connection.getInputStream()));
37-
StringinputLine;
3846
finalStringBuildercontent =newStringBuilder();
39-
while ((inputLine =in.readLine()) !=null)
40-
content.append(inputLine);
47+
try (BufferedReaderin =newBufferedReader(newInputStreamReader(connection.getInputStream()))) {
48+
StringinputLine;
49+
while ((inputLine =in.readLine()) !=null)
50+
content.append(inputLine);
4151

42-
in.close();
43-
connection.disconnect();
52+
in.close();
53+
}
4454

55+
connection.disconnect();
4556
returncontent.toString();
4657
}
4758
}

‎src/main/java/io/api/model/BasicTransaction.java‎renamed to ‎src/main/java/io/api/model/BaseTransaction.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @author GoodforGod
77
* @since 28.10.2018
88
*/
9-
abstractclassBasicTransaction {
9+
abstractclassBaseTransaction {
1010

1111
privateStringblockNumber;
1212
privateStringblockHash;
@@ -27,9 +27,9 @@ abstract class BasicTransaction {
2727
privateStringinput;
2828
privateStringcontractAddress;
2929

30-
BasicTransaction(StringblockNumber,StringblockHash,StringtimeStamp,Stringhash,Stringnonce,Stringconfirmations,
31-
StringtransactionIndex,Stringfrom,Stringto,Stringvalue,
32-
Stringgas,StringgasPrice,StringgasUsed,StringcumulativeGasUsed,Stringinput,StringcontractAddress) {
30+
BaseTransaction(StringblockNumber,StringblockHash,StringtimeStamp,Stringhash,Stringnonce,Stringconfirmations,
31+
StringtransactionIndex,Stringfrom,Stringto,Stringvalue,
32+
Stringgas,StringgasPrice,StringgasUsed,StringcumulativeGasUsed,Stringinput,StringcontractAddress) {
3333
this.blockNumber =blockNumber;
3434
this.blockHash =blockHash;
3535
this.timeStamp =timeStamp;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp