@hiero-ledger/sdk 2.73.2 → 2.74.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 (120) hide show
  1. package/dist/umd.js +250 -115
  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/query/MirrorNodeContractQuery.cjs +2 -1
  47. package/lib/query/MirrorNodeContractQuery.js.map +1 -1
  48. package/lib/token/AbstractTokenTransferTransaction.cjs +12 -8
  49. package/lib/token/AbstractTokenTransferTransaction.d.ts +14 -11
  50. package/lib/token/AbstractTokenTransferTransaction.js +1 -1
  51. package/lib/token/AbstractTokenTransferTransaction.js.map +1 -1
  52. package/lib/token/AssessedCustomFee.cjs +8 -4
  53. package/lib/token/AssessedCustomFee.d.ts +8 -5
  54. package/lib/token/AssessedCustomFee.js +1 -1
  55. package/lib/token/AssessedCustomFee.js.map +1 -1
  56. package/lib/token/CustomFixedFee.cjs +8 -4
  57. package/lib/token/CustomFixedFee.d.ts +8 -5
  58. package/lib/token/CustomFixedFee.js +1 -1
  59. package/lib/token/CustomFixedFee.js.map +1 -1
  60. package/lib/token/PendingAirdropRecord.cjs +7 -2
  61. package/lib/token/PendingAirdropRecord.d.ts +6 -2
  62. package/lib/token/PendingAirdropRecord.js +1 -1
  63. package/lib/token/PendingAirdropRecord.js.map +1 -1
  64. package/lib/token/TokenAirdropTransaction.cjs +2 -1
  65. package/lib/token/TokenAirdropTransaction.d.ts +4 -2
  66. package/lib/token/TokenAirdropTransaction.js.map +1 -1
  67. package/lib/token/TokenBurnTransaction.cjs +5 -3
  68. package/lib/token/TokenBurnTransaction.d.ts +6 -4
  69. package/lib/token/TokenBurnTransaction.js +1 -1
  70. package/lib/token/TokenBurnTransaction.js.map +1 -1
  71. package/lib/token/TokenCreateTransaction.cjs +7 -6
  72. package/lib/token/TokenCreateTransaction.d.ts +8 -8
  73. package/lib/token/TokenCreateTransaction.js +1 -1
  74. package/lib/token/TokenCreateTransaction.js.map +1 -1
  75. package/lib/token/TokenMintTransaction.cjs +5 -4
  76. package/lib/token/TokenMintTransaction.d.ts +6 -5
  77. package/lib/token/TokenMintTransaction.js +1 -1
  78. package/lib/token/TokenMintTransaction.js.map +1 -1
  79. package/lib/token/TokenTransfer.cjs +3 -2
  80. package/lib/token/TokenTransfer.d.ts +2 -2
  81. package/lib/token/TokenTransfer.js +1 -1
  82. package/lib/token/TokenTransfer.js.map +1 -1
  83. package/lib/token/TokenWipeTransaction.cjs +5 -3
  84. package/lib/token/TokenWipeTransaction.d.ts +6 -4
  85. package/lib/token/TokenWipeTransaction.js +1 -1
  86. package/lib/token/TokenWipeTransaction.js.map +1 -1
  87. package/lib/transaction/Transaction.cjs +54 -0
  88. package/lib/transaction/Transaction.d.ts +10 -0
  89. package/lib/transaction/Transaction.js +1 -1
  90. package/lib/transaction/Transaction.js.map +1 -1
  91. package/lib/util.cjs +25 -0
  92. package/lib/util.d.ts +8 -0
  93. package/lib/util.js +1 -1
  94. package/lib/util.js.map +1 -1
  95. package/lib/version.js +1 -1
  96. package/package.json +12 -8
  97. package/src/MirrorNode.js +49 -0
  98. package/src/account/AccountAllowanceApproveTransaction.js +11 -11
  99. package/src/account/TokenAllowance.js +5 -2
  100. package/src/account/TokenTransferMap.js +7 -2
  101. package/src/client/Client.js +13 -51
  102. package/src/client/MirrorNetwork.js +18 -0
  103. package/src/client/addressbooks/mainnet.js +1 -1
  104. package/src/client/addressbooks/previewnet.js +1 -1
  105. package/src/client/addressbooks/testnet.js +1 -1
  106. package/src/constants/ClientConstants.js +3 -0
  107. package/src/contract/ContractId.js +2 -10
  108. package/src/query/MirrorNodeContractQuery.js +2 -1
  109. package/src/token/AbstractTokenTransferTransaction.js +12 -8
  110. package/src/token/AssessedCustomFee.js +8 -5
  111. package/src/token/CustomFixedFee.js +8 -5
  112. package/src/token/PendingAirdropRecord.js +7 -2
  113. package/src/token/TokenAirdropTransaction.js +2 -1
  114. package/src/token/TokenBurnTransaction.js +5 -3
  115. package/src/token/TokenCreateTransaction.js +7 -9
  116. package/src/token/TokenMintTransaction.js +5 -4
  117. package/src/token/TokenTransfer.js +3 -2
  118. package/src/token/TokenWipeTransaction.js +5 -3
  119. package/src/transaction/Transaction.js +63 -0
  120. package/src/util.js +26 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MirrorNodeContractQuery.js","sources":["../../src/query/MirrorNodeContractQuery.js"],"sourcesContent":["import ContractFunctionParameters from \"../contract/ContractFunctionParameters.js\";\n\n/**\n * @typedef {import(\"../contract/ContractId\").default} ContractId\n * @typedef {import(\"../account/AccountId\").default} AccountId\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n *\n */\n\n/**\n * @typedef {object} MirrorNodeResponse\n * @property {string} result\n * @property {string} [error]\n * @property {string} [gasUsed]\n * @property {string} [contractAddress]\n * @property {string} [status]\n */\n\n/**\n * MirrorNodeContractQuery returns a result from EVM execution such as cost-free execution of read-only smart contract\n * queries, gas estimation, and transient simulation of read-write operations.\n * When working with sender that has ECDSA key with alias, you MUST:\n * 1. Retrieve the account's EVM address from the Mirror Node API first\n * 2. Use setSenderEvmAddress() instead of setSender()\n *\n * This is because EVM addresses for accounts with ECDSA keys and aliases cannot be automatically\n * derived and must be fetched from the Mirror Node. Example:\n *\n * ```javascript\n * // For accounts with ECDSA keys and aliases:\n * const evmAddress = // ... fetch from Mirror Node API ...\n * query.setSenderEvmAddress(evmAddress);\n * ```\n */\nexport default class MirrorNodeContractQuery {\n constructor() {\n this._contractId = null;\n this._contractEvmAddress = null;\n this._sender = null;\n this._senderEvmAddress = null;\n this._functionName = null;\n this._functionParameters = null;\n this._value = null;\n this._gasLimit = null;\n this._gasPrice = null;\n this._blockNumber = null;\n }\n\n /**\n *\n * @param {ContractId} contractId\n * @description Sets the contract instance to call.\n * @returns {this}\n */\n setContractId(contractId) {\n this._contractId = contractId;\n return this;\n }\n\n /**\n * @param {AccountId} sender\n * @description Sets the sender of the transaction simulation.\n * @returns {this}\n */\n setSender(sender) {\n this._sender = sender;\n return this;\n }\n\n /**\n * @param {string} sender\n * @description Set the 20-byte EVM address of the sender.\n * This method must be used explicitly when working with accounts that have ECDSA keys with aliases,\n * as their EVM addresses cannot be automatically derived and must be retrieved from the Mirror Node API.\n * The EVM address can be filled using `accountId.populateAccountEvmAddress(client)`\n * @returns {this}\n */\n setSenderEvmAddress(sender) {\n this._senderEvmAddress = sender;\n return this;\n }\n\n /**\n *\n * @param {string} name\n * @param {ContractFunctionParameters} functionParameters\n * @description Sets the function to call, and the parameters to pass to the function\n * @returns {this}\n */\n setFunction(name, functionParameters) {\n this._functionParameters =\n functionParameters != null\n ? functionParameters._build(name)\n : new ContractFunctionParameters()._build(name);\n\n return this;\n }\n\n /**\n * @param {Long} value\n * @description Sets the amount of value (in tinybars or wei) to be sent to the contract in the transaction.\n * Use this to specify an amount for a payable function call.\n * @returns {this}\n */\n setValue(value) {\n this._value = value;\n return this;\n }\n\n /**\n * @param {Long} gasLimit\n * @description Sets the gas limit for the contract call.\n * This specifies the maximum amount of gas that the transaction can consume.\n * @returns {this}\n */\n setGasLimit(gasLimit) {\n this._gasLimit = gasLimit;\n return this;\n }\n\n /**\n * @param {Long} gasPrice\n * @description Sets the gas price to be used for the contract call. This specifies the price of each unit of gas used in the transaction.\n * @returns {this}\n */\n setGasPrice(gasPrice) {\n this._gasPrice = gasPrice;\n return this;\n }\n\n /**\n * @param {Long} blockNumber\n * @description Sets the block number for the simulation of the contract call.\n * The block number determines the context of the contract call simulation within the blockchain.\n * @returns {this}\n */\n setBlockNumber(blockNumber) {\n this._blockNumber = blockNumber;\n return this;\n }\n\n /**\n * @returns {ContractId?}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * @returns {string}\n */\n get contractEvmAddress() {\n const solidityAddress = this._contractId?.toEvmAddress();\n if (solidityAddress == null) {\n throw new Error(\"Contract ID is not set\");\n }\n return solidityAddress;\n }\n\n /**\n * @returns {AccountId?}\n */\n get sender() {\n return this._sender;\n }\n\n /**\n * @returns {string | null }\n */\n get senderEvmAddress() {\n return this._senderEvmAddress;\n }\n\n /**\n * @returns {Uint8Array | null | undefined}\n */\n get callData() {\n return this._functionParameters;\n }\n\n /**\n * @returns {Long?}\n */\n get value() {\n return this._value;\n }\n\n /**\n * @returns {Long?}\n */\n get gasLimit() {\n return this._gasLimit;\n }\n\n /**\n * @returns {Long?}\n */\n get gasPrice() {\n return this._gasPrice;\n }\n\n /**\n * @returns {Long?}\n */\n get blockNumber() {\n return this._blockNumber;\n }\n\n /**\n *\n * @param {Client} client\n * @param {object} jsonPayload\n * @returns {Promise<MirrorNodeResponse>}\n */\n async performMirrorNodeRequest(client, jsonPayload) {\n if (this.contractId == null) {\n throw new Error(\"Contract ID is not set\");\n }\n this._fillEvmAddress();\n let mirrorRestApiBaseUrl = client.mirrorRestApiBaseUrl;\n const contractCallEndpointPath = \"/contracts/call\";\n\n // Check if this is a local environment (localhost or 127.0.0.1)\n const mirrorNode = client._mirrorNetwork.getNextMirrorNode();\n const host = mirrorNode.address.address;\n const isLocalEnvironment = host === \"localhost\" || host === \"127.0.0.1\";\n\n if (isLocalEnvironment) {\n // For local environments, use HTTP scheme and port 8545\n const url = new URL(mirrorRestApiBaseUrl);\n url.protocol = \"http:\";\n url.port = \"8545\";\n mirrorRestApiBaseUrl = url.toString();\n }\n\n const contractCallEndpointUrl = `${mirrorRestApiBaseUrl}${contractCallEndpointPath}`;\n\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n const response = await fetch(contractCallEndpointUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(jsonPayload),\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const data = /** @type {MirrorNodeResponse} */ (await response.json());\n return data;\n }\n\n _fillEvmAddress() {\n if (this.senderEvmAddress == null && this.sender != null) {\n this._senderEvmAddress = this.sender.toEvmAddress();\n }\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @returns {object}\n */\n get JSONPayload() {\n throw new Error(\n \"JSONPayload getter is not implemented. Please implement this method in the subclass.\",\n );\n }\n}\n"],"names":["MirrorNodeContractQuery","constructor","this","_contractId","_contractEvmAddress","_sender","_senderEvmAddress","_functionName","_functionParameters","_value","_gasLimit","_gasPrice","_blockNumber","setContractId","contractId","setSender","sender","setSenderEvmAddress","setFunction","name","functionParameters","_build","ContractFunctionParameters","setValue","value","setGasLimit","gasLimit","setGasPrice","gasPrice","setBlockNumber","blockNumber","contractEvmAddress","solidityAddress","toEvmAddress","Error","senderEvmAddress","callData","performMirrorNodeRequest","client","jsonPayload","_fillEvmAddress","mirrorRestApiBaseUrl","host","_mirrorNetwork","getNextMirrorNode","address","url","URL","protocol","port","toString","contractCallEndpointUrl","response","fetch","method","headers","body","JSON","stringify","ok","status","json","JSONPayload"],"mappings":"yDAkCe,MAAMA,EACjB,WAAAC,GACIC,KAAKC,YAAc,KACnBD,KAAKE,oBAAsB,KAC3BF,KAAKG,QAAU,KACfH,KAAKI,kBAAoB,KACzBJ,KAAKK,cAAgB,KACrBL,KAAKM,oBAAsB,KAC3BN,KAAKO,OAAS,KACdP,KAAKQ,UAAY,KACjBR,KAAKS,UAAY,KACjBT,KAAKU,aAAe,IAC5B,CAQI,aAAAC,CAAcC,GAEV,OADAZ,KAAKC,YAAcW,EACZZ,IACf,CAOI,SAAAa,CAAUC,GAEN,OADAd,KAAKG,QAAUW,EACRd,IACf,CAUI,mBAAAe,CAAoBD,GAEhB,OADAd,KAAKI,kBAAoBU,EAClBd,IACf,CASI,WAAAgB,CAAYC,EAAMC,GAMd,OALAlB,KAAKM,oBACqB,MAAtBY,EACMA,EAAmBC,OAAOF,IAC1B,IAAIG,GAA6BD,OAAOF,GAE3CjB,IACf,CAQI,QAAAqB,CAASC,GAEL,OADAtB,KAAKO,OAASe,EACPtB,IACf,CAQI,WAAAuB,CAAYC,GAER,OADAxB,KAAKQ,UAAYgB,EACVxB,IACf,CAOI,WAAAyB,CAAYC,GAER,OADA1B,KAAKS,UAAYiB,EACV1B,IACf,CAQI,cAAA2B,CAAeC,GAEX,OADA5B,KAAKU,aAAekB,EACb5B,IACf,CAKI,cAAIY,GACA,OAAOZ,KAAKC,WACpB,CAKI,sBAAI4B,GACA,MAAMC,EAAkB9B,KAAKC,aAAa8B,eAC1C,GAAuB,MAAnBD,EACA,MAAM,IAAIE,MAAM,0BAEpB,OAAOF,CACf,CAKI,UAAIhB,GACA,OAAOd,KAAKG,OACpB,CAKI,oBAAI8B,GACA,OAAOjC,KAAKI,iBACpB,CAKI,YAAI8B,GACA,OAAOlC,KAAKM,mBACpB,CAKI,SAAIgB,GACA,OAAOtB,KAAKO,MACpB,CAKI,YAAIiB,GACA,OAAOxB,KAAKQ,SACpB,CAKI,YAAIkB,GACA,OAAO1B,KAAKS,SACpB,CAKI,eAAImB,GACA,OAAO5B,KAAKU,YACpB,CAQI,8BAAMyB,CAAyBC,EAAQC,GACnC,GAAuB,MAAnBrC,KAAKY,WACL,MAAM,IAAIoB,MAAM,0BAEpBhC,KAAKsC,kBACL,IAAIC,EAAuBH,EAAOG,qBAClC,MAIMC,EADaJ,EAAOK,eAAeC,oBACjBC,QAAQA,QAGhC,GAFoC,cAATH,GAAiC,cAATA,EAE3B,CAEpB,MAAMI,EAAM,IAAIC,IAAIN,GACpBK,EAAIE,SAAW,QACfF,EAAIG,KAAO,OACXR,EAAuBK,EAAII,UACvC,CAEQ,MAAMC,EAA0B,GAAGV,mBAG7BW,QAAiBC,MAAMF,EAAyB,CAClDG,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBC,KAAMC,KAAKC,UAAUnB,KAGzB,IAAKa,EAASO,GACV,MAAM,IAAIzB,MAAM,uBAAuBkB,EAASQ,UAKpD,aADsDR,EAASS,MAEvE,CAEI,eAAArB,GACiC,MAAzBtC,KAAKiC,kBAA2C,MAAfjC,KAAKc,SACtCd,KAAKI,kBAAoBJ,KAAKc,OAAOiB,eAEjD,CAKI,eAAI6B,GACA,MAAM,IAAI5B,MACN,uFAEZ"}
1
+ {"version":3,"file":"MirrorNodeContractQuery.js","sources":["../../src/query/MirrorNodeContractQuery.js"],"sourcesContent":["import ContractFunctionParameters from \"../contract/ContractFunctionParameters.js\";\n\n/**\n * @typedef {import(\"../contract/ContractId\").default} ContractId\n * @typedef {import(\"../account/AccountId\").default} AccountId\n * @typedef {import(\"../client/Client.js\").default<*, *>} Client\n *\n */\n\n/**\n * @typedef {object} MirrorNodeResponse\n * @property {string} result\n * @property {string} [error]\n * @property {string} [gasUsed]\n * @property {string} [contractAddress]\n * @property {string} [status]\n */\n\n/**\n * MirrorNodeContractQuery returns a result from EVM execution such as cost-free execution of read-only smart contract\n * queries, gas estimation, and transient simulation of read-write operations.\n * When working with sender that has ECDSA key with alias, you MUST:\n * 1. Retrieve the account's EVM address from the Mirror Node API first\n * 2. Use setSenderEvmAddress() instead of setSender()\n *\n * This is because EVM addresses for accounts with ECDSA keys and aliases cannot be automatically\n * derived and must be fetched from the Mirror Node. Example:\n *\n * ```javascript\n * // For accounts with ECDSA keys and aliases:\n * const evmAddress = // ... fetch from Mirror Node API ...\n * query.setSenderEvmAddress(evmAddress);\n * ```\n */\nexport default class MirrorNodeContractQuery {\n constructor() {\n this._contractId = null;\n this._contractEvmAddress = null;\n this._sender = null;\n this._senderEvmAddress = null;\n this._functionName = null;\n this._functionParameters = null;\n this._value = null;\n this._gasLimit = null;\n this._gasPrice = null;\n this._blockNumber = null;\n }\n\n /**\n *\n * @param {ContractId} contractId\n * @description Sets the contract instance to call.\n * @returns {this}\n */\n setContractId(contractId) {\n this._contractId = contractId;\n return this;\n }\n\n /**\n * @param {AccountId} sender\n * @description Sets the sender of the transaction simulation.\n * @returns {this}\n */\n setSender(sender) {\n this._sender = sender;\n return this;\n }\n\n /**\n * @param {string} sender\n * @description Set the 20-byte EVM address of the sender.\n * This method must be used explicitly when working with accounts that have ECDSA keys with aliases,\n * as their EVM addresses cannot be automatically derived and must be retrieved from the Mirror Node API.\n * The EVM address can be filled using `accountId.populateAccountEvmAddress(client)`\n * @returns {this}\n */\n setSenderEvmAddress(sender) {\n this._senderEvmAddress = sender;\n return this;\n }\n\n /**\n *\n * @param {string} name\n * @param {ContractFunctionParameters} functionParameters\n * @description Sets the function to call, and the parameters to pass to the function\n * @returns {this}\n */\n setFunction(name, functionParameters) {\n this._functionParameters =\n functionParameters != null\n ? functionParameters._build(name)\n : new ContractFunctionParameters()._build(name);\n\n return this;\n }\n\n /**\n * @param {Long} value\n * @description Sets the amount of value (in tinybars or wei) to be sent to the contract in the transaction.\n * Use this to specify an amount for a payable function call.\n * @returns {this}\n */\n setValue(value) {\n this._value = value;\n return this;\n }\n\n /**\n * @param {Long} gasLimit\n * @description Sets the gas limit for the contract call.\n * This specifies the maximum amount of gas that the transaction can consume.\n * @returns {this}\n */\n setGasLimit(gasLimit) {\n this._gasLimit = gasLimit;\n return this;\n }\n\n /**\n * @param {Long} gasPrice\n * @description Sets the gas price to be used for the contract call. This specifies the price of each unit of gas used in the transaction.\n * @returns {this}\n */\n setGasPrice(gasPrice) {\n this._gasPrice = gasPrice;\n return this;\n }\n\n /**\n * @param {Long} blockNumber\n * @description Sets the block number for the simulation of the contract call.\n * The block number determines the context of the contract call simulation within the blockchain.\n * @returns {this}\n */\n setBlockNumber(blockNumber) {\n this._blockNumber = blockNumber;\n return this;\n }\n\n /**\n * @returns {ContractId?}\n */\n get contractId() {\n return this._contractId;\n }\n\n /**\n * @returns {string}\n */\n get contractEvmAddress() {\n const solidityAddress = this._contractId?.toEvmAddress();\n if (solidityAddress == null) {\n throw new Error(\"Contract ID is not set\");\n }\n return solidityAddress;\n }\n\n /**\n * @returns {AccountId?}\n */\n get sender() {\n return this._sender;\n }\n\n /**\n * @returns {string | null }\n */\n get senderEvmAddress() {\n return this._senderEvmAddress;\n }\n\n /**\n * @returns {Uint8Array | null | undefined}\n */\n get callData() {\n return this._functionParameters;\n }\n\n /**\n * @returns {Long?}\n */\n get value() {\n return this._value;\n }\n\n /**\n * @returns {Long?}\n */\n get gasLimit() {\n return this._gasLimit;\n }\n\n /**\n * @returns {Long?}\n */\n get gasPrice() {\n return this._gasPrice;\n }\n\n /**\n * @returns {Long?}\n */\n get blockNumber() {\n return this._blockNumber;\n }\n\n /**\n *\n * @param {Client} client\n * @param {object} jsonPayload\n * @returns {Promise<MirrorNodeResponse>}\n */\n async performMirrorNodeRequest(client, jsonPayload) {\n if (this.contractId == null) {\n throw new Error(\"Contract ID is not set\");\n }\n this._fillEvmAddress();\n let mirrorRestApiBaseUrl = client.mirrorRestApiBaseUrl;\n const contractCallEndpointPath = \"/contracts/call\";\n\n // Check if this is a local environment (localhost or 127.0.0.1)\n const mirrorNode = client._mirrorNetwork.getNextMirrorNode();\n const host = mirrorNode.address.address;\n const isLocalEnvironment = host === \"localhost\" || host === \"127.0.0.1\";\n\n if (isLocalEnvironment) {\n // For local environments, use HTTP scheme and port 8545 for contract calls\n // (different from general mirror node REST API port 5551)\n const url = new URL(mirrorRestApiBaseUrl);\n url.protocol = \"http:\";\n url.port = \"8545\";\n mirrorRestApiBaseUrl = url.toString();\n }\n\n const contractCallEndpointUrl = `${mirrorRestApiBaseUrl}${contractCallEndpointPath}`;\n\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n const response = await fetch(contractCallEndpointUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(jsonPayload),\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const data = /** @type {MirrorNodeResponse} */ (await response.json());\n return data;\n }\n\n _fillEvmAddress() {\n if (this.senderEvmAddress == null && this.sender != null) {\n this._senderEvmAddress = this.sender.toEvmAddress();\n }\n }\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * @returns {object}\n */\n get JSONPayload() {\n throw new Error(\n \"JSONPayload getter is not implemented. Please implement this method in the subclass.\",\n );\n }\n}\n"],"names":["MirrorNodeContractQuery","constructor","this","_contractId","_contractEvmAddress","_sender","_senderEvmAddress","_functionName","_functionParameters","_value","_gasLimit","_gasPrice","_blockNumber","setContractId","contractId","setSender","sender","setSenderEvmAddress","setFunction","name","functionParameters","_build","ContractFunctionParameters","setValue","value","setGasLimit","gasLimit","setGasPrice","gasPrice","setBlockNumber","blockNumber","contractEvmAddress","solidityAddress","toEvmAddress","Error","senderEvmAddress","callData","performMirrorNodeRequest","client","jsonPayload","_fillEvmAddress","mirrorRestApiBaseUrl","host","_mirrorNetwork","getNextMirrorNode","address","url","URL","protocol","port","toString","contractCallEndpointUrl","response","fetch","method","headers","body","JSON","stringify","ok","status","json","JSONPayload"],"mappings":"yDAkCe,MAAMA,EACjB,WAAAC,GACIC,KAAKC,YAAc,KACnBD,KAAKE,oBAAsB,KAC3BF,KAAKG,QAAU,KACfH,KAAKI,kBAAoB,KACzBJ,KAAKK,cAAgB,KACrBL,KAAKM,oBAAsB,KAC3BN,KAAKO,OAAS,KACdP,KAAKQ,UAAY,KACjBR,KAAKS,UAAY,KACjBT,KAAKU,aAAe,IAC5B,CAQI,aAAAC,CAAcC,GAEV,OADAZ,KAAKC,YAAcW,EACZZ,IACf,CAOI,SAAAa,CAAUC,GAEN,OADAd,KAAKG,QAAUW,EACRd,IACf,CAUI,mBAAAe,CAAoBD,GAEhB,OADAd,KAAKI,kBAAoBU,EAClBd,IACf,CASI,WAAAgB,CAAYC,EAAMC,GAMd,OALAlB,KAAKM,oBACqB,MAAtBY,EACMA,EAAmBC,OAAOF,IAC1B,IAAIG,GAA6BD,OAAOF,GAE3CjB,IACf,CAQI,QAAAqB,CAASC,GAEL,OADAtB,KAAKO,OAASe,EACPtB,IACf,CAQI,WAAAuB,CAAYC,GAER,OADAxB,KAAKQ,UAAYgB,EACVxB,IACf,CAOI,WAAAyB,CAAYC,GAER,OADA1B,KAAKS,UAAYiB,EACV1B,IACf,CAQI,cAAA2B,CAAeC,GAEX,OADA5B,KAAKU,aAAekB,EACb5B,IACf,CAKI,cAAIY,GACA,OAAOZ,KAAKC,WACpB,CAKI,sBAAI4B,GACA,MAAMC,EAAkB9B,KAAKC,aAAa8B,eAC1C,GAAuB,MAAnBD,EACA,MAAM,IAAIE,MAAM,0BAEpB,OAAOF,CACf,CAKI,UAAIhB,GACA,OAAOd,KAAKG,OACpB,CAKI,oBAAI8B,GACA,OAAOjC,KAAKI,iBACpB,CAKI,YAAI8B,GACA,OAAOlC,KAAKM,mBACpB,CAKI,SAAIgB,GACA,OAAOtB,KAAKO,MACpB,CAKI,YAAIiB,GACA,OAAOxB,KAAKQ,SACpB,CAKI,YAAIkB,GACA,OAAO1B,KAAKS,SACpB,CAKI,eAAImB,GACA,OAAO5B,KAAKU,YACpB,CAQI,8BAAMyB,CAAyBC,EAAQC,GACnC,GAAuB,MAAnBrC,KAAKY,WACL,MAAM,IAAIoB,MAAM,0BAEpBhC,KAAKsC,kBACL,IAAIC,EAAuBH,EAAOG,qBAClC,MAIMC,EADaJ,EAAOK,eAAeC,oBACjBC,QAAQA,QAGhC,GAFoC,cAATH,GAAiC,cAATA,EAE3B,CAGpB,MAAMI,EAAM,IAAIC,IAAIN,GACpBK,EAAIE,SAAW,QACfF,EAAIG,KAAO,OACXR,EAAuBK,EAAII,UACvC,CAEQ,MAAMC,EAA0B,GAAGV,mBAG7BW,QAAiBC,MAAMF,EAAyB,CAClDG,OAAQ,OACRC,QAAS,CACL,eAAgB,oBAEpBC,KAAMC,KAAKC,UAAUnB,KAGzB,IAAKa,EAASO,GACV,MAAM,IAAIzB,MAAM,uBAAuBkB,EAASQ,UAKpD,aADsDR,EAASS,MAEvE,CAEI,eAAArB,GACiC,MAAzBtC,KAAKiC,kBAA2C,MAAfjC,KAAKc,SACtCd,KAAKI,kBAAoBJ,KAAKc,OAAOiB,eAEjD,CAKI,eAAI6B,GACA,MAAM,IAAI5B,MACN,uFAEZ"}
@@ -10,14 +10,18 @@ var _TokenId = _interopRequireDefault(require("./TokenId.cjs"));
10
10
  var _NftId = _interopRequireDefault(require("./NftId.cjs"));
11
11
  var _AccountId = _interopRequireDefault(require("../account/AccountId.cjs"));
12
12
  var _Transaction = _interopRequireDefault(require("../transaction/Transaction.cjs"));
13
- var _long = _interopRequireDefault(require("long"));
14
13
  var _NullableTokenDecimalMap = _interopRequireDefault(require("../account/NullableTokenDecimalMap.cjs"));
15
14
  var _TokenNftTransferMap = _interopRequireDefault(require("../account/TokenNftTransferMap.cjs"));
16
15
  var _TokenTransferMap = _interopRequireDefault(require("../account/TokenTransferMap.cjs"));
17
16
  var _TokenTransferAccountMap = _interopRequireDefault(require("../account/TokenTransferAccountMap.cjs"));
17
+ var _util = require("../util.cjs");
18
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
19
  // SPDX-License-Identifier: Apache-2.0
20
20
 
21
+ /**
22
+ * @typedef {import("bignumber.js").default} BigNumber
23
+ */
24
+
21
25
  /**
22
26
  * @namespace proto
23
27
  * @typedef {import("@hashgraph/proto").proto.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody
@@ -27,7 +31,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
27
31
  * @typedef {object} TransferTokensInput
28
32
  * @property {TokenId | string} tokenId
29
33
  * @property {AccountId | string} accountId
30
- * @property {Long | number} amount
34
+ * @property {Long | number | BigNumber | bigint} amount
31
35
  */
32
36
 
33
37
  /**
@@ -80,7 +84,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
80
84
  /**
81
85
  * @param {TokenId | string} tokenId
82
86
  * @param {AccountId | string} accountId
83
- * @param {number | Long} amount
87
+ * @param {number | Long | BigNumber | bigint} amount
84
88
  * @param {boolean} isApproved
85
89
  * @param {number | null} expectedDecimals
86
90
  * @returns {this}
@@ -89,7 +93,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
89
93
  this._requireNotFrozen();
90
94
  const token = tokenId instanceof _TokenId.default ? tokenId : _TokenId.default.fromString(tokenId);
91
95
  const account = accountId instanceof _AccountId.default ? accountId : _AccountId.default.fromString(accountId);
92
- const value = amount instanceof _long.default ? amount : _long.default.fromNumber(amount);
96
+ const value = (0, _util.convertAmountToLong)(amount);
93
97
  for (const tokenTransfer of this._tokenTransfers) {
94
98
  if (tokenTransfer.tokenId.compare(token) === 0 && tokenTransfer.accountId.compare(account) === 0) {
95
99
  tokenTransfer.amount = tokenTransfer.amount.add(value);
@@ -110,7 +114,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
110
114
  /**
111
115
  * @param {TokenId | string} tokenId
112
116
  * @param {AccountId | string} accountId
113
- * @param {number | Long} amount
117
+ * @param {number | Long | BigNumber | bigint} amount
114
118
  * @returns {this}
115
119
  */
116
120
  addTokenTransfer(tokenId, accountId, amount) {
@@ -186,7 +190,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
186
190
  /**
187
191
  * @param {TokenId | string} tokenId
188
192
  * @param {AccountId | string} accountId
189
- * @param {number | Long} amount
193
+ * @param {number | Long | BigNumber | bigint} amount
190
194
  * @returns {this}
191
195
  */
192
196
  addApprovedTokenTransfer(tokenId, accountId, amount) {
@@ -196,7 +200,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
196
200
  /**
197
201
  * @param {TokenId | string} tokenId
198
202
  * @param {AccountId | string} accountId
199
- * @param {number | Long} amount
203
+ * @param {number | Long | BigNumber | bigint} amount
200
204
  * @param {number} decimals
201
205
  * @returns {this}
202
206
  */
@@ -204,7 +208,7 @@ class AbstractTokenTransferTransaction extends _Transaction.default {
204
208
  this._requireNotFrozen();
205
209
  const token = tokenId instanceof _TokenId.default ? tokenId : _TokenId.default.fromString(tokenId);
206
210
  const account = accountId instanceof _AccountId.default ? accountId : _AccountId.default.fromString(accountId);
207
- const value = amount instanceof _long.default ? amount : _long.default.fromNumber(amount);
211
+ const value = (0, _util.convertAmountToLong)(amount);
208
212
  let found = false;
209
213
  for (const tokenTransfer of this._tokenTransfers) {
210
214
  if (tokenTransfer.tokenId.compare(token) === 0) {
@@ -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.ITokenAirdropTransactionBody} HieroProto.proto.ITokenAirdropTransactionBody
@@ -6,7 +9,7 @@
6
9
  * @typedef {object} TransferTokensInput
7
10
  * @property {TokenId | string} tokenId
8
11
  * @property {AccountId | string} accountId
9
- * @property {Long | number} amount
12
+ * @property {Long | number | BigNumber | bigint} amount
10
13
  */
11
14
  /**
12
15
  * @typedef {object} TransferNftInput
@@ -46,19 +49,19 @@ export default class AbstractTokenTransferTransaction extends Transaction {
46
49
  /**
47
50
  * @param {TokenId | string} tokenId
48
51
  * @param {AccountId | string} accountId
49
- * @param {number | Long} amount
52
+ * @param {number | Long | BigNumber | bigint} amount
50
53
  * @param {boolean} isApproved
51
54
  * @param {number | null} expectedDecimals
52
55
  * @returns {this}
53
56
  */
54
- _addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long, isApproved: boolean, expectedDecimals: number | null): this;
57
+ _addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint, isApproved: boolean, expectedDecimals: number | null): this;
55
58
  /**
56
59
  * @param {TokenId | string} tokenId
57
60
  * @param {AccountId | string} accountId
58
- * @param {number | Long} amount
61
+ * @param {number | Long | BigNumber | bigint} amount
59
62
  * @returns {this}
60
63
  */
61
- addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long): this;
64
+ addTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint): this;
62
65
  /**
63
66
  * @param {boolean} isApproved
64
67
  * @param {NftId | TokenId | string} tokenIdOrNftId
@@ -79,18 +82,18 @@ export default class AbstractTokenTransferTransaction extends Transaction {
79
82
  /**
80
83
  * @param {TokenId | string} tokenId
81
84
  * @param {AccountId | string} accountId
82
- * @param {number | Long} amount
85
+ * @param {number | Long | BigNumber | bigint} amount
83
86
  * @returns {this}
84
87
  */
85
- addApprovedTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long): this;
88
+ addApprovedTokenTransfer(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint): this;
86
89
  /**
87
90
  * @param {TokenId | string} tokenId
88
91
  * @param {AccountId | string} accountId
89
- * @param {number | Long} amount
92
+ * @param {number | Long | BigNumber | bigint} amount
90
93
  * @param {number} decimals
91
94
  * @returns {this}
92
95
  */
93
- addTokenTransferWithDecimals(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long, decimals: number): this;
96
+ addTokenTransferWithDecimals(tokenId: TokenId | string, accountId: AccountId | string, amount: number | Long | BigNumber | bigint, decimals: number): this;
94
97
  /**
95
98
  * @returns {NullableTokenDecimalMap}
96
99
  */
@@ -110,6 +113,7 @@ export default class AbstractTokenTransferTransaction extends Transaction {
110
113
  */
111
114
  protected override _makeTransactionData(): HieroProto.proto.ITokenAirdropTransactionBody;
112
115
  }
116
+ export type BigNumber = import("bignumber.js").default;
113
117
  export namespace HieroProto {
114
118
  namespace proto {
115
119
  type ITokenAirdropTransactionBody = import("@hashgraph/proto").proto.ITokenAirdropTransactionBody;
@@ -118,7 +122,7 @@ export namespace HieroProto {
118
122
  export type TransferTokensInput = {
119
123
  tokenId: TokenId | string;
120
124
  accountId: AccountId | string;
121
- amount: Long | number;
125
+ amount: Long | number | BigNumber | bigint;
122
126
  };
123
127
  export type TransferNftInput = {
124
128
  tokenId: TokenId | string;
@@ -132,7 +136,6 @@ import TokenNftTransfer from "../token/TokenNftTransfer.js";
132
136
  import NftId from "./NftId.js";
133
137
  import TokenId from "./TokenId.js";
134
138
  import AccountId from "../account/AccountId.js";
135
- import Long from "long";
136
139
  import NullableTokenDecimalMap from "../account/NullableTokenDecimalMap.js";
137
140
  import TokenNftTransferMap from "../account/TokenNftTransferMap.js";
138
141
  import TokenTransferMap from "../account/TokenTransferMap.js";
@@ -1,2 +1,2 @@
1
- import e from"./TokenTransfer.js";import n from"./TokenNftTransfer.js";import t from"./TokenId.js";import r from"./NftId.js";import s from"../account/AccountId.js";import o from"../transaction/Transaction.js";import a from"long";import f from"../account/NullableTokenDecimalMap.js";import c from"../account/TokenNftTransferMap.js";import i from"../account/TokenTransferMap.js";import d from"../account/TokenTransferAccountMap.js";class u extends o{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const n of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(n.tokenId,n.accountId,n.amount);for(const n of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(n.tokenId,n.serial,n.sender,n.recipient)}addNftTransfer(e,n,t,r){return this._addNftTransfer(!1,e,n,t,r)}_addTokenTransfer(n,r,o,f,c){this._requireNotFrozen();const i=n instanceof t?n:t.fromString(n),d=r instanceof s?r:s.fromString(r),u=o instanceof a?o:a.fromNumber(o);for(const e of this._tokenTransfers)if(0===e.tokenId.compare(i)&&0===e.accountId.compare(d))return e.amount=e.amount.add(u),e.expectedDecimals=c,this;return this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:c,amount:o,isApproved:f})),this}addTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!1,null)}_addNftTransfer(e,o,a,f,c){let i,d,u;if(this._requireNotFrozen(),o instanceof r)i=o,d="string"==typeof a?s.fromString(a):a,u="string"==typeof f?s.fromString(f):f;else if(o instanceof t)i=new r(o,a),d="string"==typeof f?s.fromString(f):f,u="string"==typeof c?s.fromString(c):c;else try{i=r.fromString(o),d="string"==typeof a?s.fromString(a):a,u="string"==typeof f?s.fromString(f):f}catch(e){const n=t.fromString(o);i=new r(n,a),d="string"==typeof f?s.fromString(f):f,u="string"==typeof c?s.fromString(c):c}for(const e of this._nftTransfers)if(0===e.tokenId.compare(i.tokenId)&&0===e.serialNumber.compare(i.serial))return e.senderAccountId=d,e.receiverAccountId=u,this;return this._nftTransfers.push(new n({tokenId:i.tokenId,serialNumber:i.serial,senderAccountId:d,receiverAccountId:u,isApproved:e})),this}addApprovedNftTransfer(e,n,t,r){return this._addNftTransfer(!0,e,n,t,r)}addApprovedTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!0,null)}addTokenTransferWithDecimals(n,r,o,f){this._requireNotFrozen();const c=n instanceof t?n:t.fromString(n),i=r instanceof s?r:s.fromString(r),d=o instanceof a?o:a.fromNumber(o);let u=!1;for(const e of this._tokenTransfers)if(0===e.tokenId.compare(c)){if(null!=e.expectedDecimals&&e.expectedDecimals!==f)throw new Error("expected decimals mis-match");e.expectedDecimals=f,0===e.accountId.compare(i)&&(e.amount=e.amount.add(d),e.expectedDecimals=f,u=!0)}return u||this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:f,amount:o,isApproved:!1})),this}get tokenIdDecimals(){const e=new f;for(const n of this._tokenTransfers)e._set(n.tokenId,n.expectedDecimals);return e}get nftTransfers(){const e=new c;for(const n of this._nftTransfers){const t=e.get(n.tokenId),r={sender:n.senderAccountId,recipient:n.receiverAccountId,serial:n.serialNumber,isApproved:n.isApproved};null!=t?t.push(r):e._set(n.tokenId,[r])}return e}get tokenTransfers(){const e=new i;for(const n of this._tokenTransfers){let t=e.get(n.tokenId);null!=t?t._set(n.accountId,n.amount):(t=new d,t._set(n.accountId,n.amount),e._set(n.tokenId,t))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort((e,n)=>{const t=e.tokenId.compare(n.tokenId);return 0!==t?t:e.accountId.compare(n.accountId)}),this._nftTransfers.sort((e,n)=>{const t=e.senderAccountId.compare(n.senderAccountId);if(0!=t)return t;const r=e.receiverAccountId.compare(n.receiverAccountId);return 0!=r?r:e.serialNumber.compare(n.serialNumber)});let n=0,t=0;for(;n<this._tokenTransfers.length||t<this._nftTransfers.length;)if(n<this._tokenTransfers.length&&t<this._nftTransfers.length){const r=this._tokenTransfers[n].tokenId,s=this._nftTransfers[t].tokenId,o=e.length>0?e[e.length-1]:null,a=null!=o?o.tokenId:null;if(null!=o&&null!=a&&0===a.compare(r)){o.transfers.push(this._tokenTransfers[n++]);continue}if(null!=o&&null!=a&&0===a.compare(s)){o.nftTransfers.push(this._nftTransfers[t++]);continue}const f=r.compare(s);0===f?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[this._nftTransfers[t++]]}):f<0?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]}):e.push({tokenId:s,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}else if(n<this._tokenTransfers.length){const t=this._tokenTransfers[n].tokenId;let r;for(const n of e)0===n.tokenId.compare(t)&&(r=n);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(t)){r.transfers.push(this._tokenTransfers[n++]);continue}e.push({tokenId:t,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]})}else if(t<this._nftTransfers.length){const n=this._nftTransfers[t].tokenId;let r;for(const t of e)0===t.tokenId.compare(n)&&(r=t);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(n)){r.nftTransfers.push(this._nftTransfers[t++]);continue}e.push({tokenId:n,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}return{tokenTransfers:e.map(e=>({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map(e=>e._toProtobuf()),nftTransfers:e.nftTransfers.map(e=>e._toProtobuf())}))}}}export{u as default};
1
+ import e from"./TokenTransfer.js";import n from"./TokenNftTransfer.js";import t from"./TokenId.js";import r from"./NftId.js";import s from"../account/AccountId.js";import o from"../transaction/Transaction.js";import a from"../account/NullableTokenDecimalMap.js";import f from"../account/TokenNftTransferMap.js";import c from"../account/TokenTransferMap.js";import i from"../account/TokenTransferAccountMap.js";import{convertAmountToLong as d}from"../util.js";class u extends o{constructor(e={}){super(),this._tokenTransfers=[],this._nftTransfers=[];for(const n of null!=e.tokenTransfers?e.tokenTransfers:[])this.addTokenTransfer(n.tokenId,n.accountId,n.amount);for(const n of null!=e.nftTransfers?e.nftTransfers:[])this.addNftTransfer(n.tokenId,n.serial,n.sender,n.recipient)}addNftTransfer(e,n,t,r){return this._addNftTransfer(!1,e,n,t,r)}_addTokenTransfer(n,r,o,a,f){this._requireNotFrozen();const c=n instanceof t?n:t.fromString(n),i=r instanceof s?r:s.fromString(r),u=d(o);for(const e of this._tokenTransfers)if(0===e.tokenId.compare(c)&&0===e.accountId.compare(i))return e.amount=e.amount.add(u),e.expectedDecimals=f,this;return this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:f,amount:o,isApproved:a})),this}addTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!1,null)}_addNftTransfer(e,o,a,f,c){let i,d,u;if(this._requireNotFrozen(),o instanceof r)i=o,d="string"==typeof a?s.fromString(a):a,u="string"==typeof f?s.fromString(f):f;else if(o instanceof t)i=new r(o,a),d="string"==typeof f?s.fromString(f):f,u="string"==typeof c?s.fromString(c):c;else try{i=r.fromString(o),d="string"==typeof a?s.fromString(a):a,u="string"==typeof f?s.fromString(f):f}catch(e){const n=t.fromString(o);i=new r(n,a),d="string"==typeof f?s.fromString(f):f,u="string"==typeof c?s.fromString(c):c}for(const e of this._nftTransfers)if(0===e.tokenId.compare(i.tokenId)&&0===e.serialNumber.compare(i.serial))return e.senderAccountId=d,e.receiverAccountId=u,this;return this._nftTransfers.push(new n({tokenId:i.tokenId,serialNumber:i.serial,senderAccountId:d,receiverAccountId:u,isApproved:e})),this}addApprovedNftTransfer(e,n,t,r){return this._addNftTransfer(!0,e,n,t,r)}addApprovedTokenTransfer(e,n,t){return this._addTokenTransfer(e,n,t,!0,null)}addTokenTransferWithDecimals(n,r,o,a){this._requireNotFrozen();const f=n instanceof t?n:t.fromString(n),c=r instanceof s?r:s.fromString(r),i=d(o);let u=!1;for(const e of this._tokenTransfers)if(0===e.tokenId.compare(f)){if(null!=e.expectedDecimals&&e.expectedDecimals!==a)throw new Error("expected decimals mis-match");e.expectedDecimals=a,0===e.accountId.compare(c)&&(e.amount=e.amount.add(i),e.expectedDecimals=a,u=!0)}return u||this._tokenTransfers.push(new e({tokenId:n,accountId:r,expectedDecimals:a,amount:o,isApproved:!1})),this}get tokenIdDecimals(){const e=new a;for(const n of this._tokenTransfers)e._set(n.tokenId,n.expectedDecimals);return e}get nftTransfers(){const e=new f;for(const n of this._nftTransfers){const t=e.get(n.tokenId),r={sender:n.senderAccountId,recipient:n.receiverAccountId,serial:n.serialNumber,isApproved:n.isApproved};null!=t?t.push(r):e._set(n.tokenId,[r])}return e}get tokenTransfers(){const e=new c;for(const n of this._tokenTransfers){let t=e.get(n.tokenId);null!=t?t._set(n.accountId,n.amount):(t=new i,t._set(n.accountId,n.amount),e._set(n.tokenId,t))}return e}_makeTransactionData(){const e=[];this._tokenTransfers.sort((e,n)=>{const t=e.tokenId.compare(n.tokenId);return 0!==t?t:e.accountId.compare(n.accountId)}),this._nftTransfers.sort((e,n)=>{const t=e.senderAccountId.compare(n.senderAccountId);if(0!=t)return t;const r=e.receiverAccountId.compare(n.receiverAccountId);return 0!=r?r:e.serialNumber.compare(n.serialNumber)});let n=0,t=0;for(;n<this._tokenTransfers.length||t<this._nftTransfers.length;)if(n<this._tokenTransfers.length&&t<this._nftTransfers.length){const r=this._tokenTransfers[n].tokenId,s=this._nftTransfers[t].tokenId,o=e.length>0?e[e.length-1]:null,a=null!=o?o.tokenId:null;if(null!=o&&null!=a&&0===a.compare(r)){o.transfers.push(this._tokenTransfers[n++]);continue}if(null!=o&&null!=a&&0===a.compare(s)){o.nftTransfers.push(this._nftTransfers[t++]);continue}const f=r.compare(s);0===f?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[this._nftTransfers[t++]]}):f<0?e.push({tokenId:r,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]}):e.push({tokenId:s,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}else if(n<this._tokenTransfers.length){const t=this._tokenTransfers[n].tokenId;let r;for(const n of e)0===n.tokenId.compare(t)&&(r=n);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(t)){r.transfers.push(this._tokenTransfers[n++]);continue}e.push({tokenId:t,expectedDecimals:this._tokenTransfers[n].expectedDecimals,transfers:[this._tokenTransfers[n++]],nftTransfers:[]})}else if(t<this._nftTransfers.length){const n=this._nftTransfers[t].tokenId;let r;for(const t of e)0===t.tokenId.compare(n)&&(r=t);const s=null!=r?r.tokenId:null;if(null!=r&&null!=s&&0===s.compare(n)){r.nftTransfers.push(this._nftTransfers[t++]);continue}e.push({tokenId:n,expectedDecimals:null,transfers:[],nftTransfers:[this._nftTransfers[t++]]})}return{tokenTransfers:e.map(e=>({token:e.tokenId._toProtobuf(),expectedDecimals:null!=e.expectedDecimals?{value:e.expectedDecimals}:null,transfers:e.transfers.map(e=>e._toProtobuf()),nftTransfers:e.nftTransfers.map(e=>e._toProtobuf())}))}}}export{u as default};
2
2
  //# sourceMappingURL=AbstractTokenTransferTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractTokenTransferTransaction.js","sources":["../../src/token/AbstractTokenTransferTransaction.js"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\nimport TokenTransfer from \"./TokenTransfer.js\";\nimport TokenNftTransfer from \"../token/TokenNftTransfer.js\";\nimport TokenId from \"./TokenId.js\";\nimport NftId from \"./NftId.js\";\nimport AccountId from \"../account/AccountId.js\";\nimport Transaction from \"../transaction/Transaction.js\";\nimport 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