@hiero-ledger/sdk 2.73.2 → 2.75.0

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.
Files changed (125) hide show
  1. package/dist/umd.js +368 -202
  2. package/dist/umd.min.js +3 -3
  3. package/lib/MirrorNode.cjs +46 -0
  4. package/lib/MirrorNode.d.ts +16 -0
  5. package/lib/MirrorNode.js +1 -1
  6. package/lib/MirrorNode.js.map +1 -1
  7. package/lib/account/AccountAllowanceApproveTransaction.cjs +11 -5
  8. package/lib/account/AccountAllowanceApproveTransaction.d.ts +4 -5
  9. package/lib/account/AccountAllowanceApproveTransaction.js +1 -1
  10. package/lib/account/AccountAllowanceApproveTransaction.js.map +1 -1
  11. package/lib/account/TokenAllowance.cjs +4 -2
  12. package/lib/account/TokenAllowance.d.ts +4 -2
  13. package/lib/account/TokenAllowance.js +1 -1
  14. package/lib/account/TokenAllowance.js.map +1 -1
  15. package/lib/account/TokenTransferMap.cjs +7 -2
  16. package/lib/account/TokenTransferMap.d.ts +6 -2
  17. package/lib/account/TokenTransferMap.js +1 -1
  18. package/lib/account/TokenTransferMap.js.map +1 -1
  19. package/lib/client/Client.cjs +13 -44
  20. package/lib/client/Client.d.ts +12 -12
  21. package/lib/client/Client.js +1 -1
  22. package/lib/client/Client.js.map +1 -1
  23. package/lib/client/MirrorNetwork.cjs +16 -0
  24. package/lib/client/MirrorNetwork.d.ts +7 -0
  25. package/lib/client/MirrorNetwork.js +1 -1
  26. package/lib/client/MirrorNetwork.js.map +1 -1
  27. package/lib/client/addressbooks/mainnet.cjs +1 -1
  28. package/lib/client/addressbooks/mainnet.d.ts +1 -1
  29. package/lib/client/addressbooks/mainnet.js +1 -1
  30. package/lib/client/addressbooks/mainnet.js.map +1 -1
  31. package/lib/client/addressbooks/previewnet.cjs +1 -1
  32. package/lib/client/addressbooks/previewnet.d.ts +1 -1
  33. package/lib/client/addressbooks/previewnet.js +1 -1
  34. package/lib/client/addressbooks/previewnet.js.map +1 -1
  35. package/lib/client/addressbooks/testnet.cjs +1 -1
  36. package/lib/client/addressbooks/testnet.d.ts +1 -1
  37. package/lib/client/addressbooks/testnet.js +1 -1
  38. package/lib/client/addressbooks/testnet.js.map +1 -1
  39. package/lib/constants/ClientConstants.cjs +4 -1
  40. package/lib/constants/ClientConstants.d.ts +2 -0
  41. package/lib/constants/ClientConstants.js +1 -1
  42. package/lib/constants/ClientConstants.js.map +1 -1
  43. package/lib/contract/ContractId.cjs +2 -5
  44. package/lib/contract/ContractId.js +1 -1
  45. package/lib/contract/ContractId.js.map +1 -1
  46. package/lib/network/AddressBookQueryWeb.cjs +88 -60
  47. package/lib/network/AddressBookQueryWeb.d.ts +7 -37
  48. package/lib/network/AddressBookQueryWeb.js +1 -1
  49. package/lib/network/AddressBookQueryWeb.js.map +1 -1
  50. package/lib/query/MirrorNodeContractQuery.cjs +2 -1
  51. package/lib/query/MirrorNodeContractQuery.js.map +1 -1
  52. package/lib/token/AbstractTokenTransferTransaction.cjs +12 -8
  53. package/lib/token/AbstractTokenTransferTransaction.d.ts +14 -11
  54. package/lib/token/AbstractTokenTransferTransaction.js +1 -1
  55. package/lib/token/AbstractTokenTransferTransaction.js.map +1 -1
  56. package/lib/token/AssessedCustomFee.cjs +8 -4
  57. package/lib/token/AssessedCustomFee.d.ts +8 -5
  58. package/lib/token/AssessedCustomFee.js +1 -1
  59. package/lib/token/AssessedCustomFee.js.map +1 -1
  60. package/lib/token/CustomFixedFee.cjs +8 -4
  61. package/lib/token/CustomFixedFee.d.ts +8 -5
  62. package/lib/token/CustomFixedFee.js +1 -1
  63. package/lib/token/CustomFixedFee.js.map +1 -1
  64. package/lib/token/PendingAirdropRecord.cjs +7 -2
  65. package/lib/token/PendingAirdropRecord.d.ts +6 -2
  66. package/lib/token/PendingAirdropRecord.js +1 -1
  67. package/lib/token/PendingAirdropRecord.js.map +1 -1
  68. package/lib/token/TokenAirdropTransaction.cjs +2 -1
  69. package/lib/token/TokenAirdropTransaction.d.ts +4 -2
  70. package/lib/token/TokenAirdropTransaction.js.map +1 -1
  71. package/lib/token/TokenBurnTransaction.cjs +5 -3
  72. package/lib/token/TokenBurnTransaction.d.ts +6 -4
  73. package/lib/token/TokenBurnTransaction.js +1 -1
  74. package/lib/token/TokenBurnTransaction.js.map +1 -1
  75. package/lib/token/TokenCreateTransaction.cjs +7 -6
  76. package/lib/token/TokenCreateTransaction.d.ts +8 -8
  77. package/lib/token/TokenCreateTransaction.js +1 -1
  78. package/lib/token/TokenCreateTransaction.js.map +1 -1
  79. package/lib/token/TokenMintTransaction.cjs +5 -4
  80. package/lib/token/TokenMintTransaction.d.ts +6 -5
  81. package/lib/token/TokenMintTransaction.js +1 -1
  82. package/lib/token/TokenMintTransaction.js.map +1 -1
  83. package/lib/token/TokenTransfer.cjs +3 -2
  84. package/lib/token/TokenTransfer.d.ts +2 -2
  85. package/lib/token/TokenTransfer.js +1 -1
  86. package/lib/token/TokenTransfer.js.map +1 -1
  87. package/lib/token/TokenWipeTransaction.cjs +5 -3
  88. package/lib/token/TokenWipeTransaction.d.ts +6 -4
  89. package/lib/token/TokenWipeTransaction.js +1 -1
  90. package/lib/token/TokenWipeTransaction.js.map +1 -1
  91. package/lib/transaction/Transaction.cjs +54 -0
  92. package/lib/transaction/Transaction.d.ts +10 -0
  93. package/lib/transaction/Transaction.js +1 -1
  94. package/lib/transaction/Transaction.js.map +1 -1
  95. package/lib/util.cjs +25 -0
  96. package/lib/util.d.ts +8 -0
  97. package/lib/util.js +1 -1
  98. package/lib/util.js.map +1 -1
  99. package/lib/version.js +1 -1
  100. package/package.json +16 -12
  101. package/src/MirrorNode.js +49 -0
  102. package/src/account/AccountAllowanceApproveTransaction.js +11 -11
  103. package/src/account/TokenAllowance.js +5 -2
  104. package/src/account/TokenTransferMap.js +7 -2
  105. package/src/client/Client.js +13 -51
  106. package/src/client/MirrorNetwork.js +18 -0
  107. package/src/client/addressbooks/mainnet.js +1 -1
  108. package/src/client/addressbooks/previewnet.js +1 -1
  109. package/src/client/addressbooks/testnet.js +1 -1
  110. package/src/constants/ClientConstants.js +3 -0
  111. package/src/contract/ContractId.js +2 -10
  112. package/src/network/AddressBookQueryWeb.js +122 -91
  113. package/src/query/MirrorNodeContractQuery.js +2 -1
  114. package/src/token/AbstractTokenTransferTransaction.js +12 -8
  115. package/src/token/AssessedCustomFee.js +8 -5
  116. package/src/token/CustomFixedFee.js +8 -5
  117. package/src/token/PendingAirdropRecord.js +7 -2
  118. package/src/token/TokenAirdropTransaction.js +2 -1
  119. package/src/token/TokenBurnTransaction.js +5 -3
  120. package/src/token/TokenCreateTransaction.js +7 -9
  121. package/src/token/TokenMintTransaction.js +5 -4
  122. package/src/token/TokenTransfer.js +3 -2
  123. package/src/token/TokenWipeTransaction.js +5 -3
  124. package/src/transaction/Transaction.js +63 -0
  125. package/src/util.js +26 -0
@@ -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 Long from \"long\";\nimport NullableTokenDecimalMap from \"../account/NullableTokenDecimalMap.js\";\nimport TokenNftTransferMap from \"../account/TokenNftTransferMap.js\";\nimport TokenTransferMap from \"../account/TokenTransferMap.js\";\nimport TokenTransferAccountMap from \"../account/TokenTransferAccountMap.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/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} 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} 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 = amount instanceof Long ? amount : Long.fromNumber(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} 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} 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} 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 = amount instanceof Long ? amount : Long.fromNumber(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","Long","fromNumber","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(\"@hashgraph/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":"2cAqCe,MAAMA,UAAyCC,EAM1D,WAAAC,CAAYC,EAAQ,IAChBC,QAMAC,KAAKC,gBAAkB,GAMvBD,KAAKE,cAAgB,GAErB,IAAK,MAAMC,KAAoC,MAAxBL,EAAMM,eACvBN,EAAMM,eACN,GACFJ,KAAKK,iBACDF,EAASG,QACTH,EAASI,UACTJ,EAASK,QAIjB,IAAK,MAAML,KAAkC,MAAtBL,EAAMW,aACvBX,EAAMW,aACN,GACFT,KAAKU,eACDP,EAASG,QACTH,EAASQ,OACTR,EAASS,OACTT,EAASU,UAGzB,CASI,cAAAH,CACII,EACAC,EACAC,EACAC,GAEA,OAAOjB,KAAKkB,iBACR,EACAJ,EACAC,EACAC,EACAC,EAEZ,CAUI,iBAAAE,CACIb,EACAC,EACAC,EACAY,EACAC,GAEArB,KAAKsB,oBAEL,MAAMC,EACFjB,aAAmBkB,EAAUlB,EAAUkB,EAAQC,WAAWnB,GACxDoB,EACFnB,aAAqBoB,EACfpB,EACAoB,EAAUF,WAAWlB,GACzBqB,EAAQC,EAAoBrB,GAElC,IAAK,MAAMsB,KAAiB9B,KAAKC,gBAC7B,GAC6C,IAAzC6B,EAAcxB,QAAQyB,QAAQR,IACe,IAA7CO,EAAcvB,UAAUwB,QAAQL,GAIhC,OAFAI,EAActB,OAASsB,EAActB,OAAOwB,IAAIJ,GAChDE,EAAcT,iBAAmBA,EAC1BrB,KAcf,OAVAA,KAAKC,gBAAgBgC,KACjB,IAAIC,EAAc,CACd5B,UACAC,YACAc,iBAAkBA,EAClBb,SACAY,gBAIDpB,IACf,CAQI,gBAAAK,CAAiBC,EAASC,EAAWC,GACjC,OAAOR,KAAKmB,kBAAkBb,EAASC,EAAWC,GAAQ,EAAO,KACzE,CAUI,eAAAU,CACIE,EACAN,EACAC,EACAC,EACAC,GAIA,IAAIkB,EACAC,EACAC,EAEJ,GANArC,KAAKsB,oBAMDR,aAA0BwB,EAC1BH,EAAQrB,EACRsB,EAC6C,iBAAlCrB,EACDY,EAAUF,WAAWV,GAC3C,EACYsB,EACkD,iBAAvCrB,EACDW,EAAUF,WAAWT,GAC3C,OAGe,GAAIF,aAA0BU,EACjCW,EAAQ,IAAIG,EACRxB,EAChB,GAEYsB,EACkD,iBAAvCpB,EACDW,EAAUF,WAAWT,GAC3C,EAGYqB,EACwB,iBAAbpB,EACDU,EAAUF,WAAWR,GAC3C,OAEY,IACIkB,EAAQG,EAAMb,WAAWX,GACzBsB,EAC6C,iBAAlCrB,EACDY,EAAUF,WAAWV,GAC/C,EAGgBsB,EACkD,iBAAvCrB,EACDW,EAAUF,WACNT,GAE9B,CAGa,CAAC,MAAOuB,GACL,MAAMjC,EAAUkB,EAAQC,WAAWX,GACnCqB,EAAQ,IAAIG,EACRhC,EACpB,GAEgB8B,EACkD,iBAAvCpB,EACDW,EAAUF,WACNT,GAE9B,EAGgBqB,EACwB,iBAAbpB,EACDU,EAAUF,WAAWR,GAC/C,CACA,CAGQ,IAAK,MAAMuB,KAAexC,KAAKE,cAC3B,GACmD,IAA/CsC,EAAYlC,QAAQyB,QAAQI,EAAM7B,UACiB,IAAnDkC,EAAYC,aAAaV,QAAQI,EAAMxB,QAIvC,OAFA6B,EAAYJ,gBAAkBA,EAC9BI,EAAYH,kBAAoBA,EACzBrC,KAcf,OAVAA,KAAKE,cAAc+B,KACf,IAAIS,EAAiB,CACjBpC,QAAS6B,EAAM7B,QACfmC,aAAcN,EAAMxB,OACpByB,kBACAC,oBACAjB,gBAIDpB,IACf,CASI,sBAAA2C,CACI7B,EACAC,EACAC,EACAC,GAEA,OAAOjB,KAAKkB,iBACR,EACAJ,EACAC,EACAC,EACAC,EAEZ,CAQI,wBAAA2B,CAAyBtC,EAASC,EAAWC,GACzC,OAAOR,KAAKmB,kBAAkBb,EAASC,EAAWC,GAAQ,EAAM,KACxE,CASI,4BAAAqC,CAA6BvC,EAASC,EAAWC,EAAQsC,GACrD9C,KAAKsB,oBAEL,MAAMC,EACFjB,aAAmBkB,EAAUlB,EAAUkB,EAAQC,WAAWnB,GACxDoB,EACFnB,aAAqBoB,EACfpB,EACAoB,EAAUF,WAAWlB,GACzBqB,EAAQC,EAAoBrB,GAElC,IAAIuC,GAAQ,EAEZ,IAAK,MAAMjB,KAAiB9B,KAAKC,gBAC7B,GAA6C,IAAzC6B,EAAcxB,QAAQyB,QAAQR,GAAc,CAC5C,GACsC,MAAlCO,EAAcT,kBACdS,EAAcT,mBAAqByB,EAEnC,MAAM,IAAIE,MAAM,+BAEhBlB,EAAcT,iBAAmByB,EAGY,IAA7ChB,EAAcvB,UAAUwB,QAAQL,KAChCI,EAActB,OAASsB,EAActB,OAAOwB,IAAIJ,GAChDE,EAAcT,iBAAmByB,EACjCC,GAAQ,EAE5B,CAGQ,OAAIA,GAIJ/C,KAAKC,gBAAgBgC,KACjB,IAAIC,EAAc,CACd5B,UACAC,YACAc,iBAAkByB,EAClBtC,SACAY,YAAY,KATTpB,IAcnB,CAKI,mBAAIiD,GACA,MAAMC,EAAM,IAAIC,EAEhB,IAAK,MAAMhD,KAAYH,KAAKC,gBACxBiD,EAAIE,KAAKjD,EAASG,QAASH,EAASkB,kBAGxC,OAAO6B,CACf,CAKI,gBAAIzC,GACA,MAAMyC,EAAM,IAAIG,EAEhB,IAAK,MAAMlD,KAAYH,KAAKE,cAAe,CACvC,MAAMoD,EAAeJ,EAAIK,IAAIpD,EAASG,SAEhCkC,EAAc,CAChB5B,OAAQT,EAASiC,gBACjBvB,UAAWV,EAASkC,kBACpB1B,OAAQR,EAASsC,aACjBrB,WAAYjB,EAASiB,YAGL,MAAhBkC,EACAA,EAAarB,KAAKO,GAElBU,EAAIE,KAAKjD,EAASG,QAAS,CAACkC,GAE5C,CAEQ,OAAOU,CACf,CAKI,kBAAI9C,GACA,MAAM8C,EAAM,IAAIM,EAEhB,IAAK,MAAMrD,KAAYH,KAAKC,gBAAiB,CACzC,IAAIwD,EAAcP,EAAIK,IAAIpD,EAASG,SAEhB,MAAfmD,EACAA,EAAYL,KAAKjD,EAASI,UAAWJ,EAASK,SAE9CiD,EAAc,IAAIC,EAClBD,EAAYL,KAAKjD,EAASI,UAAWJ,EAASK,QAC9C0C,EAAIE,KAAKjD,EAASG,QAASmD,GAE3C,CAEQ,OAAOP,CACf,CAOI,oBAAAS,GAEI,MAAMC,EAAoB,GAE1B5D,KAAKC,gBAAgB4D,KAAK,CAACC,EAAGC,KAC1B,MAAMhC,EAAU+B,EAAExD,QAAQyB,QAAQgC,EAAEzD,SAEpC,OAAgB,IAAZyB,EACOA,EAGJ+B,EAAEvD,UAAUwB,QAAQgC,EAAExD,aAGjCP,KAAKE,cAAc2D,KAAK,CAACC,EAAGC,KACxB,MAAMC,EAAoBF,EAAE1B,gBAAgBL,QACxCgC,EAAE3B,iBAEN,GAAyB,GAArB4B,EACA,OAAOA,EAGX,MAAMC,EAAuBH,EAAEzB,kBAAkBN,QAC7CgC,EAAE1B,mBAEN,OAA4B,GAAxB4B,EACOA,EAGJH,EAAErB,aAAaV,QAAQgC,EAAEtB,gBAGpC,IAAIyB,EAAI,EACJC,EAAI,EACR,KACID,EAAIlE,KAAKC,gBAAgBmE,QACzBD,EAAInE,KAAKE,cAAckE,QAEvB,GACIF,EAAIlE,KAAKC,gBAAgBmE,QACzBD,EAAInE,KAAKE,cAAckE,OACzB,CACE,MAAMC,EAAWrE,KAAKC,gBAAgBiE,GAAG5D,QACnCgE,EAAWtE,KAAKE,cAAciE,GAAG7D,QAEjCiE,EACFX,EAAkBQ,OAAS,EACrBR,EAAkBA,EAAkBQ,OAAS,GAC7C,KACJI,EAAsB,MAARD,EAAeA,EAAKjE,QAAU,KAElD,GACY,MAARiE,GACe,MAAfC,GACkC,IAAlCA,EAAYzC,QAAQsC,GACtB,CACEE,EAAKE,UAAUxC,KAAKjC,KAAKC,gBAAgBiE,MACzC,QACpB,CAEgB,GACY,MAARK,GACe,MAAfC,GACkC,IAAlCA,EAAYzC,QAAQuC,GACtB,CACEC,EAAK9D,aAAawB,KAAKjC,KAAKE,cAAciE,MAC1C,QACpB,CAEgB,MAAMO,EAASL,EAAStC,QAAQuC,GAEjB,IAAXI,EACAd,EAAkB3B,KAAK,CACnB3B,QAAS+D,EACThD,iBACIrB,KAAKC,gBAAgBiE,GAAG7C,iBAC5BoD,UAAW,CAACzE,KAAKC,gBAAgBiE,MACjCzD,aAAc,CAACT,KAAKE,cAAciE,QAE/BO,EAAS,EAChBd,EAAkB3B,KAAK,CACnB3B,QAAS+D,EACThD,iBACIrB,KAAKC,gBAAgBiE,GAAG7C,iBAC5BoD,UAAW,CAACzE,KAAKC,gBAAgBiE,MACjCzD,aAAc,KAGlBmD,EAAkB3B,KAAK,CACnB3B,QAASgE,EACTjD,iBAAkB,KAClBoD,UAAW,GACXhE,aAAc,CAACT,KAAKE,cAAciE,OAG7C,MAAM,GAAID,EAAIlE,KAAKC,gBAAgBmE,OAAQ,CACxC,MAAMC,EAAWrE,KAAKC,gBAAgBiE,GAAG5D,QAEzC,IAAIiE,EACJ,IAAK,MAAMpE,KAAYyD,EACwB,IAAvCzD,EAASG,QAAQyB,QAAQsC,KACzBE,EAAOpE,GAGf,MAAMqE,EAAsB,MAARD,EAAeA,EAAKjE,QAAU,KAElD,GACY,MAARiE,GACe,MAAfC,GACkC,IAAlCA,EAAYzC,QAAQsC,GACtB,CACEE,EAAKE,UAAUxC,KAAKjC,KAAKC,gBAAgBiE,MACzC,QACpB,CAEgBN,EAAkB3B,KAAK,CACnB3B,QAAS+D,EACThD,iBAAkBrB,KAAKC,gBAAgBiE,GAAG7C,iBAC1CoD,UAAW,CAACzE,KAAKC,gBAAgBiE,MACjCzD,aAAc,IAErB,MAAM,GAAI0D,EAAInE,KAAKE,cAAckE,OAAQ,CACtC,MAAME,EAAWtE,KAAKE,cAAciE,GAAG7D,QAEvC,IAAIiE,EACJ,IAAK,MAAMpE,KAAYyD,EACwB,IAAvCzD,EAASG,QAAQyB,QAAQuC,KACzBC,EAAOpE,GAGf,MAAMqE,EAAsB,MAARD,EAAeA,EAAKjE,QAAU,KAElD,GACY,MAARiE,GACe,MAAfC,GACkC,IAAlCA,EAAYzC,QAAQuC,GACtB,CACEC,EAAK9D,aAAawB,KAAKjC,KAAKE,cAAciE,MAC1C,QACpB,CAEgBP,EAAkB3B,KAAK,CACnB3B,QAASgE,EACTjD,iBAAkB,KAClBoD,UAAW,GACXhE,aAAc,CAACT,KAAKE,cAAciE,OAEtD,CAGQ,MAAO,CACH/D,eAAgBwD,EAAkBV,IAAKpB,IAC5B,CACHP,MAAOO,EAAcxB,QAAQqE,cAC7BtD,iBACsC,MAAlCS,EAAcT,iBACR,CAAEO,MAAOE,EAAcT,kBACvB,KACVoD,UAAW3C,EAAc2C,UAAUvB,IAAK/C,GACpCA,EAASwE,eAEblE,aAAcqB,EAAcrB,aAAayC,IAAK/C,GAC1CA,EAASwE,kBAKjC"}
@@ -6,10 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _TokenId = _interopRequireDefault(require("./TokenId.cjs"));
8
8
  var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
9
- var _long = _interopRequireDefault(require("long"));
9
+ var _util = require("../util.cjs");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  // SPDX-License-Identifier: Apache-2.0
12
12
 
13
+ /**
14
+ * @typedef {import("bignumber.js").default} BigNumber
15
+ */
16
+
13
17
  /**
14
18
  * @namespace proto
15
19
  * @typedef {import("@hashgraph/proto").proto.IAssessedCustomFee} HieroProto.proto.IAssessedCustomFee
@@ -33,7 +37,7 @@ class AssessedCustomFee {
33
37
  * @param {object} props
34
38
  * @param {AccountId | string} [props.feeCollectorAccountId]
35
39
  * @param {TokenId | string} [props.tokenId]
36
- * @param {Long | number} [props.amount]
40
+ * @param {Long | number | BigNumber | bigint} [props.amount]
37
41
  * @param {AccountId[]} [props.payerAccountIds]
38
42
  */
39
43
  constructor(props = {}) {
@@ -110,11 +114,11 @@ class AssessedCustomFee {
110
114
  }
111
115
 
112
116
  /**
113
- * @param {Long | number} amount
117
+ * @param {Long | number | BigNumber | bigint} amount
114
118
  * @returns {AssessedCustomFee}
115
119
  */
116
120
  setAmount(amount) {
117
- this._amount = typeof amount === "number" ? _long.default.fromNumber(amount) : amount;
121
+ this._amount = (0, _util.convertAmountToLong)(amount);
118
122
  return this;
119
123
  }
120
124
 
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @typedef {import("bignumber.js").default} BigNumber
3
+ */
1
4
  /**
2
5
  * @namespace proto
3
6
  * @typedef {import("@hashgraph/proto").proto.IAssessedCustomFee} HieroProto.proto.IAssessedCustomFee
@@ -25,13 +28,13 @@ export default class AssessedCustomFee {
25
28
  * @param {object} props
26
29
  * @param {AccountId | string} [props.feeCollectorAccountId]
27
30
  * @param {TokenId | string} [props.tokenId]
28
- * @param {Long | number} [props.amount]
31
+ * @param {Long | number | BigNumber | bigint} [props.amount]
29
32
  * @param {AccountId[]} [props.payerAccountIds]
30
33
  */
31
34
  constructor(props?: {
32
35
  feeCollectorAccountId?: string | AccountId | undefined;
33
36
  tokenId?: string | TokenId | undefined;
34
- amount?: number | Long | undefined;
37
+ amount?: number | bigint | import("long") | import("bignumber.js").BigNumber | undefined;
35
38
  payerAccountIds?: AccountId[] | undefined;
36
39
  });
37
40
  /**
@@ -73,10 +76,10 @@ export default class AssessedCustomFee {
73
76
  */
74
77
  get amount(): Long | null;
75
78
  /**
76
- * @param {Long | number} amount
79
+ * @param {Long | number | BigNumber | bigint} amount
77
80
  * @returns {AssessedCustomFee}
78
81
  */
79
- setAmount(amount: Long | number): AssessedCustomFee;
82
+ setAmount(amount: Long | number | BigNumber | bigint): AssessedCustomFee;
80
83
  /**
81
84
  * @returns {?AccountId[]}
82
85
  */
@@ -97,6 +100,7 @@ export default class AssessedCustomFee {
97
100
  */
98
101
  toJSON(): AssessedCustomFeeJSON;
99
102
  }
103
+ export type BigNumber = import("bignumber.js").default;
100
104
  export namespace HieroProto {
101
105
  namespace proto {
102
106
  type IAssessedCustomFee = import("@hashgraph/proto").proto.IAssessedCustomFee;
@@ -110,4 +114,3 @@ export type AssessedCustomFeeJSON = {
110
114
  };
111
115
  import AccountId from "../account/AccountId.js";
112
116
  import TokenId from "./TokenId.js";
113
- import Long from "long";
@@ -1,2 +1,2 @@
1
- import t from"./TokenId.js";import o from"../account/AccountId.js";import e from"long";class n{constructor(t={}){this._feeCollectorAccountId=null,null!=t.feeCollectorAccountId&&this.setFeeCollectorAccountId(t.feeCollectorAccountId),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),this._amount=null,null!=t.amount&&this.setAmount(t.amount),this._payerAccountIds=null,null!=t.payerAccountIds&&this.setPayerAccountIds(t.payerAccountIds)}get feeCollectorAccountId(){return this._feeCollectorAccountId}setFeeCollectorAccountId(t){return this._feeCollectorAccountId="string"==typeof t?o.fromString(t):t,this}get tokenId(){return this._tokenId}setTokenId(o){return this._tokenId="string"==typeof o?t.fromString(o):o,this}get amount(){return this._amount}setAmount(t){return this._amount="number"==typeof t?e.fromNumber(t):t,this}get payerAccountIds(){return this._payerAccountIds}setPayerAccountIds(t){return this._payerAccountIds=t,this}static _fromProtobuf(e){return new n({feeCollectorAccountId:null!=e.feeCollectorAccountId?o._fromProtobuf(e.feeCollectorAccountId):void 0,tokenId:null!=e.tokenId?t._fromProtobuf(e.tokenId):void 0,amount:null!=e.amount?e.amount:void 0,payerAccountIds:null!=e.effectivePayerAccountId?e.effectivePayerAccountId.map(t=>o._fromProtobuf(t)):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,amount:this._amount,effectivePayerAccountId:null!=this._payerAccountIds?this._payerAccountIds.map(t=>t._toProtobuf()):null}}toJSON(){return{feeCollectorAccountId:this.feeCollectorAccountId?.toString()||null,tokenId:this._tokenId?.toString()||null,amount:this._amount?.toString()||null,payerAccountIds:this._payerAccountIds?.map(t=>t.toString())||[]}}}export{n as default};
1
+ import t from"./TokenId.js";import o from"../account/AccountId.js";import{convertAmountToLong as e}from"../util.js";class n{constructor(t={}){this._feeCollectorAccountId=null,null!=t.feeCollectorAccountId&&this.setFeeCollectorAccountId(t.feeCollectorAccountId),this._tokenId=null,null!=t.tokenId&&this.setTokenId(t.tokenId),this._amount=null,null!=t.amount&&this.setAmount(t.amount),this._payerAccountIds=null,null!=t.payerAccountIds&&this.setPayerAccountIds(t.payerAccountIds)}get feeCollectorAccountId(){return this._feeCollectorAccountId}setFeeCollectorAccountId(t){return this._feeCollectorAccountId="string"==typeof t?o.fromString(t):t,this}get tokenId(){return this._tokenId}setTokenId(o){return this._tokenId="string"==typeof o?t.fromString(o):o,this}get amount(){return this._amount}setAmount(t){return this._amount=e(t),this}get payerAccountIds(){return this._payerAccountIds}setPayerAccountIds(t){return this._payerAccountIds=t,this}static _fromProtobuf(e){return new n({feeCollectorAccountId:null!=e.feeCollectorAccountId?o._fromProtobuf(e.feeCollectorAccountId):void 0,tokenId:null!=e.tokenId?t._fromProtobuf(e.tokenId):void 0,amount:null!=e.amount?e.amount:void 0,payerAccountIds:null!=e.effectivePayerAccountId?e.effectivePayerAccountId.map(t=>o._fromProtobuf(t)):void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,tokenId:null!=this._tokenId?this._tokenId._toProtobuf():null,amount:this._amount,effectivePayerAccountId:null!=this._payerAccountIds?this._payerAccountIds.map(t=>t._toProtobuf()):null}}toJSON(){return{feeCollectorAccountId:this.feeCollectorAccountId?.toString()||null,tokenId:this._tokenId?.toString()||null,amount:this._amount?.toString()||null,payerAccountIds:this._payerAccountIds?.map(t=>t.toString())||[]}}}export{n as default};
2
2
  //# sourceMappingURL=AssessedCustomFee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssessedCustomFee.js","sources":["../../src/token/AssessedCustomFee.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Long from \"long\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IAssessedCustomFee} HieroProto.proto.IAssessedCustomFee\n */\n\n/**\n * @typedef {object} AssessedCustomFeeJSON\n * @property {?string} feeCollectorAccountId\n * @property {?string} tokenId\n * @property {?string} amount\n * @property {string[]} payerAccountIds\n */\n\n/**\n * Represents an assessed custom fee that has been evaluated and attached to a transaction.\n * This includes details about who collects the fee, which token the fee is paid in,\n * the amount of the fee, and which accounts are responsible for paying it.\n */\nexport default class AssessedCustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long | number} [props.amount]\n * @param {AccountId[]} [props.payerAccountIds]\n */\n constructor(props = {}) {\n /**\n * @type {?AccountId}\n */\n this._feeCollectorAccountId = null;\n\n if (props.feeCollectorAccountId != null) {\n this.setFeeCollectorAccountId(props.feeCollectorAccountId);\n }\n\n /**\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n /**\n * @type {?AccountId[]}\n */\n this._payerAccountIds = null;\n\n if (props.payerAccountIds != null) {\n this.setPayerAccountIds(props.payerAccountIds);\n }\n }\n\n /**\n * @returns {?AccountId}\n */\n get feeCollectorAccountId() {\n return this._feeCollectorAccountId;\n }\n\n /**\n * @param {AccountId | string} feeCollectorAccountId\n * @returns {this}\n */\n setFeeCollectorAccountId(feeCollectorAccountId) {\n this._feeCollectorAccountId =\n typeof feeCollectorAccountId === \"string\"\n ? AccountId.fromString(feeCollectorAccountId)\n : feeCollectorAccountId;\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._tokenId =\n typeof tokenId === \"string\" ? TokenId.fromString(tokenId) : tokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {AssessedCustomFee}\n */\n setAmount(amount) {\n this._amount =\n typeof amount === \"number\" ? Long.fromNumber(amount) : amount;\n return this;\n }\n\n /**\n * @returns {?AccountId[]}\n */\n get payerAccountIds() {\n return this._payerAccountIds;\n }\n\n /**\n * @param {AccountId[]} payerAccountIds\n * @returns {AssessedCustomFee}\n */\n setPayerAccountIds(payerAccountIds) {\n this._payerAccountIds = payerAccountIds;\n return this;\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.IAssessedCustomFee} fee\n * @returns {AssessedCustomFee}\n */\n static _fromProtobuf(fee) {\n return new AssessedCustomFee({\n feeCollectorAccountId:\n fee.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(fee.feeCollectorAccountId)\n : undefined,\n tokenId:\n fee.tokenId != null\n ? TokenId._fromProtobuf(fee.tokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n payerAccountIds:\n fee.effectivePayerAccountId != null\n ? fee.effectivePayerAccountId.map((id) =>\n AccountId._fromProtobuf(id),\n )\n : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.IAssessedCustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n tokenId: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n amount: this._amount,\n effectivePayerAccountId:\n this._payerAccountIds != null\n ? this._payerAccountIds.map((id) => id._toProtobuf())\n : null,\n };\n }\n\n /**\n * @returns {AssessedCustomFeeJSON}\n */\n toJSON() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId?.toString() || null,\n tokenId: this._tokenId?.toString() || null,\n amount: this._amount?.toString() || null,\n payerAccountIds:\n this._payerAccountIds?.map((id) => id.toString()) || [],\n };\n }\n}\n"],"names":["AssessedCustomFee","constructor","props","this","_feeCollectorAccountId","feeCollectorAccountId","setFeeCollectorAccountId","_tokenId","tokenId","setTokenId","_amount","amount","setAmount","_payerAccountIds","payerAccountIds","setPayerAccountIds","AccountId","fromString","TokenId","Long","fromNumber","_fromProtobuf","fee","undefined","effectivePayerAccountId","map","id","_toProtobuf","toJSON","toString"],"mappings":"uFAwBe,MAAMA,EAQjB,WAAAC,CAAYC,EAAQ,IAIhBC,KAAKC,uBAAyB,KAEK,MAA/BF,EAAMG,uBACNF,KAAKG,yBAAyBJ,EAAMG,uBAMxCF,KAAKI,SAAW,KAEK,MAAjBL,EAAMM,SACNL,KAAKM,WAAWP,EAAMM,SAM1BL,KAAKO,QAAU,KAEK,MAAhBR,EAAMS,QACNR,KAAKS,UAAUV,EAAMS,QAMzBR,KAAKU,iBAAmB,KAEK,MAAzBX,EAAMY,iBACNX,KAAKY,mBAAmBb,EAAMY,gBAE1C,CAKI,yBAAIT,GACA,OAAOF,KAAKC,sBACpB,CAMI,wBAAAE,CAAyBD,GAKrB,OAJAF,KAAKC,uBACgC,iBAA1BC,EACDW,EAAUC,WAAWZ,GACrBA,EACHF,IACf,CAKI,WAAIK,GACA,OAAOL,KAAKI,QACpB,CAMI,UAAAE,CAAWD,GAGP,OAFAL,KAAKI,SACkB,iBAAZC,EAAuBU,EAAQD,WAAWT,GAAWA,EACzDL,IACf,CAKI,UAAIQ,GACA,OAAOR,KAAKO,OACpB,CAMI,SAAAE,CAAUD,GAGN,OAFAR,KAAKO,QACiB,iBAAXC,EAAsBQ,EAAKC,WAAWT,GAAUA,EACpDR,IACf,CAKI,mBAAIW,GACA,OAAOX,KAAKU,gBACpB,CAMI,kBAAAE,CAAmBD,GAEf,OADAX,KAAKU,iBAAmBC,EACjBX,IACf,CAOI,oBAAOkB,CAAcC,GACjB,OAAO,IAAItB,EAAkB,CACzBK,sBACiC,MAA7BiB,EAAIjB,sBACEW,EAAUK,cAAcC,EAAIjB,4BAC5BkB,EACVf,QACmB,MAAfc,EAAId,QACEU,EAAQG,cAAcC,EAAId,cAC1Be,EACVZ,OAAsB,MAAdW,EAAIX,OAAiBW,EAAIX,YAASY,EAC1CT,gBACmC,MAA/BQ,EAAIE,wBACEF,EAAIE,wBAAwBC,IAAKC,GAC7BV,EAAUK,cAAcK,SAE5BH,GAEtB,CAOI,WAAAI,GACI,MAAO,CACHtB,sBACkC,MAA9BF,KAAKE,sBACCF,KAAKE,sBAAsBsB,cAC3B,KACVnB,QAA0B,MAAjBL,KAAKI,SAAmBJ,KAAKI,SAASoB,cAAgB,KAC/DhB,OAAQR,KAAKO,QACbc,wBAC6B,MAAzBrB,KAAKU,iBACCV,KAAKU,iBAAiBY,IAAKC,GAAOA,EAAGC,eACrC,KAEtB,CAKI,MAAAC,GACI,MAAO,CACHvB,sBACIF,KAAKE,uBAAuBwB,YAAc,KAC9CrB,QAASL,KAAKI,UAAUsB,YAAc,KACtClB,OAAQR,KAAKO,SAASmB,YAAc,KACpCf,gBACIX,KAAKU,kBAAkBY,IAAKC,GAAOA,EAAGG,aAAe,GAErE"}
1
+ {"version":3,"file":"AssessedCustomFee.js","sources":["../../src/token/AssessedCustomFee.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"./TokenId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.IAssessedCustomFee} HieroProto.proto.IAssessedCustomFee\n */\n\n/**\n * @typedef {object} AssessedCustomFeeJSON\n * @property {?string} feeCollectorAccountId\n * @property {?string} tokenId\n * @property {?string} amount\n * @property {string[]} payerAccountIds\n */\n\n/**\n * Represents an assessed custom fee that has been evaluated and attached to a transaction.\n * This includes details about who collects the fee, which token the fee is paid in,\n * the amount of the fee, and which accounts are responsible for paying it.\n */\nexport default class AssessedCustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {TokenId | string} [props.tokenId]\n * @param {Long | number | BigNumber | bigint} [props.amount]\n * @param {AccountId[]} [props.payerAccountIds]\n */\n constructor(props = {}) {\n /**\n * @type {?AccountId}\n */\n this._feeCollectorAccountId = null;\n\n if (props.feeCollectorAccountId != null) {\n this.setFeeCollectorAccountId(props.feeCollectorAccountId);\n }\n\n /**\n * @type {?TokenId}\n */\n this._tokenId = null;\n\n if (props.tokenId != null) {\n this.setTokenId(props.tokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n\n /**\n * @type {?AccountId[]}\n */\n this._payerAccountIds = null;\n\n if (props.payerAccountIds != null) {\n this.setPayerAccountIds(props.payerAccountIds);\n }\n }\n\n /**\n * @returns {?AccountId}\n */\n get feeCollectorAccountId() {\n return this._feeCollectorAccountId;\n }\n\n /**\n * @param {AccountId | string} feeCollectorAccountId\n * @returns {this}\n */\n setFeeCollectorAccountId(feeCollectorAccountId) {\n this._feeCollectorAccountId =\n typeof feeCollectorAccountId === \"string\"\n ? AccountId.fromString(feeCollectorAccountId)\n : feeCollectorAccountId;\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get tokenId() {\n return this._tokenId;\n }\n\n /**\n * @param {TokenId | string} tokenId\n * @returns {this}\n */\n setTokenId(tokenId) {\n this._tokenId =\n typeof tokenId === \"string\" ? TokenId.fromString(tokenId) : tokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number | BigNumber | bigint} amount\n * @returns {AssessedCustomFee}\n */\n setAmount(amount) {\n this._amount = convertAmountToLong(amount);\n return this;\n }\n\n /**\n * @returns {?AccountId[]}\n */\n get payerAccountIds() {\n return this._payerAccountIds;\n }\n\n /**\n * @param {AccountId[]} payerAccountIds\n * @returns {AssessedCustomFee}\n */\n setPayerAccountIds(payerAccountIds) {\n this._payerAccountIds = payerAccountIds;\n return this;\n }\n\n /**\n * @internal\n * @param {HieroProto.proto.IAssessedCustomFee} fee\n * @returns {AssessedCustomFee}\n */\n static _fromProtobuf(fee) {\n return new AssessedCustomFee({\n feeCollectorAccountId:\n fee.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(fee.feeCollectorAccountId)\n : undefined,\n tokenId:\n fee.tokenId != null\n ? TokenId._fromProtobuf(fee.tokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n payerAccountIds:\n fee.effectivePayerAccountId != null\n ? fee.effectivePayerAccountId.map((id) =>\n AccountId._fromProtobuf(id),\n )\n : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.IAssessedCustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n tokenId: this._tokenId != null ? this._tokenId._toProtobuf() : null,\n amount: this._amount,\n effectivePayerAccountId:\n this._payerAccountIds != null\n ? this._payerAccountIds.map((id) => id._toProtobuf())\n : null,\n };\n }\n\n /**\n * @returns {AssessedCustomFeeJSON}\n */\n toJSON() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId?.toString() || null,\n tokenId: this._tokenId?.toString() || null,\n amount: this._amount?.toString() || null,\n payerAccountIds:\n this._payerAccountIds?.map((id) => id.toString()) || [],\n };\n }\n}\n"],"names":["AssessedCustomFee","constructor","props","this","_feeCollectorAccountId","feeCollectorAccountId","setFeeCollectorAccountId","_tokenId","tokenId","setTokenId","_amount","amount","setAmount","_payerAccountIds","payerAccountIds","setPayerAccountIds","AccountId","fromString","TokenId","convertAmountToLong","_fromProtobuf","fee","undefined","effectivePayerAccountId","map","id","_toProtobuf","toJSON","toString"],"mappings":"oHA4Be,MAAMA,EAQjB,WAAAC,CAAYC,EAAQ,IAIhBC,KAAKC,uBAAyB,KAEK,MAA/BF,EAAMG,uBACNF,KAAKG,yBAAyBJ,EAAMG,uBAMxCF,KAAKI,SAAW,KAEK,MAAjBL,EAAMM,SACNL,KAAKM,WAAWP,EAAMM,SAM1BL,KAAKO,QAAU,KAEK,MAAhBR,EAAMS,QACNR,KAAKS,UAAUV,EAAMS,QAMzBR,KAAKU,iBAAmB,KAEK,MAAzBX,EAAMY,iBACNX,KAAKY,mBAAmBb,EAAMY,gBAE1C,CAKI,yBAAIT,GACA,OAAOF,KAAKC,sBACpB,CAMI,wBAAAE,CAAyBD,GAKrB,OAJAF,KAAKC,uBACgC,iBAA1BC,EACDW,EAAUC,WAAWZ,GACrBA,EACHF,IACf,CAKI,WAAIK,GACA,OAAOL,KAAKI,QACpB,CAMI,UAAAE,CAAWD,GAGP,OAFAL,KAAKI,SACkB,iBAAZC,EAAuBU,EAAQD,WAAWT,GAAWA,EACzDL,IACf,CAKI,UAAIQ,GACA,OAAOR,KAAKO,OACpB,CAMI,SAAAE,CAAUD,GAEN,OADAR,KAAKO,QAAUS,EAAoBR,GAC5BR,IACf,CAKI,mBAAIW,GACA,OAAOX,KAAKU,gBACpB,CAMI,kBAAAE,CAAmBD,GAEf,OADAX,KAAKU,iBAAmBC,EACjBX,IACf,CAOI,oBAAOiB,CAAcC,GACjB,OAAO,IAAIrB,EAAkB,CACzBK,sBACiC,MAA7BgB,EAAIhB,sBACEW,EAAUI,cAAcC,EAAIhB,4BAC5BiB,EACVd,QACmB,MAAfa,EAAIb,QACEU,EAAQE,cAAcC,EAAIb,cAC1Bc,EACVX,OAAsB,MAAdU,EAAIV,OAAiBU,EAAIV,YAASW,EAC1CR,gBACmC,MAA/BO,EAAIE,wBACEF,EAAIE,wBAAwBC,IAAKC,GAC7BT,EAAUI,cAAcK,SAE5BH,GAEtB,CAOI,WAAAI,GACI,MAAO,CACHrB,sBACkC,MAA9BF,KAAKE,sBACCF,KAAKE,sBAAsBqB,cAC3B,KACVlB,QAA0B,MAAjBL,KAAKI,SAAmBJ,KAAKI,SAASmB,cAAgB,KAC/Df,OAAQR,KAAKO,QACba,wBAC6B,MAAzBpB,KAAKU,iBACCV,KAAKU,iBAAiBW,IAAKC,GAAOA,EAAGC,eACrC,KAEtB,CAKI,MAAAC,GACI,MAAO,CACHtB,sBACIF,KAAKE,uBAAuBuB,YAAc,KAC9CpB,QAASL,KAAKI,UAAUqB,YAAc,KACtCjB,OAAQR,KAAKO,SAASkB,YAAc,KACpCd,gBACIX,KAAKU,kBAAkBW,IAAKC,GAAOA,EAAGG,aAAe,GAErE"}
@@ -7,11 +7,15 @@ exports.default = void 0;
7
7
  var _TokenId = _interopRequireDefault(require("./TokenId.cjs"));
8
8
  var _CustomFee = _interopRequireDefault(require("./CustomFee.cjs"));
9
9
  var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
10
- var _long = _interopRequireDefault(require("long"));
11
10
  var _Hbar = _interopRequireDefault(require("../Hbar.cjs"));
11
+ var _util = require("../util.cjs");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  // SPDX-License-Identifier: Apache-2.0
14
14
 
15
+ /**
16
+ * @typedef {import("bignumber.js").default} BigNumber
17
+ */
18
+
15
19
  /**
16
20
  * @namespace proto
17
21
  * @typedef {import("@hashgraph/proto").proto.ICustomFee} HieroProto.proto.ICustomFee
@@ -25,7 +29,7 @@ class CustomFixedFee extends _CustomFee.default {
25
29
  * @param {AccountId | string} [props.feeCollectorAccountId]
26
30
  * @param {boolean} [props.allCollectorsAreExempt]
27
31
  * @param {TokenId | string} [props.denominatingTokenId]
28
- * @param {Long | number} [props.amount]
32
+ * @param {Long | number | BigNumber | bigint} [props.amount]
29
33
  */
30
34
  constructor(props = {}) {
31
35
  super(props);
@@ -96,11 +100,11 @@ class CustomFixedFee extends _CustomFee.default {
96
100
  }
97
101
 
98
102
  /**
99
- * @param {Long | number} amount
103
+ * @param {Long | number | BigNumber | bigint} amount
100
104
  * @returns {CustomFixedFee}
101
105
  */
102
106
  setAmount(amount) {
103
- this._amount = typeof amount === "number" ? _long.default.fromNumber(amount) : amount;
107
+ this._amount = (0, _util.convertAmountToLong)(amount);
104
108
  return this;
105
109
  }
106
110
 
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @typedef {import("bignumber.js").default} BigNumber
3
+ */
1
4
  /**
2
5
  * @namespace proto
3
6
  * @typedef {import("@hashgraph/proto").proto.ICustomFee} HieroProto.proto.ICustomFee
@@ -17,13 +20,13 @@ export default class CustomFixedFee extends CustomFee {
17
20
  * @param {AccountId | string} [props.feeCollectorAccountId]
18
21
  * @param {boolean} [props.allCollectorsAreExempt]
19
22
  * @param {TokenId | string} [props.denominatingTokenId]
20
- * @param {Long | number} [props.amount]
23
+ * @param {Long | number | BigNumber | bigint} [props.amount]
21
24
  */
22
25
  constructor(props?: {
23
26
  feeCollectorAccountId?: string | AccountId | undefined;
24
27
  allCollectorsAreExempt?: boolean | undefined;
25
28
  denominatingTokenId?: string | TokenId | undefined;
26
- amount?: number | Long | undefined;
29
+ amount?: number | bigint | import("long") | import("bignumber.js").BigNumber | undefined;
27
30
  });
28
31
  /**
29
32
  * @type {?TokenId}
@@ -60,10 +63,10 @@ export default class CustomFixedFee extends CustomFee {
60
63
  */
61
64
  get amount(): Long | null;
62
65
  /**
63
- * @param {Long | number} amount
66
+ * @param {Long | number | BigNumber | bigint} amount
64
67
  * @returns {CustomFixedFee}
65
68
  */
66
- setAmount(amount: Long | number): CustomFixedFee;
69
+ setAmount(amount: Long | number | BigNumber | bigint): CustomFixedFee;
67
70
  /**
68
71
  * @internal
69
72
  * @abstract
@@ -71,6 +74,7 @@ export default class CustomFixedFee extends CustomFee {
71
74
  */
72
75
  _toTopicFeeProtobuf(): HieroProto.proto.IFixedCustomFee;
73
76
  }
77
+ export type BigNumber = import("bignumber.js").default;
74
78
  export namespace HieroProto {
75
79
  namespace proto {
76
80
  type ICustomFee = import("@hashgraph/proto").proto.ICustomFee;
@@ -80,6 +84,5 @@ export namespace HieroProto {
80
84
  }
81
85
  import CustomFee from "./CustomFee.js";
82
86
  import TokenId from "./TokenId.js";
83
- import Long from "long";
84
87
  import Hbar from "../Hbar.js";
85
88
  import AccountId from "../account/AccountId.js";
@@ -1,2 +1,2 @@
1
- import n from"./TokenId.js";import o from"./CustomFee.js";import t from"../account/AccountId.js";import e from"long";import i from"../Hbar.js";class l extends o{constructor(n={}){super(n),this._denominatingTokenId=null,null!=n.denominatingTokenId&&this.setDenominatingTokenId(n.denominatingTokenId),this._amount=null,null!=n.amount&&this.setAmount(n.amount)}setHbarAmount(n){return this._amount=n.toTinybars(),this._denominatingTokenId=null,this}get hbarAmount(){return null!=this._denominatingTokenId?null:i.fromTinybars(null!=this._amount?this._amount:0)}setDenominatingTokenToSameToken(){return this._denominatingTokenId=new n(0,0,0),this}get denominatingTokenId(){return this._denominatingTokenId}setDenominatingTokenId(o){return this._denominatingTokenId="string"==typeof o?n.fromString(o):o,this}get amount(){return this._amount}setAmount(n){return this._amount="number"==typeof n?e.fromNumber(n):n,this}static _fromProtobuf(o){const e=o.fixedFee;return new l({feeCollectorAccountId:null!=o.feeCollectorAccountId?t._fromProtobuf(o.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=o.allCollectorsAreExempt?o.allCollectorsAreExempt:void 0,denominatingTokenId:null!=e.denominatingTokenId?n._fromProtobuf(e.denominatingTokenId):void 0,amount:null!=e.amount?e.amount:void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,fixedFee:{denominatingTokenId:null!=this._denominatingTokenId?this._denominatingTokenId._toProtobuf():null,amount:this._amount}}}_toTopicFeeProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,fixedFee:{denominatingTokenId:null!=this._denominatingTokenId?this._denominatingTokenId._toProtobuf():null,amount:this._amount}}}}export{l as default};
1
+ import n from"./TokenId.js";import o from"./CustomFee.js";import t from"../account/AccountId.js";import e from"../Hbar.js";import{convertAmountToLong as i}from"../util.js";class l extends o{constructor(n={}){super(n),this._denominatingTokenId=null,null!=n.denominatingTokenId&&this.setDenominatingTokenId(n.denominatingTokenId),this._amount=null,null!=n.amount&&this.setAmount(n.amount)}setHbarAmount(n){return this._amount=n.toTinybars(),this._denominatingTokenId=null,this}get hbarAmount(){return null!=this._denominatingTokenId?null:e.fromTinybars(null!=this._amount?this._amount:0)}setDenominatingTokenToSameToken(){return this._denominatingTokenId=new n(0,0,0),this}get denominatingTokenId(){return this._denominatingTokenId}setDenominatingTokenId(o){return this._denominatingTokenId="string"==typeof o?n.fromString(o):o,this}get amount(){return this._amount}setAmount(n){return this._amount=i(n),this}static _fromProtobuf(o){const e=o.fixedFee;return new l({feeCollectorAccountId:null!=o.feeCollectorAccountId?t._fromProtobuf(o.feeCollectorAccountId):void 0,allCollectorsAreExempt:null!=o.allCollectorsAreExempt?o.allCollectorsAreExempt:void 0,denominatingTokenId:null!=e.denominatingTokenId?n._fromProtobuf(e.denominatingTokenId):void 0,amount:null!=e.amount?e.amount:void 0})}_toProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,allCollectorsAreExempt:this.allCollectorsAreExempt,fixedFee:{denominatingTokenId:null!=this._denominatingTokenId?this._denominatingTokenId._toProtobuf():null,amount:this._amount}}}_toTopicFeeProtobuf(){return{feeCollectorAccountId:null!=this.feeCollectorAccountId?this.feeCollectorAccountId._toProtobuf():null,fixedFee:{denominatingTokenId:null!=this._denominatingTokenId?this._denominatingTokenId._toProtobuf():null,amount:this._amount}}}}export{l as default};
2
2
  //# sourceMappingURL=CustomFixedFee.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomFixedFee.js","sources":["../../src/token/CustomFixedFee.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"./TokenId.js\";\nimport CustomFee from \"./CustomFee.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Long from \"long\";\nimport Hbar from \"../Hbar.js\";\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HieroProto.proto.ICustomFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedFee} HieroProto.proto.IFixedFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedCustomFee} HieroProto.proto.IFixedCustomFee\n */\n\nexport default class CustomFixedFee extends CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n * @param {TokenId | string} [props.denominatingTokenId]\n * @param {Long | number} [props.amount]\n */\n constructor(props = {}) {\n super(props);\n\n /**\n * @type {?TokenId}\n */\n this._denominatingTokenId = null;\n\n if (props.denominatingTokenId != null) {\n this.setDenominatingTokenId(props.denominatingTokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n }\n\n /**\n * @param {Hbar} amount\n * @returns {CustomFixedFee}\n */\n setHbarAmount(amount) {\n this._amount = amount.toTinybars();\n this._denominatingTokenId = null;\n return this;\n }\n\n /**\n * @returns {TokenId | Hbar | null}\n */\n get hbarAmount() {\n return this._denominatingTokenId != null\n ? null\n : Hbar.fromTinybars(this._amount != null ? this._amount : 0);\n }\n\n /**\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenToSameToken() {\n this._denominatingTokenId = new TokenId(0, 0, 0);\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get denominatingTokenId() {\n return this._denominatingTokenId;\n }\n\n /**\n * @param {TokenId | string} denominatingTokenId\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenId(denominatingTokenId) {\n this._denominatingTokenId =\n typeof denominatingTokenId === \"string\"\n ? TokenId.fromString(denominatingTokenId)\n : denominatingTokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number} amount\n * @returns {CustomFixedFee}\n */\n setAmount(amount) {\n this._amount =\n typeof amount === \"number\" ? Long.fromNumber(amount) : amount;\n return this;\n }\n\n /**\n * @internal\n * @override\n * @param {HieroProto.proto.ICustomFee} info\n * @returns {CustomFixedFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n const fee = /** @type {HieroProto.proto.IFixedFee} */ (info.fixedFee);\n\n return new CustomFixedFee({\n feeCollectorAccountId:\n info.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(info.feeCollectorAccountId)\n : undefined,\n allCollectorsAreExempt:\n info.allCollectorsAreExempt != null\n ? info.allCollectorsAreExempt\n : undefined,\n denominatingTokenId:\n fee.denominatingTokenId != null\n ? TokenId._fromProtobuf(fee.denominatingTokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.ICustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n allCollectorsAreExempt: this.allCollectorsAreExempt,\n fixedFee: {\n denominatingTokenId:\n this._denominatingTokenId != null\n ? this._denominatingTokenId._toProtobuf()\n : null,\n amount: this._amount,\n },\n };\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.IFixedCustomFee}\n */\n _toTopicFeeProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n fixedFee: {\n denominatingTokenId:\n this._denominatingTokenId != null\n ? this._denominatingTokenId._toProtobuf()\n : null,\n amount: this._amount,\n },\n };\n }\n}\n"],"names":["CustomFixedFee","CustomFee","constructor","props","super","this","_denominatingTokenId","denominatingTokenId","setDenominatingTokenId","_amount","amount","setAmount","setHbarAmount","toTinybars","hbarAmount","Hbar","fromTinybars","setDenominatingTokenToSameToken","TokenId","fromString","Long","fromNumber","_fromProtobuf","info","fee","feeCollectorAccountId","AccountId","undefined","allCollectorsAreExempt","_toProtobuf","fixedFee","_toTopicFeeProtobuf"],"mappings":"+IAee,MAAMA,UAAuBC,EAQxC,WAAAC,CAAYC,EAAQ,IAChBC,MAAMD,GAKNE,KAAKC,qBAAuB,KAEK,MAA7BH,EAAMI,qBACNF,KAAKG,uBAAuBL,EAAMI,qBAMtCF,KAAKI,QAAU,KAEK,MAAhBN,EAAMO,QACNL,KAAKM,UAAUR,EAAMO,OAEjC,CAMI,aAAAE,CAAcF,GAGV,OAFAL,KAAKI,QAAUC,EAAOG,aACtBR,KAAKC,qBAAuB,KACrBD,IACf,CAKI,cAAIS,GACA,OAAoC,MAA7BT,KAAKC,qBACN,KACAS,EAAKC,aAA6B,MAAhBX,KAAKI,QAAkBJ,KAAKI,QAAU,EACtE,CAKI,+BAAAQ,GAEI,OADAZ,KAAKC,qBAAuB,IAAIY,EAAQ,EAAG,EAAG,GACvCb,IACf,CAKI,uBAAIE,GACA,OAAOF,KAAKC,oBACpB,CAMI,sBAAAE,CAAuBD,GAKnB,OAJAF,KAAKC,qBAC8B,iBAAxBC,EACDW,EAAQC,WAAWZ,GACnBA,EACHF,IACf,CAKI,UAAIK,GACA,OAAOL,KAAKI,OACpB,CAMI,SAAAE,CAAUD,GAGN,OAFAL,KAAKI,QACiB,iBAAXC,EAAsBU,EAAKC,WAAWX,GAAUA,EACpDL,IACf,CASI,oBAAOiB,CAAcC,GACjB,MAAMC,EAAiDD,EAAa,SAEpE,OAAO,IAAIvB,EAAe,CACtByB,sBACkC,MAA9BF,EAAKE,sBACCC,EAAUJ,cAAcC,EAAKE,4BAC7BE,EACVC,uBACmC,MAA/BL,EAAKK,uBACCL,EAAKK,4BACLD,EACVpB,oBAC+B,MAA3BiB,EAAIjB,oBACEW,EAAQI,cAAcE,EAAIjB,0BAC1BoB,EACVjB,OAAsB,MAAdc,EAAId,OAAiBc,EAAId,YAASiB,GAEtD,CAOI,WAAAE,GACI,MAAO,CACHJ,sBACkC,MAA9BpB,KAAKoB,sBACCpB,KAAKoB,sBAAsBI,cAC3B,KACVD,uBAAwBvB,KAAKuB,uBAC7BE,SAAU,CACNvB,oBACiC,MAA7BF,KAAKC,qBACCD,KAAKC,qBAAqBuB,cAC1B,KACVnB,OAAQL,KAAKI,SAG7B,CAOI,mBAAAsB,GACI,MAAO,CACHN,sBACkC,MAA9BpB,KAAKoB,sBACCpB,KAAKoB,sBAAsBI,cAC3B,KACVC,SAAU,CACNvB,oBACiC,MAA7BF,KAAKC,qBACCD,KAAKC,qBAAqBuB,cAC1B,KACVnB,OAAQL,KAAKI,SAG7B"}
1
+ {"version":3,"file":"CustomFixedFee.js","sources":["../../src/token/CustomFixedFee.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n\nimport TokenId from \"./TokenId.js\";\nimport CustomFee from \"./CustomFee.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Hbar from \"../Hbar.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.ICustomFee} HieroProto.proto.ICustomFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedFee} HieroProto.proto.IFixedFee\n * @typedef {import(\"@hashgraph/proto\").proto.IFixedCustomFee} HieroProto.proto.IFixedCustomFee\n */\n\nexport default class CustomFixedFee extends CustomFee {\n /**\n * @param {object} props\n * @param {AccountId | string} [props.feeCollectorAccountId]\n * @param {boolean} [props.allCollectorsAreExempt]\n * @param {TokenId | string} [props.denominatingTokenId]\n * @param {Long | number | BigNumber | bigint} [props.amount]\n */\n constructor(props = {}) {\n super(props);\n\n /**\n * @type {?TokenId}\n */\n this._denominatingTokenId = null;\n\n if (props.denominatingTokenId != null) {\n this.setDenominatingTokenId(props.denominatingTokenId);\n }\n\n /**\n * @type {?Long}\n */\n this._amount = null;\n\n if (props.amount != null) {\n this.setAmount(props.amount);\n }\n }\n\n /**\n * @param {Hbar} amount\n * @returns {CustomFixedFee}\n */\n setHbarAmount(amount) {\n this._amount = amount.toTinybars();\n this._denominatingTokenId = null;\n return this;\n }\n\n /**\n * @returns {TokenId | Hbar | null}\n */\n get hbarAmount() {\n return this._denominatingTokenId != null\n ? null\n : Hbar.fromTinybars(this._amount != null ? this._amount : 0);\n }\n\n /**\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenToSameToken() {\n this._denominatingTokenId = new TokenId(0, 0, 0);\n return this;\n }\n\n /**\n * @returns {?TokenId}\n */\n get denominatingTokenId() {\n return this._denominatingTokenId;\n }\n\n /**\n * @param {TokenId | string} denominatingTokenId\n * @returns {CustomFixedFee}\n */\n setDenominatingTokenId(denominatingTokenId) {\n this._denominatingTokenId =\n typeof denominatingTokenId === \"string\"\n ? TokenId.fromString(denominatingTokenId)\n : denominatingTokenId;\n return this;\n }\n\n /**\n * @returns {?Long}\n */\n get amount() {\n return this._amount;\n }\n\n /**\n * @param {Long | number | BigNumber | bigint} amount\n * @returns {CustomFixedFee}\n */\n setAmount(amount) {\n this._amount = convertAmountToLong(amount);\n return this;\n }\n\n /**\n * @internal\n * @override\n * @param {HieroProto.proto.ICustomFee} info\n * @returns {CustomFixedFee}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static _fromProtobuf(info) {\n const fee = /** @type {HieroProto.proto.IFixedFee} */ (info.fixedFee);\n\n return new CustomFixedFee({\n feeCollectorAccountId:\n info.feeCollectorAccountId != null\n ? AccountId._fromProtobuf(info.feeCollectorAccountId)\n : undefined,\n allCollectorsAreExempt:\n info.allCollectorsAreExempt != null\n ? info.allCollectorsAreExempt\n : undefined,\n denominatingTokenId:\n fee.denominatingTokenId != null\n ? TokenId._fromProtobuf(fee.denominatingTokenId)\n : undefined,\n amount: fee.amount != null ? fee.amount : undefined,\n });\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.ICustomFee}\n */\n _toProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n allCollectorsAreExempt: this.allCollectorsAreExempt,\n fixedFee: {\n denominatingTokenId:\n this._denominatingTokenId != null\n ? this._denominatingTokenId._toProtobuf()\n : null,\n amount: this._amount,\n },\n };\n }\n\n /**\n * @internal\n * @abstract\n * @returns {HieroProto.proto.IFixedCustomFee}\n */\n _toTopicFeeProtobuf() {\n return {\n feeCollectorAccountId:\n this.feeCollectorAccountId != null\n ? this.feeCollectorAccountId._toProtobuf()\n : null,\n fixedFee: {\n denominatingTokenId:\n this._denominatingTokenId != null\n ? this._denominatingTokenId._toProtobuf()\n : null,\n amount: this._amount,\n },\n };\n }\n}\n"],"names":["CustomFixedFee","CustomFee","constructor","props","super","this","_denominatingTokenId","denominatingTokenId","setDenominatingTokenId","_amount","amount","setAmount","setHbarAmount","toTinybars","hbarAmount","Hbar","fromTinybars","setDenominatingTokenToSameToken","TokenId","fromString","convertAmountToLong","_fromProtobuf","info","fee","feeCollectorAccountId","AccountId","undefined","allCollectorsAreExempt","_toProtobuf","fixedFee","_toTopicFeeProtobuf"],"mappings":"4KAmBe,MAAMA,UAAuBC,EAQxC,WAAAC,CAAYC,EAAQ,IAChBC,MAAMD,GAKNE,KAAKC,qBAAuB,KAEK,MAA7BH,EAAMI,qBACNF,KAAKG,uBAAuBL,EAAMI,qBAMtCF,KAAKI,QAAU,KAEK,MAAhBN,EAAMO,QACNL,KAAKM,UAAUR,EAAMO,OAEjC,CAMI,aAAAE,CAAcF,GAGV,OAFAL,KAAKI,QAAUC,EAAOG,aACtBR,KAAKC,qBAAuB,KACrBD,IACf,CAKI,cAAIS,GACA,OAAoC,MAA7BT,KAAKC,qBACN,KACAS,EAAKC,aAA6B,MAAhBX,KAAKI,QAAkBJ,KAAKI,QAAU,EACtE,CAKI,+BAAAQ,GAEI,OADAZ,KAAKC,qBAAuB,IAAIY,EAAQ,EAAG,EAAG,GACvCb,IACf,CAKI,uBAAIE,GACA,OAAOF,KAAKC,oBACpB,CAMI,sBAAAE,CAAuBD,GAKnB,OAJAF,KAAKC,qBAC8B,iBAAxBC,EACDW,EAAQC,WAAWZ,GACnBA,EACHF,IACf,CAKI,UAAIK,GACA,OAAOL,KAAKI,OACpB,CAMI,SAAAE,CAAUD,GAEN,OADAL,KAAKI,QAAUW,EAAoBV,GAC5BL,IACf,CASI,oBAAOgB,CAAcC,GACjB,MAAMC,EAAiDD,EAAa,SAEpE,OAAO,IAAItB,EAAe,CACtBwB,sBACkC,MAA9BF,EAAKE,sBACCC,EAAUJ,cAAcC,EAAKE,4BAC7BE,EACVC,uBACmC,MAA/BL,EAAKK,uBACCL,EAAKK,4BACLD,EACVnB,oBAC+B,MAA3BgB,EAAIhB,oBACEW,EAAQG,cAAcE,EAAIhB,0BAC1BmB,EACVhB,OAAsB,MAAda,EAAIb,OAAiBa,EAAIb,YAASgB,GAEtD,CAOI,WAAAE,GACI,MAAO,CACHJ,sBACkC,MAA9BnB,KAAKmB,sBACCnB,KAAKmB,sBAAsBI,cAC3B,KACVD,uBAAwBtB,KAAKsB,uBAC7BE,SAAU,CACNtB,oBACiC,MAA7BF,KAAKC,qBACCD,KAAKC,qBAAqBsB,cAC1B,KACVlB,OAAQL,KAAKI,SAG7B,CAOI,mBAAAqB,GACI,MAAO,CACHN,sBACkC,MAA9BnB,KAAKmB,sBACCnB,KAAKmB,sBAAsBI,cAC3B,KACVC,SAAU,CACNtB,oBACiC,MAA7BF,KAAKC,qBACCD,KAAKC,qBAAqBsB,cAC1B,KACVlB,OAAQL,KAAKI,SAG7B"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _long = _interopRequireDefault(require("long"));
8
8
  var _PendingAirdropId = _interopRequireDefault(require("./PendingAirdropId.cjs"));
9
+ var _util = require("../util.cjs");
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  // SPDX-License-Identifier: Apache-2.0
11
12
  /**
@@ -13,15 +14,19 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
13
14
  * @typedef {import("@hashgraph/proto").proto.PendingAirdropRecord} HieroProto.proto.PendingAirdropRecord
14
15
  */
15
16
 
17
+ /**
18
+ * @typedef {import("bignumber.js").default} BigNumber
19
+ */
20
+
16
21
  class PendingAirdropRecord {
17
22
  /**
18
23
  * @param {object} props
19
24
  * @param {PendingAirdropId} props.airdropId
20
- * @param {Long} props.amount
25
+ * @param {Long | number | BigNumber | bigint} props.amount
21
26
  */
22
27
  constructor(props) {
23
28
  this.airdropId = props.airdropId;
24
- this.amount = props.amount;
29
+ this.amount = (0, _util.convertAmountToLong)(props.amount);
25
30
  }
26
31
 
27
32
  /**
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @typedef {import("bignumber.js").default} BigNumber
3
+ */
1
4
  export default class PendingAirdropRecord {
2
5
  /**
3
6
  * @param {HieroProto.proto.PendingAirdropRecord} pb
@@ -7,11 +10,11 @@ export default class PendingAirdropRecord {
7
10
  /**
8
11
  * @param {object} props
9
12
  * @param {PendingAirdropId} props.airdropId
10
- * @param {Long} props.amount
13
+ * @param {Long | number | BigNumber | bigint} props.amount
11
14
  */
12
15
  constructor(props: {
13
16
  airdropId: PendingAirdropId;
14
- amount: Long;
17
+ amount: Long | number | BigNumber | bigint;
15
18
  });
16
19
  airdropId: PendingAirdropId;
17
20
  amount: Long;
@@ -25,5 +28,6 @@ export namespace HieroProto {
25
28
  type PendingAirdropRecord = import("@hashgraph/proto").proto.PendingAirdropRecord;
26
29
  }
27
30
  }
31
+ export type BigNumber = import("bignumber.js").default;
28
32
  import PendingAirdropId from "./PendingAirdropId.js";
29
33
  import Long from "long";
@@ -1,2 +1,2 @@
1
- import r from"long";import o from"./PendingAirdropId.js";class d{constructor(r){this.airdropId=r.airdropId,this.amount=r.amount}toBytes(){return{pendingAirdropId:this.airdropId.toBytes(),pendingAirdropValue:{amount:this.amount}}}static fromBytes(i){if(null==i.pendingAirdropId)throw new Error("pendingAirdropId is required");const n=o.fromBytes(i.pendingAirdropId),t=i.pendingAirdropValue?.amount;return new d({airdropId:n,amount:t||r.ZERO})}}export{d as default};
1
+ import r from"long";import o from"./PendingAirdropId.js";import{convertAmountToLong as i}from"../util.js";class t{constructor(r){this.airdropId=r.airdropId,this.amount=i(r.amount)}toBytes(){return{pendingAirdropId:this.airdropId.toBytes(),pendingAirdropValue:{amount:this.amount}}}static fromBytes(i){if(null==i.pendingAirdropId)throw new Error("pendingAirdropId is required");const d=o.fromBytes(i.pendingAirdropId),n=i.pendingAirdropValue?.amount;return new t({airdropId:d,amount:n||r.ZERO})}}export{t as default};
2
2
  //# sourceMappingURL=PendingAirdropRecord.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PendingAirdropRecord.js","sources":["../../src/token/PendingAirdropRecord.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.PendingAirdropRecord} HieroProto.proto.PendingAirdropRecord\n */\n\nimport Long from \"long\";\nimport PendingAirdropId from \"./PendingAirdropId.js\";\n\nexport default class PendingAirdropRecord {\n /**\n * @param {object} props\n * @param {PendingAirdropId} props.airdropId\n * @param {Long} props.amount\n */\n constructor(props) {\n this.airdropId = props.airdropId;\n this.amount = props.amount;\n }\n\n /**\n * @returns {HieroProto.proto.PendingAirdropRecord}\n */\n toBytes() {\n return {\n pendingAirdropId: this.airdropId.toBytes(),\n pendingAirdropValue: {\n amount: this.amount,\n },\n };\n }\n\n /**\n * @param {HieroProto.proto.PendingAirdropRecord} pb\n * @returns {PendingAirdropRecord}\n */\n static fromBytes(pb) {\n if (pb.pendingAirdropId == null) {\n throw new Error(\"pendingAirdropId is required\");\n }\n\n const airdropId = PendingAirdropId.fromBytes(pb.pendingAirdropId);\n const amount = pb.pendingAirdropValue?.amount;\n\n return new PendingAirdropRecord({\n airdropId: airdropId,\n amount: amount ? amount : Long.ZERO,\n });\n }\n}\n"],"names":["PendingAirdropRecord","constructor","props","this","airdropId","amount","toBytes","pendingAirdropId","pendingAirdropValue","fromBytes","pb","Error","PendingAirdropId","Long","ZERO"],"mappings":"yDASe,MAAMA,EAMjB,WAAAC,CAAYC,GACRC,KAAKC,UAAYF,EAAME,UACvBD,KAAKE,OAASH,EAAMG,MAC5B,CAKI,OAAAC,GACI,MAAO,CACHC,iBAAkBJ,KAAKC,UAAUE,UACjCE,oBAAqB,CACjBH,OAAQF,KAAKE,QAG7B,CAMI,gBAAOI,CAAUC,GACb,GAA2B,MAAvBA,EAAGH,iBACH,MAAM,IAAII,MAAM,gCAGpB,MAAMP,EAAYQ,EAAiBH,UAAUC,EAAGH,kBAC1CF,EAASK,EAAGF,qBAAqBH,OAEvC,OAAO,IAAIL,EAAqB,CAC5BI,UAAWA,EACXC,OAAQA,GAAkBQ,EAAKC,MAE3C"}
1
+ {"version":3,"file":"PendingAirdropRecord.js","sources":["../../src/token/PendingAirdropRecord.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n/**\n * @namespace proto\n * @typedef {import(\"@hashgraph/proto\").proto.PendingAirdropRecord} HieroProto.proto.PendingAirdropRecord\n */\n\nimport Long from \"long\";\nimport PendingAirdropId from \"./PendingAirdropId.js\";\nimport { convertAmountToLong } from \"../util.js\";\n\n/**\n * @typedef {import(\"bignumber.js\").default} BigNumber\n */\n\nexport default class PendingAirdropRecord {\n /**\n * @param {object} props\n * @param {PendingAirdropId} props.airdropId\n * @param {Long | number | BigNumber | bigint} props.amount\n */\n constructor(props) {\n this.airdropId = props.airdropId;\n this.amount = convertAmountToLong(props.amount);\n }\n\n /**\n * @returns {HieroProto.proto.PendingAirdropRecord}\n */\n toBytes() {\n return {\n pendingAirdropId: this.airdropId.toBytes(),\n pendingAirdropValue: {\n amount: this.amount,\n },\n };\n }\n\n /**\n * @param {HieroProto.proto.PendingAirdropRecord} pb\n * @returns {PendingAirdropRecord}\n */\n static fromBytes(pb) {\n if (pb.pendingAirdropId == null) {\n throw new Error(\"pendingAirdropId is required\");\n }\n\n const airdropId = PendingAirdropId.fromBytes(pb.pendingAirdropId);\n const amount = pb.pendingAirdropValue?.amount;\n\n return new PendingAirdropRecord({\n airdropId: airdropId,\n amount: amount ? amount : Long.ZERO,\n });\n }\n}\n"],"names":["PendingAirdropRecord","constructor","props","this","airdropId","amount","convertAmountToLong","toBytes","pendingAirdropId","pendingAirdropValue","fromBytes","pb","Error","PendingAirdropId","Long","ZERO"],"mappings":"0GAce,MAAMA,EAMjB,WAAAC,CAAYC,GACRC,KAAKC,UAAYF,EAAME,UACvBD,KAAKE,OAASC,EAAoBJ,EAAMG,OAChD,CAKI,OAAAE,GACI,MAAO,CACHC,iBAAkBL,KAAKC,UAAUG,UACjCE,oBAAqB,CACjBJ,OAAQF,KAAKE,QAG7B,CAMI,gBAAOK,CAAUC,GACb,GAA2B,MAAvBA,EAAGH,iBACH,MAAM,IAAII,MAAM,gCAGpB,MAAMR,EAAYS,EAAiBH,UAAUC,EAAGH,kBAC1CH,EAASM,EAAGF,qBAAqBJ,OAEvC,OAAO,IAAIL,EAAqB,CAC5BI,UAAWA,EACXC,OAAQA,GAAkBS,EAAKC,MAE3C"}
@@ -30,6 +30,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
30
30
  * @typedef {import("../account/AccountId.js").default} AccountId
31
31
  * @typedef {import("./NftId.js").default} NftId
32
32
  * @typedef {import("./TokenId.js").default} TokenId
33
+ * @typedef {import("bignumber.js").default} BigNumber
33
34
  */
34
35
 
35
36
  /**
@@ -112,7 +113,7 @@ class TokenAirdropTransaction extends _AbstractTokenTransferTransaction.default
112
113
  *
113
114
  * @param {TokenId} tokenId
114
115
  * @param {AccountId} accountId
115
- * @param {Long} amount
116
+ * @param {Long | number | BigNumber | bigint} amount
116
117
  * @param {number} expectedDecimals
117
118
  * @returns {this}
118
119
  */
@@ -15,6 +15,7 @@
15
15
  * @typedef {import("../account/AccountId.js").default} AccountId
16
16
  * @typedef {import("./NftId.js").default} NftId
17
17
  * @typedef {import("./TokenId.js").default} TokenId
18
+ * @typedef {import("bignumber.js").default} BigNumber
18
19
  */
19
20
  /**
20
21
  * Airdrop one or more tokens to one or more accounts.
@@ -91,11 +92,11 @@ export default class TokenAirdropTransaction extends AbstractTokenTransferTransa
91
92
  *
92
93
  * @param {TokenId} tokenId
93
94
  * @param {AccountId} accountId
94
- * @param {Long} amount
95
+ * @param {Long | number | BigNumber | bigint} amount
95
96
  * @param {number} expectedDecimals
96
97
  * @returns {this}
97
98
  */
98
- addApprovedTokenTransferWithDecimals(tokenId: TokenId, accountId: AccountId, amount: Long, expectedDecimals: number): this;
99
+ addApprovedTokenTransferWithDecimals(tokenId: TokenId, accountId: AccountId, amount: Long | number | BigNumber | bigint, expectedDecimals: number): this;
99
100
  }
100
101
  export namespace HieroProto {
101
102
  namespace proto {
@@ -114,6 +115,7 @@ export type TransactionId = import("../transaction/TransactionId.js").default;
114
115
  export type AccountId = import("../account/AccountId.js").default;
115
116
  export type NftId = import("./NftId.js").default;
116
117
  export type TokenId = import("./TokenId.js").default;
118
+ export type BigNumber = import("bignumber.js").default;
117
119
  import AbstractTokenTransferTransaction from "./AbstractTokenTransferTransaction.js";
118
120
  import TokenTransfer from "./TokenTransfer.js";
119
121
  import NftTransfer from "./TokenNftTransfer.js";
@@ -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(\"@hashgraph/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionID} HieroProto.proto.TransactionID\n * @typedef {import(\"@hashgraph/proto\").proto.AccountID} HieroProto.proto.AccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/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 */\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} 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":"oMA+Ee,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(\"@hashgraph/proto\").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.ITransaction} HieroProto.proto.ITransaction\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionID} HieroProto.proto.TransactionID\n * @typedef {import(\"@hashgraph/proto\").proto.AccountID} HieroProto.proto.AccountID\n * @typedef {import(\"@hashgraph/proto\").proto.ISignedTransaction} HieroProto.proto.ISignedTransaction\n * @typedef {import(\"@hashgraph/proto\").proto.ITransactionBody} HieroProto.proto.ITransactionBody\n * @typedef {import(\"@hashgraph/proto\").proto.TransactionBody} HieroProto.proto.TransactionBody\n * @typedef {import(\"@hashgraph/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"}