Search in sources :

Example 1 with ProtocolContainerDTO

use of io.nuls.client.rpc.resources.dto.ProtocolContainerDTO in project nuls by nuls-io.

the class ClientResource method getProtocolInfo.

@GET
@Path("/protocol/info")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "协议版本升级统计信息")
@ApiResponses(value = { @ApiResponse(code = 200, message = "success", response = ProtocolContainerDTO.class) })
public RpcClientResult getProtocolInfo() {
    BlockHeader blockHeader = NulsContext.getInstance().getBestBlock().getHeader();
    List<ProtocolContainerDTO> list = new ArrayList<>();
    ProtocolContainer protocolContainer = NulsVersionManager.getProtocolContainer(NulsContext.CURRENT_PROTOCOL_VERSION);
    ProtocolContainerDTO pcDTO = new ProtocolContainerDTO(protocolContainer);
    if (pcDTO.getStatus() == ProtocolContainer.DELAY_LOCK) {
        pcDTO.setEffectiveHeight(blockHeader.getHeight() + pcDTO.getCountdownDelay() + 1);
    }
    list.add(pcDTO);
    Map<String, ProtocolTempInfoPo> protocolTempMap = versionManagerStorageService.getProtocolTempMap();
    for (ProtocolTempInfoPo protocolTempInfoPo : protocolTempMap.values()) {
        ProtocolContainerDTO protocolContainerDTO = new ProtocolContainerDTO(protocolTempInfoPo);
        if (protocolContainerDTO.getStatus() == ProtocolContainer.DELAY_LOCK) {
            protocolContainerDTO.setEffectiveHeight(blockHeader.getHeight() + protocolContainerDTO.getCountdownDelay() + 1);
        }
        list.add(protocolContainerDTO);
    }
    Map<String, List<ProtocolContainerDTO>> map = new HashMap<>();
    map.put("list", list);
    return Result.getSuccess().setData(map).toRpcClientResult();
}
Also used : ProtocolContainer(io.nuls.protocol.base.version.ProtocolContainer) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ProtocolTempInfoPo(io.nuls.protocol.storage.po.ProtocolTempInfoPo) ArrayList(java.util.ArrayList) List(java.util.List) BlockHeader(io.nuls.kernel.model.BlockHeader) ProtocolContainerDTO(io.nuls.client.rpc.resources.dto.ProtocolContainerDTO) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Aggregations

ProtocolContainerDTO (io.nuls.client.rpc.resources.dto.ProtocolContainerDTO)1 BlockHeader (io.nuls.kernel.model.BlockHeader)1 ProtocolContainer (io.nuls.protocol.base.version.ProtocolContainer)1 ProtocolTempInfoPo (io.nuls.protocol.storage.po.ProtocolTempInfoPo)1 ApiOperation (io.swagger.annotations.ApiOperation)1 ApiResponses (io.swagger.annotations.ApiResponses)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1