@aeternity/aepp-sdk 10.0.0-beta.1 → 11.0.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 (250) hide show
  1. package/README.md +15 -14
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
  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 → base.mjs} +23 -11
  10. package/es/account/base.mjs.map +1 -0
  11. package/es/account/{memory.js → memory.mjs} +29 -14
  12. package/es/account/memory.mjs.map +1 -0
  13. package/es/account/{multiple.js → multiple.mjs} +14 -11
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/{aens.js → aens.mjs} +69 -59
  16. package/es/ae/aens.mjs.map +1 -0
  17. package/es/ae/{aepp.js → aepp.mjs} +9 -9
  18. package/es/ae/aepp.mjs.map +1 -0
  19. package/es/ae/contract.mjs +159 -0
  20. package/es/ae/contract.mjs.map +1 -0
  21. package/es/ae/{index.js → index.mjs} +12 -10
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/{oracle.js → oracle.mjs} +37 -20
  24. package/es/ae/oracle.mjs.map +1 -0
  25. package/es/ae/{universal.js → universal.mjs} +10 -10
  26. package/es/ae/universal.mjs.map +1 -0
  27. package/es/ae/{wallet.js → wallet.mjs} +10 -10
  28. package/es/ae/wallet.mjs.map +1 -0
  29. package/es/aepp-wallet-communication/schema.d.ts +74 -0
  30. package/es/bignumber.d.ts +1 -7
  31. package/es/chain/{index.js → index.mjs} +28 -8
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/{node.js → node.mjs} +133 -90
  34. package/es/chain/node.mjs.map +1 -0
  35. package/es/channel/{handlers.js → handlers.mjs} +18 -20
  36. package/es/channel/handlers.mjs.map +1 -0
  37. package/es/channel/{index.js → index.mjs} +43 -22
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/{internal.js → internal.mjs} +51 -35
  40. package/es/channel/internal.mjs.map +1 -0
  41. package/es/contract/aci.mjs +477 -0
  42. package/es/contract/aci.mjs.map +1 -0
  43. package/es/contract/compiler.mjs +115 -0
  44. package/es/contract/compiler.mjs.map +1 -0
  45. package/es/contract/ga/helpers.mjs +30 -0
  46. package/es/contract/ga/helpers.mjs.map +1 -0
  47. package/es/contract/ga/{index.js → index.mjs} +40 -28
  48. package/es/contract/ga/index.mjs.map +1 -0
  49. package/es/encoder.d.ts +26 -0
  50. package/es/errors.d.ts +284 -0
  51. package/es/index.mjs +57 -0
  52. package/es/index.mjs.map +1 -0
  53. package/es/node-pool/{index.js → index.mjs} +15 -12
  54. package/es/node-pool/index.mjs.map +1 -0
  55. package/es/{node.js → node.mjs} +17 -11
  56. package/es/node.mjs.map +1 -0
  57. package/es/tx/builder/constants.mjs +108 -0
  58. package/es/tx/builder/constants.mjs.map +1 -0
  59. package/es/tx/builder/field-types.mjs +74 -0
  60. package/es/tx/builder/field-types.mjs.map +1 -0
  61. package/es/tx/builder/helpers.mjs +321 -0
  62. package/es/tx/builder/helpers.mjs.map +1 -0
  63. package/es/tx/builder/{index.js → index.mjs} +92 -74
  64. package/es/tx/builder/index.mjs.map +1 -0
  65. package/es/tx/builder/{schema.js → schema.mjs} +16 -172
  66. package/es/tx/builder/schema.mjs.map +1 -0
  67. package/es/tx/{index.js → index.mjs} +106 -14
  68. package/es/tx/index.mjs.map +1 -0
  69. package/es/tx/{tx-object.js → tx-object.mjs} +31 -18
  70. package/es/tx/tx-object.mjs.map +1 -0
  71. package/es/tx/{tx.js → tx.mjs} +15 -14
  72. package/es/tx/tx.mjs.map +1 -0
  73. package/es/tx/{validator.js → validator.mjs} +72 -33
  74. package/es/tx/validator.mjs.map +1 -0
  75. package/es/typings/blakejs/index.d.mjs +2 -0
  76. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  77. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +10 -8
  78. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  79. package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +25 -17
  80. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  81. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +7 -3
  82. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  83. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +15 -8
  84. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  85. package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
  86. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  87. package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +126 -72
  88. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  89. package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +23 -14
  90. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  91. package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +116 -91
  92. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  93. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  94. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  95. package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
  96. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  97. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
  98. package/es/utils/amount-formatter.mjs.map +1 -0
  99. package/es/utils/{async-init.js → async-init.mjs} +8 -11
  100. package/es/utils/async-init.mjs.map +1 -0
  101. package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
  102. package/es/utils/bignumber.mjs.map +1 -0
  103. package/es/utils/{bytes.js → bytes.mjs} +16 -8
  104. package/es/utils/bytes.mjs.map +1 -0
  105. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  106. package/es/utils/crypto-ts.mjs.map +1 -0
  107. package/es/utils/{crypto.js → crypto.mjs} +42 -156
  108. package/es/utils/crypto.mjs.map +1 -0
  109. package/es/utils/encoder.mjs +106 -0
  110. package/es/utils/encoder.mjs.map +1 -0
  111. package/es/utils/errors.mjs +689 -0
  112. package/es/utils/errors.mjs.map +1 -0
  113. package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
  114. package/es/utils/hd-wallet.mjs.map +1 -0
  115. package/es/utils/{json-big.js → json-big.mjs} +1 -1
  116. package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
  117. package/es/utils/{keystore.js → keystore.mjs} +63 -51
  118. package/es/utils/keystore.mjs.map +1 -0
  119. package/es/utils/{mptree.js → mptree.mjs} +21 -12
  120. package/es/utils/mptree.mjs.map +1 -0
  121. package/es/utils/{other.js → other.mjs} +2 -2
  122. package/es/utils/other.mjs.map +1 -0
  123. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  124. package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
  125. package/es/utils/{string.js → string.mjs} +1 -1
  126. package/es/utils/{string.js.map → string.mjs.map} +1 -1
  127. package/es/utils/{swagger.js → swagger.mjs} +49 -15
  128. package/es/utils/swagger.mjs.map +1 -0
  129. package/package.json +49 -58
  130. package/src/account/base.js +3 -1
  131. package/src/account/memory.js +13 -8
  132. package/src/account/multiple.js +16 -6
  133. package/src/ae/aens.js +52 -58
  134. package/src/ae/aepp.js +2 -2
  135. package/src/ae/contract.js +21 -154
  136. package/src/ae/index.js +6 -4
  137. package/src/ae/oracle.js +33 -14
  138. package/src/ae/universal.js +4 -2
  139. package/src/ae/wallet.js +2 -2
  140. package/src/chain/index.js +29 -6
  141. package/src/chain/node.js +95 -65
  142. package/src/channel/handlers.js +30 -20
  143. package/src/channel/index.js +46 -16
  144. package/src/channel/internal.js +35 -30
  145. package/src/contract/aci.js +376 -0
  146. package/src/contract/compiler.js +22 -113
  147. package/src/contract/ga/helpers.js +10 -6
  148. package/src/contract/ga/index.js +31 -24
  149. package/src/index.js +9 -8
  150. package/src/node-pool/index.js +13 -10
  151. package/src/node.js +11 -10
  152. package/src/tx/builder/constants.js +100 -0
  153. package/src/tx/builder/field-types.js +61 -0
  154. package/src/tx/builder/helpers.js +99 -103
  155. package/src/tx/builder/index.js +81 -40
  156. package/src/tx/builder/schema.js +44 -132
  157. package/src/tx/index.js +101 -12
  158. package/src/tx/tx-object.js +35 -15
  159. package/src/tx/tx.js +110 -35
  160. package/src/tx/validator.js +25 -5
  161. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +11 -5
  162. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +35 -13
  163. package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
  164. package/src/utils/aepp-wallet-communication/content-script-bridge.js +14 -7
  165. package/src/utils/aepp-wallet-communication/helpers.js +6 -14
  166. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +106 -57
  167. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +24 -11
  168. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +95 -53
  169. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  170. package/src/utils/aepp-wallet-communication/wallet-detector.js +6 -2
  171. package/src/utils/amount-formatter.ts +4 -3
  172. package/src/utils/async-init.js +10 -6
  173. package/src/utils/bignumber.ts +1 -9
  174. package/src/utils/bytes.ts +3 -2
  175. package/src/utils/crypto-ts.ts +2 -2
  176. package/src/utils/crypto.js +11 -155
  177. package/src/utils/encoder.ts +101 -0
  178. package/src/utils/errors.ts +683 -0
  179. package/src/utils/hd-wallet.js +11 -26
  180. package/src/utils/keystore.js +57 -53
  181. package/src/utils/mptree.ts +12 -6
  182. package/src/utils/swagger.js +68 -45
  183. package/es/account/base.js.map +0 -1
  184. package/es/account/memory.js.map +0 -1
  185. package/es/account/multiple.js.map +0 -1
  186. package/es/ae/aens.js.map +0 -1
  187. package/es/ae/aepp.js.map +0 -1
  188. package/es/ae/contract.js +0 -308
  189. package/es/ae/contract.js.map +0 -1
  190. package/es/ae/index.js.map +0 -1
  191. package/es/ae/oracle.js.map +0 -1
  192. package/es/ae/universal.js.map +0 -1
  193. package/es/ae/wallet.js.map +0 -1
  194. package/es/chain/index.js.map +0 -1
  195. package/es/chain/node.js.map +0 -1
  196. package/es/channel/handlers.js.map +0 -1
  197. package/es/channel/index.js.map +0 -1
  198. package/es/channel/internal.js.map +0 -1
  199. package/es/contract/aci/helpers.js +0 -298
  200. package/es/contract/aci/helpers.js.map +0 -1
  201. package/es/contract/aci/index.js +0 -356
  202. package/es/contract/aci/index.js.map +0 -1
  203. package/es/contract/aci/transformation.js +0 -66
  204. package/es/contract/aci/transformation.js.map +0 -1
  205. package/es/contract/compiler.js +0 -242
  206. package/es/contract/compiler.js.map +0 -1
  207. package/es/contract/ga/helpers.js +0 -22
  208. package/es/contract/ga/helpers.js.map +0 -1
  209. package/es/contract/ga/index.js.map +0 -1
  210. package/es/contract/index.js +0 -158
  211. package/es/contract/index.js.map +0 -1
  212. package/es/index.js +0 -56
  213. package/es/index.js.map +0 -1
  214. package/es/node-pool/index.js.map +0 -1
  215. package/es/node.js.map +0 -1
  216. package/es/tx/builder/helpers.js +0 -318
  217. package/es/tx/builder/helpers.js.map +0 -1
  218. package/es/tx/builder/index.js.map +0 -1
  219. package/es/tx/builder/schema.js.map +0 -1
  220. package/es/tx/index.js.map +0 -1
  221. package/es/tx/tx-object.js.map +0 -1
  222. package/es/tx/tx.js.map +0 -1
  223. package/es/tx/validator.js.map +0 -1
  224. package/es/typings/blakejs/index.d.js +0 -2
  225. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  226. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  227. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  228. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  229. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  230. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  231. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  232. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  233. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  234. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  235. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  236. package/es/utils/amount-formatter.js.map +0 -1
  237. package/es/utils/async-init.js.map +0 -1
  238. package/es/utils/bignumber.js.map +0 -1
  239. package/es/utils/bytes.js.map +0 -1
  240. package/es/utils/crypto-ts.js.map +0 -1
  241. package/es/utils/crypto.js.map +0 -1
  242. package/es/utils/hd-wallet.js.map +0 -1
  243. package/es/utils/keystore.js.map +0 -1
  244. package/es/utils/mptree.js.map +0 -1
  245. package/es/utils/other.js.map +0 -1
  246. package/es/utils/swagger.js.map +0 -1
  247. package/src/contract/aci/index.js +0 -310
  248. package/src/contract/aci/transformation.js +0 -72
  249. package/src/contract/index.js +0 -159
  250. package/src/utils/aepp-wallet-communication/schema.js +0 -108
package/es/ae/contract.js DELETED
@@ -1,308 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Contract module - routines to interact with the æternity contract
20
- *
21
- * High level documentation of the contracts are available at
22
- * https://github.com/aeternity/protocol/tree/master/contracts and
23
- *
24
- * @module @aeternity/aepp-sdk/es/ae/contract
25
- * @export Contract
26
- * @example import { Contract } from '@aeternity/aepp-sdk'
27
- */
28
- import Ae from './';
29
- import ContractCompilerAPI from '../contract/compiler';
30
- import ContractBase from '../contract';
31
- import getContractInstance from '../contract/aci';
32
- import NodePool from '../node-pool';
33
- import { AMOUNT, DEPOSIT, GAS, MIN_GAS_PRICE } from '../tx/builder/schema';
34
- import { decode, produceNameId } from '../tx/builder/helpers';
35
- /**
36
- * Static contract call(using dry-run)
37
- * @function
38
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
39
- * @category async
40
- * @deprecated
41
- * @param {String} source Contract source code
42
- * @param {String} contractAddress Contract address
43
- * @param {String} name Name of function to call
44
- * @param {Array} args Arguments array for call/deploy transaction
45
- * @param {Object} [options]
46
- * @param {Number|String} [options.top] Block height or hash on which you want to call contract
47
- * @param {String} [options.bytecode] Block hash on which you want to call contract
48
- * @param {Object} [options.filesystem] Contract external namespaces map
49
- * @return {Promise<Object>} Result object
50
- * @example
51
- * const callResult = await client.contractCallStatic(source, address, fnName, args)
52
- * {
53
- * result: TX_DATA,
54
- * decode: (type) => Decode call result
55
- * }
56
- */
57
-
58
- async function contractCallStatic(source, contractAddress, name) {
59
- let args = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
60
- let options = arguments.length > 4 ? arguments[4] : undefined;
61
- const contract = await this.getContractInstance({ ...options,
62
- source,
63
- contractAddress
64
- });
65
- return contract.call(name, args, { ...options,
66
- callStatic: true
67
- });
68
- }
69
- /**
70
- * Call contract function
71
- * @function
72
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
73
- * @category async
74
- * @deprecated
75
- * @param {String} source Contract source code
76
- * @param {String} contractAddress Contract address or AENS name
77
- * @param {String} name Name of function to call
78
- * @param {Array} args Arguments array for call/deploy transaction
79
- * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)
80
- * @param {Object} [options.filesystem] Contract external namespaces map
81
- * @return {Promise<Object>} Result object
82
- * @example
83
- * const callResult = await client.contractCall(source, address, fnName, args = [], options)
84
- * {
85
- * hash: TX_HASH,
86
- * result: TX_DATA,
87
- * decode: (type) => Decode call result
88
- * }
89
- */
90
-
91
-
92
- async function contractCall(source, contractAddress, name, args, options) {
93
- const contract = await this.getContractInstance({ ...options,
94
- source,
95
- contractAddress
96
- });
97
- return contract.call(name, args, options);
98
- }
99
- /**
100
- * Deploy contract to the node
101
- * @function
102
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
103
- * @category async
104
- * @deprecated
105
- * @param {String} code Compiled contract
106
- * @param {String} source Contract source code
107
- * @param {Array} params Arguments of contract constructor(init) function. Can be array of arguments or callData string
108
- * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)
109
- * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object
110
- * @return {Promise<Object>} Result object
111
- * @example
112
- * const deployed = await client.contractDeploy(bytecode, source, init = [], options)
113
- * {
114
- * owner: OWNER_PUB_KEY,
115
- * transaction: TX_HASH,
116
- * address: CONTRACT_ADDRESS,
117
- * createdAt: Date,
118
- * result: DEPLOY_TX_DATA,
119
- * call: (fnName, args = [], options) => Call contract function,
120
- * callStatic: (fnName, args = [], options) => Static all contract function
121
- * }
122
- */
123
-
124
-
125
- async function contractDeploy(code, source, params, options) {
126
- const contract = await this.getContractInstance({ ...options,
127
- source
128
- });
129
- contract.bytecode = code;
130
- return contract.deploy(params, options);
131
- }
132
- /**
133
- * Compile contract source code
134
- * @function
135
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
136
- * @category async
137
- * @param {String} source Contract sourece code
138
- * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit)
139
- * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object
140
- * @return {Promise<Object>} Result object
141
- * @example
142
- * const compiled = await client.contractCompile(SOURCE_CODE)
143
- * {
144
- * bytecode: CONTRACT_BYTE_CODE,
145
- * deploy: (init = [], options = {}) => Deploy Contract,
146
- * encodeCall: (fnName, args = []) => Prepare callData
147
- * }
148
- */
149
-
150
-
151
- async function contractCompile(source) {
152
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
153
- const opt = { ...this.Ae.defaults,
154
- ...options
155
- };
156
- const bytecode = await this.compileContractAPI(source, options);
157
- return Object.freeze({
158
- encodeCall: (name, args) => this.contractEncodeCallDataAPI(source, name, args, opt),
159
- deploy: (init, options) => this.contractDeploy(bytecode, source, init, { ...opt,
160
- ...options
161
- }),
162
- deployStatic: (init, options) => this.contractCallStatic(source, null, 'init', init, { ...opt,
163
- ...options,
164
- bytecode
165
- }),
166
- bytecode
167
- });
168
- }
169
- /**
170
- * Utility method to create a delegate signature for a contract
171
- * @function
172
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
173
- * @category async
174
- * @param {String[]} ids The list of id's to prepend
175
- * @param {Object} [opt={}] options
176
- * @param {{ onAccount: String | Object }} [opt={}] opt Options
177
- * @return {Promise<String>} Signature in hex representation
178
- */
179
-
180
-
181
- async function delegateSignatureCommon() {
182
- let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
183
- let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
184
- const signature = await this.sign(Buffer.concat([Buffer.from(this.getNetworkId(opt)), ...(Object.prototype.hasOwnProperty.call(opt, 'onAccount') ? [decode(await this.address(opt))] : []), ...ids.map(e => decode(e))]), opt);
185
- return Buffer.from(signature).toString('hex');
186
- }
187
- /**
188
- * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to a contract.
189
- * @function
190
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
191
- * @category async
192
- * @param {String} contractId Contract Id
193
- * @param {String} [name] The name
194
- * @param {{ onAccount: String | Object }} [opt={}] opt Options
195
- * @return {Promise<String>} Signature for delegation
196
- * @example
197
- * const client = await Universal({ ... })
198
- * const contractId = 'ct_asd2ks...' // contract address
199
- * const name = 'example.chain' // AENS name
200
- * const onAccount = await client.address() // Sign with a specific account
201
- * // Preclaim signature
202
- * const params = { contractId }
203
- * const preclaimSig = await client.createAensDelegationSignature(params, { onAccount: current })
204
- * // Claim, transfer and revoke signature
205
- * const params = { contractId, name }
206
- * const aensDelegationSig = await contract.createAensDelegationSignature(params, name, { onAccount: current })
207
- */
208
-
209
-
210
- async function createAensDelegationSignature(_ref) {
211
- let {
212
- contractId,
213
- name
214
- } = _ref;
215
- let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
216
- return this.delegateSignatureCommon([...(name ? [produceNameId(name)] : []), contractId], opt);
217
- }
218
- /**
219
- * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.
220
- * @function
221
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
222
- * @category async
223
- * @param {String} contractId Contract Id
224
- * @param {String} [queryId] Oracle Query Id
225
- * @param {{ onAccount: String | Object }} [opt={}] opt Options
226
- * @return {Promise<String>} Signature for delegation
227
- * @example
228
- * const client = await Universal({ ... })
229
- * const contractId = 'ct_asd2ks...' // contract address
230
- * const queryId = 'oq_...' // Oracle Query Id
231
- * const onAccount = await client.address() // Sign with a specific account
232
- * // Oracle register and extend signature
233
- * const params = { contractId }
234
- * const oracleDelegationSig = await contract.createOracleDelegationSignature(params, { onAccount })
235
- * // Oracle respond signature
236
- * const params = { contractId, queryId }
237
- * const respondSig = await contract.createOracleDelegationSignature(params, queryId)
238
- */
239
-
240
-
241
- async function createOracleDelegationSignature(_ref2) {
242
- let {
243
- contractId,
244
- queryId
245
- } = _ref2;
246
- let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
247
- return this.delegateSignatureCommon([...(queryId ? [queryId] : []), contractId], opt);
248
- }
249
- /**
250
- * Contract Stamp
251
- *
252
- * Provide contract implementation
253
- * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.
254
- * @function
255
- * @alias module:@aeternity/aepp-sdk/es/ae/contract
256
- * @rtype Stamp
257
- * @param {Object} [options={}] - Initializer object
258
- * @return {Object} Contract instance
259
- * @example
260
- * import Transaction from '@aeternity/aepp-sdk/es/tx/tx
261
- * import MemoryAccount from '@aeternity/aepp-sdk/es/account/memory
262
- * import ChainNode from '@aeternity/aepp-sdk/es/chain/node
263
- * import ContractCompilerAPI from '@aeternity/aepp-sdk/es/contract/compiler
264
- * // or using bundle
265
- * import {
266
- * Transaction,
267
- * MemoryAccount,
268
- * ChainNode,
269
- * ContractCompilerAPI
270
- * } from '@aeternity/aepp-sdk
271
- *
272
- * const ContractWithAE = await Contract
273
- * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation
274
- * .compose(ContractCompilerAPI) // ContractBase implementation
275
- * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })
276
- *
277
- */
278
-
279
-
280
- export const ContractAPI = Ae.compose(ContractBase, {
281
- methods: {
282
- getContractInstance,
283
- contractCompile,
284
- contractCallStatic,
285
- contractDeploy,
286
- contractCall,
287
- // Delegation for contract
288
- delegateSignatureCommon,
289
- // AENS
290
- createAensDelegationSignature,
291
- // Oracle
292
- createOracleDelegationSignature
293
- },
294
- deepProps: {
295
- Ae: {
296
- defaults: {
297
- deposit: DEPOSIT,
298
- gasPrice: MIN_GAS_PRICE,
299
- amount: AMOUNT,
300
- gas: GAS
301
- }
302
- }
303
- }
304
- });
305
- export const Contract = ContractAPI.compose(NodePool);
306
- export const ContractWithCompiler = Contract.compose(ContractCompilerAPI);
307
- export default ContractWithCompiler;
308
- //# sourceMappingURL=contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ae/contract.js"],"names":["Ae","ContractCompilerAPI","ContractBase","getContractInstance","NodePool","AMOUNT","DEPOSIT","GAS","MIN_GAS_PRICE","decode","produceNameId","contractCallStatic","source","contractAddress","name","args","options","contract","call","callStatic","contractCall","contractDeploy","code","params","bytecode","deploy","contractCompile","opt","defaults","compileContractAPI","Object","freeze","encodeCall","contractEncodeCallDataAPI","init","deployStatic","delegateSignatureCommon","ids","signature","sign","Buffer","concat","from","getNetworkId","prototype","hasOwnProperty","address","map","e","toString","createAensDelegationSignature","contractId","createOracleDelegationSignature","queryId","ContractAPI","compose","methods","deepProps","deposit","gasPrice","amount","gas","Contract","ContractWithCompiler"],"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 * Contract module - routines to interact with the æternity contract\n *\n * High level documentation of the contracts are available at\n * https://github.com/aeternity/protocol/tree/master/contracts and\n *\n * @module @aeternity/aepp-sdk/es/ae/contract\n * @export Contract\n * @example import { Contract } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport ContractCompilerAPI from '../contract/compiler'\nimport ContractBase from '../contract'\nimport getContractInstance from '../contract/aci'\nimport NodePool from '../node-pool'\nimport { AMOUNT, DEPOSIT, GAS, MIN_GAS_PRICE } from '../tx/builder/schema'\nimport { decode, produceNameId } from '../tx/builder/helpers'\n\n/**\n * Static contract call(using dry-run)\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options]\n * @param {Number|String} [options.top] Block height or hash on which you want to call contract\n * @param {String} [options.bytecode] Block hash on which you want to call contract\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCallStatic(source, address, fnName, args)\n * {\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCallStatic (source, contractAddress, name, args = [], options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, { ...options, callStatic: true })\n}\n\n/**\n * Call contract function\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} source Contract source code\n * @param {String} contractAddress Contract address or AENS name\n * @param {String} name Name of function to call\n * @param {Array} args Arguments array for call/deploy transaction\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem] Contract external namespaces map\n * @return {Promise<Object>} Result object\n * @example\n * const callResult = await client.contractCall(source, address, fnName, args = [], options)\n * {\n * hash: TX_HASH,\n * result: TX_DATA,\n * decode: (type) => Decode call result\n * }\n */\nasync function contractCall (source, contractAddress, name, args, options) {\n const contract = await this.getContractInstance({ ...options, source, contractAddress })\n return contract.call(name, args, options)\n}\n\n/**\n * Deploy contract to the node\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @deprecated\n * @param {String} code Compiled contract\n * @param {String} source Contract source code\n * @param {Array} params Arguments of contract constructor(init) function. Can be array of arguments or callData string\n * @param {Object} [options] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object\n * @return {Promise<Object>} Result object\n * @example\n * const deployed = await client.contractDeploy(bytecode, source, init = [], options)\n * {\n * owner: OWNER_PUB_KEY,\n * transaction: TX_HASH,\n * address: CONTRACT_ADDRESS,\n * createdAt: Date,\n * result: DEPLOY_TX_DATA,\n * call: (fnName, args = [], options) => Call contract function,\n * callStatic: (fnName, args = [], options) => Static all contract function\n * }\n */\nasync function contractDeploy (code, source, params, options) {\n const contract = await this.getContractInstance({ ...options, source })\n contract.bytecode = code\n return contract.deploy(params, options)\n}\n\n/**\n * Compile contract source code\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} source Contract sourece code\n * @param {Object} [options={}] Transaction options (fee, ttl, gas, amount, deposit)\n * @param {Object} [options.filesystem={}] Contract external namespaces map* @return {Promise<Object>} Result object\n * @return {Promise<Object>} Result object\n * @example\n * const compiled = await client.contractCompile(SOURCE_CODE)\n * {\n * bytecode: CONTRACT_BYTE_CODE,\n * deploy: (init = [], options = {}) => Deploy Contract,\n * encodeCall: (fnName, args = []) => Prepare callData\n * }\n */\nasync function contractCompile (source, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const bytecode = await this.compileContractAPI(source, options)\n return Object.freeze({\n encodeCall: (name, args) => this.contractEncodeCallDataAPI(source, name, args, opt),\n deploy: (init, options) => this.contractDeploy(bytecode, source, init, { ...opt, ...options }),\n deployStatic: (init, options) => this.contractCallStatic(source, null, 'init', init, {\n ...opt,\n ...options,\n bytecode\n }),\n bytecode\n })\n}\n\n/**\n * Utility method to create a delegate signature for a contract\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String[]} ids The list of id's to prepend\n * @param {Object} [opt={}] options\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature in hex representation\n */\nasync function delegateSignatureCommon (ids = [], opt = {}) {\n const signature = await this.sign(\n Buffer.concat([\n Buffer.from(this.getNetworkId(opt)),\n ...(Object.prototype.hasOwnProperty.call(opt, 'onAccount') ? [decode(await this.address(opt))] : []),\n ...ids.map(e => decode(e))\n ]),\n opt\n )\n return Buffer.from(signature).toString('hex')\n}\n\n/**\n * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [name] The name\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const name = 'example.chain' // AENS name\n * const onAccount = await client.address() // Sign with a specific account\n * // Preclaim signature\n * const params = { contractId }\n * const preclaimSig = await client.createAensDelegationSignature(params, { onAccount: current })\n * // Claim, transfer and revoke signature\n * const params = { contractId, name }\n * const aensDelegationSig = await contract.createAensDelegationSignature(params, name, { onAccount: current })\n */\nasync function createAensDelegationSignature ({ contractId, name }, opt = {}) {\n return this.delegateSignatureCommon([...name ? [produceNameId(name)] : [], contractId], opt)\n}\n\n/**\n * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @category async\n * @param {String} contractId Contract Id\n * @param {String} [queryId] Oracle Query Id\n * @param {{ onAccount: String | Object }} [opt={}] opt Options\n * @return {Promise<String>} Signature for delegation\n * @example\n * const client = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const queryId = 'oq_...' // Oracle Query Id\n * const onAccount = await client.address() // Sign with a specific account\n * // Oracle register and extend signature\n * const params = { contractId }\n * const oracleDelegationSig = await contract.createOracleDelegationSignature(params, { onAccount })\n * // Oracle respond signature\n * const params = { contractId, queryId }\n * const respondSig = await contract.createOracleDelegationSignature(params, queryId)\n */\nasync function createOracleDelegationSignature ({ contractId, queryId }, opt = {}) {\n return this.delegateSignatureCommon([...queryId ? [queryId] : [], contractId], opt)\n}\n\n/**\n * Contract Stamp\n *\n * Provide contract implementation\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/contract\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Contract instance\n * @example\n * import Transaction from '@aeternity/aepp-sdk/es/tx/tx\n * import MemoryAccount from '@aeternity/aepp-sdk/es/account/memory\n * import ChainNode from '@aeternity/aepp-sdk/es/chain/node\n * import ContractCompilerAPI from '@aeternity/aepp-sdk/es/contract/compiler\n * // or using bundle\n * import {\n * Transaction,\n * MemoryAccount,\n * ChainNode,\n * ContractCompilerAPI\n * } from '@aeternity/aepp-sdk\n *\n * const ContractWithAE = await Contract\n * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation\n * .compose(ContractCompilerAPI) // ContractBase implementation\n * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })\n *\n */\nexport const ContractAPI = Ae.compose(ContractBase, {\n methods: {\n getContractInstance,\n contractCompile,\n contractCallStatic,\n contractDeploy,\n contractCall,\n // Delegation for contract\n delegateSignatureCommon,\n // AENS\n createAensDelegationSignature,\n // Oracle\n createOracleDelegationSignature\n },\n deepProps: {\n Ae: {\n defaults: {\n deposit: DEPOSIT,\n gasPrice: MIN_GAS_PRICE,\n amount: AMOUNT,\n gas: GAS\n }\n }\n }\n})\n\nexport const Contract = ContractAPI.compose(NodePool)\nexport const ContractWithCompiler = Contract.compose(ContractCompilerAPI)\nexport default ContractWithCompiler\n"],"file":"contract.js"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ae/index.js"],"names":["stampit","Tx","Chain","AccountBase","TxBuilder","BigNumber","AE_AMOUNT_FORMATS","send","tx","options","opt","Ae","defaults","contractId","authFun","innerTx","getAccount","address","signed","signUsingGA","signTransaction","hash","buildTxHash","rawTx","sendTransaction","authData","createMetaTx","spend","amount","recipientIdOrName","spendTx","senderId","recipientId","resolveName","transferFunds","fraction","Error","balance","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","unpackTx","plus","gt","minus","payForTransaction","transaction","payingForTx","payerId","destroyInstance","destroyMethods","forEach","m","methods","deepProps","denomination","AETTOS"],"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 * Ae module\n * @module @aeternity/aepp-sdk/es/ae\n * @export Ae\n * @example import { Ae } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport Tx from '../tx'\nimport Chain from '../chain'\nimport AccountBase from '../account/base'\nimport TxBuilder from '../tx/builder'\nimport BigNumber from 'bignumber.js'\nimport { AE_AMOUNT_FORMATS } from '../utils/amount-formatter'\n\n/**\n * Sign and post a transaction to the chain\n * @instance\n * @category async\n * @rtype (tx: String, options: Object) => Promise[String]\n * @param {String} tx - Transaction\n * @param {Object} [options={}] options - Options\n * @param {Object} [options.verify=true] verify - Verify transaction before broadcast, throw error if not valid\n * @return {Object} Transaction\n */\nasync function send (tx, options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const { contractId, authFun } = options.innerTx\n ? { contractId: false }\n : await this.getAccount(await this.address(opt))\n const signed = contractId\n ? await this.signUsingGA(tx, { ...opt, authFun })\n : await this.signTransaction(tx, opt)\n return opt.innerTx\n ? { hash: TxBuilder.buildTxHash(signed), rawTx: signed }\n : this.sendTransaction(signed, opt)\n}\n\nasync function signUsingGA (tx, { authData, authFun, ...options } = {}) {\n return this.createMetaTx(tx, authData, authFun, options)\n}\n\n/**\n * Send tokens to another account\n * @instance\n * @category async\n * @rtype (amount: Number|String, recipientIdOrName: String, options?: Object) => Promise[String]\n * @param {Number|String} amount - Amount to spend\n * @param {String} recipientIdOrName - Address or name of recipient account\n * @param {Object} [options] - Options\n * @return {Object} Transaction\n */\nasync function spend (amount, recipientIdOrName, options) {\n const opt = { ...this.Ae.defaults, ...options }\n return this.send(\n await this.spendTx({\n ...opt,\n senderId: await this.address(opt),\n recipientId: await this.resolveName(recipientIdOrName, 'ak', opt),\n amount\n }),\n opt\n )\n}\n\n// TODO: Rename to spendFraction\n/**\n * Send a fraction of token balance to another account\n * @instance\n * @category async\n * @rtype (fraction: Number|String, recipientIdOrName: String, options?: Object) => Promise[String]\n * @param {Number|String} fraction - Fraction of balance to spend (between 0 and 1)\n * @param {String} recipientIdOrName - Address or name of recipient account\n * @param {Object} [options] - Options\n * @return {Object} Transaction\n */\nasync function transferFunds (fraction, recipientIdOrName, options) {\n if (fraction < 0 || fraction > 1) {\n throw new Error(`Fraction should be a number between 0 and 1, got ${fraction}`)\n }\n const opt = { ...this.Ae.defaults, ...options }\n const recipientId = await this.resolveName(recipientIdOrName, 'ak', opt)\n const senderId = await this.address(opt)\n const balance = new BigNumber(await this.balance(senderId))\n const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP)\n const { tx: { fee } } = TxBuilder.unpackTx(\n await this.spendTx({ ...opt, senderId, recipientId, amount: desiredAmount })\n )\n // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount\n return this.send(await this.spendTx({ ...opt, senderId, recipientId, amount }), opt)\n}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @instance\n * @category async\n * @rtype (transaction: String, options?: Object) => Promise[String]\n * @param {String} transaction - tx_<base64>-encoded transaction\n * @param {Object} [options]\n * @return {Object} Transaction\n */\nasync function payForTransaction (transaction, options) {\n const opt = { ...this.Ae.defaults, ...options }\n return this.send(\n await this.payingForTx({\n ...opt,\n payerId: await this.address(opt),\n tx: transaction\n }),\n opt\n )\n}\n\n/**\n * Remove all listeners for RPC\n * @instance\n * @return {void}\n */\nfunction destroyInstance () {\n const destroyMethods = ['destroyClient', 'destroyServer'] // Array with destroy function's\n destroyMethods.forEach(m => this[m] && typeof this[m] === 'function' && this[m]())\n}\n\n/**\n * Basic Ae Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n *\n * Ae objects are the composition of three basic building blocks:\n * * {@link module:@aeternity/aepp-sdk/es/tx--Tx}\n * * {@link module:@aeternity/aepp-sdk/es/account--Account}\n * * {@link module:@aeternity/aepp-sdk/es/chain--Chain}\n * Only by providing the joint functionality of those three, most more advanced\n * operations, i.e. the ones with actual use value on the chain, become\n * available.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Ae instance\n */\nconst Ae = stampit(Tx, AccountBase, Chain, {\n methods: { send, spend, transferFunds, payForTransaction, destroyInstance, signUsingGA },\n deepProps: { Ae: { defaults: { denomination: AE_AMOUNT_FORMATS.AETTOS } } }\n})\n\nexport default Ae\n"],"file":"index.js"}
@@ -1 +0,0 @@
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 (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 = 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] 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 = { ...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 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["../../src/ae/wallet.js"],"names":["Ae","Chain","Tx","Contract","GeneralizeAccount","WalletRpc","Oracle","Aens","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,EAAP,MAAe,UAAf;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,iBAAP,MAA8B,gBAA9B;AACA,OAAOC,SAAP,MAAsB,mDAAtB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,IAAP,MAAiB,QAAjB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,EAAE,CAACQ,OAAH,CAAWH,SAAX,EAAsBH,EAAtB,EAA0BC,QAA1B,EAAoCG,MAApC,EAA4CC,IAA5C,EAAkDH,iBAAlD,EAAqEH,KAArE,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 * Wallet module\n * @module @aeternity/aepp-sdk/es/ae/wallet\n * @export Wallet\n * @example import { RpcWallet } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Chain from '../chain/node'\nimport Tx from '../tx/tx'\nimport Contract from './contract'\nimport GeneralizeAccount from '../contract/ga'\nimport WalletRpc from '../utils/aepp-wallet-communication/rpc/wallet-rpc'\nimport Oracle from './oracle'\nimport Aens from './aens'\n\n/**\n * Wallet Stamp\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/wallet\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {String} options.url - Node instance to connect to\n * @param {Account[]} [options.accounts] - Accounts to initialize with\n * @param {String} [options.account] - Public key of account to preselect\n * @return {Object} Wallet instance\n * @example Wallet({\n url: 'https://testnet.aeternity.io/',\n accounts: [MemoryAccount({keypair})],\n address: keypair.publicKey,\n})\n */\nexport default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens, GeneralizeAccount, Chain)\n"],"file":"wallet.js"}
@@ -1 +0,0 @@
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;;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, 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: 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 +0,0 @@
1
- {"version":3,"sources":["../../src/chain/node.js"],"names":["Chain","AE_AMOUNT_FORMATS","formatAmount","verifyTransaction","NodePool","pause","isNameValid","produceNameId","decode","DRY_RUN_ACCOUNT","NAME_ID_KEY","sendTransaction","tx","options","waitMined","verify","Ae","defaults","validation","selectedNode","instance","length","message","map","v","join","Object","assign","Error","code","transaction","txHash","api","postTransaction","txData","poll","rawTx","confirm","confirmationHeight","waitForTxConfirm","hash","error","verifyTx","blockHeight","height","awaitHeight","newBlockHeight","getAccount","address","getAccountByPubkeyAndHeight","getAccountByPubkeyAndHash","getAccountByPubkey","balance","format","AETTOS","targetDenomination","toString","getBalance","catch","_","info","getTransactionByHash","includes","type","getTxInfo","e","_heightPromise","getCurrentKeyBlockHeight","interval","attempts","currentHeight","i","topBlock","getTopHeader","th","blocks","allowUnsynced","max","result","getTransactionInfoByHash","callInfo","mempool","getPendingTransactions","getCurrentGeneration","getGeneration","hashOrHeight","getGenerationByHash","getGenerationByHeight","getMicroBlockTransactions","getMicroBlockTransactionsByHash","transactions","getKeyBlock","getKeyBlockByHash","getKeyBlockByHeight","getMicroBlockHeader","getMicroBlockHeaderByHash","txDryRun","accountAddress","results","reason","resultPayload","other","protectedDryRunTxs","txs","accounts","pubKey","amount","getContractByteCode","contractId","getContractCode","getContract","getName","name","getNameEntryByName","resolveName","nameOrId","prefix","resolveByNode","prefixes","keys","pointer","pointers","find","id","split","ChainNode","compose","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 */\nimport Chain from './'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../utils/amount-formatter'\nimport verifyTransaction from '../tx/validator'\nimport NodePool from '../node-pool'\nimport { pause } from '../utils/other'\nimport { isNameValid, produceNameId, decode } from '../tx/builder/helpers'\nimport { DRY_RUN_ACCOUNT, NAME_ID_KEY } from '../tx/builder/schema'\n\n/**\n * ChainNode module\n *\n * This is the complement to {@link module:@aeternity/aepp-sdk/es/chain}.\n * @module @aeternity/aepp-sdk/es/chain/node\n * @export ChainNode\n * @example import { ChainNode } from '@aeternity/aepp-sdk'\n */\n\nasync function sendTransaction (tx, options = {}) {\n const { waitMined, verify } = { ...this.Ae.defaults, ...options }\n if (verify) {\n const validation = await verifyTransaction(tx, this.selectedNode.instance)\n if (validation.length) {\n const message = 'Transaction verification errors: ' +\n validation.map(v => v.message).join(', ')\n throw Object.assign(new Error(message), {\n code: 'TX_VERIFICATION_ERROR',\n validation,\n transaction: tx\n })\n }\n }\n\n try {\n const { txHash } = await this.api.postTransaction({ tx })\n\n if (waitMined) {\n const txData = { ...await this.poll(txHash, options), rawTx: tx }\n // wait for transaction confirmation\n if (options.confirm) {\n return { ...txData, confirmationHeight: await this.waitForTxConfirm(txHash, options) }\n }\n return txData\n }\n return { hash: txHash, rawTx: tx }\n } catch (error) {\n throw Object.assign(error, { rawTx: tx, verifyTx: () => verifyTransaction(tx, this.selectedNode.instance) })\n }\n}\n\nasync function waitForTxConfirm (txHash, options = { confirm: 3 }) {\n options.confirm = options.confirm === true ? 3 : options.confirm\n const { blockHeight } = await this.tx(txHash)\n const height = await this.awaitHeight(blockHeight + options.confirm, options)\n const { blockHeight: newBlockHeight } = await this.tx(txHash)\n switch (newBlockHeight) {\n case -1:\n throw new Error(`Transaction ${txHash} is removed from chain`)\n case blockHeight:\n return height\n default:\n return waitForTxConfirm(txHash, options)\n }\n}\n\nasync function getAccount (address, { height, hash } = {}) {\n if (height) return this.api.getAccountByPubkeyAndHeight(address, height)\n if (hash) return this.api.getAccountByPubkeyAndHash(address, hash)\n return this.api.getAccountByPubkey(address)\n}\n\n/**\n * @function\n * @deprecated\n */\nasync function balance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {\n const { balance } = await this.getAccount(address, { hash, height })\n\n return formatAmount(balance, { targetDenomination: format }).toString()\n}\n\nasync function getBalance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {\n const { balance } = await this.getAccount(address, { hash, height }).catch(_ => ({ balance: 0 }))\n\n return formatAmount(balance, { targetDenomination: format }).toString()\n}\n\nasync function tx (hash, info = true) {\n const tx = await this.api.getTransactionByHash(hash)\n if (['ContractCreateTx', 'ContractCallTx', 'ChannelForceProgressTx'].includes(tx.tx.type) && info && tx.blockHeight !== -1) {\n try {\n return { ...tx, ...await this.getTxInfo(hash) }\n } catch (e) {}\n }\n return tx\n}\n\nasync function height () {\n try {\n if (!this._heightPromise) {\n this._heightPromise = this.api.getCurrentKeyBlockHeight()\n }\n return (await this._heightPromise).height\n } finally {\n delete this._heightPromise\n }\n}\n\nasync function awaitHeight (height, { interval = 5000, attempts = 20 } = {}) {\n let currentHeight\n for (let i = 0; i < attempts; i++) {\n if (i) await pause(interval)\n currentHeight = await this.height()\n if (currentHeight >= height) return currentHeight\n }\n throw new Error(`Giving up after ${(attempts - 1) * interval}ms, current height: ${currentHeight}, desired height: ${height}`)\n}\n\n/**\n * @deprecated\n */\nasync function topBlock () {\n return this.api.getTopHeader()\n}\n\nasync function poll (th, { blocks = 10, interval = 500, allowUnsynced = false } = {}) {\n const max = await this.height() + blocks\n do {\n const tx = await this.tx(th).catch(_ => null)\n if (tx && (tx.blockHeight !== -1 || (allowUnsynced && tx.height))) {\n return tx\n }\n await pause(interval)\n } while (await this.height() < max)\n throw new Error(`Giving up after ${blocks} blocks mined, transaction hash: ${th}`)\n}\n\nasync function getTxInfo (hash) {\n const result = await this.api.getTransactionInfoByHash(hash)\n return result.callInfo || result\n}\n\nasync function mempool () {\n return this.api.getPendingTransactions()\n}\n\nasync function getCurrentGeneration () {\n return this.api.getCurrentGeneration()\n}\n\nasync function getGeneration (hashOrHeight) {\n if (typeof hashOrHeight === 'string') return this.api.getGenerationByHash(hashOrHeight)\n if (typeof hashOrHeight === 'number') return this.api.getGenerationByHeight(hashOrHeight)\n throw new Error('Invalid param, param must be hash or height')\n}\n\nasync function getMicroBlockTransactions (hash) {\n return (await this.api.getMicroBlockTransactionsByHash(hash)).transactions\n}\n\nasync function getKeyBlock (hashOrHeight) {\n if (typeof hashOrHeight === 'string') return this.api.getKeyBlockByHash(hashOrHeight)\n if (typeof hashOrHeight === 'number') return this.api.getKeyBlockByHeight(hashOrHeight)\n throw new Error('Invalid param, param must be hash or height')\n}\n\nasync function getMicroBlockHeader (hash) {\n return this.api.getMicroBlockHeaderByHash(hash)\n}\n\nasync function txDryRun (tx, accountAddress, options) {\n const { results: [{ result, reason, ...resultPayload }], ...other } =\n await this.api.protectedDryRunTxs({\n ...options,\n txs: [{ tx }],\n accounts: [{\n pubKey: accountAddress,\n amount: DRY_RUN_ACCOUNT.amount\n }]\n })\n\n if (result === 'ok') return { ...resultPayload, ...other }\n\n throw Object.assign(\n new Error('Dry run error, ' + reason),\n { tx, accountAddress, options }\n )\n}\n\nasync function getContractByteCode (contractId) {\n return this.api.getContractCode(contractId)\n}\n\nasync function getContract (contractId) {\n return this.api.getContract(contractId)\n}\n\nasync function getName (name) {\n return this.api.getNameEntryByName(name)\n}\n\n/**\n * Resolve AENS name and return name hash\n * @param {String} nameOrId\n * @param {String} prefix\n * @param {Object} [options]\n * @param {Boolean} [options.verify] To ensure that name exist and have a corresponding pointer\n * @param {Boolean} [options.resolveByNode] Enables pointer resolving using node // TODO: avoid that to don't trust to current api gateway\n * @return {String} Address or AENS name hash\n */\nasync function resolveName (nameOrId, prefix, { verify, resolveByNode } = {}) {\n if (!nameOrId || typeof nameOrId !== 'string') {\n throw new Error(`Name or address should be a string: ${nameOrId}`)\n }\n const prefixes = Object.keys(NAME_ID_KEY)\n if (!prefixes.includes(prefix)) {\n throw new Error(`Invalid prefix ${prefix}, should be one of [${prefixes}]`)\n }\n try {\n decode(nameOrId, prefix)\n return nameOrId\n } catch (error) {}\n if (isNameValid(nameOrId)) {\n if (verify || resolveByNode) {\n const name = await this.getName(nameOrId).catch(_ => null)\n if (!name) throw new Error(`Name not found: ${nameOrId}`)\n const pointer = name.pointers.find(({ id }) => id.split('_')[0] === prefix)\n if (!pointer) throw new Error(`Name ${nameOrId} don't have pointers for ${prefix}`)\n if (resolveByNode) return pointer.id\n }\n return produceNameId(nameOrId)\n }\n throw new Error(`Invalid name or address: ${nameOrId}`)\n}\n\n/**\n * ChainNode Stamp\n *\n * This is implementation of {@link module:@aeternity/aepp-sdk/es/chain--Chain}\n * composed with {@link module:@aeternity/aepp-sdk/es/contract/node--ContractNodeAPI} and {@link module:@aeternity/aepp-sdk/es/oracle/node--OracleNodeAPI}\n * @function\n * @alias module:@aeternity/aepp-sdk/es/chain/node\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} ChainNode instance\n * @example ChainNode({url: 'https://testnet.aeternity.io/'})\n */\nconst ChainNode = Chain.compose(NodePool, {\n methods: {\n sendTransaction,\n balance,\n getBalance,\n getAccount,\n topBlock,\n tx,\n height,\n awaitHeight,\n poll,\n getTxInfo,\n mempool,\n getCurrentGeneration,\n getGeneration,\n getMicroBlockHeader,\n getMicroBlockTransactions,\n getKeyBlock,\n txDryRun,\n getContractByteCode,\n getContract,\n getName,\n waitForTxConfirm,\n resolveName\n }\n})\n\nexport default ChainNode\n"],"file":"node.js"}