Skip to content

Commit e137515

Browse files
committed
Return the PosModifierv2, PosFlags and PosHashProof in REST API
- The RPC API already returns these values.
1 parent e57dfde commit e137515

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreController.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Blockcore.Features.BlockStore.AddressIndexing;
1010
using Blockcore.Features.BlockStore.Api.Models;
1111
using Blockcore.Features.BlockStore.Models;
12+
using Blockcore.Features.Consensus;
1213
using Blockcore.Interfaces;
1314
using Blockcore.Networks;
1415
using Blockcore.Utilities;
@@ -48,14 +49,17 @@ public class BlockStoreController : Controller
4849
/// <summary>UTXO indexer.</summary>
4950
private readonly IUtxoIndexer utxoIndexer;
5051

52+
private readonly IStakeChain stakeChain;
53+
5154
public BlockStoreController(
5255
Network network,
5356
ILoggerFactory loggerFactory,
5457
IBlockStore blockStore,
5558
IChainState chainState,
5659
ChainIndexer chainIndexer,
5760
IAddressIndexer addressIndexer,
58-
IUtxoIndexer utxoIndexer)
61+
IUtxoIndexer utxoIndexer,
62+
IStakeChain stakeChain)
5963
{
6064
Guard.NotNull(network, nameof(network));
6165
Guard.NotNull(loggerFactory, nameof(loggerFactory));
@@ -69,6 +73,7 @@ public BlockStoreController(
6973
this.chainState = chainState;
7074
this.chainIndexer = chainIndexer;
7175
this.utxoIndexer = utxoIndexer;
76+
this.stakeChain = stakeChain;
7277
this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
7378
}
7479

@@ -136,6 +141,15 @@ public IActionResult GetBlock([FromQuery] SearchByHashRequest query)
136141
blockModel.PosBlockSignature = posBlock.BlockSignature.ToHex(this.network.Consensus.ConsensusFactory);
137142
blockModel.PosBlockTrust = new Target(chainedHeader.GetBlockTarget()).ToUInt256().ToString();
138143
blockModel.PosChainTrust = chainedHeader.ChainWork.ToString(); // this should be similar to ChainWork
144+
145+
if (this.stakeChain != null)
146+
{
147+
BlockStake blockStake = this.stakeChain.Get(blockId);
148+
149+
blockModel.PosModifierv2 = blockStake?.StakeModifierV2.ToString();
150+
blockModel.PosFlags = blockStake?.Flags == BlockFlag.BLOCK_PROOF_OF_STAKE ? "proof-of-stake" : "proof-of-work";
151+
blockModel.PosHashProof = blockStake?.HashProof.ToString();
152+
}
139153
}
140154

141155
return this.Json(blockModel);

src/Node/Blockcore.Node/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
},
3535
"CITY (MAIN/LOCAL)": {
3636
"commandName": "Project",
37-
"commandLineArgs": "--chain=CITY -server -rpcallowip=127.0.0.1 -rpcbind=127.0.0.1 -rpcpassword=rpcpassword -rpcuser=rpcuser -datadir=nodedata -enableauth=0"
37+
"commandLineArgs": "--chain=CITY -server -addressindex -rpcallowip=127.0.0.1 -rpcbind=127.0.0.1 -rpcpassword=rpcpassword -rpcuser=rpcuser -datadir=nodedata -enableauth=0"
3838
},
3939
"CITY (TEST/LOCAL)": {
4040
"commandName": "Project",

0 commit comments

Comments
 (0)