Skip to content

Commit 0daffdf

Browse files
author
Wenhua Zhang
committed
feat: add solidity api and update spent result from NullifierResult to NoteTRC20SpendResult
1 parent bb7d227 commit 0daffdf

17 files changed

Lines changed: 271 additions & 105 deletions

framework/src/main/java/org/tron/core/Wallet.java

Lines changed: 97 additions & 40 deletions
Large diffs are not rendered by default.

framework/src/main/java/org/tron/core/services/RpcApiService.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ public void isSpend(NoteParameters request, StreamObserver<SpendResult> response
754754
}
755755

756756
@Override
757-
public void scanShieldedTRC20NotesbyIvk(IvkDecryptTRC20Parameters request,
757+
public void scanShieldedTRC20NotesByIvk(IvkDecryptTRC20Parameters request,
758758
StreamObserver<DecryptNotesTRC20> responseObserver) {
759759
long startNum = request.getStartBlockIndex();
760760
long endNum = request.getEndBlockIndex();
@@ -765,15 +765,15 @@ public void scanShieldedTRC20NotesbyIvk(IvkDecryptTRC20Parameters request,
765765
try {
766766
checkSupportShieldedTRC20Transaction();
767767
responseObserver.onNext(
768-
wallet.scanShieldedTRC20NotesbyIvk(startNum, endNum, contractAddress, ivk, ak, nk));
768+
wallet.scanShieldedTRC20NotesByIvk(startNum, endNum, contractAddress, ivk, ak, nk));
769769
} catch (Exception e) {
770770
responseObserver.onError(getRunTimeException(e));
771771
}
772772
responseObserver.onCompleted();
773773
}
774774

775775
@Override
776-
public void scanShieldedTRC20NotesbyOvk(OvkDecryptTRC20Parameters request,
776+
public void scanShieldedTRC20NotesByOvk(OvkDecryptTRC20Parameters request,
777777
StreamObserver<DecryptNotesTRC20> responseObserver) {
778778
long startNum = request.getStartBlockIndex();
779779
long endNum = request.getEndBlockIndex();
@@ -782,7 +782,7 @@ public void scanShieldedTRC20NotesbyOvk(OvkDecryptTRC20Parameters request,
782782
try {
783783
checkSupportShieldedTRC20Transaction();
784784
responseObserver
785-
.onNext(wallet.scanShieldedTRC20NotesbyOvk(startNum, endNum, ovk, contractAddress));
785+
.onNext(wallet.scanShieldedTRC20NotesByOvk(startNum, endNum, ovk, contractAddress));
786786
} catch (Exception e) {
787787
responseObserver.onError(getRunTimeException(e));
788788
}
@@ -791,7 +791,7 @@ public void scanShieldedTRC20NotesbyOvk(OvkDecryptTRC20Parameters request,
791791

792792
@Override
793793
public void isShieldedTRC20ContractNoteSpent(NfTRC20Parameters request,
794-
StreamObserver<GrpcAPI.NullifierResult> responseObserver) {
794+
StreamObserver<GrpcAPI.NoteTRC20SpendResult> responseObserver) {
795795
try {
796796
checkSupportShieldedTRC20Transaction();
797797
responseObserver.onNext(wallet.isShieldedTRC20ContractNoteSpent(request));
@@ -2341,15 +2341,15 @@ public void createShieldedContractParametersWithoutAsk(
23412341
}
23422342

23432343
@Override
2344-
public void scanShieldedTRC20NotesbyIvk(
2344+
public void scanShieldedTRC20NotesByIvk(
23452345
IvkDecryptTRC20Parameters request,
23462346
StreamObserver<org.tron.api.GrpcAPI.DecryptNotesTRC20> responseObserver) {
23472347
long startNum = request.getStartBlockIndex();
23482348
long endNum = request.getEndBlockIndex();
23492349
try {
23502350
checkSupportShieldedTRC20Transaction();
23512351

2352-
DecryptNotesTRC20 decryptNotes = wallet.scanShieldedTRC20NotesbyIvk(startNum, endNum,
2352+
DecryptNotesTRC20 decryptNotes = wallet.scanShieldedTRC20NotesByIvk(startNum, endNum,
23532353
request.getShieldedTRC20ContractAddress().toByteArray(),
23542354
request.getIvk().toByteArray(),
23552355
request.getAk().toByteArray(),
@@ -2364,15 +2364,15 @@ public void scanShieldedTRC20NotesbyIvk(
23642364
}
23652365

23662366
@Override
2367-
public void scanShieldedTRC20NotesbyOvk(
2367+
public void scanShieldedTRC20NotesByOvk(
23682368
OvkDecryptTRC20Parameters request,
23692369
StreamObserver<org.tron.api.GrpcAPI.DecryptNotesTRC20> responseObserver) {
23702370
long startNum = request.getStartBlockIndex();
23712371
long endNum = request.getEndBlockIndex();
23722372
try {
23732373
checkSupportShieldedTRC20Transaction();
23742374

2375-
DecryptNotesTRC20 decryptNotes = wallet.scanShieldedTRC20NotesbyOvk(startNum, endNum,
2375+
DecryptNotesTRC20 decryptNotes = wallet.scanShieldedTRC20NotesByOvk(startNum, endNum,
23762376
request.getOvk().toByteArray(),
23772377
request.getShieldedTRC20ContractAddress().toByteArray());
23782378
responseObserver.onNext(decryptNotes);
@@ -2385,13 +2385,13 @@ public void scanShieldedTRC20NotesbyOvk(
23852385
}
23862386

23872387
@Override
2388-
public void isShieldedTRC20ContractNoteSpent(
2389-
NfTRC20Parameters request, StreamObserver<GrpcAPI.NullifierResult> responseObserver) {
2388+
public void isShieldedTRC20ContractNoteSpent(NfTRC20Parameters request,
2389+
StreamObserver<GrpcAPI.NoteTRC20SpendResult> responseObserver) {
23902390
try {
23912391
checkSupportShieldedTRC20Transaction();
23922392

2393-
GrpcAPI.NullifierResult nf = wallet
2394-
.isShieldedTRC20ContractNoteSpent(request);
2393+
GrpcAPI.NoteTRC20SpendResult nf = wallet
2394+
.isShieldedTRC20ContractNoteSpent(request);
23952395
responseObserver.onNext(nf);
23962396
} catch (ZksnarkException | ContractExeException e) {
23972397
responseObserver.onError(getRunTimeException(e));

framework/src/main/java/org/tron/core/services/http/CreateShieldedContractParametersServlet.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
2525
String contract = request.getReader().lines()
2626
.collect(Collectors.joining(System.lineSeparator()));
2727
Util.checkBodySize(contract);
28+
2829
boolean visible = Util.getVisiblePost(contract);
2930
PrivateShieldedTRC20Parameters.Builder build = PrivateShieldedTRC20Parameters.newBuilder();
3031
JsonFormat.merge(contract, build, visible);
32+
3133
ShieldedTRC20Parameters shieldedTRC20Parameters = wallet
3234
.createShieldedContractParameters(build.build());
3335
response.getWriter().println(JsonFormat.printToString(shieldedTRC20Parameters, visible));

framework/src/main/java/org/tron/core/services/http/FullNodeHttpApiService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,9 +232,9 @@ public class FullNodeHttpApiService implements Service {
232232
private CreateShieldedContractParametersWithoutAskServlet
233233
createShieldedContractParametersWithoutAskServlet;
234234
@Autowired
235-
private ScanShieldedTRC20NotesbyIvkServlet scanShieldedTRC20NotesbyIvkServlet;
235+
private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet;
236236
@Autowired
237-
private ScanShieldedTRC20NotesbyOvkServlet scanShieldedTRC20NotesbyOvkServlet;
237+
private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet;
238238
@Autowired
239239
private GetTriggerInputForShieldedTRC20ContractServlet
240240
getTriggerInputForShieldedTRC20ContractServlet;
@@ -414,9 +414,9 @@ public void start() {
414414
"/createshieldedcontractparameters");
415415
context.addServlet(new ServletHolder(createShieldedContractParametersWithoutAskServlet),
416416
"/createshieldedcontractparameterswithoutask");
417-
context.addServlet(new ServletHolder(scanShieldedTRC20NotesbyIvkServlet),
417+
context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet),
418418
"/scanshieldedtrc20notesbyivk");
419-
context.addServlet(new ServletHolder(scanShieldedTRC20NotesbyOvkServlet),
419+
context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet),
420420
"/scanshieldedtrc20notesbyovk");
421421
context.addServlet(new ServletHolder(getTriggerInputForShieldedTRC20ContractServlet),
422422
"/gettriggerinputforshieldedtrc20contract");

framework/src/main/java/org/tron/core/services/http/IsShieldedTRC20ContractNoteSpentServlet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
2929
boolean visible = Util.getVisiblePost(input);
3030
NfTRC20Parameters.Builder build = NfTRC20Parameters.newBuilder();
3131
JsonFormat.merge(input, build, visible);
32-
GrpcAPI.NullifierResult result = wallet.isShieldedTRC20ContractNoteSpent(build.build());
32+
GrpcAPI.NoteTRC20SpendResult result = wallet.isShieldedTRC20ContractNoteSpent(build.build());
3333
response.getWriter().println(JsonFormat.printToString(result, visible));
3434
} catch (Exception e) {
3535
Util.processError(e, response);

framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesbyIvkServlet.java renamed to framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByIvkServlet.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
@Component
1717
@Slf4j(topic = "API")
18-
public class ScanShieldedTRC20NotesbyIvkServlet extends RateLimiterServlet {
18+
public class ScanShieldedTRC20NotesByIvkServlet extends RateLimiterServlet {
1919

2020
@Autowired
2121
private Wallet wallet;
@@ -29,7 +29,7 @@ public static String convertOutput(GrpcAPI.DecryptNotesTRC20 notes, boolean visi
2929
JSONArray array = jsonNotes.getJSONArray("noteTxs");
3030
for (int index = 0; index < array.size(); index++) {
3131
JSONObject item = array.getJSONObject(index);
32-
item.put("index", notes.getNoteTxs(index).getIndex());//避免把0自动忽略
32+
item.put("index", notes.getNoteTxs(index).getIndex()); //避免把0自动忽略
3333
}
3434
return jsonNotes.toJSONString();
3535
}
@@ -40,13 +40,14 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
4040
String input = request.getReader().lines()
4141
.collect(Collectors.joining(System.lineSeparator()));
4242
Util.checkBodySize(input);
43+
4344
boolean visible = Util.getVisiblePost(input);
4445
IvkDecryptTRC20Parameters.Builder ivkDecryptTRC20Parameters = IvkDecryptTRC20Parameters
4546
.newBuilder();
4647
JsonFormat.merge(input, ivkDecryptTRC20Parameters, visible);
4748

4849
GrpcAPI.DecryptNotesTRC20 notes = wallet
49-
.scanShieldedTRC20NotesbyIvk(ivkDecryptTRC20Parameters.getStartBlockIndex(),
50+
.scanShieldedTRC20NotesByIvk(ivkDecryptTRC20Parameters.getStartBlockIndex(),
5051
ivkDecryptTRC20Parameters.getEndBlockIndex(),
5152
ivkDecryptTRC20Parameters.getShieldedTRC20ContractAddress().toByteArray(),
5253
ivkDecryptTRC20Parameters.getIvk().toByteArray(),
@@ -64,14 +65,17 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
6465
long startNum = Long.parseLong(request.getParameter("start_block_index"));
6566
long endNum = Long.parseLong(request.getParameter("end_block_index"));
6667
String ivk = request.getParameter("ivk");
68+
6769
String contractAddress = request.getParameter("shielded_TRC20_contract_address");
6870
if (visible) {
6971
contractAddress = Util.getHexAddress(contractAddress);
7072
}
73+
7174
String ak = request.getParameter("ak");
7275
String nk = request.getParameter("nk");
76+
7377
GrpcAPI.DecryptNotesTRC20 notes = wallet
74-
.scanShieldedTRC20NotesbyIvk(startNum, endNum,
78+
.scanShieldedTRC20NotesByIvk(startNum, endNum,
7579
ByteArray.fromHexString(contractAddress), ByteArray.fromHexString(ivk),
7680
ByteArray.fromHexString(ak), ByteArray.fromHexString(nk));
7781
response.getWriter().println(convertOutput(notes, visible));

framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesbyOvkServlet.java renamed to framework/src/main/java/org/tron/core/services/http/ScanShieldedTRC20NotesByOvkServlet.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
@Component
1515
@Slf4j(topic = "API")
16-
public class ScanShieldedTRC20NotesbyOvkServlet extends RateLimiterServlet {
16+
public class ScanShieldedTRC20NotesByOvkServlet extends RateLimiterServlet {
1717

1818
@Autowired
1919
private Wallet wallet;
@@ -29,13 +29,13 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
2929
JsonFormat.merge(input, ovkDecryptTRC20Parameters, visible);
3030

3131
GrpcAPI.DecryptNotesTRC20 notes = wallet
32-
.scanShieldedTRC20NotesbyOvk(ovkDecryptTRC20Parameters.getStartBlockIndex(),
32+
.scanShieldedTRC20NotesByOvk(ovkDecryptTRC20Parameters.getStartBlockIndex(),
3333
ovkDecryptTRC20Parameters.getEndBlockIndex(),
3434
ovkDecryptTRC20Parameters.getOvk().toByteArray(),
3535
ovkDecryptTRC20Parameters.getShieldedTRC20ContractAddress().toByteArray()
3636
);
3737
response.getWriter()
38-
.println(ScanShieldedTRC20NotesbyIvkServlet.convertOutput(notes, visible));
38+
.println(ScanShieldedTRC20NotesByIvkServlet.convertOutput(notes, visible));
3939
} catch (Exception e) {
4040
Util.processError(e, response);
4141
}
@@ -52,10 +52,10 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) {
5252
contractAddress = Util.getHexAddress(contractAddress);
5353
}
5454
GrpcAPI.DecryptNotesTRC20 notes = wallet
55-
.scanShieldedTRC20NotesbyOvk(startBlockIndex, endBlockIndex,
55+
.scanShieldedTRC20NotesByOvk(startBlockIndex, endBlockIndex,
5656
ByteArray.fromHexString(ovk), ByteArray.fromHexString(contractAddress));
5757
response.getWriter()
58-
.println(ScanShieldedTRC20NotesbyIvkServlet.convertOutput(notes, visible));
58+
.println(ScanShieldedTRC20NotesByIvkServlet.convertOutput(notes, visible));
5959
} catch (Exception e) {
6060
Util.processError(e, response);
6161
}

framework/src/main/java/org/tron/core/services/http/solidity/SolidityNodeHttpApiService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
import org.tron.core.services.http.ScanAndMarkNoteByIvkServlet;
3939
import org.tron.core.services.http.ScanNoteByIvkServlet;
4040
import org.tron.core.services.http.ScanNoteByOvkServlet;
41-
import org.tron.core.services.http.ScanShieldedTRC20NotesbyIvkServlet;
42-
import org.tron.core.services.http.ScanShieldedTRC20NotesbyOvkServlet;
41+
import org.tron.core.services.http.ScanShieldedTRC20NotesByIvkServlet;
42+
import org.tron.core.services.http.ScanShieldedTRC20NotesByOvkServlet;
4343
import org.tron.core.services.http.TriggerConstantContractServlet;
4444

4545

@@ -106,9 +106,9 @@ public class SolidityNodeHttpApiService implements Service {
106106
@Autowired
107107
private IsSpendServlet isSpendServlet;
108108
@Autowired
109-
private ScanShieldedTRC20NotesbyIvkServlet scanShieldedTRC20NotesbyIvkServlet;
109+
private ScanShieldedTRC20NotesByIvkServlet scanShieldedTRC20NotesByIvkServlet;
110110
@Autowired
111-
private ScanShieldedTRC20NotesbyOvkServlet scanShieldedTRC20NotesbyOvkServlet;
111+
private ScanShieldedTRC20NotesByOvkServlet scanShieldedTRC20NotesByOvkServlet;
112112
@Autowired
113113
private IsShieldedTRC20ContractNoteSpentServlet isShieldedTRC20ContractNoteSpentServlet;
114114

@@ -185,9 +185,9 @@ public void start() {
185185
// context.addServlet(new ServletHolder(isSpendServlet),
186186
// "/walletsolidity/isspend");
187187

188-
context.addServlet(new ServletHolder(scanShieldedTRC20NotesbyIvkServlet),
188+
context.addServlet(new ServletHolder(scanShieldedTRC20NotesByIvkServlet),
189189
"/walletsolidity/scanshieldedtrc20notesbyivk");
190-
context.addServlet(new ServletHolder(scanShieldedTRC20NotesbyOvkServlet),
190+
context.addServlet(new ServletHolder(scanShieldedTRC20NotesByOvkServlet),
191191
"/walletsolidity/scanshieldedtrc20notesbyovk");
192192
context.addServlet(new ServletHolder(isShieldedTRC20ContractNoteSpentServlet),
193193
"/walletsolidity/isshieldedtrc20contractnotespent");

framework/src/main/java/org/tron/core/services/interfaceOnSolidity/RpcApiServiceOnSolidity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -450,26 +450,26 @@ public void getTransactionInfoByBlockNum(NumberMessage request,
450450
}
451451

452452
@Override
453-
public void scanShieldedTRC20NotesbyIvk(GrpcAPI.IvkDecryptTRC20Parameters request,
453+
public void scanShieldedTRC20NotesByIvk(GrpcAPI.IvkDecryptTRC20Parameters request,
454454
StreamObserver<GrpcAPI.DecryptNotesTRC20> responseObserver) {
455455
walletOnSolidity.futureGet(
456456
() -> rpcApiService.getWalletSolidityApi()
457-
.scanShieldedTRC20NotesbyIvk(request, responseObserver)
457+
.scanShieldedTRC20NotesByIvk(request, responseObserver)
458458
);
459459
}
460460

461461
@Override
462-
public void scanShieldedTRC20NotesbyOvk(GrpcAPI.OvkDecryptTRC20Parameters request,
462+
public void scanShieldedTRC20NotesByOvk(GrpcAPI.OvkDecryptTRC20Parameters request,
463463
StreamObserver<GrpcAPI.DecryptNotesTRC20> responseObserver) {
464464
walletOnSolidity.futureGet(
465465
() -> rpcApiService.getWalletSolidityApi()
466-
.scanShieldedTRC20NotesbyOvk(request, responseObserver)
466+
.scanShieldedTRC20NotesByOvk(request, responseObserver)
467467
);
468468
}
469469

470470
@Override
471471
public void isShieldedTRC20ContractNoteSpent(GrpcAPI.NfTRC20Parameters request,
472-
StreamObserver<GrpcAPI.NullifierResult> responseObserver) {
472+
StreamObserver<GrpcAPI.NoteTRC20SpendResult> responseObserver) {
473473
walletOnSolidity.futureGet(
474474
() -> rpcApiService.getWalletSolidityApi()
475475
.isShieldedTRC20ContractNoteSpent(request, responseObserver)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.tron.core.services.interfaceOnSolidity.http;
2+
3+
import javax.servlet.http.HttpServletRequest;
4+
import javax.servlet.http.HttpServletResponse;
5+
import lombok.extern.slf4j.Slf4j;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.stereotype.Component;
8+
import org.tron.core.services.http.IsShieldedTRC20ContractNoteSpentServlet;
9+
import org.tron.core.services.interfaceOnSolidity.WalletOnSolidity;
10+
11+
12+
@Component
13+
@Slf4j(topic = "API")
14+
public class IsShieldedTRC20ContractNoteSpentOnSolidityServlet extends
15+
IsShieldedTRC20ContractNoteSpentServlet {
16+
17+
18+
@Autowired
19+
private WalletOnSolidity walletOnSolidity;
20+
21+
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
22+
walletOnSolidity.futureGet(() -> super.doGet(request, response));
23+
}
24+
25+
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
26+
walletOnSolidity.futureGet(() -> super.doPost(request, response));
27+
}
28+
}

0 commit comments

Comments
 (0)