@@ -50,21 +50,21 @@ public List<ContractTrigger> parseLogInfos(List<LogInfo> logInfos, Deposit depos
50
50
51
51
byte [] contractAddress = logInfo .getAddress ();
52
52
String strContractAddr = ArrayUtils .isEmpty (contractAddress ) ? "" : Wallet .encode58Check (contractAddress );
53
- ABI abi = abiMap .get (contractAddress );
54
- if (abi == null ) {
55
- abi = deposit .getContract (contractAddress ).getInstance ().getAbi ();
56
- abiMap .put (contractAddress , abi );
57
- }
58
- // calculate the sha3 of the event signature first.
59
- if (abi != null && abi .getEntrysCount () > 0 ) {
60
- for (ABI .Entry entry : abi .getEntrysList ()) {
61
- if (entry .getType () != ABI .Entry .EntryType .Event || entry .getAnonymous ()) {
62
- continue ;
53
+ if (signMap .get (strContractAddr ) == null ) {
54
+ ABI abi = deposit .getContract (contractAddress ).getInstance ().getAbi ();
55
+ signMap .put (strContractAddr , "1" ); // mark as found.
56
+
57
+ // calculate the sha3 of the event signature first.
58
+ if (abi != null && abi .getEntrysCount () > 0 ) {
59
+ for (ABI .Entry entry : abi .getEntrysList ()) {
60
+ if (entry .getType () != ABI .Entry .EntryType .Event || entry .getAnonymous ()) {
61
+ continue ;
62
+ }
63
+ String signature = getEntrySignature (entry );
64
+ String sha3 = Hex .toHexString (Hash .sha3 (signature .getBytes ()));
65
+ fullMap .put (strContractAddr + "_" + sha3 , entry );
66
+ signMap .put (strContractAddr + "_" + sha3 , signature );
63
67
}
64
- String signature = getEntrySignature (entry );
65
- String sha3 = Hex .toHexString (Hash .sha3 (signature .getBytes ()));
66
- fullMap .put (strContractAddr + "_" + sha3 , entry );
67
- signMap .put (strContractAddr + "_" + sha3 , signature );
68
68
}
69
69
}
70
70
}
0 commit comments