use of io.nuls.account.ledger.model.MultipleAddressTransferModel in project nuls by nuls-io.
the class AccountLedgerResource method createTransfer.
@POST
@Path("/multiAccount/createMultiTransfer")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "多签转账", notes = "result.data: resultJson 返回转账结果")
@ApiResponses(value = { @ApiResponse(code = 200, message = "success") })
public RpcClientResult createTransfer(@ApiParam(name = "form", value = "转账", required = true) CreateP2shTransactionForm form) {
if (NulsContext.MAIN_NET_VERSION <= 1) {
return Result.getFailed(KernelErrorCode.VERSION_TOO_LOW).toRpcClientResult();
}
List<MultipleAddressTransferModel> toModelList = new ArrayList<>();
if (form == null) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR).toRpcClientResult();
}
if (!AddressTool.validAddress(form.getAddress())) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR).toRpcClientResult();
}
if (!AddressTool.validAddress(form.getSignAddress())) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR).toRpcClientResult();
}
if (form.getOutputs() == null || form.getOutputs().size() == 0) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR).toRpcClientResult();
}
for (MultipleTxToDto to : form.getOutputs()) {
if (Na.valueOf(to.getAmount()).isLessThan(ProtocolConstant.MININUM_TRANSFER_AMOUNT)) {
return Result.getFailed(TransactionErrorCode.TOO_SMALL_AMOUNT).toRpcClientResult();
}
MultipleAddressTransferModel model = new MultipleAddressTransferModel();
if (!AddressTool.validAddress(to.getToAddress())) {
return Result.getFailed(AccountErrorCode.ADDRESS_ERROR).toRpcClientResult();
}
model.setAddress(AddressTool.getAddress(to.getToAddress()));
model.setAmount(to.getAmount());
toModelList.add(model);
}
Result result = accountLedgerService.createP2shTransfer(form.getAddress(), form.getSignAddress(), toModelList, form.getPassword(), form.getRemark());
if (result.isSuccess()) {
Map<String, String> map = new HashMap<>();
map.put("txData", (String) result.getData());
result.setData(map);
}
return result.toRpcClientResult();
}
Aggregations