Skip to content

Commit d2493a8

Browse files
committed
Explorer/Parser updated
1 parent 9570395 commit d2493a8

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

bvm/Shaders/Explorer/Parser.cpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ namespace Testnet {
2929
#include "../l2tst1/contract_l1.h"
3030
#include "../l2tst1/contract_l2.h"
3131
#include "../pbft/pbft_dpos.h"
32+
#include "../pbft/pbft_stat.h"
3233

3334
template <uint32_t nMaxLen>
3435
void DocAddTextLen(const char* szID, const void* szValue, uint32_t nLen)
@@ -226,6 +227,7 @@ void DocAddPerc(const char* sz, MultiPrecision::Float x, uint32_t nDigsAfterDot
226227
macro(BlackHole, BlackHole::s_SID) \
227228
macro(L2Tst1_L2, L2Tst1_L2::s_SID) \
228229
macro(PBFT_DPOS, PBFT_DPOS::s_SID) \
230+
macro(PBFT_STAT, PBFT_STAT::s_SID) \
229231

230232
#define HandleContractsVer(macro) \
231233
macro(Oracle2, Oracle2::s_pSID) \
@@ -1201,6 +1203,67 @@ void ParserContext::On_PBFT_Commission(uint16_t commission_cpc, bool bIsTbl /* =
12011203
Env::DocAddText(bIsTbl ? "" : "Commission", szVal);
12021204
}
12031205

1206+
void ParserContext::OnState_PBFT_STAT()
1207+
{
1208+
{
1209+
Env::DocGroup gr2("Validators");
1210+
1211+
DocSetType("table");
1212+
Env::DocArray gr3("value");
1213+
1214+
{
1215+
Env::DocArray gr4("");
1216+
DocAddTableHeader("Validator");
1217+
DocAddTableHeader("Status");
1218+
DocAddTableHeader("Weight");
1219+
}
1220+
1221+
Env::Key_T<I_PBFT::State::Validator::Key> vk0, vk1;
1222+
_POD_(vk0.m_Prefix.m_Cid) = m_Cid;
1223+
_POD_(vk1.m_Prefix.m_Cid) = m_Cid;
1224+
_POD_(vk0.m_KeyInContract.m_Address).SetZero();
1225+
_POD_(vk1.m_KeyInContract.m_Address).SetObject(0xff);
1226+
1227+
for (Env::VarReader r(vk0, vk1); ; )
1228+
{
1229+
I_PBFT::State::Validator vp;
1230+
if (!r.MoveNext_T(vk0, vp))
1231+
break;
1232+
1233+
Env::DocArray gr4("");
1234+
1235+
Env::DocAddBlob_T("", vk0.m_KeyInContract.m_Address);
1236+
On_PBFT_Status("", vp.m_Status);
1237+
1238+
DocAddAmount("", vp.m_Weight);
1239+
}
1240+
1241+
}
1242+
}
1243+
1244+
void ParserContext::OnMethod_PBFT_STAT()
1245+
{
1246+
switch (m_iMethod)
1247+
{
1248+
case I_PBFT::Method::ValidatorStatusUpdate::s_iMethod:
1249+
OnMethod("ValidatorStatusUpdate");
1250+
{
1251+
auto pArg = get_ArgsAs<I_PBFT::Method::ValidatorStatusUpdate>();
1252+
if (pArg)
1253+
{
1254+
GroupArgs gr;
1255+
On_PBFT_ValidatorAddr(pArg->m_Address);
1256+
On_PBFT_Status("Status", pArg->m_Status);
1257+
}
1258+
}
1259+
break;
1260+
1261+
case PBFT_DPOS::Method::AddReward::s_iMethod:
1262+
OnMethod("AddReward");
1263+
break;
1264+
}
1265+
}
1266+
12041267
void ParserContext::OnState_VaultAnon()
12051268
{
12061269
}

bvm/Shaders/Explorer/Parser.wasm

1.08 KB
Binary file not shown.

0 commit comments

Comments
 (0)