Skip to content

Commit 9f57dfb

Browse files
authored
feat(TCK): add ScheduleDeleteTransaction endpoint (#2521)
Signed-off-by: emiliyank <e.kadiyski@gmail.com>
1 parent d35ca08 commit 9f57dfb

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

tck/src/main/java/com/hedera/hashgraph/tck/methods/sdk/ScheduleService.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.hedera.hashgraph.tck.annotation.JSONRPC2Service;
77
import com.hedera.hashgraph.tck.methods.AbstractJSONRPC2Service;
88
import com.hedera.hashgraph.tck.methods.sdk.param.schedule.ScheduleCreateParams;
9+
import com.hedera.hashgraph.tck.methods.sdk.param.schedule.ScheduleDeleteParams;
910
import com.hedera.hashgraph.tck.methods.sdk.param.schedule.ScheduleSignParams;
1011
import com.hedera.hashgraph.tck.methods.sdk.response.ScheduleResponse;
1112
import com.hedera.hashgraph.tck.util.KeyUtils;
@@ -106,6 +107,33 @@ public ScheduleResponse signSchedule(final ScheduleSignParams params) throws Exc
106107
return new ScheduleResponse(scheduleId, transactionId, receipt.status);
107108
}
108109

110+
@JSONRPC2Method("deleteSchedule")
111+
public ScheduleResponse deleteSchedule(final ScheduleDeleteParams params) throws Exception {
112+
ScheduleDeleteTransaction transaction = new ScheduleDeleteTransaction().setGrpcDeadline(DEFAULT_GRPC_DEADLINE);
113+
114+
params.getScheduleId()
115+
.ifPresent(scheduleIdStr -> transaction.setScheduleId(ScheduleId.fromString(scheduleIdStr)));
116+
117+
params.getCommonTransactionParams()
118+
.ifPresent(common -> common.fillOutTransaction(transaction, sdkService.getClient()));
119+
120+
TransactionResponse txResponse = transaction.execute(sdkService.getClient());
121+
TransactionReceipt receipt = txResponse.getReceipt(sdkService.getClient());
122+
123+
String scheduleId = "";
124+
String transactionId = "";
125+
if (receipt.status == Status.SUCCESS) {
126+
if (params.getScheduleId().isPresent()) {
127+
scheduleId = params.getScheduleId().get();
128+
}
129+
if (receipt.scheduledTransactionId != null) {
130+
transactionId = receipt.scheduledTransactionId.toString();
131+
}
132+
}
133+
134+
return new ScheduleResponse(scheduleId, transactionId, receipt.status);
135+
}
136+
109137
/**
110138
* Builds a scheduled transaction from method name and parameters
111139
*/
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
package com.hedera.hashgraph.tck.methods.sdk.param.schedule;
3+
4+
import com.hedera.hashgraph.tck.methods.JSONRPC2Param;
5+
import com.hedera.hashgraph.tck.methods.sdk.param.CommonTransactionParams;
6+
import com.hedera.hashgraph.tck.util.JSONRPCParamParser;
7+
import java.util.Map;
8+
import java.util.Optional;
9+
import lombok.AllArgsConstructor;
10+
import lombok.Getter;
11+
import lombok.NoArgsConstructor;
12+
13+
/**
14+
* ScheduleDeleteParams for delete schedule method
15+
*/
16+
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
17+
@Getter
18+
@AllArgsConstructor
19+
@NoArgsConstructor
20+
public class ScheduleDeleteParams extends JSONRPC2Param {
21+
private Optional<String> scheduleId;
22+
private Optional<CommonTransactionParams> commonTransactionParams;
23+
24+
@Override
25+
public ScheduleDeleteParams parse(Map<String, Object> jrpcParams) throws Exception {
26+
var parsedScheduleId = Optional.ofNullable((String) jrpcParams.get("scheduleId"));
27+
var parsedCommonTransactionParams = JSONRPCParamParser.parseCommonTransactionParams(jrpcParams);
28+
29+
return new ScheduleDeleteParams(parsedScheduleId, parsedCommonTransactionParams);
30+
}
31+
}

0 commit comments

Comments
 (0)