Skip to content

Commit ce4d08b

Browse files
Merge pull request #250 from 0xsequence/Feature/chainsDec22024
Added LAOS and Root networks and testnets. Update indexer ping test s…
2 parents dfabf26 + 662e9a7 commit ce4d08b

3 files changed

Lines changed: 60 additions & 23 deletions

File tree

Plugins/SequencePlugin/Source/SequencePlugin/Public/Util/SequenceSupport.h

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,34 +51,37 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
5151

5252
static inline TMap<int64, FString> NetworkIdToUrlMap = {
5353
FIdName(1,TEXT("mainnet")),
54-
FIdName(13371,TEXT("immutable-zkevm")),
55-
FIdName(1482601649,TEXT("skale-nebula")),
5654
FIdName(10,TEXT("optimism")),
5755
FIdName(56,TEXT("bsc")),
5856
FIdName(100,TEXT("gnosis")),
5957
FIdName(137,TEXT("polygon")),
6058
FIdName(1101,TEXT("polygon-zkevm")),
59+
FIdName(6283,TEXT("laos")),
60+
FIdName(7668,TEXT("rootnet")),
6161
FIdName(8333,TEXT("b3")),
6262
FIdName(8453,TEXT("base")),
63+
FIdName(13371,TEXT("immutable-zkevm")),
6364
FIdName(19011,TEXT("homeverse")),
6465
FIdName(33139,TEXT("apechain")),
6566
FIdName(42161,TEXT("arbitrum")),
6667
FIdName(42170,TEXT("arbitrum-nova")),
6768
FIdName(43114,TEXT("avalanche")),
6869
FIdName(81457,TEXT("blast")),
6970
FIdName(660279,TEXT("xai")),
71+
FIdName(1482601649,TEXT("skale-nebula")),
7072

71-
FIdName(13473,TEXT("immutable-zkevm-testnet")),
7273
FIdName(97,TEXT("bsc-testnet")),
7374
FIdName(1946,TEXT("soneium-minato")),
7475
FIdName(1993,TEXT("b3-sepolia")),
7576
FIdName(2730,TEXT("xr-sepolia")),
77+
FIdName(7672,TEXT("rootnet-porcini")),
78+
FIdName(13473,TEXT("immutable-zkevm-testnet")),
7679
FIdName(33111,TEXT("apechain-testnet")),
7780
FIdName(40875,TEXT("homeverse-testnet")),
7881
FIdName(43113,TEXT("avalanche-testnet")),
82+
FIdName(62850,TEXT("laos-sigma-testnet")),
7983
FIdName(80002,TEXT("amoy")),
8084
FIdName(84532,TEXT("base-sepolia")),
81-
FIdName(94984,TEXT("borne-testnet")),
8285
FIdName(421614,TEXT("arbitrum-sepolia")),
8386
FIdName(11155111,TEXT("sepolia")),
8487
FIdName(11155420,TEXT("optimism-sepolia")),
@@ -105,6 +108,8 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
105108
FIdName(43114,TEXT("Avalanche")),
106109
FIdName(81457,TEXT("Blast")),
107110
FIdName(660279,TEXT("Xai")),
111+
FIdName(6283,TEXT("LAOS")),
112+
FIdName(7668,TEXT("Root Network")),
108113

109114
FIdName(13473,TEXT("Immutable Testnet")),
110115
FIdName(97,TEXT("BNB Smart Chain Testnet")),
@@ -116,14 +121,16 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
116121
FIdName(43113,TEXT("Avalanche Testnet")),
117122
FIdName(80002,TEXT("Polygon Amoy")),
118123
FIdName(84532,TEXT("Base Sepolia")),
119-
FIdName(94984,TEXT("Borne Testnet")),
120124
FIdName(421614,TEXT("Arbitrum Sepolia")),
121125
FIdName(11155111,TEXT("Sepolia")),
122126
FIdName(11155420,TEXT("Optimism Sepolia")),
123127
FIdName(21000000,TEXT("TOY Testnet")),
124128
FIdName(37084624,TEXT("SKALE Nebula Gaming Hub Testnet")),
125129
FIdName(168587773,TEXT("Blast Sepolia")),
126-
FIdName(37714555429,TEXT("Xai Sepolia"))};
130+
FIdName(37714555429,TEXT("Xai Sepolia")),
131+
FIdName(62850,TEXT("LAOS Sigma Testnet")),
132+
FIdName(7672,TEXT("Root Network Porcini Testnet")),
133+
};
127134

128135
static inline TMap<FString, int64> NetworkNameToIdMap = {
129136
FNameId(TEXT("ethereum"),1),
@@ -143,6 +150,8 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
143150
FNameId(TEXT("avalanche"),43114),
144151
FNameId(TEXT("blast"),81457),
145152
FNameId(TEXT("xai"),660279),
153+
FNameId(TEXT("laos"),6283),
154+
FNameId(TEXT("rootnet"),7668),
146155

147156
FNameId(TEXT("immutable-testnet"),13473),
148157
FNameId(TEXT("bnbsmartchaintestnet"),97),
@@ -151,17 +160,19 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
151160
FNameId(TEXT("xrsepolia"),2730),
152161
FNameId(TEXT("apechaintestnet"),33111),
153162
FNameId(TEXT("oasyshomeversetestnet"),40875),
154-
FNameId(TEXT("avalanchetestnet"),43113),
163+
FNameId(TEXT("avalanche-testnet"),43113),
155164
FNameId(TEXT("polygonamoy"),80002),
156165
FNameId(TEXT("basesepolia"),84532),
157-
FNameId(TEXT("bornetestnet"),94984),
158166
FNameId(TEXT("arbitrumsepolia"),421614),
159167
FNameId(TEXT("sepolia"),11155111),
160168
FNameId(TEXT("optimismsepolia"),11155420),
161169
FNameId(TEXT("toytestnet"),21000000),
162170
FNameId(TEXT("skalenebulagaminghubtestnet"),37084624),
163171
FNameId(TEXT("blastsepolia"),168587773),
164-
FNameId(TEXT("xaisepolia"),37714555429)};
172+
FNameId(TEXT("xaisepolia"),37714555429),
173+
FNameId(TEXT("laos-sigma"),62850),
174+
FNameId(TEXT("rootnet-porcini"),7672),
175+
};
165176

166177
static inline TMap<ENetwork, int64> NetworkEnumToIdMap = {
167178
{ENetwork::Ethereum, 1},
@@ -181,6 +192,8 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
181192
{ENetwork::Avalanche, 43114},
182193
{ENetwork::Blast, 81457},
183194
{ENetwork::Xai, 660279},
195+
{ENetwork::LAOS, 6283},
196+
{ENetwork::Root, 7668},
184197

185198
{ENetwork::ImmutableTestnet, 13473},
186199
{ENetwork::BNBSmartChainTestnet, 97},
@@ -192,15 +205,16 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
192205
{ENetwork::AvalancheTestnet, 43113},
193206
{ENetwork::PolygonAmoy, 80002},
194207
{ENetwork::BaseSepolia, 84532},
195-
{ENetwork::BorneTestnet, 94984},
196208
{ENetwork::ArbitrumSepolia, 421614},
197209
{ENetwork::Sepolia, 11155111},
198210
{ENetwork::OptimismSepolia, 11155420},
199211
{ENetwork::TOYTestnet, 21000000},
200212
{ENetwork::SKALENebulaGamingHubTestnet, 37084624},
201213
{ENetwork::BlastSepolia, 168587773},
202-
{ENetwork::XaiSepolia, 37714555429}
203-
};
214+
{ENetwork::XaiSepolia, 37714555429},
215+
{ENetwork::LAOSSigma, 62850},
216+
{ENetwork::RootPorcini, 7672},
217+
};
204218

205219
static inline TMap<ENetwork, FString> NetworkEnumToNameMap = {
206220
{ENetwork::Ethereum, TEXT("Ethereum")},
@@ -220,6 +234,8 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
220234
{ENetwork::Avalanche, TEXT("Avalanche")},
221235
{ENetwork::Blast, TEXT("Blast")},
222236
{ENetwork::Xai, TEXT("Xai")},
237+
{ENetwork::LAOS, TEXT("LAOS")},
238+
{ENetwork::Root, TEXT("Root Network")},
223239

224240
{ENetwork::ImmutableTestnet, TEXT("Immutable Testnet")},
225241
{ENetwork::BNBSmartChainTestnet, TEXT("BNB Smart Chain Testnet")},
@@ -231,14 +247,15 @@ class SEQUENCEPLUGIN_API USequenceSupport : public UObject
231247
{ENetwork::AvalancheTestnet, TEXT("Avalanche Testnet")},
232248
{ENetwork::PolygonAmoy, TEXT("Polygon Amoy")},
233249
{ENetwork::BaseSepolia, TEXT("Base Sepolia")},
234-
{ENetwork::BorneTestnet, TEXT("Borne Testnet")},
235250
{ENetwork::ArbitrumSepolia, TEXT("Arbitrum Sepolia")},
236251
{ENetwork::Sepolia, TEXT("Sepolia")},
237252
{ENetwork::OptimismSepolia, TEXT("Optimism Sepolia")},
238253
{ENetwork::TOYTestnet, TEXT("TOY Testnet")},
239254
{ENetwork::SKALENebulaGamingHubTestnet, TEXT("SKALE Nebula Gaming Hub Testnet")},
240255
{ENetwork::BlastSepolia, TEXT("Blast Sepolia")},
241-
{ENetwork::XaiSepolia, TEXT("Xai Sepolia")}
256+
{ENetwork::XaiSepolia, TEXT("Xai Sepolia")},
257+
{ENetwork::LAOSSigma, TEXT("LAOS Sigma Testnet")},
258+
{ENetwork::RootPorcini, TEXT("Root Network Porcini Testnet")},
242259
};
243260

244261
public:

Plugins/SequencePlugin/Source/SequencePlugin/Public/Util/Structs/BE_Enums.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ enum ENetwork
3333
Avalanche UMETA(DisplayName = "Avalanche"),
3434
Blast UMETA(DisplayName = "Blast"),
3535
Xai UMETA(DisplayName = "Xai"),
36+
LAOS UMETA(DisplayName = "LAOS"),
37+
Root UMETA(DisplayName = "Root Network"),
3638

3739
ImmutableTestnet UMETA(DisplayName = "Immutable Testnet"),
3840
BNBSmartChainTestnet UMETA(DisplayName = "BNB Smart Chain Testnet"),
@@ -44,12 +46,13 @@ enum ENetwork
4446
AvalancheTestnet UMETA(DisplayName = "Avalanche Testnet"),
4547
PolygonAmoy UMETA(DisplayName = "Polygon Amoy"),
4648
BaseSepolia UMETA(DisplayName = "Base Sepolia"),
47-
BorneTestnet UMETA(DisplayName = "Borne Testnet"),
4849
ArbitrumSepolia UMETA(DisplayName = "Arbitrum Sepolia"),
4950
Sepolia UMETA(DisplayName = "Sepolia"),
5051
OptimismSepolia UMETA(DisplayName = "Optimism Sepolia"),
5152
TOYTestnet UMETA(DisplayName = "TOY Testnet"),
5253
SKALENebulaGamingHubTestnet UMETA(DisplayName = "SKALE Nebula Gaming Hub Testnet"),
5354
BlastSepolia UMETA(DisplayName = "Blast Sepolia"),
54-
XaiSepolia UMETA(DisplayName = "XAI Sepolia")
55+
XaiSepolia UMETA(DisplayName = "XAI Sepolia"),
56+
LAOSSigma UMETA(DisplayName = "LAOS Sigma Testnet"),
57+
RootPorcini UMETA(DisplayName = "Root Network Porcini Testnet"),
5558
};

Plugins/SequenceTests/Source/SequenceTests/Private/IndexerEndToEndTests/IndexerPingTest.cpp

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
IMPLEMENT_COMPLEX_AUTOMATION_TEST(FIndexerPingTest, "SequencePlugin.EndToEnd.IndexerTests.PingTest", EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
1111

1212
/* Latent command used to poll off main thread to see if our pings are done */
13-
DEFINE_LATENT_AUTOMATION_COMMAND_TWO_PARAMETER(FIsDone, const UIndexerRequestsTestData *, IndexerRequestsTestData, FAutomationTestBase *, PingTest);
13+
DEFINE_LATENT_AUTOMATION_COMMAND_THREE_PARAMETER(FIsDone, const UIndexerRequestsTestData *, IndexerRequestsTestData, FAutomationTestBase *, PingTest, const TArray<int64>*, FailedNetworks);
1414

1515
/* Latent command used to batch process pings w/o exceeding network threading limits */
1616
DEFINE_LATENT_AUTOMATION_COMMAND_FIVE_PARAMETER(FProcessPingBatch, const int32, WatchIndex, const int32, FinishIndex, const UIndexerRequestsTestData *, IndexerRequestsTestData, const TSuccessCallback<bool>, SuccessCallback, const FFailureCallback, FailureCallback);
@@ -46,7 +46,13 @@ bool FIsDone::Update()
4646
}
4747
else
4848
{
49-
PingTest->AddError(FString::Printf(TEXT("Not all pings returned successfully")));
49+
FString FailedNetworksStr;
50+
for (const int64& NetworkId : *FailedNetworks)
51+
{
52+
const FString NetworkName = USequenceSupport::GetNetworkName(NetworkId);
53+
FailedNetworksStr += FString::Printf(TEXT("%s (%lld), "), *NetworkName, NetworkId);
54+
}
55+
PingTest->AddError(FString::Printf(TEXT("Ping failed for networks: %s"), *FailedNetworksStr));
5056
}
5157

5258
return true;
@@ -61,24 +67,35 @@ void FIndexerPingTest::GetTests(TArray<FString>& OutBeautifiedNames, TArray<FStr
6167
bool FIndexerPingTest::RunTest(const FString& Parameters)
6268
{
6369
const TArray<int64> Networks = USequenceSupport::GetAllNetworkIds();
64-
UIndexerRequestsTestData * IndexerRequestsTestData = UIndexerRequestsTestData::Make(Networks.Num());
70+
UIndexerRequestsTestData* IndexerRequestsTestData = UIndexerRequestsTestData::Make(Networks.Num());
71+
72+
// Create a shared pointer to track failed networks
73+
TArray<int64>* FailedNetworks = new TArray<int64>();
6574

6675
const TSuccessCallback<bool> GenericSuccess = [this, IndexerRequestsTestData](const bool bSuccess)
6776
{
6877
const FString Message = (bSuccess) ? "Ping Success" : "Ping Failure";
6978
AddInfo(FString::Printf(TEXT("%s. Remaining pings: %d"), *Message, IndexerRequestsTestData->DecrementPendingRequests()));
7079
};
7180

72-
const FFailureCallback GenericFailure = [this, IndexerRequestsTestData](const FSequenceError& Error)
81+
const FFailureCallback GenericFailure = [this, IndexerRequestsTestData, Networks, FailedNetworks](const FSequenceError& Error)
7382
{
83+
// Track which network failed
84+
const int32 CurrentIndex = Networks.Num() - IndexerRequestsTestData->GetPendingRequests();
85+
FailedNetworks->Add(Networks[CurrentIndex]);
86+
7487
const FString Message = "Ping Failure";
75-
AddError(FString::Printf(TEXT("%s: %s. Remaining pings: %d"), *Message, *Error.Message, IndexerRequestsTestData->DecrementPendingRequests()));
88+
AddError(FString::Printf(TEXT("%s for network %lld: %s. Remaining pings: %d"),
89+
*Message,
90+
Networks[CurrentIndex],
91+
*Error.Message,
92+
IndexerRequestsTestData->DecrementPendingRequests()));
7693
IndexerRequestsTestData->RequestFailed();
7794
};
7895

7996
AddInfo(FString::Printf(TEXT("Starting %d pings"), IndexerRequestsTestData->GetPendingRequests()));
8097

81-
constexpr int32 BatchSize = 5;
98+
constexpr int32 BatchSize = 1;
8299
FBatchTestBuilder BatchTestBuilder(BatchSize, Networks.Num());
83100

84101
while (BatchTestBuilder.CanBuildBatch())
@@ -87,6 +104,6 @@ bool FIndexerPingTest::RunTest(const FString& Parameters)
87104
BatchTestBuilder.BuildNextBatch();
88105
}
89106

90-
ADD_LATENT_AUTOMATION_COMMAND(FIsDone(IndexerRequestsTestData, this));
107+
ADD_LATENT_AUTOMATION_COMMAND(FIsDone(IndexerRequestsTestData, this, FailedNetworks));
91108
return true;
92109
}

0 commit comments

Comments
 (0)