@aeternity/aepp-sdk 8.2.1 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/CHANGELOG.md +216 -337
  2. package/README.md +16 -9
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/account/base.js +36 -120
  11. package/es/account/base.js.map +1 -1
  12. package/es/account/memory.js +17 -19
  13. package/es/account/memory.js.map +1 -1
  14. package/es/account/multiple.js +79 -156
  15. package/es/account/multiple.js.map +1 -1
  16. package/es/ae/aens.js +205 -626
  17. package/es/ae/aens.js.map +1 -1
  18. package/es/ae/contract.js +114 -918
  19. package/es/ae/contract.js.map +1 -1
  20. package/es/ae/index.js +90 -250
  21. package/es/ae/index.js.map +1 -1
  22. package/es/ae/oracle.js +136 -504
  23. package/es/ae/oracle.js.map +1 -1
  24. package/es/ae/universal.js.map +1 -1
  25. package/es/chain/index.js +12 -27
  26. package/es/chain/index.js.map +1 -1
  27. package/es/chain/node.js +289 -1020
  28. package/es/chain/node.js.map +1 -1
  29. package/es/channel/handlers.js +597 -1086
  30. package/es/channel/handlers.js.map +1 -1
  31. package/es/channel/index.js +238 -465
  32. package/es/channel/index.js.map +1 -1
  33. package/es/channel/internal.js +129 -301
  34. package/es/channel/internal.js.map +1 -1
  35. package/es/contract/aci/index.js +328 -495
  36. package/es/contract/aci/index.js.map +1 -1
  37. package/es/contract/aci/transformation.js +35 -711
  38. package/es/contract/aci/transformation.js.map +1 -1
  39. package/es/contract/compiler.js +131 -203
  40. package/es/contract/compiler.js.map +1 -1
  41. package/es/contract/ga/helpers.js +17 -122
  42. package/es/contract/ga/helpers.js.map +1 -1
  43. package/es/contract/ga/index.js +108 -249
  44. package/es/contract/ga/index.js.map +1 -1
  45. package/es/contract/index.js +7 -3
  46. package/es/contract/index.js.map +1 -1
  47. package/es/index.js +3 -3
  48. package/es/index.js.map +1 -1
  49. package/es/node-pool/index.js +57 -74
  50. package/es/node-pool/index.js.map +1 -1
  51. package/es/node.js +65 -161
  52. package/es/node.js.map +1 -1
  53. package/es/other.d.ts +1 -1
  54. package/es/tx/builder/helpers.js +62 -115
  55. package/es/tx/builder/helpers.js.map +1 -1
  56. package/es/tx/builder/index.js +218 -309
  57. package/es/tx/builder/index.js.map +1 -1
  58. package/es/tx/builder/schema.js +586 -573
  59. package/es/tx/builder/schema.js.map +1 -1
  60. package/es/tx/index.js +102 -13
  61. package/es/tx/index.js.map +1 -1
  62. package/es/tx/tx-object.js +114 -138
  63. package/es/tx/tx-object.js.map +1 -1
  64. package/es/tx/tx.js +810 -1586
  65. package/es/tx/tx.js.map +1 -1
  66. package/es/tx/validator.js +191 -426
  67. package/es/tx/validator.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +20 -23
  69. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +53 -80
  71. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  72. package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
  73. package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
  74. package/es/utils/aepp-wallet-communication/content-script-bridge.js +24 -19
  75. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  76. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  77. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  78. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +191 -514
  79. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  80. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +78 -93
  81. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  82. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +381 -613
  83. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  84. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  85. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  86. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  87. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  88. package/es/utils/amount-formatter.js +41 -61
  89. package/es/utils/amount-formatter.js.map +1 -1
  90. package/es/utils/async-init.js +28 -64
  91. package/es/utils/async-init.js.map +1 -1
  92. package/es/utils/bignumber.js +3 -11
  93. package/es/utils/bignumber.js.map +1 -1
  94. package/es/utils/bytes.js +5 -9
  95. package/es/utils/bytes.js.map +1 -1
  96. package/es/utils/crypto.js +41 -106
  97. package/es/utils/crypto.js.map +1 -1
  98. package/es/utils/hd-wallet.js +45 -81
  99. package/es/utils/hd-wallet.js.map +1 -1
  100. package/es/utils/json-big.js +16 -49
  101. package/es/utils/json-big.js.map +1 -1
  102. package/es/utils/keystore.js +81 -246
  103. package/es/utils/keystore.js.map +1 -1
  104. package/es/utils/mptree.js +88 -134
  105. package/es/utils/mptree.js.map +1 -1
  106. package/es/utils/other.js +10 -60
  107. package/es/utils/other.js.map +1 -1
  108. package/es/utils/semver-satisfies.js +9 -28
  109. package/es/utils/semver-satisfies.js.map +1 -1
  110. package/es/utils/string.js +4 -13
  111. package/es/utils/string.js.map +1 -1
  112. package/es/utils/swagger.js +87 -224
  113. package/es/utils/swagger.js.map +1 -1
  114. package/package.json +51 -44
  115. package/src/account/base.js +11 -10
  116. package/src/account/multiple.js +24 -18
  117. package/src/ae/aens.js +64 -61
  118. package/src/ae/contract.js +71 -248
  119. package/src/ae/index.js +34 -9
  120. package/src/ae/oracle.js +30 -22
  121. package/src/ae/universal.js +3 -1
  122. package/src/chain/index.js +10 -16
  123. package/src/chain/node.js +38 -38
  124. package/src/channel/handlers.js +10 -4
  125. package/src/channel/index.js +44 -20
  126. package/src/contract/aci/index.js +234 -112
  127. package/src/contract/aci/transformation.js +30 -422
  128. package/src/contract/compiler.js +50 -5
  129. package/src/contract/ga/helpers.js +6 -14
  130. package/src/contract/ga/index.js +28 -28
  131. package/src/contract/index.js +6 -2
  132. package/src/index.js +4 -4
  133. package/src/node-pool/index.js +24 -13
  134. package/src/node.js +29 -30
  135. package/src/tx/builder/helpers.js +31 -56
  136. package/src/tx/builder/index.js +67 -28
  137. package/src/tx/builder/schema.js +79 -121
  138. package/src/tx/index.js +101 -12
  139. package/src/tx/tx-object.js +25 -8
  140. package/src/tx/tx.js +229 -150
  141. package/src/tx/validator.js +134 -202
  142. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
  143. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
  144. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  145. package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
  146. package/src/utils/aepp-wallet-communication/helpers.js +4 -2
  147. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +33 -12
  148. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
  149. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +59 -29
  150. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  151. package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
  152. package/src/utils/amount-formatter.ts +1 -1
  153. package/src/utils/bignumber.ts +2 -1
  154. package/src/utils/crypto.js +4 -68
  155. package/src/utils/keystore.js +10 -2
  156. package/src/utils/other.ts +1 -1
  157. package/src/utils/semver-satisfies.ts +1 -1
  158. package/src/utils/swagger.js +22 -10
  159. package/src/contract/aci/helpers.js +0 -140
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ae/oracle.js"],"names":["Ae","decodeBase64Check","assertedType","pause","oracleQueryId","unpackTx","ORACLE_TTL","QUERY_FEE","QUERY_TTL","RESPONSE_TTL","getOracleObject","oracleId","api","getOracleByPubkey","oracle","getOracleQueriesByPubkey","queries","oracleQueries","pollQueries","pollForQueries","postQuery","postQueryToOracle","respondToQuery","extendOracle","extendOracleTtl","getQuery","getQueryObject","onQuery","interval","knownQueryIds","checkNewQueries","id","has","add","length","intervalId","clearInterval","queryId","getOracleQueryByPubkeyAndQueryId","q","decodedQuery","query","toString","decodedResponse","response","respond","pollForResponse","pollForQueryResponse","decode","data","attempts","i","responseBuffer","Error","registerOracle","queryFormat","responseFormat","options","opt","defaults","address","accountId","oracleRegisterTx","send","senderId","oraclePostQueryTx","tx","nonce","oracleTtl","callerId","oracleExtendTx","oracleRespondTx","Oracle","compose","methods","deepProps","queryFee","queryTtl","responseTtl"],"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 * Oracle module - routines to interact with the æternity oracle system\n *\n * The high-level description of the oracle system is\n * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/oracle\n * @export Oracle\n * @example import { Oracle } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport * as R from 'ramda'\nimport { decodeBase64Check, assertedType } from '../utils/crypto'\nimport { pause } from '../utils/other'\nimport { oracleQueryId } from '../tx/builder/helpers'\nimport { unpackTx } from '../tx/builder'\nimport { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from '../tx/builder/schema'\n\n/**\n * Constructor for Oracle Object (helper object for using Oracle)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @return {Promise<Object>} Oracle object\n */\nasync function getOracleObject (oracleId) {\n const oracle = await this.api.getOracleByPubkey(oracleId)\n const { oracleQueries: queries } = await this.api.getOracleQueriesByPubkey(oracleId)\n return {\n ...oracle,\n queries,\n pollQueries: this.pollForQueries.bind(this, oracleId),\n postQuery: this.postQueryToOracle.bind(this, oracleId),\n respondToQuery: this.respondToQuery.bind(this, oracleId),\n extendOracle: this.extendOracleTtl.bind(this, oracleId),\n getQuery: this.getQueryObject.bind(this, oracleId)\n }\n}\n\n/**\n * Poll for oracle queries\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @param {String} oracleId Oracle public key\n * @param {Function} onQuery OnQuery callback\n * @param {Object} [options] Options object\n * @param {Number} [options.interval] Poll interval(default: 5000)\n * @return {Function} stopPolling - Stop polling function\n */\nfunction pollForQueries (oracleId, onQuery, { interval = 5000 } = {}) {\n const knownQueryIds = new Set()\n const checkNewQueries = async () => {\n const queries = ((await this.api.getOracleQueriesByPubkey(oracleId)).oracleQueries || [])\n .filter(({ id }) => !knownQueryIds.has(id))\n queries.forEach(({ id }) => knownQueryIds.add(id))\n if (queries.length) onQuery(queries)\n }\n\n checkNewQueries()\n const intervalId = setInterval(checkNewQueries, interval)\n return () => clearInterval(intervalId)\n}\n\n/**\n * Constructor for OracleQuery Object (helper object for using OracleQuery)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @return {Promise<Object>} OracleQuery object\n */\nasync function getQueryObject (oracleId, queryId) {\n const q = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n return {\n ...q,\n decodedQuery: decodeBase64Check(q.query.slice(3)).toString(),\n decodedResponse: decodeBase64Check(q.response.slice(3)).toString(),\n respond: this.respondToQuery.bind(this, oracleId, queryId),\n pollForResponse: this.pollForQueryResponse.bind(this, oracleId, queryId),\n decode: (data) => decodeBase64Check(data.slice(3))\n }\n}\n\n/**\n * Poll for oracle query response\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @param {Object} [options] Options object\n * @param {Object} [options.attempts] Poll attempt's(default: 20)\n * @param {Object} [options.interval] Poll interval(default: 5000)\n * @return {Promise<Object>} OracleQuery object\n */\nexport async function pollForQueryResponse (oracleId, queryId, { attempts = 20, interval = 5000 } = {}) {\n for (let i = 0; i < attempts; i++) {\n if (i) await pause(interval)\n const { response } = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n const responseBuffer = decodeBase64Check(assertedType(response, 'or'))\n if (responseBuffer.length) {\n return { response, decode: () => responseBuffer } // TODO: Return just responseBuffer\n }\n }\n throw new Error(`Giving up after ${(attempts - 1) * interval}ms`)\n}\n\n/**\n * Register oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} queryFormat Format of query\n * @param {String} responseFormat Format of query response\n * @param {Object} [options={}] Options\n * @param {String|Number} [options.queryFee] queryFee Oracle query Fee\n * @param {Object} [options.oracleTtl] oracleTtl OracleTtl object {type: 'delta|block', value: 'number'}\n * @param {Number} [options.abiVersion] abiVersion Always 0 (do not use virtual machine)\n * @param {Number|String} [options.fee] fee Transaction fee\n * @param {Number|String} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function registerOracle (queryFormat, responseFormat, options = {}) {\n const opt = R.merge(this.Ae.defaults, options) // Preset VmVersion for oracle\n const accountId = await this.address(opt)\n\n const oracleRegisterTx = await this.oracleRegisterTx(R.merge(opt, {\n accountId,\n queryFormat,\n responseFormat\n }))\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getOracleObject(`ok_${accountId.slice(3)}`)\n }\n}\n\n/**\n * Post query to oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} query Oracle query object\n * @param {Object} [options={}]\n * @param {String|Number} [options.queryTtl] queryTtl Oracle query time to leave\n * @param {String|Number} [options.responseTtl] queryFee Oracle query response time to leave\n * @param {String|Number} [options.queryFee] queryFee Oracle query fee\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Query object\n */\nasync function postQueryToOracle (oracleId, query, options = {}) {\n const opt = R.merge(this.Ae.defaults, options)\n const senderId = await this.address(opt)\n\n const oracleRegisterTx = await this.oraclePostQueryTx(R.merge(opt, {\n oracleId,\n senderId,\n query\n }))\n const queryId = oracleQueryId(senderId, unpackTx(oracleRegisterTx).tx.nonce, oracleId)\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getQueryObject(oracleId, queryId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} oracleTtl Oracle time to leave for extend\n * @param {Object} [options={}]\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function extendOracleTtl (oracleId, oracleTtl, options = {}) {\n const opt = R.merge(this.Ae.defaults, options)\n const callerId = await this.address(opt)\n\n const oracleExtendTx = await this.oracleExtendTx(R.merge(opt, {\n oracleId,\n callerId,\n oracleTtl\n }))\n return {\n ...await this.send(oracleExtendTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle query id\n * @param {String} response Oracle query response\n * @param {Object} [options={}]\n * @param {Number} [options.responseTtl] responseTtl Query response time to leave\n * @param {Number} [options.fee] Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function respondToQuery (oracleId, queryId, response, options = {}) {\n const opt = R.merge(this.Ae.defaults, options)\n const callerId = await this.address(opt)\n\n const oracleRespondTx = await this.oracleRespondTx(R.merge(opt, {\n oracleId,\n queryId,\n callerId,\n response\n }))\n return {\n ...await this.send(oracleRespondTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Oracle Stamp\n *\n * Oracle provides oracle-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Oracle instance\n */\nconst Oracle = Ae.compose({\n methods: {\n registerOracle,\n respondToQuery,\n extendOracleTtl,\n postQueryToOracle,\n pollForQueryResponse,\n pollForQueries,\n getOracleObject,\n getQueryObject\n },\n deepProps: {\n Ae: {\n defaults: {\n queryFee: QUERY_FEE,\n oracleTtl: ORACLE_TTL,\n queryTtl: QUERY_TTL,\n responseTtl: RESPONSE_TTL\n }\n }\n }\n})\n\nexport default Oracle\n"],"file":"oracle.js"}
1
+ {"version":3,"sources":["../../src/ae/oracle.js"],"names":["Ae","decodeBase64Check","pause","oracleQueryId","decode","unpackTx","ORACLE_TTL","QUERY_FEE","QUERY_TTL","RESPONSE_TTL","getOracleObject","oracleId","oracle","api","getOracleByPubkey","oracleQueries","queries","getOracleQueriesByPubkey","pollQueries","pollForQueries","bind","postQuery","postQueryToOracle","respondToQuery","extendOracle","extendOracleTtl","getQuery","getQueryObject","onQuery","interval","knownQueryIds","Set","checkNewQueries","filter","id","has","forEach","add","length","intervalId","setInterval","clearInterval","queryId","q","getOracleQueryByPubkeyAndQueryId","decodedQuery","query","slice","toString","decodedResponse","response","respond","pollForResponse","pollForQueryResponse","data","attempts","i","responseBuffer","String","Error","registerOracle","queryFormat","responseFormat","options","opt","defaults","accountId","address","oracleRegisterTx","send","queryFee","senderId","oraclePostQueryTx","tx","nonce","oracleTtl","callerId","oracleExtendTx","oracleRespondTx","Oracle","compose","methods","deepProps","queryTtl","responseTtl"],"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 * Oracle module - routines to interact with the æternity oracle system\n *\n * The high-level description of the oracle system is\n * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/oracle\n * @export Oracle\n * @example import { Oracle } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport { decodeBase64Check } from '../utils/crypto'\nimport { pause } from '../utils/other'\nimport { oracleQueryId, decode } from '../tx/builder/helpers'\nimport { unpackTx } from '../tx/builder'\nimport { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from '../tx/builder/schema'\n\n/**\n * Constructor for Oracle Object (helper object for using Oracle)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @return {Promise<Object>} Oracle object\n */\nasync function getOracleObject (oracleId) {\n const oracle = await this.api.getOracleByPubkey(oracleId)\n const { oracleQueries: queries } = await this.api.getOracleQueriesByPubkey(oracleId)\n return {\n ...oracle,\n queries,\n pollQueries: this.pollForQueries.bind(this, oracleId),\n postQuery: this.postQueryToOracle.bind(this, oracleId),\n respondToQuery: this.respondToQuery.bind(this, oracleId),\n extendOracle: this.extendOracleTtl.bind(this, oracleId),\n getQuery: this.getQueryObject.bind(this, oracleId)\n }\n}\n\n/**\n * Poll for oracle queries\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @param {String} oracleId Oracle public key\n * @param {Function} onQuery OnQuery callback\n * @param {Object} [options] Options object\n * @param {Number} [options.interval] Poll interval(default: 5000)\n * @return {Function} stopPolling - Stop polling function\n */\nfunction pollForQueries (oracleId, onQuery, { interval = 5000 } = {}) {\n const knownQueryIds = new Set()\n const checkNewQueries = async () => {\n const queries = ((await this.api.getOracleQueriesByPubkey(oracleId)).oracleQueries || [])\n .filter(({ id }) => !knownQueryIds.has(id))\n queries.forEach(({ id }) => knownQueryIds.add(id))\n if (queries.length) onQuery(queries)\n }\n\n checkNewQueries()\n const intervalId = setInterval(checkNewQueries, interval)\n return () => clearInterval(intervalId)\n}\n\n/**\n * Constructor for OracleQuery Object (helper object for using OracleQuery)\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @return {Promise<Object>} OracleQuery object\n */\nasync function getQueryObject (oracleId, queryId) {\n const q = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n return {\n ...q,\n decodedQuery: decodeBase64Check(q.query.slice(3)).toString(),\n decodedResponse: decodeBase64Check(q.response.slice(3)).toString(),\n respond: this.respondToQuery.bind(this, oracleId, queryId),\n pollForResponse: this.pollForQueryResponse.bind(this, oracleId, queryId),\n decode: (data) => decodeBase64Check(data.slice(3))\n }\n}\n\n/**\n * Poll for oracle query response\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle Query id\n * @param {Object} [options] Options object\n * @param {Object} [options.attempts] Poll attempt's(default: 20)\n * @param {Object} [options.interval] Poll interval(default: 5000)\n * @return {Promise<Object>} OracleQuery object\n */\nexport async function pollForQueryResponse (\n oracleId,\n queryId,\n { attempts = 20, interval = 5000 } = {}\n) {\n for (let i = 0; i < attempts; i++) {\n if (i) await pause(interval)\n const { response } = await this.api.getOracleQueryByPubkeyAndQueryId(oracleId, queryId)\n const responseBuffer = decode(response, 'or')\n if (responseBuffer.length) {\n return String(responseBuffer)\n }\n }\n throw new Error(`Giving up after ${(attempts - 1) * interval}ms`)\n}\n\n/**\n * Register oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} queryFormat Format of query\n * @param {String} responseFormat Format of query response\n * @param {Object} [options={}] Options\n * @param {String|Number} [options.queryFee] Oracle query Fee\n * @param {Object} [options.oracleTtl] OracleTtl object {type: 'delta|block', value: 'number'}\n * @param {Number} [options.abiVersion] Always 0 (do not use virtual machine)\n * @param {Number|String} [options.fee] Transaction fee\n * @param {Number|String} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function registerOracle (queryFormat, responseFormat, options = {}) {\n const opt = { ...this.Ae.defaults, ...options } // Preset VmVersion for oracle\n const accountId = await this.address(opt)\n\n const oracleRegisterTx = await this.oracleRegisterTx({\n ...opt,\n accountId,\n queryFormat,\n responseFormat\n })\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getOracleObject(`ok_${accountId.slice(3)}`)\n }\n}\n\n/**\n * Post query to oracle\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} query Oracle query object\n * @param {Object} [options={}]\n * @param {String|Number} [options.queryTtl] queryTtl Oracle query time to leave\n * @param {String|Number} [options.responseTtl] queryFee Oracle query response time to leave\n * @param {String|Number} [options.queryFee] queryFee Oracle query fee\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Query object\n */\nasync function postQueryToOracle (oracleId, query, options = {}) {\n const queryFee = options.queryFee || (await this.api.getOracleByPubkey(oracleId)).queryFee\n const opt = { ...this.Ae.defaults, queryFee, ...options }\n const senderId = await this.address(opt)\n\n const oracleRegisterTx = await this.oraclePostQueryTx({\n ...opt,\n oracleId,\n senderId,\n query\n })\n const queryId = oracleQueryId(senderId, unpackTx(oracleRegisterTx).tx.nonce, oracleId)\n return {\n ...await this.send(oracleRegisterTx, opt),\n ...await this.getQueryObject(oracleId, queryId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} oracleTtl Oracle time to leave for extend\n * @param {Object} [options={}]\n * @param {Number} [options.fee] fee Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function extendOracleTtl (oracleId, oracleTtl, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const callerId = await this.address(opt)\n\n const oracleExtendTx = await this.oracleExtendTx({\n ...opt,\n oracleId,\n callerId,\n oracleTtl\n })\n return {\n ...await this.send(oracleExtendTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Extend oracle ttl\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @instance\n * @function\n * @category async\n * @param {String} oracleId Oracle public key\n * @param {String} queryId Oracle query id\n * @param {String} response Oracle query response\n * @param {Object} [options={}]\n * @param {Number} [options.responseTtl] responseTtl Query response time to leave\n * @param {Number} [options.fee] Transaction fee\n * @param {Number} [options.ttl] Transaction time to leave\n * @return {Promise<Object>} Oracle object\n */\nasync function respondToQuery (oracleId, queryId, response, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const callerId = await this.address(opt)\n\n const oracleRespondTx = await this.oracleRespondTx({\n ...opt,\n oracleId,\n queryId,\n callerId,\n response\n })\n return {\n ...await this.send(oracleRespondTx, opt),\n ...await this.getOracleObject(oracleId)\n }\n}\n\n/**\n * Oracle Stamp\n *\n * Oracle provides oracle-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/oracle\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Oracle instance\n */\nconst Oracle = Ae.compose({\n methods: {\n registerOracle,\n respondToQuery,\n extendOracleTtl,\n postQueryToOracle,\n pollForQueryResponse,\n pollForQueries,\n getOracleObject,\n getQueryObject\n },\n deepProps: {\n Ae: {\n defaults: {\n queryFee: QUERY_FEE,\n oracleTtl: ORACLE_TTL,\n queryTtl: QUERY_TTL,\n responseTtl: RESPONSE_TTL\n }\n }\n }\n})\n\nexport default Oracle\n"],"file":"oracle.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ae/universal.js"],"names":["Ae","Chain","Aens","Transaction","Oracle","GeneralizeAccount","AccountMultiple","Contract","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,EAAP,MAAe,IAAf;AACA,OAAOC,KAAP,MAAkB,eAAlB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,iBAAP,MAA8B,gBAA9B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,QAAP,MAAqB,YAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,EAAE,CAACQ,OAAH,CAAWF,eAAX,EAA4BL,KAA5B,EAAmCE,WAAnC,EAAgDD,IAAhD,EAAsDK,QAAtD,EAAgEH,MAAhE,EAAwEC,iBAAxE,CAAf","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 * Universal module\n * @module @aeternity/aepp-sdk/es/ae/universal\n * @export Universal\n * @example import { Universal } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Chain from '../chain/node'\nimport Aens from './aens'\nimport Transaction from '../tx/tx'\nimport Oracle from './oracle'\nimport GeneralizeAccount from '../contract/ga'\nimport AccountMultiple from '../account/multiple'\nimport Contract from './contract'\n\n/**\n * Universal Stamp\n *\n * Universal provides Ae base functionality with Contract and Aens\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/universal\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Universal instance\n */\nexport default Ae.compose(AccountMultiple, Chain, Transaction, Aens, Contract, Oracle, GeneralizeAccount)\n"],"file":"universal.js"}
1
+ {"version":3,"sources":["../../src/ae/universal.js"],"names":["Ae","Chain","Aens","Transaction","Oracle","GeneralizeAccount","AccountMultiple","Contract","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,EAAP,MAAe,IAAf;AACA,OAAOC,KAAP,MAAkB,eAAlB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,iBAAP,MAA8B,gBAA9B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,QAAP,MAAqB,YAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,EAAE,CAACQ,OAAH,CACbF,eADa,EACIL,KADJ,EACWE,WADX,EACwBD,IADxB,EAC8BK,QAD9B,EACwCH,MADxC,EACgDC,iBADhD,CAAf","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 * Universal module\n * @module @aeternity/aepp-sdk/es/ae/universal\n * @export Universal\n * @example import { Universal } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Chain from '../chain/node'\nimport Aens from './aens'\nimport Transaction from '../tx/tx'\nimport Oracle from './oracle'\nimport GeneralizeAccount from '../contract/ga'\nimport AccountMultiple from '../account/multiple'\nimport Contract from './contract'\n\n/**\n * Universal Stamp\n *\n * Universal provides Ae base functionality with Contract and Aens\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/universal\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Universal instance\n */\nexport default Ae.compose(\n AccountMultiple, Chain, Transaction, Aens, Contract, Oracle, GeneralizeAccount\n)\n"],"file":"universal.js"}
package/es/chain/index.js CHANGED
@@ -35,24 +35,14 @@ import { required } from '@stamp/required';
35
35
  * @return {Object} Chain instance
36
36
  */
37
37
 
38
- var Chain = stampit({
38
+ const Chain = stampit({
39
39
  deepProps: {
40
40
  Ae: {
41
41
  defaults: {
42
- waitMined: true
42
+ waitMined: true,
43
+ verify: true
43
44
  }
44
45
  }
45
- },
46
- statics: {
47
- waitMined: function waitMined(bool) {
48
- return this.deepProps({
49
- Ae: {
50
- defaults: {
51
- waitMined: bool
52
- }
53
- }
54
- });
55
- }
56
46
  }
57
47
  }, required({
58
48
  methods: {
@@ -70,15 +60,6 @@ var Chain = stampit({
70
60
  getAccount: required
71
61
  }
72
62
  }));
73
- /**
74
- * Reconfigure Stamp to (not) wait until transactions are mined
75
- * @function waitMined
76
- * @static
77
- * @rtype (bool: Boolean) => Stamp
78
- * @param {boolean} bool - Whether to wait for transactions
79
- * @return {Stamp} Reconfigured Chain Stamp
80
- */
81
-
82
63
  /**
83
64
  * Submit a signed transaction for mining
84
65
  * @function sendTransaction
@@ -88,7 +69,7 @@ var Chain = stampit({
88
69
  * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]
89
70
  * @param {String} tx - Transaction to submit
90
71
  * @param {String} [options={}] - Options to pass to the implementation
91
- * @param {String} [options.verify = false] - Verify transaction before broadcast.
72
+ * @param {String} [options.verify=true] - Verify transaction before broadcast.
92
73
  * @return {Object} Transaction
93
74
  */
94
75
 
@@ -137,8 +118,10 @@ var Chain = stampit({
137
118
  * @rtype (address: String, options?: Object) => balance: Number
138
119
  * @param {String} address - The public account address to obtain the balance for
139
120
  * @param {Object} [options={}] - Options
140
- * @param {Number} options.height - The chain height at which to obtain the balance for (default: top of chain)
141
- * @param {String} options.hash - The block hash on which to obtain the balance for (default: top of chain)
121
+ * @param {Number} options.height - The chain height at which to obtain the balance for (default:
122
+ * top of chain)
123
+ * @param {String} options.hash - The block hash on which to obtain the balance for (default: top
124
+ * of chain)
142
125
  * @return {Object} The transaction as it was mined
143
126
  */
144
127
 
@@ -150,7 +133,8 @@ var Chain = stampit({
150
133
  * @category async
151
134
  * @rtype (hash: String, info = false) => tx: Object
152
135
  * @param {String} hash - Transaction hash
153
- * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and ContractCall transaction's)
136
+ * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and
137
+ * ContractCall transaction's)
154
138
  * @return {Object} Transaction
155
139
  */
156
140
 
@@ -263,7 +247,8 @@ var Chain = stampit({
263
247
  * @param {String} tx - transaction to execute
264
248
  * @param {String} accountAddress - address that will be used to execute transaction
265
249
  * @param {String|Number} [options.top] - hash of block on which to make dry-run
266
- * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result from the call
250
+ * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result
251
+ * from the call
267
252
  * @return {Object} Result
268
253
  */
269
254
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chain/index.js"],"names":["stampit","required","Chain","deepProps","Ae","defaults","waitMined","statics","bool","methods","sendTransaction","height","awaitHeight","topBlock","poll","balance","getBalance","tx","getTxInfo","mempool","txDryRun","getAccount"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,KAAK,GAAGF,OAAO,CAAC;AACpBG,EAAAA,SAAS,EAAE;AAAEC,IAAAA,EAAE,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,SAAS,EAAE;AAAb;AAAZ;AAAN,GADS;AAEpBC,EAAAA,OAAO,EAAE;AAAED,IAAAA,SAAF,qBAAaE,IAAb,EAAmB;AAAE,aAAO,KAAKL,SAAL,CAAe;AAAEC,QAAAA,EAAE,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAEC,YAAAA,SAAS,EAAEE;AAAb;AAAZ;AAAN,OAAf,CAAP;AAAkE;AAAvF;AAFW,CAAD,EAGlBP,QAAQ,CAAC;AACVQ,EAAAA,OAAO,EAAE;AACPC,IAAAA,eAAe,EAAET,QADV;AAEPU,IAAAA,MAAM,EAAEV,QAFD;AAGPW,IAAAA,WAAW,EAAEX,QAHN;AAIPY,IAAAA,QAAQ,EAAEZ,QAJH;AAKPa,IAAAA,IAAI,EAAEb,QALC;AAMPc,IAAAA,OAAO,EAAEd,QANF;AAOPe,IAAAA,UAAU,EAAEf,QAPL;AAQPgB,IAAAA,EAAE,EAAEhB,QARG;AASPiB,IAAAA,SAAS,EAAEjB,QATJ;AAUPkB,IAAAA,OAAO,EAAElB,QAVF;AAWPmB,IAAAA,QAAQ,EAAEnB,QAXH;AAYPoB,IAAAA,UAAU,EAAEpB;AAZL;AADC,CAAD,CAHU,CAArB;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAeC,KAAf","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 * Chain module\n * @module @aeternity/aepp-sdk/es/chain\n * @export Chain\n * @example import { Chain } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Chain Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/chain\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Chain instance\n */\nconst Chain = stampit({\n deepProps: { Ae: { defaults: { waitMined: true } } },\n statics: { waitMined (bool) { return this.deepProps({ Ae: { defaults: { waitMined: bool } } }) } }\n}, required({\n methods: {\n sendTransaction: required,\n height: required,\n awaitHeight: required,\n topBlock: required,\n poll: required,\n balance: required,\n getBalance: required,\n tx: required,\n getTxInfo: required,\n mempool: required,\n txDryRun: required,\n getAccount: required\n }\n}))\n\n/**\n * Reconfigure Stamp to (not) wait until transactions are mined\n * @function waitMined\n * @static\n * @rtype (bool: Boolean) => Stamp\n * @param {boolean} bool - Whether to wait for transactions\n * @return {Stamp} Reconfigured Chain Stamp\n */\n\n/**\n * Submit a signed transaction for mining\n * @function sendTransaction\n * @instance\n * @abstract\n * @category async\n * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]\n * @param {String} tx - Transaction to submit\n * @param {String} [options={}] - Options to pass to the implementation\n * @param {String} [options.verify = false] - Verify transaction before broadcast.\n * @return {Object} Transaction\n */\n\n/**\n * Obtain current height of the chain\n * @function height\n * @instance\n * @abstract\n * @category async\n * @rtype () => height: Number\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for the chain to reach a specific height\n * @function awaitHeight\n * @instance\n * @abstract\n * @category async\n * @rtype (height: Number, options?: Object) => height: Number\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.attempts - Number of polling attempts after which to fail\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for a transaction to be mined\n * @function poll\n * @instance\n * @abstract\n * @category async\n * @rtype (th: String, options?: Object) => tx: Object\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.blocks - Number of blocks mined after which to fail\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Request the balance of specified account\n * @function balance\n * @instance\n * @abstract\n * @category async\n * @rtype (address: String, options?: Object) => balance: Number\n * @param {String} address - The public account address to obtain the balance for\n * @param {Object} [options={}] - Options\n * @param {Number} options.height - The chain height at which to obtain the balance for (default: top of chain)\n * @param {String} options.hash - The block hash on which to obtain the balance for (default: top of chain)\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Obtain a transaction based on its hash\n * @function tx\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String, info = false) => tx: Object\n * @param {String} hash - Transaction hash\n * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and ContractCall transaction's)\n * @return {Object} Transaction\n */\n\n/**\n * Obtain a transaction info based on its hash\n * @function getTxInfo\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String) => tx: Object\n * @param {String} hash - Transaction hash\n * @return {Object} Transaction\n */\n\n/**\n * Obtain transaction's from mempool\n * @function mempool\n * @instance\n * @abstract\n * @category async\n * @rtype () => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Obtain current generation\n * @function getCurrentGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype () => generation: Object\n * @return {Object} Current Generation\n */\n\n/**\n * Get generation by hash or height\n * @function getGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => generation: Object\n * @param {String|Number} hashOrHeight - Generation hash or height\n * @return {Object} Generation\n */\n\n/**\n * Wait for transaction confirmation\n * @function waitForTxConfirm\n * @instance\n * @abstract\n * @category async\n * @rtype (txHash: String, { confirm: Number | Boolean } = { confirm: 3 }) => Promise<Number>\n * @param {String} txHash - Transaction hash\n * @param {Object} [options] - options\n * @param {Number} [options.confirm=3] - Number of blocks to wait for transaction confirmation\n * @return {Promise<Number>} Current Height\n */\n\n/**\n * Get micro block transactions\n * @function getMicroBlockTransactions\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Get key block\n * @function getKeyBlock\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => keyBlock: Object\n * @return {Object} Key Block\n */\n\n/**\n * Get micro block header\n * @function getMicroBlockHeader\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => header: Object\n * @return {Object} Micro block header\n */\n\n/**\n * Get account by account public key\n * @function getAccount\n * @instance\n * @abstract\n * @category async\n * @rtype (address, { hash, height }) => account: Object\n * @param {String} address - Account public key\n * @param {Object} [options={}] - Options\n * @param {Number} [options.height] - Get account on specific block by block height\n * @param {String} [options.hash] - Get account on specific block by block hash\n * @return {Object} Account\n */\n\n/**\n * Transaction dry-run\n * @function txDryRun\n * @instance\n * @abstract\n * @category async\n * @rtype (tx, accountAddress, options) => result: Object\n * @param {String} tx - transaction to execute\n * @param {String} accountAddress - address that will be used to execute transaction\n * @param {String|Number} [options.top] - hash of block on which to make dry-run\n * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result from the call\n * @return {Object} Result\n */\n\nexport default Chain\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/chain/index.js"],"names":["stampit","required","Chain","deepProps","Ae","defaults","waitMined","verify","methods","sendTransaction","height","awaitHeight","topBlock","poll","balance","getBalance","tx","getTxInfo","mempool","txDryRun","getAccount"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,KAAK,GAAGF,OAAO,CAAC;AACpBG,EAAAA,SAAS,EAAE;AAAEC,IAAAA,EAAE,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,SAAS,EAAE,IAAb;AAAmBC,QAAAA,MAAM,EAAE;AAA3B;AAAZ;AAAN;AADS,CAAD,EAElBN,QAAQ,CAAC;AACVO,EAAAA,OAAO,EAAE;AACPC,IAAAA,eAAe,EAAER,QADV;AAEPS,IAAAA,MAAM,EAAET,QAFD;AAGPU,IAAAA,WAAW,EAAEV,QAHN;AAIPW,IAAAA,QAAQ,EAAEX,QAJH;AAKPY,IAAAA,IAAI,EAAEZ,QALC;AAMPa,IAAAA,OAAO,EAAEb,QANF;AAOPc,IAAAA,UAAU,EAAEd,QAPL;AAQPe,IAAAA,EAAE,EAAEf,QARG;AASPgB,IAAAA,SAAS,EAAEhB,QATJ;AAUPiB,IAAAA,OAAO,EAAEjB,QAVF;AAWPkB,IAAAA,QAAQ,EAAElB,QAXH;AAYPmB,IAAAA,UAAU,EAAEnB;AAZL;AADC,CAAD,CAFU,CAArB;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAeC,KAAf","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 * Chain module\n * @module @aeternity/aepp-sdk/es/chain\n * @export Chain\n * @example import { Chain } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Chain Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/chain\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Chain instance\n */\nconst Chain = stampit({\n deepProps: { Ae: { defaults: { waitMined: true, verify: true } } }\n}, required({\n methods: {\n sendTransaction: required,\n height: required,\n awaitHeight: required,\n topBlock: required,\n poll: required,\n balance: required,\n getBalance: required,\n tx: required,\n getTxInfo: required,\n mempool: required,\n txDryRun: required,\n getAccount: required\n }\n}))\n\n/**\n * Submit a signed transaction for mining\n * @function sendTransaction\n * @instance\n * @abstract\n * @category async\n * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]\n * @param {String} tx - Transaction to submit\n * @param {String} [options={}] - Options to pass to the implementation\n * @param {String} [options.verify=true] - Verify transaction before broadcast.\n * @return {Object} Transaction\n */\n\n/**\n * Obtain current height of the chain\n * @function height\n * @instance\n * @abstract\n * @category async\n * @rtype () => height: Number\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for the chain to reach a specific height\n * @function awaitHeight\n * @instance\n * @abstract\n * @category async\n * @rtype (height: Number, options?: Object) => height: Number\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.attempts - Number of polling attempts after which to fail\n * @return {Number} Current chain height\n */\n\n/**\n * Wait for a transaction to be mined\n * @function poll\n * @instance\n * @abstract\n * @category async\n * @rtype (th: String, options?: Object) => tx: Object\n * @param {Object} [options={}] - Options\n * @param {Number} options.interval - Interval (in ms) at which to poll the chain\n * @param {Number} options.blocks - Number of blocks mined after which to fail\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Request the balance of specified account\n * @function balance\n * @instance\n * @abstract\n * @category async\n * @rtype (address: String, options?: Object) => balance: Number\n * @param {String} address - The public account address to obtain the balance for\n * @param {Object} [options={}] - Options\n * @param {Number} options.height - The chain height at which to obtain the balance for (default:\n * top of chain)\n * @param {String} options.hash - The block hash on which to obtain the balance for (default: top\n * of chain)\n * @return {Object} The transaction as it was mined\n */\n\n/**\n * Obtain a transaction based on its hash\n * @function tx\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String, info = false) => tx: Object\n * @param {String} hash - Transaction hash\n * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and\n * ContractCall transaction's)\n * @return {Object} Transaction\n */\n\n/**\n * Obtain a transaction info based on its hash\n * @function getTxInfo\n * @instance\n * @abstract\n * @category async\n * @rtype (hash: String) => tx: Object\n * @param {String} hash - Transaction hash\n * @return {Object} Transaction\n */\n\n/**\n * Obtain transaction's from mempool\n * @function mempool\n * @instance\n * @abstract\n * @category async\n * @rtype () => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Obtain current generation\n * @function getCurrentGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype () => generation: Object\n * @return {Object} Current Generation\n */\n\n/**\n * Get generation by hash or height\n * @function getGeneration\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => generation: Object\n * @param {String|Number} hashOrHeight - Generation hash or height\n * @return {Object} Generation\n */\n\n/**\n * Wait for transaction confirmation\n * @function waitForTxConfirm\n * @instance\n * @abstract\n * @category async\n * @rtype (txHash: String, { confirm: Number | Boolean } = { confirm: 3 }) => Promise<Number>\n * @param {String} txHash - Transaction hash\n * @param {Object} [options] - options\n * @param {Number} [options.confirm=3] - Number of blocks to wait for transaction confirmation\n * @return {Promise<Number>} Current Height\n */\n\n/**\n * Get micro block transactions\n * @function getMicroBlockTransactions\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => txs: [...Object]\n * @return {Object[]} Transactions\n */\n\n/**\n * Get key block\n * @function getKeyBlock\n * @instance\n * @abstract\n * @category async\n * @rtype (hashOrHeight) => keyBlock: Object\n * @return {Object} Key Block\n */\n\n/**\n * Get micro block header\n * @function getMicroBlockHeader\n * @instance\n * @abstract\n * @category async\n * @rtype (hash) => header: Object\n * @return {Object} Micro block header\n */\n\n/**\n * Get account by account public key\n * @function getAccount\n * @instance\n * @abstract\n * @category async\n * @rtype (address, { hash, height }) => account: Object\n * @param {String} address - Account public key\n * @param {Object} [options={}] - Options\n * @param {Number} [options.height] - Get account on specific block by block height\n * @param {String} [options.hash] - Get account on specific block by block hash\n * @return {Object} Account\n */\n\n/**\n * Transaction dry-run\n * @function txDryRun\n * @instance\n * @abstract\n * @category async\n * @rtype (tx, accountAddress, options) => result: Object\n * @param {String} tx - transaction to execute\n * @param {String} accountAddress - address that will be used to execute transaction\n * @param {String|Number} [options.top] - hash of block on which to make dry-run\n * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result\n * from the call\n * @return {Object} Result\n */\n\nexport default Chain\n"],"file":"index.js"}