use of com.hedera.services.usage.state.UsageAccumulator in project hedera-services by hashgraph.
the class HapiTokenFreeze method usageEstimate.
private FeeData usageEstimate(TransactionBody txn, SigValueObj svo) {
UsageAccumulator accumulator = new UsageAccumulator();
final var tokenFreezeMeta = TOKEN_OPS_USAGE_UTILS.tokenFreezeUsageFrom();
final var baseTransactionMeta = new BaseTransactionMeta(txn.getMemoBytes().size(), 0);
TokenOpsUsage tokenOpsUsage = new TokenOpsUsage();
tokenOpsUsage.tokenFreezeUsage(suFrom(svo), baseTransactionMeta, tokenFreezeMeta, accumulator);
return AdapterUtils.feeDataFrom(accumulator);
}
use of com.hedera.services.usage.state.UsageAccumulator in project hedera-services by hashgraph.
the class HapiTokenBurn method usageEstimate.
private FeeData usageEstimate(TransactionBody txn, SigValueObj svo) {
UsageAccumulator accumulator = new UsageAccumulator();
final var tokenBurnMeta = TOKEN_OPS_USAGE_UTILS.tokenBurnUsageFrom(txn, subType);
final var baseTransactionMeta = new BaseTransactionMeta(txn.getMemoBytes().size(), 0);
TokenOpsUsage tokenOpsUsage = new TokenOpsUsage();
tokenOpsUsage.tokenBurnUsage(suFrom(svo), baseTransactionMeta, tokenBurnMeta, accumulator);
return AdapterUtils.feeDataFrom(accumulator);
}
use of com.hedera.services.usage.state.UsageAccumulator in project hedera-services by hashgraph.
the class HapiTokenCreate method usageEstimate.
private FeeData usageEstimate(TransactionBody txn, SigValueObj svo) {
UsageAccumulator accumulator = new UsageAccumulator();
final var tokenCreateMeta = TOKEN_OPS_USAGE_UTILS.tokenCreateUsageFrom(txn);
final var baseTransactionMeta = new BaseTransactionMeta(txn.getMemoBytes().size(), 0);
TokenOpsUsage tokenOpsUsage = new TokenOpsUsage();
tokenOpsUsage.tokenCreateUsage(suFrom(svo), baseTransactionMeta, tokenCreateMeta, accumulator);
return AdapterUtils.feeDataFrom(accumulator);
}
use of com.hedera.services.usage.state.UsageAccumulator in project hedera-services by hashgraph.
the class HapiTokenWipe method usageEstimate.
private FeeData usageEstimate(TransactionBody txn, SigValueObj svo) {
UsageAccumulator accumulator = new UsageAccumulator();
final var tokenWipeMeta = TOKEN_OPS_USAGE_UTILS.tokenWipeUsageFrom(txn, subType);
final var baseTransactionMeta = new BaseTransactionMeta(txn.getMemoBytes().size(), 0);
TokenOpsUsage tokenOpsUsage = new TokenOpsUsage();
tokenOpsUsage.tokenWipeUsage(suFrom(svo), baseTransactionMeta, tokenWipeMeta, accumulator);
return AdapterUtils.feeDataFrom(accumulator);
}
use of com.hedera.services.usage.state.UsageAccumulator in project hedera-services by hashgraph.
the class AccessorBasedUsagesTest method worksAsExpectedForCryptoTransfer.
@Test
void worksAsExpectedForCryptoTransfer() {
int multiplier = 30;
final var baseMeta = new BaseTransactionMeta(100, 2);
final var xferMeta = new CryptoTransferMeta(1, 3, 7, 4);
final var usageAccumulator = new UsageAccumulator();
given(dynamicProperties.feesTokenTransferUsageMultiplier()).willReturn(multiplier);
given(txnAccessor.getFunction()).willReturn(CryptoTransfer);
given(txnAccessor.availXferUsageMeta()).willReturn(xferMeta);
given(txnAccessor.baseUsageMeta()).willReturn(baseMeta);
subject.assess(sigUsage, txnAccessor, usageAccumulator);
verify(cryptoOpsUsage).cryptoTransferUsage(sigUsage, xferMeta, baseMeta, usageAccumulator);
assertEquals(multiplier, xferMeta.getTokenMultiplier());
}
Aggregations