public String createRawTransaction(List<TxInput> inputs, List<TxOutput> outputs) throws ZetacoinException {
        List<Map> pInputs = new ArrayList<Map>();

        for (final TxInput txInput : inputs) {
            pInputs.add(new LinkedHashMap() {
                {
                    put("txid", txInput.txid());
                    put("vout", txInput.vout());
                }
            });
        }

        Map<String, Double> pOutputs = new LinkedHashMap();

        Double oldValue;
        for (TxOutput txOutput : outputs) {
            if ((oldValue = pOutputs.put(txOutput.address(), txOutput.amount())) != null)
                pOutputs.put(txOutput.address(), ZetacoinUtil.normalizeAmount(oldValue.doubleValue() + txOutput.amount()));
//                throw new ZetacoinException("Duplicate output");
        }

        return (String) query("createrawtransaction", pInputs, pOutputs);
    }