Search in sources :

Example 1 with AgentPo

use of io.nuls.db.entity.AgentPo in project nuls by nuls-io.

the class RegisterAgentTxService method onCommit.

@Override
public void onCommit(RegisterAgentTransaction tx) throws NulsException {
    manager.changeAgentStatusByHash(tx.getTxData().getHexHash(), ConsensusStatusEnum.WAITING);
    Consensus<Agent> ca = tx.getTxData();
    ca.getExtend().setStatus(ConsensusStatusEnum.WAITING.getCode());
    AgentPo po = ConsensusTool.agentToPojo(ca);
    delegateAccountService.save(po);
    RegisterAgentNotice notice = new RegisterAgentNotice();
    notice.setEventBody(tx);
    NulsContext.getServiceBean(EventBroadcaster.class).publishToLocal(notice);
}
Also used : EventBroadcaster(io.nuls.event.bus.service.intf.EventBroadcaster) Agent(io.nuls.consensus.entity.member.Agent) RegisterAgentNotice(io.nuls.consensus.event.notice.RegisterAgentNotice) AgentPo(io.nuls.db.entity.AgentPo)

Example 2 with AgentPo

use of io.nuls.db.entity.AgentPo in project nuls by nuls-io.

the class ConsensusTool method agentToPojo.

public static AgentPo agentToPojo(Consensus<Agent> bean) {
    if (null == bean) {
        return null;
    }
    AgentPo po = new AgentPo();
    po.setAgentAddress(bean.getAddress());
    po.setId(bean.getHexHash());
    po.setDeposit(bean.getExtend().getDeposit().getValue());
    po.setStartTime(bean.getExtend().getStartTime());
    po.setRemark(bean.getExtend().getIntroduction());
    po.setPackingAddress(bean.getExtend().getPackingAddress());
    po.setStatus(bean.getExtend().getStatus());
    po.setAgentName(bean.getExtend().getAgentName());
    po.setCommissionRate(bean.getExtend().getCommissionRate());
    return po;
}
Also used : AgentPo(io.nuls.db.entity.AgentPo)

Example 3 with AgentPo

use of io.nuls.db.entity.AgentPo in project nuls by nuls-io.

the class PocConsensusResource method getAllAgentStatusList.

@GET
@Path("/agent/status")
@Produces(MediaType.APPLICATION_JSON)
public RpcResult getAllAgentStatusList() {
    RpcResult rpcResult = RpcResult.getSuccess();
    List<AgentPo> polist = agentDataService.getList();
    if (null == polist || polist.isEmpty()) {
        return rpcResult;
    }
    Map<String, Integer> statusMap = new HashMap<>();
    for (AgentPo po : polist) {
        statusMap.put(po.getAgentAddress(), po.getStatus());
    }
    return rpcResult.setData(statusMap);
}
Also used : HashMap(java.util.HashMap) RpcResult(io.nuls.rpc.entity.RpcResult) AgentPo(io.nuls.db.entity.AgentPo)

Example 4 with AgentPo

use of io.nuls.db.entity.AgentPo in project nuls by nuls-io.

the class ExitConsensusTxService method onRollback.

@Override
public void onRollback(PocExitConsensusTransaction tx) throws NulsException {
    Transaction joinTx = ledgerService.getTx(tx.getTxData());
    if (joinTx.getType() == TransactionConstant.TX_TYPE_REGISTER_AGENT) {
        RegisterAgentTransaction raTx = (RegisterAgentTransaction) joinTx;
        Consensus<Agent> ca = raTx.getTxData();
        ca.getExtend().setStatus(ConsensusStatusEnum.IN.getCode());
        manager.cacheAgent(ca);
        AgentPo agentPo = new AgentPo();
        agentPo.setId(raTx.getTxData().getHexHash());
        agentPo.setStatus(ConsensusStatusEnum.IN.getCode());
        this.agentDataService.updateSelective(agentPo);
        DepositPo dpo = new DepositPo();
        dpo.setId(raTx.getTxData().getHexHash());
        dpo.setStatus(ConsensusStatusEnum.IN.getCode());
        this.depositDataService.updateSelectiveByAgentHash(dpo);
        CancelConsensusNotice notice = new CancelConsensusNotice();
        notice.setEventBody(tx);
        NulsContext.getServiceBean(EventBroadcaster.class).publishToLocal(notice);
        // cache delegates
        Map<String, Object> params = new HashMap<>();
        params.put("agentHash", raTx.getTxData().getHexHash());
        List<DepositPo> polist = this.depositDataService.getList(params);
        if (null == polist || polist.isEmpty()) {
            return;
        }
        for (DepositPo po : polist) {
            Consensus<Deposit> cd = ConsensusTool.fromPojo(po);
            this.manager.cacheDeposit(cd);
        }
        this.ledgerService.unlockTxRollback(tx.getTxData().getDigestHex());
        Map<String, Object> paramsMap = new HashMap<>();
        paramsMap.put("agentHash", ca.getHexHash());
        List<DepositPo> poList = depositDataService.getList(paramsMap);
        for (DepositPo po : poList) {
            this.ledgerService.unlockTxRollback(po.getTxHash());
        }
        return;
    }
    PocJoinConsensusTransaction pjcTx = (PocJoinConsensusTransaction) joinTx;
    Consensus<Deposit> cd = pjcTx.getTxData();
    cd.getExtend().setStatus(ConsensusStatusEnum.IN.getCode());
    manager.cacheDeposit(cd);
    DepositPo dPo = this.depositDataService.get(cd.getHexHash());
    if (dPo == null) {
        dPo = ConsensusTool.depositToPojo(cd, tx.getHash().getDigestHex());
        this.depositDataService.save(dPo);
    }
    StopConsensusNotice notice = new StopConsensusNotice();
    notice.setEventBody(tx);
    NulsContext.getServiceBean(EventBroadcaster.class).publishToLocal(notice);
    this.ledgerService.unlockTxRollback(tx.getTxData().getDigestHex());
}
Also used : EventBroadcaster(io.nuls.event.bus.service.intf.EventBroadcaster) Agent(io.nuls.consensus.entity.member.Agent) Deposit(io.nuls.consensus.entity.member.Deposit) RegisterAgentTransaction(io.nuls.consensus.entity.tx.RegisterAgentTransaction) HashMap(java.util.HashMap) StopConsensusNotice(io.nuls.consensus.event.notice.StopConsensusNotice) CancelConsensusNotice(io.nuls.consensus.event.notice.CancelConsensusNotice) DepositPo(io.nuls.db.entity.DepositPo) PocExitConsensusTransaction(io.nuls.consensus.entity.tx.PocExitConsensusTransaction) Transaction(io.nuls.core.chain.entity.Transaction) RegisterAgentTransaction(io.nuls.consensus.entity.tx.RegisterAgentTransaction) PocJoinConsensusTransaction(io.nuls.consensus.entity.tx.PocJoinConsensusTransaction) PocJoinConsensusTransaction(io.nuls.consensus.entity.tx.PocJoinConsensusTransaction) AgentPo(io.nuls.db.entity.AgentPo)

Example 5 with AgentPo

use of io.nuls.db.entity.AgentPo 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);
}
Also used : EventBroadcaster(io.nuls.event.bus.service.intf.EventBroadcaster) Deposit(io.nuls.consensus.entity.member.Deposit) HashMap(java.util.HashMap) EntrustConsensusNotice(io.nuls.consensus.event.notice.EntrustConsensusNotice) NulsRuntimeException(io.nuls.core.exception.NulsRuntimeException) DepositPo(io.nuls.db.entity.DepositPo) AgentPo(io.nuls.db.entity.AgentPo)

Aggregations

AgentPo (io.nuls.db.entity.AgentPo)6 Agent (io.nuls.consensus.entity.member.Agent)3 Deposit (io.nuls.consensus.entity.member.Deposit)3 DepositPo (io.nuls.db.entity.DepositPo)3 EventBroadcaster (io.nuls.event.bus.service.intf.EventBroadcaster)3 HashMap (java.util.HashMap)3 Account (io.nuls.account.entity.Account)1 Consensus (io.nuls.consensus.entity.Consensus)1 ConsensusStatusInfo (io.nuls.consensus.entity.ConsensusStatusInfo)1 PocExitConsensusTransaction (io.nuls.consensus.entity.tx.PocExitConsensusTransaction)1 PocJoinConsensusTransaction (io.nuls.consensus.entity.tx.PocJoinConsensusTransaction)1 RegisterAgentTransaction (io.nuls.consensus.entity.tx.RegisterAgentTransaction)1 CancelConsensusNotice (io.nuls.consensus.event.notice.CancelConsensusNotice)1 EntrustConsensusNotice (io.nuls.consensus.event.notice.EntrustConsensusNotice)1 RegisterAgentNotice (io.nuls.consensus.event.notice.RegisterAgentNotice)1 StopConsensusNotice (io.nuls.consensus.event.notice.StopConsensusNotice)1 Transaction (io.nuls.core.chain.entity.Transaction)1 NulsRuntimeException (io.nuls.core.exception.NulsRuntimeException)1 RpcResult (io.nuls.rpc.entity.RpcResult)1