@aeternity/aepp-sdk 14.0.0 → 14.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -19
  3. package/dist/aepp-sdk.browser-script.cjs +1 -1
  4. package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
  5. package/dist/aepp-sdk.browser-script.cjs.map +1 -1
  6. package/dist/aepp-sdk.browser.cjs +1 -1
  7. package/dist/aepp-sdk.browser.cjs.map +1 -1
  8. package/dist/aepp-sdk.cjs +10846 -4277
  9. package/dist/aepp-sdk.cjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +10 -1
  11. package/es/AeSdkBase.js +12 -2
  12. package/es/AeSdkBase.js.map +1 -1
  13. package/es/AeSdkMethods.d.ts +1 -1
  14. package/es/AeSdkMethods.js.map +1 -1
  15. package/es/AeSdkWallet.js +1 -1
  16. package/es/AeSdkWallet.js.map +1 -1
  17. package/es/Middleware.d.ts +5 -1
  18. package/es/Middleware.js +7 -2
  19. package/es/Middleware.js.map +1 -1
  20. package/es/MiddlewareSubscriber.d.ts +3 -0
  21. package/es/MiddlewareSubscriber.js +4 -0
  22. package/es/MiddlewareSubscriber.js.map +1 -1
  23. package/es/Node.d.ts +6 -1
  24. package/es/Node.js +28 -4
  25. package/es/Node.js.map +1 -1
  26. package/es/account/Base.d.ts +12 -0
  27. package/es/account/Base.js +1 -0
  28. package/es/account/Base.js.map +1 -1
  29. package/es/account/BaseFactory.d.ts +1 -0
  30. package/es/account/BaseFactory.js +1 -0
  31. package/es/account/BaseFactory.js.map +1 -1
  32. package/es/account/Generalized.d.ts +5 -0
  33. package/es/account/Generalized.js +9 -0
  34. package/es/account/Generalized.js.map +1 -1
  35. package/es/account/Ledger.d.ts +5 -0
  36. package/es/account/Ledger.js +9 -0
  37. package/es/account/Ledger.js.map +1 -1
  38. package/es/account/LedgerFactory.d.ts +2 -0
  39. package/es/account/LedgerFactory.js +10 -4
  40. package/es/account/LedgerFactory.js.map +1 -1
  41. package/es/account/Memory.d.ts +5 -0
  42. package/es/account/Memory.js +14 -5
  43. package/es/account/Memory.js.map +1 -1
  44. package/es/account/Metamask.d.ts +8 -0
  45. package/es/account/Metamask.js +13 -0
  46. package/es/account/Metamask.js.map +1 -1
  47. package/es/account/MetamaskFactory.d.ts +20 -2
  48. package/es/account/MetamaskFactory.js +93 -39
  49. package/es/account/MetamaskFactory.js.map +1 -1
  50. package/es/account/MnemonicFactory.d.ts +12 -2
  51. package/es/account/MnemonicFactory.js +48 -24
  52. package/es/account/MnemonicFactory.js.map +1 -1
  53. package/es/account/Rpc.d.ts +5 -0
  54. package/es/account/Rpc.js +8 -0
  55. package/es/account/Rpc.js.map +1 -1
  56. package/es/aens.d.ts +35 -7
  57. package/es/aens.js +62 -20
  58. package/es/aens.js.map +1 -1
  59. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
  60. package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
  61. package/es/apis/middleware/middleware.d.ts +99 -9
  62. package/es/apis/middleware/middleware.js +560 -91
  63. package/es/apis/middleware/middleware.js.map +1 -1
  64. package/es/apis/middleware/models/index.d.ts +1267 -1582
  65. package/es/apis/middleware/models/index.js +1 -1363
  66. package/es/apis/middleware/models/index.js.map +1 -1
  67. package/es/apis/middleware/models/mappers.d.ts +126 -56
  68. package/es/apis/middleware/models/mappers.js +6250 -2989
  69. package/es/apis/middleware/models/mappers.js.map +1 -1
  70. package/es/apis/middleware/models/parameters.d.ts +54 -33
  71. package/es/apis/middleware/models/parameters.js +389 -134
  72. package/es/apis/middleware/models/parameters.js.map +1 -1
  73. package/es/apis/node/models/index.d.ts +60 -15
  74. package/es/apis/node/models/index.js.map +1 -1
  75. package/es/apis/node/models/mappers.d.ts +3 -0
  76. package/es/apis/node/models/mappers.js +130 -2
  77. package/es/apis/node/models/mappers.js.map +1 -1
  78. package/es/apis/node/node.d.ts +13 -1
  79. package/es/apis/node/node.js +54 -0
  80. package/es/apis/node/node.js.map +1 -1
  81. package/es/chain.d.ts +19 -6
  82. package/es/chain.js +30 -24
  83. package/es/chain.js.map +1 -1
  84. package/es/channel/Contract.d.ts +6 -3
  85. package/es/channel/Contract.js +5 -2
  86. package/es/channel/Contract.js.map +1 -1
  87. package/es/channel/Spend.d.ts +1 -1
  88. package/es/channel/Spend.js.map +1 -1
  89. package/es/channel/handlers.js +1 -2
  90. package/es/channel/handlers.js.map +1 -1
  91. package/es/channel/internal.d.ts +1 -1
  92. package/es/channel/internal.js +2 -2
  93. package/es/channel/internal.js.map +1 -1
  94. package/es/contract/Contract.d.ts +13 -2
  95. package/es/contract/Contract.js +22 -12
  96. package/es/contract/Contract.js.map +1 -1
  97. package/es/contract/compiler/Base.d.ts +1 -0
  98. package/es/contract/compiler/Base.js +1 -0
  99. package/es/contract/compiler/Base.js.map +1 -1
  100. package/es/contract/compiler/Cli.d.ts +2 -1
  101. package/es/contract/compiler/Cli.js +17 -11
  102. package/es/contract/compiler/Cli.js.map +1 -1
  103. package/es/contract/compiler/Http.d.ts +2 -1
  104. package/es/contract/compiler/Http.js +3 -2
  105. package/es/contract/compiler/Http.js.map +1 -1
  106. package/es/contract/compiler/getFileSystem.d.ts +1 -0
  107. package/es/contract/compiler/getFileSystem.js +1 -0
  108. package/es/contract/compiler/getFileSystem.js.map +1 -1
  109. package/es/contract/ga.d.ts +3 -3
  110. package/es/contract/ga.js +3 -3
  111. package/es/contract/ga.js.map +1 -1
  112. package/es/index-browser.d.ts +32 -2
  113. package/es/index-browser.js +32 -2
  114. package/es/index-browser.js.map +1 -1
  115. package/es/oracle/Oracle.d.ts +10 -1
  116. package/es/oracle/Oracle.js +16 -6
  117. package/es/oracle/Oracle.js.map +1 -1
  118. package/es/oracle/OracleBase.d.ts +15 -2
  119. package/es/oracle/OracleBase.js +23 -1
  120. package/es/oracle/OracleBase.js.map +1 -1
  121. package/es/oracle/OracleClient.d.ts +3 -0
  122. package/es/oracle/OracleClient.js +6 -1
  123. package/es/oracle/OracleClient.js.map +1 -1
  124. package/es/spend.js +1 -1
  125. package/es/spend.js.map +1 -1
  126. package/es/tx/builder/common.js +6 -3
  127. package/es/tx/builder/common.js.map +1 -1
  128. package/es/tx/builder/constants.d.ts +53 -3
  129. package/es/tx/builder/constants.js +62 -12
  130. package/es/tx/builder/constants.js.map +1 -1
  131. package/es/tx/builder/delegation/schema.js +15 -0
  132. package/es/tx/builder/delegation/schema.js.map +1 -1
  133. package/es/tx/builder/entry/constants.d.ts +4 -1
  134. package/es/tx/builder/entry/constants.js +10 -1
  135. package/es/tx/builder/entry/constants.js.map +1 -1
  136. package/es/tx/builder/entry/index.js +1 -2
  137. package/es/tx/builder/entry/index.js.map +1 -1
  138. package/es/tx/builder/field-types/ct-version.js +1 -2
  139. package/es/tx/builder/field-types/ct-version.js.map +1 -1
  140. package/es/tx/builder/field-types/fee.d.ts +1 -1
  141. package/es/tx/builder/field-types/fee.js +4 -4
  142. package/es/tx/builder/field-types/fee.js.map +1 -1
  143. package/es/tx/builder/field-types/gas-price.d.ts +3 -0
  144. package/es/tx/builder/field-types/gas-price.js +1 -1
  145. package/es/tx/builder/field-types/gas-price.js.map +1 -1
  146. package/es/tx/builder/field-types/name-fee.js +1 -1
  147. package/es/tx/builder/field-types/name-fee.js.map +1 -1
  148. package/es/tx/builder/field-types/name-id.js +2 -2
  149. package/es/tx/builder/field-types/name-id.js.map +1 -1
  150. package/es/tx/builder/field-types/nonce.d.ts +1 -1
  151. package/es/tx/builder/field-types/nonce.js.map +1 -1
  152. package/es/tx/builder/field-types/pointers.js +3 -3
  153. package/es/tx/builder/field-types/pointers.js.map +1 -1
  154. package/es/tx/builder/field-types/ttl.d.ts +1 -2
  155. package/es/tx/builder/field-types/ttl.js +7 -5
  156. package/es/tx/builder/field-types/ttl.js.map +1 -1
  157. package/es/tx/builder/helpers.d.ts +18 -12
  158. package/es/tx/builder/helpers.js +25 -17
  159. package/es/tx/builder/helpers.js.map +1 -1
  160. package/es/tx/builder/schema.d.ts +50 -70
  161. package/es/tx/builder/schema.generated.d.ts +12 -12
  162. package/es/tx/builder/schema.generated.js.map +1 -1
  163. package/es/tx/builder/schema.js +5 -3
  164. package/es/tx/builder/schema.js.map +1 -1
  165. package/es/tx/execution-cost.d.ts +3 -0
  166. package/es/tx/execution-cost.js +7 -4
  167. package/es/tx/execution-cost.js.map +1 -1
  168. package/es/tx/transaction-signer.d.ts +1 -0
  169. package/es/tx/transaction-signer.js +1 -0
  170. package/es/tx/transaction-signer.js.map +1 -1
  171. package/es/tx/validator.js +4 -3
  172. package/es/tx/validator.js.map +1 -1
  173. package/es/utils/MiddlewarePage.d.ts +4 -3
  174. package/es/utils/MiddlewarePage.js.map +1 -1
  175. package/es/utils/amount-formatter.d.ts +15 -1
  176. package/es/utils/amount-formatter.js +17 -1
  177. package/es/utils/amount-formatter.js.map +1 -1
  178. package/es/utils/autorest.d.ts +1 -1
  179. package/es/utils/autorest.js +10 -4
  180. package/es/utils/autorest.js.map +1 -1
  181. package/es/utils/bignumber.d.ts +1 -1
  182. package/es/utils/bignumber.js +1 -1
  183. package/es/utils/bignumber.js.map +1 -1
  184. package/es/utils/bytes.d.ts +3 -1
  185. package/es/utils/bytes.js +3 -1
  186. package/es/utils/bytes.js.map +1 -1
  187. package/es/utils/crypto.d.ts +48 -15
  188. package/es/utils/crypto.js +80 -29
  189. package/es/utils/crypto.js.map +1 -1
  190. package/es/utils/encoder-types.d.ts +1 -1
  191. package/es/utils/encoder-types.js +1 -1
  192. package/es/utils/encoder-types.js.map +1 -1
  193. package/es/utils/encoder.d.ts +2 -0
  194. package/es/utils/encoder.js +2 -0
  195. package/es/utils/encoder.js.map +1 -1
  196. package/es/utils/errors.d.ts +2 -2
  197. package/es/utils/errors.js +2 -2
  198. package/es/utils/errors.js.map +1 -1
  199. package/es/utils/json-big.js +1 -1
  200. package/es/utils/json-big.js.map +1 -1
  201. package/es/utils/jwt.js +3 -3
  202. package/es/utils/jwt.js.map +1 -1
  203. package/es/utils/typed-data.d.ts +5 -0
  204. package/es/utils/typed-data.js +6 -0
  205. package/es/utils/typed-data.js.map +1 -1
  206. package/package.json +51 -52
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","names":["RestError","hash","isAddressValid","verify","ProtocolToVmAbi","Tag","buildTx","unpackTx","concatBuffers","isAccountNotFoundError","Encoding","decode","Node","genAggressiveCacheGetResponsesPolicy","UnexpectedTsError","getTransactionSignerAddress","getExecutionCostUsingNode","validators","verifyTransactionInternal","tx","node","parentTxTypes","address","account","height","consensusProtocolVersion","nodeNetworkId","Promise","all","getAccountByPubkey","catch","error","id","balance","nonce","then","acc","getCurrentKeyBlockHeight","getNodeInfo","map","v","flat","verifyTransaction","transaction","nodeNotCached","pipeline","clone","removePolicy","name","$host","ignoreVersion","additionalPolicies","push","tag","SignedTx","encodedTx","signatures","length","prefix","_Buffer","from","includes","PayingForTx","join","txBinary","txWithNetworkId","txHashWithNetworkId","message","key","checkedKeys","nestedTx","ttl","cost","SpendTx","recipientId","Name","recipient","payable","kind","GaMetaTx","_ref","_ref2","oracleCall","OracleRegisterTx","contractCreate","ContractCreateTx","GaAttachTx","contractCall","ContractCallTx","type","protocol","ctVersion","abiVersion","vmVersion","JSON","stringify","contractId","startsWith","active","getContract","response","bodyAsText","parse","reason"],"sources":["../../src/tx/validator.ts"],"sourcesContent":["import { RestError } from '@azure/core-rest-pipeline';\nimport { hash, isAddressValid, verify } from '../utils/crypto.js';\nimport { TxUnpacked } from './builder/schema.generated.js';\nimport { CtVersion, ProtocolToVmAbi } from './builder/field-types/ct-version.js';\nimport { Tag, ConsensusProtocolVersion } from './builder/constants.js';\nimport { buildTx, unpackTx } from './builder/index.js';\nimport { concatBuffers, isAccountNotFoundError } from '../utils/other.js';\nimport { Encoded, Encoding, decode } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport { Account } from '../apis/node/index.js';\nimport { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest.js';\nimport { UnexpectedTsError } from '../utils/errors.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\nimport { getExecutionCostUsingNode } from './execution-cost.js';\n\nexport interface ValidatorResult {\n message: string;\n key: string;\n checkedKeys: string[];\n}\n\ntype Validator = (\n tx: TxUnpacked,\n options: {\n // TODO: remove after fixing node types\n account: Account & { id: Encoded.AccountAddress };\n nodeNetworkId: string;\n parentTxTypes: Tag[];\n node: Node;\n height: number;\n consensusProtocolVersion: ConsensusProtocolVersion;\n },\n) => ValidatorResult[] | Promise<ValidatorResult[]>;\n\nconst validators: Validator[] = [];\n\nasync function verifyTransactionInternal(\n tx: TxUnpacked,\n node: Node,\n parentTxTypes: Tag[],\n): Promise<ValidatorResult[]> {\n const address = getTransactionSignerAddress(buildTx(tx));\n const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([\n node\n .getAccountByPubkey(address)\n .catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { id: address, balance: 0n, nonce: 0 };\n })\n // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537\n .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),\n node.getCurrentKeyBlockHeight(), // TODO: don't request height on each validation, use caching\n node.getNodeInfo(),\n ]);\n\n return (\n await Promise.all(\n validators.map(async (v) =>\n v(tx, {\n node,\n account,\n height,\n consensusProtocolVersion,\n nodeNetworkId,\n parentTxTypes,\n }),\n ),\n )\n ).flat();\n}\n\n/**\n * Transaction Validator\n * This function validates some transaction properties,\n * to make sure it can be posted it to the chain\n * @category transaction builder\n * @param transaction - Base64Check-encoded transaction\n * @param nodeNotCached - Node to validate transaction against\n * @returns Array with verification errors\n * @example const errors = await verifyTransaction(transaction, node)\n */\nexport default async function verifyTransaction(\n transaction: Parameters<typeof unpackTx>[0],\n nodeNotCached: Node,\n): Promise<ValidatorResult[]> {\n const pipeline = nodeNotCached.pipeline.clone();\n pipeline.removePolicy({ name: 'parse-big-int' });\n const node = new Node(nodeNotCached.$host, {\n ignoreVersion: true,\n pipeline,\n additionalPolicies: [genAggressiveCacheGetResponsesPolicy()],\n });\n return verifyTransactionInternal(unpackTx(transaction), node, []);\n}\n\nvalidators.push(\n (tx, { account, nodeNetworkId, parentTxTypes }) => {\n if (tx.tag !== Tag.SignedTx) return [];\n const { encodedTx, signatures } = tx;\n if ((encodedTx ?? signatures) == null) return [];\n if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels\n const prefix = Buffer.from(\n [nodeNetworkId, ...(parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [])].join('-'),\n );\n const txBinary = decode(buildTx(encodedTx));\n const txWithNetworkId = concatBuffers([prefix, txBinary]);\n const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);\n if (\n verify(txWithNetworkId, signatures[0], account.id) ||\n verify(txHashWithNetworkId, signatures[0], account.id)\n )\n return [];\n return [\n {\n message:\n 'Signature cannot be verified, please ensure that you transaction have' +\n ' the correct prefix and the correct private key for the sender address',\n key: 'InvalidSignature',\n checkedKeys: ['encodedTx', 'signatures'],\n },\n ];\n },\n async (tx, { node, parentTxTypes }) => {\n let nestedTx;\n if ('encodedTx' in tx) nestedTx = tx.encodedTx;\n if ('tx' in tx) nestedTx = tx.tx;\n if (nestedTx == null) return [];\n return verifyTransactionInternal(nestedTx, node, [...parentTxTypes, tx.tag]);\n },\n (tx, { height }) => {\n if (!('ttl' in tx)) return [];\n if (tx.ttl === 0 || tx.ttl > height) return [];\n return [\n {\n message: `TTL ${tx.ttl} is already expired, current height is ${height}`,\n key: 'ExpiredTTL',\n checkedKeys: ['ttl'],\n },\n ];\n },\n async (tx, { account, parentTxTypes, node }) => {\n if (parentTxTypes.length !== 0) return [];\n const cost = await getExecutionCostUsingNode(buildTx(tx), node).catch(() => 0n);\n if (cost <= account.balance) return [];\n return [\n {\n message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost}`,\n key: 'InsufficientBalance',\n checkedKeys: ['amount', 'fee', 'nameFee', 'gasLimit', 'gasPrice'],\n },\n ];\n },\n async (tx, { node }) => {\n if (tx.tag !== Tag.SpendTx || isAddressValid(tx.recipientId, Encoding.Name)) return [];\n const recipient = await node.getAccountByPubkey(tx.recipientId).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return null;\n });\n if (recipient == null || recipient.payable === true) return [];\n return [\n {\n message: 'Recipient account is not payable',\n key: 'RecipientAccountNotPayable',\n checkedKeys: ['recipientId'],\n },\n ];\n },\n (tx, { account }) => {\n let message;\n if (tx.tag === Tag.SignedTx && account.kind === 'generalized' && tx.signatures.length !== 0) {\n message = \"Generalized account can't be used to generate SignedTx with signatures\";\n }\n if (tx.tag === Tag.GaMetaTx && account.kind === 'basic') {\n message = \"Basic account can't be used to generate GaMetaTx\";\n }\n if (message == null) return [];\n return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];\n },\n // TODO: revert nonce check\n // TODO: ensure nonce valid when paying for own tx\n (tx, { consensusProtocolVersion }) => {\n const oracleCall = Tag.OracleRegisterTx === tx.tag;\n const contractCreate = Tag.ContractCreateTx === tx.tag || Tag.GaAttachTx === tx.tag;\n const contractCall = Tag.ContractCallTx === tx.tag || Tag.GaMetaTx === tx.tag;\n const type =\n (oracleCall ? 'oracle-call' : null) ??\n (contractCreate ? 'contract-create' : null) ??\n (contractCall ? 'contract-call' : null);\n if (type == null) return [];\n const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as {\n abiVersion: readonly any[];\n vmVersion: readonly any[];\n };\n\n let ctVersion: Partial<CtVersion> | undefined;\n if ('abiVersion' in tx) ctVersion = { abiVersion: tx.abiVersion };\n if ('ctVersion' in tx) ctVersion = tx.ctVersion;\n if (ctVersion == null) throw new UnexpectedTsError();\n if (\n !protocol.abiVersion.includes(ctVersion.abiVersion) ||\n (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))\n ) {\n return [\n {\n message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,\n key: 'VmAndAbiVersionMismatch',\n checkedKeys: ['ctVersion', 'abiVersion'],\n },\n ];\n }\n return [];\n },\n async (tx, { node }) => {\n if (Tag.ContractCallTx !== tx.tag) return [];\n // TODO: remove after solving https://github.com/aeternity/aeternity/issues/3669\n if (tx.contractId.startsWith('nm_')) return [];\n try {\n const { active } = await node.getContract(tx.contractId);\n if (active) return [];\n return [\n {\n message: `Contract ${tx.contractId} is not active`,\n key: 'ContractNotActive',\n checkedKeys: ['contractId'],\n },\n ];\n } catch (error) {\n if (!(error instanceof RestError) || error.response?.bodyAsText == null) throw error;\n return [\n {\n message: JSON.parse(error.response.bodyAsText).reason, // TODO: use parsedBody instead\n key: 'ContractNotFound',\n checkedKeys: ['contractId'],\n },\n ];\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"validator.js","names":["RestError","hash","isEncoded","verifySignature","ProtocolToVmAbi","Tag","buildTx","unpackTx","concatBuffers","isAccountNotFoundError","Encoding","decode","Node","genAggressiveCacheGetResponsesPolicy","UnexpectedTsError","getTransactionSignerAddress","getExecutionCostUsingNode","validators","verifyTransactionInternal","tx","node","parentTxTypes","address","account","height","consensusProtocolVersion","nodeNetworkId","Promise","all","getAccountByPubkey","catch","error","id","balance","nonce","then","acc","getCurrentKeyBlockHeight","getNodeInfo","map","v","flat","verifyTransaction","transaction","nodeNotCached","pipeline","clone","removePolicy","name","$host","ignoreVersion","additionalPolicies","_getCachedStatus","push","tag","SignedTx","encodedTx","signatures","length","prefix","_Buffer","from","includes","PayingForTx","join","txBinary","txWithNetworkId","txHashWithNetworkId","message","key","checkedKeys","nestedTx","ttl","cost","SpendTx","recipientId","Name","recipient","payable","kind","GaMetaTx","_ref","_ref2","oracleCall","OracleRegisterTx","contractCreate","ContractCreateTx","GaAttachTx","contractCall","ContractCallTx","type","protocol","ctVersion","abiVersion","vmVersion","JSON","stringify","contractId","startsWith","active","getContract","response","bodyAsText","parse","reason"],"sources":["../../src/tx/validator.ts"],"sourcesContent":["import { RestError } from '@azure/core-rest-pipeline';\nimport { hash, isEncoded, verifySignature } from '../utils/crypto.js';\nimport { TxUnpacked } from './builder/schema.generated.js';\nimport { CtVersion, ProtocolToVmAbi } from './builder/field-types/ct-version.js';\nimport { Tag, ConsensusProtocolVersion } from './builder/constants.js';\nimport { buildTx, unpackTx } from './builder/index.js';\nimport { concatBuffers, isAccountNotFoundError } from '../utils/other.js';\nimport { Encoded, Encoding, decode } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport { Account } from '../apis/node/index.js';\nimport { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest.js';\nimport { UnexpectedTsError } from '../utils/errors.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\nimport { getExecutionCostUsingNode } from './execution-cost.js';\n\nexport interface ValidatorResult {\n message: string;\n key: string;\n checkedKeys: string[];\n}\n\ntype Validator = (\n tx: TxUnpacked,\n options: {\n // TODO: remove after fixing node types\n account: Account & { id: Encoded.AccountAddress };\n nodeNetworkId: string;\n parentTxTypes: Tag[];\n node: Node;\n height: number;\n consensusProtocolVersion: ConsensusProtocolVersion;\n },\n) => ValidatorResult[] | Promise<ValidatorResult[]>;\n\nconst validators: Validator[] = [];\n\nasync function verifyTransactionInternal(\n tx: TxUnpacked,\n node: Node,\n parentTxTypes: Tag[],\n): Promise<ValidatorResult[]> {\n const address = getTransactionSignerAddress(buildTx(tx));\n const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([\n node\n .getAccountByPubkey(address)\n .catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { id: address, balance: 0n, nonce: 0 };\n })\n // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537\n .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),\n node.getCurrentKeyBlockHeight(), // TODO: don't request height on each validation, use caching\n node.getNodeInfo(),\n ]);\n\n return (\n await Promise.all(\n validators.map(async (v) =>\n v(tx, {\n node,\n account,\n height,\n consensusProtocolVersion,\n nodeNetworkId,\n parentTxTypes,\n }),\n ),\n )\n ).flat();\n}\n\n/**\n * Transaction Validator\n * This function validates some transaction properties,\n * to make sure it can be posted it to the chain\n * @category transaction builder\n * @param transaction - Base64Check-encoded transaction\n * @param nodeNotCached - Node to validate transaction against\n * @returns Array with verification errors\n * @example const errors = await verifyTransaction(transaction, node)\n */\nexport default async function verifyTransaction(\n transaction: Parameters<typeof unpackTx>[0],\n nodeNotCached: Node,\n): Promise<ValidatorResult[]> {\n const pipeline = nodeNotCached.pipeline.clone();\n pipeline.removePolicy({ name: 'parse-big-int' });\n const node = new Node(nodeNotCached.$host, {\n ignoreVersion: true,\n pipeline,\n additionalPolicies: [genAggressiveCacheGetResponsesPolicy()],\n });\n node._getCachedStatus = async () => nodeNotCached._getCachedStatus();\n return verifyTransactionInternal(unpackTx(transaction), node, []);\n}\n\nvalidators.push(\n (tx, { account, nodeNetworkId, parentTxTypes }) => {\n if (tx.tag !== Tag.SignedTx) return [];\n const { encodedTx, signatures } = tx;\n if ((encodedTx ?? signatures) == null) return [];\n if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels\n const prefix = Buffer.from(\n [nodeNetworkId, ...(parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [])].join('-'),\n );\n const txBinary = decode(buildTx(encodedTx));\n const txWithNetworkId = concatBuffers([prefix, txBinary]);\n const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);\n if (\n verifySignature(txWithNetworkId, signatures[0], account.id) ||\n verifySignature(txHashWithNetworkId, signatures[0], account.id)\n )\n return [];\n return [\n {\n message:\n 'Signature cannot be verified, please ensure that you transaction have' +\n ' the correct prefix and the correct private key for the sender address',\n key: 'InvalidSignature',\n checkedKeys: ['encodedTx', 'signatures'],\n },\n ];\n },\n async (tx, { node, parentTxTypes }) => {\n let nestedTx;\n if ('encodedTx' in tx) nestedTx = tx.encodedTx;\n if ('tx' in tx) nestedTx = tx.tx;\n if (nestedTx == null) return [];\n return verifyTransactionInternal(nestedTx, node, [...parentTxTypes, tx.tag]);\n },\n (tx, { height }) => {\n if (!('ttl' in tx)) return [];\n if (tx.ttl === 0 || tx.ttl > height) return [];\n return [\n {\n message: `TTL ${tx.ttl} is already expired, current height is ${height}`,\n key: 'ExpiredTTL',\n checkedKeys: ['ttl'],\n },\n ];\n },\n async (tx, { account, parentTxTypes, node }) => {\n if (parentTxTypes.length !== 0) return [];\n const cost = await getExecutionCostUsingNode(buildTx(tx), node).catch(() => 0n);\n if (cost <= account.balance) return [];\n return [\n {\n message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost}`,\n key: 'InsufficientBalance',\n checkedKeys: ['amount', 'fee', 'nameFee', 'gasLimit', 'gasPrice'],\n },\n ];\n },\n async (tx, { node }) => {\n if (tx.tag !== Tag.SpendTx || isEncoded(tx.recipientId, Encoding.Name)) return [];\n const recipient = await node.getAccountByPubkey(tx.recipientId).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return null;\n });\n if (recipient == null || recipient.payable === true) return [];\n return [\n {\n message: 'Recipient account is not payable',\n key: 'RecipientAccountNotPayable',\n checkedKeys: ['recipientId'],\n },\n ];\n },\n (tx, { account }) => {\n let message;\n if (tx.tag === Tag.SignedTx && account.kind === 'generalized' && tx.signatures.length !== 0) {\n message = \"Generalized account can't be used to generate SignedTx with signatures\";\n }\n if (tx.tag === Tag.GaMetaTx && account.kind === 'basic') {\n message = \"Basic account can't be used to generate GaMetaTx\";\n }\n if (message == null) return [];\n return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];\n },\n // TODO: revert nonce check\n // TODO: ensure nonce valid when paying for own tx\n (tx, { consensusProtocolVersion }) => {\n const oracleCall = Tag.OracleRegisterTx === tx.tag;\n const contractCreate = Tag.ContractCreateTx === tx.tag || Tag.GaAttachTx === tx.tag;\n const contractCall = Tag.ContractCallTx === tx.tag || Tag.GaMetaTx === tx.tag;\n const type =\n (oracleCall ? 'oracle-call' : null) ??\n (contractCreate ? 'contract-create' : null) ??\n (contractCall ? 'contract-call' : null);\n if (type == null) return [];\n const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as {\n abiVersion: readonly any[];\n vmVersion: readonly any[];\n };\n\n let ctVersion: Partial<CtVersion> | undefined;\n if ('abiVersion' in tx) ctVersion = { abiVersion: tx.abiVersion };\n if ('ctVersion' in tx) ctVersion = tx.ctVersion;\n if (ctVersion == null) throw new UnexpectedTsError();\n if (\n !protocol.abiVersion.includes(ctVersion.abiVersion) ||\n (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))\n ) {\n return [\n {\n message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,\n key: 'VmAndAbiVersionMismatch',\n checkedKeys: ['ctVersion', 'abiVersion'],\n },\n ];\n }\n return [];\n },\n async (tx, { node }) => {\n if (Tag.ContractCallTx !== tx.tag) return [];\n // TODO: remove after solving https://github.com/aeternity/aeternity/issues/3669\n if (tx.contractId.startsWith('nm_')) return [];\n try {\n const { active } = await node.getContract(tx.contractId);\n if (active) return [];\n return [\n {\n message: `Contract ${tx.contractId} is not active`,\n key: 'ContractNotActive',\n checkedKeys: ['contractId'],\n },\n ];\n } catch (error) {\n if (!(error instanceof RestError) || error.response?.bodyAsText == null) throw error;\n return [\n {\n message: JSON.parse(error.response.bodyAsText).reason, // TODO: use parsedBody instead\n key: 'ContractNotFound',\n checkedKeys: ['contractId'],\n },\n ];\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import type Middleware from '../Middleware.js';
2
2
  import { BaseError } from './errors.js';
3
- export interface MiddlewareRawPage {
4
- data: unknown[];
3
+ interface MiddlewareRawPage<T = unknown> {
4
+ data: T[];
5
5
  next: string | null;
6
6
  prev: string | null;
7
7
  }
@@ -20,7 +20,7 @@ export declare class MiddlewarePage<Item> {
20
20
  readonly data: Item[];
21
21
  readonly nextPath: null | string;
22
22
  readonly prevPath: null | string;
23
- constructor(rawPage: MiddlewareRawPage, middleware: Middleware);
23
+ constructor(rawPage: MiddlewareRawPage<Item>, middleware: Middleware);
24
24
  /**
25
25
  * Get the next page.
26
26
  * Check the presence of `nextPath` to not fall outside existing pages.
@@ -34,3 +34,4 @@ export declare class MiddlewarePage<Item> {
34
34
  */
35
35
  prev(): Promise<MiddlewarePage<Item>>;
36
36
  }
37
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MiddlewarePage.js","names":["BaseError","isMiddlewareRawPage","maybePage","testPage","data","Array","isArray","MiddlewarePageMissed","constructor","isNext","name","_middleware","WeakMap","MiddlewarePage","rawPage","middleware","_classPrivateFieldInitSpec","nextPath","next","prevPath","prev","_classPrivateFieldSet","_classPrivateFieldGet","requestByPath"],"sources":["../../src/utils/MiddlewarePage.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport type Middleware from '../Middleware.js';\nimport { BaseError } from './errors.js';\n\nexport interface MiddlewareRawPage {\n data: unknown[];\n next: string | null;\n prev: string | null;\n}\n\nexport function isMiddlewareRawPage(maybePage: unknown): maybePage is MiddlewareRawPage {\n const testPage = maybePage as MiddlewareRawPage;\n return (\n testPage?.data != null &&\n Array.isArray(testPage.data) &&\n 'next' in testPage &&\n 'prev' in testPage\n );\n}\n\n/**\n * @category exception\n */\nexport class MiddlewarePageMissed extends BaseError {\n constructor(isNext: boolean) {\n super(`There is no ${isNext ? 'next' : 'previous'} page`);\n this.name = 'MiddlewarePageMissed';\n }\n}\n\n/**\n * A wrapper around the middleware's page allowing to get the next/previous pages.\n */\nexport class MiddlewarePage<Item> {\n readonly data: Item[];\n\n readonly nextPath: null | string;\n\n readonly prevPath: null | string;\n\n readonly #middleware: Middleware;\n\n constructor(rawPage: MiddlewareRawPage, middleware: Middleware) {\n this.data = rawPage.data as Item[];\n this.nextPath = rawPage.next;\n this.prevPath = rawPage.prev;\n this.#middleware = middleware;\n }\n\n /**\n * Get the next page.\n * Check the presence of `nextPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async next(): Promise<MiddlewarePage<Item>> {\n if (this.nextPath == null) throw new MiddlewarePageMissed(true);\n return this.#middleware.requestByPath(this.nextPath);\n }\n\n /**\n * Get the previous page.\n * Check the presence of `prevPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async prev(): Promise<MiddlewarePage<Item>> {\n if (this.prevPath == null) throw new MiddlewarePageMissed(false);\n return this.#middleware.requestByPath(this.prevPath);\n }\n}\n"],"mappings":";;;;;AAAA;;AAEA,SAASA,SAAS,QAAQ,aAAa;AAQvC,OAAO,SAASC,mBAAmBA,CAACC,SAAkB,EAAkC;EACtF,MAAMC,QAAQ,GAAGD,SAA8B;EAC/C,OACEC,QAAQ,EAAEC,IAAI,IAAI,IAAI,IACtBC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAACC,IAAI,CAAC,IAC5B,MAAM,IAAID,QAAQ,IAClB,MAAM,IAAIA,QAAQ;AAEtB;;AAEA;AACA;AACA;AACA,OAAO,MAAMI,oBAAoB,SAASP,SAAS,CAAC;EAClDQ,WAAWA,CAACC,MAAe,EAAE;IAC3B,KAAK,CAAC,eAAeA,MAAM,GAAG,MAAM,GAAG,UAAU,OAAO,CAAC;IACzD,IAAI,CAACC,IAAI,GAAG,sBAAsB;EACpC;AACF;;AAEA;AACA;AACA;AAFA,IAAAC,WAAA,oBAAAC,OAAA;AAGA,OAAO,MAAMC,cAAc,CAAO;EAShCL,WAAWA,CAACM,OAA0B,EAAEC,UAAsB,EAAE;IAFhEC,0BAAA,OAASL,WAAW;IAGlB,IAAI,CAACP,IAAI,GAAGU,OAAO,CAACV,IAAc;IAClC,IAAI,CAACa,QAAQ,GAAGH,OAAO,CAACI,IAAI;IAC5B,IAAI,CAACC,QAAQ,GAAGL,OAAO,CAACM,IAAI;IAC5BC,qBAAA,CAAKV,WAAW,EAAhB,IAAI,EAAeI,UAAJ,CAAC;EAClB;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIV,oBAAoB,CAAC,IAAI,CAAC;IAC/D,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACN,QAAQ,CAAC;EACtD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIZ,oBAAoB,CAAC,KAAK,CAAC;IAChE,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACJ,QAAQ,CAAC;EACtD;AACF","ignoreList":[]}
1
+ {"version":3,"file":"MiddlewarePage.js","names":["BaseError","isMiddlewareRawPage","maybePage","testPage","data","Array","isArray","MiddlewarePageMissed","constructor","isNext","name","_middleware","WeakMap","MiddlewarePage","rawPage","middleware","_classPrivateFieldInitSpec","nextPath","next","prevPath","prev","_classPrivateFieldSet","_classPrivateFieldGet","requestByPath"],"sources":["../../src/utils/MiddlewarePage.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport type Middleware from '../Middleware.js';\nimport { BaseError } from './errors.js';\n\ninterface MiddlewareRawPage<T = unknown> {\n data: T[];\n next: string | null;\n prev: string | null;\n}\n\nexport function isMiddlewareRawPage(maybePage: unknown): maybePage is MiddlewareRawPage {\n const testPage = maybePage as MiddlewareRawPage;\n return (\n testPage?.data != null &&\n Array.isArray(testPage.data) &&\n 'next' in testPage &&\n 'prev' in testPage\n );\n}\n\n/**\n * @category exception\n */\nexport class MiddlewarePageMissed extends BaseError {\n constructor(isNext: boolean) {\n super(`There is no ${isNext ? 'next' : 'previous'} page`);\n this.name = 'MiddlewarePageMissed';\n }\n}\n\n/**\n * A wrapper around the middleware's page allowing to get the next/previous pages.\n */\nexport class MiddlewarePage<Item> {\n readonly data: Item[];\n\n readonly nextPath: null | string;\n\n readonly prevPath: null | string;\n\n readonly #middleware: Middleware;\n\n constructor(rawPage: MiddlewareRawPage<Item>, middleware: Middleware) {\n this.data = rawPage.data;\n this.nextPath = rawPage.next;\n this.prevPath = rawPage.prev;\n this.#middleware = middleware;\n }\n\n /**\n * Get the next page.\n * Check the presence of `nextPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async next(): Promise<MiddlewarePage<Item>> {\n if (this.nextPath == null) throw new MiddlewarePageMissed(true);\n return this.#middleware.requestByPath(this.nextPath);\n }\n\n /**\n * Get the previous page.\n * Check the presence of `prevPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async prev(): Promise<MiddlewarePage<Item>> {\n if (this.prevPath == null) throw new MiddlewarePageMissed(false);\n return this.#middleware.requestByPath(this.prevPath);\n }\n}\n"],"mappings":";;;;;AAAA;;AAEA,SAASA,SAAS,QAAQ,aAAa;AAQvC,OAAO,SAASC,mBAAmBA,CAACC,SAAkB,EAAkC;EACtF,MAAMC,QAAQ,GAAGD,SAA8B;EAC/C,OACEC,QAAQ,EAAEC,IAAI,IAAI,IAAI,IACtBC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAACC,IAAI,CAAC,IAC5B,MAAM,IAAID,QAAQ,IAClB,MAAM,IAAIA,QAAQ;AAEtB;;AAEA;AACA;AACA;AACA,OAAO,MAAMI,oBAAoB,SAASP,SAAS,CAAC;EAClDQ,WAAWA,CAACC,MAAe,EAAE;IAC3B,KAAK,CAAC,eAAeA,MAAM,GAAG,MAAM,GAAG,UAAU,OAAO,CAAC;IACzD,IAAI,CAACC,IAAI,GAAG,sBAAsB;EACpC;AACF;;AAEA;AACA;AACA;AAFA,IAAAC,WAAA,oBAAAC,OAAA;AAGA,OAAO,MAAMC,cAAc,CAAO;EAShCL,WAAWA,CAACM,OAAgC,EAAEC,UAAsB,EAAE;IAFtEC,0BAAA,OAASL,WAAW;IAGlB,IAAI,CAACP,IAAI,GAAGU,OAAO,CAACV,IAAI;IACxB,IAAI,CAACa,QAAQ,GAAGH,OAAO,CAACI,IAAI;IAC5B,IAAI,CAACC,QAAQ,GAAGL,OAAO,CAACM,IAAI;IAC5BC,qBAAA,CAAKV,WAAW,EAAhB,IAAI,EAAeI,UAAJ,CAAC;EAClB;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIV,oBAAoB,CAAC,IAAI,CAAC;IAC/D,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACN,QAAQ,CAAC;EACtD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIZ,oBAAoB,CAAC,KAAK,CAAC;IAChE,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACJ,QAAQ,CAAC;EACtD;AACF","ignoreList":[]}
@@ -1,4 +1,8 @@
1
- import { BigNumber } from 'bignumber.js';
1
+ import BigNumber from 'bignumber.js';
2
+ /**
3
+ * @deprecated no replacement implemented yet
4
+ * @category utils
5
+ */
2
6
  export declare enum AE_AMOUNT_FORMATS {
3
7
  AE = "ae",
4
8
  MILI_AE = "miliAE",
@@ -10,6 +14,8 @@ export declare enum AE_AMOUNT_FORMATS {
10
14
  }
11
15
  /**
12
16
  * Convert amount from one to other denomination
17
+ * @deprecated no replacement implemented yet
18
+ * @category utils
13
19
  * @param value - amount to convert
14
20
  * @param options - options
15
21
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -22,6 +28,8 @@ export declare const formatAmount: (value: string | number | bigint | BigNumber,
22
28
  }) => string;
23
29
  /**
24
30
  * Convert amount to AE
31
+ * @deprecated no replacement implemented yet
32
+ * @category utils
25
33
  * @param value - amount to convert
26
34
  * @param options - options
27
35
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -31,6 +39,8 @@ export declare const toAe: (value: string | number | BigNumber, { denomination }
31
39
  }) => string;
32
40
  /**
33
41
  * Convert amount to aettos
42
+ * @deprecated no replacement implemented yet
43
+ * @category utils
34
44
  * @param value - amount to convert
35
45
  * @param options - options
36
46
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -38,4 +48,8 @@ export declare const toAe: (value: string | number | BigNumber, { denomination }
38
48
  export declare const toAettos: (value: string | number | BigNumber, { denomination }?: {
39
49
  denomination?: AE_AMOUNT_FORMATS;
40
50
  }) => string;
51
+ /**
52
+ * @deprecated no replacement implemented yet
53
+ * @category utils
54
+ */
41
55
  export declare const prefixedAmount: (rawValue: string | number | BigNumber) => string;
@@ -1,6 +1,11 @@
1
- import { BigNumber } from 'bignumber.js';
1
+ import BigNumber from 'bignumber.js';
2
2
  import { isBigNumber } from './bignumber.js';
3
3
  import { ArgumentError } from './errors.js';
4
+
5
+ /**
6
+ * @deprecated no replacement implemented yet
7
+ * @category utils
8
+ */
4
9
  export let AE_AMOUNT_FORMATS = /*#__PURE__*/function (AE_AMOUNT_FORMATS) {
5
10
  AE_AMOUNT_FORMATS["AE"] = "ae";
6
11
  AE_AMOUNT_FORMATS["MILI_AE"] = "miliAE";
@@ -27,6 +32,8 @@ const DENOMINATION_MAGNITUDE = {
27
32
 
28
33
  /**
29
34
  * Convert amount from one to other denomination
35
+ * @deprecated no replacement implemented yet
36
+ * @category utils
30
37
  * @param value - amount to convert
31
38
  * @param options - options
32
39
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -43,6 +50,8 @@ export const formatAmount = (value, {
43
50
 
44
51
  /**
45
52
  * Convert amount to AE
53
+ * @deprecated no replacement implemented yet
54
+ * @category utils
46
55
  * @param value - amount to convert
47
56
  * @param options - options
48
57
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -56,6 +65,8 @@ export const toAe = (value, {
56
65
 
57
66
  /**
58
67
  * Convert amount to aettos
68
+ * @deprecated no replacement implemented yet
69
+ * @category utils
59
70
  * @param value - amount to convert
60
71
  * @param options - options
61
72
  * @param options.denomination - denomination of amount, can be ['ae', 'aettos']
@@ -83,6 +94,11 @@ const getLowerBoundPrefix = exponent => {
83
94
  var _prefixes$find;
84
95
  return (_prefixes$find = prefixes.find(p => p.magnitude <= exponent)) !== null && _prefixes$find !== void 0 ? _prefixes$find : prefixes[prefixes.length - 1];
85
96
  };
97
+
98
+ /**
99
+ * @deprecated no replacement implemented yet
100
+ * @category utils
101
+ */
86
102
  export const prefixedAmount = rawValue => {
87
103
  var _value$e;
88
104
  const value = new BigNumber(rawValue);
@@ -1 +1 @@
1
- {"version":3,"file":"amount-formatter.js","names":["BigNumber","isBigNumber","ArgumentError","AE_AMOUNT_FORMATS","DENOMINATION_MAGNITUDE","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","formatAmount","value","denomination","targetDenomination","toString","shiftedBy","toFixed","toAe","toAettos","prefixes","name","magnitude","getNearestPrefix","exponent","reduce","p","n","Math","abs","getLowerBoundPrefix","_prefixes$find","find","length","prefixedAmount","rawValue","_value$e","exp","e","v","precision","min"],"sources":["../../src/utils/amount-formatter.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js';\nimport { isBigNumber } from './bignumber.js';\nimport { ArgumentError } from './errors.js';\n\nexport enum AE_AMOUNT_FORMATS {\n AE = 'ae',\n MILI_AE = 'miliAE',\n MICRO_AE = 'microAE',\n NANO_AE = 'nanoAE',\n PICO_AE = 'picoAE',\n FEMTO_AE = 'femtoAE',\n AETTOS = 'aettos',\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nconst DENOMINATION_MAGNITUDE = {\n [AE_AMOUNT_FORMATS.AE]: 0,\n [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n [AE_AMOUNT_FORMATS.AETTOS]: -18,\n} as const;\n\n/**\n * Convert amount from one to other denomination\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n * @param options.targetDenomination - target denomination,\n * can be ['ae', 'aettos']\n */\nexport const formatAmount = (\n value: string | number | bigint | BigNumber,\n {\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n targetDenomination = AE_AMOUNT_FORMATS.AETTOS,\n }: { denomination?: AE_AMOUNT_FORMATS; targetDenomination?: AE_AMOUNT_FORMATS },\n): string => {\n if (!isBigNumber(value)) throw new ArgumentError('value', 'a number', value);\n\n return new BigNumber(typeof value === 'bigint' ? value.toString() : value)\n .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n .toFixed();\n};\n\n/**\n * Convert amount to AE\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAe = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE });\n\n/**\n * Convert amount to aettos\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAettos = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AE }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination });\n\ninterface Prefix {\n name: string;\n magnitude: number;\n}\n\nconst prefixes: Prefix[] = [\n { name: 'exa', magnitude: 18 },\n { name: 'giga', magnitude: 9 },\n { name: '', magnitude: 0 },\n { name: 'pico', magnitude: -12 },\n];\n\nconst getNearestPrefix = (exponent: number): Prefix =>\n prefixes.reduce((p, n) =>\n Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p,\n );\n\nconst getLowerBoundPrefix = (exponent: number): Prefix =>\n prefixes.find((p) => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1];\n\nexport const prefixedAmount = (rawValue: string | number | BigNumber): string => {\n const value: BigNumber = new BigNumber(rawValue);\n\n const exp = value.e ?? 0;\n const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp);\n const v = value\n .shiftedBy(-magnitude)\n .precision(9 + Math.min(exp - magnitude, 0))\n .toFixed();\n return `${v}${name !== '' ? ' ' : ''}${name}`;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"amount-formatter.js","names":["BigNumber","isBigNumber","ArgumentError","AE_AMOUNT_FORMATS","DENOMINATION_MAGNITUDE","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","formatAmount","value","denomination","targetDenomination","toString","shiftedBy","toFixed","toAe","toAettos","prefixes","name","magnitude","getNearestPrefix","exponent","reduce","p","n","Math","abs","getLowerBoundPrefix","_prefixes$find","find","length","prefixedAmount","rawValue","_value$e","exp","e","v","precision","min"],"sources":["../../src/utils/amount-formatter.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { isBigNumber } from './bignumber.js';\nimport { ArgumentError } from './errors.js';\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport enum AE_AMOUNT_FORMATS {\n AE = 'ae',\n MILI_AE = 'miliAE',\n MICRO_AE = 'microAE',\n NANO_AE = 'nanoAE',\n PICO_AE = 'picoAE',\n FEMTO_AE = 'femtoAE',\n AETTOS = 'aettos',\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nconst DENOMINATION_MAGNITUDE = {\n [AE_AMOUNT_FORMATS.AE]: 0,\n [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n [AE_AMOUNT_FORMATS.AETTOS]: -18,\n} as const;\n\n/**\n * Convert amount from one to other denomination\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n * @param options.targetDenomination - target denomination,\n * can be ['ae', 'aettos']\n */\nexport const formatAmount = (\n value: string | number | bigint | BigNumber,\n {\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n targetDenomination = AE_AMOUNT_FORMATS.AETTOS,\n }: { denomination?: AE_AMOUNT_FORMATS; targetDenomination?: AE_AMOUNT_FORMATS },\n): string => {\n if (!isBigNumber(value)) throw new ArgumentError('value', 'a number', value);\n\n return new BigNumber(typeof value === 'bigint' ? value.toString() : value)\n .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n .toFixed();\n};\n\n/**\n * Convert amount to AE\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAe = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE });\n\n/**\n * Convert amount to aettos\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAettos = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AE }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination });\n\ninterface Prefix {\n name: string;\n magnitude: number;\n}\n\nconst prefixes: Prefix[] = [\n { name: 'exa', magnitude: 18 },\n { name: 'giga', magnitude: 9 },\n { name: '', magnitude: 0 },\n { name: 'pico', magnitude: -12 },\n];\n\nconst getNearestPrefix = (exponent: number): Prefix =>\n prefixes.reduce((p, n) =>\n Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p,\n );\n\nconst getLowerBoundPrefix = (exponent: number): Prefix =>\n prefixes.find((p) => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1];\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport const prefixedAmount = (rawValue: string | number | BigNumber): string => {\n const value: BigNumber = new BigNumber(rawValue);\n\n const exp = value.e ?? 0;\n const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp);\n const v = value\n .shiftedBy(-magnitude)\n .precision(9 + Math.min(exp - magnitude, 0))\n .toFixed();\n return `${v}${name !== '' ? ' ' : ''}${name}`;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -8,5 +8,5 @@ export declare const genRequestQueuesPolicy: () => AdditionalPolicyConfig;
8
8
  export declare const genCombineGetRequestsPolicy: () => AdditionalPolicyConfig;
9
9
  export declare const genAggressiveCacheGetResponsesPolicy: () => AdditionalPolicyConfig;
10
10
  export declare const genErrorFormatterPolicy: (getMessage: (b: any) => string) => AdditionalPolicyConfig;
11
- export declare const genVersionCheckPolicy: (name: string, versionCb: (options: OperationOptions) => Promise<string>, geVersion: string, ltVersion: string) => AdditionalPolicyConfig;
11
+ export declare const genVersionCheckPolicy: (name: string, versionCb: (options: OperationOptions) => Promise<string>, geVersion: string, ltVersion: string, ignoreVersion: boolean) => AdditionalPolicyConfig;
12
12
  export declare const genRetryOnFailurePolicy: (retryCount: number, retryOverallDelay: number) => AdditionalPolicyConfig;
@@ -17,8 +17,7 @@ export const createSerializer = (...args) => {
17
17
  return serialize.call(this, mapper, object, objectName, options);
18
18
  }
19
19
  if (typeof object !== 'bigint') {
20
- var _objectName;
21
- (_objectName = objectName) !== null && _objectName !== void 0 ? _objectName : objectName = mapper.serializedName;
20
+ objectName !== null && objectName !== void 0 ? objectName : objectName = mapper.serializedName;
22
21
  throw new Error(`${objectName} with value ${object} must be of type bigint.`);
23
22
  }
24
23
  return object.toString();
@@ -148,7 +147,7 @@ export const genErrorFormatterPolicy = getMessage => ({
148
147
  },
149
148
  position: 'perCall'
150
149
  });
151
- export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion) => ({
150
+ export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion, ignoreVersion) => ({
152
151
  policy: {
153
152
  name: 'version-check',
154
153
  async sendRequest(request, next) {
@@ -164,7 +163,10 @@ export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion) =>
164
163
  }
165
164
  };
166
165
  const args = [await versionCb(options), geVersion, ltVersion];
167
- if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);
166
+ if (!semverSatisfies(...args)) {
167
+ const error = new UnsupportedVersionError(name, ...args);
168
+ if (ignoreVersion) console.warn(error.message);else throw error;
169
+ }
168
170
  return next(request);
169
171
  }
170
172
  },
@@ -175,6 +177,10 @@ export const genRetryOnFailurePolicy = (retryCount, retryOverallDelay) => ({
175
177
  name: 'retry-on-failure',
176
178
  async sendRequest(request, next) {
177
179
  var _request$headers$get;
180
+ if (request.headers.get('__no-retry') != null) {
181
+ request.headers.delete('__no-retry');
182
+ return next(request);
183
+ }
178
184
  const retryCode = (_request$headers$get = request.headers.get('__retry-code')) !== null && _request$headers$get !== void 0 ? _request$headers$get : NaN;
179
185
  request.headers.delete('__retry-code');
180
186
  const statusesToNotRetry = [200, 400, 403, 410, 500].filter(c => c !== +retryCode);
@@ -1 +1 @@
1
- {"version":3,"file":"autorest.js","names":["RestError","createSerializer","createSerializerOrig","pause","semverSatisfies","InternalError","UnexpectedTsError","UnsupportedVersionError","bigIntPrefix","args","serializer","serialize","deserialize","Object","assign","mapper","object","objectName","options","type","name","call","_objectName","serializedName","Error","toString","responseBody","startsWith","console","warn","replace","result","Date","Number","MAX_SAFE_INTEGER","BigInt","safeLength","length","bigIntPropertyRe","RegExp","String","raw","bigIntArrayItemRe","parseBigIntPolicy","sendRequest","request","next","response","bodyAsText","replaceAll","matched","match","value","end","join","prefix","genRequestQueuesPolicy","requestQueues","Map","policy","_requestQueues$get","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","catch","position","genCombineGetRequestsPolicy","pendingGetRequests","_pendingGetRequests$g","method","JSON","stringify","url","body","genAggressiveCacheGetResponsesPolicy","getRequests","_getRequests$get","genErrorFormatterPolicy","getMessage","error","message","URL","pathname","slice","code","parsedBody","status","genVersionCheckPolicy","versionCb","geVersion","ltVersion","has","requestOptions","customHeaders","genRetryOnFailurePolicy","retryCount","retryOverallDelay","_request$headers$get","retryCode","NaN","statusesToNotRetry","filter","c","intervals","Array","fill","map","_","idx","intervalSum","reduce","a","b","intervalsInMs","e","Math","floor","attempt","urlParsed","searchParams","_e$response$status","includes"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport {\n AdditionalPolicyConfig,\n FullOperationResponse,\n OperationOptions,\n createSerializer as createSerializerOrig,\n} from '@azure/core-client';\nimport { pause } from './other.js';\nimport semverSatisfies from './semver-satisfies.js';\nimport { InternalError, UnexpectedTsError, UnsupportedVersionError } from './errors.js';\n\nconst bigIntPrefix = '_sdk-big-int-';\n\nexport const createSerializer = (\n ...args: Parameters<typeof createSerializerOrig>\n): ReturnType<typeof createSerializerOrig> => {\n const serializer = createSerializerOrig(...args);\n const { serialize, deserialize } = serializer;\n return Object.assign(serializer, {\n serialize(\n ...[mapper, object, objectName, options]: Parameters<typeof serialize>\n ): ReturnType<typeof serialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || object == null) {\n return serialize.call(this, mapper, object, objectName, options);\n }\n if (typeof object !== 'bigint') {\n objectName ??= mapper.serializedName;\n throw new Error(`${objectName} with value ${object} must be of type bigint.`);\n }\n return object.toString();\n },\n\n deserialize(\n ...[mapper, responseBody, objectName, options]: Parameters<typeof deserialize>\n ): ReturnType<typeof deserialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || responseBody == null) {\n if (typeof responseBody === 'string' && responseBody.startsWith(bigIntPrefix)) {\n console.warn(`AeSdk internal error: BigInt value ${responseBody} handled incorrectly`);\n responseBody = +responseBody.replace(bigIntPrefix, '');\n }\n const result = deserialize.call(this, mapper, responseBody, objectName, options);\n // TODO: remove after fixing https://github.com/aeternity/ae_mdw/issues/1891\n // and https://github.com/aeternity/aeternity/issues/4386\n if (result instanceof Date) return new Date(+result / 1000);\n return result;\n }\n if (typeof responseBody === 'number' && responseBody > Number.MAX_SAFE_INTEGER) {\n throw new InternalError(`Number ${responseBody} is not accurate to be converted to BigInt`);\n }\n return BigInt(responseBody.toString().replace(bigIntPrefix, ''));\n },\n });\n};\n\nconst safeLength = Number.MAX_SAFE_INTEGER.toString().length;\nconst bigIntPropertyRe = new RegExp(String.raw`(\"\\w+\":\\s*)(\\d{${safeLength},})(\\s*[,}])`, 'm');\nconst bigIntArrayItemRe = new RegExp(String.raw`([[,]\\s*)(\\d{${safeLength},})\\b`, 'm');\nexport const parseBigIntPolicy: PipelinePolicy = {\n name: 'parse-big-int',\n async sendRequest(request, next) {\n const response = await next(request);\n if (response.bodyAsText == null) return response;\n // TODO: replace with https://caniuse.com/mdn-javascript_builtins_json_parse_reviver_parameter_context_argument when it gets support in FF and Safari\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntPropertyRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntPropertyRe);\n if (match == null) throw new UnexpectedTsError();\n const [, name, value, end] = match;\n return [\n name,\n +value > Number.MAX_SAFE_INTEGER ? `\"${bigIntPrefix}${value}\"` : value,\n end,\n ].join('');\n },\n );\n // FIXME: may break strings inside json\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntArrayItemRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntArrayItemRe);\n if (match == null) throw new UnexpectedTsError();\n const [, prefix, value] = match;\n return `${prefix}\"${bigIntPrefix}${value}\"`;\n },\n );\n return response;\n },\n};\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);\n requestQueues.set(\n key,\n req.catch(() => {}),\n );\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-get-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genAggressiveCacheGetResponsesPolicy = (): AdditionalPolicyConfig => {\n const getRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'aggressive-cache-get-responses',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = getRequests.get(key) ?? next(request);\n getRequests.set(key, response);\n return response;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (\n !(error instanceof RestError) ||\n error.request == null ||\n error.message.startsWith('Error ')\n )\n throw error;\n const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;\n\n if (error.response?.bodyAsText == null) {\n if (error.message === '') error.message = `${prefix}: ${error.code}`;\n throw error;\n }\n\n const body = (error.response as FullOperationResponse).parsedBody;\n error.message = prefix;\n const message = body == null ? ` ${error.response.status} status code` : getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n versionCb: (options: OperationOptions) => Promise<string>,\n geVersion: string,\n ltVersion: string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'version-check',\n async sendRequest(request, next) {\n if (request.headers.has('__version-check')) {\n request.headers.delete('__version-check');\n return next(request);\n }\n const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };\n const args = [await versionCb(options), geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);\n return next(request);\n },\n },\n position: 'perCall',\n});\n\nexport const genRetryOnFailurePolicy = (\n retryCount: number,\n retryOverallDelay: number,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'retry-on-failure',\n async sendRequest(request, next) {\n const retryCode = request.headers.get('__retry-code') ?? NaN;\n request.headers.delete('__retry-code');\n const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);\n\n const intervals = new Array(retryCount)\n .fill(0)\n .map((_, idx) => ((idx + 1) / retryCount) ** 2);\n const intervalSum = intervals.reduce((a, b) => a + b, 0);\n const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));\n\n let error = new RestError('Not expected to be thrown');\n for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n if (attempt !== 0) {\n await pause(intervalsInMs[attempt - 1]);\n const urlParsed = new URL(request.url);\n urlParsed.searchParams.set('__sdk-retry', attempt.toString());\n request.url = urlParsed.toString();\n }\n try {\n return await next(request);\n } catch (e) {\n if (!(e instanceof RestError)) throw e;\n if (statusesToNotRetry.includes(e.response?.status ?? 0)) throw e;\n error = e;\n }\n }\n throw error;\n },\n },\n position: 'perCall',\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"autorest.js","names":["RestError","createSerializer","createSerializerOrig","pause","semverSatisfies","InternalError","UnexpectedTsError","UnsupportedVersionError","bigIntPrefix","args","serializer","serialize","deserialize","Object","assign","mapper","object","objectName","options","type","name","call","serializedName","Error","toString","responseBody","startsWith","console","warn","replace","result","Date","Number","MAX_SAFE_INTEGER","BigInt","safeLength","length","bigIntPropertyRe","RegExp","String","raw","bigIntArrayItemRe","parseBigIntPolicy","sendRequest","request","next","response","bodyAsText","replaceAll","matched","match","value","end","join","prefix","genRequestQueuesPolicy","requestQueues","Map","policy","_requestQueues$get","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","catch","position","genCombineGetRequestsPolicy","pendingGetRequests","_pendingGetRequests$g","method","JSON","stringify","url","body","genAggressiveCacheGetResponsesPolicy","getRequests","_getRequests$get","genErrorFormatterPolicy","getMessage","error","message","URL","pathname","slice","code","parsedBody","status","genVersionCheckPolicy","versionCb","geVersion","ltVersion","ignoreVersion","has","requestOptions","customHeaders","genRetryOnFailurePolicy","retryCount","retryOverallDelay","_request$headers$get","retryCode","NaN","statusesToNotRetry","filter","c","intervals","Array","fill","map","_","idx","intervalSum","reduce","a","b","intervalsInMs","e","Math","floor","attempt","urlParsed","searchParams","_e$response$status","includes"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport {\n AdditionalPolicyConfig,\n FullOperationResponse,\n OperationOptions,\n createSerializer as createSerializerOrig,\n} from '@azure/core-client';\nimport { pause } from './other.js';\nimport semverSatisfies from './semver-satisfies.js';\nimport { InternalError, UnexpectedTsError, UnsupportedVersionError } from './errors.js';\n\nconst bigIntPrefix = '_sdk-big-int-';\n\nexport const createSerializer = (\n ...args: Parameters<typeof createSerializerOrig>\n): ReturnType<typeof createSerializerOrig> => {\n const serializer = createSerializerOrig(...args);\n const { serialize, deserialize } = serializer;\n return Object.assign(serializer, {\n serialize(\n ...[mapper, object, objectName, options]: Parameters<typeof serialize>\n ): ReturnType<typeof serialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || object == null) {\n return serialize.call(this, mapper, object, objectName, options);\n }\n if (typeof object !== 'bigint') {\n objectName ??= mapper.serializedName;\n throw new Error(`${objectName} with value ${object} must be of type bigint.`);\n }\n return object.toString();\n },\n\n deserialize(\n ...[mapper, responseBody, objectName, options]: Parameters<typeof deserialize>\n ): ReturnType<typeof deserialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || responseBody == null) {\n if (typeof responseBody === 'string' && responseBody.startsWith(bigIntPrefix)) {\n console.warn(`AeSdk internal error: BigInt value ${responseBody} handled incorrectly`);\n responseBody = +responseBody.replace(bigIntPrefix, '');\n }\n const result = deserialize.call(this, mapper, responseBody, objectName, options);\n // TODO: remove after fixing https://github.com/aeternity/ae_mdw/issues/1891\n // and https://github.com/aeternity/aeternity/issues/4386\n if (result instanceof Date) return new Date(+result / 1000);\n return result;\n }\n if (typeof responseBody === 'number' && responseBody > Number.MAX_SAFE_INTEGER) {\n throw new InternalError(`Number ${responseBody} is not accurate to be converted to BigInt`);\n }\n return BigInt(responseBody.toString().replace(bigIntPrefix, ''));\n },\n });\n};\n\nconst safeLength = Number.MAX_SAFE_INTEGER.toString().length;\nconst bigIntPropertyRe = new RegExp(String.raw`(\"\\w+\":\\s*)(\\d{${safeLength},})(\\s*[,}])`, 'm');\nconst bigIntArrayItemRe = new RegExp(String.raw`([[,]\\s*)(\\d{${safeLength},})\\b`, 'm');\nexport const parseBigIntPolicy: PipelinePolicy = {\n name: 'parse-big-int',\n async sendRequest(request, next) {\n const response = await next(request);\n if (response.bodyAsText == null) return response;\n // TODO: replace with https://caniuse.com/mdn-javascript_builtins_json_parse_reviver_parameter_context_argument when it gets support in FF and Safari\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntPropertyRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntPropertyRe);\n if (match == null) throw new UnexpectedTsError();\n const [, name, value, end] = match;\n return [\n name,\n +value > Number.MAX_SAFE_INTEGER ? `\"${bigIntPrefix}${value}\"` : value,\n end,\n ].join('');\n },\n );\n // FIXME: may break strings inside json\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntArrayItemRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntArrayItemRe);\n if (match == null) throw new UnexpectedTsError();\n const [, prefix, value] = match;\n return `${prefix}\"${bigIntPrefix}${value}\"`;\n },\n );\n return response;\n },\n};\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);\n requestQueues.set(\n key,\n req.catch(() => {}),\n );\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-get-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genAggressiveCacheGetResponsesPolicy = (): AdditionalPolicyConfig => {\n const getRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'aggressive-cache-get-responses',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = getRequests.get(key) ?? next(request);\n getRequests.set(key, response);\n return response;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (\n !(error instanceof RestError) ||\n error.request == null ||\n error.message.startsWith('Error ')\n )\n throw error;\n const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;\n\n if (error.response?.bodyAsText == null) {\n if (error.message === '') error.message = `${prefix}: ${error.code}`;\n throw error;\n }\n\n const body = (error.response as FullOperationResponse).parsedBody;\n error.message = prefix;\n const message = body == null ? ` ${error.response.status} status code` : getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n versionCb: (options: OperationOptions) => Promise<string>,\n geVersion: string,\n ltVersion: string,\n ignoreVersion: boolean,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'version-check',\n async sendRequest(request, next) {\n if (request.headers.has('__version-check')) {\n request.headers.delete('__version-check');\n return next(request);\n }\n const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };\n const args = [await versionCb(options), geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) {\n const error = new UnsupportedVersionError(name, ...args);\n if (ignoreVersion) console.warn(error.message);\n else throw error;\n }\n return next(request);\n },\n },\n position: 'perCall',\n});\n\nexport const genRetryOnFailurePolicy = (\n retryCount: number,\n retryOverallDelay: number,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'retry-on-failure',\n async sendRequest(request, next) {\n if (request.headers.get('__no-retry') != null) {\n request.headers.delete('__no-retry');\n return next(request);\n }\n\n const retryCode = request.headers.get('__retry-code') ?? NaN;\n request.headers.delete('__retry-code');\n const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);\n\n const intervals = new Array(retryCount)\n .fill(0)\n .map((_, idx) => ((idx + 1) / retryCount) ** 2);\n const intervalSum = intervals.reduce((a, b) => a + b, 0);\n const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));\n\n let error = new RestError('Not expected to be thrown');\n for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n if (attempt !== 0) {\n await pause(intervalsInMs[attempt - 1]);\n const urlParsed = new URL(request.url);\n urlParsed.searchParams.set('__sdk-retry', attempt.toString());\n request.url = urlParsed.toString();\n }\n try {\n return await next(request);\n } catch (e) {\n if (!(e instanceof RestError)) throw e;\n if (statusesToNotRetry.includes(e.response?.status ?? 0)) throw e;\n error = e;\n }\n }\n throw error;\n },\n },\n position: 'perCall',\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Big Number Helpers
3
3
  */
4
- import { BigNumber } from 'bignumber.js';
4
+ import BigNumber from 'bignumber.js';
5
5
  /**
6
6
  * Check if value is BigNumber, Number, BigInt or number string representation
7
7
  * @param number - number to check
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Big Number Helpers
3
3
  */
4
- import { BigNumber } from 'bignumber.js';
4
+ import BigNumber from 'bignumber.js';
5
5
 
6
6
  /**
7
7
  * Check if value is BigNumber, Number, BigInt or number string representation
@@ -1 +1 @@
1
- {"version":3,"file":"bignumber.js","names":["BigNumber","isBigNumber","number","includes","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport { BigNumber } from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true;\n return (\n ['number', 'object', 'string'].includes(typeof number) &&\n // eslint-disable-next-line no-restricted-globals\n (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n );\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber =>\n bigNumber.integerValue(BigNumber.ROUND_CEIL);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,cAAc;;AAExC;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,MAA4C,IAAc;EACpF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC3C,OACE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAAC,OAAOD,MAAM,CAAC;EACtD;EACC,CAACE,KAAK,CAACF,MAAgB,CAAC,IAAIG,MAAM,CAACC,SAAS,CAACJ,MAAM,CAAC,IAAIF,SAAS,CAACC,WAAW,CAACC,MAAM,CAAC,CAAC;AAE3F,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,IAAI,GAAIC,SAAoB,IACvCA,SAAS,CAACC,YAAY,CAACT,SAAS,CAACU,UAAU,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"bignumber.js","names":["BigNumber","isBigNumber","number","includes","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true;\n return (\n ['number', 'object', 'string'].includes(typeof number) &&\n // eslint-disable-next-line no-restricted-globals\n (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n );\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber =>\n bigNumber.integerValue(BigNumber.ROUND_CEIL);\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,cAAc;;AAEpC;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,MAA4C,IAAc;EACpF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC3C,OACE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAAC,OAAOD,MAAM,CAAC;EACtD;EACC,CAACE,KAAK,CAACF,MAAgB,CAAC,IAAIG,MAAM,CAACC,SAAS,CAACJ,MAAM,CAAC,IAAIF,SAAS,CAACC,WAAW,CAACC,MAAM,CAAC,CAAC;AAE3F,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,IAAI,GAAIC,SAAoB,IACvCA,SAAS,CAACC,YAAY,CAACT,SAAS,CAACU,UAAU,CAAC","ignoreList":[]}
@@ -1,8 +1,10 @@
1
- import { BigNumber } from 'bignumber.js';
1
+ import BigNumber from 'bignumber.js';
2
2
  /**
3
3
  * Convert string, number, or BigNumber to byte array
4
4
  * @param val - value to convert
5
5
  * @param big - enables force conversion to BigNumber
6
6
  * @returns Buffer
7
+ * @category utils
8
+ * @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead
7
9
  */
8
10
  export declare function toBytes(val?: null | string | number | BigNumber, big?: boolean): Buffer;
package/es/utils/bytes.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Buffer as _Buffer } from "buffer";
2
- import { BigNumber } from 'bignumber.js';
2
+ import BigNumber from 'bignumber.js';
3
3
  import { NoSerializerFoundError, TypeError } from './errors.js';
4
4
 
5
5
  /**
@@ -7,6 +7,8 @@ import { NoSerializerFoundError, TypeError } from './errors.js';
7
7
  * @param val - value to convert
8
8
  * @param big - enables force conversion to BigNumber
9
9
  * @returns Buffer
10
+ * @category utils
11
+ * @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead
10
12
  */
11
13
  // eslint-disable-next-line import/prefer-default-export
12
14
  export function toBytes(val, big = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","names":["BigNumber","NoSerializerFoundError","TypeError","toBytes","val","big","_Buffer","from","Number","isInteger","isBigNumber","toFixed","hexString","toString","length"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js';\nimport { NoSerializerFoundError, TypeError } from './errors.js';\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val == null) return Buffer.from([]);\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);\n if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);\n let hexString = val.toString(16);\n if (hexString.length % 2 === 1) hexString = `0${hexString}`;\n return Buffer.from(hexString, 'hex');\n }\n if (typeof val === 'string') {\n return Buffer.from(val);\n }\n throw new NoSerializerFoundError();\n}\n"],"mappings":";AAAA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,sBAAsB,EAAEC,SAAS,QAAQ,aAAa;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACC,GAAwC,EAAEC,GAAG,GAAG,KAAK,EAAU;EACrF;EACA;EACA;;EAEA,IAAID,GAAG,IAAI,IAAI,EAAE,OAAOE,OAAA,CAAOC,IAAI,CAAC,EAAE,CAAC;EACvC,IAAIC,MAAM,CAACC,SAAS,CAACL,GAAG,CAAC,IAAIJ,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,IAAIC,GAAG,EAAE;IAC9D,IAAI,CAACL,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,EAAEA,GAAG,GAAG,IAAIJ,SAAS,CAACI,GAAG,CAAC;IACzD,IAAI,CAACA,GAAG,CAACK,SAAS,CAAC,CAAC,EAAE,MAAM,IAAIP,SAAS,CAAC,iCAAiCE,GAAG,CAACO,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAIC,SAAS,GAAGR,GAAG,CAACS,QAAQ,CAAC,EAAE,CAAC;IAChC,IAAID,SAAS,CAACE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAEF,SAAS,GAAG,IAAIA,SAAS,EAAE;IAC3D,OAAON,OAAA,CAAOC,IAAI,CAACK,SAAS,EAAE,KAAK,CAAC;EACtC;EACA,IAAI,OAAOR,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOE,OAAA,CAAOC,IAAI,CAACH,GAAG,CAAC;EACzB;EACA,MAAM,IAAIH,sBAAsB,CAAC,CAAC;AACpC","ignoreList":[]}
1
+ {"version":3,"file":"bytes.js","names":["BigNumber","NoSerializerFoundError","TypeError","toBytes","val","big","_Buffer","from","Number","isInteger","isBigNumber","toFixed","hexString","toString","length"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { NoSerializerFoundError, TypeError } from './errors.js';\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n * @category utils\n * @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val == null) return Buffer.from([]);\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);\n if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);\n let hexString = val.toString(16);\n if (hexString.length % 2 === 1) hexString = `0${hexString}`;\n return Buffer.from(hexString, 'hex');\n }\n if (typeof val === 'string') {\n return Buffer.from(val);\n }\n throw new NoSerializerFoundError();\n}\n"],"mappings":";AAAA,OAAOA,SAAS,MAAM,cAAc;AACpC,SAASC,sBAAsB,EAAEC,SAAS,QAAQ,aAAa;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACC,GAAwC,EAAEC,GAAG,GAAG,KAAK,EAAU;EACrF;EACA;EACA;;EAEA,IAAID,GAAG,IAAI,IAAI,EAAE,OAAOE,OAAA,CAAOC,IAAI,CAAC,EAAE,CAAC;EACvC,IAAIC,MAAM,CAACC,SAAS,CAACL,GAAG,CAAC,IAAIJ,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,IAAIC,GAAG,EAAE;IAC9D,IAAI,CAACL,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,EAAEA,GAAG,GAAG,IAAIJ,SAAS,CAACI,GAAG,CAAC;IACzD,IAAI,CAACA,GAAG,CAACK,SAAS,CAAC,CAAC,EAAE,MAAM,IAAIP,SAAS,CAAC,iCAAiCE,GAAG,CAACO,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAIC,SAAS,GAAGR,GAAG,CAACS,QAAQ,CAAC,EAAE,CAAC;IAChC,IAAID,SAAS,CAACE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAEF,SAAS,GAAG,IAAIA,SAAS,EAAE;IAC3D,OAAON,OAAA,CAAOC,IAAI,CAACK,SAAS,EAAE,KAAK,CAAC;EACtC;EACA,IAAI,OAAOR,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOE,OAAA,CAAOC,IAAI,CAACH,GAAG,CAAC;EACzB;EACA,MAAM,IAAIH,sBAAsB,CAAC,CAAC;AACpC","ignoreList":[]}
@@ -2,17 +2,45 @@ import { Encoded, Encoding } from './encoder.js';
2
2
  /**
3
3
  * Check if address is valid
4
4
  * @param maybeAddress - Address to check
5
+ * @category utils
6
+ * @deprecated Use {@link isEncoded} instead
5
7
  */
6
8
  export declare function isAddressValid(maybeAddress: string): maybeAddress is Encoded.AccountAddress;
7
9
  /**
8
10
  * Check if data is encoded in one of provided encodings
9
11
  * @param maybeEncoded - Data to check
10
12
  * @param encodings - Rest parameters with encodings to check against
13
+ * @deprecated Use {@link isEncoded} instead
11
14
  */
12
15
  export declare function isAddressValid<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): maybeEncoded is Encoded.Generic<E>;
16
+ /**
17
+ * Check if data is encoded in any encoding
18
+ * @param maybeEncoded - Data to check
19
+ * @category utils
20
+ */
21
+ export declare function ensureEncoded(maybeEncoded: string): asserts maybeEncoded is Encoded.Any;
22
+ /**
23
+ * Check if data is encoded in one of provided encodings
24
+ * @param maybeEncoded - Data to check
25
+ * @param encodings - Rest parameters with encodings to check against
26
+ */
27
+ export declare function ensureEncoded<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): asserts maybeEncoded is Encoded.Generic<E>;
28
+ /**
29
+ * Check if data is encoded in any encoding
30
+ * @param maybeEncoded - Data to check
31
+ * @category utils
32
+ */
33
+ export declare function isEncoded(maybeEncoded: string): maybeEncoded is Encoded.Any;
34
+ /**
35
+ * Check if data is encoded in one of provided encodings
36
+ * @param maybeEncoded - Data to check
37
+ * @param encodings - Rest parameters with encodings to check against
38
+ */
39
+ export declare function isEncoded<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): maybeEncoded is Encoded.Generic<E>;
13
40
  /**
14
41
  * Generate a random salt (positive integer)
15
42
  * @returns random salt
43
+ * @category utils
16
44
  */
17
45
  export declare function genSalt(): number;
18
46
  /**
@@ -20,37 +48,42 @@ export declare function genSalt(): number;
20
48
  * representation in a binary digit representation
21
49
  * @param value - Value to encode
22
50
  * @returns Encoded number
51
+ * @category utils
52
+ * @deprecated This function is out of the sdk scope. Copy implementation from sdk if necessary.
23
53
  */
24
54
  export declare function encodeUnsigned(value: number): Buffer;
25
55
  /**
26
56
  * Calculate 256bits Blake2b hash of `input`
27
57
  * @param input - Data to hash
28
58
  * @returns Hash
59
+ * @category utils
60
+ * @deprecated use "blakejs" package directly
29
61
  */
30
62
  export declare function hash(input: string | Uint8Array): Buffer;
31
63
  /**
32
- * Compute contract address
33
- * @category contract
34
- * @param owner - Address of contract owner
35
- * @param nonce - Round when contract was created
36
- * @returns Contract address
37
- */
38
- export declare function encodeContractAddress(owner: Encoded.AccountAddress, nonce: number): Encoded.ContractAddress;
39
- /**
40
- * Verify that signature was signed by public key
64
+ * Verify that data was signed by account
41
65
  * @param data - Data that was signed
42
66
  * @param signature - Signature of data
43
- * @param address - Address to verify against
44
- * @returns is data was signed by address
67
+ * @param address - Address of account to verify against
68
+ * @returns is data was signed by account
69
+ * @category utils
70
+ */
71
+ export declare function verifySignature(data: Uint8Array, signature: Uint8Array, address: Encoded.AccountAddress): boolean;
72
+ export declare function encodeVarUInt(value: number): Buffer;
73
+ export declare const messagePrefixLength: Buffer;
74
+ /**
75
+ * Hash message
76
+ * @param message - Message to hash
77
+ * @returns Hash of message
78
+ * @category utils
45
79
  */
46
- export declare function verify(data: Uint8Array, signature: Uint8Array, address: Encoded.AccountAddress): boolean;
47
- export declare const messagePrefixLength: Uint8Array;
48
- export declare function messageToHash(message: string): Buffer;
80
+ export declare function hashMessage(message: string): Buffer;
49
81
  /**
50
82
  * Verify that message was signed by address
51
83
  * @param message - Message that was signed
52
84
  * @param signature - Signature of message
53
85
  * @param address - Address to verify against
54
86
  * @returns is data was signed by address
87
+ * @category utils
55
88
  */
56
- export declare function verifyMessage(message: string, signature: Uint8Array, address: Encoded.AccountAddress): boolean;
89
+ export declare function verifyMessageSignature(message: string, signature: Uint8Array, address: Encoded.AccountAddress): boolean;