Search in sources :

Example 61 with RpcClientResult

use of io.nuls.kernel.model.RpcClientResult in project nuls by nuls-io.

the class TokenTransferProcessor method execute.

@Override
public CommandResult execute(String[] args) {
    ContractTokenTransfer form = paramsData.get();
    if (null == form) {
        form = getTokenTransferForm(args);
    }
    String address = form.getAddress();
    RpcClientResult res = CommandHelper.getPassword(address, restFul);
    if (!res.isSuccess()) {
        return CommandResult.getFailed(res);
    }
    String password = (String) res.getData();
    String contractAddress = form.getContractAddress();
    String url = "/contract/" + contractAddress;
    RpcClientResult checkResult = restFul.get(url, null);
    if (checkResult.isFailed()) {
        return CommandResult.getFailed(checkResult);
    }
    Map<String, Object> data = (Map) checkResult.getData();
    Boolean isNrc20 = (Boolean) data.get("isNrc20");
    if (!isNrc20) {
        return CommandResult.getFailed("Non-NRC20 contract, can not transfer token.");
    }
    Integer decimals = (Integer) data.get("decimals");
    BigDecimal amountBigD = new BigDecimal(form.getAmount()).multiply(BigDecimal.TEN.pow(decimals));
    try {
        BigInteger amountBigI = amountBigD.toBigIntegerExact();
        form.setAmount(amountBigI.toString());
    } catch (Exception e) {
        return CommandResult.getFailed("Illegal amount, you can have up to " + decimals + " valid digits after the decimal point.");
    }
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("address", form.getAddress());
    parameters.put("toAddress", form.getToAddress());
    parameters.put("contractAddress", form.getContractAddress());
    parameters.put("gasLimit", form.getGasLimit());
    parameters.put("price", form.getPrice());
    parameters.put("password", password);
    parameters.put("amount", form.getAmount());
    parameters.put("remark", form.getRemark());
    RpcClientResult result = restFul.post("/contract/token/transfer", parameters);
    if (result.isFailed()) {
        return CommandResult.getFailed(result);
    }
    Map<String, Object> resultMap = MapUtil.createLinkedHashMap(2);
    resultMap.put("txHash", result.getData());
    result.setData(resultMap);
    return CommandResult.getResult(result);
}
Also used : BigInteger(java.math.BigInteger) HashMap(java.util.HashMap) RpcClientResult(io.nuls.kernel.model.RpcClientResult) BigInteger(java.math.BigInteger) ContractTokenTransfer(io.nuls.contract.rpc.form.ContractTokenTransfer) HashMap(java.util.HashMap) Map(java.util.Map) BigDecimal(java.math.BigDecimal)

Example 62 with RpcClientResult

use of io.nuls.kernel.model.RpcClientResult in project nuls by nuls-io.

the class GetContractTxListProcessor method execute.

@Override
public CommandResult execute(String[] args) {
    int pageNumber = 0;
    int pageSize = 0;
    if (args.length == 4) {
        pageNumber = Integer.parseInt(args[2]);
        pageSize = Integer.parseInt(args[3]);
    } else {
        pageNumber = Integer.parseInt(args[3]);
        pageSize = Integer.parseInt(args[4]);
    }
    String address = args[1];
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("pageNumber", pageNumber);
    parameters.put("pageSize", pageSize);
    /**
     * user type accountAddress argument.
     */
    if (args.length == 5) {
        parameters.put("accountAddress", args[2]);
    }
    String url = "/contract/tx/list/" + address;
    RpcClientResult result = restFulUtils.get(url, parameters);
    if (result.isFailed()) {
        return CommandResult.getFailed(result);
    }
    /**
     * format amount and trx fee. 1NULS = 100000000Na
     */
    List<Map<String, Object>> list = (List<Map<String, Object>>) ((Map) result.getData()).get("list");
    for (Map<String, Object> map : list) {
        map.put("fee", CommandHelper.naToNuls(map.get("fee")));
        map.put("value", CommandHelper.naToNuls(map.get("value")));
        map.put("time", DateUtil.convertDate(new Date((Long) map.get("time"))));
        // map.put("status", statusExplain((Integer)map.get("status")));
        map.put("type", CommandHelper.txTypeExplain((Integer) map.get("type")));
        List<Map<String, Object>> inputs = (List<Map<String, Object>>) map.get("inputs");
        for (Map<String, Object> input : inputs) {
            input.put("value", CommandHelper.naToNuls(input.get("value")));
        }
        map.put("inputs", inputs);
        List<Map<String, Object>> outputs = (List<Map<String, Object>>) map.get("outputs");
        for (Map<String, Object> output : outputs) {
            output.put("value", CommandHelper.naToNuls(output.get("value")));
        // output.put("status", statusExplainForOutPut((Integer) output.get("status")));
        }
        map.put("outputs", outputs);
        Map<String, Object> txDataMap = (Map) map.get("txData");
        if (txDataMap != null) {
            Map<String, Object> dataMap = (Map) txDataMap.get("data");
            if (dataMap != null) {
                dataMap.put("value", CommandHelper.naToNuls(dataMap.get("value")));
                dataMap.put("price", CommandHelper.naToNuls(dataMap.get("price")));
            }
        }
        Map<String, Object> contractResultMap = (Map) map.get("contractResult");
        if (contractResultMap != null) {
            contractResultMap.put("totalFee", CommandHelper.naToNuls(contractResultMap.get("totalFee")));
            contractResultMap.put("txSizeFee", CommandHelper.naToNuls(contractResultMap.get("txSizeFee")));
            contractResultMap.put("actualContractFee", CommandHelper.naToNuls(contractResultMap.get("actualContractFee")));
            contractResultMap.put("refundFee", CommandHelper.naToNuls(contractResultMap.get("refundFee")));
            contractResultMap.put("value", CommandHelper.naToNuls(contractResultMap.get("value")));
            contractResultMap.put("price", CommandHelper.naToNuls(contractResultMap.get("price")));
            contractResultMap.put("balance", CommandHelper.naToNuls(contractResultMap.get("balance")));
        }
    }
    result.setData(list);
    return CommandResult.getResult(result);
}
Also used : HashMap(java.util.HashMap) RpcClientResult(io.nuls.kernel.model.RpcClientResult) List(java.util.List) Map(java.util.Map) HashMap(java.util.HashMap) Date(java.util.Date)

Example 63 with RpcClientResult

use of io.nuls.kernel.model.RpcClientResult in project nuls by nuls-io.

the class GetUtxoAccountsProcessor method execute.

@Override
public CommandResult execute(String[] args) {
    String address = args[1];
    RpcClientResult result = restFul.get("/utxoAccounts/" + address, null);
    if (result.isFailed()) {
        return CommandResult.getFailed(result);
    }
    return CommandResult.getResult(result);
}
Also used : RpcClientResult(io.nuls.kernel.model.RpcClientResult)

Example 64 with RpcClientResult

use of io.nuls.kernel.model.RpcClientResult in project nuls by nuls-io.

the class VersionProcessor method execute.

@Override
public CommandResult execute(String[] args) {
    RpcClientResult result = restFul.get("/client/version", null);
    if (result.isFailed()) {
        return CommandResult.getFailed(result);
    }
    Map<String, Object> map = ((Map) result.getData());
    if (null != map) {
        String infromation = (String) map.get("infromation");
        map.put("infromation", infromation.replaceAll("\r|\n", ""));
    }
    result.setData(map);
    return CommandResult.getResult(result);
}
Also used : RpcClientResult(io.nuls.kernel.model.RpcClientResult)

Example 65 with RpcClientResult

use of io.nuls.kernel.model.RpcClientResult in project nuls by nuls-io.

the class RpcServerFilter method toResponse.

@Override
public Response toResponse(Exception e) {
    // System.out.println("---------------" + request.getRequestURI());
    Log.error("RequestURI is " + request.getRequestURI(), e);
    RpcClientResult result;
    if (e instanceof NulsException) {
        NulsException exception = (NulsException) e;
        result = new RpcClientResult(false, exception.getErrorCode());
    } else if (e instanceof NulsRuntimeException) {
        NulsRuntimeException exception = (NulsRuntimeException) e;
        result = new RpcClientResult(false, new ErrorData(exception.getCode(), exception.getMessage()));
    } else {
        result = Result.getFailed().setMsg(e.getMessage()).toRpcClientResult();
    }
    return Response.ok(result, MediaType.APPLICATION_JSON).build();
}
Also used : RpcClientResult(io.nuls.kernel.model.RpcClientResult) NulsException(io.nuls.kernel.exception.NulsException) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException) ErrorData(io.nuls.kernel.model.ErrorData)

Aggregations

RpcClientResult (io.nuls.kernel.model.RpcClientResult)88 HashMap (java.util.HashMap)49 Map (java.util.Map)24 Date (java.util.Date)14 List (java.util.List)14 Result (io.nuls.kernel.model.Result)7 InputDto (io.nuls.accout.ledger.rpc.dto.InputDto)5 GET (javax.ws.rs.GET)5 Path (javax.ws.rs.Path)5 Produces (javax.ws.rs.Produces)5 ApiOperation (io.swagger.annotations.ApiOperation)4 ApiResponses (io.swagger.annotations.ApiResponses)4 NulsException (io.nuls.kernel.exception.NulsException)3 Na (io.nuls.kernel.model.Na)3 Node (io.nuls.network.model.Node)3 Test (org.junit.Test)3 RandomSeedDTO (io.nuls.consensus.poc.rpc.model.RandomSeedDTO)2 Coin (io.nuls.kernel.model.Coin)2 IOException (java.io.IOException)2 AccountKeyStoreDto (io.nuls.account.rpc.model.AccountKeyStoreDto)1