Search in sources :

Example 6 with CoinBaseTransaction

use of io.nuls.protocol.model.tx.CoinBaseTransaction in project nuls by nuls-io.

the class ChainContainer method verifyCoinBaseTx.

public boolean verifyCoinBaseTx(Block block, MeetingRound currentRound, MeetingMember member) {
    Transaction tx = block.getTxs().get(0);
    CoinBaseTransaction coinBaseTransaction = ConsensusTool.createCoinBaseTx(member, block.getTxs(), currentRound, block.getHeader().getHeight() + PocConsensusConstant.COINBASE_UNLOCK_HEIGHT);
    if (null == coinBaseTransaction || !tx.getHash().equals(coinBaseTransaction.getHash())) {
        BlockLog.debug("the coin base tx is wrong! height: " + block.getHeader().getHeight() + " , hash : " + block.getHeader().getHash());
        Log.error("the coin base tx is wrong! height: " + block.getHeader().getHeight() + " , hash : " + block.getHeader().getHash());
        return false;
    }
    return true;
}
Also used : CoinBaseTransaction(io.nuls.protocol.model.tx.CoinBaseTransaction) CoinBaseTransaction(io.nuls.protocol.model.tx.CoinBaseTransaction)

Example 7 with CoinBaseTransaction

use of io.nuls.protocol.model.tx.CoinBaseTransaction in project nuls by nuls-io.

the class PocRewardCacheService method calcRewardHistory.

private void calcRewardHistory(String address, List<TransactionInfo> list, long startHeight) {
    byte[] addressByte = AddressTool.getAddress(address);
    for (TransactionInfo info : list) {
        if (info.getTxType() != ProtocolConstant.TX_TYPE_COINBASE) {
            continue;
        }
        CoinBaseTransaction tx = (CoinBaseTransaction) ledgerService.getTx(info.getTxHash());
        if (null == tx) {
            continue;
        }
        if (info.getBlockHeight() >= startHeight) {
            continue;
        }
        if (null == tx.getCoinData().getTo() || tx.getCoinData().getTo().isEmpty()) {
            continue;
        }
        for (Coin coin : tx.getCoinData().getTo()) {
            // if (!Arrays.equals(addressByte, coin.()))
            if (!Arrays.equals(addressByte, coin.getAddress())) {
                continue;
            }
            Na na = totalMap.get(address);
            if (na == null) {
                na = Na.ZERO;
            }
            na = na.add(coin.getNa());
            totalMap.put(address, na);
        }
    }
}
Also used : Coin(io.nuls.kernel.model.Coin) Na(io.nuls.kernel.model.Na) CoinBaseTransaction(io.nuls.protocol.model.tx.CoinBaseTransaction) TransactionInfo(io.nuls.account.ledger.model.TransactionInfo)

Example 8 with CoinBaseTransaction

use of io.nuls.protocol.model.tx.CoinBaseTransaction in project nuls by nuls-io.

the class TransactionServiceImplTest method createCoinBaseTransaction.

private CoinBaseTransaction createCoinBaseTransaction(ECKey ecKey, ECKey... ecKeys) {
    CoinBaseTransaction tx = new CoinBaseTransaction();
    setCommonFields(tx);
    CoinData coinData = new CoinData();
    List<Coin> toList = new ArrayList<>();
    toList.add(new Coin(AddressTool.getAddress(ecKey.getPubKey()), Na.parseNuls(10000), 1000));
    toList.add(new Coin(AddressTool.getAddress(ecKey.getPubKey()), Na.parseNuls(10000), 0));
    for (ECKey ecKey1 : ecKeys) {
        Coin coin = new Coin(AddressTool.getAddress(ecKey1.getPubKey()), Na.parseNuls(10000), 0);
        toList.add(coin);
    }
    coinData.setTo(toList);
    tx.setCoinData(coinData);
    signTransaction(tx, ecKey);
    return tx;
}
Also used : CoinBaseTransaction(io.nuls.protocol.model.tx.CoinBaseTransaction) ArrayList(java.util.ArrayList) ECKey(io.nuls.core.tools.crypto.ECKey)

Aggregations

CoinBaseTransaction (io.nuls.protocol.model.tx.CoinBaseTransaction)8 Coin (io.nuls.kernel.model.Coin)2 Na (io.nuls.kernel.model.Na)2 ArrayList (java.util.ArrayList)2 TransactionInfo (io.nuls.account.ledger.model.TransactionInfo)1 RewardItem (io.nuls.consensus.poc.model.RewardItem)1 ECKey (io.nuls.core.tools.crypto.ECKey)1 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)1 IOException (java.io.IOException)1 List (java.util.List)1 Map (java.util.Map)1