Skip to content

Commit 048767a

Browse files
committed
feat: batch run examples
1 parent 8d51b71 commit 048767a

File tree

3 files changed

+94
-66
lines changed

3 files changed

+94
-66
lines changed

jot-examples/src/main/java/com/method5/jot/util/ExampleBase.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ public class ExampleBase {
44
static {
55
System.setProperty("slf4j.internal.verbosity", "WARN");
66
}
7+
8+
@FunctionalInterface
9+
interface ThrowingRunnable {
10+
void run() throws Exception;
11+
}
712
}

jot-examples/src/main/java/com/method5/jot/util/RunAll.java

Lines changed: 53 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -24,51 +24,62 @@ public static void main(String[] args) throws Exception {
2424
Wallet wallet = Wallet.fromMnemonic(Config.MNEMONIC_PHRASE);
2525

2626
try (PolkadotWs api = new PolkadotWs(Config.WSS_SERVER, 10000)) {
27-
ManualQueryExample.execute(api);
28-
QueryAccountAndBalanceExample.execute(api);
29-
QueryBlockExample.execute(api);
30-
QueryBlockHashExample.execute(api);
31-
QueryBlockHeaderExample.execute(api);
32-
QueryBlockEventsExample.execute(api);
33-
QueryFeeInfoExample.execute(api, wallet.getSigner());
34-
QueryFinalizedHeadExample.execute(api);
35-
QueryMetadataExample.execute(api);
36-
QueryNonceExample.execute(api);
37-
QueryRuntimeVersionExample.execute(api);
38-
QuerySystemDetailsExample.execute(api);
39-
SubscribeAllHeadsExample.execute(api);
40-
SubscribeBestHeadsExample.execute(api);
41-
SubscribeFinalizedHeadsExample.execute(api);
42-
SubscribeLatestHeadsExample.execute(api);
43-
SubscribeRuntimeVersionExample.execute(api);
44-
ReceiveExtrinsicResultExample.execute(api, wallet.getSigner());
45-
// BalancesTransferAllExample.execute(api, wallet.getSigner());
46-
BalancesTransferAllowDeathExample.execute(api, wallet.getSigner());
47-
BalancesTransferKeepAliveExample.execute(api, wallet.getSigner());
48-
ConvictionVotingVoteExample.execute(api, wallet.getSigner());
49-
ConvictionVotingRemoveVoteExample.execute(api, wallet.getSigner());
50-
MultisigAsMultiExample.execute(api, wallet.getSigner());
51-
MultisigApproveAsMultiExample.execute(api, wallet.getSigner());
52-
StakingBondExample.execute(api, wallet.getSigner());
53-
StakingChillExample.execute(api, wallet.getSigner());
54-
StakingNominateExample.execute(api, wallet.getSigner());
55-
StakingPayoutStakersExample.execute(api, wallet.getSigner());
56-
StakingRebondExample.execute(api, wallet.getSigner());
57-
StakingUnbondExample.execute(api, wallet.getSigner());
58-
SystemRemarkExample.execute(api, wallet.getSigner());
59-
UtilityBatchExample.execute(api, wallet.getSigner());
60-
UtilityBatchAllExample.execute(api, wallet.getSigner());
61-
UtilityForceBatchExample.execute(api, wallet.getSigner());
62-
ParsingMetadataExample.execute(api);
27+
runSafely("ManualQueryExample", () -> ManualQueryExample.execute(api));
28+
runSafely("QueryAccountAndBalanceExample", () -> QueryAccountAndBalanceExample.execute(api));
29+
runSafely("QueryBlockExample", () -> QueryBlockExample.execute(api));
30+
runSafely("QueryBlockHashExample", () -> QueryBlockHashExample.execute(api));
31+
runSafely("QueryBlockHeaderExample", () -> QueryBlockHeaderExample.execute(api));
32+
runSafely("QueryBlockEventsExample", () -> QueryBlockEventsExample.execute(api));
33+
runSafely("QueryFeeInfoExample", () -> QueryFeeInfoExample.execute(api, wallet.getSigner()));
34+
runSafely("QueryFinalizedHeadExample", () -> QueryFinalizedHeadExample.execute(api));
35+
runSafely("QueryMetadataExample", () -> QueryMetadataExample.execute(api));
36+
runSafely("QueryNonceExample", () -> QueryNonceExample.execute(api));
37+
runSafely("QueryRuntimeVersionExample", () -> QueryRuntimeVersionExample.execute(api));
38+
runSafely("QuerySystemDetailsExample", () -> QuerySystemDetailsExample.execute(api));
39+
runSafely("SubscribeAllHeadsExample", () -> SubscribeAllHeadsExample.execute(api));
40+
runSafely("SubscribeBestHeadsExample", () -> SubscribeBestHeadsExample.execute(api));
41+
runSafely("SubscribeFinalizedHeadsExample", () -> SubscribeFinalizedHeadsExample.execute(api));
42+
runSafely("SubscribeLatestHeadsExample", () -> SubscribeLatestHeadsExample.execute(api));
43+
runSafely("SubscribeRuntimeVersionExample", () -> SubscribeRuntimeVersionExample.execute(api));
44+
runSafely("ReceiveExtrinsicResultExample", () -> ReceiveExtrinsicResultExample.execute(api, wallet.getSigner()));
45+
runSafely("BalancesTransferAllowDeathExample", () -> BalancesTransferAllowDeathExample.execute(api, wallet.getSigner()));
46+
runSafely("BalancesTransferKeepAliveExample", () -> BalancesTransferKeepAliveExample.execute(api, wallet.getSigner()));
47+
runSafely("ConvictionVotingVoteExample", () -> ConvictionVotingVoteExample.execute(api, wallet.getSigner()));
48+
runSafely("ConvictionVotingRemoveVoteExample", () -> ConvictionVotingRemoveVoteExample.execute(api, wallet.getSigner()));
49+
runSafely("MultisigAsMultiExample", () -> MultisigAsMultiExample.execute(api, wallet.getSigner()));
50+
runSafely("MultisigApproveAsMultiExample", () -> MultisigApproveAsMultiExample.execute(api, wallet.getSigner()));
51+
runSafely("StakingBondExample", () -> StakingBondExample.execute(api, wallet.getSigner()));
52+
runSafely("StakingChillExample", () -> StakingChillExample.execute(api, wallet.getSigner()));
53+
runSafely("StakingNominateExample", () -> StakingNominateExample.execute(api, wallet.getSigner()));
54+
runSafely("StakingPayoutStakersExample", () -> StakingPayoutStakersExample.execute(api, wallet.getSigner()));
55+
runSafely("StakingRebondExample", () -> StakingRebondExample.execute(api, wallet.getSigner()));
56+
runSafely("StakingUnbondExample", () -> StakingUnbondExample.execute(api, wallet.getSigner()));
57+
runSafely("SystemRemarkExample", () -> SystemRemarkExample.execute(api, wallet.getSigner()));
58+
runSafely("UtilityBatchExample", () -> UtilityBatchExample.execute(api, wallet.getSigner()));
59+
runSafely("UtilityBatchAllExample", () -> UtilityBatchAllExample.execute(api, wallet.getSigner()));
60+
runSafely("UtilityForceBatchExample", () -> UtilityForceBatchExample.execute(api, wallet.getSigner()));
61+
runSafely("ParsingMetadataExample", () -> ParsingMetadataExample.execute(api));
6362
}
6463

65-
Ed25519WalletExample.execute();
66-
ScaleEncodingExample.execute();
67-
AddressConversionExample.execute();
68-
GenericWalletExample.execute();
64+
runSafely("Ed25519WalletExample", Ed25519WalletExample::execute);
65+
runSafely("ScaleEncodingExample", ScaleEncodingExample::execute);
66+
runSafely("AddressConversionExample", AddressConversionExample::execute);
67+
runSafely("GenericWalletExample", GenericWalletExample::execute);
6968

7069
try (OfflineApi api = new OfflineApi()) {
71-
OfflineSigningExample.execute(api, wallet.getSigner());
70+
runSafely("OfflineSigningExample", () -> OfflineSigningExample.execute(api, wallet.getSigner()));
71+
}
72+
73+
logger.info("All examples finished.");
74+
}
75+
76+
private static void runSafely(String name, ThrowingRunnable task) {
77+
try {
78+
logger.info("→ Running {}", name);
79+
task.run();
80+
logger.info("✓ Completed {}", name);
81+
} catch (Exception e) {
82+
logger.error("✗ Failed {}: {}", name, e.getMessage(), e);
7283
}
7384
}
74-
}
85+
}

jot-examples/src/main/java/com/method5/jot/util/RunAllReadOnly.java

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,52 @@
1515
import org.slf4j.Logger;
1616
import org.slf4j.LoggerFactory;
1717

18-
public class RunAllReadOnly {
18+
public class RunAllReadOnly extends ExampleBase {
1919
private static final Logger logger = LoggerFactory.getLogger(RunAllReadOnly.class);
2020

2121
public static void main(String[] args) throws Exception {
22-
logger.info("Executing read-only Jot examples");
22+
logger.info("Executing all Jot examples");
2323

2424
try (PolkadotWs api = new PolkadotWs(Config.WSS_SERVER, 10000)) {
25-
ManualQueryExample.execute(api);
26-
QueryAccountAndBalanceExample.execute(api);
27-
QueryBlockExample.execute(api);
28-
QueryBlockHashExample.execute(api);
29-
QueryBlockHeaderExample.execute(api);
30-
QueryBlockEventsExample.execute(api);
31-
QueryFinalizedHeadExample.execute(api);
32-
QueryMetadataExample.execute(api);
33-
QueryNonceExample.execute(api);
34-
QueryRuntimeVersionExample.execute(api);
35-
QuerySystemDetailsExample.execute(api);
36-
SubscribeAllHeadsExample.execute(api);
37-
SubscribeBestHeadsExample.execute(api);
38-
SubscribeFinalizedHeadsExample.execute(api);
39-
SubscribeLatestHeadsExample.execute(api);
40-
SubscribeRuntimeVersionExample.execute(api);
41-
ParsingMetadataExample.execute(api);
25+
runSafely("ManualQueryExample", () -> ManualQueryExample.execute(api));
26+
runSafely("QueryAccountAndBalanceExample", () -> QueryAccountAndBalanceExample.execute(api));
27+
runSafely("QueryBlockExample", () -> QueryBlockExample.execute(api));
28+
runSafely("QueryBlockHashExample", () -> QueryBlockHashExample.execute(api));
29+
runSafely("QueryBlockHeaderExample", () -> QueryBlockHeaderExample.execute(api));
30+
runSafely("QueryBlockEventsExample", () -> QueryBlockEventsExample.execute(api));
31+
runSafely("QueryFinalizedHeadExample", () -> QueryFinalizedHeadExample.execute(api));
32+
runSafely("QueryMetadataExample", () -> QueryMetadataExample.execute(api));
33+
runSafely("QueryNonceExample", () -> QueryNonceExample.execute(api));
34+
runSafely("QueryRuntimeVersionExample", () -> QueryRuntimeVersionExample.execute(api));
35+
runSafely("QuerySystemDetailsExample", () -> QuerySystemDetailsExample.execute(api));
36+
runSafely("SubscribeAllHeadsExample", () -> SubscribeAllHeadsExample.execute(api));
37+
runSafely("SubscribeBestHeadsExample", () -> SubscribeBestHeadsExample.execute(api));
38+
runSafely("SubscribeFinalizedHeadsExample", () -> SubscribeFinalizedHeadsExample.execute(api));
39+
runSafely("SubscribeLatestHeadsExample", () -> SubscribeLatestHeadsExample.execute(api));
40+
runSafely("SubscribeRuntimeVersionExample", () -> SubscribeRuntimeVersionExample.execute(api));
41+
runSafely("ParsingMetadataExample", () -> ParsingMetadataExample.execute(api));
4242
}
4343

44-
Ed25519WalletExample.execute();
45-
ScaleEncodingExample.execute();
46-
AddressConversionExample.execute();
47-
GenericWalletExample.execute();
44+
runSafely("Ed25519WalletExample", Ed25519WalletExample::execute);
45+
runSafely("ScaleEncodingExample", ScaleEncodingExample::execute);
46+
runSafely("AddressConversionExample", AddressConversionExample::execute);
47+
runSafely("GenericWalletExample", GenericWalletExample::execute);
4848

4949
Wallet wallet = Wallet.generate();
5050
try (OfflineApi api = new OfflineApi()) {
51-
OfflineSigningExample.execute(api, wallet.getSigner());
51+
runSafely("OfflineSigningExample", () -> OfflineSigningExample.execute(api, wallet.getSigner()));
52+
}
53+
54+
logger.info("All examples finished.");
55+
}
56+
57+
private static void runSafely(String name, RunAll.ThrowingRunnable task) {
58+
try {
59+
logger.info("→ Running {}", name);
60+
task.run();
61+
logger.info("✓ Completed {}", name);
62+
} catch (Exception e) {
63+
logger.error("✗ Failed {}: {}", name, e.getMessage(), e);
5264
}
5365
}
5466
}

0 commit comments

Comments
 (0)