Search in sources :

Example 1 with SysFileSerde

use of com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde in project hedera-services by hashgraph.

the class TokenTransfersLoadProvider method tokenTransfersFactory.

private Function<HapiApiSpec, OpProvider> tokenTransfersFactory() {
    var firstDir = new AtomicBoolean(Boolean.TRUE);
    var balanceInit = new AtomicLong();
    var tokensPerTxn = new AtomicInteger();
    var sendingAccountsPerToken = new AtomicInteger();
    var receivingAccountsPerToken = new AtomicInteger();
    List<String> treasuries = new ArrayList<>();
    Map<String, List<String>> senders = new HashMap<>();
    Map<String, List<String>> receivers = new HashMap<>();
    return spec -> new OpProvider() {

        @Override
        public List<HapiSpecOperation> suggestedInitializers() {
            var ciProps = spec.setup().ciPropertiesMap();
            balanceInit.set(ciProps.getLong("balanceInit"));
            tokensPerTxn.set(ciProps.getInteger("tokensPerTxn"));
            sendingAccountsPerToken.set(ciProps.getInteger("sendingAccountsPerToken"));
            receivingAccountsPerToken.set(ciProps.getInteger("receivingAccountsPerToken"));
            var initialSupply = (sendingAccountsPerToken.get() + receivingAccountsPerToken.get()) * balanceInit.get();
            List<HapiSpecOperation> initializers = new ArrayList<>();
            initializers.add(tokenOpsEnablement());
            /* Temporary, can be removed after the public testnet state used in
				   restart tests includes a fee schedule with HTS resource prices. */
            if (spec.setup().defaultNode().equals(asAccount("0.0.3"))) {
                initializers.add(uploadDefaultFeeSchedules(GENESIS));
            } else {
                initializers.add(withOpContext((spec, opLog) -> {
                    log.info("\n\n" + bannerWith("Waiting for a fee schedule with token ops!"));
                    boolean hasKnownHtsFeeSchedules = false;
                    SysFileSerde<String> serde = new FeesJsonToGrpcBytes();
                    while (!hasKnownHtsFeeSchedules) {
                        var query = QueryVerbs.getFileContents(FEE_SCHEDULE).fee(10_000_000_000L);
                        try {
                            allRunFor(spec, query);
                            var contents = query.getResponse().getFileGetContents().getFileContents().getContents();
                            var schedules = serde.fromRawFile(contents.toByteArray());
                            hasKnownHtsFeeSchedules = schedules.contains("TokenCreate");
                        } catch (Exception e) {
                            var msg = e.toString();
                            msg = msg.substring(msg.indexOf(":") + 2);
                            log.info("Couldn't check for HTS fee schedules---'{}'", msg);
                        }
                        TimeUnit.SECONDS.sleep(3);
                    }
                    log.info("\n\n" + bannerWith("A fee schedule with token ops now available!"));
                    spec.tryReinitializingFees();
                }));
            }
            for (int i = 0; i < tokensPerTxn.get(); i++) {
                var token = "token" + i;
                var treasury = "treasury" + i;
                initializers.add(cryptoCreate(treasury));
                initializers.add(tokenCreate(token).treasury(treasury).initialSupply(initialSupply));
                treasuries.add(treasury);
                for (int j = 0; j < sendingAccountsPerToken.get(); j++) {
                    var sender = token + "sender" + j;
                    senders.computeIfAbsent(token, ignore -> new ArrayList<>()).add(sender);
                    initializers.add(cryptoCreate(sender));
                    initializers.add(tokenAssociate(sender, token));
                    initializers.add(cryptoTransfer(moving(balanceInit.get(), token).between(treasury, sender)));
                }
                for (int j = 0; j < receivingAccountsPerToken.get(); j++) {
                    var receiver = token + "receiver" + j;
                    receivers.computeIfAbsent(token, ignore -> new ArrayList<>()).add(receiver);
                    initializers.add(cryptoCreate(receiver));
                    initializers.add(tokenAssociate(receiver, token));
                    initializers.add(cryptoTransfer(moving(balanceInit.get(), token).between(treasury, receiver)));
                }
            }
            for (HapiSpecOperation op : initializers) {
                if (op instanceof HapiTxnOp) {
                    ((HapiTxnOp) op).hasRetryPrecheckFrom(NOISY_RETRY_PRECHECKS);
                }
            }
            return initializers;
        }

        @Override
        public Optional<HapiSpecOperation> get() {
            HapiSpecOperation op;
            var numTokens = tokensPerTxn.get();
            var numSenders = sendingAccountsPerToken.get();
            var numReceivers = receivingAccountsPerToken.get();
            if (firstDir.get()) {
                var xfers = new TokenMovement[numTokens * numSenders];
                for (int i = 0; i < numTokens; i++) {
                    var token = "token" + i;
                    for (int j = 0; j < numSenders; j++) {
                        var receivers = new String[numReceivers];
                        for (int k = 0; k < numReceivers; k++) {
                            receivers[k] = token + "receiver" + k;
                        }
                        xfers[i * numSenders + j] = moving(numReceivers, token).distributing(token + "sender" + j, receivers);
                    }
                }
                op = cryptoTransfer(xfers).hasKnownStatusFrom(OK, DUPLICATE_TRANSACTION, SUCCESS, UNKNOWN, INSUFFICIENT_PAYER_BALANCE).hasRetryPrecheckFrom(NOISY_RETRY_PRECHECKS).hasPrecheckFrom(OK, PLATFORM_NOT_ACTIVE).noLogging().deferStatusResolution();
                firstDir.set(Boolean.FALSE);
            } else {
                var xfers = new TokenMovement[numTokens * numReceivers];
                for (int i = 0; i < numTokens; i++) {
                    var token = "token" + i;
                    for (int j = 0; j < numReceivers; j++) {
                        var senders = new String[numSenders];
                        for (int k = 0; k < numSenders; k++) {
                            senders[k] = token + "sender" + k;
                        }
                        xfers[i * numReceivers + j] = moving(numSenders, token).distributing(token + "receiver" + j, senders);
                    }
                }
                op = cryptoTransfer(xfers).hasKnownStatusFrom(OK, DUPLICATE_TRANSACTION, SUCCESS, UNKNOWN, INSUFFICIENT_PAYER_BALANCE).hasRetryPrecheckFrom(NOISY_RETRY_PRECHECKS).hasPrecheckFrom(OK, PLATFORM_NOT_ACTIVE).noLogging().deferStatusResolution();
                firstDir.set(Boolean.TRUE);
            }
            return Optional.of(op);
        }
    };
}
Also used : TxnVerbs.tokenAssociate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenAssociate) UtilVerbs.runWithProvider(com.hedera.services.bdd.spec.utilops.UtilVerbs.runWithProvider) INSUFFICIENT_PAYER_BALANCE(com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_PAYER_BALANCE) OK(com.hederahashgraph.api.proto.java.ResponseCodeEnum.OK) TxnVerbs.cryptoCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate) UtilVerbs.withOpContext(com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext) HapiTxnOp(com.hedera.services.bdd.spec.transactions.HapiTxnOp) FeesJsonToGrpcBytes(com.hedera.services.bdd.suites.utils.sysfiles.serdes.FeesJsonToGrpcBytes) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) HashMap(java.util.HashMap) MINUTES(java.util.concurrent.TimeUnit.MINUTES) TxnVerbs.cryptoTransfer(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer) TxnVerbs.fileUpdate(com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate) AtomicReference(java.util.concurrent.atomic.AtomicReference) Function(java.util.function.Function) PerfUtilOps.tokenOpsEnablement(com.hedera.services.bdd.suites.perf.PerfUtilOps.tokenOpsEnablement) ArrayList(java.util.ArrayList) PerfUtilOps.stdMgmtOf(com.hedera.services.bdd.suites.perf.PerfUtilOps.stdMgmtOf) UtilVerbs.sleepFor(com.hedera.services.bdd.spec.utilops.UtilVerbs.sleepFor) FREEZE_ALREADY_SCHEDULED(com.hederahashgraph.api.proto.java.ResponseCodeEnum.FREEZE_ALREADY_SCHEDULED) TokenMovement.moving(com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving) DUPLICATE_TRANSACTION(com.hederahashgraph.api.proto.java.ResponseCodeEnum.DUPLICATE_TRANSACTION) HapiApiSuite(com.hedera.services.bdd.suites.HapiApiSuite) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Map(java.util.Map) OpProvider(com.hedera.services.bdd.spec.infrastructure.OpProvider) HapiPropertySource.asAccount(com.hedera.services.bdd.spec.HapiPropertySource.asAccount) NOISY_RETRY_PRECHECKS(com.hedera.services.bdd.spec.transactions.TxnUtils.NOISY_RETRY_PRECHECKS) UtilVerbs.uploadDefaultFeeSchedules(com.hedera.services.bdd.spec.utilops.UtilVerbs.uploadDefaultFeeSchedules) TxnVerbs.tokenCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate) SysFileSerde(com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde) PLATFORM_NOT_ACTIVE(com.hederahashgraph.api.proto.java.ResponseCodeEnum.PLATFORM_NOT_ACTIVE) UNKNOWN(com.hederahashgraph.api.proto.java.ResponseCodeEnum.UNKNOWN) QueryVerbs.getAccountBalance(com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountBalance) SUCCESS(com.hederahashgraph.api.proto.java.ResponseCodeEnum.SUCCESS) CustomSpecAssert.allRunFor(com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor) QueryVerbs(com.hedera.services.bdd.spec.queries.QueryVerbs) TokenMovement(com.hedera.services.bdd.spec.transactions.token.TokenMovement) TimeUnit(java.util.concurrent.TimeUnit) AtomicLong(java.util.concurrent.atomic.AtomicLong) TxnFactory.bannerWith(com.hedera.services.bdd.spec.transactions.TxnFactory.bannerWith) List(java.util.List) Logger(org.apache.logging.log4j.Logger) UtilVerbs.freezeOnly(com.hedera.services.bdd.spec.utilops.UtilVerbs.freezeOnly) HapiSpecOperation(com.hedera.services.bdd.spec.HapiSpecOperation) Optional(java.util.Optional) HapiApiSpec(com.hedera.services.bdd.spec.HapiApiSpec) LogManager(org.apache.logging.log4j.LogManager) TokenMovement(com.hedera.services.bdd.spec.transactions.token.TokenMovement) SysFileSerde(com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) OpProvider(com.hedera.services.bdd.spec.infrastructure.OpProvider) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicLong(java.util.concurrent.atomic.AtomicLong) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) FeesJsonToGrpcBytes(com.hedera.services.bdd.suites.utils.sysfiles.serdes.FeesJsonToGrpcBytes) HapiTxnOp(com.hedera.services.bdd.spec.transactions.HapiTxnOp) HapiSpecOperation(com.hedera.services.bdd.spec.HapiSpecOperation) ArrayList(java.util.ArrayList) List(java.util.List)

Example 2 with SysFileSerde

use of com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde in project hedera-services by hashgraph.

the class ValidationScenarios method appropriateQuery.

private static HapiSpecOperation appropriateQuery(SysFilesDownScenario sys, long fileNum) {
    String fid = String.format("0.0.%d", fileNum);
    SysFileSerde<String> serde = SYS_FILE_SERDES.get(fileNum);
    String fqn = params.getTargetNetwork() + "-" + serde.preferredFileName();
    String loc = "files/" + fqn;
    UnaryOperator<byte[]> preCompare = (fileNum == 121 || fileNum == 122) ? ValidationScenarios::asOrdered : bytes -> bytes;
    if (SysFilesDownScenario.COMPARE_EVAL_MODE.equals(sys.getEvalMode())) {
        String actualLoc = "files/actual-" + fqn;
        try {
            byte[] expected = serde.toRawFile(readString(Paths.get(loc)));
            return getFileContents(fid).payingWith(SCENARIO_PAYER_NAME).saveReadableTo(serde::fromRawFile, actualLoc).hasContents(spec -> expected).afterBytesTransform(preCompare);
        } catch (IOException e) {
            throw new IllegalStateException("Cannot read comparison file @ '" + loc + "'!", e);
        }
    } else if (SysFilesDownScenario.SNAPSHOT_EVAL_MODE.equals(sys.getEvalMode())) {
        return getFileContents(fid).payingWith(SCENARIO_PAYER_NAME).saveReadableTo(serde::fromRawFile, loc);
    } else {
        throw new IllegalArgumentException("No such sys files eval mode '" + sys.getEvalMode() + "'!");
    }
}
Also used : Arrays(java.util.Arrays) LongSupplier(java.util.function.LongSupplier) TxnVerbs.cryptoCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate) ServicesConfigurationList(com.hederahashgraph.api.proto.java.ServicesConfigurationList) CryptoScenario(com.hedera.services.bdd.suites.utils.validation.domain.CryptoScenario) UnaryOperator(java.util.function.UnaryOperator) KeyStoreException(java.security.KeyStoreException) ON(com.hedera.services.bdd.spec.keys.SigControl.ON) TxnVerbs.contractDelete(com.hedera.services.bdd.spec.transactions.TxnVerbs.contractDelete) ConsensusScenario(com.hedera.services.bdd.suites.utils.validation.domain.ConsensusScenario) TxnVerbs.tokenDelete(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenDelete) Matcher(java.util.regex.Matcher) Map(java.util.Map) KeyList(com.hederahashgraph.api.proto.java.KeyList) QueryVerbs.contractCallLocal(com.hedera.services.bdd.spec.queries.QueryVerbs.contractCallLocal) HapiCryptoTransfer.tinyBarsFromTo(com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo) BigInteger(java.math.BigInteger) DEFAULT_LUCKY_NUMBER(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario.DEFAULT_LUCKY_NUMBER) Files.readString(java.nio.file.Files.readString) DEFAULT_CONTRACT_RESOURCE(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario.DEFAULT_CONTRACT_RESOURCE) FeeSnapshotsScenario(com.hedera.services.bdd.suites.utils.validation.domain.FeeSnapshotsScenario) EnumSet(java.util.EnumSet) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) TxnVerbs.contractCall(com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCall) ControlForKey(com.hedera.services.bdd.spec.keys.ControlForKey) Property(org.yaml.snakeyaml.introspector.Property) ContractFnResultAsserts.resultWith(com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts.resultWith) Set(java.util.Set) TxnVerbs.submitMessageTo(com.hedera.services.bdd.spec.transactions.TxnVerbs.submitMessageTo) TransactionRecordAsserts.recordWith(com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts.recordWith) KeyFactory(com.hedera.services.bdd.spec.keys.KeyFactory) Logger(org.apache.logging.log4j.Logger) Stream(java.util.stream.Stream) SYSTEM_KEYS(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.SYSTEM_KEYS) QueryVerbs.getContractBytecode(com.hedera.services.bdd.spec.queries.QueryVerbs.getContractBytecode) LEGACY_THROTTLES_FIRST_ORDER(com.hedera.services.bdd.suites.utils.sysfiles.serdes.JutilPropsToSvcCfgBytes.LEGACY_THROTTLES_FIRST_ORDER) PERSISTENT_TOPIC_NAME(com.hedera.services.bdd.suites.utils.validation.domain.ConsensusScenario.PERSISTENT_TOPIC_NAME) TxnVerbs.tokenDissociate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenDissociate) PERSISTENT_FILE_NAME(com.hedera.services.bdd.suites.utils.validation.domain.FileScenario.PERSISTENT_FILE_NAME) HapiApiSpec(com.hedera.services.bdd.spec.HapiApiSpec) SCENARIO_PAYER_NAME(com.hedera.services.bdd.suites.utils.validation.domain.Network.SCENARIO_PAYER_NAME) TxnVerbs.tokenAssociate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenAssociate) TopicID(com.hederahashgraph.api.proto.java.TopicID) UtilVerbs.withOpContext(com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext) QueryVerbs.getVersionInfo(com.hedera.services.bdd.spec.queries.QueryVerbs.getVersionInfo) UtilVerbs.balanceSnapshot(com.hedera.services.bdd.spec.utilops.UtilVerbs.balanceSnapshot) TxnVerbs.createTopic(com.hedera.services.bdd.spec.transactions.TxnVerbs.createTopic) Setting(com.hederahashgraph.api.proto.java.Setting) UtilVerbs.keyFromPem(com.hedera.services.bdd.spec.utilops.UtilVerbs.keyFromPem) Network(com.hedera.services.bdd.suites.utils.validation.domain.Network) ArrayList(java.util.ArrayList) OptionalLong(java.util.OptionalLong) TxnVerbs.cryptoUpdate(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate) Payment(com.hedera.services.bdd.spec.fees.Payment) AccountID(com.hederahashgraph.api.proto.java.AccountID) SYS_FILES_UP(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.SYS_FILES_UP) NOVEL_CONTRACT_NAME(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario.NOVEL_CONTRACT_NAME) FileID(com.hederahashgraph.api.proto.java.FileID) LongStream(java.util.stream.LongStream) SysFileSerde(com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde) FILE(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.FILE) Scenarios(com.hedera.services.bdd.suites.utils.validation.domain.Scenarios) Files(java.nio.file.Files) TxnVerbs.tokenFreeze(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenFreeze) FileScenario(com.hedera.services.bdd.suites.utils.validation.domain.FileScenario) Constructor(org.yaml.snakeyaml.constructor.Constructor) BufferedWriter(java.io.BufferedWriter) CONTRACT(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.CONTRACT) IOException(java.io.IOException) UtilVerbs.updateLargeFile(com.hedera.services.bdd.spec.utilops.UtilVerbs.updateLargeFile) HapiPropertySource(com.hedera.services.bdd.spec.HapiPropertySource) QueryVerbs.getFileInfo(com.hedera.services.bdd.spec.queries.QueryVerbs.getFileInfo) TransferListAsserts.includingDeduction(com.hedera.services.bdd.spec.assertions.TransferListAsserts.includingDeduction) TxnVerbs.burnToken(com.hedera.services.bdd.spec.transactions.TxnVerbs.burnToken) CustomSpecAssert.allRunFor(com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor) File(java.io.File) NodeTuple(org.yaml.snakeyaml.nodes.NodeTuple) AtomicLong(java.util.concurrent.atomic.AtomicLong) TxnVerbs.fileCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.fileCreate) CommonUtils(com.swirlds.common.CommonUtils) OFF(com.hedera.services.bdd.spec.keys.SigControl.OFF) Paths(java.nio.file.Paths) ContractScenario(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario) TxnVerbs.tokenUnfreeze(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenUnfreeze) PersistentFile(com.hedera.services.bdd.suites.utils.validation.domain.PersistentFile) SigControl(com.hedera.services.bdd.spec.keys.SigControl) IntConsumer(java.util.function.IntConsumer) TxnVerbs.contractUpdate(com.hedera.services.bdd.spec.transactions.TxnVerbs.contractUpdate) TxnVerbs.cryptoTransfer(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer) SYS_FILES_DOWN(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.SYS_FILES_DOWN) QueryVerbs.getContractInfo(com.hedera.services.bdd.spec.queries.QueryVerbs.getContractInfo) ContractID(com.hederahashgraph.api.proto.java.ContractID) QueryVerbs.getTxnRecord(com.hedera.services.bdd.spec.queries.QueryVerbs.getTxnRecord) QueryVerbs.getAccountInfo(com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountInfo) SysFilesUpScenario(com.hedera.services.bdd.suites.utils.validation.domain.SysFilesUpScenario) Collectors.toMap(java.util.stream.Collectors.toMap) AccountInfoAsserts.changeFromSnapshot(com.hedera.services.bdd.spec.assertions.AccountInfoAsserts.changeFromSnapshot) FEE_SNAPSHOTS(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.FEE_SNAPSHOTS) VERSIONS(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.VERSIONS) SENDER_NAME(com.hedera.services.bdd.suites.utils.validation.domain.CryptoScenario.SENDER_NAME) NOVEL_TOPIC_NAME(com.hedera.services.bdd.suites.utils.validation.domain.ConsensusScenario.NOVEL_TOPIC_NAME) PersistentContract(com.hedera.services.bdd.suites.utils.validation.domain.PersistentContract) UtilVerbs.newKeyNamed(com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed) HapiApiSpec.customHapiSpec(com.hedera.services.bdd.spec.HapiApiSpec.customHapiSpec) TxnVerbs.deleteTopic(com.hedera.services.bdd.spec.transactions.TxnVerbs.deleteTopic) DEFAULT_BYTECODE_RESOURCE(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario.DEFAULT_BYTECODE_RESOURCE) Collectors(java.util.stream.Collectors) ByteString(com.google.protobuf.ByteString) UpdateAction(com.hedera.services.bdd.suites.utils.validation.domain.UpdateAction) List(java.util.List) Node(com.hedera.services.bdd.suites.utils.validation.domain.Node) TxnVerbs.grantTokenKyc(com.hedera.services.bdd.spec.transactions.TxnVerbs.grantTokenKyc) TxnVerbs.tokenUpdate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenUpdate) HapiSpecOperation(com.hedera.services.bdd.spec.HapiSpecOperation) SysFilesDownScenario(com.hedera.services.bdd.suites.utils.validation.domain.SysFilesDownScenario) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) TxnVerbs.wipeTokenAccount(com.hedera.services.bdd.spec.transactions.TxnVerbs.wipeTokenAccount) VersionInfoScenario(com.hedera.services.bdd.suites.utils.validation.domain.VersionInfoScenario) IntStream(java.util.stream.IntStream) TxnVerbs.fileDelete(com.hedera.services.bdd.spec.transactions.TxnVerbs.fileDelete) QueryVerbs.getAccountRecords(com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountRecords) QueryVerbs.getTopicInfo(com.hedera.services.bdd.spec.queries.QueryVerbs.getTopicInfo) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) TxnVerbs.fileUpdate(com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate) AtomicReference(java.util.concurrent.atomic.AtomicReference) INVALID_SIGNATURE(com.hederahashgraph.api.proto.java.ResponseCodeEnum.INVALID_SIGNATURE) ContractResources(com.hedera.services.bdd.spec.infrastructure.meta.ContractResources) PERSISTENT_CONTRACT_NAME(com.hedera.services.bdd.suites.utils.validation.domain.ContractScenario.PERSISTENT_CONTRACT_NAME) Yaml(org.yaml.snakeyaml.Yaml) TxnVerbs(com.hedera.services.bdd.spec.transactions.TxnVerbs) NOVEL_ACCOUNT_NAME(com.hedera.services.bdd.suites.utils.validation.domain.CryptoScenario.NOVEL_ACCOUNT_NAME) ValidationConfig(com.hedera.services.bdd.suites.utils.validation.domain.ValidationConfig) TokenMovement.moving(com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving) HapiApiSuite(com.hedera.services.bdd.suites.HapiApiSuite) TxnVerbs.cryptoDelete(com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoDelete) DEFAULT_CONTENTS_RESOURCE(com.hedera.services.bdd.suites.utils.validation.domain.FileScenario.DEFAULT_CONTENTS_RESOURCE) TxnVerbs.fileAppend(com.hedera.services.bdd.spec.transactions.TxnVerbs.fileAppend) KeyShape(com.hedera.services.bdd.spec.keys.KeyShape) TxnVerbs.revokeTokenKyc(com.hedera.services.bdd.spec.transactions.TxnVerbs.revokeTokenKyc) TxnVerbs.mintToken(com.hedera.services.bdd.spec.transactions.TxnVerbs.mintToken) TxnVerbs.tokenCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate) QueryVerbs.getFileContents(com.hedera.services.bdd.spec.queries.QueryVerbs.getFileContents) SUITE_PASSED(com.hedera.services.bdd.suites.HapiApiSuite.FinalOutcome.SUITE_PASSED) TxnVerbs.updateTopic(com.hedera.services.bdd.spec.transactions.TxnVerbs.updateTopic) SYS_FILE_SERDES(com.hedera.services.bdd.suites.utils.sysfiles.serdes.StandardSerdes.SYS_FILE_SERDES) RECEIVER_NAME(com.hedera.services.bdd.suites.utils.validation.domain.CryptoScenario.RECEIVER_NAME) Optional.ofNullable(java.util.Optional.ofNullable) QueryVerbs.getAccountBalance(com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountBalance) Tag(org.yaml.snakeyaml.nodes.Tag) SpecUtils(com.hedera.services.bdd.suites.utils.keypairs.SpecUtils) ContractFnResultAsserts.isLiteralResult(com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts.isLiteralResult) TRANSFERS_ONLY(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.TRANSFERS_ONLY) LongConsumer(java.util.function.LongConsumer) Consumer(java.util.function.Consumer) CRYPTO(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.CRYPTO) Key(com.hederahashgraph.api.proto.java.Key) CONSENSUS(com.hedera.services.bdd.suites.utils.validation.ValidationScenarios.Scenario.CONSENSUS) Collectors.toList(java.util.stream.Collectors.toList) UtilVerbs(com.hedera.services.bdd.spec.utilops.UtilVerbs) Assertions(org.junit.jupiter.api.Assertions) Representer(org.yaml.snakeyaml.representer.Representer) TxnVerbs.contractCreate(com.hedera.services.bdd.spec.transactions.TxnVerbs.contractCreate) LogManager(org.apache.logging.log4j.LogManager) NOVEL_FILE_NAME(com.hedera.services.bdd.suites.utils.validation.domain.FileScenario.NOVEL_FILE_NAME) Files.readString(java.nio.file.Files.readString) ByteString(com.google.protobuf.ByteString) IOException(java.io.IOException)

Aggregations

HapiApiSpec (com.hedera.services.bdd.spec.HapiApiSpec)2 HapiSpecOperation (com.hedera.services.bdd.spec.HapiSpecOperation)2 QueryVerbs.getAccountBalance (com.hedera.services.bdd.spec.queries.QueryVerbs.getAccountBalance)2 TxnVerbs.cryptoCreate (com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoCreate)2 TxnVerbs.cryptoTransfer (com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoTransfer)2 TxnVerbs.fileUpdate (com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate)2 TxnVerbs.tokenAssociate (com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenAssociate)2 TxnVerbs.tokenCreate (com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate)2 TokenMovement.moving (com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving)2 CustomSpecAssert.allRunFor (com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor)2 UtilVerbs.withOpContext (com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext)2 HapiApiSuite (com.hedera.services.bdd.suites.HapiApiSuite)2 SysFileSerde (com.hedera.services.bdd.suites.utils.sysfiles.serdes.SysFileSerde)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Map (java.util.Map)2 Optional (java.util.Optional)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 AtomicLong (java.util.concurrent.atomic.AtomicLong)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2