Skip to content

Commit 8602a2c

Browse files
Merge 3985f66 into fe5afcd
2 parents fe5afcd + 3985f66 commit 8602a2c

File tree

5 files changed

+87
-33
lines changed

5 files changed

+87
-33
lines changed

app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ dependencies {
309309
testImplementation group: 'org.powermock', name: 'powermock-module-junit4-rule-agent', version: '2.0.9'
310310
testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: '2.0.9'
311311
testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: '2.0.9'
312+
testImplementation group: 'org.json', name: 'json', version: '20220320'
312313

313314
// Component tests
314315
testImplementation 'org.robolectric:robolectric:4.8.2'

app/src/main/java/com/alphawallet/app/entity/CovalentTransaction.java

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
11
package com.alphawallet.app.entity;
22

3-
import com.alphawallet.app.entity.tokenscript.EventUtils;
4-
import com.alphawallet.app.util.Utils;
5-
import com.alphawallet.token.tools.Numeric;
3+
import android.text.TextUtils;
64

7-
import org.web3j.protocol.Web3j;
5+
import com.alphawallet.app.util.Utils;
86

97
import java.math.BigInteger;
10-
import java.text.ParseException;
118
import java.text.SimpleDateFormat;
129
import java.util.ArrayList;
13-
import java.util.Date;
1410
import java.util.HashMap;
1511
import java.util.List;
1612
import java.util.Locale;
1713
import java.util.Map;
1814

19-
import static com.alphawallet.app.repository.TokenRepository.getWeb3jService;
20-
21-
import android.text.TextUtils;
22-
2315
/**
2416
* Created by JB on 17/05/2021.
2517
*/
@@ -65,14 +57,10 @@ public Map<String, Param> getParams() throws Exception
6557
Param param = new Param();
6658
param.type = lp.type;
6759
String rawValue = TextUtils.isEmpty(lp.value) || lp.value.equals("null") ? rawLogValue : lp.value;
60+
param.value = rawValue;
6861
if (lp.type.startsWith("uint") || lp.type.startsWith("int"))
6962
{
70-
param.valueBI = rawValue.startsWith("0x") ? Numeric.toBigInt(rawValue) : new BigInteger(rawValue);
71-
param.value = "";
72-
}
73-
else
74-
{
75-
param.value = rawValue;
63+
param.valueBI = Utils.stringToBigInteger(rawValue);// rawValue.startsWith("0x") ? Numeric.toBigInt(rawValue) : new BigInteger(rawValue);
7664
}
7765

7866
params.put(lp.name, param);
@@ -153,21 +141,10 @@ private EtherscanEvent getEtherscanTransferEvent(LogEvent logEvent) throws Excep
153141

154142
Map<String, Param> logParams = logEvent.getParams();
155143

156-
ev.from = logParams.get("from").value;
157-
ev.to = logParams.get("to").value;
158-
159-
logParams.remove("from");
160-
logParams.remove("to");
161-
162-
if (logEvent.sender_contract_decimals == 0)
163-
{
164-
//get TokenId
165-
ev.tokenID = logParams.values().iterator().next().valueBI.toString();
166-
}
167-
else
168-
{
169-
ev.value = logParams.values().iterator().next().valueBI.toString();
170-
}
144+
ev.from = logParams.containsKey("from") ? logParams.get("from").value : "";
145+
ev.to = logParams.containsKey("to") ? logParams.get("to").value : "";
146+
ev.tokenID = logParams.containsKey("tokenId") ? logParams.get("tokenId").valueBI.toString() : "";
147+
ev.value = logParams.containsKey("value") ? logParams.get("value").valueBI.toString() : "";
171148

172149
ev.gasUsed = gas_spent;
173150
ev.gasPrice = gas_price;

app/src/main/java/com/alphawallet/app/service/TransactionsNetworkClient.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public Single<Transaction[]> storeNewTransactions(TokensService svs, NetworkInfo
167167
{
168168
lastTransaction = syncDownwards(updates, instance, svs, networkInfo, tokenAddress, 9999999999L);
169169
}
170-
else // try to sydenc upwards from the last read
170+
else // try to sync upwards from the last read
171171
{
172172
lastTransaction = syncUpwards(updates, instance, svs, networkInfo, tokenAddress, lastBlockNumber);
173173
}
@@ -699,7 +699,6 @@ else if (networkInfo.chainId == BINANCE_TEST_ID || networkInfo.chainId == BINANC
699699
}
700700
else if (networkInfo.chainId == POLYGON_ID || networkInfo.chainId == POLYGON_TEST_ID)
701701
{
702-
703702
return POLYGONSCAN_API_KEY;
704703
}
705704
else if (networkInfo.chainId == AURORA_MAINNET_ID || networkInfo.chainId == AURORA_TESTNET_ID)
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.alphawallet.app;
2+
3+
import static com.alphawallet.ethereum.EthereumNetworkBase.KLAYTN_ID;
4+
import static org.junit.Assert.assertEquals;
5+
6+
import com.alphawallet.app.entity.CovalentTransaction;
7+
import com.alphawallet.app.entity.EtherscanEvent;
8+
import com.alphawallet.app.entity.EtherscanTransaction;
9+
import com.alphawallet.app.entity.NetworkInfo;
10+
import com.google.common.io.Resources;
11+
import com.google.gson.Gson;
12+
13+
import org.json.JSONArray;
14+
import org.json.JSONException;
15+
import org.json.JSONObject;
16+
import org.junit.Test;
17+
18+
import java.io.IOException;
19+
import java.net.URL;
20+
import java.nio.charset.StandardCharsets;
21+
22+
/**
23+
* Created by JB on 2/09/2022.
24+
*/
25+
public class CovalentProcessingTest
26+
{
27+
private String APIReturn;
28+
29+
public CovalentProcessingTest() throws IOException
30+
{
31+
URL url = Resources.getResource("covalenttxs.json");
32+
APIReturn = Resources.toString(url, StandardCharsets.UTF_8);
33+
}
34+
35+
@Test
36+
public void testCovalentTx() throws JSONException
37+
{
38+
CovalentTransaction[] covalentTransactions = getCovalentTransactions(APIReturn);
39+
40+
NetworkInfo info = new NetworkInfo("Klaytn", "Klaytn", "", "", KLAYTN_ID, "", "");
41+
EtherscanEvent[] events = CovalentTransaction.toEtherscanEvents(covalentTransactions);
42+
EtherscanTransaction[] txs = CovalentTransaction.toRawEtherscanTransactions(covalentTransactions, info);
43+
44+
assertEquals(events.length, 517);
45+
assertEquals(txs.length, 139);
46+
47+
EtherscanEvent ev = events[0];
48+
assertEquals(ev.value, "2700000000");
49+
assertEquals(ev.tokenDecimal, "6");
50+
51+
ev = events[516];
52+
53+
assertEquals(ev.value, "");
54+
assertEquals(ev.tokenID, "20007");
55+
assertEquals(ev.tokenDecimal, "0");
56+
assertEquals(ev.from, "0xc067a53c91258ba513059919e03b81cf93f57ac7");
57+
assertEquals(ev.to, "0xf9c883c8dca140ebbdc87a225fe6e330be5d25ef");
58+
}
59+
60+
private CovalentTransaction[] getCovalentTransactions(String response) throws JSONException
61+
{
62+
if (response == null || response.length() < 80)
63+
{
64+
return new CovalentTransaction[0];
65+
}
66+
JSONObject stateData = new JSONObject(response);
67+
68+
JSONObject data = stateData.getJSONObject("data");
69+
JSONArray orders = data.getJSONArray("items");
70+
CovalentTransaction[] ctxs = new Gson().fromJson(orders.toString(), CovalentTransaction[].class);
71+
72+
return ctxs;
73+
}
74+
}
75+
76+

app/src/test/resources/covalenttxs.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)