public override SynthesizedBlock ConvertApiSynthesizedBlock(SynthesizedBlockAPI synthesizedBlockApi) { SynthesizedBlock synthesizedBlock = base.ConvertApiSynthesizedBlock(synthesizedBlockApi); AccountId accountId = synthesizedBlockApi.AccountId != null ? new AccountId(synthesizedBlockApi.AccountId) : new AccountId(synthesizedBlockApi.AccountHash); if (synthesizedBlockApi is NeuraliumSynthesizedBlockApi neuraliumSynthesizedBlockApi && synthesizedBlock is NeuraliumSynthesizedBlock neuraliumSynthesizedBlock) { foreach (NeuraliumSynthesizedBlockApi.NeuraliumSynthesizedElectionResultAPI electionResult in neuraliumSynthesizedBlockApi.FinalElectionResults) { NeuraliumSynthesizedBlock.NeuraliumSynthesizedElectionResult neuraliumSynthesizedElectionResult = new NeuraliumSynthesizedBlock.NeuraliumSynthesizedElectionResult(); neuraliumSynthesizedElectionResult.BlockId = synthesizedBlockApi.BlockId; neuraliumSynthesizedElectionResult.Timestamp = synthesizedBlockApi.Timestamp; AccountId delegateAccountId = null; if (!string.IsNullOrWhiteSpace(electionResult.DelegateAccountId)) { delegateAccountId = new AccountId(electionResult.DelegateAccountId); } neuraliumSynthesizedElectionResult.ElectedAccounts.Add(accountId, (accountId, delegateAccountId, (Enums.ElectedPeerShareTypes)electionResult.PeerType, electionResult.SelectedTransactions)); neuraliumSynthesizedElectionResult.BlockId = synthesizedBlockApi.BlockId - electionResult.Offset; neuraliumSynthesizedElectionResult.ElectedGains.Add(accountId, (electionResult.BountyShare, electionResult.Tips)); neuraliumSynthesizedBlock.FinalElectionResults.Add(neuraliumSynthesizedElectionResult); } } return(synthesizedBlock); }
protected override SynthesizedBlock CreateSynthesizedBlockFromApi(SynthesizedBlockAPI synthesizedBlockApi) { return(new NeuraliumSynthesizedBlock()); }