use of io.nuls.consensus.entity.member.Deposit in project nuls by nuls-io.
the class JoinConsensusTxService method onCommit.
@Override
public void onCommit(PocJoinConsensusTransaction tx) throws NulsException {
manager.changeDepositStatus(tx.getTxData().getHexHash(), ConsensusStatusEnum.WAITING);
Consensus<Deposit> cd = tx.getTxData();
cd.getExtend().setTxHash(tx.getHash().getDigestHex());
cd.getExtend().setStatus(ConsensusStatusEnum.WAITING.getCode());
DepositPo po = ConsensusTool.depositToPojo(cd, tx.getHash().getDigestHex());
po.setBlockHeight(tx.getBlockHeight());
po.setTime(tx.getTime());
depositDataService.save(po);
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("agentHash", cd.getExtend().getAgentHash());
List<DepositPo> poList = depositDataService.getList(paramsMap);
long sum = 0L;
for (DepositPo depositPo : poList) {
sum += depositPo.getDeposit();
}
if (sum >= PocConsensusConstant.SUM_OF_DEPOSIT_OF_AGENT_LOWER_LIMIT.getValue()) {
manager.changeAgentStatusByHash(tx.getTxData().getExtend().getAgentHash(), ConsensusStatusEnum.IN);
manager.changeDepositStatusByAgentHash(tx.getTxData().getExtend().getAgentHash(), ConsensusStatusEnum.IN);
AgentPo daPo = this.accountDataService.get(cd.getExtend().getAgentHash());
if (null == daPo) {
throw new NulsRuntimeException(ErrorCode.DATA_ERROR, "the agent cannot find,agent hash:" + cd.getExtend().getAgentHash());
}
daPo.setStatus(ConsensusStatusEnum.IN.getCode());
this.accountDataService.updateSelective(daPo);
}
EntrustConsensusNotice notice = new EntrustConsensusNotice();
notice.setEventBody(tx);
NulsContext.getServiceBean(EventBroadcaster.class).publishToLocal(notice);
}
use of io.nuls.consensus.entity.member.Deposit in project nuls by nuls-io.
the class PocMeetingMember method calcDeposit.
public void calcDeposit() {
Na totolEntrustDeposit = Na.ZERO;
if (delegateList == null) {
return;
}
for (Consensus<Deposit> dc : delegateList) {
totolEntrustDeposit = totolEntrustDeposit.add(dc.getExtend().getDeposit());
}
this.totolEntrustDeposit = totolEntrustDeposit;
}
use of io.nuls.consensus.entity.member.Deposit in project nuls by nuls-io.
the class ConsensusCacheManager method init.
public void init() {
Account self = accountService.getDefaultAccount();
List<DepositPo> depositPoList = this.depositDao.getList();
List<AgentPo> agentPoList = this.agentDao.getList();
Consensus mine = null;
for (AgentPo po : agentPoList) {
Consensus<Agent> ca = ConsensusTool.fromPojo(po);
this.cacheAgent(ca);
if (null != self && ca.getAddress().equals(self.getAddress().toString())) {
mine = ca;
}
}
for (DepositPo dpo : depositPoList) {
Consensus<Deposit> cd = ConsensusTool.fromPojo(dpo);
this.cacheDeposit(cd);
if (null != self && null == mine && cd.getAddress().equals(self.getAddress().toString())) {
mine = cd;
}
}
if (null == self) {
return;
}
ConsensusStatusInfo info = new ConsensusStatusInfo();
info.setAccount(self);
if (null == mine) {
info.setStatus(ConsensusStatusEnum.NOT_IN.getCode());
} else if (mine.getExtend() instanceof Agent) {
info.setSeed(((Agent) mine.getExtend()).getSeed());
info.setStatus(((Agent) mine.getExtend()).getStatus());
}
this.updateConsensusStatusInfo(info);
}
Aggregations