@hiero-ledger/sdk 2.76.0 → 2.78.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/umd.js +1017 -673
- package/dist/umd.min.js +14 -14
- package/lib/Cache.cjs +6 -6
- package/lib/Cache.d.ts +12 -12
- package/lib/Cache.js.map +1 -1
- package/lib/Duration.cjs +1 -1
- package/lib/Duration.d.ts +2 -2
- package/lib/Duration.js.map +1 -1
- package/lib/EntityIdHelper.cjs +1 -1
- package/lib/EntityIdHelper.js +1 -1
- package/lib/EntityIdHelper.js.map +1 -1
- package/lib/EthereumFlow.cjs +7 -7
- package/lib/EthereumFlow.d.ts +14 -14
- package/lib/EthereumFlow.js.map +1 -1
- package/lib/EthereumTransaction.cjs +7 -7
- package/lib/EthereumTransaction.d.ts +14 -14
- package/lib/EthereumTransaction.js.map +1 -1
- package/lib/EvmAddress.cjs +1 -1
- package/lib/EvmAddress.d.ts +2 -2
- package/lib/EvmAddress.js.map +1 -1
- package/lib/ExchangeRate.cjs +2 -2
- package/lib/ExchangeRate.d.ts +4 -4
- package/lib/ExchangeRate.js.map +1 -1
- package/lib/ExchangeRates.cjs +1 -1
- package/lib/ExchangeRates.d.ts +1 -1
- package/lib/ExchangeRates.js +1 -1
- package/lib/ExchangeRates.js.map +1 -1
- package/lib/Executable.cjs +13 -3
- package/lib/Executable.js +1 -1
- package/lib/Executable.js.map +1 -1
- package/lib/FeeComponents.cjs +1 -1
- package/lib/FeeComponents.d.ts +1 -1
- package/lib/FeeComponents.js +1 -1
- package/lib/FeeComponents.js.map +1 -1
- package/lib/FeeData.cjs +1 -1
- package/lib/FeeData.d.ts +1 -1
- package/lib/FeeData.js +1 -1
- package/lib/FeeData.js.map +1 -1
- package/lib/FeeDataType.cjs +1 -1
- package/lib/FeeDataType.d.ts +2 -2
- package/lib/FeeDataType.js.map +1 -1
- package/lib/FeeSchedule.cjs +1 -1
- package/lib/FeeSchedule.d.ts +1 -1
- package/lib/FeeSchedule.js +1 -1
- package/lib/FeeSchedule.js.map +1 -1
- package/lib/FeeSchedules.cjs +1 -1
- package/lib/FeeSchedules.d.ts +1 -1
- package/lib/FeeSchedules.js +1 -1
- package/lib/FeeSchedules.js.map +1 -1
- package/lib/FreezeType.cjs +1 -1
- package/lib/FreezeType.d.ts +2 -2
- package/lib/FreezeType.js.map +1 -1
- package/lib/Key.cjs +1 -1
- package/lib/Key.d.ts +2 -2
- package/lib/Key.js.map +1 -1
- package/lib/KeyList.cjs +3 -3
- package/lib/KeyList.d.ts +6 -6
- package/lib/KeyList.js.map +1 -1
- package/lib/Mnemonic.cjs +1 -1
- package/lib/Mnemonic.d.ts +1 -1
- package/lib/Mnemonic.js +1 -1
- package/lib/Mnemonic.js.map +1 -1
- package/lib/PrivateKey.cjs +7 -7
- package/lib/PrivateKey.d.ts +11 -11
- package/lib/PrivateKey.js +1 -1
- package/lib/PrivateKey.js.map +1 -1
- package/lib/PrngTransaction.cjs +9 -9
- package/lib/PrngTransaction.d.ts +18 -18
- package/lib/PrngTransaction.js.map +1 -1
- package/lib/PublicKey.cjs +5 -5
- package/lib/PublicKey.d.ts +9 -9
- package/lib/PublicKey.js +1 -1
- package/lib/PublicKey.js.map +1 -1
- package/lib/RequestType.cjs +1 -1
- package/lib/RequestType.d.ts +2 -2
- package/lib/RequestType.js.map +1 -1
- package/lib/StakingInfo.cjs +1 -1
- package/lib/StakingInfo.d.ts +1 -1
- package/lib/StakingInfo.js +1 -1
- package/lib/StakingInfo.js.map +1 -1
- package/lib/Status.cjs +1 -1
- package/lib/Status.d.ts +2 -2
- package/lib/Status.js.map +1 -1
- package/lib/Timestamp.cjs +1 -1
- package/lib/Timestamp.d.ts +1 -1
- package/lib/Timestamp.js.map +1 -1
- package/lib/TransactionFeeSchedule.cjs +1 -1
- package/lib/TransactionFeeSchedule.d.ts +1 -1
- package/lib/TransactionFeeSchedule.js +1 -1
- package/lib/TransactionFeeSchedule.js.map +1 -1
- package/lib/Transfer.cjs +2 -2
- package/lib/Transfer.d.ts +4 -4
- package/lib/Transfer.js.map +1 -1
- package/lib/account/AccountAllowanceAdjustTransaction.cjs +7 -7
- package/lib/account/AccountAllowanceAdjustTransaction.d.ts +14 -14
- package/lib/account/AccountAllowanceAdjustTransaction.js.map +1 -1
- package/lib/account/AccountAllowanceApproveTransaction.cjs +8 -8
- package/lib/account/AccountAllowanceApproveTransaction.d.ts +16 -16
- package/lib/account/AccountAllowanceApproveTransaction.js.map +1 -1
- package/lib/account/AccountAllowanceDeleteTransaction.cjs +7 -7
- package/lib/account/AccountAllowanceDeleteTransaction.d.ts +14 -14
- package/lib/account/AccountAllowanceDeleteTransaction.js.map +1 -1
- package/lib/account/AccountBalance.cjs +1 -1
- package/lib/account/AccountBalance.d.ts +1 -1
- package/lib/account/AccountBalance.js +1 -1
- package/lib/account/AccountBalance.js.map +1 -1
- package/lib/account/AccountBalanceQuery.cjs +6 -6
- package/lib/account/AccountBalanceQuery.d.ts +12 -12
- package/lib/account/AccountBalanceQuery.js.map +1 -1
- package/lib/account/AccountCreateTransaction.cjs +1 -1
- package/lib/account/AccountCreateTransaction.d.ts +1 -1
- package/lib/account/AccountCreateTransaction.js +1 -1
- package/lib/account/AccountCreateTransaction.js.map +1 -1
- package/lib/account/AccountDeleteTransaction.cjs +7 -7
- package/lib/account/AccountDeleteTransaction.d.ts +14 -14
- package/lib/account/AccountDeleteTransaction.js.map +1 -1
- package/lib/account/AccountId.cjs +1 -1
- package/lib/account/AccountId.d.ts +1 -1
- package/lib/account/AccountId.js +1 -1
- package/lib/account/AccountId.js.map +1 -1
- package/lib/account/AccountInfo.cjs +1 -1
- package/lib/account/AccountInfo.d.ts +1 -1
- package/lib/account/AccountInfo.js +1 -1
- package/lib/account/AccountInfo.js.map +1 -1
- package/lib/account/AccountInfoQuery.cjs +7 -7
- package/lib/account/AccountInfoQuery.d.ts +14 -14
- package/lib/account/AccountInfoQuery.js.map +1 -1
- package/lib/account/AccountRecordsQuery.cjs +7 -7
- package/lib/account/AccountRecordsQuery.d.ts +14 -14
- package/lib/account/AccountRecordsQuery.js.map +1 -1
- package/lib/account/AccountUpdateTransaction.cjs +7 -7
- package/lib/account/AccountUpdateTransaction.d.ts +14 -14
- package/lib/account/AccountUpdateTransaction.js.map +1 -1
- package/lib/account/HbarAllowance.cjs +3 -3
- package/lib/account/HbarAllowance.d.ts +6 -6
- package/lib/account/HbarAllowance.js.map +1 -1
- package/lib/account/HbarTransferMap.cjs +2 -2
- package/lib/account/HbarTransferMap.d.ts +4 -4
- package/lib/account/HbarTransferMap.js.map +1 -1
- package/lib/account/LiveHash.cjs +3 -3
- package/lib/account/LiveHash.d.ts +6 -6
- package/lib/account/LiveHash.js.map +1 -1
- package/lib/account/LiveHashAddTransaction.cjs +7 -7
- package/lib/account/LiveHashAddTransaction.d.ts +14 -14
- package/lib/account/LiveHashAddTransaction.js.map +1 -1
- package/lib/account/LiveHashDeleteTransaction.cjs +6 -6
- package/lib/account/LiveHashDeleteTransaction.d.ts +12 -12
- package/lib/account/LiveHashDeleteTransaction.js.map +1 -1
- package/lib/account/LiveHashQuery.cjs +7 -7
- package/lib/account/LiveHashQuery.d.ts +14 -14
- package/lib/account/LiveHashQuery.js.map +1 -1
- package/lib/account/NullableTokenDecimalMap.cjs +2 -2
- package/lib/account/NullableTokenDecimalMap.d.ts +4 -4
- package/lib/account/NullableTokenDecimalMap.js.map +1 -1
- package/lib/account/ProxyStaker.cjs +2 -2
- package/lib/account/ProxyStaker.d.ts +4 -4
- package/lib/account/ProxyStaker.js.map +1 -1
- package/lib/account/TokenAllowance.cjs +4 -4
- package/lib/account/TokenAllowance.d.ts +8 -8
- package/lib/account/TokenAllowance.js.map +1 -1
- package/lib/account/TokenBalanceMap.cjs +2 -2
- package/lib/account/TokenBalanceMap.d.ts +4 -4
- package/lib/account/TokenBalanceMap.js.map +1 -1
- package/lib/account/TokenDecimalMap.cjs +2 -2
- package/lib/account/TokenDecimalMap.d.ts +4 -4
- package/lib/account/TokenDecimalMap.js.map +1 -1
- package/lib/account/TokenNftAllowance.cjs +5 -5
- package/lib/account/TokenNftAllowance.d.ts +10 -10
- package/lib/account/TokenNftAllowance.js.map +1 -1
- package/lib/account/TokenNftTransferMap.cjs +5 -5
- package/lib/account/TokenNftTransferMap.d.ts +10 -10
- package/lib/account/TokenNftTransferMap.js.map +1 -1
- package/lib/account/TokenRelationship.cjs +4 -4
- package/lib/account/TokenRelationship.d.ts +8 -8
- package/lib/account/TokenRelationship.js.map +1 -1
- package/lib/account/TokenRelationshipMap.cjs +2 -2
- package/lib/account/TokenRelationshipMap.d.ts +4 -4
- package/lib/account/TokenRelationshipMap.js.map +1 -1
- package/lib/account/TokenTransferMap.cjs +4 -4
- package/lib/account/TokenTransferMap.d.ts +8 -8
- package/lib/account/TokenTransferMap.js.map +1 -1
- package/lib/account/TransferTransaction.cjs +6 -6
- package/lib/account/TransferTransaction.d.ts +12 -12
- package/lib/account/TransferTransaction.js.map +1 -1
- package/lib/address_book/AddressBooks.cjs +1 -1
- package/lib/address_book/AddressBooks.js +1 -1
- package/lib/address_book/AddressBooks.js.map +1 -1
- package/lib/address_book/Endpoint.cjs +1 -1
- package/lib/address_book/Endpoint.d.ts +2 -2
- package/lib/address_book/Endpoint.js.map +1 -1
- package/lib/address_book/NodeAddress.cjs +1 -1
- package/lib/address_book/NodeAddress.d.ts +2 -2
- package/lib/address_book/NodeAddress.js.map +1 -1
- package/lib/address_book/NodeAddressBook.cjs +1 -1
- package/lib/address_book/NodeAddressBook.d.ts +1 -1
- package/lib/address_book/NodeAddressBook.js +1 -1
- package/lib/address_book/NodeAddressBook.js.map +1 -1
- package/lib/browser.js +1 -1
- package/lib/channel/Channel.cjs +26 -2
- package/lib/channel/Channel.d.ts +21 -1
- package/lib/channel/Channel.js +1 -1
- package/lib/channel/Channel.js.map +1 -1
- package/lib/channel/NativeChannel.cjs +96 -2
- package/lib/channel/NativeChannel.d.ts +21 -1
- package/lib/channel/NativeChannel.js +1 -1
- package/lib/channel/NativeChannel.js.map +1 -1
- package/lib/channel/NodeChannel.cjs +4 -5
- package/lib/channel/NodeChannel.d.ts +2 -3
- package/lib/channel/NodeChannel.js +1 -1
- package/lib/channel/NodeChannel.js.map +1 -1
- package/lib/channel/WebChannel.cjs +163 -13
- package/lib/channel/WebChannel.d.ts +51 -1
- package/lib/channel/WebChannel.js +1 -1
- package/lib/channel/WebChannel.js.map +1 -1
- package/lib/client/Client.cjs +62 -5
- package/lib/client/Client.d.ts +26 -3
- package/lib/client/Client.js +1 -1
- package/lib/client/Client.js.map +1 -1
- package/lib/client/NativeClient.cjs +1 -1
- package/lib/client/NativeClient.js +1 -1
- package/lib/client/NativeClient.js.map +1 -1
- package/lib/client/NodeClient.cjs +7 -6
- package/lib/client/NodeClient.d.ts +3 -3
- package/lib/client/NodeClient.js +1 -1
- package/lib/client/NodeClient.js.map +1 -1
- package/lib/client/WebClient.cjs +55 -27
- package/lib/client/WebClient.d.ts +6 -0
- package/lib/client/WebClient.js +1 -1
- package/lib/client/WebClient.js.map +1 -1
- package/lib/client/addressbooks/mainnet.cjs +1 -1
- package/lib/client/addressbooks/mainnet.d.ts +1 -1
- package/lib/client/addressbooks/mainnet.js +1 -1
- package/lib/client/addressbooks/mainnet.js.map +1 -1
- package/lib/client/addressbooks/previewnet.cjs +1 -1
- package/lib/client/addressbooks/previewnet.d.ts +1 -1
- package/lib/client/addressbooks/previewnet.js +1 -1
- package/lib/client/addressbooks/previewnet.js.map +1 -1
- package/lib/client/addressbooks/testnet.cjs +1 -1
- package/lib/client/addressbooks/testnet.d.ts +1 -1
- package/lib/client/addressbooks/testnet.js +1 -1
- package/lib/client/addressbooks/testnet.js.map +1 -1
- package/lib/constants/ClientConstants.cjs +17 -1
- package/lib/constants/ClientConstants.d.ts +14 -0
- package/lib/constants/ClientConstants.js +1 -1
- package/lib/constants/ClientConstants.js.map +1 -1
- package/lib/contract/ContractByteCodeQuery.cjs +6 -6
- package/lib/contract/ContractByteCodeQuery.d.ts +12 -12
- package/lib/contract/ContractByteCodeQuery.js.map +1 -1
- package/lib/contract/ContractCallQuery.cjs +1 -1
- package/lib/contract/ContractCallQuery.d.ts +1 -1
- package/lib/contract/ContractCallQuery.js +1 -1
- package/lib/contract/ContractCallQuery.js.map +1 -1
- package/lib/contract/ContractCreateTransaction.cjs +8 -8
- package/lib/contract/ContractCreateTransaction.d.ts +16 -16
- package/lib/contract/ContractCreateTransaction.js.map +1 -1
- package/lib/contract/ContractDeleteTransaction.cjs +8 -8
- package/lib/contract/ContractDeleteTransaction.d.ts +16 -16
- package/lib/contract/ContractDeleteTransaction.js.map +1 -1
- package/lib/contract/ContractExecuteTransaction.cjs +9 -9
- package/lib/contract/ContractExecuteTransaction.d.ts +18 -18
- package/lib/contract/ContractExecuteTransaction.js.map +1 -1
- package/lib/contract/ContractFunctionResult.cjs +2 -2
- package/lib/contract/ContractFunctionResult.d.ts +4 -4
- package/lib/contract/ContractFunctionResult.js.map +1 -1
- package/lib/contract/ContractId.cjs +1 -1
- package/lib/contract/ContractId.d.ts +1 -1
- package/lib/contract/ContractId.js +1 -1
- package/lib/contract/ContractId.js.map +1 -1
- package/lib/contract/ContractInfo.cjs +1 -1
- package/lib/contract/ContractInfo.d.ts +1 -1
- package/lib/contract/ContractInfo.js +1 -1
- package/lib/contract/ContractInfo.js.map +1 -1
- package/lib/contract/ContractInfoQuery.cjs +7 -7
- package/lib/contract/ContractInfoQuery.d.ts +14 -14
- package/lib/contract/ContractInfoQuery.js.map +1 -1
- package/lib/contract/ContractLogInfo.cjs +2 -2
- package/lib/contract/ContractLogInfo.d.ts +4 -4
- package/lib/contract/ContractLogInfo.js.map +1 -1
- package/lib/contract/ContractNonceInfo.cjs +3 -3
- package/lib/contract/ContractNonceInfo.d.ts +4 -4
- package/lib/contract/ContractNonceInfo.js +1 -1
- package/lib/contract/ContractNonceInfo.js.map +1 -1
- package/lib/contract/ContractStateChange.cjs +1 -1
- package/lib/contract/ContractStateChange.d.ts +1 -1
- package/lib/contract/ContractUpdateTransaction.cjs +10 -10
- package/lib/contract/ContractUpdateTransaction.d.ts +18 -18
- package/lib/contract/ContractUpdateTransaction.js +1 -1
- package/lib/contract/ContractUpdateTransaction.js.map +1 -1
- package/lib/contract/DelegateContractId.cjs +2 -2
- package/lib/contract/DelegateContractId.d.ts +4 -4
- package/lib/contract/DelegateContractId.js.map +1 -1
- package/lib/contract/StorageChange.cjs +1 -1
- package/lib/contract/StorageChange.d.ts +1 -1
- package/lib/exports.cjs +1 -1
- package/lib/exports.d.ts +1 -1
- package/lib/exports.js +1 -1
- package/lib/exports.js.map +1 -1
- package/lib/file/FileAppendTransaction.cjs +7 -7
- package/lib/file/FileAppendTransaction.d.ts +14 -14
- package/lib/file/FileAppendTransaction.js.map +1 -1
- package/lib/file/FileContentsQuery.cjs +7 -7
- package/lib/file/FileContentsQuery.d.ts +14 -14
- package/lib/file/FileContentsQuery.js.map +1 -1
- package/lib/file/FileCreateTransaction.cjs +6 -6
- package/lib/file/FileCreateTransaction.d.ts +12 -12
- package/lib/file/FileCreateTransaction.js.map +1 -1
- package/lib/file/FileDeleteTransaction.cjs +7 -7
- package/lib/file/FileDeleteTransaction.d.ts +14 -14
- package/lib/file/FileDeleteTransaction.js.map +1 -1
- package/lib/file/FileId.cjs +1 -1
- package/lib/file/FileId.d.ts +1 -1
- package/lib/file/FileId.js +1 -1
- package/lib/file/FileId.js.map +1 -1
- package/lib/file/FileInfo.cjs +1 -1
- package/lib/file/FileInfo.d.ts +1 -1
- package/lib/file/FileInfo.js +1 -1
- package/lib/file/FileInfo.js.map +1 -1
- package/lib/file/FileInfoQuery.cjs +7 -7
- package/lib/file/FileInfoQuery.d.ts +14 -14
- package/lib/file/FileInfoQuery.js.map +1 -1
- package/lib/file/FileUpdateTransaction.cjs +6 -6
- package/lib/file/FileUpdateTransaction.d.ts +12 -12
- package/lib/file/FileUpdateTransaction.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/native.js +1 -1
- package/lib/network/AddressBookQuery.cjs +1 -5
- package/lib/network/AddressBookQuery.js +1 -1
- package/lib/network/AddressBookQuery.js.map +1 -1
- package/lib/network/AddressBookQueryWeb.cjs +1 -5
- package/lib/network/AddressBookQueryWeb.js +1 -1
- package/lib/network/AddressBookQueryWeb.js.map +1 -1
- package/lib/network/NetworkVersionInfo.cjs +1 -1
- package/lib/network/NetworkVersionInfo.d.ts +1 -1
- package/lib/network/NetworkVersionInfo.js +1 -1
- package/lib/network/NetworkVersionInfo.js.map +1 -1
- package/lib/network/NetworkVersionInfoQuery.cjs +6 -6
- package/lib/network/NetworkVersionInfoQuery.d.ts +12 -12
- package/lib/network/NetworkVersionInfoQuery.js.map +1 -1
- package/lib/network/SemanticVersion.cjs +1 -1
- package/lib/network/SemanticVersion.d.ts +1 -1
- package/lib/network/SemanticVersion.js +1 -1
- package/lib/network/SemanticVersion.js.map +1 -1
- package/lib/node/NodeCreateTransaction.cjs +6 -6
- package/lib/node/NodeCreateTransaction.d.ts +12 -12
- package/lib/node/NodeCreateTransaction.js.map +1 -1
- package/lib/node/NodeDeleteTransaction.cjs +6 -6
- package/lib/node/NodeDeleteTransaction.d.ts +12 -12
- package/lib/node/NodeDeleteTransaction.js.map +1 -1
- package/lib/node/NodeUpdateTransaction.cjs +6 -6
- package/lib/node/NodeUpdateTransaction.d.ts +12 -12
- package/lib/node/NodeUpdateTransaction.js.map +1 -1
- package/lib/node/ServiceEndpoint.cjs +1 -1
- package/lib/node/ServiceEndpoint.d.ts +2 -2
- package/lib/node/ServiceEndpoint.js.map +1 -1
- package/lib/query/CostQuery.cjs +1 -1
- package/lib/query/CostQuery.d.ts +1 -1
- package/lib/query/CostQuery.js +1 -1
- package/lib/query/CostQuery.js.map +1 -1
- package/lib/query/Query.cjs +1 -1
- package/lib/query/Query.d.ts +1 -1
- package/lib/query/Query.js +1 -1
- package/lib/query/Query.js.map +1 -1
- package/lib/query/QueryBase.cjs +1 -1
- package/lib/query/QueryBase.d.ts +1 -1
- package/lib/query/QueryBase.js +1 -1
- package/lib/query/QueryBase.js.map +1 -1
- package/lib/schedule/ScheduleCreateTransaction.cjs +1 -1
- package/lib/schedule/ScheduleCreateTransaction.d.ts +1 -1
- package/lib/schedule/ScheduleCreateTransaction.js +1 -1
- package/lib/schedule/ScheduleCreateTransaction.js.map +1 -1
- package/lib/schedule/ScheduleDeleteTransaction.cjs +8 -8
- package/lib/schedule/ScheduleDeleteTransaction.d.ts +16 -16
- package/lib/schedule/ScheduleDeleteTransaction.js.map +1 -1
- package/lib/schedule/ScheduleId.cjs +1 -1
- package/lib/schedule/ScheduleId.d.ts +1 -1
- package/lib/schedule/ScheduleId.js +1 -1
- package/lib/schedule/ScheduleId.js.map +1 -1
- package/lib/schedule/ScheduleInfo.cjs +1 -1
- package/lib/schedule/ScheduleInfo.d.ts +1 -1
- package/lib/schedule/ScheduleInfo.js +1 -1
- package/lib/schedule/ScheduleInfo.js.map +1 -1
- package/lib/schedule/ScheduleInfoQuery.cjs +7 -7
- package/lib/schedule/ScheduleInfoQuery.d.ts +14 -14
- package/lib/schedule/ScheduleInfoQuery.js.map +1 -1
- package/lib/schedule/ScheduleSignTransaction.cjs +10 -10
- package/lib/schedule/ScheduleSignTransaction.d.ts +20 -20
- package/lib/schedule/ScheduleSignTransaction.js.map +1 -1
- package/lib/system/FreezeTransaction.cjs +6 -6
- package/lib/system/FreezeTransaction.d.ts +12 -12
- package/lib/system/FreezeTransaction.js.map +1 -1
- package/lib/system/SystemDeleteTransaction.cjs +8 -8
- package/lib/system/SystemDeleteTransaction.d.ts +16 -16
- package/lib/system/SystemDeleteTransaction.js.map +1 -1
- package/lib/system/SystemUndeleteTransaction.cjs +8 -8
- package/lib/system/SystemUndeleteTransaction.d.ts +16 -16
- package/lib/system/SystemUndeleteTransaction.js.map +1 -1
- package/lib/token/AbstractTokenTransferTransaction.cjs +1 -1
- package/lib/token/AbstractTokenTransferTransaction.d.ts +2 -2
- package/lib/token/AbstractTokenTransferTransaction.js.map +1 -1
- package/lib/token/AssessedCustomFee.cjs +1 -1
- package/lib/token/AssessedCustomFee.d.ts +2 -2
- package/lib/token/AssessedCustomFee.js.map +1 -1
- package/lib/token/CustomFee.cjs +1 -1
- package/lib/token/CustomFee.d.ts +2 -2
- package/lib/token/CustomFee.js.map +1 -1
- package/lib/token/CustomFixedFee.cjs +3 -3
- package/lib/token/CustomFixedFee.d.ts +6 -6
- package/lib/token/CustomFixedFee.js.map +1 -1
- package/lib/token/CustomFractionalFee.cjs +3 -3
- package/lib/token/CustomFractionalFee.d.ts +6 -6
- package/lib/token/CustomFractionalFee.js.map +1 -1
- package/lib/token/CustomRoyaltyFee.cjs +4 -4
- package/lib/token/CustomRoyaltyFee.d.ts +8 -8
- package/lib/token/CustomRoyaltyFee.js.map +1 -1
- package/lib/token/NftId.cjs +1 -1
- package/lib/token/NftId.d.ts +1 -1
- package/lib/token/NftId.js +1 -1
- package/lib/token/NftId.js.map +1 -1
- package/lib/token/PendingAirdropId.cjs +1 -1
- package/lib/token/PendingAirdropId.d.ts +1 -1
- package/lib/token/PendingAirdropId.js.map +1 -1
- package/lib/token/PendingAirdropRecord.cjs +1 -1
- package/lib/token/PendingAirdropRecord.d.ts +1 -1
- package/lib/token/PendingAirdropRecord.js.map +1 -1
- package/lib/token/TokenAirdropTransaction.cjs +8 -8
- package/lib/token/TokenAirdropTransaction.d.ts +16 -16
- package/lib/token/TokenAirdropTransaction.js.map +1 -1
- package/lib/token/TokenAssociateTransaction.cjs +7 -7
- package/lib/token/TokenAssociateTransaction.d.ts +14 -14
- package/lib/token/TokenAssociateTransaction.js.map +1 -1
- package/lib/token/TokenAssociation.cjs +1 -1
- package/lib/token/TokenAssociation.d.ts +2 -2
- package/lib/token/TokenAssociation.js.map +1 -1
- package/lib/token/TokenBurnTransaction.cjs +7 -7
- package/lib/token/TokenBurnTransaction.d.ts +14 -14
- package/lib/token/TokenBurnTransaction.js.map +1 -1
- package/lib/token/TokenCancelAirdropTransaction.cjs +6 -6
- package/lib/token/TokenCancelAirdropTransaction.d.ts +12 -12
- package/lib/token/TokenCancelAirdropTransaction.js.map +1 -1
- package/lib/token/TokenClaimAirdropTransaction.cjs +6 -6
- package/lib/token/TokenClaimAirdropTransaction.d.ts +12 -12
- package/lib/token/TokenClaimAirdropTransaction.js.map +1 -1
- package/lib/token/TokenCreateTransaction.cjs +7 -7
- package/lib/token/TokenCreateTransaction.d.ts +14 -14
- package/lib/token/TokenCreateTransaction.js.map +1 -1
- package/lib/token/TokenDeleteTransaction.cjs +7 -7
- package/lib/token/TokenDeleteTransaction.d.ts +14 -14
- package/lib/token/TokenDeleteTransaction.js.map +1 -1
- package/lib/token/TokenDissociateTransaction.cjs +7 -7
- package/lib/token/TokenDissociateTransaction.d.ts +14 -14
- package/lib/token/TokenDissociateTransaction.js.map +1 -1
- package/lib/token/TokenFeeScheduleUpdateTransaction.cjs +7 -7
- package/lib/token/TokenFeeScheduleUpdateTransaction.d.ts +14 -14
- package/lib/token/TokenFeeScheduleUpdateTransaction.js.map +1 -1
- package/lib/token/TokenFreezeTransaction.cjs +7 -7
- package/lib/token/TokenFreezeTransaction.d.ts +14 -14
- package/lib/token/TokenFreezeTransaction.js.map +1 -1
- package/lib/token/TokenGrantKycTransaction.cjs +7 -7
- package/lib/token/TokenGrantKycTransaction.d.ts +14 -14
- package/lib/token/TokenGrantKycTransaction.js.map +1 -1
- package/lib/token/TokenId.cjs +1 -1
- package/lib/token/TokenId.d.ts +1 -1
- package/lib/token/TokenId.js +1 -1
- package/lib/token/TokenId.js.map +1 -1
- package/lib/token/TokenInfo.cjs +1 -1
- package/lib/token/TokenInfo.d.ts +1 -1
- package/lib/token/TokenInfo.js +1 -1
- package/lib/token/TokenInfo.js.map +1 -1
- package/lib/token/TokenInfoQuery.cjs +7 -7
- package/lib/token/TokenInfoQuery.d.ts +14 -14
- package/lib/token/TokenInfoQuery.js.map +1 -1
- package/lib/token/TokenKeyValidation.cjs +1 -1
- package/lib/token/TokenKeyValidation.d.ts +2 -2
- package/lib/token/TokenKeyValidation.js.map +1 -1
- package/lib/token/TokenMintTransaction.cjs +7 -7
- package/lib/token/TokenMintTransaction.d.ts +14 -14
- package/lib/token/TokenMintTransaction.js.map +1 -1
- package/lib/token/TokenNftInfo.cjs +10 -10
- package/lib/token/TokenNftInfo.d.ts +20 -20
- package/lib/token/TokenNftInfo.js.map +1 -1
- package/lib/token/TokenNftInfoQuery.cjs +11 -11
- package/lib/token/TokenNftInfoQuery.d.ts +22 -22
- package/lib/token/TokenNftInfoQuery.js.map +1 -1
- package/lib/token/TokenNftTransfer.cjs +5 -5
- package/lib/token/TokenNftTransfer.d.ts +10 -10
- package/lib/token/TokenNftTransfer.js.map +1 -1
- package/lib/token/TokenNftsUpdateTransaction.cjs +7 -7
- package/lib/token/TokenNftsUpdateTransaction.d.ts +14 -14
- package/lib/token/TokenPauseTransaction.cjs +7 -7
- package/lib/token/TokenPauseTransaction.d.ts +14 -14
- package/lib/token/TokenPauseTransaction.js.map +1 -1
- package/lib/token/TokenReference.cjs +1 -1
- package/lib/token/TokenReference.d.ts +2 -2
- package/lib/token/TokenReference.js.map +1 -1
- package/lib/token/TokenRejectTransaction.cjs +7 -7
- package/lib/token/TokenRejectTransaction.d.ts +14 -14
- package/lib/token/TokenRejectTransaction.js.map +1 -1
- package/lib/token/TokenRevokeKycTransaction.cjs +7 -7
- package/lib/token/TokenRevokeKycTransaction.d.ts +14 -14
- package/lib/token/TokenRevokeKycTransaction.js.map +1 -1
- package/lib/token/TokenSupplyType.cjs +1 -1
- package/lib/token/TokenSupplyType.d.ts +2 -2
- package/lib/token/TokenSupplyType.js.map +1 -1
- package/lib/token/TokenTransfer.cjs +4 -4
- package/lib/token/TokenTransfer.d.ts +8 -8
- package/lib/token/TokenTransfer.js.map +1 -1
- package/lib/token/TokenType.cjs +1 -1
- package/lib/token/TokenType.d.ts +2 -2
- package/lib/token/TokenType.js.map +1 -1
- package/lib/token/TokenUnfreezeTransaction.cjs +7 -7
- package/lib/token/TokenUnfreezeTransaction.d.ts +14 -14
- package/lib/token/TokenUnfreezeTransaction.js.map +1 -1
- package/lib/token/TokenUnpauseTransaction.cjs +7 -7
- package/lib/token/TokenUnpauseTransaction.d.ts +14 -14
- package/lib/token/TokenUnpauseTransaction.js.map +1 -1
- package/lib/token/TokenUpdateNftsTransaction.cjs +7 -7
- package/lib/token/TokenUpdateNftsTransaction.d.ts +14 -14
- package/lib/token/TokenUpdateNftsTransaction.js.map +1 -1
- package/lib/token/TokenUpdateTransaction.cjs +7 -7
- package/lib/token/TokenUpdateTransaction.d.ts +14 -14
- package/lib/token/TokenUpdateTransaction.js.map +1 -1
- package/lib/token/TokenWipeTransaction.cjs +7 -7
- package/lib/token/TokenWipeTransaction.d.ts +14 -14
- package/lib/token/TokenWipeTransaction.js.map +1 -1
- package/lib/topic/TopicCreateTransaction.cjs +6 -6
- package/lib/topic/TopicCreateTransaction.d.ts +12 -12
- package/lib/topic/TopicCreateTransaction.js.map +1 -1
- package/lib/topic/TopicDeleteTransaction.cjs +6 -6
- package/lib/topic/TopicDeleteTransaction.d.ts +12 -12
- package/lib/topic/TopicDeleteTransaction.js.map +1 -1
- package/lib/topic/TopicId.cjs +1 -1
- package/lib/topic/TopicId.d.ts +1 -1
- package/lib/topic/TopicId.js +1 -1
- package/lib/topic/TopicId.js.map +1 -1
- package/lib/topic/TopicInfo.cjs +1 -1
- package/lib/topic/TopicInfo.d.ts +1 -1
- package/lib/topic/TopicInfo.js +1 -1
- package/lib/topic/TopicInfo.js.map +1 -1
- package/lib/topic/TopicInfoQuery.cjs +7 -7
- package/lib/topic/TopicInfoQuery.d.ts +14 -14
- package/lib/topic/TopicInfoQuery.js.map +1 -1
- package/lib/topic/TopicMessage.cjs +2 -2
- package/lib/topic/TopicMessage.d.ts +4 -4
- package/lib/topic/TopicMessage.js.map +1 -1
- package/lib/topic/TopicMessageChunk.cjs +2 -2
- package/lib/topic/TopicMessageChunk.d.ts +4 -4
- package/lib/topic/TopicMessageChunk.js.map +1 -1
- package/lib/topic/TopicMessageQuery.cjs +1 -1
- package/lib/topic/TopicMessageQuery.js +1 -1
- package/lib/topic/TopicMessageQuery.js.map +1 -1
- package/lib/topic/TopicMessageSubmitTransaction.cjs +9 -9
- package/lib/topic/TopicMessageSubmitTransaction.d.ts +18 -18
- package/lib/topic/TopicMessageSubmitTransaction.js.map +1 -1
- package/lib/topic/TopicUpdateTransaction.cjs +6 -6
- package/lib/topic/TopicUpdateTransaction.d.ts +12 -12
- package/lib/topic/TopicUpdateTransaction.js.map +1 -1
- package/lib/transaction/BatchTransaction.cjs +5 -5
- package/lib/transaction/BatchTransaction.d.ts +9 -9
- package/lib/transaction/BatchTransaction.js +1 -1
- package/lib/transaction/BatchTransaction.js.map +1 -1
- package/lib/transaction/CustomFeeLimit.cjs +2 -2
- package/lib/transaction/CustomFeeLimit.d.ts +4 -4
- package/lib/transaction/CustomFeeLimit.js.map +1 -1
- package/lib/transaction/NodeAccountIdSignatureMap.cjs +2 -2
- package/lib/transaction/NodeAccountIdSignatureMap.d.ts +2 -2
- package/lib/transaction/NodeAccountIdSignatureMap.js +1 -1
- package/lib/transaction/NodeAccountIdSignatureMap.js.map +1 -1
- package/lib/transaction/NodeAccountIdSignatureMapLegacy.cjs +1 -1
- package/lib/transaction/NodeAccountIdSignatureMapLegacy.d.ts +2 -2
- package/lib/transaction/NodeAccountIdSignatureMapLegacy.js.map +1 -1
- package/lib/transaction/SignatureMap.cjs +1 -1
- package/lib/transaction/SignatureMap.js.map +1 -1
- package/lib/transaction/SignaturePairMap.cjs +1 -1
- package/lib/transaction/SignaturePairMap.d.ts +2 -2
- package/lib/transaction/SignaturePairMap.js.map +1 -1
- package/lib/transaction/Transaction.cjs +1 -1
- package/lib/transaction/Transaction.d.ts +1 -1
- package/lib/transaction/Transaction.js +1 -1
- package/lib/transaction/Transaction.js.map +1 -1
- package/lib/transaction/TransactionHashMap.cjs +1 -1
- package/lib/transaction/TransactionHashMap.d.ts +2 -2
- package/lib/transaction/TransactionHashMap.js.map +1 -1
- package/lib/transaction/TransactionId.cjs +1 -1
- package/lib/transaction/TransactionId.d.ts +1 -1
- package/lib/transaction/TransactionId.js +1 -1
- package/lib/transaction/TransactionId.js.map +1 -1
- package/lib/transaction/TransactionReceipt.cjs +1 -1
- package/lib/transaction/TransactionReceipt.d.ts +1 -1
- package/lib/transaction/TransactionReceipt.js +1 -1
- package/lib/transaction/TransactionReceipt.js.map +1 -1
- package/lib/transaction/TransactionReceiptQuery.cjs +1 -1
- package/lib/transaction/TransactionReceiptQuery.d.ts +1 -1
- package/lib/transaction/TransactionReceiptQuery.js +1 -1
- package/lib/transaction/TransactionReceiptQuery.js.map +1 -1
- package/lib/transaction/TransactionRecord.cjs +1 -1
- package/lib/transaction/TransactionRecord.d.ts +1 -1
- package/lib/transaction/TransactionRecord.js +1 -1
- package/lib/transaction/TransactionRecord.js.map +1 -1
- package/lib/transaction/TransactionRecordQuery.cjs +1 -1
- package/lib/transaction/TransactionRecordQuery.d.ts +1 -1
- package/lib/transaction/TransactionRecordQuery.js +1 -1
- package/lib/transaction/TransactionRecordQuery.js.map +1 -1
- package/lib/util/ASN1-Decoder.cjs +1 -1
- package/lib/util/ASN1-Decoder.js +1 -1
- package/lib/util/ASN1-Decoder.js.map +1 -1
- package/lib/version.js +1 -1
- package/package.json +6 -8
- package/src/Cache.js +6 -6
- package/src/Duration.js +1 -1
- package/src/EntityIdHelper.js +1 -1
- package/src/EthereumFlow.js +7 -7
- package/src/EthereumTransaction.js +7 -7
- package/src/EvmAddress.js +1 -1
- package/src/ExchangeRate.js +2 -2
- package/src/ExchangeRates.js +1 -1
- package/src/Executable.js +18 -2
- package/src/FeeComponents.js +1 -1
- package/src/FeeData.js +1 -1
- package/src/FeeDataType.js +1 -1
- package/src/FeeSchedule.js +1 -1
- package/src/FeeSchedules.js +1 -1
- package/src/FreezeType.js +1 -1
- package/src/Key.js +1 -1
- package/src/KeyList.js +3 -3
- package/src/Mnemonic.js +1 -1
- package/src/PrivateKey.js +7 -7
- package/src/PrngTransaction.js +9 -9
- package/src/PublicKey.js +5 -5
- package/src/RequestType.js +1 -1
- package/src/StakingInfo.js +1 -1
- package/src/Status.js +1 -1
- package/src/Timestamp.js +1 -1
- package/src/TransactionFeeSchedule.js +1 -1
- package/src/Transfer.js +2 -2
- package/src/account/AccountAllowanceAdjustTransaction.js +7 -7
- package/src/account/AccountAllowanceApproveTransaction.js +8 -8
- package/src/account/AccountAllowanceDeleteTransaction.js +7 -7
- package/src/account/AccountBalance.js +1 -1
- package/src/account/AccountBalanceQuery.js +6 -6
- package/src/account/AccountCreateTransaction.js +1 -1
- package/src/account/AccountDeleteTransaction.js +7 -7
- package/src/account/AccountId.js +1 -1
- package/src/account/AccountInfo.js +1 -1
- package/src/account/AccountInfoQuery.js +7 -7
- package/src/account/AccountRecordsQuery.js +7 -7
- package/src/account/AccountUpdateTransaction.js +7 -7
- package/src/account/HbarAllowance.js +3 -3
- package/src/account/HbarTransferMap.js +2 -2
- package/src/account/LiveHash.js +3 -3
- package/src/account/LiveHashAddTransaction.js +7 -7
- package/src/account/LiveHashDeleteTransaction.js +6 -6
- package/src/account/LiveHashQuery.js +7 -7
- package/src/account/NullableTokenDecimalMap.js +2 -2
- package/src/account/ProxyStaker.js +2 -2
- package/src/account/TokenAllowance.js +4 -4
- package/src/account/TokenBalanceMap.js +2 -2
- package/src/account/TokenDecimalMap.js +2 -2
- package/src/account/TokenNftAllowance.js +5 -5
- package/src/account/TokenNftTransferMap.js +5 -5
- package/src/account/TokenRelationship.js +4 -4
- package/src/account/TokenRelationshipMap.js +2 -2
- package/src/account/TokenTransferMap.js +4 -4
- package/src/account/TransferTransaction.js +6 -6
- package/src/address_book/AddressBooks.js +1 -1
- package/src/address_book/Endpoint.js +1 -1
- package/src/address_book/NodeAddress.js +1 -1
- package/src/address_book/NodeAddressBook.js +1 -1
- package/src/channel/Channel.js +26 -2
- package/src/channel/NativeChannel.js +111 -2
- package/src/channel/NodeChannel.js +4 -7
- package/src/channel/WebChannel.js +189 -21
- package/src/client/Client.js +79 -5
- package/src/client/NativeClient.js +1 -1
- package/src/client/NodeClient.js +7 -6
- package/src/client/WebClient.js +64 -31
- package/src/client/addressbooks/mainnet.js +1 -1
- package/src/client/addressbooks/previewnet.js +1 -1
- package/src/client/addressbooks/testnet.js +1 -1
- package/src/constants/ClientConstants.js +16 -0
- package/src/contract/ContractByteCodeQuery.js +6 -6
- package/src/contract/ContractCallQuery.js +1 -1
- package/src/contract/ContractCreateTransaction.js +8 -8
- package/src/contract/ContractDeleteTransaction.js +8 -8
- package/src/contract/ContractExecuteTransaction.js +9 -9
- package/src/contract/ContractFunctionResult.js +2 -2
- package/src/contract/ContractId.js +1 -1
- package/src/contract/ContractInfo.js +1 -1
- package/src/contract/ContractInfoQuery.js +7 -7
- package/src/contract/ContractLogInfo.js +2 -2
- package/src/contract/ContractNonceInfo.js +3 -3
- package/src/contract/ContractStateChange.js +1 -1
- package/src/contract/ContractUpdateTransaction.js +10 -10
- package/src/contract/DelegateContractId.js +2 -2
- package/src/contract/StorageChange.js +1 -1
- package/src/exports.js +1 -1
- package/src/file/FileAppendTransaction.js +7 -7
- package/src/file/FileContentsQuery.js +7 -7
- package/src/file/FileCreateTransaction.js +6 -6
- package/src/file/FileDeleteTransaction.js +7 -7
- package/src/file/FileId.js +1 -1
- package/src/file/FileInfo.js +1 -1
- package/src/file/FileInfoQuery.js +7 -7
- package/src/file/FileUpdateTransaction.js +6 -6
- package/src/network/AddressBookQuery.js +1 -8
- package/src/network/AddressBookQueryWeb.js +1 -8
- package/src/network/NetworkVersionInfo.js +1 -1
- package/src/network/NetworkVersionInfoQuery.js +6 -6
- package/src/network/SemanticVersion.js +1 -1
- package/src/node/NodeCreateTransaction.js +6 -6
- package/src/node/NodeDeleteTransaction.js +6 -6
- package/src/node/NodeUpdateTransaction.js +6 -6
- package/src/node/ServiceEndpoint.js +1 -1
- package/src/query/CostQuery.js +1 -1
- package/src/query/Query.js +1 -1
- package/src/query/QueryBase.js +1 -1
- package/src/schedule/ScheduleCreateTransaction.js +1 -1
- package/src/schedule/ScheduleDeleteTransaction.js +8 -8
- package/src/schedule/ScheduleId.js +1 -1
- package/src/schedule/ScheduleInfo.js +1 -1
- package/src/schedule/ScheduleInfoQuery.js +7 -7
- package/src/schedule/ScheduleSignTransaction.js +10 -10
- package/src/system/FreezeTransaction.js +6 -6
- package/src/system/SystemDeleteTransaction.js +8 -8
- package/src/system/SystemUndeleteTransaction.js +8 -8
- package/src/token/AbstractTokenTransferTransaction.js +1 -1
- package/src/token/AssessedCustomFee.js +1 -1
- package/src/token/CustomFee.js +1 -1
- package/src/token/CustomFixedFee.js +3 -3
- package/src/token/CustomFractionalFee.js +3 -3
- package/src/token/CustomRoyaltyFee.js +4 -4
- package/src/token/NftId.js +1 -1
- package/src/token/PendingAirdropId.js +1 -1
- package/src/token/PendingAirdropRecord.js +1 -1
- package/src/token/TokenAirdropTransaction.js +8 -8
- package/src/token/TokenAssociateTransaction.js +7 -7
- package/src/token/TokenAssociation.js +1 -1
- package/src/token/TokenBurnTransaction.js +7 -7
- package/src/token/TokenCancelAirdropTransaction.js +6 -6
- package/src/token/TokenClaimAirdropTransaction.js +6 -6
- package/src/token/TokenCreateTransaction.js +7 -7
- package/src/token/TokenDeleteTransaction.js +7 -7
- package/src/token/TokenDissociateTransaction.js +7 -7
- package/src/token/TokenFeeScheduleUpdateTransaction.js +7 -7
- package/src/token/TokenFreezeTransaction.js +7 -7
- package/src/token/TokenGrantKycTransaction.js +7 -7
- package/src/token/TokenId.js +1 -1
- package/src/token/TokenInfo.js +1 -1
- package/src/token/TokenInfoQuery.js +7 -7
- package/src/token/TokenKeyValidation.js +1 -1
- package/src/token/TokenMintTransaction.js +7 -7
- package/src/token/TokenNftInfo.js +10 -10
- package/src/token/TokenNftInfoQuery.js +11 -11
- package/src/token/TokenNftTransfer.js +5 -5
- package/src/token/TokenNftsUpdateTransaction.js +7 -7
- package/src/token/TokenPauseTransaction.js +7 -7
- package/src/token/TokenReference.js +1 -1
- package/src/token/TokenRejectTransaction.js +7 -7
- package/src/token/TokenRevokeKycTransaction.js +7 -7
- package/src/token/TokenSupplyType.js +1 -1
- package/src/token/TokenTransfer.js +4 -4
- package/src/token/TokenType.js +1 -1
- package/src/token/TokenUnfreezeTransaction.js +7 -7
- package/src/token/TokenUnpauseTransaction.js +7 -7
- package/src/token/TokenUpdateNftsTransaction.js +7 -7
- package/src/token/TokenUpdateTransaction.js +7 -7
- package/src/token/TokenWipeTransaction.js +7 -7
- package/src/topic/TopicCreateTransaction.js +6 -6
- package/src/topic/TopicDeleteTransaction.js +6 -6
- package/src/topic/TopicId.js +1 -1
- package/src/topic/TopicInfo.js +1 -1
- package/src/topic/TopicInfoQuery.js +7 -7
- package/src/topic/TopicMessage.js +2 -2
- package/src/topic/TopicMessageChunk.js +2 -2
- package/src/topic/TopicMessageQuery.js +1 -1
- package/src/topic/TopicMessageSubmitTransaction.js +9 -9
- package/src/topic/TopicUpdateTransaction.js +6 -6
- package/src/transaction/BatchTransaction.js +5 -5
- package/src/transaction/CustomFeeLimit.js +2 -2
- package/src/transaction/NodeAccountIdSignatureMap.js +2 -2
- package/src/transaction/NodeAccountIdSignatureMapLegacy.js +1 -1
- package/src/transaction/SignatureMap.js +1 -1
- package/src/transaction/SignaturePairMap.js +1 -1
- package/src/transaction/Transaction.js +1 -1
- package/src/transaction/TransactionHashMap.js +1 -1
- package/src/transaction/TransactionId.js +1 -1
- package/src/transaction/TransactionReceipt.js +1 -1
- package/src/transaction/TransactionReceiptQuery.js +1 -1
- package/src/transaction/TransactionRecord.js +1 -1
- package/src/transaction/TransactionRecordQuery.js +1 -1
- package/src/util/ASN1-Decoder.js +1 -1
package/lib/client/Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sources":["../../src/client/Client.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport AccountId from \"../account/AccountId.js\";\nimport AccountBalanceQuery from \"../account/AccountBalanceQuery.js\";\nimport Hbar from \"../Hbar.js\";\nimport Network from \"./Network.js\";\nimport MirrorNetwork from \"./MirrorNetwork.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport PrivateKey from \"../PrivateKey.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport FileId from \"../file/FileId.js\";\nimport Logger from \"../logger/Logger.js\"; // eslint-disable-line\nimport { convertToNumber } from \"../util.js\";\nimport AddressBookQuery from \"../network/AddressBookQuery.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../address_book/NodeAddressBook.js\").default} NodeAddressBook\n */\n\n/**\n * @typedef {object} Operator\n * @property {string | PrivateKey} privateKey\n * @property {string | AccountId} accountId\n */\n\n/**\n * @typedef {object} ClientOperator\n * @property {PublicKey} publicKey\n * @property {AccountId} accountId\n * @property {(message: Uint8Array) => Promise<Uint8Array>} transactionSigner\n */\n\n/**\n * @typedef {object} ClientConfiguration\n * @property {{[key: string]: (string | AccountId)} | string} [network]\n * @property {string[] | string} [mirrorNetwork]\n * @property {Operator} [operator]\n * @property {boolean} [scheduleNetworkUpdate]\n * @property {number} [shard]\n * @property {number} [realm]\n */\n\n/**\n * @typedef {\"mainnet\" | \"testnet\" | \"previewnet\"} NetworkName\n */\n\n/**\n * The `Client` class is the main entry point for interacting with the Hedera Hashgraph network.\n * It provides methods for managing network connections, setting operators, handling transactions\n * and queries, and configuring various client settings.\n *\n * @abstract\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n */\nexport default class Client {\n /**\n * @protected\n * @hideconstructor\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n /**\n * List of mirror network URLs.\n *\n * @internal\n * @type {MirrorNetwork}\n */\n this._mirrorNetwork = new MirrorNetwork(\n this._createMirrorNetworkChannel(),\n );\n\n /**\n * Map of node account ID (as a string)\n * to the node URL.\n *\n * @internal\n * @type {Network}\n */\n this._network = new Network(this._createNetworkChannel());\n\n /**\n * @internal\n * @type {?ClientOperator}\n */\n this._operator = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._defaultMaxTransactionFee = null;\n\n /**\n * @private\n * @type {Hbar}\n */\n this._defaultMaxQueryPayment = new Hbar(1);\n\n if (props != null) {\n if (props.operator != null) {\n this.setOperator(\n props.operator.accountId,\n props.operator.privateKey,\n );\n }\n }\n\n /** @type {number | null} */\n this._maxAttempts = null;\n\n /** @private */\n this._signOnDemand = false;\n\n /** @private */\n this._autoValidateChecksums = false;\n\n /** @private */\n this._minBackoff = 250;\n\n /** @private */\n this._maxBackoff = 8000;\n\n /** @private */\n this._defaultRegenerateTransactionId = true;\n\n /** @private */\n this._requestTimeout = null;\n\n /**\n * @type {boolean}\n */\n this._isUpdatingNetwork = false;\n\n /** @private */\n this._networkUpdatePeriod = 24 * 60 * 60 * 1000;\n\n /** @private */\n this._isShutdown = false;\n\n this._shard = 0;\n\n this._realm = 0;\n\n if (props != null && props.scheduleNetworkUpdate !== false) {\n this._scheduleNetworkUpdate();\n }\n\n if (props != null && props.shard != null) {\n this._shard = props.shard;\n }\n\n if (props != null && props.realm != null) {\n this._realm = props.realm;\n }\n\n /** @internal */\n /** @type {NodeJS.Timeout} */\n this._timer;\n\n /**\n * Logger\n *\n * @external\n * @type {Logger | null}\n */\n this._logger = null;\n }\n\n /**\n * @deprecated\n * @param {NetworkName} networkName\n * @returns {this}\n */\n setNetworkName(networkName) {\n // uses custom NetworkName type\n // remove if phasing out set|get NetworkName\n console.warn(\"Deprecated: Use `setLedgerId` instead\");\n return this.setLedgerId(networkName);\n }\n\n /**\n * @deprecated\n * @returns {string | null}\n */\n get networkName() {\n console.warn(\"Deprecated: Use `ledgerId` instead\");\n return this.ledgerId != null ? this.ledgerId.toString() : null;\n }\n\n /**\n * @param {string|LedgerId} ledgerId\n * @returns {this}\n */\n setLedgerId(ledgerId) {\n this._network.setLedgerId(\n typeof ledgerId === \"string\"\n ? LedgerId.fromString(ledgerId)\n : ledgerId,\n );\n\n return this;\n }\n\n /**\n * @returns {LedgerId | null}\n */\n get ledgerId() {\n return this._network._ledgerId != null ? this._network.ledgerId : null;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setNetwork(network) {\n // TODO: This logic _can_ be de-duplicated and likely should\n throw new Error(\"not implemented\");\n }\n\n /**\n * @param {NodeAddressBook} addressBook\n * @returns {this}\n */\n setNetworkFromAddressBook(addressBook) {\n this._network.setNetworkFromAddressBook(addressBook);\n return this;\n }\n\n /**\n * @returns {{[key: string]: (string | AccountId)}}\n */\n get network() {\n return this._network.network;\n }\n\n /**\n * @returns {number}\n */\n get shard() {\n return this._shard;\n }\n\n /**\n * @returns {number}\n */\n get realm() {\n return this._realm;\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setMirrorNetwork(mirrorNetwork) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {string[]}\n */\n get mirrorNetwork() {\n return this._mirrorNetwork.network;\n }\n\n /**\n * @returns {string}\n * @throws {Error} When no mirror network is configured or available\n */\n get mirrorRestApiBaseUrl() {\n return this._mirrorNetwork.mirrorRestApiBaseUrl;\n }\n\n /**\n * @returns {boolean}\n */\n get signOnDemand() {\n return this._signOnDemand;\n }\n\n /**\n * @param {boolean} signOnDemand\n */\n setSignOnDemand(signOnDemand) {\n this._signOnDemand = signOnDemand;\n }\n\n /**\n * @returns {boolean}\n */\n isTransportSecurity() {\n return this._network.isTransportSecurity();\n }\n\n /**\n * @param {boolean} transportSecurity\n * @returns {this}\n */\n setTransportSecurity(transportSecurity) {\n this._network.setTransportSecurity(transportSecurity);\n return this;\n }\n\n /**\n * Set the account that will, by default, pay for transactions and queries built with this client.\n * NOTE: When using string for private key, the string needs to contain DER headers\n *\n * @param {AccountId | string} accountId\n * @param {PrivateKey | string} privateKey\n * @returns {this}\n */\n setOperator(accountId, privateKey) {\n const key =\n typeof privateKey === \"string\"\n ? PrivateKey.fromStringDer(privateKey)\n : privateKey;\n\n return this.setOperatorWith(accountId, key.publicKey, (message) =>\n Promise.resolve(key.sign(message)),\n );\n }\n\n /**\n * @returns {?ClientOperator}\n */\n getOperator() {\n return this._operator;\n }\n\n /**\n * Sets the account that will, by default, pay for transactions and queries built with\n * this client.\n *\n * @param {AccountId | string} accountId\n * @param {PublicKey | string} publicKey\n * @param {(message: Uint8Array) => Promise<Uint8Array>} transactionSigner\n * @returns {this}\n */\n setOperatorWith(accountId, publicKey, transactionSigner) {\n const accountId_ =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n if (this._network._ledgerId != null) {\n accountId_.validateChecksum(this);\n }\n\n this._operator = {\n transactionSigner,\n\n accountId: accountId_,\n\n publicKey:\n publicKey instanceof PublicKey\n ? publicKey\n : PublicKey.fromString(publicKey),\n };\n\n return this;\n }\n\n /**\n * @param {boolean} value\n * @returns {this}\n */\n setAutoValidateChecksums(value) {\n this._autoValidateChecksums = value;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n isAutoValidateChecksumsEnabled() {\n return this._autoValidateChecksums;\n }\n\n /**\n * @returns {?AccountId}\n */\n get operatorAccountId() {\n return this._operator != null ? this._operator.accountId : null;\n }\n\n /**\n * @returns {?PublicKey}\n */\n get operatorPublicKey() {\n return this._operator != null ? this._operator.publicKey : null;\n }\n\n /**\n * @returns {?Hbar}\n */\n get defaultMaxTransactionFee() {\n return this._defaultMaxTransactionFee;\n }\n\n /**\n * @deprecated - Use `defaultMaxTransactionFee` instead\n * @returns {?Hbar}\n */\n get maxTransactionFee() {\n return this.defaultMaxTransactionFee;\n }\n\n /**\n * Set the defaultimum fee to be paid for transactions\n * executed by this client.\n *\n * @param {Hbar} defaultMaxTransactionFee\n * @returns {this}\n */\n setDefaultMaxTransactionFee(defaultMaxTransactionFee) {\n if (defaultMaxTransactionFee.toTinybars().toInt() < 0) {\n throw new Error(\"defaultMaxTransactionFee must be non-negative\");\n }\n this._defaultMaxTransactionFee = defaultMaxTransactionFee;\n return this;\n }\n\n /**\n * @deprecated - Use `setDefaultMaxTransactionFee()` instead\n * Set the maximum fee to be paid for transactions\n * executed by this client.\n * @param {Hbar} maxTransactionFee\n * @returns {this}\n */\n setMaxTransactionFee(maxTransactionFee) {\n return this.setDefaultMaxTransactionFee(maxTransactionFee);\n }\n\n /**\n * @returns {boolean}\n */\n get defaultRegenerateTransactionId() {\n return this._defaultRegenerateTransactionId;\n }\n\n /**\n * Set if a new transaction ID should be generated when a `TRANSACTION_EXPIRED` status\n * is returned.\n *\n * @param {boolean} defaultRegenerateTransactionId\n * @returns {this}\n */\n setDefaultRegenerateTransactionId(defaultRegenerateTransactionId) {\n this._defaultRegenerateTransactionId = defaultRegenerateTransactionId;\n return this;\n }\n\n /**\n * @returns {Hbar}\n */\n get defaultMaxQueryPayment() {\n return this._defaultMaxQueryPayment;\n }\n\n /**\n * @deprecated in a favor of defaultMaxQueryPayment\n * @returns {Hbar}\n */\n get maxQueryPayment() {\n return this.defaultMaxQueryPayment;\n }\n\n /**\n * Set the maximum payment allowable for queries.\n *\n * @param {Hbar} defaultMaxQueryPayment\n * @returns {Client<ChannelT, MirrorChannelT>}\n */\n setDefaultMaxQueryPayment(defaultMaxQueryPayment) {\n const isMaxQueryPaymentNegative =\n convertToNumber(defaultMaxQueryPayment.toTinybars()) < 0;\n if (isMaxQueryPaymentNegative) {\n throw new Error(\"defaultMaxQueryPayment must be non-negative\");\n }\n this._defaultMaxQueryPayment = defaultMaxQueryPayment;\n return this;\n }\n /**\n * @deprecated in a favor of setDefaultMaxQueryPayment()\n * Set the maximum payment allowable for queries.\n * @param {Hbar} maxQueryPayment\n * @returns {Client<ChannelT, MirrorChannelT>}\n */\n setMaxQueryPayment(maxQueryPayment) {\n return this.setDefaultMaxQueryPayment(maxQueryPayment);\n }\n\n /**\n * @returns {number}\n */\n get maxAttempts() {\n return this._maxAttempts != null ? this._maxAttempts : 10;\n }\n\n /**\n * @param {number} maxAttempts\n * @returns {this}\n */\n setMaxAttempts(maxAttempts) {\n this._maxAttempts = maxAttempts;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodeAttempts() {\n return this._network.maxNodeAttempts;\n }\n\n /**\n * @param {number} maxNodeAttempts\n * @returns {this}\n */\n setMaxNodeAttempts(maxNodeAttempts) {\n this._network.setMaxNodeAttempts(maxNodeAttempts);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeWaitTime() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeWaitTime\n * @returns {this}\n */\n setNodeWaitTime(nodeWaitTime) {\n this._network.setMinBackoff(nodeWaitTime);\n return this;\n }\n\n /**\n * Gets the maximum number of nodes that a transaction or query will attempt to execute against.\n *\n * @returns {number} The current maximum nodes per transaction setting.\n * Returns -1 if no limit is set (uses network defaults).\n */\n get maxNodesPerTransaction() {\n return this._network.maxNodesPerTransaction;\n }\n\n /**\n * Sets the maximum number of nodes that a transaction or query will execute against.\n *\n * - **Before freezing**: Limits automatic node selection when no explicit nodes are set\n * - **After freezing**: Trims frozen transactions to the first N nodes while preserving signatures\n * - **Special values**: 0 disables limiting, values > available nodes cause no trimming\n *\n * @param {number} maxNodesPerTransaction - Maximum nodes per transaction. Set to 0 to disable.\n * @returns {this} The client instance for method chaining\n */\n setMaxNodesPerTransaction(maxNodesPerTransaction) {\n this._network.setMaxNodesPerTransaction(maxNodesPerTransaction);\n return this;\n }\n\n /**\n * @param {?number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n if (minBackoff == null) {\n throw new Error(\"minBackoff cannot be null.\");\n }\n if (minBackoff > this._maxBackoff) {\n throw new Error(\"minBackoff cannot be larger than maxBackoff.\");\n }\n this._minBackoff = minBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * @param {?number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n if (maxBackoff == null) {\n throw new Error(\"maxBackoff cannot be null.\");\n } else if (maxBackoff < this._minBackoff) {\n throw new Error(\"maxBackoff cannot be smaller than minBackoff.\");\n }\n this._maxBackoff = maxBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * @param {number} nodeMinBackoff\n * @returns {this}\n */\n setNodeMinBackoff(nodeMinBackoff) {\n this._network.setMinBackoff(nodeMinBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinBackoff() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeMaxBackoff\n * @returns {this}\n */\n setNodeMaxBackoff(nodeMaxBackoff) {\n this._network.setMaxBackoff(nodeMaxBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxBackoff() {\n return this._network.maxBackoff;\n }\n\n /**\n * @param {number} nodeMinReadmitPeriod\n * @returns {this}\n */\n setNodeMinReadmitPeriod(nodeMinReadmitPeriod) {\n this._network.setNodeMinReadmitPeriod(nodeMinReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinReadmitPeriod() {\n return this._network.nodeMinReadmitPeriod;\n }\n\n /**\n * @param {number} nodeMaxReadmitPeriod\n * @returns {this}\n */\n setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod) {\n this._network.setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxReadmitPeriod() {\n return this._network.nodeMaxReadmitPeriod;\n }\n\n /**\n * @param {number} requestTimeout - Number of milliseconds\n * @returns {this}\n */\n setRequestTimeout(requestTimeout) {\n this._requestTimeout = requestTimeout;\n return this;\n }\n\n /**\n * @returns {?number}\n */\n get requestTimeout() {\n return this._requestTimeout;\n }\n\n /**\n * @returns {number}\n */\n get networkUpdatePeriod() {\n return this._networkUpdatePeriod;\n }\n\n /**\n * @param {number} networkUpdatePeriod\n * @returns {this}\n */\n setNetworkUpdatePeriod(networkUpdatePeriod) {\n clearTimeout(this._timer);\n this._networkUpdatePeriod = networkUpdatePeriod;\n this._scheduleNetworkUpdate();\n return this;\n }\n /**\n * Set logger\n *\n * @param {Logger} logger\n * @returns {this}\n */\n setLogger(logger) {\n this._logger = logger;\n return this;\n }\n\n /**\n * Get logger if set\n *\n * @returns {?Logger}\n */\n get logger() {\n return this._logger;\n }\n\n /**\n * @param {AccountId | string} accountId\n */\n async ping(accountId) {\n await new AccountBalanceQuery({ accountId })\n .setNodeAccountIds([\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId),\n ])\n .execute(this);\n }\n\n async pingAll() {\n for (const nodeAccountId of Object.values(this._network.network)) {\n await this.ping(nodeAccountId);\n }\n }\n\n /**\n * Update the network address book.\n * @returns {Promise<this>}\n */\n async updateNetwork() {\n if (this._isUpdatingNetwork) {\n return this;\n }\n\n this._isUpdatingNetwork = true;\n\n try {\n const addressBook = await new AddressBookQuery()\n .setFileId(\n FileId.getAddressBookFileIdFor(this._shard, this._realm),\n )\n .execute(this);\n this.setNetworkFromAddressBook(addressBook);\n } catch (error) {\n if (this._logger) {\n this._logger.trace(\n `failed to update client address book: ${\n /** @type {Error} */ (error).toString()\n }`,\n );\n }\n } finally {\n this._isUpdatingNetwork = false;\n }\n\n return this;\n }\n\n /**\n * @returns {void}\n */\n close() {\n this._network.close();\n this._mirrorNetwork.close();\n this._isShutdown = true;\n clearTimeout(this._timer);\n }\n\n /**\n * @abstract\n * @returns {(address: string) => ChannelT}\n */\n _createNetworkChannel() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @abstract\n * @returns {(address: string) => MirrorChannelT}\n */\n _createMirrorNetworkChannel() {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @private\n */\n _scheduleNetworkUpdate() {\n // This is the automatic network update promise that _eventually_ completes\n // eslint-disable-next-line @typescript-eslint/no-floating-promises,@typescript-eslint/no-misused-promises\n this._timer = setTimeout(async () => {\n await this.updateNetwork();\n\n if (!this._isShutdown) {\n // Recall this method to continuously update the network\n // every `networkUpdatePeriod` amount of itme\n this._scheduleNetworkUpdate();\n }\n }, this._networkUpdatePeriod);\n }\n\n /**\n * @returns {boolean}\n */\n get isClientShutDown() {\n return this._isShutdown;\n }\n\n /**\n * Validates that all nodes in a network are in the same shard and realm.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n */\n static _validateNetworkConsistency(network) {\n if (Object.keys(network).length === 0) {\n return;\n }\n\n const [, nodeAccountId] = Object.entries(network)[0];\n\n const accountIdStr = nodeAccountId.toString();\n\n const [firstNodeShard, firstNodeRealm] = accountIdStr\n .split(\".\")\n .map(Number);\n\n const isNetworkValid = Object.values(network).every((accountId) => {\n const accountIdStr = accountId.toString();\n\n const [currentShard, currentRealm] = accountIdStr\n .split(\".\")\n .map(Number);\n return (\n currentShard === firstNodeShard &&\n currentRealm === firstNodeRealm\n );\n });\n\n if (!isNetworkValid) {\n throw new Error(\n \"Network is not valid, all nodes must be in the same shard and realm\",\n );\n }\n }\n\n /**\n * Extracts shard and realm values from a network configuration.\n * Note: This method assumes the network is consistent (all nodes in same shard/realm).\n * Use validateNetworkConsistency() first to ensure this.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n * @returns {{shard: number, realm: number}}\n */\n static _extractShardRealm(network) {\n const entries = Object.entries(network);\n if (entries.length === 0) {\n return { shard: 0, realm: 0 };\n }\n\n const [, firstNodeAccountId] = entries[0];\n\n const accountIdStr = firstNodeAccountId.toString();\n const [shard, realm] = accountIdStr.split(\".\").map(Number);\n\n return { shard, realm };\n }\n}\n"],"names":["Client","constructor","props","this","_mirrorNetwork","MirrorNetwork","_createMirrorNetworkChannel","_network","Network","_createNetworkChannel","_operator","_defaultMaxTransactionFee","_defaultMaxQueryPayment","Hbar","operator","setOperator","accountId","privateKey","_maxAttempts","_signOnDemand","_autoValidateChecksums","_minBackoff","_maxBackoff","_defaultRegenerateTransactionId","_requestTimeout","_isUpdatingNetwork","_networkUpdatePeriod","_isShutdown","_shard","_realm","scheduleNetworkUpdate","_scheduleNetworkUpdate","shard","realm","_timer","_logger","setNetworkName","networkName","console","warn","setLedgerId","ledgerId","toString","LedgerId","fromString","_ledgerId","setNetwork","network","Error","setNetworkFromAddressBook","addressBook","setMirrorNetwork","mirrorNetwork","mirrorRestApiBaseUrl","signOnDemand","setSignOnDemand","isTransportSecurity","setTransportSecurity","transportSecurity","key","PrivateKey","fromStringDer","setOperatorWith","publicKey","message","Promise","resolve","sign","getOperator","transactionSigner","accountId_","AccountId","validateChecksum","PublicKey","setAutoValidateChecksums","value","isAutoValidateChecksumsEnabled","operatorAccountId","operatorPublicKey","defaultMaxTransactionFee","maxTransactionFee","setDefaultMaxTransactionFee","toTinybars","toInt","setMaxTransactionFee","defaultRegenerateTransactionId","setDefaultRegenerateTransactionId","defaultMaxQueryPayment","maxQueryPayment","setDefaultMaxQueryPayment","convertToNumber","setMaxQueryPayment","maxAttempts","setMaxAttempts","maxNodeAttempts","setMaxNodeAttempts","nodeWaitTime","minBackoff","setNodeWaitTime","setMinBackoff","maxNodesPerTransaction","setMaxNodesPerTransaction","setMaxBackoff","maxBackoff","setNodeMinBackoff","nodeMinBackoff","setNodeMaxBackoff","nodeMaxBackoff","setNodeMinReadmitPeriod","nodeMinReadmitPeriod","setNodeMaxReadmitPeriod","nodeMaxReadmitPeriod","setRequestTimeout","requestTimeout","networkUpdatePeriod","setNetworkUpdatePeriod","clearTimeout","setLogger","logger","ping","AccountBalanceQuery","setNodeAccountIds","execute","pingAll","nodeAccountId","Object","values","updateNetwork","AddressBookQuery","setFileId","FileId","getAddressBookFileIdFor","error","trace","close","setTimeout","async","isClientShutDown","_validateNetworkConsistency","keys","length","entries","accountIdStr","firstNodeShard","firstNodeRealm","split","map","Number","isNetworkValid","every","currentShard","currentRealm","_extractShardRealm","firstNodeAccountId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Client.js","sources":["../../src/client/Client.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport AccountId from \"../account/AccountId.js\";\nimport AccountBalanceQuery from \"../account/AccountBalanceQuery.js\";\nimport Hbar from \"../Hbar.js\";\nimport Network from \"./Network.js\";\nimport MirrorNetwork from \"./MirrorNetwork.js\";\nimport PublicKey from \"../PublicKey.js\";\nimport PrivateKey from \"../PrivateKey.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport FileId from \"../file/FileId.js\";\nimport Logger from \"../logger/Logger.js\"; // eslint-disable-line\nimport { convertToNumber } from \"../util.js\";\nimport AddressBookQuery from \"../network/AddressBookQuery.js\";\nimport {\n DEFAULT_GRPC_DEADLINE,\n DEFAULT_REQUEST_TIMEOUT,\n} from \"../constants/ClientConstants.js\";\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../channel/MirrorChannel.js\").default} MirrorChannel\n * @typedef {import(\"../address_book/NodeAddressBook.js\").default} NodeAddressBook\n */\n\n/**\n * @typedef {object} Operator\n * @property {string | PrivateKey} privateKey\n * @property {string | AccountId} accountId\n */\n\n/**\n * @typedef {object} ClientOperator\n * @property {PublicKey} publicKey\n * @property {AccountId} accountId\n * @property {(message: Uint8Array) => Promise<Uint8Array>} transactionSigner\n */\n\n/**\n * @typedef {object} ClientConfiguration\n * @property {{[key: string]: (string | AccountId)} | string} [network]\n * @property {string[] | string} [mirrorNetwork]\n * @property {Operator} [operator]\n * @property {boolean} [scheduleNetworkUpdate]\n * @property {number} [shard]\n * @property {number} [realm]\n * @property {number} [grpcDeadline]\n * @property {number} [requestTimeout]\n */\n\n/**\n * @typedef {\"mainnet\" | \"testnet\" | \"previewnet\"} NetworkName\n */\n\n/**\n * The `Client` class is the main entry point for interacting with the Hedera Hashgraph network.\n * It provides methods for managing network connections, setting operators, handling transactions\n * and queries, and configuring various client settings.\n *\n * @abstract\n * @template {Channel} ChannelT\n * @template {MirrorChannel} MirrorChannelT\n */\nexport default class Client {\n /**\n * @protected\n * @hideconstructor\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n /**\n * List of mirror network URLs.\n *\n * @internal\n * @type {MirrorNetwork}\n */\n this._mirrorNetwork = new MirrorNetwork(\n this._createMirrorNetworkChannel(),\n );\n\n /**\n * Map of node account ID (as a string)\n * to the node URL.\n *\n * @internal\n * @type {Network}\n */\n this._network = new Network(this._createNetworkChannel());\n\n /**\n * @internal\n * @type {?ClientOperator}\n */\n this._operator = null;\n\n /**\n * @private\n * @type {?Hbar}\n */\n this._defaultMaxTransactionFee = null;\n\n /**\n * @private\n * @type {Hbar}\n */\n this._defaultMaxQueryPayment = new Hbar(1);\n\n if (props != null) {\n if (props.operator != null) {\n this.setOperator(\n props.operator.accountId,\n props.operator.privateKey,\n );\n }\n }\n\n /** @type {number | null} */\n this._maxAttempts = null;\n\n /** @private */\n this._signOnDemand = false;\n\n /** @private */\n this._autoValidateChecksums = false;\n\n /** @private */\n this._minBackoff = 250;\n\n /** @private */\n this._maxBackoff = 8000;\n\n /** @private */\n this._defaultRegenerateTransactionId = true;\n\n /** @private */\n this._requestTimeout = DEFAULT_REQUEST_TIMEOUT;\n\n /** @private */\n this._grpcDeadline = DEFAULT_GRPC_DEADLINE;\n\n /**\n * @type {boolean}\n */\n this._isUpdatingNetwork = false;\n\n /** @private */\n this._networkUpdatePeriod = 24 * 60 * 60 * 1000;\n\n /** @private */\n this._isShutdown = false;\n\n this._shard = 0;\n\n this._realm = 0;\n\n if (props != null && props.scheduleNetworkUpdate !== false) {\n this._scheduleNetworkUpdate();\n }\n\n if (props != null && props.shard != null) {\n this._shard = props.shard;\n }\n\n if (props != null && props.realm != null) {\n this._realm = props.realm;\n }\n\n if (props != null && props.grpcDeadline != null) {\n this.setGrpcDeadline(props.grpcDeadline);\n }\n\n if (props != null && props.requestTimeout != null) {\n this.setRequestTimeout(props.requestTimeout);\n }\n\n // Validate that requestTimeout is larger than grpcDeadline after both are set\n if (this._requestTimeout <= this._grpcDeadline) {\n console.warn(\n `DEPRECATION WARNING: requestTimeout (${this._requestTimeout}ms) should be larger than grpcDeadline (${this._grpcDeadline}ms). ` +\n `This configuration may cause operations to fail unexpectedly. ` +\n `This will throw an error in the next major version. Please adjust your timeout values.`,\n );\n }\n\n /** @internal */\n /** @type {NodeJS.Timeout} */\n this._timer;\n\n /**\n * Logger\n *\n * @external\n * @type {Logger | null}\n */\n this._logger = null;\n }\n\n /**\n * @deprecated\n * @param {NetworkName} networkName\n * @returns {this}\n */\n setNetworkName(networkName) {\n // uses custom NetworkName type\n // remove if phasing out set|get NetworkName\n console.warn(\"Deprecated: Use `setLedgerId` instead\");\n return this.setLedgerId(networkName);\n }\n\n /**\n * @deprecated\n * @returns {string | null}\n */\n get networkName() {\n console.warn(\"Deprecated: Use `ledgerId` instead\");\n return this.ledgerId != null ? this.ledgerId.toString() : null;\n }\n\n /**\n * @param {string|LedgerId} ledgerId\n * @returns {this}\n */\n setLedgerId(ledgerId) {\n this._network.setLedgerId(\n typeof ledgerId === \"string\"\n ? LedgerId.fromString(ledgerId)\n : ledgerId,\n );\n\n return this;\n }\n\n /**\n * @returns {LedgerId | null}\n */\n get ledgerId() {\n return this._network._ledgerId != null ? this._network.ledgerId : null;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setNetwork(network) {\n // TODO: This logic _can_ be de-duplicated and likely should\n throw new Error(\"not implemented\");\n }\n\n /**\n * @param {NodeAddressBook} addressBook\n * @returns {this}\n */\n setNetworkFromAddressBook(addressBook) {\n this._network.setNetworkFromAddressBook(addressBook);\n return this;\n }\n\n /**\n * @returns {{[key: string]: (string | AccountId)}}\n */\n get network() {\n return this._network.network;\n }\n\n /**\n * @returns {number}\n */\n get shard() {\n return this._shard;\n }\n\n /**\n * @returns {number}\n */\n get realm() {\n return this._realm;\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setMirrorNetwork(mirrorNetwork) {\n throw new Error(\"not implemented\");\n }\n\n /**\n * @returns {string[]}\n */\n get mirrorNetwork() {\n return this._mirrorNetwork.network;\n }\n\n /**\n * @returns {string}\n * @throws {Error} When no mirror network is configured or available\n */\n get mirrorRestApiBaseUrl() {\n return this._mirrorNetwork.mirrorRestApiBaseUrl;\n }\n\n /**\n * @returns {boolean}\n */\n get signOnDemand() {\n return this._signOnDemand;\n }\n\n /**\n * @param {boolean} signOnDemand\n */\n setSignOnDemand(signOnDemand) {\n this._signOnDemand = signOnDemand;\n }\n\n /**\n * @returns {boolean}\n */\n isTransportSecurity() {\n return this._network.isTransportSecurity();\n }\n\n /**\n * @param {boolean} transportSecurity\n * @returns {this}\n */\n setTransportSecurity(transportSecurity) {\n this._network.setTransportSecurity(transportSecurity);\n return this;\n }\n\n /**\n * Set the account that will, by default, pay for transactions and queries built with this client.\n * NOTE: When using string for private key, the string needs to contain DER headers\n *\n * @param {AccountId | string} accountId\n * @param {PrivateKey | string} privateKey\n * @returns {this}\n */\n setOperator(accountId, privateKey) {\n const key =\n typeof privateKey === \"string\"\n ? PrivateKey.fromStringDer(privateKey)\n : privateKey;\n\n return this.setOperatorWith(accountId, key.publicKey, (message) =>\n Promise.resolve(key.sign(message)),\n );\n }\n\n /**\n * @returns {?ClientOperator}\n */\n getOperator() {\n return this._operator;\n }\n\n /**\n * Sets the account that will, by default, pay for transactions and queries built with\n * this client.\n *\n * @param {AccountId | string} accountId\n * @param {PublicKey | string} publicKey\n * @param {(message: Uint8Array) => Promise<Uint8Array>} transactionSigner\n * @returns {this}\n */\n setOperatorWith(accountId, publicKey, transactionSigner) {\n const accountId_ =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n\n if (this._network._ledgerId != null) {\n accountId_.validateChecksum(this);\n }\n\n this._operator = {\n transactionSigner,\n\n accountId: accountId_,\n\n publicKey:\n publicKey instanceof PublicKey\n ? publicKey\n : PublicKey.fromString(publicKey),\n };\n\n return this;\n }\n\n /**\n * @param {boolean} value\n * @returns {this}\n */\n setAutoValidateChecksums(value) {\n this._autoValidateChecksums = value;\n return this;\n }\n\n /**\n * @returns {boolean}\n */\n isAutoValidateChecksumsEnabled() {\n return this._autoValidateChecksums;\n }\n\n /**\n * @returns {?AccountId}\n */\n get operatorAccountId() {\n return this._operator != null ? this._operator.accountId : null;\n }\n\n /**\n * @returns {?PublicKey}\n */\n get operatorPublicKey() {\n return this._operator != null ? this._operator.publicKey : null;\n }\n\n /**\n * @returns {?Hbar}\n */\n get defaultMaxTransactionFee() {\n return this._defaultMaxTransactionFee;\n }\n\n /**\n * @deprecated - Use `defaultMaxTransactionFee` instead\n * @returns {?Hbar}\n */\n get maxTransactionFee() {\n return this.defaultMaxTransactionFee;\n }\n\n /**\n * Set the defaultimum fee to be paid for transactions\n * executed by this client.\n *\n * @param {Hbar} defaultMaxTransactionFee\n * @returns {this}\n */\n setDefaultMaxTransactionFee(defaultMaxTransactionFee) {\n if (defaultMaxTransactionFee.toTinybars().toInt() < 0) {\n throw new Error(\"defaultMaxTransactionFee must be non-negative\");\n }\n this._defaultMaxTransactionFee = defaultMaxTransactionFee;\n return this;\n }\n\n /**\n * @deprecated - Use `setDefaultMaxTransactionFee()` instead\n * Set the maximum fee to be paid for transactions\n * executed by this client.\n * @param {Hbar} maxTransactionFee\n * @returns {this}\n */\n setMaxTransactionFee(maxTransactionFee) {\n return this.setDefaultMaxTransactionFee(maxTransactionFee);\n }\n\n /**\n * @returns {boolean}\n */\n get defaultRegenerateTransactionId() {\n return this._defaultRegenerateTransactionId;\n }\n\n /**\n * Set if a new transaction ID should be generated when a `TRANSACTION_EXPIRED` status\n * is returned.\n *\n * @param {boolean} defaultRegenerateTransactionId\n * @returns {this}\n */\n setDefaultRegenerateTransactionId(defaultRegenerateTransactionId) {\n this._defaultRegenerateTransactionId = defaultRegenerateTransactionId;\n return this;\n }\n\n /**\n * @returns {Hbar}\n */\n get defaultMaxQueryPayment() {\n return this._defaultMaxQueryPayment;\n }\n\n /**\n * @deprecated in a favor of defaultMaxQueryPayment\n * @returns {Hbar}\n */\n get maxQueryPayment() {\n return this.defaultMaxQueryPayment;\n }\n\n /**\n * Set the maximum payment allowable for queries.\n *\n * @param {Hbar} defaultMaxQueryPayment\n * @returns {Client<ChannelT, MirrorChannelT>}\n */\n setDefaultMaxQueryPayment(defaultMaxQueryPayment) {\n const isMaxQueryPaymentNegative =\n convertToNumber(defaultMaxQueryPayment.toTinybars()) < 0;\n if (isMaxQueryPaymentNegative) {\n throw new Error(\"defaultMaxQueryPayment must be non-negative\");\n }\n this._defaultMaxQueryPayment = defaultMaxQueryPayment;\n return this;\n }\n /**\n * @deprecated in a favor of setDefaultMaxQueryPayment()\n * Set the maximum payment allowable for queries.\n * @param {Hbar} maxQueryPayment\n * @returns {Client<ChannelT, MirrorChannelT>}\n */\n setMaxQueryPayment(maxQueryPayment) {\n return this.setDefaultMaxQueryPayment(maxQueryPayment);\n }\n\n /**\n * @returns {number}\n */\n get maxAttempts() {\n return this._maxAttempts != null ? this._maxAttempts : 10;\n }\n\n /**\n * @param {number} maxAttempts\n * @returns {this}\n */\n setMaxAttempts(maxAttempts) {\n this._maxAttempts = maxAttempts;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxNodeAttempts() {\n return this._network.maxNodeAttempts;\n }\n\n /**\n * @param {number} maxNodeAttempts\n * @returns {this}\n */\n setMaxNodeAttempts(maxNodeAttempts) {\n this._network.setMaxNodeAttempts(maxNodeAttempts);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeWaitTime() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeWaitTime\n * @returns {this}\n */\n setNodeWaitTime(nodeWaitTime) {\n this._network.setMinBackoff(nodeWaitTime);\n return this;\n }\n\n /**\n * Gets the maximum number of nodes that a transaction or query will attempt to execute against.\n *\n * @returns {number} The current maximum nodes per transaction setting.\n * Returns -1 if no limit is set (uses network defaults).\n */\n get maxNodesPerTransaction() {\n return this._network.maxNodesPerTransaction;\n }\n\n /**\n * Sets the maximum number of nodes that a transaction or query will execute against.\n *\n * - **Before freezing**: Limits automatic node selection when no explicit nodes are set\n * - **After freezing**: Trims frozen transactions to the first N nodes while preserving signatures\n * - **Special values**: 0 disables limiting, values > available nodes cause no trimming\n *\n * @param {number} maxNodesPerTransaction - Maximum nodes per transaction. Set to 0 to disable.\n * @returns {this} The client instance for method chaining\n */\n setMaxNodesPerTransaction(maxNodesPerTransaction) {\n this._network.setMaxNodesPerTransaction(maxNodesPerTransaction);\n return this;\n }\n\n /**\n * @param {?number} minBackoff\n * @returns {this}\n */\n setMinBackoff(minBackoff) {\n if (minBackoff == null) {\n throw new Error(\"minBackoff cannot be null.\");\n }\n if (minBackoff > this._maxBackoff) {\n throw new Error(\"minBackoff cannot be larger than maxBackoff.\");\n }\n this._minBackoff = minBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get minBackoff() {\n return this._minBackoff;\n }\n\n /**\n * @param {?number} maxBackoff\n * @returns {this}\n */\n setMaxBackoff(maxBackoff) {\n if (maxBackoff == null) {\n throw new Error(\"maxBackoff cannot be null.\");\n } else if (maxBackoff < this._minBackoff) {\n throw new Error(\"maxBackoff cannot be smaller than minBackoff.\");\n }\n this._maxBackoff = maxBackoff;\n return this;\n }\n\n /**\n * @returns {number}\n */\n get maxBackoff() {\n return this._maxBackoff;\n }\n\n /**\n * @param {number} nodeMinBackoff\n * @returns {this}\n */\n setNodeMinBackoff(nodeMinBackoff) {\n this._network.setMinBackoff(nodeMinBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinBackoff() {\n return this._network.minBackoff;\n }\n\n /**\n * @param {number} nodeMaxBackoff\n * @returns {this}\n */\n setNodeMaxBackoff(nodeMaxBackoff) {\n this._network.setMaxBackoff(nodeMaxBackoff);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxBackoff() {\n return this._network.maxBackoff;\n }\n\n /**\n * @param {number} nodeMinReadmitPeriod\n * @returns {this}\n */\n setNodeMinReadmitPeriod(nodeMinReadmitPeriod) {\n this._network.setNodeMinReadmitPeriod(nodeMinReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMinReadmitPeriod() {\n return this._network.nodeMinReadmitPeriod;\n }\n\n /**\n * @param {number} nodeMaxReadmitPeriod\n * @returns {this}\n */\n setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod) {\n this._network.setNodeMaxReadmitPeriod(nodeMaxReadmitPeriod);\n return this;\n }\n\n /**\n * @returns {number}\n */\n get nodeMaxReadmitPeriod() {\n return this._network.nodeMaxReadmitPeriod;\n }\n\n /**\n * Set the total request timeout for complete operations.\n *\n * @param {number} requestTimeout - Maximum time in milliseconds for complete Transaction/Query operations\n * @returns {this}\n */\n setRequestTimeout(requestTimeout) {\n if (requestTimeout <= 0) {\n throw new Error(\"requestTimeout must be a positive number\");\n }\n if (requestTimeout <= this._grpcDeadline) {\n console.warn(\n `DEPRECATION WARNING: requestTimeout (${requestTimeout}ms) should be larger than grpcDeadline (${this._grpcDeadline}ms). ` +\n `This configuration may cause operations to fail unexpectedly. ` +\n `This will throw an error in the next major version. Please adjust your timeout values.`,\n );\n }\n this._requestTimeout = requestTimeout;\n return this;\n }\n\n /**\n * Get the total request timeout for complete operations.\n *\n * @returns {number} Maximum time in milliseconds for complete Transaction/Query operations\n */\n get requestTimeout() {\n return this._requestTimeout;\n }\n\n /**\n * Set the global gRPC deadline for all requests.\n *\n * @param {number} grpcDeadline - Maximum time in milliseconds for a single gRPC request\n * @returns {this}\n */\n setGrpcDeadline(grpcDeadline) {\n if (grpcDeadline <= 0) {\n throw new Error(\"grpcDeadline must be a positive number\");\n }\n if (grpcDeadline >= this._requestTimeout) {\n console.warn(\n `DEPRECATION WARNING: grpcDeadline (${grpcDeadline}ms) should be smaller than requestTimeout (${this._requestTimeout}ms). ` +\n `This configuration may cause operations to fail unexpectedly. ` +\n `This will throw an error in the next major version. Please adjust your timeout values.`,\n );\n }\n this._grpcDeadline = grpcDeadline;\n return this;\n }\n\n /**\n * Get the global gRPC deadline for all requests.\n *\n * @returns {number} Maximum time in milliseconds for a single gRPC request\n */\n get grpcDeadline() {\n return this._grpcDeadline;\n }\n\n /**\n * @returns {number}\n */\n get networkUpdatePeriod() {\n return this._networkUpdatePeriod;\n }\n\n /**\n * @param {number} networkUpdatePeriod\n * @returns {this}\n */\n setNetworkUpdatePeriod(networkUpdatePeriod) {\n clearTimeout(this._timer);\n this._networkUpdatePeriod = networkUpdatePeriod;\n this._scheduleNetworkUpdate();\n return this;\n }\n /**\n * Set logger\n *\n * @param {Logger} logger\n * @returns {this}\n */\n setLogger(logger) {\n this._logger = logger;\n return this;\n }\n\n /**\n * Get logger if set\n *\n * @returns {?Logger}\n */\n get logger() {\n return this._logger;\n }\n\n /**\n * @param {AccountId | string} accountId\n */\n async ping(accountId) {\n await new AccountBalanceQuery({ accountId })\n .setNodeAccountIds([\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId),\n ])\n .execute(this);\n }\n\n async pingAll() {\n for (const nodeAccountId of Object.values(this._network.network)) {\n await this.ping(nodeAccountId);\n }\n }\n\n /**\n * Update the network address book.\n * @returns {Promise<this>}\n */\n async updateNetwork() {\n if (this._isUpdatingNetwork) {\n return this;\n }\n\n this._isUpdatingNetwork = true;\n\n try {\n const addressBook = await new AddressBookQuery()\n .setFileId(\n FileId.getAddressBookFileIdFor(this._shard, this._realm),\n )\n .execute(this);\n this.setNetworkFromAddressBook(addressBook);\n } catch (error) {\n if (this._logger) {\n this._logger.trace(\n `failed to update client address book: ${\n /** @type {Error} */ (error).toString()\n }`,\n );\n }\n } finally {\n this._isUpdatingNetwork = false;\n }\n\n return this;\n }\n\n /**\n * @returns {void}\n */\n close() {\n this._network.close();\n this._mirrorNetwork.close();\n this._isShutdown = true;\n clearTimeout(this._timer);\n }\n\n /**\n * @abstract\n * @returns {(address: string) => ChannelT}\n */\n _createNetworkChannel() {\n return () => {\n throw new Error(\"not implemented\");\n };\n }\n\n /**\n * @abstract\n * @returns {(address: string) => MirrorChannelT}\n */\n _createMirrorNetworkChannel() {\n return () => {\n throw new Error(\"not implemented\");\n };\n }\n\n /**\n * @private\n */\n _scheduleNetworkUpdate() {\n // This is the automatic network update promise that _eventually_ completes\n // eslint-disable-next-line @typescript-eslint/no-floating-promises,@typescript-eslint/no-misused-promises\n this._timer = setTimeout(async () => {\n await this.updateNetwork();\n\n if (!this._isShutdown) {\n // Recall this method to continuously update the network\n // every `networkUpdatePeriod` amount of itme\n this._scheduleNetworkUpdate();\n }\n }, this._networkUpdatePeriod);\n }\n\n /**\n * @returns {boolean}\n */\n get isClientShutDown() {\n return this._isShutdown;\n }\n\n /**\n * Validates that all nodes in a network are in the same shard and realm.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n */\n static _validateNetworkConsistency(network) {\n if (Object.keys(network).length === 0) {\n return;\n }\n\n const [, nodeAccountId] = Object.entries(network)[0];\n\n const accountIdStr = nodeAccountId.toString();\n\n const [firstNodeShard, firstNodeRealm] = accountIdStr\n .split(\".\")\n .map(Number);\n\n const isNetworkValid = Object.values(network).every((accountId) => {\n const accountIdStr = accountId.toString();\n\n const [currentShard, currentRealm] = accountIdStr\n .split(\".\")\n .map(Number);\n return (\n currentShard === firstNodeShard &&\n currentRealm === firstNodeRealm\n );\n });\n\n if (!isNetworkValid) {\n throw new Error(\n \"Network is not valid, all nodes must be in the same shard and realm\",\n );\n }\n }\n\n /**\n * Extracts shard and realm values from a network configuration.\n * Note: This method assumes the network is consistent (all nodes in same shard/realm).\n * Use validateNetworkConsistency() first to ensure this.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n * @returns {{shard: number, realm: number}}\n */\n static _extractShardRealm(network) {\n const entries = Object.entries(network);\n if (entries.length === 0) {\n return { shard: 0, realm: 0 };\n }\n\n const [, firstNodeAccountId] = entries[0];\n\n const accountIdStr = firstNodeAccountId.toString();\n const [shard, realm] = accountIdStr.split(\".\").map(Number);\n\n return { shard, realm };\n }\n}\n"],"names":["Client","constructor","props","this","_mirrorNetwork","MirrorNetwork","_createMirrorNetworkChannel","_network","Network","_createNetworkChannel","_operator","_defaultMaxTransactionFee","_defaultMaxQueryPayment","Hbar","operator","setOperator","accountId","privateKey","_maxAttempts","_signOnDemand","_autoValidateChecksums","_minBackoff","_maxBackoff","_defaultRegenerateTransactionId","_requestTimeout","DEFAULT_REQUEST_TIMEOUT","_grpcDeadline","DEFAULT_GRPC_DEADLINE","_isUpdatingNetwork","_networkUpdatePeriod","_isShutdown","_shard","_realm","scheduleNetworkUpdate","_scheduleNetworkUpdate","shard","realm","grpcDeadline","setGrpcDeadline","requestTimeout","setRequestTimeout","console","warn","_timer","_logger","setNetworkName","networkName","setLedgerId","ledgerId","toString","LedgerId","fromString","_ledgerId","setNetwork","network","Error","setNetworkFromAddressBook","addressBook","setMirrorNetwork","mirrorNetwork","mirrorRestApiBaseUrl","signOnDemand","setSignOnDemand","isTransportSecurity","setTransportSecurity","transportSecurity","key","PrivateKey","fromStringDer","setOperatorWith","publicKey","message","Promise","resolve","sign","getOperator","transactionSigner","accountId_","AccountId","validateChecksum","PublicKey","setAutoValidateChecksums","value","isAutoValidateChecksumsEnabled","operatorAccountId","operatorPublicKey","defaultMaxTransactionFee","maxTransactionFee","setDefaultMaxTransactionFee","toTinybars","toInt","setMaxTransactionFee","defaultRegenerateTransactionId","setDefaultRegenerateTransactionId","defaultMaxQueryPayment","maxQueryPayment","setDefaultMaxQueryPayment","convertToNumber","setMaxQueryPayment","maxAttempts","setMaxAttempts","maxNodeAttempts","setMaxNodeAttempts","nodeWaitTime","minBackoff","setNodeWaitTime","setMinBackoff","maxNodesPerTransaction","setMaxNodesPerTransaction","setMaxBackoff","maxBackoff","setNodeMinBackoff","nodeMinBackoff","setNodeMaxBackoff","nodeMaxBackoff","setNodeMinReadmitPeriod","nodeMinReadmitPeriod","setNodeMaxReadmitPeriod","nodeMaxReadmitPeriod","networkUpdatePeriod","setNetworkUpdatePeriod","clearTimeout","setLogger","logger","ping","AccountBalanceQuery","setNodeAccountIds","execute","pingAll","nodeAccountId","Object","values","updateNetwork","AddressBookQuery","setFileId","FileId","getAddressBookFileIdFor","error","trace","close","setTimeout","async","isClientShutDown","_validateNetworkConsistency","keys","length","entries","accountIdStr","firstNodeShard","firstNodeRealm","split","map","Number","isNetworkValid","every","currentShard","currentRealm","_extractShardRealm","firstNodeAccountId"],"mappings":"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"}
|
|
@@ -291,7 +291,7 @@ class NativeClient extends _Client.default {
|
|
|
291
291
|
* @returns {(address: string) => NativeChannel}
|
|
292
292
|
*/
|
|
293
293
|
_createNetworkChannel() {
|
|
294
|
-
return address => new _NativeChannel.default(address);
|
|
294
|
+
return address => new _NativeChannel.default(address, this.grpcDeadline);
|
|
295
295
|
}
|
|
296
296
|
|
|
297
297
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"./Client.js";import e from"../channel/NativeChannel.js";import"../account/AccountId.js";import r from"../LedgerId.js";import{WebNetwork as s,MirrorNetwork as o}from"../constants/ClientConstants.js";import n from"../network/AddressBookQueryWeb.js";import i from"../file/FileId.js";class a extends t{constructor(e){if(super(e),null!=e)if("string"==typeof e.network)switch(e.network){case"mainnet":this.setNetwork(s.MAINNET),this.setLedgerId(r.MAINNET),this.setMirrorNetwork(o.MAINNET);break;case"testnet":this.setNetwork(s.TESTNET),this.setLedgerId(r.TESTNET),this.setMirrorNetwork(o.TESTNET);break;case"previewnet":this.setNetwork(s.PREVIEWNET),this.setLedgerId(r.PREVIEWNET),this.setMirrorNetwork(o.PREVIEWNET);break;default:throw new Error(`unknown network: ${e.network}`)}else if(null!=e.network){t._validateNetworkConsistency(e.network);const{shard:r,realm:s}=t._extractShardRealm(e.network);this._shard=r,this._realm=s,this.setNetwork(e.network)}}static fromConfig(t){return new a("string"==typeof t?JSON.parse(t):t)}static forNetwork(t){return new a({network:t})}static forName(t){return new a({network:t})}static forMainnet(){return new a({network:"mainnet"})}static forTestnet(){return new a({network:"testnet"})}static forPreviewnet(){return new a({network:"previewnet"})}static async forMainnetAsync(){return new a({network:"mainnet"}).updateNetwork()}static async forTestnetAsync(){return new a({network:"testnet"}).updateNetwork()}static async forPreviewnetAsync(){return new a({network:"previewnet"}).updateNetwork()}static async forNameAsync(t){const e=new a({network:t});return"local-node"!==t&&await e.updateNetwork(),e}static async forMirrorNetwork(t){const e=new a({mirrorNetwork:t});return await e.updateNetwork(),e}setNetwork(t){if("string"==typeof t)switch(t){case"previewnet":this._network.setNetwork(s.PREVIEWNET);break;case"testnet":this._network.setNetwork(s.TESTNET);break;case"mainnet":this._network.setNetwork(s.MAINNET)}else this._network.setNetwork(t)}setMirrorNetwork(t){if("string"==typeof t)switch(t){case"local-node":this._mirrorNetwork.setNetwork(o.LOCAL_NODE);break;case"previewnet":this._mirrorNetwork.setNetwork(o.PREVIEWNET);break;case"testnet":this._mirrorNetwork.setNetwork(o.TESTNET);break;case"mainnet":this._mirrorNetwork.setNetwork(o.MAINNET);break;default:this._mirrorNetwork.setNetwork([t])}else this._mirrorNetwork.setNetwork(t);return this}async updateNetwork(){if(this._isUpdatingNetwork)return this;this._isUpdatingNetwork=!0;try{const t=await(new n).setFileId(i.getAddressBookFileIdFor(this.shard,this.realm)).execute(this),e={};for(const r of t.nodeAddresses)for(const t of r.addresses)null!=r.accountId&&(e[t.toString()]=r.accountId);this.setNetwork(e)}catch(t){if(this._logger){const e=t instanceof Error?t.message:String(t);this._logger.trace(`failed to update client address book: ${e}`)}}finally{this._isUpdatingNetwork=!1}return this}_createNetworkChannel(){return t=>new e(t)}_createMirrorNetworkChannel(){return()=>{throw new Error("mirror support is not supported in native")}}}export{a as default};
|
|
1
|
+
import t from"./Client.js";import e from"../channel/NativeChannel.js";import"../account/AccountId.js";import r from"../LedgerId.js";import{WebNetwork as s,MirrorNetwork as o}from"../constants/ClientConstants.js";import n from"../network/AddressBookQueryWeb.js";import i from"../file/FileId.js";class a extends t{constructor(e){if(super(e),null!=e)if("string"==typeof e.network)switch(e.network){case"mainnet":this.setNetwork(s.MAINNET),this.setLedgerId(r.MAINNET),this.setMirrorNetwork(o.MAINNET);break;case"testnet":this.setNetwork(s.TESTNET),this.setLedgerId(r.TESTNET),this.setMirrorNetwork(o.TESTNET);break;case"previewnet":this.setNetwork(s.PREVIEWNET),this.setLedgerId(r.PREVIEWNET),this.setMirrorNetwork(o.PREVIEWNET);break;default:throw new Error(`unknown network: ${e.network}`)}else if(null!=e.network){t._validateNetworkConsistency(e.network);const{shard:r,realm:s}=t._extractShardRealm(e.network);this._shard=r,this._realm=s,this.setNetwork(e.network)}}static fromConfig(t){return new a("string"==typeof t?JSON.parse(t):t)}static forNetwork(t){return new a({network:t})}static forName(t){return new a({network:t})}static forMainnet(){return new a({network:"mainnet"})}static forTestnet(){return new a({network:"testnet"})}static forPreviewnet(){return new a({network:"previewnet"})}static async forMainnetAsync(){return new a({network:"mainnet"}).updateNetwork()}static async forTestnetAsync(){return new a({network:"testnet"}).updateNetwork()}static async forPreviewnetAsync(){return new a({network:"previewnet"}).updateNetwork()}static async forNameAsync(t){const e=new a({network:t});return"local-node"!==t&&await e.updateNetwork(),e}static async forMirrorNetwork(t){const e=new a({mirrorNetwork:t});return await e.updateNetwork(),e}setNetwork(t){if("string"==typeof t)switch(t){case"previewnet":this._network.setNetwork(s.PREVIEWNET);break;case"testnet":this._network.setNetwork(s.TESTNET);break;case"mainnet":this._network.setNetwork(s.MAINNET)}else this._network.setNetwork(t)}setMirrorNetwork(t){if("string"==typeof t)switch(t){case"local-node":this._mirrorNetwork.setNetwork(o.LOCAL_NODE);break;case"previewnet":this._mirrorNetwork.setNetwork(o.PREVIEWNET);break;case"testnet":this._mirrorNetwork.setNetwork(o.TESTNET);break;case"mainnet":this._mirrorNetwork.setNetwork(o.MAINNET);break;default:this._mirrorNetwork.setNetwork([t])}else this._mirrorNetwork.setNetwork(t);return this}async updateNetwork(){if(this._isUpdatingNetwork)return this;this._isUpdatingNetwork=!0;try{const t=await(new n).setFileId(i.getAddressBookFileIdFor(this.shard,this.realm)).execute(this),e={};for(const r of t.nodeAddresses)for(const t of r.addresses)null!=r.accountId&&(e[t.toString()]=r.accountId);this.setNetwork(e)}catch(t){if(this._logger){const e=t instanceof Error?t.message:String(t);this._logger.trace(`failed to update client address book: ${e}`)}}finally{this._isUpdatingNetwork=!1}return this}_createNetworkChannel(){return t=>new e(t,this.grpcDeadline)}_createMirrorNetworkChannel(){return()=>{throw new Error("mirror support is not supported in native")}}}export{a as default};
|
|
2
2
|
//# sourceMappingURL=NativeClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeClient.js","sources":["../../src/client/NativeClient.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport Client from \"./Client.js\";\nimport NativeChannel from \"../channel/NativeChannel.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport AccountId from \"../account/AccountId.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport { MirrorNetwork, WebNetwork } from \"../constants/ClientConstants.js\";\nimport AddressBookQuery from \"../network/AddressBookQueryWeb.js\";\nimport FileId from \"../file/FileId.js\";\n\n/**\n * @typedef {import(\"./Client.js\").ClientConfiguration} ClientConfiguration\n */\n\n/**\n * @augments {Client<NativeChannel, *>}\n */\nexport default class NativeClient extends Client {\n /**\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n super(props);\n\n if (props != null) {\n if (typeof props.network === \"string\") {\n switch (props.network) {\n case \"mainnet\":\n this.setNetwork(WebNetwork.MAINNET);\n this.setLedgerId(LedgerId.MAINNET);\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n break;\n\n case \"testnet\":\n this.setNetwork(WebNetwork.TESTNET);\n this.setLedgerId(LedgerId.TESTNET);\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n break;\n\n case \"previewnet\":\n this.setNetwork(WebNetwork.PREVIEWNET);\n this.setLedgerId(LedgerId.PREVIEWNET);\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n break;\n\n default:\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `unknown network: ${props.network}`,\n );\n }\n } else if (props.network != null) {\n Client._validateNetworkConsistency(props.network);\n\n const { shard, realm } = Client._extractShardRealm(\n props.network,\n );\n\n // Shard and realm are inferred from the network, so we need to set them here\n // to ensure that the client is properly configured.\n this._shard = shard;\n this._realm = realm;\n\n this.setNetwork(props.network);\n }\n }\n }\n\n /**\n * @param {string | ClientConfiguration} data\n * @returns {NativeClient}\n */\n static fromConfig(data) {\n return new NativeClient(\n typeof data === \"string\"\n ? /** @type {ClientConfiguration | undefined} */ (\n JSON.parse(data)\n )\n : data,\n );\n }\n\n /**\n * Construct a client for a specific network.\n *\n * It is the responsibility of the caller to ensure that all nodes in the map are part of the\n * same Hedera network. Failure to do so will result in undefined behavior.\n *\n * The client will load balance all requests to Hedera using a simple round-robin scheme to\n * chose nodes to send transactions to. For one transaction, at most 1/3 of the nodes will be\n * tried.\n *\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {NativeClient}\n */\n static forNetwork(network) {\n return new NativeClient({\n network,\n });\n }\n\n /**\n * @param {string} network\n * @returns {NativeClient}\n */\n static forName(network) {\n return new NativeClient({ network });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access.\n *\n * @returns {NativeClient}\n */\n static forMainnet() {\n return new NativeClient({\n network: \"mainnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access.\n *\n * @returns {NativeClient}\n */\n static forTestnet() {\n return new NativeClient({\n network: \"testnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access.\n *\n * @returns {NativeClient}\n */\n static forPreviewnet() {\n return new NativeClient({\n network: \"previewnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forMainnetAsync() {\n return new NativeClient({\n network: \"mainnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forTestnetAsync() {\n return new NativeClient({\n network: \"testnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forPreviewnetAsync() {\n return new NativeClient({\n network: \"previewnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a client for a specific network with optional network update.\n * Updates network only if the network is not \"local-node\".\n *\n * @param {string} network\n * @returns {Promise<NativeClient>}\n */\n static async forNameAsync(network) {\n const client = new NativeClient({ network });\n\n if (network !== \"local-node\") {\n await client.updateNetwork();\n }\n\n return client;\n }\n\n /**\n * Construct a client configured to use mirror nodes.\n * This will query the address book to get the network nodes.\n *\n * @param {string[] | string} mirrorNetwork\n * @returns {Promise<NativeClient>}\n */\n static async forMirrorNetwork(mirrorNetwork) {\n const client = new NativeClient({\n mirrorNetwork,\n });\n\n await client.updateNetwork();\n\n return client;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n setNetwork(network) {\n if (typeof network === \"string\") {\n switch (network) {\n case \"previewnet\":\n this._network.setNetwork(WebNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._network.setNetwork(WebNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._network.setNetwork(WebNetwork.MAINNET);\n }\n } else {\n this._network.setNetwork(network);\n }\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {this}\n */\n setMirrorNetwork(mirrorNetwork) {\n if (typeof mirrorNetwork === \"string\") {\n switch (mirrorNetwork) {\n case \"local-node\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.LOCAL_NODE);\n break;\n case \"previewnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.MAINNET);\n break;\n default:\n this._mirrorNetwork.setNetwork([mirrorNetwork]);\n }\n } else {\n this._mirrorNetwork.setNetwork(mirrorNetwork);\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {Promise<this>}\n */\n async updateNetwork() {\n if (this._isUpdatingNetwork) {\n return this;\n }\n\n this._isUpdatingNetwork = true;\n\n try {\n const addressBook = await new AddressBookQuery()\n .setFileId(\n FileId.getAddressBookFileIdFor(this.shard, this.realm),\n )\n .execute(this);\n\n /** @type {Record<string, AccountId>} */\n const network = {};\n for (const nodeAddress of addressBook.nodeAddresses) {\n for (const endpoint of nodeAddress.addresses) {\n if (nodeAddress.accountId != null) {\n network[endpoint.toString()] = nodeAddress.accountId;\n }\n }\n }\n\n this.setNetwork(network);\n } catch (/** @type {unknown} */ error) {\n if (this._logger) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this._logger.trace(\n `failed to update client address book: ${errorMessage}`,\n );\n }\n } finally {\n this._isUpdatingNetwork = false;\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {(address: string) => NativeChannel}\n */\n _createNetworkChannel() {\n return (address) => new NativeChannel(address);\n }\n\n /**\n * @override\n * @returns {(address: string) => *}\n */\n _createMirrorNetworkChannel() {\n return () => {\n throw new Error(\"mirror support is not supported in native\");\n };\n }\n}\n"],"names":["NativeClient","Client","constructor","props","super","network","this","setNetwork","WebNetwork","MAINNET","setLedgerId","LedgerId","setMirrorNetwork","MirrorNetwork","TESTNET","PREVIEWNET","Error","_validateNetworkConsistency","shard","realm","_extractShardRealm","_shard","_realm","fromConfig","data","JSON","parse","forNetwork","forName","forMainnet","forTestnet","forPreviewnet","forMainnetAsync","updateNetwork","forTestnetAsync","forPreviewnetAsync","forNameAsync","client","forMirrorNetwork","mirrorNetwork","_network","_mirrorNetwork","LOCAL_NODE","_isUpdatingNetwork","addressBook","AddressBookQuery","setFileId","FileId","getAddressBookFileIdFor","execute","nodeAddress","nodeAddresses","endpoint","addresses","accountId","toString","error","_logger","errorMessage","message","String","trace","_createNetworkChannel","address","NativeChannel","_createMirrorNetworkChannel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NativeClient.js","sources":["../../src/client/NativeClient.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport Client from \"./Client.js\";\nimport NativeChannel from \"../channel/NativeChannel.js\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport AccountId from \"../account/AccountId.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport { MirrorNetwork, WebNetwork } from \"../constants/ClientConstants.js\";\nimport AddressBookQuery from \"../network/AddressBookQueryWeb.js\";\nimport FileId from \"../file/FileId.js\";\n\n/**\n * @typedef {import(\"./Client.js\").ClientConfiguration} ClientConfiguration\n */\n\n/**\n * @augments {Client<NativeChannel, *>}\n */\nexport default class NativeClient extends Client {\n /**\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n super(props);\n\n if (props != null) {\n if (typeof props.network === \"string\") {\n switch (props.network) {\n case \"mainnet\":\n this.setNetwork(WebNetwork.MAINNET);\n this.setLedgerId(LedgerId.MAINNET);\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n break;\n\n case \"testnet\":\n this.setNetwork(WebNetwork.TESTNET);\n this.setLedgerId(LedgerId.TESTNET);\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n break;\n\n case \"previewnet\":\n this.setNetwork(WebNetwork.PREVIEWNET);\n this.setLedgerId(LedgerId.PREVIEWNET);\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n break;\n\n default:\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `unknown network: ${props.network}`,\n );\n }\n } else if (props.network != null) {\n Client._validateNetworkConsistency(props.network);\n\n const { shard, realm } = Client._extractShardRealm(\n props.network,\n );\n\n // Shard and realm are inferred from the network, so we need to set them here\n // to ensure that the client is properly configured.\n this._shard = shard;\n this._realm = realm;\n\n this.setNetwork(props.network);\n }\n }\n }\n\n /**\n * @param {string | ClientConfiguration} data\n * @returns {NativeClient}\n */\n static fromConfig(data) {\n return new NativeClient(\n typeof data === \"string\"\n ? /** @type {ClientConfiguration | undefined} */ (\n JSON.parse(data)\n )\n : data,\n );\n }\n\n /**\n * Construct a client for a specific network.\n *\n * It is the responsibility of the caller to ensure that all nodes in the map are part of the\n * same Hedera network. Failure to do so will result in undefined behavior.\n *\n * The client will load balance all requests to Hedera using a simple round-robin scheme to\n * chose nodes to send transactions to. For one transaction, at most 1/3 of the nodes will be\n * tried.\n *\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {NativeClient}\n */\n static forNetwork(network) {\n return new NativeClient({\n network,\n });\n }\n\n /**\n * @param {string} network\n * @returns {NativeClient}\n */\n static forName(network) {\n return new NativeClient({ network });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access.\n *\n * @returns {NativeClient}\n */\n static forMainnet() {\n return new NativeClient({\n network: \"mainnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access.\n *\n * @returns {NativeClient}\n */\n static forTestnet() {\n return new NativeClient({\n network: \"testnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access.\n *\n * @returns {NativeClient}\n */\n static forPreviewnet() {\n return new NativeClient({\n network: \"previewnet\",\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forMainnetAsync() {\n return new NativeClient({\n network: \"mainnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forTestnetAsync() {\n return new NativeClient({\n network: \"testnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access with network update.\n *\n * @returns {Promise<NativeClient>}\n */\n static async forPreviewnetAsync() {\n return new NativeClient({\n network: \"previewnet\",\n }).updateNetwork();\n }\n\n /**\n * Construct a client for a specific network with optional network update.\n * Updates network only if the network is not \"local-node\".\n *\n * @param {string} network\n * @returns {Promise<NativeClient>}\n */\n static async forNameAsync(network) {\n const client = new NativeClient({ network });\n\n if (network !== \"local-node\") {\n await client.updateNetwork();\n }\n\n return client;\n }\n\n /**\n * Construct a client configured to use mirror nodes.\n * This will query the address book to get the network nodes.\n *\n * @param {string[] | string} mirrorNetwork\n * @returns {Promise<NativeClient>}\n */\n static async forMirrorNetwork(mirrorNetwork) {\n const client = new NativeClient({\n mirrorNetwork,\n });\n\n await client.updateNetwork();\n\n return client;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n setNetwork(network) {\n if (typeof network === \"string\") {\n switch (network) {\n case \"previewnet\":\n this._network.setNetwork(WebNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._network.setNetwork(WebNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._network.setNetwork(WebNetwork.MAINNET);\n }\n } else {\n this._network.setNetwork(network);\n }\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {this}\n */\n setMirrorNetwork(mirrorNetwork) {\n if (typeof mirrorNetwork === \"string\") {\n switch (mirrorNetwork) {\n case \"local-node\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.LOCAL_NODE);\n break;\n case \"previewnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.MAINNET);\n break;\n default:\n this._mirrorNetwork.setNetwork([mirrorNetwork]);\n }\n } else {\n this._mirrorNetwork.setNetwork(mirrorNetwork);\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {Promise<this>}\n */\n async updateNetwork() {\n if (this._isUpdatingNetwork) {\n return this;\n }\n\n this._isUpdatingNetwork = true;\n\n try {\n const addressBook = await new AddressBookQuery()\n .setFileId(\n FileId.getAddressBookFileIdFor(this.shard, this.realm),\n )\n .execute(this);\n\n /** @type {Record<string, AccountId>} */\n const network = {};\n for (const nodeAddress of addressBook.nodeAddresses) {\n for (const endpoint of nodeAddress.addresses) {\n if (nodeAddress.accountId != null) {\n network[endpoint.toString()] = nodeAddress.accountId;\n }\n }\n }\n\n this.setNetwork(network);\n } catch (/** @type {unknown} */ error) {\n if (this._logger) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n this._logger.trace(\n `failed to update client address book: ${errorMessage}`,\n );\n }\n } finally {\n this._isUpdatingNetwork = false;\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {(address: string) => NativeChannel}\n */\n _createNetworkChannel() {\n return (address) => new NativeChannel(address, this.grpcDeadline);\n }\n\n /**\n * @override\n * @returns {(address: string) => *}\n */\n _createMirrorNetworkChannel() {\n return () => {\n throw new Error(\"mirror support is not supported in native\");\n };\n }\n}\n"],"names":["NativeClient","Client","constructor","props","super","network","this","setNetwork","WebNetwork","MAINNET","setLedgerId","LedgerId","setMirrorNetwork","MirrorNetwork","TESTNET","PREVIEWNET","Error","_validateNetworkConsistency","shard","realm","_extractShardRealm","_shard","_realm","fromConfig","data","JSON","parse","forNetwork","forName","forMainnet","forTestnet","forPreviewnet","forMainnetAsync","updateNetwork","forTestnetAsync","forPreviewnetAsync","forNameAsync","client","forMirrorNetwork","mirrorNetwork","_network","_mirrorNetwork","LOCAL_NODE","_isUpdatingNetwork","addressBook","AddressBookQuery","setFileId","FileId","getAddressBookFileIdFor","execute","nodeAddress","nodeAddresses","endpoint","addresses","accountId","toString","error","_logger","errorMessage","message","String","trace","_createNetworkChannel","address","NativeChannel","grpcDeadline","_createMirrorNetworkChannel"],"mappings":"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"}
|
|
@@ -38,9 +38,6 @@ class NodeClient extends _Client.default {
|
|
|
38
38
|
*/
|
|
39
39
|
constructor(props) {
|
|
40
40
|
super(props);
|
|
41
|
-
|
|
42
|
-
/** @private */
|
|
43
|
-
this._maxExecutionTime = 10000;
|
|
44
41
|
if (props != null) {
|
|
45
42
|
if (typeof props.network === "string") {
|
|
46
43
|
this._setNetworkFromName(props.network);
|
|
@@ -279,12 +276,16 @@ class NodeClient extends _Client.default {
|
|
|
279
276
|
|
|
280
277
|
/**
|
|
281
278
|
* Available only for NodeClient
|
|
282
|
-
*
|
|
279
|
+
* Legacy method maintained for backward compatibility.
|
|
280
|
+
* This method now calls setGrpcDeadline internally to ensure proper validation.
|
|
281
|
+
* @deprecated Use setGrpcDeadline instead.
|
|
283
282
|
* @param {number} maxExecutionTime
|
|
284
283
|
* @returns {this}
|
|
285
284
|
*/
|
|
286
285
|
setMaxExecutionTime(maxExecutionTime) {
|
|
287
|
-
|
|
286
|
+
// Use the parent class setGrpcDeadline method to ensure proper validation
|
|
287
|
+
// This ensures that maxExecutionTime follows the same validation rules as grpcDeadline
|
|
288
|
+
this.setGrpcDeadline(maxExecutionTime);
|
|
288
289
|
return this;
|
|
289
290
|
}
|
|
290
291
|
|
|
@@ -356,7 +357,7 @@ class NodeClient extends _Client.default {
|
|
|
356
357
|
* @returns {(address: string, cert?: string) => NodeChannel}
|
|
357
358
|
*/
|
|
358
359
|
_createNetworkChannel() {
|
|
359
|
-
return address => new _NodeChannel.default(address, this.
|
|
360
|
+
return address => new _NodeChannel.default(address, this.grpcDeadline);
|
|
360
361
|
}
|
|
361
362
|
|
|
362
363
|
/**
|
|
@@ -137,11 +137,11 @@ export default class NodeClient extends Client<NodeChannel, NodeMirrorChannel> {
|
|
|
137
137
|
* @param {ClientConfiguration} [props]
|
|
138
138
|
*/
|
|
139
139
|
constructor(props?: ClientConfiguration);
|
|
140
|
-
/** @private */
|
|
141
|
-
private _maxExecutionTime;
|
|
142
140
|
/**
|
|
143
141
|
* Available only for NodeClient
|
|
144
|
-
*
|
|
142
|
+
* Legacy method maintained for backward compatibility.
|
|
143
|
+
* This method now calls setGrpcDeadline internally to ensure proper validation.
|
|
144
|
+
* @deprecated Use setGrpcDeadline instead.
|
|
145
145
|
* @param {number} maxExecutionTime
|
|
146
146
|
* @returns {this}
|
|
147
147
|
*/
|
package/lib/client/NodeClient.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"fs";import r from"util";import t from"./Client.js";import o from"../channel/NodeChannel.js";import s from"../channel/NodeMirrorChannel.js";import n from"../LedgerId.js";import i from"../address_book/NodeAddressBook.js";import{addressBook as a}from"./addressbooks/mainnet.js";import{addressBook as w}from"./addressbooks/testnet.js";import{addressBook as k}from"./addressbooks/previewnet.js";import{decode as N}from"../encoding/hex.js";import{MirrorNetwork as m,LocalNodeNetwork as c}from"../constants/ClientConstants.js";const d=r.promisify(e.readFile);class h extends t{constructor(e){if(super(e),
|
|
1
|
+
import e from"fs";import r from"util";import t from"./Client.js";import o from"../channel/NodeChannel.js";import s from"../channel/NodeMirrorChannel.js";import n from"../LedgerId.js";import i from"../address_book/NodeAddressBook.js";import{addressBook as a}from"./addressbooks/mainnet.js";import{addressBook as w}from"./addressbooks/testnet.js";import{addressBook as k}from"./addressbooks/previewnet.js";import{decode as N}from"../encoding/hex.js";import{MirrorNetwork as m,LocalNodeNetwork as c}from"../constants/ClientConstants.js";const d=r.promisify(e.readFile);class h extends t{constructor(e){if(super(e),null!=e){if("string"==typeof e.network)this._setNetworkFromName(e.network);else if(null!=e.network){t._validateNetworkConsistency(e.network);const{shard:r,realm:o}=t._extractShardRealm(e.network);this._shard=r,this._realm=o,this.setNetwork(e.network)}if("string"==typeof e.mirrorNetwork)switch(e.mirrorNetwork){case"mainnet":this.setMirrorNetwork(m.MAINNET);break;case"testnet":this.setMirrorNetwork(m.TESTNET);break;case"previewnet":this.setMirrorNetwork(m.PREVIEWNET);break;default:this.setMirrorNetwork([e.mirrorNetwork])}else null!=e.mirrorNetwork&&this.setMirrorNetwork(e.mirrorNetwork)}}static fromConfig(e){return new h("string"==typeof e?JSON.parse(e):e)}static async fromConfigFile(e){return h.fromConfig(await d(e,"utf8"))}static forNetwork(e,r){return new h({network:e,...r})}static forName(e,r={}){return new h({network:e,...r})}static forMainnet(e={}){return new h({network:"mainnet",...e})}static forTestnet(e={}){return new h({network:"testnet",...e})}static async forMirrorNetwork(e,r,t){const o=new h({mirrorNetwork:e,shard:r,realm:t});return await o.updateNetwork(),o}static forPreviewnet(e={}){return new h({network:"previewnet",...e})}static forLocalNode(e={scheduleNetworkUpdate:!1}){return new h({network:"local-node",...e})}static async forMainnetAsync(e={}){return new h({network:"mainnet",...e}).updateNetwork()}static async forTestnetAsync(e={}){return new h({network:"testnet",...e}).updateNetwork()}static async forPreviewnetAsync(e={}){return new h({network:"previewnet",...e}).updateNetwork()}static async forNameAsync(e,r={}){const t=new h({network:e,...r});return"local-node"!==e&&await t.updateNetwork(),t}setNetwork(e){"string"==typeof e?this._setNetworkFromName(e):this._network.setNetwork(e)}setMaxExecutionTime(e){return this.setGrpcDeadline(e),this}_setNetworkFromName(e){switch(e){case"mainnet":this.setNetworkFromAddressBook(i.fromBytes(N(a))),this.setMirrorNetwork(m.MAINNET),this.setLedgerId(n.MAINNET);break;case"testnet":this.setNetworkFromAddressBook(i.fromBytes(N(w))),this.setMirrorNetwork(m.TESTNET),this.setLedgerId(n.TESTNET);break;case"previewnet":this.setNetworkFromAddressBook(i.fromBytes(N(k))),this.setMirrorNetwork(m.PREVIEWNET),this.setLedgerId(n.PREVIEWNET);break;case"local-node":this.setNetwork(c),this.setMirrorNetwork(m.LOCAL_NODE),this.setLedgerId(n.LOCAL_NODE);break;default:throw new Error(`unknown network: ${e}`)}return this}setMirrorNetwork(e){if("string"==typeof e)switch(e){case"local-node":this._mirrorNetwork.setNetwork(m.LOCAL_NODE);break;case"previewnet":this._mirrorNetwork.setNetwork(m.PREVIEWNET);break;case"testnet":this._mirrorNetwork.setNetwork(m.TESTNET);break;case"mainnet":this._mirrorNetwork.setNetwork(m.MAINNET);break;default:this._mirrorNetwork.setNetwork([e])}else this._mirrorNetwork.setNetwork(e);return this}_createNetworkChannel(){return e=>new o(e,this.grpcDeadline)}_createMirrorNetworkChannel(){return e=>new s(e)}}export{h as default};
|
|
2
2
|
//# sourceMappingURL=NodeClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeClient.js","sources":["../../src/client/NodeClient.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport fs from \"fs\";\nimport util from \"util\";\nimport Client from \"./Client.js\";\nimport NodeChannel from \"../channel/NodeChannel.js\";\nimport NodeMirrorChannel from \"../channel/NodeMirrorChannel.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport NodeAddressBook from \"../address_book/NodeAddressBook.js\";\nimport * as mainnet from \"./addressbooks/mainnet.js\";\nimport * as testnet from \"./addressbooks/testnet.js\";\nimport * as previewnet from \"./addressbooks/previewnet.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport {\n LocalNodeNetwork,\n MirrorNetwork,\n} from \"../constants/ClientConstants.js\";\n\nconst readFileAsync = util.promisify(fs.readFile);\n\n/**\n * @typedef {import(\"./Client.js\").ClientConfiguration} ClientConfiguration\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Client<NodeChannel, NodeMirrorChannel>}\n * Client for interacting with the Hedera network using Node.js.\n * Extends the base Client class with Node.js specific implementations.\n */\nexport default class NodeClient extends Client {\n /**\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n super(props);\n\n /** @private */\n this._maxExecutionTime = 10000;\n\n if (props != null) {\n if (typeof props.network === \"string\") {\n this._setNetworkFromName(props.network);\n } else if (props.network != null) {\n Client._validateNetworkConsistency(props.network);\n\n const { shard, realm } = Client._extractShardRealm(\n props.network,\n );\n\n // Shard and realm are inferred from the network, so we need to set them here\n // to ensure that the client is properly configured.\n this._shard = shard;\n this._realm = realm;\n\n this.setNetwork(props.network);\n }\n\n if (typeof props.mirrorNetwork === \"string\") {\n switch (props.mirrorNetwork) {\n case \"mainnet\":\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n break;\n\n case \"testnet\":\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n break;\n\n case \"previewnet\":\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n break;\n\n default:\n this.setMirrorNetwork([props.mirrorNetwork]);\n break;\n }\n } else if (props.mirrorNetwork != null) {\n this.setMirrorNetwork(props.mirrorNetwork);\n }\n }\n }\n\n /**\n * @param {string | ClientConfiguration} data\n * @returns {NodeClient}\n */\n static fromConfig(data) {\n return new NodeClient(\n typeof data === \"string\"\n ? /** @type {ClientConfiguration | undefined} */ (\n JSON.parse(data)\n )\n : data,\n );\n }\n\n /**\n * @param {string} filename\n * @returns {Promise<NodeClient>}\n */\n static async fromConfigFile(filename) {\n return NodeClient.fromConfig(await readFileAsync(filename, \"utf8\"));\n }\n\n /**\n * Construct a client for a specific network.\n *\n * It is the responsibility of the caller to ensure that all nodes in the map are part of the\n * same Hedera network. Failure to do so will result in undefined behavior.\n *\n * The client will load balance all requests to Hedera using a simple round-robin scheme to\n * chose nodes to send transactions to. For one transaction, at most 1/3 of the nodes will be\n * tried.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n * @param {ClientConfiguration} [props]\n * @returns {NodeClient}\n */\n static forNetwork(network, props) {\n return new NodeClient({\n network,\n ...props,\n });\n }\n\n /**\n * @param {string} network\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forName(network, props = {}) {\n return new NodeClient({ network, ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forMainnet(props = {}) {\n return new NodeClient({ network: \"mainnet\", ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forTestnet(props = {}) {\n return new NodeClient({ network: \"testnet\", ...props });\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @param {number} [shard]\n * @param {number} [realm]\n * @returns {Promise<NodeClient>}\n */\n static async forMirrorNetwork(mirrorNetwork, shard, realm) {\n const client = new NodeClient({\n mirrorNetwork,\n shard,\n realm,\n });\n\n await client.updateNetwork();\n\n return client;\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forPreviewnet(props = {}) {\n return new NodeClient({ network: \"previewnet\", ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for local-node access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forLocalNode(props = { scheduleNetworkUpdate: false }) {\n return new NodeClient({\n network: \"local-node\",\n ...props,\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forMainnetAsync(props = {}) {\n return new NodeClient({ network: \"mainnet\", ...props }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forTestnetAsync(props = {}) {\n return new NodeClient({ network: \"testnet\", ...props }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forPreviewnetAsync(props = {}) {\n return new NodeClient({\n network: \"previewnet\",\n ...props,\n }).updateNetwork();\n }\n\n /**\n * Construct a client for a specific network with optional network update.\n * Updates network only if the network is not \"local-node\".\n *\n * @param {string} network\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forNameAsync(network, props = {}) {\n const client = new NodeClient({ network, ...props });\n\n if (network !== \"local-node\") {\n await client.updateNetwork();\n }\n\n return client;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n setNetwork(network) {\n if (typeof network === \"string\") {\n this._setNetworkFromName(network);\n } else {\n this._network.setNetwork(network);\n }\n }\n\n /**\n * Available only for NodeClient\n *\n * @param {number} maxExecutionTime\n * @returns {this}\n */\n setMaxExecutionTime(maxExecutionTime) {\n this._maxExecutionTime = maxExecutionTime;\n return this;\n }\n\n /**\n * @private\n * @param {string} name\n * @returns {this}\n */\n _setNetworkFromName(name) {\n switch (name) {\n case \"mainnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(hex.decode(mainnet.addressBook)),\n );\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n this.setLedgerId(LedgerId.MAINNET);\n break;\n\n case \"testnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(hex.decode(testnet.addressBook)),\n );\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n this.setLedgerId(LedgerId.TESTNET);\n break;\n\n case \"previewnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(\n hex.decode(previewnet.addressBook),\n ),\n );\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n this.setLedgerId(LedgerId.PREVIEWNET);\n break;\n\n case \"local-node\":\n this.setNetwork(LocalNodeNetwork);\n this.setMirrorNetwork(MirrorNetwork.LOCAL_NODE);\n this.setLedgerId(LedgerId.LOCAL_NODE);\n break;\n\n default:\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `unknown network: ${name}`,\n );\n }\n return this;\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {this}\n */\n setMirrorNetwork(mirrorNetwork) {\n if (typeof mirrorNetwork === \"string\") {\n switch (mirrorNetwork) {\n case \"local-node\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.LOCAL_NODE);\n break;\n case \"previewnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.MAINNET);\n break;\n default:\n this._mirrorNetwork.setNetwork([mirrorNetwork]);\n }\n } else {\n this._mirrorNetwork.setNetwork(mirrorNetwork);\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {(address: string, cert?: string) => NodeChannel}\n */\n _createNetworkChannel() {\n return (address) => new NodeChannel(address, this._maxExecutionTime);\n }\n\n /**\n * @override\n * @returns {(address: string) => NodeMirrorChannel}\n */\n _createMirrorNetworkChannel() {\n return (address) => new NodeMirrorChannel(address);\n }\n}\n"],"names":["readFileAsync","util","promisify","fs","readFile","NodeClient","Client","constructor","props","super","this","_maxExecutionTime","network","_setNetworkFromName","_validateNetworkConsistency","shard","realm","_extractShardRealm","_shard","_realm","setNetwork","mirrorNetwork","setMirrorNetwork","MirrorNetwork","MAINNET","TESTNET","PREVIEWNET","fromConfig","data","JSON","parse","fromConfigFile","filename","forNetwork","forName","forMainnet","forTestnet","forMirrorNetwork","client","updateNetwork","forPreviewnet","forLocalNode","scheduleNetworkUpdate","forMainnetAsync","forTestnetAsync","forPreviewnetAsync","forNameAsync","_network","setMaxExecutionTime","maxExecutionTime","name","setNetworkFromAddressBook","NodeAddressBook","fromBytes","hex.decode","mainnet.addressBook","setLedgerId","LedgerId","testnet.addressBook","previewnet.addressBook","LocalNodeNetwork","LOCAL_NODE","Error","_mirrorNetwork","_createNetworkChannel","address","NodeChannel","_createMirrorNetworkChannel","NodeMirrorChannel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NodeClient.js","sources":["../../src/client/NodeClient.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport fs from \"fs\";\nimport util from \"util\";\nimport Client from \"./Client.js\";\nimport NodeChannel from \"../channel/NodeChannel.js\";\nimport NodeMirrorChannel from \"../channel/NodeMirrorChannel.js\";\nimport LedgerId from \"../LedgerId.js\";\nimport NodeAddressBook from \"../address_book/NodeAddressBook.js\";\nimport * as mainnet from \"./addressbooks/mainnet.js\";\nimport * as testnet from \"./addressbooks/testnet.js\";\nimport * as previewnet from \"./addressbooks/previewnet.js\";\nimport * as hex from \"../encoding/hex.js\";\nimport {\n LocalNodeNetwork,\n MirrorNetwork,\n} from \"../constants/ClientConstants.js\";\n\nconst readFileAsync = util.promisify(fs.readFile);\n\n/**\n * @typedef {import(\"./Client.js\").ClientConfiguration} ClientConfiguration\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n */\n\n/**\n * @augments {Client<NodeChannel, NodeMirrorChannel>}\n * Client for interacting with the Hedera network using Node.js.\n * Extends the base Client class with Node.js specific implementations.\n */\nexport default class NodeClient extends Client {\n /**\n * @param {ClientConfiguration} [props]\n */\n constructor(props) {\n super(props);\n\n if (props != null) {\n if (typeof props.network === \"string\") {\n this._setNetworkFromName(props.network);\n } else if (props.network != null) {\n Client._validateNetworkConsistency(props.network);\n\n const { shard, realm } = Client._extractShardRealm(\n props.network,\n );\n\n // Shard and realm are inferred from the network, so we need to set them here\n // to ensure that the client is properly configured.\n this._shard = shard;\n this._realm = realm;\n\n this.setNetwork(props.network);\n }\n\n if (typeof props.mirrorNetwork === \"string\") {\n switch (props.mirrorNetwork) {\n case \"mainnet\":\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n break;\n\n case \"testnet\":\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n break;\n\n case \"previewnet\":\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n break;\n\n default:\n this.setMirrorNetwork([props.mirrorNetwork]);\n break;\n }\n } else if (props.mirrorNetwork != null) {\n this.setMirrorNetwork(props.mirrorNetwork);\n }\n }\n }\n\n /**\n * @param {string | ClientConfiguration} data\n * @returns {NodeClient}\n */\n static fromConfig(data) {\n return new NodeClient(\n typeof data === \"string\"\n ? /** @type {ClientConfiguration | undefined} */ (\n JSON.parse(data)\n )\n : data,\n );\n }\n\n /**\n * @param {string} filename\n * @returns {Promise<NodeClient>}\n */\n static async fromConfigFile(filename) {\n return NodeClient.fromConfig(await readFileAsync(filename, \"utf8\"));\n }\n\n /**\n * Construct a client for a specific network.\n *\n * It is the responsibility of the caller to ensure that all nodes in the map are part of the\n * same Hedera network. Failure to do so will result in undefined behavior.\n *\n * The client will load balance all requests to Hedera using a simple round-robin scheme to\n * chose nodes to send transactions to. For one transaction, at most 1/3 of the nodes will be\n * tried.\n *\n * @param {{[key: string]: (string | AccountId)}} network\n * @param {ClientConfiguration} [props]\n * @returns {NodeClient}\n */\n static forNetwork(network, props) {\n return new NodeClient({\n network,\n ...props,\n });\n }\n\n /**\n * @param {string} network\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forName(network, props = {}) {\n return new NodeClient({ network, ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forMainnet(props = {}) {\n return new NodeClient({ network: \"mainnet\", ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forTestnet(props = {}) {\n return new NodeClient({ network: \"testnet\", ...props });\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @param {number} [shard]\n * @param {number} [realm]\n * @returns {Promise<NodeClient>}\n */\n static async forMirrorNetwork(mirrorNetwork, shard, realm) {\n const client = new NodeClient({\n mirrorNetwork,\n shard,\n realm,\n });\n\n await client.updateNetwork();\n\n return client;\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forPreviewnet(props = {}) {\n return new NodeClient({ network: \"previewnet\", ...props });\n }\n\n /**\n * Construct a Hedera client pre-configured for local-node access.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {NodeClient}\n */\n static forLocalNode(props = { scheduleNetworkUpdate: false }) {\n return new NodeClient({\n network: \"local-node\",\n ...props,\n });\n }\n\n /**\n * Construct a Hedera client pre-configured for Mainnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forMainnetAsync(props = {}) {\n return new NodeClient({ network: \"mainnet\", ...props }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Testnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forTestnetAsync(props = {}) {\n return new NodeClient({ network: \"testnet\", ...props }).updateNetwork();\n }\n\n /**\n * Construct a Hedera client pre-configured for Previewnet access with network update.\n *\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forPreviewnetAsync(props = {}) {\n return new NodeClient({\n network: \"previewnet\",\n ...props,\n }).updateNetwork();\n }\n\n /**\n * Construct a client for a specific network with optional network update.\n * Updates network only if the network is not \"local-node\".\n *\n * @param {string} network\n * @param {object} [props]\n * @param {boolean} [props.scheduleNetworkUpdate]\n * @returns {Promise<NodeClient>}\n */\n static async forNameAsync(network, props = {}) {\n const client = new NodeClient({ network, ...props });\n\n if (network !== \"local-node\") {\n await client.updateNetwork();\n }\n\n return client;\n }\n\n /**\n * @param {{[key: string]: (string | AccountId)} | string} network\n * @returns {void}\n */\n setNetwork(network) {\n if (typeof network === \"string\") {\n this._setNetworkFromName(network);\n } else {\n this._network.setNetwork(network);\n }\n }\n\n /**\n * Available only for NodeClient\n * Legacy method maintained for backward compatibility.\n * This method now calls setGrpcDeadline internally to ensure proper validation.\n * @deprecated Use setGrpcDeadline instead.\n * @param {number} maxExecutionTime\n * @returns {this}\n */\n setMaxExecutionTime(maxExecutionTime) {\n // Use the parent class setGrpcDeadline method to ensure proper validation\n // This ensures that maxExecutionTime follows the same validation rules as grpcDeadline\n this.setGrpcDeadline(maxExecutionTime);\n return this;\n }\n\n /**\n * @private\n * @param {string} name\n * @returns {this}\n */\n _setNetworkFromName(name) {\n switch (name) {\n case \"mainnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(hex.decode(mainnet.addressBook)),\n );\n this.setMirrorNetwork(MirrorNetwork.MAINNET);\n this.setLedgerId(LedgerId.MAINNET);\n break;\n\n case \"testnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(hex.decode(testnet.addressBook)),\n );\n this.setMirrorNetwork(MirrorNetwork.TESTNET);\n this.setLedgerId(LedgerId.TESTNET);\n break;\n\n case \"previewnet\":\n this.setNetworkFromAddressBook(\n NodeAddressBook.fromBytes(\n hex.decode(previewnet.addressBook),\n ),\n );\n this.setMirrorNetwork(MirrorNetwork.PREVIEWNET);\n this.setLedgerId(LedgerId.PREVIEWNET);\n break;\n\n case \"local-node\":\n this.setNetwork(LocalNodeNetwork);\n this.setMirrorNetwork(MirrorNetwork.LOCAL_NODE);\n this.setLedgerId(LedgerId.LOCAL_NODE);\n break;\n\n default:\n throw new Error(\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `unknown network: ${name}`,\n );\n }\n return this;\n }\n\n /**\n * @param {string[] | string} mirrorNetwork\n * @returns {this}\n */\n setMirrorNetwork(mirrorNetwork) {\n if (typeof mirrorNetwork === \"string\") {\n switch (mirrorNetwork) {\n case \"local-node\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.LOCAL_NODE);\n break;\n case \"previewnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.PREVIEWNET);\n break;\n case \"testnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.TESTNET);\n break;\n case \"mainnet\":\n this._mirrorNetwork.setNetwork(MirrorNetwork.MAINNET);\n break;\n default:\n this._mirrorNetwork.setNetwork([mirrorNetwork]);\n }\n } else {\n this._mirrorNetwork.setNetwork(mirrorNetwork);\n }\n\n return this;\n }\n\n /**\n * @override\n * @returns {(address: string, cert?: string) => NodeChannel}\n */\n _createNetworkChannel() {\n return (address) => new NodeChannel(address, this.grpcDeadline);\n }\n\n /**\n * @override\n * @returns {(address: string) => NodeMirrorChannel}\n */\n _createMirrorNetworkChannel() {\n return (address) => new NodeMirrorChannel(address);\n }\n}\n"],"names":["readFileAsync","util","promisify","fs","readFile","NodeClient","Client","constructor","props","super","network","this","_setNetworkFromName","_validateNetworkConsistency","shard","realm","_extractShardRealm","_shard","_realm","setNetwork","mirrorNetwork","setMirrorNetwork","MirrorNetwork","MAINNET","TESTNET","PREVIEWNET","fromConfig","data","JSON","parse","fromConfigFile","filename","forNetwork","forName","forMainnet","forTestnet","forMirrorNetwork","client","updateNetwork","forPreviewnet","forLocalNode","scheduleNetworkUpdate","forMainnetAsync","forTestnetAsync","forPreviewnetAsync","forNameAsync","_network","setMaxExecutionTime","maxExecutionTime","setGrpcDeadline","name","setNetworkFromAddressBook","NodeAddressBook","fromBytes","hex.decode","mainnet.addressBook","setLedgerId","LedgerId","testnet.addressBook","previewnet.addressBook","LocalNodeNetwork","LOCAL_NODE","Error","_mirrorNetwork","_createNetworkChannel","address","NodeChannel","grpcDeadline","_createMirrorNetworkChannel","NodeMirrorChannel"],"mappings":"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"}
|
package/lib/client/WebClient.cjs
CHANGED
|
@@ -34,32 +34,7 @@ class WebClient extends _Client.default {
|
|
|
34
34
|
super(props);
|
|
35
35
|
if (props != null) {
|
|
36
36
|
if (typeof props.network === "string") {
|
|
37
|
-
|
|
38
|
-
case "mainnet":
|
|
39
|
-
this.setNetwork(_ClientConstants.WebNetwork.MAINNET);
|
|
40
|
-
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.MAINNET);
|
|
41
|
-
this.setLedgerId(_LedgerId.default.MAINNET);
|
|
42
|
-
break;
|
|
43
|
-
case "testnet":
|
|
44
|
-
this.setNetwork(_ClientConstants.WebNetwork.TESTNET);
|
|
45
|
-
this.setLedgerId(_LedgerId.default.TESTNET);
|
|
46
|
-
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.TESTNET);
|
|
47
|
-
break;
|
|
48
|
-
case "previewnet":
|
|
49
|
-
this.setNetwork(_ClientConstants.WebNetwork.PREVIEWNET);
|
|
50
|
-
this.setLedgerId(_LedgerId.default.PREVIEWNET);
|
|
51
|
-
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.PREVIEWNET);
|
|
52
|
-
break;
|
|
53
|
-
case "local-node":
|
|
54
|
-
this.setNetwork(_ClientConstants.WebNetwork.LOCAL_NODE);
|
|
55
|
-
this.setLedgerId(_LedgerId.default.LOCAL_NODE);
|
|
56
|
-
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.LOCAL_NODE);
|
|
57
|
-
break;
|
|
58
|
-
default:
|
|
59
|
-
throw new Error(
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
61
|
-
`unknown network: ${props.network}`);
|
|
62
|
-
}
|
|
37
|
+
this._setNetworkFromName(props.network);
|
|
63
38
|
} else if (props.network != null) {
|
|
64
39
|
_Client.default._validateNetworkConsistency(props.network);
|
|
65
40
|
const {
|
|
@@ -73,6 +48,24 @@ class WebClient extends _Client.default {
|
|
|
73
48
|
this._realm = realm;
|
|
74
49
|
this.setNetwork(props.network);
|
|
75
50
|
}
|
|
51
|
+
if (typeof props.mirrorNetwork === "string") {
|
|
52
|
+
switch (props.mirrorNetwork) {
|
|
53
|
+
case "mainnet":
|
|
54
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.MAINNET);
|
|
55
|
+
break;
|
|
56
|
+
case "testnet":
|
|
57
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.TESTNET);
|
|
58
|
+
break;
|
|
59
|
+
case "previewnet":
|
|
60
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.PREVIEWNET);
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
this.setMirrorNetwork([props.mirrorNetwork]);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
} else if (props.mirrorNetwork != null) {
|
|
67
|
+
this.setMirrorNetwork(props.mirrorNetwork);
|
|
68
|
+
}
|
|
76
69
|
}
|
|
77
70
|
}
|
|
78
71
|
|
|
@@ -287,6 +280,41 @@ class WebClient extends _Client.default {
|
|
|
287
280
|
return this;
|
|
288
281
|
}
|
|
289
282
|
|
|
283
|
+
/**
|
|
284
|
+
* @private
|
|
285
|
+
* @param {string} name
|
|
286
|
+
* @returns {this}
|
|
287
|
+
*/
|
|
288
|
+
_setNetworkFromName(name) {
|
|
289
|
+
switch (name) {
|
|
290
|
+
case "mainnet":
|
|
291
|
+
this.setNetwork(_ClientConstants.WebNetwork.MAINNET);
|
|
292
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.MAINNET);
|
|
293
|
+
this.setLedgerId(_LedgerId.default.MAINNET);
|
|
294
|
+
break;
|
|
295
|
+
case "testnet":
|
|
296
|
+
this.setNetwork(_ClientConstants.WebNetwork.TESTNET);
|
|
297
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.TESTNET);
|
|
298
|
+
this.setLedgerId(_LedgerId.default.TESTNET);
|
|
299
|
+
break;
|
|
300
|
+
case "previewnet":
|
|
301
|
+
this.setNetwork(_ClientConstants.WebNetwork.PREVIEWNET);
|
|
302
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.PREVIEWNET);
|
|
303
|
+
this.setLedgerId(_LedgerId.default.PREVIEWNET);
|
|
304
|
+
break;
|
|
305
|
+
case "local-node":
|
|
306
|
+
this.setNetwork(_ClientConstants.WebNetwork.LOCAL_NODE);
|
|
307
|
+
this.setMirrorNetwork(_ClientConstants.WebMirrorNetwork.LOCAL_NODE);
|
|
308
|
+
this.setLedgerId(_LedgerId.default.LOCAL_NODE);
|
|
309
|
+
break;
|
|
310
|
+
default:
|
|
311
|
+
throw new Error(
|
|
312
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
313
|
+
`unknown network: ${name}`);
|
|
314
|
+
}
|
|
315
|
+
return this;
|
|
316
|
+
}
|
|
317
|
+
|
|
290
318
|
/**
|
|
291
319
|
* @override
|
|
292
320
|
* @returns {Promise<this>}
|
|
@@ -325,7 +353,7 @@ class WebClient extends _Client.default {
|
|
|
325
353
|
* @returns {(address: string) => WebChannel}
|
|
326
354
|
*/
|
|
327
355
|
_createNetworkChannel() {
|
|
328
|
-
return address => new _WebChannel.default(address);
|
|
356
|
+
return address => new _WebChannel.default(address, this.grpcDeadline);
|
|
329
357
|
}
|
|
330
358
|
|
|
331
359
|
/**
|
|
@@ -108,6 +108,12 @@ export default class WebClient extends Client<WebChannel, any> {
|
|
|
108
108
|
* @returns {this}
|
|
109
109
|
*/
|
|
110
110
|
setMirrorNetwork(mirrorNetwork: string[] | string): this;
|
|
111
|
+
/**
|
|
112
|
+
* @private
|
|
113
|
+
* @param {string} name
|
|
114
|
+
* @returns {this}
|
|
115
|
+
*/
|
|
116
|
+
private _setNetworkFromName;
|
|
111
117
|
/**
|
|
112
118
|
* @override
|
|
113
119
|
* @returns {Promise<this>}
|
package/lib/client/WebClient.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"./Client.js";import t from"../channel/WebChannel.js";import r from"../LedgerId.js";import{
|
|
1
|
+
import e from"./Client.js";import t from"../channel/WebChannel.js";import r from"../LedgerId.js";import{WebMirrorNetwork as s,WebNetwork as o}from"../constants/ClientConstants.js";import n from"../network/AddressBookQueryWeb.js";import i from"../file/FileId.js";class a extends e{constructor(t){if(super(t),null!=t){if("string"==typeof t.network)this._setNetworkFromName(t.network);else if(null!=t.network){e._validateNetworkConsistency(t.network);const{shard:r,realm:s}=e._extractShardRealm(t.network);this._shard=r,this._realm=s,this.setNetwork(t.network)}if("string"==typeof t.mirrorNetwork)switch(t.mirrorNetwork){case"mainnet":this.setMirrorNetwork(s.MAINNET);break;case"testnet":this.setMirrorNetwork(s.TESTNET);break;case"previewnet":this.setMirrorNetwork(s.PREVIEWNET);break;default:this.setMirrorNetwork([t.mirrorNetwork])}else null!=t.mirrorNetwork&&this.setMirrorNetwork(t.mirrorNetwork)}}static fromConfig(e){return new a("string"==typeof e?JSON.parse(e):e)}static forNetwork(e){return new a({network:e})}static forName(e){return new a({network:e})}static forMainnet(){return new a({network:"mainnet"})}static forTestnet(){return new a({network:"testnet"})}static forPreviewnet(){return new a({network:"previewnet"})}static forLocalNode(e={scheduleNetworkUpdate:!1}){return new a({network:"local-node",...e})}static async forMainnetAsync(){return new a({network:"mainnet"}).updateNetwork()}static async forTestnetAsync(){return new a({network:"testnet"}).updateNetwork()}static async forPreviewnetAsync(){return new a({network:"previewnet"}).updateNetwork()}static async forNameAsync(e){const t=new a({network:e});return"local-node"!==e&&await t.updateNetwork(),t}static async forMirrorNetwork(e){const t=new a({mirrorNetwork:e});return await t.updateNetwork(),t}setNetwork(e){if("string"==typeof e)switch(e){case"previewnet":this._network.setNetwork(o.PREVIEWNET);break;case"testnet":this._network.setNetwork(o.TESTNET);break;case"mainnet":this._network.setNetwork(o.MAINNET);break;case"local-node":this._network.setNetwork(o.LOCAL_NODE)}else{for(const[t]of Object.entries(e))(t.startsWith("https://")||t.startsWith("http://"))&&console.warn('[Deprecation Notice] Hiero SDK: Network endpoint "'+t+'" includes a URL scheme (e.g. "https://"). This format was accepted in earlier versions but is now deprecated. Please remove the scheme and use "host:port" instead (e.g. "node00.swirldslabs.com:443"). Support for scheme-prefixed endpoints will be removed in a future major release.');this._network.setNetwork(e)}}setMirrorNetwork(e){if("string"==typeof e)switch(e){case"local-node":this._mirrorNetwork.setNetwork(s.LOCAL_NODE);break;case"previewnet":this._mirrorNetwork.setNetwork(s.PREVIEWNET);break;case"testnet":this._mirrorNetwork.setNetwork(s.TESTNET);break;case"mainnet":this._mirrorNetwork.setNetwork(s.MAINNET);break;default:this._mirrorNetwork.setNetwork([e])}else this._mirrorNetwork.setNetwork(e);return this}_setNetworkFromName(e){switch(e){case"mainnet":this.setNetwork(o.MAINNET),this.setMirrorNetwork(s.MAINNET),this.setLedgerId(r.MAINNET);break;case"testnet":this.setNetwork(o.TESTNET),this.setMirrorNetwork(s.TESTNET),this.setLedgerId(r.TESTNET);break;case"previewnet":this.setNetwork(o.PREVIEWNET),this.setMirrorNetwork(s.PREVIEWNET),this.setLedgerId(r.PREVIEWNET);break;case"local-node":this.setNetwork(o.LOCAL_NODE),this.setMirrorNetwork(s.LOCAL_NODE),this.setLedgerId(r.LOCAL_NODE);break;default:throw new Error(`unknown network: ${e}`)}return this}async updateNetwork(){if(this._isUpdatingNetwork)return this;this._isUpdatingNetwork=!0;try{const e=await(new n).setFileId(i.getAddressBookFileIdFor(this.shard,this.realm)).execute(this),t={};for(const r of e.nodeAddresses)for(const e of r.addresses)null!=r.accountId&&(t[e.toString()]=r.accountId);this.setNetwork(t)}catch(e){if(this._logger){const t=e instanceof Error?e.message:String(e);this._logger.trace(`failed to update client address book: ${t}`)}}finally{this._isUpdatingNetwork=!1}return this}_createNetworkChannel(){return e=>new t(e,this.grpcDeadline)}_createMirrorNetworkChannel(){return()=>{throw new Error("mirror support is not supported in browsers")}}}export{a as default};
|
|
2
2
|
//# sourceMappingURL=WebClient.js.map
|