@aeternity/aepp-sdk 8.2.0 → 10.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +16 -9
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/account/base.js +33 -119
  10. package/es/account/base.js.map +1 -1
  11. package/es/account/memory.js +17 -19
  12. package/es/account/memory.js.map +1 -1
  13. package/es/account/multiple.js +75 -154
  14. package/es/account/multiple.js.map +1 -1
  15. package/es/ae/aens.js +164 -599
  16. package/es/ae/aens.js.map +1 -1
  17. package/es/ae/contract.js +108 -916
  18. package/es/ae/contract.js.map +1 -1
  19. package/es/ae/index.js +89 -250
  20. package/es/ae/index.js.map +1 -1
  21. package/es/ae/oracle.js +132 -500
  22. package/es/ae/oracle.js.map +1 -1
  23. package/es/chain/index.js +4 -23
  24. package/es/chain/index.js.map +1 -1
  25. package/es/chain/node.js +292 -1018
  26. package/es/chain/node.js.map +1 -1
  27. package/es/channel/handlers.js +597 -1086
  28. package/es/channel/handlers.js.map +1 -1
  29. package/es/channel/index.js +203 -451
  30. package/es/channel/index.js.map +1 -1
  31. package/es/channel/internal.js +129 -301
  32. package/es/channel/internal.js.map +1 -1
  33. package/es/contract/aci/index.js +319 -491
  34. package/es/contract/aci/index.js.map +1 -1
  35. package/es/contract/aci/transformation.js +35 -711
  36. package/es/contract/aci/transformation.js.map +1 -1
  37. package/es/contract/compiler.js +129 -203
  38. package/es/contract/compiler.js.map +1 -1
  39. package/es/contract/ga/helpers.js +17 -122
  40. package/es/contract/ga/helpers.js.map +1 -1
  41. package/es/contract/ga/index.js +102 -247
  42. package/es/contract/ga/index.js.map +1 -1
  43. package/es/contract/index.js +1 -1
  44. package/es/contract/index.js.map +1 -1
  45. package/es/index.js +2 -3
  46. package/es/index.js.map +1 -1
  47. package/es/node-pool/index.js +54 -73
  48. package/es/node-pool/index.js.map +1 -1
  49. package/es/node.js +56 -157
  50. package/es/node.js.map +1 -1
  51. package/es/other.d.ts +1 -1
  52. package/es/tx/builder/helpers.js +49 -89
  53. package/es/tx/builder/helpers.js.map +1 -1
  54. package/es/tx/builder/index.js +205 -303
  55. package/es/tx/builder/index.js.map +1 -1
  56. package/es/tx/builder/schema.js +585 -573
  57. package/es/tx/builder/schema.js.map +1 -1
  58. package/es/tx/index.js +1 -1
  59. package/es/tx/index.js.map +1 -1
  60. package/es/tx/tx-object.js +105 -135
  61. package/es/tx/tx-object.js.map +1 -1
  62. package/es/tx/tx.js +810 -1586
  63. package/es/tx/tx.js.map +1 -1
  64. package/es/tx/validator.js +191 -426
  65. package/es/tx/validator.js.map +1 -1
  66. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +17 -21
  67. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +38 -74
  69. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/content-script-bridge.js +14 -15
  71. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  72. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  73. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  74. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +179 -510
  75. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  76. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +70 -89
  77. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  78. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +354 -603
  79. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  80. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  81. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  82. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  83. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  84. package/es/utils/amount-formatter.js +41 -61
  85. package/es/utils/amount-formatter.js.map +1 -1
  86. package/es/utils/async-init.js +28 -64
  87. package/es/utils/async-init.js.map +1 -1
  88. package/es/utils/bignumber.js +3 -11
  89. package/es/utils/bignumber.js.map +1 -1
  90. package/es/utils/bytes.js +5 -9
  91. package/es/utils/bytes.js.map +1 -1
  92. package/es/utils/crypto.js +49 -75
  93. package/es/utils/crypto.js.map +1 -1
  94. package/es/utils/hd-wallet.js +45 -81
  95. package/es/utils/hd-wallet.js.map +1 -1
  96. package/es/utils/json-big.js +16 -49
  97. package/es/utils/json-big.js.map +1 -1
  98. package/es/utils/keystore.js +81 -246
  99. package/es/utils/keystore.js.map +1 -1
  100. package/es/utils/mptree.js +88 -134
  101. package/es/utils/mptree.js.map +1 -1
  102. package/es/utils/other.js +10 -60
  103. package/es/utils/other.js.map +1 -1
  104. package/es/utils/semver-satisfies.js +9 -28
  105. package/es/utils/semver-satisfies.js.map +1 -1
  106. package/es/utils/string.js +4 -13
  107. package/es/utils/string.js.map +1 -1
  108. package/es/utils/swagger.js +85 -218
  109. package/es/utils/swagger.js.map +1 -1
  110. package/package.json +52 -43
  111. package/src/account/base.js +8 -9
  112. package/src/account/multiple.js +20 -16
  113. package/src/ae/aens.js +25 -21
  114. package/src/ae/contract.js +65 -246
  115. package/src/ae/index.js +31 -7
  116. package/src/ae/oracle.js +21 -17
  117. package/src/chain/index.js +2 -12
  118. package/src/chain/node.js +26 -29
  119. package/src/channel/handlers.js +0 -1
  120. package/src/channel/index.js +4 -5
  121. package/src/contract/aci/index.js +221 -106
  122. package/src/contract/aci/transformation.js +30 -422
  123. package/src/contract/compiler.js +45 -4
  124. package/src/contract/ga/helpers.js +2 -12
  125. package/src/contract/ga/index.js +22 -26
  126. package/src/index.js +2 -4
  127. package/src/node-pool/index.js +21 -12
  128. package/src/node.js +22 -26
  129. package/src/tx/builder/helpers.js +12 -24
  130. package/src/tx/builder/index.js +18 -15
  131. package/src/tx/builder/schema.js +43 -108
  132. package/src/tx/tx-object.js +0 -2
  133. package/src/tx/tx.js +157 -144
  134. package/src/tx/validator.js +134 -202
  135. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +1 -3
  136. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +9 -10
  137. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  138. package/src/utils/amount-formatter.ts +1 -1
  139. package/src/utils/bignumber.ts +2 -1
  140. package/src/utils/crypto.js +4 -17
  141. package/src/utils/other.ts +1 -1
  142. package/src/utils/semver-satisfies.ts +1 -1
  143. package/src/utils/swagger.js +24 -7
  144. package/CHANGELOG.md +0 -1716
  145. package/src/contract/aci/helpers.js +0 -140
package/es/tx/tx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","TxObject","spendTx","senderId","recipientId","amount","payload","prepareTxParams","spend","fee","ttl","nonce","nativeMode","tx","params","type","encodedTx","api","postSpend","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","deposit","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","txType","getNodeInfo","consensusProtocolVersion","supportedProtocol","Error","protocolForTX","length","calculateTtl","relative","getCurrentKeyBlock","height","getAccountNonce","getAccountByPubkey","accountNonce","n","t","f","absoluteTtl","getAccount","e","account","call","showWarning","Transaction","compose","init","props","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport * as R from 'ramda'\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\n\nimport { buildTx, calculateFee } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId } from './builder/helpers'\nimport { TxObject } from './tx-object'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.spend, { senderId, ...R.head(arguments), payload })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), {\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n }),\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend(R.merge(R.head(arguments), {\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n }))\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.namePreClaim, { senderId: accountId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee }),\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim(R.merge(R.head(arguments), { nonce, ttl, fee: parseInt(fee) }))\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameClaim, { senderId: accountId, ...R.head(arguments), vsn })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee, vsn }),\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim(R.merge(R.head(arguments), { nonce, ttl, fee: parseInt(fee) }))\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameTransfer, { senderId: accountId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { recipientId, nonce, ttl, fee }),\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer(R.merge(R.head(arguments), { recipientId, nonce, ttl, fee: parseInt(fee) }))\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameUpdate, { senderId: accountId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee }),\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate(R.merge(R.head(arguments), { nonce, ttl, fee: parseInt(fee) }))\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameRevoke, { senderId: accountId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee }),\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke(R.merge(R.head(arguments), { nonce, ttl, fee: parseInt(fee) }))\n\n return tx\n}\n\nasync function contractCreateTx ({ ownerId, code, vmVersion, abiVersion, deposit, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, R.head(arguments))\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCreate, { senderId: ownerId, ...R.head(arguments), ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee, ctVersion, gasPrice }),\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate(R.merge(R.head(arguments), { nonce, ttl, fee: parseInt(fee), gas: parseInt(gas), gasPrice, vmVersion: ctVersion.vmVersion, abiVersion: ctVersion.abiVersion }))\n}\n\nasync function contractCallTx ({ callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, R.head(arguments))\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCall, { senderId: callerId, ...R.head(arguments), gasPrice, abiVersion: ctVersion.abiVersion })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice }),\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall(R.merge(R.head(arguments), {\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n }))\n\n return tx\n}\n\nasync function oracleRegisterTx ({ accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI }) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, R.head(arguments))\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleRegister, { senderId: accountId, ...R.head(arguments), abiVersion })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleExtend, { senderId: callerId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleQuery, { senderId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleResponse, { senderId: callerId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({ oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelCloseSolo, { senderId: fromId, ...R.head(arguments), payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }), TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n }))\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSlash, { senderId: fromId, ...R.head(arguments), payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }), TX_TYPE.channelSlash)\n : await this.api.postChannelSlash(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n }))\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSettle, { senderId: fromId, ...R.head(arguments) })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx(R.merge(R.head(arguments), {\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }), TX_TYPE.channelSettle)\n : await this.api.postChannelSettle(R.merge(R.head(arguments), {\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n }))\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...R.head(arguments), payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }), TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo(R.merge(R.head(arguments), {\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n }))\n\n return tx\n}\n\nasync function gaAttachTx ({ ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, R.head(arguments))\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.gaAttach, { senderId: ownerId, ...R.head(arguments), ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: R.merge(R.head(arguments), { nonce, ttl, fee, ctVersion, gasPrice }),\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new Error('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new Error('Not supported tx type')\n\n const ctVersion = {\n abiVersion: abiVersion || protocolForTX.abiVersion[0],\n vmVersion: vmVersion || protocolForTX.vmVersion[0]\n }\n if (protocolForTX.vmVersion.length && !R.contains(ctVersion.vmVersion, protocolForTX.vmVersion)) throw new Error(`VM VERSION ${ctVersion.vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n if (protocolForTX.abiVersion.length && !R.contains(ctVersion.abiVersion, protocolForTX.abiVersion)) throw new Error(`ABI VERSION ${ctVersion.abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n\n return ctVersion\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new Error('ttl must be greater than 0')\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId).catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (txType, { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn }) {\n const account = await this.getAccount(senderId).catch(e => ({ nonce: 0 }))\n // Is GA account\n if (account.contractId) {\n n = 0\n } else {\n n = n || (account.nonce + 1)\n }\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(f, txType, { showWarning: this.showWarning, gas, params: R.merge(R.last(arguments), { nonce: n, ttl }), vsn })\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.js"}
1
+ {"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","unpackTx","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","TxObject","spendTx","senderId","recipientId","amount","payload","fee","ttl","nonce","prepareTxParams","spend","arguments","tx","nativeMode","params","type","encodedTx","api","postSpend","parseInt","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","deposit","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","payingForTx","payerId","args","payingFor","txType","consensusProtocolVersion","getNodeInfo","supportedProtocol","Error","protocolForTX","includes","calculateTtl","relative","height","getCurrentKeyBlock","getAccountNonce","accountNonce","getAccountByPubkey","catch","n","t","f","absoluteTtl","strategy","getAccountNextNonce","e","nextNonce","call","showWarning","Transaction","compose","init","props","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId } from './builder/helpers'\nimport { TxObject } from './tx-object'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.spend, { senderId, ...arguments[0], payload })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n ...arguments[0],\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n },\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend({\n ...arguments[0],\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n })\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.namePreClaim, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameClaim, { senderId: accountId, ...arguments[0], vsn })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, vsn },\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameTransfer, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], recipientId, nonce, ttl, fee },\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer({ ...arguments[0], recipientId, nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameUpdate, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameRevoke, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function contractCreateTx ({ ownerId, code, vmVersion, abiVersion, deposit, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCreate, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate({ ...arguments[0], nonce, ttl, fee: parseInt(fee), gas: parseInt(gas), gasPrice, vmVersion: ctVersion.vmVersion, abiVersion: ctVersion.abiVersion })\n}\n\nasync function contractCallTx ({ callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCall, { senderId: callerId, ...arguments[0], gasPrice, abiVersion: ctVersion.abiVersion })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice },\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n })\n\n return tx\n}\n\nasync function oracleRegisterTx ({ accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI }) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleRegister, { senderId: accountId, ...arguments[0], abiVersion })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleExtend, { senderId: callerId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleQuery, { senderId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleResponse, { senderId: callerId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({ oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelCloseSolo, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSlash, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSlash)\n : await this.api.postChannelSlash({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSettle, { senderId: fromId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSettle)\n : await this.api.postChannelSettle({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function gaAttachTx ({ ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.gaAttach, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\nasync function payingForTx ({ tx, payerId, ...args }) {\n const params = { tx: unpackTx(tx), payerId }\n const { fee, nonce } = await this.prepareTxParams(TX_TYPE.payingFor, {\n ...params, ...args, senderId: payerId\n })\n return buildTx({ ...params, ...args, fee, nonce }, TX_TYPE.payingFor).tx\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new Error('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new Error('Not supported tx type')\n\n abiVersion = abiVersion || protocolForTX.abiVersion[0]\n vmVersion = vmVersion || protocolForTX.vmVersion[0]\n if (!protocolForTX.vmVersion.includes(vmVersion)) {\n throw new Error(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n }\n if (!protocolForTX.abiVersion.includes(abiVersion)) {\n throw new Error(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n }\n\n return { vmVersion, abiVersion }\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new Error('ttl must be greater than 0')\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId).catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (txType, { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn, strategy }) {\n n = n || (await this.api.getAccountNextNonce(senderId, { strategy }).catch(e => ({ nextNonce: 1 }))).nextNonce\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(f, txType, { showWarning: this.showWarning, gas, params: { ...arguments[1], nonce: n, ttl }, vsn })\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n payingForTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.js"}