use of com.hedera.mirror.common.domain.entity.TokenAllowance in project hedera-mirror-node by hashgraph.
the class AbstractAllowanceTransactionHandler method updateTransaction.
@Override
public void updateTransaction(Transaction transaction, RecordItem recordItem) {
long consensusTimestamp = transaction.getConsensusTimestamp();
var payerAccountId = recordItem.getPayerAccountId();
for (var cryptoApproval : getCryptoAllowances(recordItem)) {
CryptoAllowance cryptoAllowance = new CryptoAllowance();
cryptoAllowance.setAmount(cryptoApproval.getAmount());
cryptoAllowance.setOwner(EntityId.of(cryptoApproval.getOwner()).getId());
cryptoAllowance.setPayerAccountId(payerAccountId);
cryptoAllowance.setSpender(EntityId.of(cryptoApproval.getSpender()).getId());
cryptoAllowance.setTimestampLower(consensusTimestamp);
entityListener.onCryptoAllowance(cryptoAllowance);
}
for (var nftApproval : getNftAllowances(recordItem)) {
var approvedForAll = nftApproval.hasApprovedForAll() && nftApproval.getApprovedForAll().getValue();
NftAllowance nftAllowance = new NftAllowance();
nftAllowance.setApprovedForAll(approvedForAll);
nftAllowance.setOwner(EntityId.of(nftApproval.getOwner()).getId());
nftAllowance.setPayerAccountId(payerAccountId);
nftAllowance.setSerialNumbers(nftApproval.getSerialNumbersList());
nftAllowance.setSpender(EntityId.of(nftApproval.getSpender()).getId());
nftAllowance.setTokenId(EntityId.of(nftApproval.getTokenId()).getId());
nftAllowance.setTimestampLower(consensusTimestamp);
entityListener.onNftAllowance(nftAllowance);
}
for (var tokenApproval : getTokenAllowances(recordItem)) {
TokenAllowance tokenAllowance = new TokenAllowance();
tokenAllowance.setAmount(tokenApproval.getAmount());
tokenAllowance.setOwner(EntityId.of(tokenApproval.getOwner()).getId());
tokenAllowance.setPayerAccountId(payerAccountId);
tokenAllowance.setSpender(EntityId.of(tokenApproval.getSpender()).getId());
tokenAllowance.setTokenId(EntityId.of(tokenApproval.getTokenId()).getId());
tokenAllowance.setTimestampLower(consensusTimestamp);
entityListener.onTokenAllowance(tokenAllowance);
}
}
use of com.hedera.mirror.common.domain.entity.TokenAllowance in project hedera-mirror-node by hashgraph.
the class BatchUpserterTest method tokenAllowance.
@Test
void tokenAllowance() {
TokenAllowance tokenAllowance1 = domainBuilder.tokenAllowance().get();
TokenAllowance tokenAllowance2 = domainBuilder.tokenAllowance().get();
TokenAllowance tokenAllowance3 = domainBuilder.tokenAllowance().get();
var tokenAllowance = List.of(tokenAllowance1, tokenAllowance2, tokenAllowance3);
persist(batchPersister, tokenAllowance);
assertThat(tokenAllowanceRepository.findAll()).containsExactlyInAnyOrderElementsOf(tokenAllowance);
}
use of com.hedera.mirror.common.domain.entity.TokenAllowance in project hedera-mirror-node by hashgraph.
the class SqlEntityListenerTest method onTokenAllowance.
@Test
void onTokenAllowance() {
// given
TokenAllowance tokenAllowance1 = domainBuilder.tokenAllowance().get();
TokenAllowance tokenAllowance2 = domainBuilder.tokenAllowance().get();
// when
sqlEntityListener.onTokenAllowance(tokenAllowance1);
sqlEntityListener.onTokenAllowance(tokenAllowance2);
completeFileAndCommit();
// then
assertThat(entityRepository.count()).isZero();
assertThat(tokenAllowanceRepository.findAll()).containsExactlyInAnyOrder(tokenAllowance1, tokenAllowance2);
assertThat(findHistory(TokenAllowance.class, "payer_account_id, spender, token_id")).isEmpty();
}
Aggregations