From bb5402c9a9199db1ea64b7931e50eb2965445f02 Mon Sep 17 00:00:00 2001 From: blackjok3r Date: Mon, 24 Sep 2018 22:10:37 +0800 Subject: [PATCH] add eras for cross chain auth? --- src/crosschain_authority.cpp | 2 ++ src/notarisationdb.cpp | 42 +++++++++++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/crosschain_authority.cpp b/src/crosschain_authority.cpp index 8dc8fc77f..ed7457e23 100644 --- a/src/crosschain_authority.cpp +++ b/src/crosschain_authority.cpp @@ -53,6 +53,7 @@ bool CheckTxAuthority(const CTransaction &tx, CrosschainAuthority auth) return true; } +/* const CrosschainAuthority auth_STAKED = [&](){ CrosschainAuthority auth; auth.requiredSigs = (num_notaries_STAKED / 5); @@ -62,3 +63,4 @@ const CrosschainAuthority auth_STAKED = [&](){ sscanf(notaries_STAKED[n][1]+(i*2), "%2hhx", auth.notaries[n]+i); return auth; }(); +*/ diff --git a/src/notarisationdb.cpp b/src/notarisationdb.cpp index 3811ccb8f..3c5234089 100644 --- a/src/notarisationdb.cpp +++ b/src/notarisationdb.cpp @@ -19,7 +19,7 @@ NotarisationsInBlock ScanBlockNotarisations(const CBlock &block, int nHeight) { EvalRef eval; NotarisationsInBlock vNotarisations; - //CrosschainAuthority auth_STAKED; + CrosschainAuthority auth_STAKED; int timestamp = block.nTime; for (unsigned int i = 0; i < block.vtx.size(); i++) { @@ -43,9 +43,45 @@ NotarisationsInBlock ScanBlockNotarisations(const CBlock &block, int nHeight) printf("Authorised notarisation data for %s \n",data.symbol); } else if (authority == CROSSCHAIN_STAKED) { // We need to create auth_STAKED dynamically here based on timestamp - printf("timestamp = %d\n",timestamp); int staked_era = STAKED_era(timestamp); - printf("ERA = %d \n",staked_era); + printf("ERA.(%d) \n",staked_era); + if (staked_era == 0) + { + // era 0 + auth_STAKED.requiredSigs = (num_notaries_STAKED / 5); + auth_STAKED.size = num_notaries_STAKED; + for (int n=0; n 3) { + printf("Invalid ERA.(%d), this should not happen",staked_era); + continue; + } + } if (!CheckTxAuthority(tx, auth_STAKED)) continue; printf("Authorised notarisation data for %s \n",data.symbol);