diff --git a/CHANGELOG.md b/CHANGELOG.md
index caaf9b7fe..46a38707b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased
+## 2.24.0
### Added
- Alias support in `AccountCreateTransaction`
diff --git a/README.md b/README.md
index 5f0cf221f..f9fbe0333 100644
--- a/README.md
+++ b/README.md
@@ -20,10 +20,10 @@ Select _one_ of the following depending on your target platform.
```groovy
// Android, Corda DJVM, Java 7+
-implementation 'com.hedera.hashgraph:sdk-jdk7:2.22.0'
+implementation 'com.hedera.hashgraph:sdk-jdk7:2.24.0'
// Java 9+, Kotlin
-implementation 'com.hedera.hashgraph:sdk:2.22.0'
+implementation 'com.hedera.hashgraph:sdk:2.24.0'
```
Select _one_ of the following to provide the gRPC implementation.
@@ -61,14 +61,14 @@ Select _one_ of the following depending on your target platform.
com.hedera.hashgraph
sdk-jdk7
- 2.22.0
+ 2.24.0
com.hedera.hashgraph
sdk
- 2.22.0
+ 2.24.0
```
diff --git a/example-android/app/build.gradle b/example-android/app/build.gradle
index 9eee8940d..7b9c02bc7 100644
--- a/example-android/app/build.gradle
+++ b/example-android/app/build.gradle
@@ -50,7 +50,7 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
- implementation 'com.hedera.hashgraph:sdk-jdk7:2.22.0'
+ implementation 'com.hedera.hashgraph:sdk-jdk7:2.24.0'
implementation 'org.slf4j:slf4j-simple:2.0.3'
implementation 'io.grpc:grpc-okhttp:1.46.0'
diff --git a/scripts/update_protobufs.py b/scripts/update_protobufs.py
index c1aefdd98..bf1401b0a 100755
--- a/scripts/update_protobufs.py
+++ b/scripts/update_protobufs.py
@@ -206,15 +206,23 @@ def generate_modified_protos():
do_generate_modified_protos(PROTO_MIRROR_IN_PATH, PROTO_MIRROR_OUT_PATH)
-def do_generate_modified_protos(in_path, out_path):
- for name in os.listdir(in_path):
- in_file = open(os.path.join(in_path, name), "r")
- out_file = open(os.path.join(out_path, name), "w")
- out_file.write(do_replacements(in_file.read(), PROTO_REPLACEMENTS))
- in_file.close()
- out_file.close()
-
+# def do_generate_modified_protos(in_path, out_path):
+# for name in os.listdir(in_path):
+# in_file = open(os.path.join(in_path, name), "r")
+# out_file = open(os.path.join(out_path, name), "w")
+# out_file.write(do_replacements(in_file.read(), PROTO_REPLACEMENTS))
+# in_file.close()
+# out_file.close()
+def do_generate_modified_protos(in_path, out_path):
+ for root, dirs, files in os.walk(in_path):
+ for name in files:
+ # for name in os.listdir(in_path):
+ in_file = open(os.path.join(root, name), "r")
+ out_file = open(os.path.join(out_path, name), "w")
+ out_file.write(do_replacements(in_file.read(), PROTO_REPLACEMENTS))
+ in_file.close()
+ out_file.close()
diff --git a/sdk/src/main/java/com/hedera/hashgraph/sdk/AccountCreateTransaction.java b/sdk/src/main/java/com/hedera/hashgraph/sdk/AccountCreateTransaction.java
index c82f305b4..2274cbf7c 100644
--- a/sdk/src/main/java/com/hedera/hashgraph/sdk/AccountCreateTransaction.java
+++ b/sdk/src/main/java/com/hedera/hashgraph/sdk/AccountCreateTransaction.java
@@ -339,8 +339,8 @@ public AccountCreateTransaction setDeclineStakingReward(boolean declineStakingRe
* The bytes to be used as the account's alias.
*
* The bytes must be formatted as the calcluated last 20 bytes of the
- * keccak-256 of the ECDSA primitive key.
- *
+ * keccak-256 of the ECDSA primitive key.
+ *
* All other types of keys, including but not limited to ED25519, ThresholdKey, KeyList, ContractID, and
* delegatable_contract_id, are not supported.
*
@@ -355,8 +355,8 @@ public EvmAddress getAlias() {
* The bytes to be used as the account's alias.
*
* The bytes must be formatted as the calcluated last 20 bytes of the
- * keccak-256 of the ECDSA primitive key.
- *
+ * keccak-256 of the ECDSA primitive key.
+ *
* All other types of keys, including but not limited to ED25519, ThresholdKey, KeyList, ContractID, and
* delegatable_contract_id, are not supported.
*
@@ -372,8 +372,6 @@ public AccountCreateTransaction setAlias(EvmAddress alias) {
}
/**
- * NOT YET SUPPORTED ON MAINNET AS OF FEB/23/2023
- *
* The ethereum account 20-byte EVM address to be used as the account's alias. This EVM address may be either
* the encoded form of the shard.realm.num or the keccak-256 hash of a ECDSA_SECP256K1 primitive key.
*
diff --git a/sdk/src/main/proto/topic.proto b/sdk/src/main/proto/topic.proto
new file mode 100644
index 000000000..0f69ef254
--- /dev/null
+++ b/sdk/src/main/proto/topic.proto
@@ -0,0 +1,101 @@
+syntax = "proto3";
+
+package proto;
+
+/*-
+ *
+ * Hedera Network Services Protobuf
+ *
+ * Copyright (C) 2018 - 2023 Hedera Hashgraph, LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import "basic_types.proto";
+
+option java_package = "com.hedera.hashgraph.sdk.proto";
+// <<>> This comment is special code for setting PBJ Compiler java package
+option java_multiple_files = true;
+
+/**
+ * First-draft representation of a Hedera Consensus Service topic in the network Merkle tree.
+ *
+ * As with all network entities, a topic has a unique entity number, which is usually given along
+ * with the network's shard and realm in the form of a shard.realm.number id.
+ *
+ * A topic consists of just two pieces of data:
+ * 1. The total number of messages sent to the topic; and,
+ * 2. The running hash of all those messages.
+ * It also has several metadata elements:
+ * 1. A consensus expiration time in seconds since the epoch.
+ * 2. (Optional) The number of an auto-renew account, in the same shard and realm as the topic, that
+ * has signed a transaction allowing the network to use its balance to automatically extend the topic's
+ * expiration time when it passes.
+ * 3. The number of seconds the network should automatically extend the topic's expiration by, if the
+ * topic has a valid auto-renew account, and is not deleted upon expiration.
+ * 4. A boolean marking if the topic has been deleted.
+ * 5. A memo string whose UTF-8 encoding is at most 100 bytes.
+ * 6. (Optional) An admin key whose signature must be active for the topic's metadata to be updated.
+ * 7. (Optional) A submit key whose signature must be active for the topic to receive a message.
+ */
+message Topic {
+ /**
+ * The topic's unique entity number in the Merkle state.
+ */
+ int64 topic_number = 1;
+ /**
+ * The number of messages sent to the topic.
+ */
+ int64 sequence_number = 2;
+ /**
+ * The topic's consensus expiration time in seconds since the epoch.
+ */
+ int64 expiry = 3;
+ /**
+ * The number of seconds for which the topic will be automatically renewed
+ * upon expiring (if it has a valid auto-renew account).
+ */
+ int64 auto_renew_period = 4;
+ /**
+ * The number of the account (if any) that the network will attempt to charge for the
+ * topic's auto-renewal upon expiration.
+ */
+ int64 auto_renew_account_number = 5;
+ /**
+ * Whether this topic is deleted.
+ */
+ bool deleted = 6;
+ /**
+ * When a topic is created, its running hash is initialized to 48 bytes of binary zeros.
+ * For each submitted message, the topic's running hash is then updated to the output
+ * of a particular SHA-384 digest whose input data include the previous running hash.
+ *
+ * See the TransactionReceipt.proto documentation for an exact description of the
+ * data included in the SHA-384 digest used for the update.
+ */
+ bytes running_hash = 7;
+ /**
+ * An optional description of the topic with UTF-8 encoding up to 100 bytes.
+ */
+ string memo = 8;
+ /**
+ * If present, enforces access control for updating or deleting the topic.
+ * A topic without an admin key is immutable.
+ */
+ Key admin_key = 9;
+ /**
+ * If present, enforces access control for message submission to the topic.
+ */
+ Key submit_key = 10;
+}
diff --git a/version.gradle b/version.gradle
index 05bb2054f..268b279c7 100644
--- a/version.gradle
+++ b/version.gradle
@@ -2,4 +2,4 @@
// and `sdk/build.gradle` so I extracted them into another file and made both aforementioned
// files import this one.
group = "com.hedera.hashgraph"
-version = "2.22.0"
+version = "2.24.0"