Search in sources :

Example 1 with UnconfirmedTxPo

use of io.nuls.account.ledger.storage.po.UnconfirmedTxPo in project nuls by nuls-io.

the class UnconfiredmTransactionStorageImpl method loadAllUnconfirmedList.

@Override
public Result<List<Transaction>> loadAllUnconfirmedList() {
    Result result;
    List<UnconfirmedTxPo> tmpList = new ArrayList<>();
    List<Entry<byte[], byte[]>> txs = dbService.entryList(AccountLedgerStorageConstant.DB_NAME_ACCOUNT_LEDGER_TX);
    for (Entry<byte[], byte[]> txEntry : txs) {
        try {
            UnconfirmedTxPo tmpTx = new UnconfirmedTxPo(txEntry.getValue());
            if (tmpTx != null) {
                NulsByteBuffer buffer = new NulsByteBuffer(txEntry.getKey(), 0);
                tmpTx.getTx().setHash(buffer.readHash());
                tmpList.add(tmpTx);
            }
        } catch (Exception e) {
            Log.warn("parse local tx error", e);
        }
    }
    tmpList.sort(new Comparator<UnconfirmedTxPo>() {

        @Override
        public int compare(UnconfirmedTxPo o1, UnconfirmedTxPo o2) {
            return (int) (o1.getSequence() - o2.getSequence());
        }
    });
    List<Transaction> resultList = new ArrayList<>();
    for (UnconfirmedTxPo po : tmpList) {
        resultList.add(po.getTx());
    }
    return Result.getSuccess().setData(resultList);
}
Also used : ArrayList(java.util.ArrayList) UnconfirmedTxPo(io.nuls.account.ledger.storage.po.UnconfirmedTxPo) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException) NulsException(io.nuls.kernel.exception.NulsException) Result(io.nuls.kernel.model.Result) Entry(io.nuls.db.model.Entry) Transaction(io.nuls.kernel.model.Transaction) NulsByteBuffer(io.nuls.kernel.utils.NulsByteBuffer)

Example 2 with UnconfirmedTxPo

use of io.nuls.account.ledger.storage.po.UnconfirmedTxPo in project nuls by nuls-io.

the class UnconfiredmTransactionStorageImpl method saveUnconfirmedTx.

@Override
public Result saveUnconfirmedTx(NulsDigestData hash, Transaction tx) {
    Result result;
    try {
        sequence++;
        UnconfirmedTxPo po = new UnconfirmedTxPo(tx, sequence);
        result = dbService.put(AccountLedgerStorageConstant.DB_NAME_ACCOUNT_LEDGER_TX, hash.serialize(), po.serialize());
    } catch (Exception e) {
        e.printStackTrace();
        return Result.getFailed();
    }
    return result;
}
Also used : UnconfirmedTxPo(io.nuls.account.ledger.storage.po.UnconfirmedTxPo) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException) NulsException(io.nuls.kernel.exception.NulsException) Result(io.nuls.kernel.model.Result)

Example 3 with UnconfirmedTxPo

use of io.nuls.account.ledger.storage.po.UnconfirmedTxPo in project nuls by nuls-io.

the class UnconfiredmTransactionStorageImpl method getUnconfirmedTx.

@Override
public Result<Transaction> getUnconfirmedTx(NulsDigestData hash) {
    try {
        byte[] txBytes = dbService.get(AccountLedgerStorageConstant.DB_NAME_ACCOUNT_LEDGER_TX, hash.serialize());
        if (txBytes == null) {
            return Result.getSuccess();
        }
        UnconfirmedTxPo po = new UnconfirmedTxPo(txBytes);
        Transaction tx = po.getTx();
        return Result.getSuccess().setData(tx);
    } catch (Exception e) {
        return Result.getFailed();
    }
}
Also used : Transaction(io.nuls.kernel.model.Transaction) UnconfirmedTxPo(io.nuls.account.ledger.storage.po.UnconfirmedTxPo) NulsRuntimeException(io.nuls.kernel.exception.NulsRuntimeException) NulsException(io.nuls.kernel.exception.NulsException)

Aggregations

UnconfirmedTxPo (io.nuls.account.ledger.storage.po.UnconfirmedTxPo)3 NulsException (io.nuls.kernel.exception.NulsException)3 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)3 Result (io.nuls.kernel.model.Result)2 Transaction (io.nuls.kernel.model.Transaction)2 Entry (io.nuls.db.model.Entry)1 NulsByteBuffer (io.nuls.kernel.utils.NulsByteBuffer)1 ArrayList (java.util.ArrayList)1