Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0d4010b
feat: implement hiero hook APIs and upgrade protobufs
rwalworth Sep 30, 2025
abb4f7a
feat: updates and build
rwalworth Sep 30, 2025
08cf7a4
fix: build
rwalworth Sep 30, 2025
8bdccdf
refactor: format
rwalworth Sep 30, 2025
3dc8918
refactor: format
rwalworth Oct 1, 2025
906ca9b
refactor: format
rwalworth Oct 1, 2025
898839e
fix: builds
rwalworth Oct 1, 2025
ba28246
ci: update mirror node version
rwalworth Oct 1, 2025
7435199
feat: finish unit tests
rwalworth Oct 14, 2025
35452c9
feat: add integration tests for hooks
rwalworth Oct 14, 2025
da59a36
feat: add transfertransaction implementation with hooks
rwalworth Oct 26, 2025
d108157
refactor: combine test files
rwalworth Oct 27, 2025
34dae75
refactor: update func names
rwalworth Oct 27, 2025
717e327
feat: e2e tests and examples
rwalworth Oct 27, 2025
00a0f1e
ci: update hiero version for solo
rwalworth Oct 27, 2025
5678f14
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Oct 27, 2025
28c6002
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Dec 4, 2025
b1b1c10
ci: update hiero version
rwalworth Dec 4, 2025
ed5795a
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Feb 20, 2026
850ef68
chore: update lambda names to new names
rwalworth Feb 22, 2026
57e662a
fix: tests
rwalworth Feb 22, 2026
b07a58d
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Feb 22, 2026
7be5462
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Mar 4, 2026
22dd841
fix: codacy issues
rwalworth Mar 4, 2026
886709c
Merge branch 'main' into 01013-hiero-hooks-and-an-application-to-allo…
rwalworth Mar 27, 2026
beb6169
chore: upgrade to v0.72.0
rwalworth Mar 27, 2026
e3120ce
fix: formatting and codacy errors
rwalworth Mar 27, 2026
0183883
fix: codacy issues
rwalworth Mar 27, 2026
01de6b3
fix: codacy issue
rwalworth Mar 27, 2026
58d23e0
fix: tests
rwalworth Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/zxc-build-library.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,10 @@ jobs:
id: solo
uses: hiero-ledger/hiero-solo-action@4d42a74e8e644a2753f3bb7a2afa429305375b14 # v0.17.0
with:
soloVersion: v0.64.1
installMirrorNode: true
mirrorNodeVersion: v0.142.0
hieroVersion: v0.69.1
mirrorNodeVersion: v0.151.0
hieroVersion: v0.72.0
dualMode: true

- name: Start CTest suite (Debug)
Expand Down
6 changes: 3 additions & 3 deletions HieroApi.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
set(HAPI_VERSION_TAG "v0.69.1" CACHE STRING "Use the configured version tag for the Hiero API protobufs")
set(HAPI_COMMIT_HASH "83fa1eb1446524aa695fa2c0d817361805afb979" CACHE STRING "Use the configured commit hash for the Hiero API protobufs (overrides version tag if provided)")
set(HAPI_VERSION_TAG "v0.72.0" CACHE STRING "Use the configured version tag for the Hiero API protobufs")
set(HAPI_COMMIT_HASH "" CACHE STRING "Use the configured commit hash for the Hiero API protobufs (overrides version tag if provided)")

if (HAPI_VERSION_TAG STREQUAL "")
set(HAPI_VERSION_TAG "v0.69.1")
set(HAPI_VERSION_TAG "v0.72.0")
endif ()

# Use commit hash if provided, otherwise use version tag
Expand Down
9 changes: 7 additions & 2 deletions proto/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Begin Protobuf Definitions
set(PROTO_FILES
block/stream/chain_of_trust_proof.proto
transaction_list.proto

mirror/consensus_service.proto
Expand Down Expand Up @@ -58,15 +57,19 @@ set(PROTO_FILES
services/get_by_key.proto
services/get_by_solidity_id.proto
services/hook_dispatch.proto
services/hook_store.proto
services/hook_types.proto
services/lambda_sstore.proto
services/network_get_execution_time.proto
services/network_get_version_info.proto
services/network_service.proto
services/node_create.proto
services/node_delete.proto
services/node_stake_update.proto
services/node_update.proto
services/registered_node_create.proto
services/registered_node_delete.proto
services/registered_node_update.proto
services/registered_service_endpoint.proto
services/query.proto
services/query_header.proto
services/response.proto
Expand Down Expand Up @@ -127,6 +130,8 @@ set(PROTO_FILES
services/auxiliary/history/history_proof_signature.proto
services/auxiliary/history/history_proof_key_publication.proto
services/auxiliary/history/history_proof_vote.proto
services/auxiliary/tss/ledger_id_publication.proto
services/auxiliary/tss/tss_encryption_key.proto
services/auxiliary/tss/tss_message.proto
services/auxiliary/tss/tss_vote.proto

Expand Down
184 changes: 184 additions & 0 deletions src/sdk/examples/AccountHooksExample.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
// SPDX-License-Identifier: Apache-2.0
#include "AccountCreateTransaction.h"
#include "AccountId.h"
#include "AccountUpdateTransaction.h"
#include "Client.h"
#include "ContractCreateTransaction.h"
#include "ContractId.h"
#include "ED25519PrivateKey.h"
#include "Hbar.h"
#include "PublicKey.h"
#include "TransactionReceipt.h"
#include "TransactionResponse.h"
#include "hooks/EvmHook.h"
#include "hooks/EvmHookSpec.h"
#include "hooks/HookCreationDetails.h"
#include "hooks/HookExtensionPoint.h"
#include "impl/HexConverter.h"
#include "impl/Utilities.h"

#include <dotenv.h>
#include <filesystem>
#include <fstream>
#include <iostream>

using namespace Hiero;

static const std::string kContractBytecodeHex =
"608060405234801561001057600080fd5b50600436106100365760003560e01c8063c29855781461003b578063f2fde38b14610059575b60"
"0080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61"
"007b565b005b60005481565b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffff"
"ffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722"
"a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff0219"
"16908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b61009b81610088565b82525050"
"565b60006020820190506100b66000830184610092565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffff"
"ff82169050919050565b60006100e7826100bc565b9050919050565b6100f7816100dc565b811461010257600080fd5b50565b6000813590"
"50610114816100ee565b92915050565b6000602082840312156101305761012f6100bc565b5b600061013e84828501610105565b91505092"
"91505056fea2646970667358221220";

ContractId createHookContract(Client& client, const std::shared_ptr<PrivateKey>& operatorKey)
{
std::cout << "Creating hook contract..." << std::endl;
const TransactionReceipt txReceipt = ContractCreateTransaction()
.setAdminKey(operatorKey->getPublicKey())
.setGas(500000ULL)
.setBytecode(internal::HexConverter::hexToBytes(kContractBytecodeHex))
.execute(client)
.getReceipt(client);

if (!txReceipt.mContractId.has_value())
{
throw std::runtime_error("Failed to create hook contract!");
}

std::cout << "Hook contract created with ID: " << txReceipt.mContractId.value().toString() << std::endl;
return txReceipt.mContractId.value();
}

std::pair<AccountId, std::shared_ptr<PrivateKey>> createAccountWithHook(Client& client,
const ContractId& contractId,
const std::shared_ptr<PublicKey>& adminKey)
{
const std::shared_ptr<PrivateKey> accountKey = ED25519PrivateKey::generatePrivateKey();
EvmHookSpec evmHookSpec;
evmHookSpec.setContractId(contractId);
EvmHook evmHook;
evmHook.setEvmHookSpec(evmHookSpec);
HookCreationDetails hookWithId1002;
hookWithId1002.setExtensionPoint(HookExtensionPoint::ACCOUNT_ALLOWANCE_HOOK);
hookWithId1002.setHookId(1002LL);
hookWithId1002.setEvmHook(evmHook);
hookWithId1002.setAdminKey(adminKey);
const TransactionReceipt txReceipt = AccountCreateTransaction()
.setKeyWithoutAlias(accountKey->getPublicKey())
.setInitialBalance(Hbar(1ULL))
.addHook(hookWithId1002)
.execute(client)
.getReceipt(client);
if (!txReceipt.mAccountId.has_value())
{
throw std::runtime_error("Failed to create account with hook!");
}
std::cout << "account id = " << txReceipt.mAccountId.value().toString() << std::endl;
std::cout << "Successfully created account with hook!" << std::endl;
return { txReceipt.mAccountId.value(), accountKey };
}

void addHooksToAccount(Client& client,
const AccountId& accountId,
const std::shared_ptr<PrivateKey>& accountKey,
const EvmHookSpec& evmHookSpec,
const std::shared_ptr<PublicKey>& adminKey)
{
std::cout << "\n=== Adding Hooks to Existing Account ===" << std::endl;
EvmHook hook1;
hook1.setEvmHookSpec(evmHookSpec);
HookCreationDetails hookWithId1;
hookWithId1.setExtensionPoint(HookExtensionPoint::ACCOUNT_ALLOWANCE_HOOK);
hookWithId1.setHookId(1LL);
hookWithId1.setEvmHook(hook1);
hookWithId1.setAdminKey(adminKey);
EvmHook hook2;
hook2.setEvmHookSpec(evmHookSpec);
HookCreationDetails hookWithId2;
hookWithId2.setExtensionPoint(HookExtensionPoint::ACCOUNT_ALLOWANCE_HOOK);
hookWithId2.setHookId(2LL);
hookWithId2.setEvmHook(hook2);
hookWithId2.setAdminKey(adminKey);
try
{
AccountUpdateTransaction()
.setAccountId(accountId)
.addHookToCreate(hookWithId1)
.addHookToCreate(hookWithId2)
.freezeWith(&client)
.sign(accountKey)
.execute(client)
.getReceipt(client);
std::cout << "Successfully added hooks to account!" << std::endl;
}
catch (const std::exception& error)
{
std::cerr << "Failed to execute hook transaction: " << error.what() << std::endl;
}
}

void deleteHooksFromAccount(Client& client, const AccountId& accountId, const std::shared_ptr<PrivateKey>& accountKey)
{
std::cout << "\n=== Deleting Hooks from Account ===" << std::endl;
try
{
AccountUpdateTransaction()
.setAccountId(accountId)
.addHookToDelete(1LL)
.addHookToDelete(2LL)
.freezeWith(&client)
.sign(accountKey)
.execute(client)
.getReceipt(client);
std::cout << "Successfully deleted hooks (IDs: 1, 2)" << std::endl;
}
catch (const std::exception& error)
{
std::cerr << "Failed to execute hook deletion: " << error.what() << std::endl;
}
}

void run(Client& client, const std::shared_ptr<PrivateKey>& operatorKey)
{
std::cout << "Account Hooks Example Start!" << std::endl;
const ContractId contractId = createHookContract(client, operatorKey);
std::cout << "\n=== Creating Account with Hooks ===" << std::endl;
const std::shared_ptr<PublicKey> adminKey = client.getOperatorPublicKey();
const auto [accountId, accountKey] = createAccountWithHook(client, contractId, adminKey);
EvmHookSpec evmHookSpec;
evmHookSpec.setContractId(contractId);
addHooksToAccount(client, accountId, accountKey, evmHookSpec, adminKey);
deleteHooksFromAccount(client, accountId, accountKey);
std::cout << "Account Hooks Example Complete!" << std::endl;
}

int main(int argc, char** argv)
{
dotenv::init();
if (std::getenv("OPERATOR_ID") == nullptr || std::getenv("OPERATOR_KEY") == nullptr ||
std::getenv("NETWORK_NAME") == nullptr)
{
std::cerr << "Environment variables OPERATOR_ID, NETWORK_NAME, and OPERATOR_KEY are required." << std::endl;
return 1;
}
Client client = Client::forName(std::getenv("NETWORK_NAME"));
client.setOperator(AccountId::fromString(std::getenv("OPERATOR_ID")),
ED25519PrivateKey::fromString(std::getenv("OPERATOR_KEY")));
try
{
run(client, ED25519PrivateKey::fromString(std::getenv("OPERATOR_KEY")));
}
catch (const std::exception& error)
{
std::cerr << "Error occurred: " << error.what() << std::endl;
return 1;
}
client.close();
return 0;
}
16 changes: 16 additions & 0 deletions src/sdk/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ set(ACCOUNT_ALLOWANCE_EXAMPLE_NAME ${PROJECT_NAME}-account-allowance-example)
set(ACCOUNT_ALLOWANCE_SERIALIZED_EXAMPLE_NAME ${PROJECT_NAME}-account-allowance-serialized-example)
set(ACCOUNT_CREATE_WITH_HTS_EXAMPLE_NAME ${PROJECT_NAME}-account-create-with-hts-example)
set(ACCOUNT_CREATION_WAYS_EXAMPLE_NAME ${PROJECT_NAME}-account-creation-ways-example)
set(ACCOUNT_HOOKS_EXAMPLE_NAME ${PROJECT_NAME}-account-hooks-example)
set(AUTO_CREATE_ACCOUNT_TRANSFER_TRANSACTION_EXAMPLE_NAME ${PROJECT_NAME}-auto-create-account-transfer-transaction-example)
set(BATCH_TRANSACTION_EXAMPLE_NAME ${PROJECT_NAME}-batch-transaction-example)
set(CONSENSUS_PUB_SUB_EXAMPLE_NAME ${PROJECT_NAME}-consensus-pub-sub-example)
Expand All @@ -23,6 +24,7 @@ set(CREATE_ACCOUNT_THRESHOLD_KEY_EXAMPLE_NAME ${PROJECT_NAME}-create-account-thr
set(CREATE_SIMPLE_CONTRACT_EXAMPLE_NAME ${PROJECT_NAME}-create-simple-contract-example)
set(CREATE_STATEFUL_CONTRACT_EXAMPLE_NAME ${PROJECT_NAME}-create-stateful-contract-example)
set(CREATE_TOPIC_EXAMPLE_NAME ${PROJECT_NAME}-create-topic-example)
set(CONTRACT_HOOKS_EXAMPLE_NAME ${PROJECT_NAME}-contract-hooks-example)
set(CONTRACT_NONCES_EXAMPLE_NAME ${PROJECT_NAME}-contract-nonces-example)
set(CUSTOM_FEES_EXAMPLE_NAME ${PROJECT_NAME}-custom-fees-example)
set(DELETE_ACCOUNT_EXAMPLE_NAME ${PROJECT_NAME}-delete-account-example)
Expand All @@ -40,6 +42,7 @@ set(GET_FILE_CONTENTS_EXAMPLE_NAME ${PROJECT_NAME}-get-file-contents-example)
set(GRPC_DEADLINE_EXAMPLE_NAME ${PROJECT_NAME}-grpc-deadline-example)
set(INITIALIZE_CLIENT_WITH_MIRROR_NODE_ADDRESS_BOOK_EXAMPLE_NAME
${PROJECT_NAME}-initialize-client-with-mirror-node-address-book-example)
set(HOOK_STORE_EXAMPLE_NAME ${PROJECT_NAME}-hook-store-example)
set(LONG_TERM_SCHEDULED_TRANSACTION_EXAMPLE_NAME ${PROJECT_NAME}-long-term-scheduled-transaction-example)
set(MIRROR_NODE_CONTRACT_QUERY_EXAMPLE ${PROJECT_NAME}-mirror-node-contract-query-example)
set(MULTI_APP_TRANSFER_EXAMPLE_NAME ${PROJECT_NAME}-multi-app-transfer-example)
Expand All @@ -61,6 +64,7 @@ set(TOKEN_AIRDROP_EXAMPLE_NAME ${PROJECT_NAME}-token-airdrop-example)
set(TOKEN_CREATE_FREEZE_DELETE_EXAMPLE_NAME ${PROJECT_NAME}-token-create-freeze-delete-example)
set(TOKEN_METADATA_EXAMPLE_NAME ${PROJECT_NAME}-token-metadata-example)
set(TOPIC_WITH_ADMIN_KEY_EXAMPLE_NAME ${PROJECT_NAME}-topic-with-admin-key-example)
set(TRANSFER_TRANSACTION_HOOKS_EXAMPLE_NAME ${PROJECT_NAME}-transfer-transaction-hooks-example)
set(TRANSFER_CRYPTO_EXAMPLE_NAME ${PROJECT_NAME}-transfer-crypto-example)
set(TRANSFER_TOKENS_EXAMPLE_NAME ${PROJECT_NAME}-transfer-tokens-example)
set(TRANSFER_USING_EVM_ADDRESS_EXAMPLE_NAME ${PROJECT_NAME}-transfer-using-evm-address-example)
Expand All @@ -74,6 +78,7 @@ add_executable(${ACCOUNT_ALLOWANCE_EXAMPLE_NAME} AccountAllowanceExample.cpp)
add_executable(${ACCOUNT_ALLOWANCE_SERIALIZED_EXAMPLE_NAME} AccountAllowanceSerializedExample.cpp)
add_executable(${ACCOUNT_CREATE_WITH_HTS_EXAMPLE_NAME} AccountCreateWithHtsExample.cpp)
add_executable(${ACCOUNT_CREATION_WAYS_EXAMPLE_NAME} AccountCreationWaysExample.cpp)
add_executable(${ACCOUNT_HOOKS_EXAMPLE_NAME} AccountHooksExample.cpp)
add_executable(${AUTO_CREATE_ACCOUNT_TRANSFER_TRANSACTION_EXAMPLE_NAME} AutoCreateAccountTransferTransactionExample.cpp)
add_executable(${BATCH_TRANSACTION_EXAMPLE_NAME} BatchTransactionExample.cpp)
add_executable(${CONSENSUS_PUB_SUB_EXAMPLE_NAME} ConsensusPubSubExample.cpp)
Expand All @@ -86,6 +91,7 @@ add_executable(${CREATE_ACCOUNT_THRESHOLD_KEY_EXAMPLE_NAME} CreateAccountThresho
add_executable(${CREATE_SIMPLE_CONTRACT_EXAMPLE_NAME} CreateSimpleContractExample.cpp)
add_executable(${CREATE_STATEFUL_CONTRACT_EXAMPLE_NAME} CreateStatefulContractExample.cpp)
add_executable(${CREATE_TOPIC_EXAMPLE_NAME} CreateTopicExample.cpp)
add_executable(${CONTRACT_HOOKS_EXAMPLE_NAME} ContractHooksExample.cpp)
add_executable(${CONTRACT_NONCES_EXAMPLE_NAME} ContractNoncesExample.cpp)
add_executable(${CUSTOM_FEES_EXAMPLE_NAME} CustomFeesExample.cpp)
add_executable(${DELETE_ACCOUNT_EXAMPLE_NAME} DeleteAccountExample.cpp)
Expand All @@ -102,6 +108,7 @@ add_executable(${GET_EXCHANGE_RATES_EXAMPLE_NAME} GetExchangeRatesExample.cpp)
add_executable(${GET_FILE_CONTENTS_EXAMPLE_NAME} GetFileContentsExample.cpp)
add_executable(${GRPC_DEADLINE_EXAMPLE_NAME} GrpcDeadlineExample.cpp)
add_executable(${INITIALIZE_CLIENT_WITH_MIRROR_NODE_ADDRESS_BOOK_EXAMPLE_NAME} InitializeClientWithMirrorNodeAddressBookExample.cpp)
add_executable(${HOOK_STORE_EXAMPLE_NAME} HookStoreExample.cpp)
add_executable(${LONG_TERM_SCHEDULED_TRANSACTION_EXAMPLE_NAME} LongTermScheduledTransactionExample.cpp)
add_executable(${MIRROR_NODE_CONTRACT_QUERY_EXAMPLE} MirrorNodeContractQueryExample.cpp)
add_executable(${MULTI_APP_TRANSFER_EXAMPLE_NAME} MultiAppTransferExample.cpp)
Expand All @@ -123,6 +130,7 @@ add_executable(${TOKEN_AIRDROP_EXAMPLE_NAME} TokenAirdropExample.cpp)
add_executable(${TOKEN_CREATE_FREEZE_DELETE_EXAMPLE_NAME} TokenCreateFreezeDeleteExample.cpp)
add_executable(${TOKEN_METADATA_EXAMPLE_NAME} TokenMetadataExample.cpp)
add_executable(${TOPIC_WITH_ADMIN_KEY_EXAMPLE_NAME} TopicWithAdminKeyExample.cpp)
add_executable(${TRANSFER_TRANSACTION_HOOKS_EXAMPLE_NAME} TransferTransactionHooksExample.cpp)
add_executable(${TRANSFER_CRYPTO_EXAMPLE_NAME} TransferCryptoExample.cpp)
add_executable(${TRANSFER_TOKENS_EXAMPLE_NAME} TransferTokensExample.cpp)
add_executable(${TRANSFER_USING_EVM_ADDRESS_EXAMPLE_NAME} TransferUsingEvmAddressExample.cpp)
Expand Down Expand Up @@ -158,6 +166,7 @@ target_link_libraries(${ACCOUNT_ALLOWANCE_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${ACCOUNT_ALLOWANCE_SERIALIZED_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${ACCOUNT_CREATE_WITH_HTS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${ACCOUNT_CREATION_WAYS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${ACCOUNT_HOOKS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${AUTO_CREATE_ACCOUNT_TRANSFER_TRANSACTION_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${BATCH_TRANSACTION_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CONSENSUS_PUB_SUB_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
Expand All @@ -170,6 +179,7 @@ target_link_libraries(${CREATE_ACCOUNT_THRESHOLD_KEY_EXAMPLE_NAME} PUBLIC ${PROJ
target_link_libraries(${CREATE_SIMPLE_CONTRACT_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CREATE_STATEFUL_CONTRACT_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CREATE_TOPIC_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CONTRACT_HOOKS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CONTRACT_NONCES_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CUSTOM_FEES_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${DELETE_ACCOUNT_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
Expand All @@ -186,6 +196,7 @@ target_link_libraries(${GET_EXCHANGE_RATES_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${GET_FILE_CONTENTS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${GRPC_DEADLINE_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${INITIALIZE_CLIENT_WITH_MIRROR_NODE_ADDRESS_BOOK_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${HOOK_STORE_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${LONG_TERM_SCHEDULED_TRANSACTION_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${MIRROR_NODE_CONTRACT_QUERY_EXAMPLE} PUBLIC ${PROJECT_NAME})
target_link_libraries(${MULTI_APP_TRANSFER_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
Expand All @@ -207,6 +218,7 @@ target_link_libraries(${TOKEN_AIRDROP_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TOKEN_CREATE_FREEZE_DELETE_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TOKEN_METADATA_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TOPIC_WITH_ADMIN_KEY_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TRANSFER_TRANSACTION_HOOKS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TRANSFER_CRYPTO_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TRANSFER_TOKENS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
target_link_libraries(${TRANSFER_USING_EVM_ADDRESS_EXAMPLE_NAME} PUBLIC ${PROJECT_NAME})
Expand All @@ -222,6 +234,7 @@ install(TARGETS
${ACCOUNT_ALLOWANCE_EXAMPLE_NAME}
${ACCOUNT_CREATE_WITH_HTS_EXAMPLE_NAME}
${ACCOUNT_CREATION_WAYS_EXAMPLE_NAME}
${ACCOUNT_HOOKS_EXAMPLE_NAME}
${AUTO_CREATE_ACCOUNT_TRANSFER_TRANSACTION_EXAMPLE_NAME}
${BATCH_TRANSACTION_EXAMPLE_NAME}
${CONSENSUS_PUB_SUB_EXAMPLE_NAME}
Expand All @@ -234,6 +247,7 @@ install(TARGETS
${CREATE_SIMPLE_CONTRACT_EXAMPLE_NAME}
${CREATE_STATEFUL_CONTRACT_EXAMPLE_NAME}
${CREATE_TOPIC_EXAMPLE_NAME}
${CONTRACT_HOOKS_EXAMPLE_NAME}
${CONTRACT_NONCES_EXAMPLE_NAME}
${CUSTOM_FEES_EXAMPLE_NAME}
${DELETE_ACCOUNT_EXAMPLE_NAME}
Expand All @@ -250,6 +264,7 @@ install(TARGETS
${GET_FILE_CONTENTS_EXAMPLE_NAME}
${GRPC_DEADLINE_EXAMPLE_NAME}
${INITIALIZE_CLIENT_WITH_MIRROR_NODE_ADDRESS_BOOK_EXAMPLE_NAME}
${HOOK_STORE_EXAMPLE_NAME}
${LONG_TERM_SCHEDULED_TRANSACTION_EXAMPLE_NAME}
${MIRROR_NODE_CONTRACT_QUERY_EXAMPLE}
${MULTI_APP_TRANSFER_EXAMPLE_NAME}
Expand All @@ -269,6 +284,7 @@ install(TARGETS
${STAKING_WITH_UPDATE_EXAMPLE_NAME}
${TOKEN_AIRDROP_EXAMPLE_NAME}
${TOPIC_WITH_ADMIN_KEY_EXAMPLE_NAME}
${TRANSFER_TRANSACTION_HOOKS_EXAMPLE_NAME}
${TRANSFER_CRYPTO_EXAMPLE_NAME}
${TRANSFER_TOKENS_EXAMPLE_NAME}
${TRANSFER_USING_EVM_ADDRESS_EXAMPLE_NAME}
Expand Down
Loading
Loading