@hiero-ledger/sdk 2.80.0 → 2.81.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 +34 -7
- package/dist/umd.js +2213 -318
- package/dist/umd.js.map +1 -0
- package/dist/umd.min.js +6 -5
- package/dist/umd.min.js.map +1 -0
- package/lib/Executable.cjs +7 -4
- package/lib/Executable.js +1 -1
- package/lib/Executable.js.map +1 -1
- package/lib/PublicKey.cjs +45 -26
- package/lib/PublicKey.d.ts +12 -0
- package/lib/PublicKey.js +1 -1
- package/lib/PublicKey.js.map +1 -1
- package/lib/RequestType.cjs +19 -1
- package/lib/RequestType.d.ts +2 -0
- package/lib/RequestType.js +1 -1
- package/lib/RequestType.js.map +1 -1
- package/lib/Status.cjs +203 -252
- package/lib/Status.d.ts +8 -6
- package/lib/Status.js +1 -1
- package/lib/Status.js.map +1 -1
- package/lib/Transfer.cjs +25 -2
- package/lib/Transfer.d.ts +4 -0
- package/lib/Transfer.js +1 -1
- package/lib/Transfer.js.map +1 -1
- package/lib/account/AccountCreateTransaction.cjs +38 -0
- package/lib/account/AccountCreateTransaction.d.ts +21 -0
- package/lib/account/AccountCreateTransaction.js +1 -1
- package/lib/account/AccountCreateTransaction.js.map +1 -1
- package/lib/account/AccountUpdateTransaction.cjs +74 -1
- package/lib/account/AccountUpdateTransaction.d.ts +43 -0
- package/lib/account/AccountUpdateTransaction.js +1 -1
- package/lib/account/AccountUpdateTransaction.js.map +1 -1
- package/lib/account/TransferTransaction.cjs +57 -9
- package/lib/account/TransferTransaction.d.ts +31 -1
- package/lib/account/TransferTransaction.js +1 -1
- package/lib/account/TransferTransaction.js.map +1 -1
- package/lib/browser.js +1 -1
- package/lib/client/Client.cjs +38 -0
- package/lib/client/Client.d.ts +30 -0
- package/lib/client/Client.js +1 -1
- package/lib/client/Client.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/contract/ContractCreateTransaction.cjs +37 -1
- package/lib/contract/ContractCreateTransaction.d.ts +21 -0
- package/lib/contract/ContractCreateTransaction.js +1 -1
- package/lib/contract/ContractCreateTransaction.js.map +1 -1
- package/lib/contract/ContractUpdateTransaction.cjs +74 -1
- package/lib/contract/ContractUpdateTransaction.d.ts +43 -0
- package/lib/contract/ContractUpdateTransaction.js +1 -1
- package/lib/contract/ContractUpdateTransaction.js.map +1 -1
- package/lib/exports.cjs +103 -0
- package/lib/exports.d.ts +13 -0
- package/lib/exports.js +1 -1
- package/lib/exports.js.map +1 -1
- package/lib/hooks/EvmHook.cjs +84 -0
- package/lib/hooks/EvmHook.d.ts +51 -0
- package/lib/hooks/EvmHook.js +2 -0
- package/lib/hooks/EvmHook.js.map +1 -0
- package/lib/hooks/EvmHookCall.cjs +103 -0
- package/lib/hooks/EvmHookCall.d.ts +69 -0
- package/lib/hooks/EvmHookCall.js +2 -0
- package/lib/hooks/EvmHookCall.js.map +1 -0
- package/lib/hooks/EvmHookMappingEntry.cjs +135 -0
- package/lib/hooks/EvmHookMappingEntry.d.ts +84 -0
- package/lib/hooks/EvmHookMappingEntry.js +2 -0
- package/lib/hooks/EvmHookMappingEntry.js.map +1 -0
- package/lib/hooks/EvmHookStorageUpdate.cjs +238 -0
- package/lib/hooks/EvmHookStorageUpdate.d.ts +144 -0
- package/lib/hooks/EvmHookStorageUpdate.js +2 -0
- package/lib/hooks/EvmHookStorageUpdate.js.map +1 -0
- package/lib/hooks/FungibleHookCall.cjs +67 -0
- package/lib/hooks/FungibleHookCall.d.ts +50 -0
- package/lib/hooks/FungibleHookCall.js +2 -0
- package/lib/hooks/FungibleHookCall.js.map +1 -0
- package/lib/hooks/FungibleHookType.cjs +11 -0
- package/lib/hooks/FungibleHookType.d.ts +5 -0
- package/lib/hooks/FungibleHookType.js +2 -0
- package/lib/hooks/FungibleHookType.js.map +1 -0
- package/lib/hooks/HookCall.cjs +99 -0
- package/lib/hooks/HookCall.d.ts +64 -0
- package/lib/hooks/HookCall.js +2 -0
- package/lib/hooks/HookCall.js.map +1 -0
- package/lib/hooks/HookCreationDetails.cjs +149 -0
- package/lib/hooks/HookCreationDetails.d.ts +91 -0
- package/lib/hooks/HookCreationDetails.js +2 -0
- package/lib/hooks/HookCreationDetails.js.map +1 -0
- package/lib/hooks/HookEntityId.cjs +67 -0
- package/lib/hooks/HookEntityId.d.ts +41 -0
- package/lib/hooks/HookEntityId.js +2 -0
- package/lib/hooks/HookEntityId.js.map +1 -0
- package/lib/hooks/HookExtensionPoint.cjs +31 -0
- package/lib/hooks/HookExtensionPoint.d.ts +16 -0
- package/lib/hooks/HookExtensionPoint.js +2 -0
- package/lib/hooks/HookExtensionPoint.js.map +1 -0
- package/lib/hooks/HookId.cjs +101 -0
- package/lib/hooks/HookId.d.ts +63 -0
- package/lib/hooks/HookId.js +2 -0
- package/lib/hooks/HookId.js.map +1 -0
- package/lib/hooks/HookStoreTransaction.cjs +157 -0
- package/lib/hooks/HookStoreTransaction.d.ts +77 -0
- package/lib/hooks/HookStoreTransaction.js +2 -0
- package/lib/hooks/HookStoreTransaction.js.map +1 -0
- package/lib/hooks/NftHookCall.cjs +67 -0
- package/lib/hooks/NftHookCall.d.ts +50 -0
- package/lib/hooks/NftHookCall.js +2 -0
- package/lib/hooks/NftHookCall.js.map +1 -0
- package/lib/hooks/NftHookType.cjs +13 -0
- package/lib/hooks/NftHookType.d.ts +7 -0
- package/lib/hooks/NftHookType.js +2 -0
- package/lib/hooks/NftHookType.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/native.js +1 -1
- package/lib/token/AbstractTokenTransferTransaction.cjs +17 -5
- package/lib/token/AbstractTokenTransferTransaction.d.ts +13 -2
- package/lib/token/AbstractTokenTransferTransaction.js +1 -1
- package/lib/token/AbstractTokenTransferTransaction.js.map +1 -1
- package/lib/token/TokenAirdropTransaction.cjs +1 -1
- package/lib/token/TokenAirdropTransaction.js +1 -1
- package/lib/token/TokenAirdropTransaction.js.map +1 -1
- package/lib/token/TokenNftTransfer.cjs +51 -2
- package/lib/token/TokenNftTransfer.d.ts +7 -0
- package/lib/token/TokenNftTransfer.js +1 -1
- package/lib/token/TokenNftTransfer.js.map +1 -1
- package/lib/token/TokenTransfer.cjs +26 -2
- package/lib/token/TokenTransfer.d.ts +4 -0
- package/lib/token/TokenTransfer.js +1 -1
- package/lib/token/TokenTransfer.js.map +1 -1
- package/lib/transaction/Transaction.cjs +2 -1
- package/lib/transaction/Transaction.js +1 -1
- package/lib/transaction/Transaction.js.map +1 -1
- package/lib/transaction/TransactionResponse.cjs +82 -9
- package/lib/transaction/TransactionResponse.d.ts +33 -2
- package/lib/transaction/TransactionResponse.js +1 -1
- package/lib/transaction/TransactionResponse.js.map +1 -1
- package/lib/version.js +1 -1
- package/package.json +15 -13
- package/src/Executable.js +10 -7
- package/src/PublicKey.js +53 -36
- package/src/RequestType.js +18 -0
- package/src/Status.js +201 -252
- package/src/Transfer.js +33 -1
- package/src/account/AccountCreateTransaction.js +39 -0
- package/src/account/AccountUpdateTransaction.js +78 -0
- package/src/account/TransferTransaction.js +84 -8
- package/src/client/Client.js +38 -0
- 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/contract/ContractCreateTransaction.js +37 -0
- package/src/contract/ContractUpdateTransaction.js +80 -0
- package/src/exports.js +17 -0
- package/src/hooks/EvmHook.js +83 -0
- package/src/hooks/EvmHookCall.js +100 -0
- package/src/hooks/EvmHookMappingEntry.js +140 -0
- package/src/hooks/EvmHookStorageUpdate.js +257 -0
- package/src/hooks/FungibleHookCall.js +65 -0
- package/src/hooks/FungibleHookType.js +6 -0
- package/src/hooks/HookCall.js +97 -0
- package/src/hooks/HookCreationDetails.js +155 -0
- package/src/hooks/HookEntityId.js +67 -0
- package/src/hooks/HookExtensionPoint.js +25 -0
- package/src/hooks/HookId.js +102 -0
- package/src/hooks/HookStoreTransaction.js +185 -0
- package/src/hooks/NftHookCall.js +64 -0
- package/src/hooks/NftHookType.js +8 -0
- package/src/token/AbstractTokenTransferTransaction.js +16 -1
- package/src/token/TokenAirdropTransaction.js +1 -0
- package/src/token/TokenNftTransfer.js +68 -1
- package/src/token/TokenTransfer.js +34 -1
- package/src/transaction/Transaction.js +3 -0
- package/src/transaction/TransactionResponse.js +98 -13
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{NetworkName}from"./exports.js";export{default as LocalProvider}from"./LocalProvider.js";export{default as Client}from"./client/NodeClient.js";export{default as AddressBookQuery}from"./network/AddressBookQuery.js";export{default as Cache}from"./Cache.js";export{default as PrivateKey}from"./PrivateKey.js";export{default as PublicKey}from"./PublicKey.js";export{default as KeyList}from"./KeyList.js";export{default as Key}from"./Key.js";export{default as Mnemonic}from"./Mnemonic.js";export{default as TokenAirdropTransaction}from"./token/TokenAirdropTransaction.js";export{default as TokenClaimAirdropTransaction}from"./token/TokenClaimAirdropTransaction.js";export{default as TokenCancelAirdropTransaction}from"./token/TokenCancelAirdropTransaction.js";export{default as AccountAllowanceAdjustTransaction}from"./account/AccountAllowanceAdjustTransaction.js";export{default as AccountAllowanceApproveTransaction}from"./account/AccountAllowanceApproveTransaction.js";export{default as AccountAllowanceDeleteTransaction}from"./account/AccountAllowanceDeleteTransaction.js";export{default as AccountBalance}from"./account/AccountBalance.js";export{default as AccountBalanceQuery}from"./account/AccountBalanceQuery.js";export{default as AccountCreateTransaction}from"./account/AccountCreateTransaction.js";export{default as AccountDeleteTransaction}from"./account/AccountDeleteTransaction.js";export{default as AccountId}from"./account/AccountId.js";export{default as AccountInfo}from"./account/AccountInfo.js";export{default as AccountInfoFlow}from"./account/AccountInfoFlow.js";export{default as AccountInfoQuery}from"./account/AccountInfoQuery.js";export{default as AccountRecordsQuery}from"./account/AccountRecordsQuery.js";export{default as AccountUpdateTransaction}from"./account/AccountUpdateTransaction.js";export{default as AssessedCustomFee}from"./token/AssessedCustomFee.js";export{default as BatchTransaction}from"./transaction/BatchTransaction.js";export{default as ContractByteCodeQuery}from"./contract/ContractByteCodeQuery.js";export{default as ContractCallQuery}from"./contract/ContractCallQuery.js";export{default as ContractCreateFlow}from"./contract/ContractCreateFlow.js";export{default as ContractCreateTransaction}from"./contract/ContractCreateTransaction.js";export{default as ContractDeleteTransaction}from"./contract/ContractDeleteTransaction.js";export{default as ContractExecuteTransaction}from"./contract/ContractExecuteTransaction.js";export{default as ContractFunctionParameters}from"./contract/ContractFunctionParameters.js";export{default as ContractFunctionResult}from"./contract/ContractFunctionResult.js";export{default as ContractFunctionSelector}from"./contract/ContractFunctionSelector.js";export{default as ContractId}from"./contract/ContractId.js";export{default as ContractInfo}from"./contract/ContractInfo.js";export{default as ContractInfoQuery}from"./contract/ContractInfoQuery.js";export{default as ContractLogInfo}from"./contract/ContractLogInfo.js";export{default as ContractNonceInfo}from"./contract/ContractNonceInfo.js";export{default as ContractUpdateTransaction}from"./contract/ContractUpdateTransaction.js";export{default as CustomFee}from"./token/CustomFee.js";export{default as CustomFixedFee}from"./token/CustomFixedFee.js";export{default as CustomFractionalFee}from"./token/CustomFractionalFee.js";export{default as CustomRoyaltyFee}from"./token/CustomRoyaltyFee.js";export{default as DelegateContractId}from"./contract/DelegateContractId.js";export{default as EthereumTransaction}from"./EthereumTransaction.js";export{default as EthereumTransactionDataLegacy}from"./EthereumTransactionDataLegacy.js";export{default as EthereumTransactionDataEip1559}from"./EthereumTransactionDataEip1559.js";export{default as EthereumTransactionDataEip2930}from"./EthereumTransactionDataEip2930.js";export{default as EthereumTransactionDataEip7702}from"./EthereumTransactionDataEip7702.js";export{default as EthereumTransactionData}from"./EthereumTransactionData.js";export{default as EthereumFlow}from"./EthereumFlow.js";export{default as EvmAddress}from"./EvmAddress.js";export{default as ExchangeRate}from"./ExchangeRate.js";export{default as ExchangeRates}from"./ExchangeRates.js";export{default as Executable}from"./Executable.js";export{default as FeeAssessmentMethod}from"./token/FeeAssessmentMethod.js";export{default as FeeComponents}from"./FeeComponents.js";export{default as FeeData}from"./FeeData.js";export{default as FeeDataType}from"./FeeDataType.js";export{default as FeeSchedule}from"./FeeSchedule.js";export{default as FeeSchedules}from"./FeeSchedules.js";export{default as FileAppendTransaction}from"./file/FileAppendTransaction.js";export{default as FileContentsQuery}from"./file/FileContentsQuery.js";export{default as FileCreateTransaction}from"./file/FileCreateTransaction.js";export{default as FileDeleteTransaction}from"./file/FileDeleteTransaction.js";export{default as FileId}from"./file/FileId.js";export{default as FileInfo}from"./file/FileInfo.js";export{default as FileInfoQuery}from"./file/FileInfoQuery.js";export{default as FileUpdateTransaction}from"./file/FileUpdateTransaction.js";export{default as FreezeTransaction}from"./system/FreezeTransaction.js";export{default as Hbar}from"./Hbar.js";export{default as HbarAllowance}from"./account/HbarAllowance.js";export{default as HbarUnit}from"./HbarUnit.js";export{default as LiveHash}from"./account/LiveHash.js";export{default as LiveHashAddTransaction}from"./account/LiveHashAddTransaction.js";export{default as LiveHashDeleteTransaction}from"./account/LiveHashDeleteTransaction.js";export{default as LiveHashQuery}from"./account/LiveHashQuery.js";export{default as MaxQueryPaymentExceeded}from"./MaxQueryPaymentExceeded.js";export{default as MirrorNodeContractCallQuery}from"./query/MirrorNodeContractCallQuery.js";export{default as MirrorNodeContractEstimateQuery}from"./query/MirrorNodeContractEstimateQuery.js";export{default as NodeAddressBook}from"./address_book/NodeAddressBook.js";export{default as NetworkVersionInfo}from"./network/NetworkVersionInfo.js";export{default as NetworkVersionInfoQuery}from"./network/NetworkVersionInfoQuery.js";export{default as NftId}from"./token/NftId.js";export{default as PendingAirdropId}from"./token/PendingAirdropId.js";export{default as PrngTransaction}from"./PrngTransaction.js";export{default as ProxyStaker}from"./account/ProxyStaker.js";export{default as Query}from"./query/Query.js";export{default as RequestType}from"./RequestType.js";export{default as ScheduleCreateTransaction}from"./schedule/ScheduleCreateTransaction.js";export{default as ScheduleDeleteTransaction}from"./schedule/ScheduleDeleteTransaction.js";export{default as ScheduleId}from"./schedule/ScheduleId.js";export{default as ScheduleInfo}from"./schedule/ScheduleInfo.js";export{default as ScheduleInfoQuery}from"./schedule/ScheduleInfoQuery.js";export{default as ScheduleSignTransaction}from"./schedule/ScheduleSignTransaction.js";export{default as SemanticVersion}from"./network/SemanticVersion.js";export{default as SignatureMap}from"./transaction/SignatureMap.js";export{default as SignerSignature}from"./SignerSignature.js";export{default as Status}from"./Status.js";export{default as SubscriptionHandle}from"./topic/SubscriptionHandle.js";export{default as SystemDeleteTransaction}from"./system/SystemDeleteTransaction.js";export{default as SystemUndeleteTransaction}from"./system/SystemUndeleteTransaction.js";export{default as Timestamp}from"./Timestamp.js";export{default as TokenAllowance}from"./account/TokenAllowance.js";export{default as TokenAssociateTransaction}from"./token/TokenAssociateTransaction.js";export{default as TokenBurnTransaction}from"./token/TokenBurnTransaction.js";export{default as TokenRejectTransaction}from"./token/TokenRejectTransaction.js";export{default as TokenRejectFlow}from"./token/TokenRejectFlow.js";export{default as TokenCreateTransaction}from"./token/TokenCreateTransaction.js";export{default as TokenDeleteTransaction}from"./token/TokenDeleteTransaction.js";export{default as TokenDissociateTransaction}from"./token/TokenDissociateTransaction.js";export{default as TokenFeeScheduleUpdateTransaction}from"./token/TokenFeeScheduleUpdateTransaction.js";export{default as TokenFreezeTransaction}from"./token/TokenFreezeTransaction.js";export{default as TokenGrantKycTransaction}from"./token/TokenGrantKycTransaction.js";export{default as TokenId}from"./token/TokenId.js";export{default as TokenInfo}from"./token/TokenInfo.js";export{default as TokenInfoQuery}from"./token/TokenInfoQuery.js";export{default as TokenMintTransaction}from"./token/TokenMintTransaction.js";export{default as TokenNftAllowance}from"./account/TokenNftAllowance.js";export{default as TokenNftInfo}from"./token/TokenNftInfo.js";export{default as TokenNftInfoQuery}from"./token/TokenNftInfoQuery.js";export{default as TokenPauseTransaction}from"./token/TokenPauseTransaction.js";export{default as TokenRevokeKycTransaction}from"./token/TokenRevokeKycTransaction.js";export{default as TokenSupplyType}from"./token/TokenSupplyType.js";export{default as TokenType}from"./token/TokenType.js";export{default as TokenUnfreezeTransaction}from"./token/TokenUnfreezeTransaction.js";export{default as TokenUnpauseTransaction}from"./token/TokenUnpauseTransaction.js";export{default as TokenUpdateTransaction}from"./token/TokenUpdateTransaction.js";export{default as TokenWipeTransaction}from"./token/TokenWipeTransaction.js";export{default as TopicCreateTransaction}from"./topic/TopicCreateTransaction.js";export{default as TopicDeleteTransaction}from"./topic/TopicDeleteTransaction.js";export{default as TopicId}from"./topic/TopicId.js";export{default as TopicInfo}from"./topic/TopicInfo.js";export{default as TopicInfoQuery}from"./topic/TopicInfoQuery.js";export{default as TopicMessage}from"./topic/TopicMessage.js";export{default as TopicMessageChunk}from"./topic/TopicMessageChunk.js";export{default as TopicMessageQuery}from"./topic/TopicMessageQuery.js";export{default as TopicMessageSubmitTransaction}from"./topic/TopicMessageSubmitTransaction.js";export{default as TopicUpdateTransaction}from"./topic/TopicUpdateTransaction.js";export{default as CustomFeeLimit}from"./transaction/CustomFeeLimit.js";export{default as Transaction}from"./transaction/Transaction.js";export{default as TransactionFeeSchedule}from"./TransactionFeeSchedule.js";export{default as TransactionId}from"./transaction/TransactionId.js";export{default as TransactionReceipt}from"./transaction/TransactionReceipt.js";export{default as TransactionReceiptQuery}from"./transaction/TransactionReceiptQuery.js";export{default as TransactionRecord}from"./transaction/TransactionRecord.js";export{default as TransactionRecordQuery}from"./transaction/TransactionRecordQuery.js";export{default as TransactionResponse}from"./transaction/TransactionResponse.js";export{default as Transfer}from"./Transfer.js";export{default as TransferTransaction}from"./account/TransferTransaction.js";export{default as Wallet}from"./Wallet.js";export{default as Logger}from"./logger/Logger.js";export{default as LogLevel}from"./logger/LogLevel.js";export{default as FreezeType}from"./FreezeType.js";export{default as TokenKeyValidation}from"./token/TokenKeyValidation.js";export{default as StatusError}from"./StatusError.js";export{default as MaxAttemptsOrTimeoutError}from"./MaxAttemptsOrTimeoutError.js";export{default as PrecheckStatusError}from"./PrecheckStatusError.js";export{default as ReceiptStatusError}from"./ReceiptStatusError.js";export{default as LedgerId}from"./LedgerId.js";export{default as TokenUpdateNftsTransaction}from"./token/TokenUpdateNftsTransaction.js";export{default as NodeCreateTransaction}from"./node/NodeCreateTransaction.js";export{default as ServiceEndpoint}from"./node/ServiceEndpoint.js";export{default as NodeDeleteTransaction}from"./node/NodeDeleteTransaction.js";export{default as NodeUpdateTransaction}from"./node/NodeUpdateTransaction.js";export{default as WebClient}from"./client/WebClient.js";export{BadKeyError,BadMnemonicError,BadMnemonicReason,HEDERA_PATH,SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH}from"@hiero-ledger/cryptography";export{default as Provider}from"./Provider.js";export{default as Signer}from"./Signer.js";export{default as Long}from"long";import*as e from"./EntityIdHelper.js";export{e as EntityIdHelper};
|
|
1
|
+
export{NetworkName}from"./exports.js";export{default as LocalProvider}from"./LocalProvider.js";export{default as Client}from"./client/NodeClient.js";export{default as AddressBookQuery}from"./network/AddressBookQuery.js";export{default as Cache}from"./Cache.js";export{default as PrivateKey}from"./PrivateKey.js";export{default as PublicKey}from"./PublicKey.js";export{default as KeyList}from"./KeyList.js";export{default as Key}from"./Key.js";export{default as Mnemonic}from"./Mnemonic.js";export{default as TokenAirdropTransaction}from"./token/TokenAirdropTransaction.js";export{default as TokenClaimAirdropTransaction}from"./token/TokenClaimAirdropTransaction.js";export{default as TokenCancelAirdropTransaction}from"./token/TokenCancelAirdropTransaction.js";export{default as AccountAllowanceAdjustTransaction}from"./account/AccountAllowanceAdjustTransaction.js";export{default as AccountAllowanceApproveTransaction}from"./account/AccountAllowanceApproveTransaction.js";export{default as AccountAllowanceDeleteTransaction}from"./account/AccountAllowanceDeleteTransaction.js";export{default as AccountBalance}from"./account/AccountBalance.js";export{default as AccountBalanceQuery}from"./account/AccountBalanceQuery.js";export{default as AccountCreateTransaction}from"./account/AccountCreateTransaction.js";export{default as AccountDeleteTransaction}from"./account/AccountDeleteTransaction.js";export{default as AccountId}from"./account/AccountId.js";export{default as AccountInfo}from"./account/AccountInfo.js";export{default as AccountInfoFlow}from"./account/AccountInfoFlow.js";export{default as AccountInfoQuery}from"./account/AccountInfoQuery.js";export{default as AccountRecordsQuery}from"./account/AccountRecordsQuery.js";export{default as AccountUpdateTransaction}from"./account/AccountUpdateTransaction.js";export{default as AssessedCustomFee}from"./token/AssessedCustomFee.js";export{default as BatchTransaction}from"./transaction/BatchTransaction.js";export{default as ContractByteCodeQuery}from"./contract/ContractByteCodeQuery.js";export{default as ContractCallQuery}from"./contract/ContractCallQuery.js";export{default as ContractCreateFlow}from"./contract/ContractCreateFlow.js";export{default as ContractCreateTransaction}from"./contract/ContractCreateTransaction.js";export{default as ContractDeleteTransaction}from"./contract/ContractDeleteTransaction.js";export{default as ContractExecuteTransaction}from"./contract/ContractExecuteTransaction.js";export{default as ContractFunctionParameters}from"./contract/ContractFunctionParameters.js";export{default as ContractFunctionResult}from"./contract/ContractFunctionResult.js";export{default as ContractFunctionSelector}from"./contract/ContractFunctionSelector.js";export{default as ContractId}from"./contract/ContractId.js";export{default as ContractInfo}from"./contract/ContractInfo.js";export{default as ContractInfoQuery}from"./contract/ContractInfoQuery.js";export{default as ContractLogInfo}from"./contract/ContractLogInfo.js";export{default as ContractNonceInfo}from"./contract/ContractNonceInfo.js";export{default as ContractUpdateTransaction}from"./contract/ContractUpdateTransaction.js";export{default as CustomFee}from"./token/CustomFee.js";export{default as CustomFixedFee}from"./token/CustomFixedFee.js";export{default as CustomFractionalFee}from"./token/CustomFractionalFee.js";export{default as CustomRoyaltyFee}from"./token/CustomRoyaltyFee.js";export{default as DelegateContractId}from"./contract/DelegateContractId.js";export{default as EthereumTransaction}from"./EthereumTransaction.js";export{default as EthereumTransactionDataLegacy}from"./EthereumTransactionDataLegacy.js";export{default as EthereumTransactionDataEip1559}from"./EthereumTransactionDataEip1559.js";export{default as EthereumTransactionDataEip2930}from"./EthereumTransactionDataEip2930.js";export{default as EthereumTransactionDataEip7702}from"./EthereumTransactionDataEip7702.js";export{default as EthereumTransactionData}from"./EthereumTransactionData.js";export{default as EthereumFlow}from"./EthereumFlow.js";export{default as EvmAddress}from"./EvmAddress.js";export{default as ExchangeRate}from"./ExchangeRate.js";export{default as ExchangeRates}from"./ExchangeRates.js";export{default as Executable}from"./Executable.js";export{default as FeeAssessmentMethod}from"./token/FeeAssessmentMethod.js";export{default as FeeComponents}from"./FeeComponents.js";export{default as FeeData}from"./FeeData.js";export{default as FeeDataType}from"./FeeDataType.js";export{default as FeeSchedule}from"./FeeSchedule.js";export{default as FeeSchedules}from"./FeeSchedules.js";export{default as FileAppendTransaction}from"./file/FileAppendTransaction.js";export{default as HookCreationDetails}from"./hooks/HookCreationDetails.js";export{default as EvmHook}from"./hooks/EvmHook.js";export{default as FungibleHookCall}from"./hooks/FungibleHookCall.js";export{default as NftHookCall}from"./hooks/NftHookCall.js";export{default as EvmHookCall}from"./hooks/EvmHookCall.js";export{default as FungibleHookType}from"./hooks/FungibleHookType.js";export{default as NftHookType}from"./hooks/NftHookType.js";export{default as HookId}from"./hooks/HookId.js";export{default as HookEntityId}from"./hooks/HookEntityId.js";export{default as HookStoreTransaction}from"./hooks/HookStoreTransaction.js";export{default as EvmHookMappingEntry}from"./hooks/EvmHookMappingEntry.js";export{default as FileContentsQuery}from"./file/FileContentsQuery.js";export{default as FileCreateTransaction}from"./file/FileCreateTransaction.js";export{default as FileDeleteTransaction}from"./file/FileDeleteTransaction.js";export{default as FileId}from"./file/FileId.js";export{default as FileInfo}from"./file/FileInfo.js";export{default as FileInfoQuery}from"./file/FileInfoQuery.js";export{default as FileUpdateTransaction}from"./file/FileUpdateTransaction.js";export{default as FreezeTransaction}from"./system/FreezeTransaction.js";export{default as Hbar}from"./Hbar.js";export{default as HbarAllowance}from"./account/HbarAllowance.js";export{default as HbarUnit}from"./HbarUnit.js";export{default as LiveHash}from"./account/LiveHash.js";export{default as LiveHashAddTransaction}from"./account/LiveHashAddTransaction.js";export{default as LiveHashDeleteTransaction}from"./account/LiveHashDeleteTransaction.js";export{default as LiveHashQuery}from"./account/LiveHashQuery.js";export{default as MaxQueryPaymentExceeded}from"./MaxQueryPaymentExceeded.js";export{default as MirrorNodeContractCallQuery}from"./query/MirrorNodeContractCallQuery.js";export{default as MirrorNodeContractEstimateQuery}from"./query/MirrorNodeContractEstimateQuery.js";export{default as NodeAddressBook}from"./address_book/NodeAddressBook.js";export{default as NetworkVersionInfo}from"./network/NetworkVersionInfo.js";export{default as NetworkVersionInfoQuery}from"./network/NetworkVersionInfoQuery.js";export{default as NftId}from"./token/NftId.js";export{default as PendingAirdropId}from"./token/PendingAirdropId.js";export{default as PrngTransaction}from"./PrngTransaction.js";export{default as ProxyStaker}from"./account/ProxyStaker.js";export{default as Query}from"./query/Query.js";export{default as RequestType}from"./RequestType.js";export{default as ScheduleCreateTransaction}from"./schedule/ScheduleCreateTransaction.js";export{default as ScheduleDeleteTransaction}from"./schedule/ScheduleDeleteTransaction.js";export{default as ScheduleId}from"./schedule/ScheduleId.js";export{default as ScheduleInfo}from"./schedule/ScheduleInfo.js";export{default as ScheduleInfoQuery}from"./schedule/ScheduleInfoQuery.js";export{default as ScheduleSignTransaction}from"./schedule/ScheduleSignTransaction.js";export{default as SemanticVersion}from"./network/SemanticVersion.js";export{default as SignatureMap}from"./transaction/SignatureMap.js";export{default as SignerSignature}from"./SignerSignature.js";export{default as Status}from"./Status.js";export{default as SubscriptionHandle}from"./topic/SubscriptionHandle.js";export{default as SystemDeleteTransaction}from"./system/SystemDeleteTransaction.js";export{default as SystemUndeleteTransaction}from"./system/SystemUndeleteTransaction.js";export{default as Timestamp}from"./Timestamp.js";export{default as TokenAllowance}from"./account/TokenAllowance.js";export{default as TokenAssociateTransaction}from"./token/TokenAssociateTransaction.js";export{default as TokenBurnTransaction}from"./token/TokenBurnTransaction.js";export{default as TokenRejectTransaction}from"./token/TokenRejectTransaction.js";export{default as TokenRejectFlow}from"./token/TokenRejectFlow.js";export{default as TokenCreateTransaction}from"./token/TokenCreateTransaction.js";export{default as TokenDeleteTransaction}from"./token/TokenDeleteTransaction.js";export{default as TokenDissociateTransaction}from"./token/TokenDissociateTransaction.js";export{default as TokenFeeScheduleUpdateTransaction}from"./token/TokenFeeScheduleUpdateTransaction.js";export{default as TokenFreezeTransaction}from"./token/TokenFreezeTransaction.js";export{default as TokenGrantKycTransaction}from"./token/TokenGrantKycTransaction.js";export{default as TokenId}from"./token/TokenId.js";export{default as TokenInfo}from"./token/TokenInfo.js";export{default as TokenInfoQuery}from"./token/TokenInfoQuery.js";export{default as TokenMintTransaction}from"./token/TokenMintTransaction.js";export{default as TokenNftAllowance}from"./account/TokenNftAllowance.js";export{default as TokenNftInfo}from"./token/TokenNftInfo.js";export{default as TokenNftInfoQuery}from"./token/TokenNftInfoQuery.js";export{default as TokenPauseTransaction}from"./token/TokenPauseTransaction.js";export{default as TokenRevokeKycTransaction}from"./token/TokenRevokeKycTransaction.js";export{default as TokenSupplyType}from"./token/TokenSupplyType.js";export{default as TokenType}from"./token/TokenType.js";export{default as TokenUnfreezeTransaction}from"./token/TokenUnfreezeTransaction.js";export{default as TokenUnpauseTransaction}from"./token/TokenUnpauseTransaction.js";export{default as TokenUpdateTransaction}from"./token/TokenUpdateTransaction.js";export{default as TokenWipeTransaction}from"./token/TokenWipeTransaction.js";export{default as TopicCreateTransaction}from"./topic/TopicCreateTransaction.js";export{default as TopicDeleteTransaction}from"./topic/TopicDeleteTransaction.js";export{default as TopicId}from"./topic/TopicId.js";export{default as TopicInfo}from"./topic/TopicInfo.js";export{default as TopicInfoQuery}from"./topic/TopicInfoQuery.js";export{default as TopicMessage}from"./topic/TopicMessage.js";export{default as TopicMessageChunk}from"./topic/TopicMessageChunk.js";export{default as TopicMessageQuery}from"./topic/TopicMessageQuery.js";export{default as TopicMessageSubmitTransaction}from"./topic/TopicMessageSubmitTransaction.js";export{default as TopicUpdateTransaction}from"./topic/TopicUpdateTransaction.js";export{default as CustomFeeLimit}from"./transaction/CustomFeeLimit.js";export{default as Transaction}from"./transaction/Transaction.js";export{default as TransactionFeeSchedule}from"./TransactionFeeSchedule.js";export{default as TransactionId}from"./transaction/TransactionId.js";export{default as TransactionReceipt}from"./transaction/TransactionReceipt.js";export{default as TransactionReceiptQuery}from"./transaction/TransactionReceiptQuery.js";export{default as TransactionRecord}from"./transaction/TransactionRecord.js";export{default as TransactionRecordQuery}from"./transaction/TransactionRecordQuery.js";export{default as TransactionResponse}from"./transaction/TransactionResponse.js";export{default as Transfer}from"./Transfer.js";export{default as TransferTransaction}from"./account/TransferTransaction.js";export{default as Wallet}from"./Wallet.js";export{default as Logger}from"./logger/Logger.js";export{default as LogLevel}from"./logger/LogLevel.js";export{default as FreezeType}from"./FreezeType.js";export{default as TokenKeyValidation}from"./token/TokenKeyValidation.js";export{default as StatusError}from"./StatusError.js";export{default as MaxAttemptsOrTimeoutError}from"./MaxAttemptsOrTimeoutError.js";export{default as PrecheckStatusError}from"./PrecheckStatusError.js";export{default as ReceiptStatusError}from"./ReceiptStatusError.js";export{default as LedgerId}from"./LedgerId.js";export{default as TokenUpdateNftsTransaction}from"./token/TokenUpdateNftsTransaction.js";export{default as NodeCreateTransaction}from"./node/NodeCreateTransaction.js";export{default as ServiceEndpoint}from"./node/ServiceEndpoint.js";export{default as NodeDeleteTransaction}from"./node/NodeDeleteTransaction.js";export{default as NodeUpdateTransaction}from"./node/NodeUpdateTransaction.js";export{default as WebClient}from"./client/WebClient.js";export{BadKeyError,BadMnemonicError,BadMnemonicReason,HEDERA_PATH,SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH}from"@hiero-ledger/cryptography";export{HookExtensionPoint}from"./hooks/HookExtensionPoint.js";export{EvmHookMappingEntries,EvmHookStorageSlot,EvmHookStorageUpdate}from"./hooks/EvmHookStorageUpdate.js";export{default as Provider}from"./Provider.js";export{default as Signer}from"./Signer.js";export{default as Long}from"long";import*as e from"./EntityIdHelper.js";export{e as EntityIdHelper};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/native.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{NetworkName}from"./exports.js";export{default as Client}from"./client/NativeClient.js";export{default as AddressBookQuery}from"./network/AddressBookQueryWeb.js";export{default as Cache}from"./Cache.js";export{default as PrivateKey}from"./PrivateKey.js";export{default as PublicKey}from"./PublicKey.js";export{default as KeyList}from"./KeyList.js";export{default as Key}from"./Key.js";export{default as Mnemonic}from"./Mnemonic.js";export{default as TokenAirdropTransaction}from"./token/TokenAirdropTransaction.js";export{default as TokenClaimAirdropTransaction}from"./token/TokenClaimAirdropTransaction.js";export{default as TokenCancelAirdropTransaction}from"./token/TokenCancelAirdropTransaction.js";export{default as AccountAllowanceAdjustTransaction}from"./account/AccountAllowanceAdjustTransaction.js";export{default as AccountAllowanceApproveTransaction}from"./account/AccountAllowanceApproveTransaction.js";export{default as AccountAllowanceDeleteTransaction}from"./account/AccountAllowanceDeleteTransaction.js";export{default as AccountBalance}from"./account/AccountBalance.js";export{default as AccountBalanceQuery}from"./account/AccountBalanceQuery.js";export{default as AccountCreateTransaction}from"./account/AccountCreateTransaction.js";export{default as AccountDeleteTransaction}from"./account/AccountDeleteTransaction.js";export{default as AccountId}from"./account/AccountId.js";export{default as AccountInfo}from"./account/AccountInfo.js";export{default as AccountInfoFlow}from"./account/AccountInfoFlow.js";export{default as AccountInfoQuery}from"./account/AccountInfoQuery.js";export{default as AccountRecordsQuery}from"./account/AccountRecordsQuery.js";export{default as AccountUpdateTransaction}from"./account/AccountUpdateTransaction.js";export{default as AssessedCustomFee}from"./token/AssessedCustomFee.js";export{default as BatchTransaction}from"./transaction/BatchTransaction.js";export{default as ContractByteCodeQuery}from"./contract/ContractByteCodeQuery.js";export{default as ContractCallQuery}from"./contract/ContractCallQuery.js";export{default as ContractCreateFlow}from"./contract/ContractCreateFlow.js";export{default as ContractCreateTransaction}from"./contract/ContractCreateTransaction.js";export{default as ContractDeleteTransaction}from"./contract/ContractDeleteTransaction.js";export{default as ContractExecuteTransaction}from"./contract/ContractExecuteTransaction.js";export{default as ContractFunctionParameters}from"./contract/ContractFunctionParameters.js";export{default as ContractFunctionResult}from"./contract/ContractFunctionResult.js";export{default as ContractFunctionSelector}from"./contract/ContractFunctionSelector.js";export{default as ContractId}from"./contract/ContractId.js";export{default as ContractInfo}from"./contract/ContractInfo.js";export{default as ContractInfoQuery}from"./contract/ContractInfoQuery.js";export{default as ContractLogInfo}from"./contract/ContractLogInfo.js";export{default as ContractNonceInfo}from"./contract/ContractNonceInfo.js";export{default as ContractUpdateTransaction}from"./contract/ContractUpdateTransaction.js";export{default as CustomFee}from"./token/CustomFee.js";export{default as CustomFixedFee}from"./token/CustomFixedFee.js";export{default as CustomFractionalFee}from"./token/CustomFractionalFee.js";export{default as CustomRoyaltyFee}from"./token/CustomRoyaltyFee.js";export{default as DelegateContractId}from"./contract/DelegateContractId.js";export{default as EthereumTransaction}from"./EthereumTransaction.js";export{default as EthereumTransactionDataLegacy}from"./EthereumTransactionDataLegacy.js";export{default as EthereumTransactionDataEip1559}from"./EthereumTransactionDataEip1559.js";export{default as EthereumTransactionDataEip2930}from"./EthereumTransactionDataEip2930.js";export{default as EthereumTransactionDataEip7702}from"./EthereumTransactionDataEip7702.js";export{default as EthereumTransactionData}from"./EthereumTransactionData.js";export{default as EthereumFlow}from"./EthereumFlow.js";export{default as EvmAddress}from"./EvmAddress.js";export{default as ExchangeRate}from"./ExchangeRate.js";export{default as ExchangeRates}from"./ExchangeRates.js";export{default as Executable}from"./Executable.js";export{default as FeeAssessmentMethod}from"./token/FeeAssessmentMethod.js";export{default as FeeComponents}from"./FeeComponents.js";export{default as FeeData}from"./FeeData.js";export{default as FeeDataType}from"./FeeDataType.js";export{default as FeeSchedule}from"./FeeSchedule.js";export{default as FeeSchedules}from"./FeeSchedules.js";export{default as FileAppendTransaction}from"./file/FileAppendTransaction.js";export{default as FileContentsQuery}from"./file/FileContentsQuery.js";export{default as FileCreateTransaction}from"./file/FileCreateTransaction.js";export{default as FileDeleteTransaction}from"./file/FileDeleteTransaction.js";export{default as FileId}from"./file/FileId.js";export{default as FileInfo}from"./file/FileInfo.js";export{default as FileInfoQuery}from"./file/FileInfoQuery.js";export{default as FileUpdateTransaction}from"./file/FileUpdateTransaction.js";export{default as FreezeTransaction}from"./system/FreezeTransaction.js";export{default as Hbar}from"./Hbar.js";export{default as HbarAllowance}from"./account/HbarAllowance.js";export{default as HbarUnit}from"./HbarUnit.js";export{default as LiveHash}from"./account/LiveHash.js";export{default as LiveHashAddTransaction}from"./account/LiveHashAddTransaction.js";export{default as LiveHashDeleteTransaction}from"./account/LiveHashDeleteTransaction.js";export{default as LiveHashQuery}from"./account/LiveHashQuery.js";export{default as MaxQueryPaymentExceeded}from"./MaxQueryPaymentExceeded.js";export{default as MirrorNodeContractCallQuery}from"./query/MirrorNodeContractCallQuery.js";export{default as MirrorNodeContractEstimateQuery}from"./query/MirrorNodeContractEstimateQuery.js";export{default as NodeAddressBook}from"./address_book/NodeAddressBook.js";export{default as NetworkVersionInfo}from"./network/NetworkVersionInfo.js";export{default as NetworkVersionInfoQuery}from"./network/NetworkVersionInfoQuery.js";export{default as NftId}from"./token/NftId.js";export{default as PendingAirdropId}from"./token/PendingAirdropId.js";export{default as PrngTransaction}from"./PrngTransaction.js";export{default as ProxyStaker}from"./account/ProxyStaker.js";export{default as Query}from"./query/Query.js";export{default as RequestType}from"./RequestType.js";export{default as ScheduleCreateTransaction}from"./schedule/ScheduleCreateTransaction.js";export{default as ScheduleDeleteTransaction}from"./schedule/ScheduleDeleteTransaction.js";export{default as ScheduleId}from"./schedule/ScheduleId.js";export{default as ScheduleInfo}from"./schedule/ScheduleInfo.js";export{default as ScheduleInfoQuery}from"./schedule/ScheduleInfoQuery.js";export{default as ScheduleSignTransaction}from"./schedule/ScheduleSignTransaction.js";export{default as SemanticVersion}from"./network/SemanticVersion.js";export{default as SignatureMap}from"./transaction/SignatureMap.js";export{default as SignerSignature}from"./SignerSignature.js";export{default as Status}from"./Status.js";export{default as SubscriptionHandle}from"./topic/SubscriptionHandle.js";export{default as SystemDeleteTransaction}from"./system/SystemDeleteTransaction.js";export{default as SystemUndeleteTransaction}from"./system/SystemUndeleteTransaction.js";export{default as Timestamp}from"./Timestamp.js";export{default as TokenAllowance}from"./account/TokenAllowance.js";export{default as TokenAssociateTransaction}from"./token/TokenAssociateTransaction.js";export{default as TokenBurnTransaction}from"./token/TokenBurnTransaction.js";export{default as TokenRejectTransaction}from"./token/TokenRejectTransaction.js";export{default as TokenRejectFlow}from"./token/TokenRejectFlow.js";export{default as TokenCreateTransaction}from"./token/TokenCreateTransaction.js";export{default as TokenDeleteTransaction}from"./token/TokenDeleteTransaction.js";export{default as TokenDissociateTransaction}from"./token/TokenDissociateTransaction.js";export{default as TokenFeeScheduleUpdateTransaction}from"./token/TokenFeeScheduleUpdateTransaction.js";export{default as TokenFreezeTransaction}from"./token/TokenFreezeTransaction.js";export{default as TokenGrantKycTransaction}from"./token/TokenGrantKycTransaction.js";export{default as TokenId}from"./token/TokenId.js";export{default as TokenInfo}from"./token/TokenInfo.js";export{default as TokenInfoQuery}from"./token/TokenInfoQuery.js";export{default as TokenMintTransaction}from"./token/TokenMintTransaction.js";export{default as TokenNftAllowance}from"./account/TokenNftAllowance.js";export{default as TokenNftInfo}from"./token/TokenNftInfo.js";export{default as TokenNftInfoQuery}from"./token/TokenNftInfoQuery.js";export{default as TokenPauseTransaction}from"./token/TokenPauseTransaction.js";export{default as TokenRevokeKycTransaction}from"./token/TokenRevokeKycTransaction.js";export{default as TokenSupplyType}from"./token/TokenSupplyType.js";export{default as TokenType}from"./token/TokenType.js";export{default as TokenUnfreezeTransaction}from"./token/TokenUnfreezeTransaction.js";export{default as TokenUnpauseTransaction}from"./token/TokenUnpauseTransaction.js";export{default as TokenUpdateTransaction}from"./token/TokenUpdateTransaction.js";export{default as TokenWipeTransaction}from"./token/TokenWipeTransaction.js";export{default as TopicCreateTransaction}from"./topic/TopicCreateTransaction.js";export{default as TopicDeleteTransaction}from"./topic/TopicDeleteTransaction.js";export{default as TopicId}from"./topic/TopicId.js";export{default as TopicInfo}from"./topic/TopicInfo.js";export{default as TopicInfoQuery}from"./topic/TopicInfoQuery.js";export{default as TopicMessage}from"./topic/TopicMessage.js";export{default as TopicMessageChunk}from"./topic/TopicMessageChunk.js";export{default as TopicMessageQuery}from"./topic/TopicMessageQuery.js";export{default as TopicMessageSubmitTransaction}from"./topic/TopicMessageSubmitTransaction.js";export{default as TopicUpdateTransaction}from"./topic/TopicUpdateTransaction.js";export{default as CustomFeeLimit}from"./transaction/CustomFeeLimit.js";export{default as Transaction}from"./transaction/Transaction.js";export{default as TransactionFeeSchedule}from"./TransactionFeeSchedule.js";export{default as TransactionId}from"./transaction/TransactionId.js";export{default as TransactionReceipt}from"./transaction/TransactionReceipt.js";export{default as TransactionReceiptQuery}from"./transaction/TransactionReceiptQuery.js";export{default as TransactionRecord}from"./transaction/TransactionRecord.js";export{default as TransactionRecordQuery}from"./transaction/TransactionRecordQuery.js";export{default as TransactionResponse}from"./transaction/TransactionResponse.js";export{default as Transfer}from"./Transfer.js";export{default as TransferTransaction}from"./account/TransferTransaction.js";export{default as Wallet}from"./Wallet.js";export{default as Logger}from"./logger/Logger.js";export{default as LogLevel}from"./logger/LogLevel.js";export{default as FreezeType}from"./FreezeType.js";export{default as TokenKeyValidation}from"./token/TokenKeyValidation.js";export{default as StatusError}from"./StatusError.js";export{default as MaxAttemptsOrTimeoutError}from"./MaxAttemptsOrTimeoutError.js";export{default as PrecheckStatusError}from"./PrecheckStatusError.js";export{default as ReceiptStatusError}from"./ReceiptStatusError.js";export{default as LedgerId}from"./LedgerId.js";export{default as TokenUpdateNftsTransaction}from"./token/TokenUpdateNftsTransaction.js";export{default as NodeCreateTransaction}from"./node/NodeCreateTransaction.js";export{default as ServiceEndpoint}from"./node/ServiceEndpoint.js";export{default as NodeDeleteTransaction}from"./node/NodeDeleteTransaction.js";export{default as NodeUpdateTransaction}from"./node/NodeUpdateTransaction.js";export{default as WebClient}from"./client/WebClient.js";export{BadKeyError,BadMnemonicError,BadMnemonicReason,HEDERA_PATH,SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH}from"@hiero-ledger/cryptography";export{default as Provider}from"./Provider.js";export{default as Signer}from"./Signer.js";export{default as Long}from"long";import*as e from"./EntityIdHelper.js";export{e as EntityIdHelper};
|
|
1
|
+
export{NetworkName}from"./exports.js";export{default as Client}from"./client/NativeClient.js";export{default as AddressBookQuery}from"./network/AddressBookQueryWeb.js";export{default as Cache}from"./Cache.js";export{default as PrivateKey}from"./PrivateKey.js";export{default as PublicKey}from"./PublicKey.js";export{default as KeyList}from"./KeyList.js";export{default as Key}from"./Key.js";export{default as Mnemonic}from"./Mnemonic.js";export{default as TokenAirdropTransaction}from"./token/TokenAirdropTransaction.js";export{default as TokenClaimAirdropTransaction}from"./token/TokenClaimAirdropTransaction.js";export{default as TokenCancelAirdropTransaction}from"./token/TokenCancelAirdropTransaction.js";export{default as AccountAllowanceAdjustTransaction}from"./account/AccountAllowanceAdjustTransaction.js";export{default as AccountAllowanceApproveTransaction}from"./account/AccountAllowanceApproveTransaction.js";export{default as AccountAllowanceDeleteTransaction}from"./account/AccountAllowanceDeleteTransaction.js";export{default as AccountBalance}from"./account/AccountBalance.js";export{default as AccountBalanceQuery}from"./account/AccountBalanceQuery.js";export{default as AccountCreateTransaction}from"./account/AccountCreateTransaction.js";export{default as AccountDeleteTransaction}from"./account/AccountDeleteTransaction.js";export{default as AccountId}from"./account/AccountId.js";export{default as AccountInfo}from"./account/AccountInfo.js";export{default as AccountInfoFlow}from"./account/AccountInfoFlow.js";export{default as AccountInfoQuery}from"./account/AccountInfoQuery.js";export{default as AccountRecordsQuery}from"./account/AccountRecordsQuery.js";export{default as AccountUpdateTransaction}from"./account/AccountUpdateTransaction.js";export{default as AssessedCustomFee}from"./token/AssessedCustomFee.js";export{default as BatchTransaction}from"./transaction/BatchTransaction.js";export{default as ContractByteCodeQuery}from"./contract/ContractByteCodeQuery.js";export{default as ContractCallQuery}from"./contract/ContractCallQuery.js";export{default as ContractCreateFlow}from"./contract/ContractCreateFlow.js";export{default as ContractCreateTransaction}from"./contract/ContractCreateTransaction.js";export{default as ContractDeleteTransaction}from"./contract/ContractDeleteTransaction.js";export{default as ContractExecuteTransaction}from"./contract/ContractExecuteTransaction.js";export{default as ContractFunctionParameters}from"./contract/ContractFunctionParameters.js";export{default as ContractFunctionResult}from"./contract/ContractFunctionResult.js";export{default as ContractFunctionSelector}from"./contract/ContractFunctionSelector.js";export{default as ContractId}from"./contract/ContractId.js";export{default as ContractInfo}from"./contract/ContractInfo.js";export{default as ContractInfoQuery}from"./contract/ContractInfoQuery.js";export{default as ContractLogInfo}from"./contract/ContractLogInfo.js";export{default as ContractNonceInfo}from"./contract/ContractNonceInfo.js";export{default as ContractUpdateTransaction}from"./contract/ContractUpdateTransaction.js";export{default as CustomFee}from"./token/CustomFee.js";export{default as CustomFixedFee}from"./token/CustomFixedFee.js";export{default as CustomFractionalFee}from"./token/CustomFractionalFee.js";export{default as CustomRoyaltyFee}from"./token/CustomRoyaltyFee.js";export{default as DelegateContractId}from"./contract/DelegateContractId.js";export{default as EthereumTransaction}from"./EthereumTransaction.js";export{default as EthereumTransactionDataLegacy}from"./EthereumTransactionDataLegacy.js";export{default as EthereumTransactionDataEip1559}from"./EthereumTransactionDataEip1559.js";export{default as EthereumTransactionDataEip2930}from"./EthereumTransactionDataEip2930.js";export{default as EthereumTransactionDataEip7702}from"./EthereumTransactionDataEip7702.js";export{default as EthereumTransactionData}from"./EthereumTransactionData.js";export{default as EthereumFlow}from"./EthereumFlow.js";export{default as EvmAddress}from"./EvmAddress.js";export{default as ExchangeRate}from"./ExchangeRate.js";export{default as ExchangeRates}from"./ExchangeRates.js";export{default as Executable}from"./Executable.js";export{default as FeeAssessmentMethod}from"./token/FeeAssessmentMethod.js";export{default as FeeComponents}from"./FeeComponents.js";export{default as FeeData}from"./FeeData.js";export{default as FeeDataType}from"./FeeDataType.js";export{default as FeeSchedule}from"./FeeSchedule.js";export{default as FeeSchedules}from"./FeeSchedules.js";export{default as FileAppendTransaction}from"./file/FileAppendTransaction.js";export{default as HookCreationDetails}from"./hooks/HookCreationDetails.js";export{default as EvmHook}from"./hooks/EvmHook.js";export{default as FungibleHookCall}from"./hooks/FungibleHookCall.js";export{default as NftHookCall}from"./hooks/NftHookCall.js";export{default as EvmHookCall}from"./hooks/EvmHookCall.js";export{default as FungibleHookType}from"./hooks/FungibleHookType.js";export{default as NftHookType}from"./hooks/NftHookType.js";export{default as HookId}from"./hooks/HookId.js";export{default as HookEntityId}from"./hooks/HookEntityId.js";export{default as HookStoreTransaction}from"./hooks/HookStoreTransaction.js";export{default as EvmHookMappingEntry}from"./hooks/EvmHookMappingEntry.js";export{default as FileContentsQuery}from"./file/FileContentsQuery.js";export{default as FileCreateTransaction}from"./file/FileCreateTransaction.js";export{default as FileDeleteTransaction}from"./file/FileDeleteTransaction.js";export{default as FileId}from"./file/FileId.js";export{default as FileInfo}from"./file/FileInfo.js";export{default as FileInfoQuery}from"./file/FileInfoQuery.js";export{default as FileUpdateTransaction}from"./file/FileUpdateTransaction.js";export{default as FreezeTransaction}from"./system/FreezeTransaction.js";export{default as Hbar}from"./Hbar.js";export{default as HbarAllowance}from"./account/HbarAllowance.js";export{default as HbarUnit}from"./HbarUnit.js";export{default as LiveHash}from"./account/LiveHash.js";export{default as LiveHashAddTransaction}from"./account/LiveHashAddTransaction.js";export{default as LiveHashDeleteTransaction}from"./account/LiveHashDeleteTransaction.js";export{default as LiveHashQuery}from"./account/LiveHashQuery.js";export{default as MaxQueryPaymentExceeded}from"./MaxQueryPaymentExceeded.js";export{default as MirrorNodeContractCallQuery}from"./query/MirrorNodeContractCallQuery.js";export{default as MirrorNodeContractEstimateQuery}from"./query/MirrorNodeContractEstimateQuery.js";export{default as NodeAddressBook}from"./address_book/NodeAddressBook.js";export{default as NetworkVersionInfo}from"./network/NetworkVersionInfo.js";export{default as NetworkVersionInfoQuery}from"./network/NetworkVersionInfoQuery.js";export{default as NftId}from"./token/NftId.js";export{default as PendingAirdropId}from"./token/PendingAirdropId.js";export{default as PrngTransaction}from"./PrngTransaction.js";export{default as ProxyStaker}from"./account/ProxyStaker.js";export{default as Query}from"./query/Query.js";export{default as RequestType}from"./RequestType.js";export{default as ScheduleCreateTransaction}from"./schedule/ScheduleCreateTransaction.js";export{default as ScheduleDeleteTransaction}from"./schedule/ScheduleDeleteTransaction.js";export{default as ScheduleId}from"./schedule/ScheduleId.js";export{default as ScheduleInfo}from"./schedule/ScheduleInfo.js";export{default as ScheduleInfoQuery}from"./schedule/ScheduleInfoQuery.js";export{default as ScheduleSignTransaction}from"./schedule/ScheduleSignTransaction.js";export{default as SemanticVersion}from"./network/SemanticVersion.js";export{default as SignatureMap}from"./transaction/SignatureMap.js";export{default as SignerSignature}from"./SignerSignature.js";export{default as Status}from"./Status.js";export{default as SubscriptionHandle}from"./topic/SubscriptionHandle.js";export{default as SystemDeleteTransaction}from"./system/SystemDeleteTransaction.js";export{default as SystemUndeleteTransaction}from"./system/SystemUndeleteTransaction.js";export{default as Timestamp}from"./Timestamp.js";export{default as TokenAllowance}from"./account/TokenAllowance.js";export{default as TokenAssociateTransaction}from"./token/TokenAssociateTransaction.js";export{default as TokenBurnTransaction}from"./token/TokenBurnTransaction.js";export{default as TokenRejectTransaction}from"./token/TokenRejectTransaction.js";export{default as TokenRejectFlow}from"./token/TokenRejectFlow.js";export{default as TokenCreateTransaction}from"./token/TokenCreateTransaction.js";export{default as TokenDeleteTransaction}from"./token/TokenDeleteTransaction.js";export{default as TokenDissociateTransaction}from"./token/TokenDissociateTransaction.js";export{default as TokenFeeScheduleUpdateTransaction}from"./token/TokenFeeScheduleUpdateTransaction.js";export{default as TokenFreezeTransaction}from"./token/TokenFreezeTransaction.js";export{default as TokenGrantKycTransaction}from"./token/TokenGrantKycTransaction.js";export{default as TokenId}from"./token/TokenId.js";export{default as TokenInfo}from"./token/TokenInfo.js";export{default as TokenInfoQuery}from"./token/TokenInfoQuery.js";export{default as TokenMintTransaction}from"./token/TokenMintTransaction.js";export{default as TokenNftAllowance}from"./account/TokenNftAllowance.js";export{default as TokenNftInfo}from"./token/TokenNftInfo.js";export{default as TokenNftInfoQuery}from"./token/TokenNftInfoQuery.js";export{default as TokenPauseTransaction}from"./token/TokenPauseTransaction.js";export{default as TokenRevokeKycTransaction}from"./token/TokenRevokeKycTransaction.js";export{default as TokenSupplyType}from"./token/TokenSupplyType.js";export{default as TokenType}from"./token/TokenType.js";export{default as TokenUnfreezeTransaction}from"./token/TokenUnfreezeTransaction.js";export{default as TokenUnpauseTransaction}from"./token/TokenUnpauseTransaction.js";export{default as TokenUpdateTransaction}from"./token/TokenUpdateTransaction.js";export{default as TokenWipeTransaction}from"./token/TokenWipeTransaction.js";export{default as TopicCreateTransaction}from"./topic/TopicCreateTransaction.js";export{default as TopicDeleteTransaction}from"./topic/TopicDeleteTransaction.js";export{default as TopicId}from"./topic/TopicId.js";export{default as TopicInfo}from"./topic/TopicInfo.js";export{default as TopicInfoQuery}from"./topic/TopicInfoQuery.js";export{default as TopicMessage}from"./topic/TopicMessage.js";export{default as TopicMessageChunk}from"./topic/TopicMessageChunk.js";export{default as TopicMessageQuery}from"./topic/TopicMessageQuery.js";export{default as TopicMessageSubmitTransaction}from"./topic/TopicMessageSubmitTransaction.js";export{default as TopicUpdateTransaction}from"./topic/TopicUpdateTransaction.js";export{default as CustomFeeLimit}from"./transaction/CustomFeeLimit.js";export{default as Transaction}from"./transaction/Transaction.js";export{default as TransactionFeeSchedule}from"./TransactionFeeSchedule.js";export{default as TransactionId}from"./transaction/TransactionId.js";export{default as TransactionReceipt}from"./transaction/TransactionReceipt.js";export{default as TransactionReceiptQuery}from"./transaction/TransactionReceiptQuery.js";export{default as TransactionRecord}from"./transaction/TransactionRecord.js";export{default as TransactionRecordQuery}from"./transaction/TransactionRecordQuery.js";export{default as TransactionResponse}from"./transaction/TransactionResponse.js";export{default as Transfer}from"./Transfer.js";export{default as TransferTransaction}from"./account/TransferTransaction.js";export{default as Wallet}from"./Wallet.js";export{default as Logger}from"./logger/Logger.js";export{default as LogLevel}from"./logger/LogLevel.js";export{default as FreezeType}from"./FreezeType.js";export{default as TokenKeyValidation}from"./token/TokenKeyValidation.js";export{default as StatusError}from"./StatusError.js";export{default as MaxAttemptsOrTimeoutError}from"./MaxAttemptsOrTimeoutError.js";export{default as PrecheckStatusError}from"./PrecheckStatusError.js";export{default as ReceiptStatusError}from"./ReceiptStatusError.js";export{default as LedgerId}from"./LedgerId.js";export{default as TokenUpdateNftsTransaction}from"./token/TokenUpdateNftsTransaction.js";export{default as NodeCreateTransaction}from"./node/NodeCreateTransaction.js";export{default as ServiceEndpoint}from"./node/ServiceEndpoint.js";export{default as NodeDeleteTransaction}from"./node/NodeDeleteTransaction.js";export{default as NodeUpdateTransaction}from"./node/NodeUpdateTransaction.js";export{default as WebClient}from"./client/WebClient.js";export{BadKeyError,BadMnemonicError,BadMnemonicReason,HEDERA_PATH,SLIP44_ECDSA_ETH_PATH,SLIP44_ECDSA_HEDERA_PATH}from"@hiero-ledger/cryptography";export{HookExtensionPoint}from"./hooks/HookExtensionPoint.js";export{EvmHookMappingEntries,EvmHookStorageSlot,EvmHookStorageUpdate}from"./hooks/EvmHookStorageUpdate.js";export{default as Provider}from"./Provider.js";export{default as Signer}from"./Signer.js";export{default as Long}from"long";import*as e from"./EntityIdHelper.js";export{e as EntityIdHelper};
|
|
2
2
|
//# sourceMappingURL=native.js.map
|
|
@@ -27,6 +27,12 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
27
27
|
* @typedef {import("@hiero-ledger/proto").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* @typedef {import("../hooks/HookCall.js").default} HookCall
|
|
32
|
+
* @typedef {import("../hooks/FungibleHookCall.js").default} FungibleHookCall
|
|
33
|
+
* @typedef {import("../hooks/NftHookCall.js").default} NftHookCall
|
|
34
|
+
*/
|
|
35
|
+
|
|
30
36
|
/**
|
|
31
37
|
* @typedef {object} TransferTokensInput
|
|
32
38
|
* @property {TokenId | string} tokenId
|
|
@@ -87,9 +93,10 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
|
|
|
87
93
|
* @param {number | Long | BigNumber | bigint} amount
|
|
88
94
|
* @param {boolean} isApproved
|
|
89
95
|
* @param {number | null} expectedDecimals
|
|
96
|
+
* @param {FungibleHookCall} [hookCall]
|
|
90
97
|
* @returns {this}
|
|
91
98
|
*/
|
|
92
|
-
_addTokenTransfer(tokenId, accountId, amount, isApproved, expectedDecimals) {
|
|
99
|
+
_addTokenTransfer(tokenId, accountId, amount, isApproved, expectedDecimals, hookCall) {
|
|
93
100
|
this._requireNotFrozen();
|
|
94
101
|
const token = tokenId instanceof _TokenId.default ? tokenId : _TokenId.default.fromString(tokenId);
|
|
95
102
|
const account = accountId instanceof _AccountId.default ? accountId : _AccountId.default.fromString(accountId);
|
|
@@ -104,9 +111,10 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
|
|
|
104
111
|
this._tokenTransfers.push(new _TokenTransfer.default({
|
|
105
112
|
tokenId,
|
|
106
113
|
accountId,
|
|
107
|
-
expectedDecimals
|
|
114
|
+
expectedDecimals,
|
|
108
115
|
amount,
|
|
109
|
-
isApproved
|
|
116
|
+
isApproved,
|
|
117
|
+
hookCall
|
|
110
118
|
}));
|
|
111
119
|
return this;
|
|
112
120
|
}
|
|
@@ -127,9 +135,11 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
|
|
|
127
135
|
* @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber
|
|
128
136
|
* @param {AccountId | string} receiverAccountIdOrSenderAccountId
|
|
129
137
|
* @param {(AccountId | string)=} receiver
|
|
138
|
+
* @param {NftHookCall=} senderHookCall
|
|
139
|
+
* @param {NftHookCall=} receiverHookCall
|
|
130
140
|
* @returns {this}
|
|
131
141
|
*/
|
|
132
|
-
_addNftTransfer(isApproved, tokenIdOrNftId, senderAccountIdOrSerialNumber, receiverAccountIdOrSenderAccountId, receiver) {
|
|
142
|
+
_addNftTransfer(isApproved, tokenIdOrNftId, senderAccountIdOrSerialNumber, receiverAccountIdOrSenderAccountId, receiver, senderHookCall, receiverHookCall) {
|
|
133
143
|
this._requireNotFrozen();
|
|
134
144
|
let nftId;
|
|
135
145
|
let senderAccountId;
|
|
@@ -171,7 +181,9 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
|
|
|
171
181
|
serialNumber: nftId.serial,
|
|
172
182
|
senderAccountId,
|
|
173
183
|
receiverAccountId,
|
|
174
|
-
isApproved
|
|
184
|
+
isApproved,
|
|
185
|
+
senderHookCall,
|
|
186
|
+
receiverHookCall
|
|
175
187
|
}));
|
|
176
188
|
return this;
|
|
177
189
|
}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* @namespace proto
|
|
6
6
|
* @typedef {import("@hiero-ledger/proto").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {import("../hooks/HookCall.js").default} HookCall
|
|
10
|
+
* @typedef {import("../hooks/FungibleHookCall.js").default} FungibleHookCall
|
|
11
|
+
* @typedef {import("../hooks/NftHookCall.js").default} NftHookCall
|
|
12
|
+
*/
|
|
8
13
|
/**
|
|
9
14
|
* @typedef {object} TransferTokensInput
|
|
10
15
|
* @property {TokenId | string} tokenId
|
|
@@ -52,9 +57,10 @@ export default class AbstractTokenTransferTransaction extends Transaction {
|
|
|
52
57
|
* @param {number | Long | BigNumber | bigint} amount
|
|
53
58
|
* @param {boolean} isApproved
|
|
54
59
|
* @param {number | null} expectedDecimals
|
|
60
|
+
* @param {FungibleHookCall} [hookCall]
|
|
55
61
|
* @returns {this}
|
|
56
62
|
*/
|
|
57
|
-
_addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint, isApproved: boolean, expectedDecimals: number | null): this;
|
|
63
|
+
_addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint, isApproved: boolean, expectedDecimals: number | null, hookCall?: FungibleHookCall): this;
|
|
58
64
|
/**
|
|
59
65
|
* @param {TokenId | string} tokenId
|
|
60
66
|
* @param {AccountId | string} accountId
|
|
@@ -68,9 +74,11 @@ export default class AbstractTokenTransferTransaction extends Transaction {
|
|
|
68
74
|
* @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber
|
|
69
75
|
* @param {AccountId | string} receiverAccountIdOrSenderAccountId
|
|
70
76
|
* @param {(AccountId | string)=} receiver
|
|
77
|
+
* @param {NftHookCall=} senderHookCall
|
|
78
|
+
* @param {NftHookCall=} receiverHookCall
|
|
71
79
|
* @returns {this}
|
|
72
80
|
*/
|
|
73
|
-
_addNftTransfer(isApproved: boolean, tokenIdOrNftId: NftId | TokenId | string, senderAccountIdOrSerialNumber: AccountId | string | Long | number, receiverAccountIdOrSenderAccountId: AccountId | string, receiver?: (AccountId | string) | undefined): this;
|
|
81
|
+
_addNftTransfer(isApproved: boolean, tokenIdOrNftId: NftId | TokenId | string, senderAccountIdOrSerialNumber: AccountId | string | Long | number, receiverAccountIdOrSenderAccountId: AccountId | string, receiver?: (AccountId | string) | undefined, senderHookCall?: NftHookCall | undefined, receiverHookCall?: NftHookCall | undefined): this;
|
|
74
82
|
/**
|
|
75
83
|
* @param {NftId | TokenId | string} tokenIdOrNftId
|
|
76
84
|
* @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber
|
|
@@ -119,6 +127,9 @@ export namespace HieroProto {
|
|
|
119
127
|
type ITokenAirdropTransactionBody = import("@hiero-ledger/proto").proto.ITokenAirdropTransactionBody;
|
|
120
128
|
}
|
|
121
129
|
}
|
|
130
|
+
export type HookCall = import("../hooks/HookCall.js").default;
|
|
131
|
+
export type FungibleHookCall = import("../hooks/FungibleHookCall.js").default;
|
|
132
|
+
export type NftHookCall = import("../hooks/NftHookCall.js").default;
|
|
122
133
|
export type TransferTokensInput = {
|
|
123
134
|
tokenId: TokenId | string;
|
|
124
135
|
accountId: AccountId | string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"./TokenTransfer.js";import n from"./TokenNftTransfer.js";import t from"./TokenId.js";import r from"./NftId.js";import s from"../account/AccountId.js";import o from"../transaction/Transaction.js";import a from"../account/NullableTokenDecimalMap.js";import f from"../account/TokenNftTransferMap.js";import c from"../account/TokenTransferMap.js";import i from"../account/TokenTransferAccountMap.js";import{convertAmountToLong as d}from"../util.js";class
|
|
1
|
+
import e from"./TokenTransfer.js";import n from"./TokenNftTransfer.js";import t from"./TokenId.js";import r from"./NftId.js";import s from"../account/AccountId.js";import o from"../transaction/Transaction.js";import a from"../account/NullableTokenDecimalMap.js";import f from"../account/TokenNftTransferMap.js";import c from"../account/TokenTransferMap.js";import i from"../account/TokenTransferAccountMap.js";import{convertAmountToLong as d}from"../util.js";class l extends o{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const n of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(n.tokenId,n.accountId,n.amount);for(const n of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(n.tokenId,n.serial,n.sender,n.recipient)}addNftTransfer(e,n,t,r){return this._addNftTransfer(!1,e,n,t,r)}_addTokenTransfer(n,r,o,a,f,c){this._requireNotFrozen();const i=n instanceof t?n:t.fromString(n),l=r instanceof s?r:s.fromString(r),u=d(o);for(const e of this._tokenTransfers)if(0===e.tokenId.compare(i)&&0===e.accountId.compare(l))return e.amount=e.amount.add(u),e.expectedDecimals=f,this;return this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:f,amount:o,isApproved:a,hookCall:c})),this}addTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!1,null)}_addNftTransfer(e,o,a,f,c,i,d){let l,u,m;if(this._requireNotFrozen(),o instanceof r)l=o,u="string"==typeof a?s.fromString(a):a,m="string"==typeof f?s.fromString(f):f;else if(o instanceof t)l=new r(o,a),u="string"==typeof f?s.fromString(f):f,m="string"==typeof c?s.fromString(c):c;else try{l=r.fromString(o),u="string"==typeof a?s.fromString(a):a,m="string"==typeof f?s.fromString(f):f}catch(e){const n=t.fromString(o);l=new r(n,a),u="string"==typeof f?s.fromString(f):f,m="string"==typeof c?s.fromString(c):c}for(const e of this._nftTransfers)if(0===e.tokenId.compare(l.tokenId)&&0===e.serialNumber.compare(l.serial))return e.senderAccountId=u,e.receiverAccountId=m,this;return this._nftTransfers.push(new n({tokenId:l.tokenId,serialNumber:l.serial,senderAccountId:u,receiverAccountId:m,isApproved:e,senderHookCall:i,receiverHookCall:d})),this}addApprovedNftTransfer(e,n,t,r){return this._addNftTransfer(!0,e,n,t,r)}addApprovedTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!0,null)}addTokenTransferWithDecimals(n,r,o,a){this._requireNotFrozen();const f=n instanceof t?n:t.fromString(n),c=r instanceof s?r:s.fromString(r),i=d(o);let l=!1;for(const e of this._tokenTransfers)if(0===e.tokenId.compare(f)){if(null!=e.expectedDecimals&&e.expectedDecimals!==a)throw new Error("expected decimals mis-match");e.expectedDecimals=a,0===e.accountId.compare(c)&&(e.amount=e.amount.add(i),e.expectedDecimals=a,l=!0)}return l||this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:a,amount:o,isApproved:!1})),this}get tokenIdDecimals(){const e=new a;for(const n of this._tokenTransfers)e._set(n.tokenId,n.expectedDecimals);return e}get nftTransfers(){const e=new f;for(const n of this._nftTransfers){const t=e.get(n.tokenId),r={sender:n.senderAccountId,recipient:n.receiverAccountId,serial:n.serialNumber,isApproved:n.isApproved};null!=t?t.push(r):e._set(n.tokenId,[r])}return e}get tokenTransfers(){const e=new c;for(const n of this._tokenTransfers){let t=e.get(n.tokenId);null!=t?t._set(n.accountId,n.amount):(t=new i,t._set(n.accountId,n.amount),e._set(n.tokenId,t))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort((e,n)=>{const t=e.tokenId.compare(n.tokenId);return 0!==t?t:e.accountId.compare(n.accountId)}),this._nftTransfers.sort((e,n)=>{const t=e.senderAccountId.compare(n.senderAccountId);if(0!=t)return t;const r=e.receiverAccountId.compare(n.receiverAccountId);return 0!=r?r:e.serialNumber.compare(n.serialNumber)});let n=0,t=0;for(;n<this._tokenTransfers.length||t<this._nftTransfers.length;)if(n<this._tokenTransfers.length&&t<this._nftTransfers.length){const r=this._tokenTransfers[n].tokenId,s=this._nftTransfers[t].tokenId,o=e.length>0?e[e.length-1]:null,a=null!=o?o.tokenId:null;if(null!=o&&null!=a&&0===a.compare(r)){o.transfers.push(this._tokenTransfers[n++]);continue}if(null!=o&&null!=a&&0===a.compare(s)){o.nftTransfers.push(this._nftTransfers[t++]);continue}const f=r.compare(s);0===f?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[this._nftTransfers[t++]]}):f<0?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]}):e.push({tokenId:s,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}else if(n<this._tokenTransfers.length){const t=this._tokenTransfers[n].tokenId;let r;for(const n of e)0===n.tokenId.compare(t)&&(r=n);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(t)){r.transfers.push(this._tokenTransfers[n++]);continue}e.push({tokenId:t,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]})}else if(t<this._nftTransfers.length){const n=this._nftTransfers[t].tokenId;let r;for(const t of e)0===t.tokenId.compare(n)&&(r=t);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(n)){r.nftTransfers.push(this._nftTransfers[t++]);continue}e.push({tokenId:n,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}return{tokenTransfers:e.map(e=>({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map(e=>e._toProtobuf()),nftTransfers:e.nftTransfers.map(e=>e._toProtobuf())}))}}}export{l as default};
|
|
2
2
|
//# sourceMappingURL=AbstractTokenTransferTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTokenTransferTransaction.js","sources":["../../src/token/AbstractTokenTransferTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport TokenNftTransfer from \"../token/TokenNftTransfer.js\";\nimport TokenId from \"./TokenId.js\";\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport NullableTokenDecimalMap from \"../account/NullableTokenDecimalMap.js\";\nimport TokenNftTransferMap from \"../account/TokenNftTransferMap.js\";\nimport TokenTransferMap from \"../account/TokenTransferMap.js\";\nimport TokenTransferAccountMap from \"../account/TokenTransferAccountMap.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n */\n\n/**\n * @typedef {object} TransferTokensInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} accountId\n * @property {Long | number | BigNumber | bigint} amount\n */\n\n/**\n * @typedef {object} TransferNftInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} sender\n * @property {AccountId | string} recipient\n * @property {Long | number} serial\n */\n\nexport default class AbstractTokenTransferTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {(TransferTokensInput)[]} [props.tokenTransfers]\n * @param {(TransferNftInput)[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @protected\n * @type {TokenTransfer[]}\n */\n this._tokenTransfers = [];\n\n /**\n * @protected\n * @type {TokenNftTransfer[]}\n */\n this._nftTransfers = [];\n\n for (const transfer of props.tokenTransfers != null\n ? props.tokenTransfers\n : []) {\n this.addTokenTransfer(\n transfer.tokenId,\n transfer.accountId,\n transfer.amount,\n );\n }\n\n for (const transfer of props.nftTransfers != null\n ? props.nftTransfers\n : []) {\n this.addNftTransfer(\n transfer.tokenId,\n transfer.serial,\n transfer.sender,\n transfer.recipient,\n );\n }\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n false,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @param {boolean} isApproved\n * @param {number | null} expectedDecimals\n * @returns {this}\n */\n _addTokenTransfer(\n tokenId,\n accountId,\n amount,\n isApproved,\n expectedDecimals,\n ) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = convertAmountToLong(amount);\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (\n tokenTransfer.tokenId.compare(token) === 0 &&\n tokenTransfer.accountId.compare(account) === 0\n ) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = expectedDecimals;\n return this;\n }\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals: expectedDecimals,\n amount,\n isApproved,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @returns {this}\n */\n addTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, false, null);\n }\n\n /**\n * @param {boolean} isApproved\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n _addNftTransfer(\n isApproved,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n this._requireNotFrozen();\n\n let nftId;\n let senderAccountId;\n let receiverAccountId;\n\n if (tokenIdOrNftId instanceof NftId) {\n nftId = tokenIdOrNftId;\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (senderAccountIdOrSerialNumber);\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } else if (tokenIdOrNftId instanceof TokenId) {\n nftId = new NftId(\n tokenIdOrNftId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n } else {\n try {\n nftId = NftId.fromString(tokenIdOrNftId);\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (\n senderAccountIdOrSerialNumber\n );\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } catch (_) {\n const tokenId = TokenId.fromString(tokenIdOrNftId);\n nftId = new NftId(\n tokenId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n }\n }\n\n for (const nftTransfer of this._nftTransfers) {\n if (\n nftTransfer.tokenId.compare(nftId.tokenId) === 0 &&\n nftTransfer.serialNumber.compare(nftId.serial) === 0\n ) {\n nftTransfer.senderAccountId = senderAccountId;\n nftTransfer.receiverAccountId = receiverAccountId;\n return this;\n }\n }\n\n this._nftTransfers.push(\n new TokenNftTransfer({\n tokenId: nftId.tokenId,\n serialNumber: nftId.serial,\n senderAccountId,\n receiverAccountId,\n isApproved,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addApprovedNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n true,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @returns {this}\n */\n addApprovedTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, true, null);\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @param {number} decimals\n * @returns {this}\n */\n addTokenTransferWithDecimals(tokenId, accountId, amount, decimals) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = convertAmountToLong(amount);\n\n let found = false;\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (tokenTransfer.tokenId.compare(token) === 0) {\n if (\n tokenTransfer.expectedDecimals != null &&\n tokenTransfer.expectedDecimals !== decimals\n ) {\n throw new Error(\"expected decimals mis-match\");\n } else {\n tokenTransfer.expectedDecimals = decimals;\n }\n\n if (tokenTransfer.accountId.compare(account) === 0) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = decimals;\n found = true;\n }\n }\n }\n\n if (found) {\n return this;\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals: decimals,\n amount,\n isApproved: false,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {NullableTokenDecimalMap}\n */\n get tokenIdDecimals() {\n const map = new NullableTokenDecimalMap();\n\n for (const transfer of this._tokenTransfers) {\n map._set(transfer.tokenId, transfer.expectedDecimals);\n }\n\n return map;\n }\n\n /**\n * @returns {TokenNftTransferMap}\n */\n get nftTransfers() {\n const map = new TokenNftTransferMap();\n\n for (const transfer of this._nftTransfers) {\n const transferList = map.get(transfer.tokenId);\n\n const nftTransfer = {\n sender: transfer.senderAccountId,\n recipient: transfer.receiverAccountId,\n serial: transfer.serialNumber,\n isApproved: transfer.isApproved,\n };\n\n if (transferList != null) {\n transferList.push(nftTransfer);\n } else {\n map._set(transfer.tokenId, [nftTransfer]);\n }\n }\n\n return map;\n }\n\n /**\n * @returns {TokenTransferMap}\n */\n get tokenTransfers() {\n const map = new TokenTransferMap();\n\n for (const transfer of this._tokenTransfers) {\n let transferMap = map.get(transfer.tokenId);\n\n if (transferMap != null) {\n transferMap._set(transfer.accountId, transfer.amount);\n } else {\n transferMap = new TokenTransferAccountMap();\n transferMap._set(transfer.accountId, transfer.amount);\n map._set(transfer.tokenId, transferMap);\n }\n }\n\n return map;\n }\n\n /**\n * @override\n * @protected\n * @returns {HieroProto.proto.ITokenAirdropTransactionBody}\n */\n _makeTransactionData() {\n /** @type {{tokenId: TokenId; expectedDecimals: number | null; transfers: TokenTransfer[]; nftTransfers: TokenNftTransfer[];}[]} */\n const tokenTransferList = [];\n\n this._tokenTransfers.sort((a, b) => {\n const compare = a.tokenId.compare(b.tokenId);\n\n if (compare !== 0) {\n return compare;\n }\n\n return a.accountId.compare(b.accountId);\n });\n\n this._nftTransfers.sort((a, b) => {\n const senderComparision = a.senderAccountId.compare(\n b.senderAccountId,\n );\n if (senderComparision != 0) {\n return senderComparision;\n }\n\n const recipientComparision = a.receiverAccountId.compare(\n b.receiverAccountId,\n );\n if (recipientComparision != 0) {\n return recipientComparision;\n }\n\n return a.serialNumber.compare(b.serialNumber);\n });\n\n let i = 0;\n let j = 0;\n while (\n i < this._tokenTransfers.length ||\n j < this._nftTransfers.length\n ) {\n if (\n i < this._tokenTransfers.length &&\n j < this._nftTransfers.length\n ) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n const jTokenId = this._nftTransfers[j].tokenId;\n\n const last =\n tokenTransferList.length > 0\n ? tokenTransferList[tokenTransferList.length - 1]\n : null;\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n const result = iTokenId.compare(jTokenId);\n\n if (result === 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [this._nftTransfers[j++]],\n });\n } else if (result < 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else {\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n } else if (i < this._tokenTransfers.length) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(iTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals: this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else if (j < this._nftTransfers.length) {\n const jTokenId = this._nftTransfers[j].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(jTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n }\n\n return {\n tokenTransfers: tokenTransferList.map((tokenTransfer) => {\n return {\n token: tokenTransfer.tokenId._toProtobuf(),\n expectedDecimals:\n tokenTransfer.expectedDecimals != null\n ? { value: tokenTransfer.expectedDecimals }\n : null,\n transfers: tokenTransfer.transfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n nftTransfers: tokenTransfer.nftTransfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n };\n }),\n };\n }\n}\n"],"names":["AbstractTokenTransferTransaction","Transaction","constructor","props","super","this","_tokenTransfers","_nftTransfers","transfer","tokenTransfers","addTokenTransfer","tokenId","accountId","amount","nftTransfers","addNftTransfer","serial","sender","recipient","tokenIdOrNftId","senderAccountIdOrSerialNumber","receiverAccountIdOrSenderAccountId","receiver","_addNftTransfer","_addTokenTransfer","isApproved","expectedDecimals","_requireNotFrozen","token","TokenId","fromString","account","AccountId","value","convertAmountToLong","tokenTransfer","compare","add","push","TokenTransfer","nftId","senderAccountId","receiverAccountId","NftId","_","nftTransfer","serialNumber","TokenNftTransfer","addApprovedNftTransfer","addApprovedTokenTransfer","addTokenTransferWithDecimals","decimals","found","Error","tokenIdDecimals","map","NullableTokenDecimalMap","_set","TokenNftTransferMap","transferList","get","TokenTransferMap","transferMap","TokenTransferAccountMap","_makeTransactionData","tokenTransferList","sort","a","b","senderComparision","recipientComparision","i","j","length","iTokenId","jTokenId","last","lastTokenId","transfers","result","_toProtobuf"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AbstractTokenTransferTransaction.js","sources":["../../src/token/AbstractTokenTransferTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport TokenNftTransfer from \"../token/TokenNftTransfer.js\";\nimport TokenId from \"./TokenId.js\";\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport NullableTokenDecimalMap from \"../account/NullableTokenDecimalMap.js\";\nimport TokenNftTransferMap from \"../account/TokenNftTransferMap.js\";\nimport TokenTransferMap from \"../account/TokenTransferMap.js\";\nimport TokenTransferAccountMap from \"../account/TokenTransferAccountMap.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n */\n\n/**\n * @typedef {import(\"../hooks/HookCall.js\").default} HookCall\n * @typedef {import(\"../hooks/FungibleHookCall.js\").default} FungibleHookCall\n * @typedef {import(\"../hooks/NftHookCall.js\").default} NftHookCall\n */\n\n/**\n * @typedef {object} TransferTokensInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} accountId\n * @property {Long | number | BigNumber | bigint} amount\n */\n\n/**\n * @typedef {object} TransferNftInput\n * @property {TokenId | string} tokenId\n * @property {AccountId | string} sender\n * @property {AccountId | string} recipient\n * @property {Long | number} serial\n */\n\nexport default class AbstractTokenTransferTransaction extends Transaction {\n /**\n * @param {object} [props]\n * @param {(TransferTokensInput)[]} [props.tokenTransfers]\n * @param {(TransferNftInput)[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n /**\n * @protected\n * @type {TokenTransfer[]}\n */\n this._tokenTransfers = [];\n\n /**\n * @protected\n * @type {TokenNftTransfer[]}\n */\n this._nftTransfers = [];\n\n for (const transfer of props.tokenTransfers != null\n ? props.tokenTransfers\n : []) {\n this.addTokenTransfer(\n transfer.tokenId,\n transfer.accountId,\n transfer.amount,\n );\n }\n\n for (const transfer of props.nftTransfers != null\n ? props.nftTransfers\n : []) {\n this.addNftTransfer(\n transfer.tokenId,\n transfer.serial,\n transfer.sender,\n transfer.recipient,\n );\n }\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n false,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @param {boolean} isApproved\n * @param {number | null} expectedDecimals\n * @param {FungibleHookCall} [hookCall]\n * @returns {this}\n */\n _addTokenTransfer(\n tokenId,\n accountId,\n amount,\n isApproved,\n expectedDecimals,\n hookCall,\n ) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = convertAmountToLong(amount);\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (\n tokenTransfer.tokenId.compare(token) === 0 &&\n tokenTransfer.accountId.compare(account) === 0\n ) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = expectedDecimals;\n return this;\n }\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals,\n amount,\n isApproved,\n hookCall,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @returns {this}\n */\n addTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, false, null);\n }\n\n /**\n * @param {boolean} isApproved\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @param {NftHookCall=} senderHookCall\n * @param {NftHookCall=} receiverHookCall\n * @returns {this}\n */\n _addNftTransfer(\n isApproved,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n senderHookCall,\n receiverHookCall,\n ) {\n this._requireNotFrozen();\n\n let nftId;\n let senderAccountId;\n let receiverAccountId;\n\n if (tokenIdOrNftId instanceof NftId) {\n nftId = tokenIdOrNftId;\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (senderAccountIdOrSerialNumber);\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } else if (tokenIdOrNftId instanceof TokenId) {\n nftId = new NftId(\n tokenIdOrNftId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(receiverAccountIdOrSenderAccountId)\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n } else {\n try {\n nftId = NftId.fromString(tokenIdOrNftId);\n senderAccountId =\n typeof senderAccountIdOrSerialNumber === \"string\"\n ? AccountId.fromString(senderAccountIdOrSerialNumber)\n : /** @type {AccountId} */ (\n senderAccountIdOrSerialNumber\n );\n receiverAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n } catch (_) {\n const tokenId = TokenId.fromString(tokenIdOrNftId);\n nftId = new NftId(\n tokenId,\n /** @type {Long} */ (senderAccountIdOrSerialNumber),\n );\n senderAccountId =\n typeof receiverAccountIdOrSenderAccountId === \"string\"\n ? AccountId.fromString(\n receiverAccountIdOrSenderAccountId,\n )\n : /** @type {AccountId} */ (\n receiverAccountIdOrSenderAccountId\n );\n receiverAccountId =\n typeof receiver === \"string\"\n ? AccountId.fromString(receiver)\n : /** @type {AccountId} */ (receiver);\n }\n }\n\n for (const nftTransfer of this._nftTransfers) {\n if (\n nftTransfer.tokenId.compare(nftId.tokenId) === 0 &&\n nftTransfer.serialNumber.compare(nftId.serial) === 0\n ) {\n nftTransfer.senderAccountId = senderAccountId;\n nftTransfer.receiverAccountId = receiverAccountId;\n return this;\n }\n }\n\n this._nftTransfers.push(\n new TokenNftTransfer({\n tokenId: nftId.tokenId,\n serialNumber: nftId.serial,\n senderAccountId,\n receiverAccountId,\n isApproved,\n senderHookCall,\n receiverHookCall,\n }),\n );\n\n return this;\n }\n\n /**\n * @param {NftId | TokenId | string} tokenIdOrNftId\n * @param {AccountId | string | Long | number} senderAccountIdOrSerialNumber\n * @param {AccountId | string} receiverAccountIdOrSenderAccountId\n * @param {(AccountId | string)=} receiver\n * @returns {this}\n */\n addApprovedNftTransfer(\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n ) {\n return this._addNftTransfer(\n true,\n tokenIdOrNftId,\n senderAccountIdOrSerialNumber,\n receiverAccountIdOrSenderAccountId,\n receiver,\n );\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @returns {this}\n */\n addApprovedTokenTransfer(tokenId, accountId, amount) {\n return this._addTokenTransfer(tokenId, accountId, amount, true, null);\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @param {AccountId | string} accountId\n * @param {number | Long | BigNumber | bigint} amount\n * @param {number} decimals\n * @returns {this}\n */\n addTokenTransferWithDecimals(tokenId, accountId, amount, decimals) {\n this._requireNotFrozen();\n\n const token =\n tokenId instanceof TokenId ? tokenId : TokenId.fromString(tokenId);\n const account =\n accountId instanceof AccountId\n ? accountId\n : AccountId.fromString(accountId);\n const value = convertAmountToLong(amount);\n\n let found = false;\n\n for (const tokenTransfer of this._tokenTransfers) {\n if (tokenTransfer.tokenId.compare(token) === 0) {\n if (\n tokenTransfer.expectedDecimals != null &&\n tokenTransfer.expectedDecimals !== decimals\n ) {\n throw new Error(\"expected decimals mis-match\");\n } else {\n tokenTransfer.expectedDecimals = decimals;\n }\n\n if (tokenTransfer.accountId.compare(account) === 0) {\n tokenTransfer.amount = tokenTransfer.amount.add(value);\n tokenTransfer.expectedDecimals = decimals;\n found = true;\n }\n }\n }\n\n if (found) {\n return this;\n }\n\n this._tokenTransfers.push(\n new TokenTransfer({\n tokenId,\n accountId,\n expectedDecimals: decimals,\n amount,\n isApproved: false,\n }),\n );\n\n return this;\n }\n\n /**\n * @returns {NullableTokenDecimalMap}\n */\n get tokenIdDecimals() {\n const map = new NullableTokenDecimalMap();\n\n for (const transfer of this._tokenTransfers) {\n map._set(transfer.tokenId, transfer.expectedDecimals);\n }\n\n return map;\n }\n\n /**\n * @returns {TokenNftTransferMap}\n */\n get nftTransfers() {\n const map = new TokenNftTransferMap();\n\n for (const transfer of this._nftTransfers) {\n const transferList = map.get(transfer.tokenId);\n\n const nftTransfer = {\n sender: transfer.senderAccountId,\n recipient: transfer.receiverAccountId,\n serial: transfer.serialNumber,\n isApproved: transfer.isApproved,\n };\n\n if (transferList != null) {\n transferList.push(nftTransfer);\n } else {\n map._set(transfer.tokenId, [nftTransfer]);\n }\n }\n\n return map;\n }\n\n /**\n * @returns {TokenTransferMap}\n */\n get tokenTransfers() {\n const map = new TokenTransferMap();\n\n for (const transfer of this._tokenTransfers) {\n let transferMap = map.get(transfer.tokenId);\n\n if (transferMap != null) {\n transferMap._set(transfer.accountId, transfer.amount);\n } else {\n transferMap = new TokenTransferAccountMap();\n transferMap._set(transfer.accountId, transfer.amount);\n map._set(transfer.tokenId, transferMap);\n }\n }\n\n return map;\n }\n\n /**\n * @override\n * @protected\n * @returns {HieroProto.proto.ITokenAirdropTransactionBody}\n */\n _makeTransactionData() {\n /** @type {{tokenId: TokenId; expectedDecimals: number | null; transfers: TokenTransfer[]; nftTransfers: TokenNftTransfer[];}[]} */\n const tokenTransferList = [];\n\n this._tokenTransfers.sort((a, b) => {\n const compare = a.tokenId.compare(b.tokenId);\n\n if (compare !== 0) {\n return compare;\n }\n\n return a.accountId.compare(b.accountId);\n });\n\n this._nftTransfers.sort((a, b) => {\n const senderComparision = a.senderAccountId.compare(\n b.senderAccountId,\n );\n if (senderComparision != 0) {\n return senderComparision;\n }\n\n const recipientComparision = a.receiverAccountId.compare(\n b.receiverAccountId,\n );\n if (recipientComparision != 0) {\n return recipientComparision;\n }\n\n return a.serialNumber.compare(b.serialNumber);\n });\n\n let i = 0;\n let j = 0;\n while (\n i < this._tokenTransfers.length ||\n j < this._nftTransfers.length\n ) {\n if (\n i < this._tokenTransfers.length &&\n j < this._nftTransfers.length\n ) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n const jTokenId = this._nftTransfers[j].tokenId;\n\n const last =\n tokenTransferList.length > 0\n ? tokenTransferList[tokenTransferList.length - 1]\n : null;\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n const result = iTokenId.compare(jTokenId);\n\n if (result === 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [this._nftTransfers[j++]],\n });\n } else if (result < 0) {\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals:\n this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else {\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n } else if (i < this._tokenTransfers.length) {\n const iTokenId = this._tokenTransfers[i].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(iTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(iTokenId) === 0\n ) {\n last.transfers.push(this._tokenTransfers[i++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: iTokenId,\n expectedDecimals: this._tokenTransfers[i].expectedDecimals,\n transfers: [this._tokenTransfers[i++]],\n nftTransfers: [],\n });\n } else if (j < this._nftTransfers.length) {\n const jTokenId = this._nftTransfers[j].tokenId;\n\n let last;\n for (const transfer of tokenTransferList) {\n if (transfer.tokenId.compare(jTokenId) === 0) {\n last = transfer;\n }\n }\n const lastTokenId = last != null ? last.tokenId : null;\n\n if (\n last != null &&\n lastTokenId != null &&\n lastTokenId.compare(jTokenId) === 0\n ) {\n last.nftTransfers.push(this._nftTransfers[j++]);\n continue;\n }\n\n tokenTransferList.push({\n tokenId: jTokenId,\n expectedDecimals: null,\n transfers: [],\n nftTransfers: [this._nftTransfers[j++]],\n });\n }\n }\n\n return {\n tokenTransfers: tokenTransferList.map((tokenTransfer) => {\n return {\n token: tokenTransfer.tokenId._toProtobuf(),\n expectedDecimals:\n tokenTransfer.expectedDecimals != null\n ? { value: tokenTransfer.expectedDecimals }\n : null,\n transfers: tokenTransfer.transfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n nftTransfers: tokenTransfer.nftTransfers.map((transfer) =>\n transfer._toProtobuf(),\n ),\n };\n }),\n };\n }\n}\n"],"names":["AbstractTokenTransferTransaction","Transaction","constructor","props","super","this","_tokenTransfers","_nftTransfers","transfer","tokenTransfers","addTokenTransfer","tokenId","accountId","amount","nftTransfers","addNftTransfer","serial","sender","recipient","tokenIdOrNftId","senderAccountIdOrSerialNumber","receiverAccountIdOrSenderAccountId","receiver","_addNftTransfer","_addTokenTransfer","isApproved","expectedDecimals","hookCall","_requireNotFrozen","token","TokenId","fromString","account","AccountId","value","convertAmountToLong","tokenTransfer","compare","add","push","TokenTransfer","senderHookCall","receiverHookCall","nftId","senderAccountId","receiverAccountId","NftId","_","nftTransfer","serialNumber","TokenNftTransfer","addApprovedNftTransfer","addApprovedTokenTransfer","addTokenTransferWithDecimals","decimals","found","Error","tokenIdDecimals","map","NullableTokenDecimalMap","_set","TokenNftTransferMap","transferList","get","TokenTransferMap","transferMap","TokenTransferAccountMap","_makeTransactionData","tokenTransferList","sort","a","b","senderComparision","recipientComparision","i","j","length","iTokenId","jTokenId","last","lastTokenId","transfers","result","_toProtobuf"],"mappings":"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"}
|
|
@@ -119,7 +119,7 @@ class TokenAirdropTransaction extends _AbstractTokenTransferTransaction.default
|
|
|
119
119
|
*/
|
|
120
120
|
addApprovedTokenTransferWithDecimals(tokenId, accountId, amount, expectedDecimals) {
|
|
121
121
|
this._requireNotFrozen();
|
|
122
|
-
this._addTokenTransfer(tokenId, accountId, amount, true, expectedDecimals);
|
|
122
|
+
this._addTokenTransfer(tokenId, accountId, amount, true, expectedDecimals, undefined);
|
|
123
123
|
return this;
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r,{TRANSACTION_REGISTRY as
|
|
1
|
+
import r,{TRANSACTION_REGISTRY as o}from"../transaction/Transaction.js";import t from"./TokenTransfer.js";import n from"./TokenNftTransfer.js";import e from"./AbstractTokenTransferTransaction.js";class s extends e{constructor(r={}){if(super(),null!=r.tokenTransfers)for(const o of r.tokenTransfers)this._addTokenTransfer(o.tokenId,o.accountId,o.amount,o.isApproved,o.expectedDecimals);if(this._nftTransfers=[],null!=r.nftTransfers)for(const o of r.nftTransfers)this._addNftTransfer(o.isApproved,o.tokenId,o.serialNumber,o.senderAccountId,o.receiverAccountId)}addApprovedTokenTransferWithDecimals(r,o,t,n){return this._requireNotFrozen(),this._addTokenTransfer(r,o,t,!0,n,void 0),this}static _fromProtobuf(o,e,a,f,i){const d=i[0].tokenAirdrop,T=t._fromProtobuf(d.tokenTransfers??[]),c=n._fromProtobuf(d.tokenTransfers??[]);return r._fromProtobufTransactions(new s({nftTransfers:c,tokenTransfers:T}),o,e,a,f,i)}_execute(r,o){return r.token.airdropTokens(o)}_getTransactionDataCase(){return"tokenAirdrop"}_getLogId(){return`TokenAirdropTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set("tokenAirdrop",s._fromProtobuf);export{s as default};
|
|
2
2
|
//# sourceMappingURL=TokenAirdropTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenAirdropTransaction.js","sources":["../../src/token/TokenAirdropTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport NftTransfer from \"./TokenNftTransfer.js\";\nimport AbstractTokenTransferTransaction from \"./AbstractTokenTransferTransaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hiero-ledger/proto\").proto.TransactionID} HieroProto.proto.TransactionID\n * @typedef {import(\"@hiero-ledger/proto\").proto.AccountID} HieroProto.proto.AccountID\n * @typedef {import(\"@hiero-ledger/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransactionResponse} HieroProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"./NftId.js\").default} NftId\n * @typedef {import(\"./TokenId.js\").default} TokenId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * Airdrop one or more tokens to one or more accounts.\n *\n * ### Effects\n * This distributes tokens from the balance of one or more sending account(s)\n * to the balance of one or more recipient accounts. Accounts MAY receive the\n * tokens in one of four ways.\n *\n * - An account already associated to the token to be distributed SHALL\n * receive the airdropped tokens immediately to the recipient account\n * balance.<br/>\n * The fee for this transfer SHALL include the transfer, the airdrop fee,\n * and any custom fees.\n * - An account with available automatic association slots SHALL be\n * automatically associated to the token, and SHALL immediately receive\n * the airdropped tokens to the recipient account balance.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and\n * any custom fees.\n * - An account with \"receiver signature required\" set SHALL have a\n * \"Pending Airdrop\" created and must claim that airdrop with a\n * `claimAirdrop` transaction.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and\n * any custom fees.<br/>\n * If the pending airdrop is not claimed immediately, the `sender` SHALL\n * pay the cost to renew the token association, and the cost to maintain\n * the pending airdrop, until the pending airdrop is claimed or cancelled.\n * - An account with no available automatic association slots SHALL have a\n * \"Pending Airdrop\" created and must claim that airdrop with a\n * `claimAirdrop` transaction.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and any custom\n * fees.<br/>\n * If the pending airdrop is not claimed immediately, the `sender` SHALL\n * pay the cost to renew the token association, and the cost to maintain\n * the pending airdrop, until the pending airdrop is claimed or cancelled.\n *\n * If an airdrop would create a pending airdrop for a fungible/common token,\n * and a pending airdrop for the same sender, receiver, and token already\n * exists, the existing pending airdrop SHALL be updated to add the new\n * amount to the existing airdrop, rather than creating\n * a new pending airdrop.<br/>\n * Any airdrop that completes immediately SHALL be irreversible. Any airdrop\n * that results in a \"Pending Airdrop\" MAY be canceled via a `cancelAirdrop`\n * transaction.<br/>\n * All transfer fees (including custom fees and royalties), as well as the\n * rent cost for the first auto-renewal period for any automatic-association\n * slot occupied by the airdropped tokens, SHALL be charged to the account\n * paying for this transaction.<br/>\n */\nexport default class TokenAirdropTransaction extends AbstractTokenTransferTransaction {\n /**\n * @param {object} props\n * @param {TokenTransfer[]} [props.tokenTransfers]\n * @param {NftTransfer[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n if (props.tokenTransfers != null) {\n for (const tokenTransfer of props.tokenTransfers) {\n this._addTokenTransfer(\n tokenTransfer.tokenId,\n tokenTransfer.accountId,\n tokenTransfer.amount,\n tokenTransfer.isApproved,\n tokenTransfer.expectedDecimals,\n );\n }\n }\n /**\n * @private\n * @type {NftTransfer[]}\n */\n this._nftTransfers = [];\n if (props.nftTransfers != null) {\n for (const nftTransfer of props.nftTransfers) {\n this._addNftTransfer(\n nftTransfer.isApproved,\n nftTransfer.tokenId,\n nftTransfer.serialNumber,\n nftTransfer.senderAccountId,\n nftTransfer.receiverAccountId,\n );\n }\n }\n }\n\n /**\n *\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long | number | BigNumber | bigint} amount\n * @param {number} expectedDecimals\n * @returns {this}\n */\n addApprovedTokenTransferWithDecimals(\n tokenId,\n accountId,\n amount,\n expectedDecimals,\n ) {\n this._requireNotFrozen();\n this._addTokenTransfer(\n tokenId,\n accountId,\n amount,\n true,\n expectedDecimals,\n );\n return this;\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.ITransaction[]} transactions\n * @param {HieroProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HieroProto.proto.ITransactionBody[]} bodies\n * @returns {TokenAirdropTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const tokenAirdrop =\n /** @type {HieroProto.proto.ITokenAirdropTransactionBody} */ (\n body.tokenAirdrop\n );\n\n const tokenTransfers = TokenTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n const nftTransfers = NftTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenAirdropTransaction({\n nftTransfers: nftTransfers,\n tokenTransfers: tokenTransfers,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HieroProto.proto.ITransaction} request\n * @returns {Promise<HieroProto.proto.ITransactionResponse>}\n */\n _execute(channel, request) {\n return channel.token.airdropTokens(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable<HieroProto.proto.TransactionBody[\"data\"]>}\n */\n _getTransactionDataCase() {\n return \"tokenAirdrop\";\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenAirdropTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenAirdrop\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenAirdropTransaction._fromProtobuf,\n);\n"],"names":["TokenAirdropTransaction","AbstractTokenTransferTransaction","constructor","props","super","tokenTransfers","tokenTransfer","this","_addTokenTransfer","tokenId","accountId","amount","isApproved","expectedDecimals","_nftTransfers","nftTransfers","nftTransfer","_addNftTransfer","serialNumber","senderAccountId","receiverAccountId","addApprovedTokenTransferWithDecimals","_requireNotFrozen","_fromProtobuf","transactions","signedTransactions","transactionIds","nodeIds","bodies","tokenAirdrop","TokenTransfer","NftTransfer","Transaction","_fromProtobufTransactions","_execute","channel","request","token","airdropTokens","_getTransactionDataCase","_getLogId","_transactionIds","current","toString","TRANSACTION_REGISTRY","set"],"mappings":"oMAgFe,MAAMA,UAAgCC,EAMjD,WAAAC,CAAYC,EAAQ,IAGhB,GAFAC,QAE4B,MAAxBD,EAAME,eACN,IAAK,MAAMC,KAAiBH,EAAME,eAC9BE,KAAKC,kBACDF,EAAcG,QACdH,EAAcI,UACdJ,EAAcK,OACdL,EAAcM,WACdN,EAAcO,kBAS1B,GADAN,KAAKO,cAAgB,GACK,MAAtBX,EAAMY,aACN,IAAK,MAAMC,KAAeb,EAAMY,aAC5BR,KAAKU,gBACDD,EAAYJ,WACZI,EAAYP,QACZO,EAAYE,aACZF,EAAYG,gBACZH,EAAYI,kBAIhC,CAUI,oCAAAC,CACIZ,EACAC,EACAC,EACAE,GAUA,OARAN,KAAKe,oBACLf,KAAKC,kBACDC,EACAC,EACAC,GACA,EACAE,GAEGN,IACf,CAWI,oBAAOgB,CACHC,EACAC,EACAC,EACAC,EACAC,GAEA,MACMC,EADOD,EAAO,GAIf,aAECvB,EAAiByB,EAAcP,cACjCM,EAAaxB,gBAAkB,IAE7BU,EAAegB,EAAYR,cAC7BM,EAAaxB,gBAAkB,IAGnC,OAAO2B,EAAYC,0BACf,IAAIjC,EAAwB,CACxBe,aAAcA,EACdV,eAAgBA,IAEpBmB,EACAC,EACAC,EACAC,EACAC,EAEZ,CASI,QAAAM,CAASC,EAASC,GACd,OAAOD,EAAQE,MAAMC,cAAcF,EAC3C,CAOI,uBAAAG,GACI,MAAO,cACf,CAKI,SAAAC,GAII,MAAO,2BAFHjC,KAAKkC,gBAAgBC,QACxB,WAC2CC,YACpD,EAGAC,EAAqBC,IACjB,eAEA7C,EAAwBuB"}
|
|
1
|
+
{"version":3,"file":"TokenAirdropTransaction.js","sources":["../../src/token/TokenAirdropTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport Transaction, {\n TRANSACTION_REGISTRY,\n} from \"../transaction/Transaction.js\";\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport NftTransfer from \"./TokenNftTransfer.js\";\nimport AbstractTokenTransferTransaction from \"./AbstractTokenTransferTransaction.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hiero-ledger/proto\").proto.TransactionID} HieroProto.proto.TransactionID\n * @typedef {import(\"@hiero-ledger/proto\").proto.AccountID} HieroProto.proto.AccountID\n * @typedef {import(\"@hiero-ledger/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hiero-ledger/proto\").proto.ITransactionResponse} HieroProto.proto.ITransactionResponse\n */\n\n/**\n * @typedef {import(\"../channel/Channel.js\").default} Channel\n * @typedef {import(\"../transaction/TransactionId.js\").default} TransactionId\n * @typedef {import(\"../account/AccountId.js\").default} AccountId\n * @typedef {import(\"./NftId.js\").default} NftId\n * @typedef {import(\"./TokenId.js\").default} TokenId\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * Airdrop one or more tokens to one or more accounts.\n *\n * ### Effects\n * This distributes tokens from the balance of one or more sending account(s)\n * to the balance of one or more recipient accounts. Accounts MAY receive the\n * tokens in one of four ways.\n *\n * - An account already associated to the token to be distributed SHALL\n * receive the airdropped tokens immediately to the recipient account\n * balance.<br/>\n * The fee for this transfer SHALL include the transfer, the airdrop fee,\n * and any custom fees.\n * - An account with available automatic association slots SHALL be\n * automatically associated to the token, and SHALL immediately receive\n * the airdropped tokens to the recipient account balance.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and\n * any custom fees.\n * - An account with \"receiver signature required\" set SHALL have a\n * \"Pending Airdrop\" created and must claim that airdrop with a\n * `claimAirdrop` transaction.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and\n * any custom fees.<br/>\n * If the pending airdrop is not claimed immediately, the `sender` SHALL\n * pay the cost to renew the token association, and the cost to maintain\n * the pending airdrop, until the pending airdrop is claimed or cancelled.\n * - An account with no available automatic association slots SHALL have a\n * \"Pending Airdrop\" created and must claim that airdrop with a\n * `claimAirdrop` transaction.<br/>\n * The fee for this transfer SHALL include the transfer, the association,\n * the cost to renew that association once, the airdrop fee, and any custom\n * fees.<br/>\n * If the pending airdrop is not claimed immediately, the `sender` SHALL\n * pay the cost to renew the token association, and the cost to maintain\n * the pending airdrop, until the pending airdrop is claimed or cancelled.\n *\n * If an airdrop would create a pending airdrop for a fungible/common token,\n * and a pending airdrop for the same sender, receiver, and token already\n * exists, the existing pending airdrop SHALL be updated to add the new\n * amount to the existing airdrop, rather than creating\n * a new pending airdrop.<br/>\n * Any airdrop that completes immediately SHALL be irreversible. Any airdrop\n * that results in a \"Pending Airdrop\" MAY be canceled via a `cancelAirdrop`\n * transaction.<br/>\n * All transfer fees (including custom fees and royalties), as well as the\n * rent cost for the first auto-renewal period for any automatic-association\n * slot occupied by the airdropped tokens, SHALL be charged to the account\n * paying for this transaction.<br/>\n */\nexport default class TokenAirdropTransaction extends AbstractTokenTransferTransaction {\n /**\n * @param {object} props\n * @param {TokenTransfer[]} [props.tokenTransfers]\n * @param {NftTransfer[]} [props.nftTransfers]\n */\n constructor(props = {}) {\n super();\n\n if (props.tokenTransfers != null) {\n for (const tokenTransfer of props.tokenTransfers) {\n this._addTokenTransfer(\n tokenTransfer.tokenId,\n tokenTransfer.accountId,\n tokenTransfer.amount,\n tokenTransfer.isApproved,\n tokenTransfer.expectedDecimals,\n );\n }\n }\n /**\n * @private\n * @type {NftTransfer[]}\n */\n this._nftTransfers = [];\n if (props.nftTransfers != null) {\n for (const nftTransfer of props.nftTransfers) {\n this._addNftTransfer(\n nftTransfer.isApproved,\n nftTransfer.tokenId,\n nftTransfer.serialNumber,\n nftTransfer.senderAccountId,\n nftTransfer.receiverAccountId,\n );\n }\n }\n }\n\n /**\n *\n * @param {TokenId} tokenId\n * @param {AccountId} accountId\n * @param {Long | number | BigNumber | bigint} amount\n * @param {number} expectedDecimals\n * @returns {this}\n */\n addApprovedTokenTransferWithDecimals(\n tokenId,\n accountId,\n amount,\n expectedDecimals,\n ) {\n this._requireNotFrozen();\n this._addTokenTransfer(\n tokenId,\n accountId,\n amount,\n true,\n expectedDecimals,\n undefined,\n );\n return this;\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.ITransaction[]} transactions\n * @param {HieroProto.proto.ISignedTransaction[]} signedTransactions\n * @param {TransactionId[]} transactionIds\n * @param {AccountId[]} nodeIds\n * @param {HieroProto.proto.ITransactionBody[]} bodies\n * @returns {TokenAirdropTransaction}\n */\n static _fromProtobuf(\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n ) {\n const body = bodies[0];\n const tokenAirdrop =\n /** @type {HieroProto.proto.ITokenAirdropTransactionBody} */ (\n body.tokenAirdrop\n );\n\n const tokenTransfers = TokenTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n const nftTransfers = NftTransfer._fromProtobuf(\n tokenAirdrop.tokenTransfers ?? [],\n );\n\n return Transaction._fromProtobufTransactions(\n new TokenAirdropTransaction({\n nftTransfers: nftTransfers,\n tokenTransfers: tokenTransfers,\n }),\n transactions,\n signedTransactions,\n transactionIds,\n nodeIds,\n bodies,\n );\n }\n\n /**\n * @override\n * @internal\n * @param {Channel} channel\n * @param {HieroProto.proto.ITransaction} request\n * @returns {Promise<HieroProto.proto.ITransactionResponse>}\n */\n _execute(channel, request) {\n return channel.token.airdropTokens(request);\n }\n\n /**\n * @override\n * @protected\n * @returns {NonNullable<HieroProto.proto.TransactionBody[\"data\"]>}\n */\n _getTransactionDataCase() {\n return \"tokenAirdrop\";\n }\n\n /**\n * @returns {string}\n */\n _getLogId() {\n const timestamp = /** @type {import(\"../Timestamp.js\").default} */ (\n this._transactionIds.current.validStart\n );\n return `TokenAirdropTransaction:${timestamp.toString()}`;\n }\n}\n\nTRANSACTION_REGISTRY.set(\n \"tokenAirdrop\",\n // eslint-disable-next-line @typescript-eslint/unbound-method\n TokenAirdropTransaction._fromProtobuf,\n);\n"],"names":["TokenAirdropTransaction","AbstractTokenTransferTransaction","constructor","props","super","tokenTransfers","tokenTransfer","this","_addTokenTransfer","tokenId","accountId","amount","isApproved","expectedDecimals","_nftTransfers","nftTransfers","nftTransfer","_addNftTransfer","serialNumber","senderAccountId","receiverAccountId","addApprovedTokenTransferWithDecimals","_requireNotFrozen","undefined","_fromProtobuf","transactions","signedTransactions","transactionIds","nodeIds","bodies","tokenAirdrop","TokenTransfer","NftTransfer","Transaction","_fromProtobufTransactions","_execute","channel","request","token","airdropTokens","_getTransactionDataCase","_getLogId","_transactionIds","current","toString","TRANSACTION_REGISTRY","set"],"mappings":"oMAgFe,MAAMA,UAAgCC,EAMjD,WAAAC,CAAYC,EAAQ,IAGhB,GAFAC,QAE4B,MAAxBD,EAAME,eACN,IAAK,MAAMC,KAAiBH,EAAME,eAC9BE,KAAKC,kBACDF,EAAcG,QACdH,EAAcI,UACdJ,EAAcK,OACdL,EAAcM,WACdN,EAAcO,kBAS1B,GADAN,KAAKO,cAAgB,GACK,MAAtBX,EAAMY,aACN,IAAK,MAAMC,KAAeb,EAAMY,aAC5BR,KAAKU,gBACDD,EAAYJ,WACZI,EAAYP,QACZO,EAAYE,aACZF,EAAYG,gBACZH,EAAYI,kBAIhC,CAUI,oCAAAC,CACIZ,EACAC,EACAC,EACAE,GAWA,OATAN,KAAKe,oBACLf,KAAKC,kBACDC,EACAC,EACAC,GACA,EACAE,OACAU,GAEGhB,IACf,CAWI,oBAAOiB,CACHC,EACAC,EACAC,EACAC,EACAC,GAEA,MACMC,EADOD,EAAO,GAIf,aAECxB,EAAiB0B,EAAcP,cACjCM,EAAazB,gBAAkB,IAE7BU,EAAeiB,EAAYR,cAC7BM,EAAazB,gBAAkB,IAGnC,OAAO4B,EAAYC,0BACf,IAAIlC,EAAwB,CACxBe,aAAcA,EACdV,eAAgBA,IAEpBoB,EACAC,EACAC,EACAC,EACAC,EAEZ,CASI,QAAAM,CAASC,EAASC,GACd,OAAOD,EAAQE,MAAMC,cAAcF,EAC3C,CAOI,uBAAAG,GACI,MAAO,cACf,CAKI,SAAAC,GAII,MAAO,2BAFHlC,KAAKmC,gBAAgBC,QACxB,WAC2CC,YACpD,EAGAC,EAAqBC,IACjB,eAEA9C,EAAwBwB"}
|
|
@@ -7,6 +7,8 @@ exports.default = void 0;
|
|
|
7
7
|
var _long = _interopRequireDefault(require("long"));
|
|
8
8
|
var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
|
|
9
9
|
var _TokenId = _interopRequireDefault(require("./TokenId.cjs"));
|
|
10
|
+
var _NftHookCall = _interopRequireDefault(require("../hooks/NftHookCall.cjs"));
|
|
11
|
+
var _NftHookType = _interopRequireDefault(require("../hooks/NftHookType.cjs"));
|
|
10
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
13
|
// SPDX-License-Identifier: Apache-2.0
|
|
12
14
|
|
|
@@ -35,6 +37,8 @@ class TokenNftTransfer {
|
|
|
35
37
|
* @param {AccountId | string} props.receiverAccountId
|
|
36
38
|
* @param {Long | number} props.serialNumber
|
|
37
39
|
* @param {boolean} props.isApproved
|
|
40
|
+
* @param {NftHookCall} [props.senderHookCall]
|
|
41
|
+
* @param {NftHookCall} [props.receiverHookCall]
|
|
38
42
|
*/
|
|
39
43
|
constructor(props) {
|
|
40
44
|
/**
|
|
@@ -52,6 +56,8 @@ class TokenNftTransfer {
|
|
|
52
56
|
*/
|
|
53
57
|
this.receiverAccountId = props.receiverAccountId instanceof _AccountId.default ? props.receiverAccountId : _AccountId.default.fromString(props.receiverAccountId);
|
|
54
58
|
this.serialNumber = _long.default.fromValue(props.serialNumber);
|
|
59
|
+
this.senderHookCall = props.senderHookCall;
|
|
60
|
+
this.receiverHookCall = props.receiverHookCall;
|
|
55
61
|
this.isApproved = props.isApproved;
|
|
56
62
|
}
|
|
57
63
|
|
|
@@ -65,6 +71,21 @@ class TokenNftTransfer {
|
|
|
65
71
|
for (const tokenTransfer of tokenTransfers) {
|
|
66
72
|
const tokenId = _TokenId.default._fromProtobuf(/** @type {HieroProto.proto.ITokenID} */tokenTransfer.token);
|
|
67
73
|
for (const transfer of tokenTransfer.nftTransfers != null ? tokenTransfer.nftTransfers : []) {
|
|
74
|
+
// Determine sender hook type
|
|
75
|
+
let senderHookCall;
|
|
76
|
+
if (transfer.preTxSenderAllowanceHook != null) {
|
|
77
|
+
senderHookCall = _NftHookCall.default._fromProtobufWithType(transfer.preTxSenderAllowanceHook, _NftHookType.default.PRE_HOOK_SENDER);
|
|
78
|
+
} else if (transfer.prePostTxSenderAllowanceHook != null) {
|
|
79
|
+
senderHookCall = _NftHookCall.default._fromProtobufWithType(transfer.prePostTxSenderAllowanceHook, _NftHookType.default.PRE_POST_HOOK_SENDER);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Determine receiver hook type
|
|
83
|
+
let receiverHookCall;
|
|
84
|
+
if (transfer.preTxReceiverAllowanceHook != null) {
|
|
85
|
+
receiverHookCall = _NftHookCall.default._fromProtobufWithType(transfer.preTxReceiverAllowanceHook, _NftHookType.default.PRE_HOOK_RECEIVER);
|
|
86
|
+
} else if (transfer.prePostTxReceiverAllowanceHook != null) {
|
|
87
|
+
receiverHookCall = _NftHookCall.default._fromProtobufWithType(transfer.prePostTxReceiverAllowanceHook, _NftHookType.default.PRE_POST_HOOK_RECEIVER);
|
|
88
|
+
}
|
|
68
89
|
transfers.push(new TokenNftTransfer({
|
|
69
90
|
tokenId,
|
|
70
91
|
senderAccountId: _AccountId.default._fromProtobuf(/** @type {HieroProto.proto.IAccountID} */
|
|
@@ -72,7 +93,9 @@ class TokenNftTransfer {
|
|
|
72
93
|
receiverAccountId: _AccountId.default._fromProtobuf(/** @type {HieroProto.proto.IAccountID} */
|
|
73
94
|
transfer.receiverAccountID),
|
|
74
95
|
serialNumber: transfer.serialNumber != null ? transfer.serialNumber : _long.default.ZERO,
|
|
75
|
-
isApproved: transfer.isApproval == true
|
|
96
|
+
isApproved: transfer.isApproval == true,
|
|
97
|
+
senderHookCall: senderHookCall,
|
|
98
|
+
receiverHookCall: receiverHookCall
|
|
76
99
|
}));
|
|
77
100
|
}
|
|
78
101
|
}
|
|
@@ -84,12 +107,38 @@ class TokenNftTransfer {
|
|
|
84
107
|
* @returns {HieroProto.proto.INftTransfer}
|
|
85
108
|
*/
|
|
86
109
|
_toProtobuf() {
|
|
87
|
-
|
|
110
|
+
/** @type {HieroProto.proto.INftTransfer} */
|
|
111
|
+
const result = {
|
|
88
112
|
senderAccountID: this.senderAccountId._toProtobuf(),
|
|
89
113
|
receiverAccountID: this.receiverAccountId._toProtobuf(),
|
|
90
114
|
serialNumber: this.serialNumber,
|
|
91
115
|
isApproval: this.isApproved
|
|
92
116
|
};
|
|
117
|
+
|
|
118
|
+
// Handle sender hook
|
|
119
|
+
if (this.senderHookCall != null) {
|
|
120
|
+
switch (this.senderHookCall.type) {
|
|
121
|
+
case _NftHookType.default.PRE_HOOK_SENDER:
|
|
122
|
+
result.preTxSenderAllowanceHook = this.senderHookCall._toProtobuf();
|
|
123
|
+
break;
|
|
124
|
+
case _NftHookType.default.PRE_POST_HOOK_SENDER:
|
|
125
|
+
result.prePostTxSenderAllowanceHook = this.senderHookCall._toProtobuf();
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Handle receiver hook
|
|
131
|
+
if (this.receiverHookCall != null) {
|
|
132
|
+
switch (this.receiverHookCall.type) {
|
|
133
|
+
case _NftHookType.default.PRE_HOOK_RECEIVER:
|
|
134
|
+
result.preTxReceiverAllowanceHook = this.receiverHookCall._toProtobuf();
|
|
135
|
+
break;
|
|
136
|
+
case _NftHookType.default.PRE_POST_HOOK_RECEIVER:
|
|
137
|
+
result.prePostTxReceiverAllowanceHook = this.receiverHookCall._toProtobuf();
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return result;
|
|
93
142
|
}
|
|
94
143
|
}
|
|
95
144
|
exports.default = TokenNftTransfer;
|