@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
@@ -1,3 +1,8 @@
1
+ import _buffer from "buffer";
2
+ const {
3
+ Buffer: _Buffer
4
+ } = _buffer;
5
+
1
6
  /*
2
7
  * ISC License (ISC)
3
8
  * Copyright (c) 2018 aeternity developers
@@ -22,12 +27,15 @@
22
27
  * @export isAccountBase
23
28
  */
24
29
  import stampit from '@stamp/it';
25
- import { required } from '@stamp/required';
26
- import { messageToHash, verifyMessage as verifyMessageCrypto, hash } from '../utils/crypto';
27
- import { buildTx } from '../tx/builder';
28
- import { decode } from '../tx/builder/helpers';
29
- import { TX_TYPE } from '../tx/builder/schema';
30
- import { getNetworkId } from '../node';
30
+ import _stampRequired from '@stamp/required';
31
+ const {
32
+ required
33
+ } = _stampRequired;
34
+ import { messageToHash, verifyMessage as verifyMessageCrypto, hash } from "../utils/crypto.mjs";
35
+ import { buildTx } from "../tx/builder/index.mjs";
36
+ import { decode } from "../tx/builder/helpers.mjs";
37
+ import { TX_TYPE } from "../tx/builder/schema.mjs";
38
+ import { getNetworkId } from "../node.mjs";
31
39
  /**
32
40
  * Check is provided object looks like an instance of AccountBase
33
41
  * @rtype (Object) => Boolean
@@ -52,7 +60,9 @@ async function signTransaction(tx) {
52
60
  const prefixes = [this.getNetworkId(opt)];
53
61
  if (opt.innerTx) prefixes.push('inner_tx');
54
62
  const rlpBinaryTx = decode(tx, 'tx');
55
- const txWithNetworkId = Buffer.concat([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
63
+
64
+ const txWithNetworkId = _Buffer.concat([_Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)]);
65
+
56
66
  const signatures = [await this.sign(txWithNetworkId, opt)];
57
67
  return buildTx({
58
68
  encodedTx: rlpBinaryTx,
@@ -84,13 +94,15 @@ async function signMessage(message) {
84
94
  returnHex: false
85
95
  };
86
96
  const sig = await this.sign(messageToHash(message), opt);
87
- return opt.returnHex ? Buffer.from(sig).toString('hex') : sig;
97
+ return opt.returnHex ? _Buffer.from(sig).toString('hex') : sig;
88
98
  }
89
99
  /**
90
100
  * Verify message
91
101
  * @instance
92
102
  * @category async
93
- * @rtype (msg: String, signature: String, publicKey: String) => signature: Promise[String], throws: Error
103
+ * @rtype (
104
+ * msg: String, signature: String, publicKey: String
105
+ * ) => signature: Promise[String], throws: Error
94
106
  * @param {String} message - Message to verify
95
107
  * @param {String} signature - Signature
96
108
  * @param {Object} opt - Options
@@ -100,7 +112,7 @@ async function signMessage(message) {
100
112
 
101
113
  async function verifyMessage(message, signature) {
102
114
  let opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
103
- return verifyMessageCrypto(message, typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature, decode(await this.address(opt)));
115
+ return verifyMessageCrypto(message, typeof signature === 'string' ? _Buffer.from(signature, 'hex') : signature, decode(await this.address(opt)));
104
116
  }
105
117
  /**
106
118
  * AccountBase Stamp
@@ -164,4 +176,4 @@ export default stampit({
164
176
  * @rtype () => address: Promise[String]
165
177
  * @return {String} Public account address
166
178
  */
167
- //# sourceMappingURL=base.js.map
179
+ //# sourceMappingURL=base.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/base.js"],"names":["stampit","messageToHash","verifyMessage","verifyMessageCrypto","hash","buildTx","decode","TX_TYPE","getNetworkId","isAccountBase","acc","find","f","signTransaction","tx","opt","prefixes","innerTx","push","rlpBinaryTx","txWithNetworkId","concat","from","join","signatures","sign","encodedTx","signed","signMessage","message","returnHex","sig","toString","signature","address","init","networkId","methods","required"],"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 * AccountBase module\n * @module @aeternity/aepp-sdk/es/account/base\n * @export AccountBase\n * @export isAccountBase\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\nimport { messageToHash, verifyMessage as verifyMessageCrypto, hash } from '../utils/crypto'\nimport { buildTx } from '../tx/builder'\nimport { decode } from '../tx/builder/helpers'\nimport { TX_TYPE } from '../tx/builder/schema'\nimport { getNetworkId } from '../node'\n\n/**\n * Check is provided object looks like an instance of AccountBase\n * @rtype (Object) => Boolean\n * @param {Object} acc - Object to check\n * @return {Boolean}\n */\nexport const isAccountBase = (acc) => !['sign', 'address'].find(f => typeof acc[f] !== 'function')\n\n/**\n * Sign encoded transaction\n * @instance\n * @category async\n * @rtype (tx: String) => tx: Promise[String], throws: Error\n * @param {String} tx - Transaction to sign\n * @param {Object} opt - Options\n * @param {Object} [opt.innerTx] - Sign as inner transaction for PayingFor\n * @return {String} Signed transaction\n */\nasync function signTransaction (tx, opt = {}) {\n const prefixes = [this.getNetworkId(opt)]\n if (opt.innerTx) prefixes.push('inner_tx')\n const rlpBinaryTx = decode(tx, 'tx')\n const txWithNetworkId = Buffer.concat([Buffer.from(prefixes.join('-')), hash(rlpBinaryTx)])\n\n const signatures = [await this.sign(txWithNetworkId, opt)]\n return buildTx({ encodedTx: rlpBinaryTx, signatures }, TX_TYPE.signed).tx\n}\n\n/**\n * Get network Id\n * @instance\n * @function getNetworkId\n * @category async\n * @rtype () => networkId: String\n * @return {String} Network Id\n */\n\n/**\n * Sign message\n * @instance\n * @category async\n * @rtype (msg: String) => signature: Promise[String], throws: Error\n * @param {String} message - Message to sign\n * @param {Object} opt - Options\n * @return {String} Signature\n */\nasync function signMessage (message, opt = { returnHex: false }) {\n const sig = await this.sign(messageToHash(message), opt)\n return opt.returnHex ? Buffer.from(sig).toString('hex') : sig\n}\n\n/**\n * Verify message\n * @instance\n * @category async\n * @rtype (\n * msg: String, signature: String, publicKey: String\n * ) => signature: Promise[String], throws: Error\n * @param {String} message - Message to verify\n * @param {String} signature - Signature\n * @param {Object} opt - Options\n * @return {Boolean}\n */\nasync function verifyMessage (message, signature, opt = {}) {\n return verifyMessageCrypto(\n message,\n typeof signature === 'string' ? Buffer.from(signature, 'hex') : signature,\n decode(await this.address(opt))\n )\n}\n\n/**\n * AccountBase 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 * Account is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides access to a\n * signing key pair.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/account\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {String} options.networkId - NETWORK_ID using for signing transaction's\n * @return {Object} Account instance\n */\nexport default stampit({\n init ({ networkId }) { // NETWORK_ID using for signing transaction's\n if (!this.networkId && networkId) {\n this.networkId = networkId\n }\n },\n methods: { signTransaction, getNetworkId, signMessage, verifyMessage }\n}, required({\n methods: {\n sign: required,\n address: required\n }\n}))\n\n/**\n * Sign data blob\n * @function sign\n * @instance\n * @abstract\n * @category async\n * @rtype (data: String) => data: Promise[String]\n * @param {String} data - Data blob to sign\n * @return {String} Signed data blob\n */\n\n/**\n * Obtain account address\n * @function address\n * @instance\n * @abstract\n * @category async\n * @rtype () => address: Promise[String]\n * @return {String} Public account address\n */\n"],"file":"base.mjs"}
@@ -1,3 +1,8 @@
1
+ import _buffer from "buffer";
2
+ const {
3
+ Buffer: _Buffer
4
+ } = _buffer;
5
+
1
6
  /*
2
7
  * ISC License (ISC)
3
8
  * Copyright (c) 2018 aeternity developers
@@ -21,10 +26,11 @@
21
26
  * @export MemoryAccount
22
27
  * @example import { MemoryAccount } from '@aeternity/aepp-sdk'
23
28
  */
24
- import AccountBase from './base';
25
- import { sign, isAddressValid, isValidKeypair } from '../utils/crypto';
26
- import { isHex } from '../utils/string';
27
- import { decode } from '../tx/builder/helpers';
29
+ import AccountBase from "./base.mjs";
30
+ import { sign, isValidKeypair } from "../utils/crypto.mjs";
31
+ import { isHex } from "../utils/string.mjs";
32
+ import { decode } from "../tx/builder/helpers.mjs";
33
+ import { InvalidKeypairError } from "../utils/errors.mjs";
28
34
  const secrets = new WeakMap();
29
35
  /**
30
36
  * In-memory account stamp
@@ -47,21 +53,30 @@ export default AccountBase.compose({
47
53
  this.isGa = !!gaId;
48
54
 
49
55
  if (gaId) {
50
- if (!isAddressValid(gaId)) throw new Error('Invalid GA address');
56
+ decode(gaId);
51
57
  secrets.set(this, {
52
58
  publicKey: gaId
53
59
  });
54
60
  return;
55
61
  }
56
62
 
57
- if (!keypair || typeof keypair !== 'object') throw new Error('KeyPair must be an object');
58
- if (!keypair.secretKey || !keypair.publicKey) throw new Error('KeyPair must must have "secretKey", "publicKey" properties');
59
- if (typeof keypair.publicKey !== 'string' || keypair.publicKey.indexOf('ak_') === -1) throw new Error('Public Key must be a base58c string with "ak_" prefix');
60
- if (!Buffer.isBuffer(keypair.secretKey) && typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey)) throw new Error('Secret key must be hex string or Buffer');
61
- const pubBuffer = Buffer.from(decode(keypair.publicKey, 'ak'));
62
- if (!isValidKeypair(Buffer.from(keypair.secretKey, 'hex'), pubBuffer)) throw new Error('Invalid Key Pair');
63
+ if (!keypair || typeof keypair !== 'object') throw new InvalidKeypairError('KeyPair must be an object');
64
+
65
+ if (!keypair.secretKey || !keypair.publicKey) {
66
+ throw new InvalidKeypairError('KeyPair must must have "secretKey", "publicKey" properties');
67
+ }
68
+
69
+ if (typeof keypair.publicKey !== 'string' || keypair.publicKey.indexOf('ak_') === -1) {
70
+ throw new InvalidKeypairError('Public Key must be a base58c string with "ak_" prefix');
71
+ }
72
+
73
+ if (!_Buffer.isBuffer(keypair.secretKey) && typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey)) throw new InvalidKeypairError('Secret key must be hex string or Buffer');
74
+
75
+ const pubBuffer = _Buffer.from(decode(keypair.publicKey, 'ak'));
76
+
77
+ if (!isValidKeypair(_Buffer.from(keypair.secretKey, 'hex'), pubBuffer)) throw new InvalidKeypairError('Invalid Key Pair');
63
78
  secrets.set(this, {
64
- secretKey: Buffer.isBuffer(keypair.secretKey) ? keypair.secretKey : Buffer.from(keypair.secretKey, 'hex'),
79
+ secretKey: _Buffer.isBuffer(keypair.secretKey) ? keypair.secretKey : _Buffer.from(keypair.secretKey, 'hex'),
65
80
  publicKey: keypair.publicKey
66
81
  });
67
82
  },
@@ -71,7 +86,7 @@ export default AccountBase.compose({
71
86
  },
72
87
  methods: {
73
88
  sign(data) {
74
- if (this.isGa) throw new Error('You are trying to sign data using GA account without keypair');
89
+ if (this.isGa) throw new InvalidKeypairError('You are trying to sign data using generalized account without keypair');
75
90
  return Promise.resolve(sign(data, secrets.get(this).secretKey));
76
91
  },
77
92
 
@@ -81,4 +96,4 @@ export default AccountBase.compose({
81
96
 
82
97
  }
83
98
  });
84
- //# sourceMappingURL=memory.js.map
99
+ //# sourceMappingURL=memory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/memory.js"],"names":["AccountBase","sign","isValidKeypair","isHex","decode","InvalidKeypairError","secrets","WeakMap","compose","init","keypair","gaId","isGa","set","publicKey","secretKey","indexOf","isBuffer","pubBuffer","from","props","methods","data","Promise","resolve","get","address"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,W;SACEC,I,EAAMC,c;SACNC,K;SACAC,M;SACAC,mB;AAET,MAAMC,OAAO,GAAG,IAAIC,OAAJ,EAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeP,WAAW,CAACQ,OAAZ,CAAoB;AACjCC,EAAAA,IAAI,OAAqB;AAAA,QAAnB;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,KAAmB;AACvB,SAAKC,IAAL,GAAY,CAAC,CAACD,IAAd;;AACA,QAAIA,IAAJ,EAAU;AACRP,MAAAA,MAAM,CAACO,IAAD,CAAN;AACAL,MAAAA,OAAO,CAACO,GAAR,CAAY,IAAZ,EAAkB;AAAEC,QAAAA,SAAS,EAAEH;AAAb,OAAlB;AACA;AACD;;AAED,QAAI,CAACD,OAAD,IAAY,OAAOA,OAAP,KAAmB,QAAnC,EAA6C,MAAM,IAAIL,mBAAJ,CAAwB,2BAAxB,CAAN;;AAC7C,QAAI,CAACK,OAAO,CAACK,SAAT,IAAsB,CAACL,OAAO,CAACI,SAAnC,EAA8C;AAC5C,YAAM,IAAIT,mBAAJ,CAAwB,4DAAxB,CAAN;AACD;;AACD,QAAI,OAAOK,OAAO,CAACI,SAAf,KAA6B,QAA7B,IAAyCJ,OAAO,CAACI,SAAR,CAAkBE,OAAlB,CAA0B,KAA1B,MAAqC,CAAC,CAAnF,EAAsF;AACpF,YAAM,IAAIX,mBAAJ,CAAwB,uDAAxB,CAAN;AACD;;AACD,QACE,CAAC,QAAOY,QAAP,CAAgBP,OAAO,CAACK,SAAxB,CAAD,IACC,OAAOL,OAAO,CAACK,SAAf,KAA6B,QAA7B,IAAyC,CAACZ,KAAK,CAACO,OAAO,CAACK,SAAT,CAFlD,EAGE,MAAM,IAAIV,mBAAJ,CAAwB,yCAAxB,CAAN;;AAEF,UAAMa,SAAS,GAAG,QAAOC,IAAP,CAAYf,MAAM,CAACM,OAAO,CAACI,SAAT,EAAoB,IAApB,CAAlB,CAAlB;;AACA,QAAI,CAACZ,cAAc,CAAC,QAAOiB,IAAP,CAAYT,OAAO,CAACK,SAApB,EAA+B,KAA/B,CAAD,EAAwCG,SAAxC,CAAnB,EAAuE,MAAM,IAAIb,mBAAJ,CAAwB,kBAAxB,CAAN;AAEvEC,IAAAA,OAAO,CAACO,GAAR,CAAY,IAAZ,EAAkB;AAChBE,MAAAA,SAAS,EAAE,QAAOE,QAAP,CAAgBP,OAAO,CAACK,SAAxB,IAAqCL,OAAO,CAACK,SAA7C,GAAyD,QAAOI,IAAP,CAAYT,OAAO,CAACK,SAApB,EAA+B,KAA/B,CADpD;AAEhBD,MAAAA,SAAS,EAAEJ,OAAO,CAACI;AAFH,KAAlB;AAID,GA5BgC;;AA6BjCM,EAAAA,KAAK,EAAE;AAAER,IAAAA,IAAI,EAAE;AAAR,GA7B0B;AA8BjCS,EAAAA,OAAO,EAAE;AACPpB,IAAAA,IAAI,CAAEqB,IAAF,EAAQ;AACV,UAAI,KAAKV,IAAT,EAAe,MAAM,IAAIP,mBAAJ,CAAwB,uEAAxB,CAAN;AACf,aAAOkB,OAAO,CAACC,OAAR,CAAgBvB,IAAI,CAACqB,IAAD,EAAOhB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBV,SAAzB,CAApB,CAAP;AACD,KAJM;;AAKPW,IAAAA,OAAO,GAAI;AACT,aAAOH,OAAO,CAACC,OAAR,CAAgBlB,OAAO,CAACmB,GAAR,CAAY,IAAZ,EAAkBX,SAAlC,CAAP;AACD;;AAPM;AA9BwB,CAApB,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 * Memory Account module\n * @module @aeternity/aepp-sdk/es/account/memory\n * @export MemoryAccount\n * @example import { MemoryAccount } from '@aeternity/aepp-sdk'\n */\n\nimport AccountBase from './base'\nimport { sign, isValidKeypair } from '../utils/crypto'\nimport { isHex } from '../utils/string'\nimport { decode } from '../tx/builder/helpers'\nimport { InvalidKeypairError } from '../utils/errors'\n\nconst secrets = new WeakMap()\n\n/**\n * In-memory account stamp\n * @function\n * @alias module:@aeternity/aepp-sdk/es/account/memory\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Object} options.keypair - Key pair to use\n * @param {String} options.keypair.publicKey - Public key\n * @param {String} options.keypair.secretKey - Private key\n * @return {Account}\n */\nexport default AccountBase.compose({\n init ({ keypair, gaId }) {\n this.isGa = !!gaId\n if (gaId) {\n decode(gaId)\n secrets.set(this, { publicKey: gaId })\n return\n }\n\n if (!keypair || typeof keypair !== 'object') throw new InvalidKeypairError('KeyPair must be an object')\n if (!keypair.secretKey || !keypair.publicKey) {\n throw new InvalidKeypairError('KeyPair must must have \"secretKey\", \"publicKey\" properties')\n }\n if (typeof keypair.publicKey !== 'string' || keypair.publicKey.indexOf('ak_') === -1) {\n throw new InvalidKeypairError('Public Key must be a base58c string with \"ak_\" prefix')\n }\n if (\n !Buffer.isBuffer(keypair.secretKey) &&\n (typeof keypair.secretKey === 'string' && !isHex(keypair.secretKey))\n ) throw new InvalidKeypairError('Secret key must be hex string or Buffer')\n\n const pubBuffer = Buffer.from(decode(keypair.publicKey, 'ak'))\n if (!isValidKeypair(Buffer.from(keypair.secretKey, 'hex'), pubBuffer)) throw new InvalidKeypairError('Invalid Key Pair')\n\n secrets.set(this, {\n secretKey: Buffer.isBuffer(keypair.secretKey) ? keypair.secretKey : Buffer.from(keypair.secretKey, 'hex'),\n publicKey: keypair.publicKey\n })\n },\n props: { isGa: false },\n methods: {\n sign (data) {\n if (this.isGa) throw new InvalidKeypairError('You are trying to sign data using generalized account without keypair')\n return Promise.resolve(sign(data, secrets.get(this).secretKey))\n },\n address () {\n return Promise.resolve(secrets.get(this).publicKey)\n }\n }\n})\n"],"file":"memory.mjs"}
@@ -20,10 +20,11 @@
20
20
  * @module @aeternity/aepp-sdk/es/accounts/multiple
21
21
  * @export AccountMultiple
22
22
  */
23
- import AsyncInit from '../utils/async-init';
24
- import MemoryAccount from './memory';
25
- import { decode } from '../tx/builder/helpers';
26
- import AccountBase, { isAccountBase } from './base';
23
+ import AsyncInit from "../utils/async-init.mjs";
24
+ import MemoryAccount from "./memory.mjs";
25
+ import { decode } from "../tx/builder/helpers.mjs";
26
+ import AccountBase, { isAccountBase } from "./base.mjs";
27
+ import { UnavailableAccountError, TypeError } from "../utils/errors.mjs";
27
28
  /**
28
29
  * AccountMultiple stamp
29
30
  *
@@ -39,7 +40,9 @@ import AccountBase, { isAccountBase } from './base';
39
40
  * @param {String} [options.address] - Address of account to select
40
41
  * @return {Object} AccountMultiple instance
41
42
  * @example
42
- * const accounts = await AccountMultiple({ accounts: [ MemmoryAccount({ keypair: 'keypair_object' }) ] })
43
+ * const accounts = await AccountMultiple({
44
+ * accounts: [MemoryAccount({ keypair: 'keypair_object' })]
45
+ * })
43
46
  * await accounts.addAccount(account, { select: true }) // Add account and make it selected
44
47
  * accounts.removeAccount(address) // Remove account
45
48
  * accounts.selectAccount(address) // Select account
@@ -140,24 +143,24 @@ export default AccountBase.compose(AsyncInit, {
140
143
  */
141
144
  selectAccount(address) {
142
145
  decode(address, 'ak');
143
- if (!this.accounts[address]) throw new Error(`Account for ${address} not available`);
146
+ if (!this.accounts[address]) throw new UnavailableAccountError(address);
144
147
  this.selectedAddress = address;
145
148
  },
146
149
 
147
150
  /**
148
151
  * Resolves an account
149
- * @param account can be account address (should exist in sdk instance), MemoryAccount or keypair
152
+ * @param account account address (should exist in sdk instance), MemoryAccount or keypair
150
153
  * @returns {AccountBase}
151
154
  * @private
152
155
  */
153
156
  _resolveAccount(account) {
154
157
  if (account === null) {
155
- throw new Error('No account or wallet configured');
158
+ throw new TypeError('Account should be an address (ak-prefixed string), ' + 'keypair, or instance of account base, got null instead');
156
159
  } else {
157
160
  switch (typeof account) {
158
161
  case 'string':
159
162
  decode(account, 'ak');
160
- if (!this.accounts[account]) throw new Error(`Account for ${account} not available`);
163
+ if (!this.accounts[account]) throw new UnavailableAccountError(account);
161
164
  return this.accounts[account];
162
165
 
163
166
  case 'object':
@@ -166,11 +169,11 @@ export default AccountBase.compose(AsyncInit, {
166
169
  });
167
170
 
168
171
  default:
169
- throw new Error(`Unknown account type: ${typeof account} (account: ${account})`);
172
+ throw new TypeError('Account should be an address (ak-prefixed string), ' + `keypair, or instance of account base, got ${account} instead`);
170
173
  }
171
174
  }
172
175
  }
173
176
 
174
177
  }
175
178
  });
176
- //# sourceMappingURL=multiple.js.map
179
+ //# sourceMappingURL=multiple.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/multiple.js"],"names":["AsyncInit","MemoryAccount","decode","AccountBase","isAccountBase","UnavailableAccountError","TypeError","compose","init","accounts","address","Object","fromEntries","Promise","all","map","a","keys","selectAccount","props","deepProps","selectedAddress","methods","onAccount","_resolveAccount","sign","data","addresses","addAccount","account","select","removeAccount","console","warn","keypair"],"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 * AccountMultiple module\n * @module @aeternity/aepp-sdk/es/accounts/multiple\n * @export AccountMultiple\n */\n\nimport AsyncInit from '../utils/async-init'\nimport MemoryAccount from './memory'\nimport { decode } from '../tx/builder/helpers'\nimport AccountBase, { isAccountBase } from './base'\nimport {\n UnavailableAccountError,\n TypeError\n} from '../utils/errors'\n\n/**\n * AccountMultiple stamp\n *\n * The purpose of this stamp is to wrap up implementations of\n * {@link module:@aeternity/aepp-sdk/es/account/base--AccountBase} objects and provide a\n * common interface to all of them. List are a substantial part of\n * {@link module:@aeternity/aepp-sdk/es/ae/wallet--Wallet}s.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Array} [options.accounts] - Accounts array\n * @param {String} [options.address] - Address of account to select\n * @return {Object} AccountMultiple instance\n * @example\n * const accounts = await AccountMultiple({\n * accounts: [MemoryAccount({ keypair: 'keypair_object' })]\n * })\n * await accounts.addAccount(account, { select: true }) // Add account and make it selected\n * accounts.removeAccount(address) // Remove account\n * accounts.selectAccount(address) // Select account\n * accounts.addresses() // Get available accounts\n */\nexport default AccountBase.compose(AsyncInit, {\n async init ({ accounts = [], address }) {\n this.accounts = Object.fromEntries(await Promise.all(\n accounts.map(async a => [await a.address(), a])\n ))\n address = address || Object.keys(this.accounts)[0]\n if (address) this.selectAccount(address)\n },\n props: {\n accounts: {}\n },\n deepProps: {\n selectedAddress: null\n },\n methods: {\n async address ({ onAccount = this.selectedAddress } = {}) {\n return this._resolveAccount(onAccount).address()\n },\n async sign (data, { onAccount = this.selectedAddress } = {}) {\n return this._resolveAccount(onAccount).sign(data)\n },\n /**\n * Get accounts addresses\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @rtype () => String[]\n * @return {String[]}\n * @example addresses()\n */\n addresses () {\n return Object.keys(this.accounts)\n },\n /**\n * Add specific account\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @category async\n * @rtype (account: Account, { select: Boolean }) => void\n * @param {Object} account - Account instance\n * @param {Object} [options={}] - Options\n * @param {Boolean} [options.select] - Select account\n * @return {void}\n * @example addAccount(account)\n */\n async addAccount (account, { select } = {}) {\n const address = await account.address()\n this.accounts[address] = account\n if (select) this.selectAccount(address)\n },\n /**\n * Remove specific account\n * @alias module:@aeternity/aepp-sdk/es/accounts/multiple\n * @function\n * @rtype (address: String) => void\n * @param {String} address - Address of account to remove\n * @return {void}\n * @example removeAccount(address)\n */\n removeAccount (address) {\n if (!this.accounts[address]) {\n console.warn(`removeAccount: Account for ${address} not available`)\n return\n }\n delete this.accounts[address]\n if (this.selectedAddress === address) this.selectedAddress = null\n },\n /**\n * Select specific account\n * @alias module:@aeternity/aepp-sdk/es/account/selector\n * @instance\n * @rtype (address: String) => void\n * @param {String} address - Address of account to select\n * @example selectAccount('ak_xxxxxxxx')\n */\n selectAccount (address) {\n decode(address, 'ak')\n if (!this.accounts[address]) throw new UnavailableAccountError(address)\n this.selectedAddress = address\n },\n /**\n * Resolves an account\n * @param account account address (should exist in sdk instance), MemoryAccount or keypair\n * @returns {AccountBase}\n * @private\n */\n _resolveAccount (account) {\n if (account === null) {\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n 'keypair, or instance of account base, got null instead')\n } else {\n switch (typeof account) {\n case 'string':\n decode(account, 'ak')\n if (!this.accounts[account]) throw new UnavailableAccountError(account)\n return this.accounts[account]\n case 'object':\n return isAccountBase(account) ? account : MemoryAccount({ keypair: account })\n default:\n throw new TypeError(\n 'Account should be an address (ak-prefixed string), ' +\n `keypair, or instance of account base, got ${account} instead`)\n }\n }\n }\n }\n})\n"],"file":"multiple.mjs"}
@@ -25,10 +25,11 @@
25
25
  * @export Aens
26
26
  * @example import { Aens } from '@aeternity/aepp-sdk'
27
27
  */
28
- import { salt } from '../utils/crypto';
29
- import { commitmentHash, ensureNameValid, getMinimumNameFee, classify, isAuctionName, validatePointers, encode, produceNameId } from '../tx/builder/helpers';
30
- import Ae from './';
31
- import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema';
28
+ import { salt } from "../utils/crypto.mjs";
29
+ import { commitmentHash, ensureNameValid, isAuctionName } from "../tx/builder/helpers.mjs";
30
+ import Ae from "./index.mjs";
31
+ import { CLIENT_TTL, NAME_TTL } from "../tx/builder/schema.mjs";
32
+ import { ArgumentError } from "../utils/errors.mjs";
32
33
  /**
33
34
  * Revoke a name
34
35
  * @instance
@@ -37,11 +38,11 @@ import { CLIENT_TTL, NAME_FEE, NAME_TTL } from '../tx/builder/schema';
37
38
  * @category async
38
39
  * @param {String} name Name hash
39
40
  * @param {Object} [options={}] options
40
- * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
41
- * using provided KeyPair(Can be keypair object or MemoryAccount)
42
- * @param {(Number|String|BigNumber)} [options.fee] fee
43
- * @param {(Number|String|BigNumber)} [options.ttl] ttl
44
- * @param {(Number|String|BigNumber)} [options.nonce] nonce
41
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
42
+ * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
43
+ * @param {Number|String|BigNumber} [options.fee] fee
44
+ * @param {Number|String|BigNumber} [options.ttl] ttl
45
+ * @param {Number|String|BigNumber} [options.nonce] nonce
45
46
  * @return {Promise<Object>} Transaction result
46
47
  * @example
47
48
  * const name = 'test.chain'
@@ -59,7 +60,7 @@ async function revoke(name) {
59
60
  ...options
60
61
  };
61
62
  const nameRevokeTx = await this.nameRevokeTx({ ...opt,
62
- nameId: produceNameId(name),
63
+ nameId: name,
63
64
  accountId: await this.address(opt)
64
65
  });
65
66
  return this.send(nameRevokeTx, opt);
@@ -71,16 +72,19 @@ async function revoke(name) {
71
72
  * @category async
72
73
  * @alias module:@aeternity/aepp-sdk/es/ae/aens
73
74
  * @param {String} name AENS name
74
- * @param {String[]} pointers Array of name pointers. Can be oracle|account|contract|channel public key
75
+ * @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses
75
76
  * @param {Object} [options={}]
76
- * @param {Boolean} [options.extendPointers=false] extendPointers Get the pointers from the node and merge with provided one. Pointers with the same type will be overwrited
77
- * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
78
- * using provided KeyPair(Can be keypair object or MemoryAccount)
79
- * @param {(Number|String|BigNumber)} [options.fee] fee
80
- * @param {(Number|String|BigNumber)} [options.ttl] ttl
81
- * @param {(Number|String|BigNumber)} [options.nonce] nonce
82
- * @param {(Number|String|BigNumber)} [options.nameTtl=50000] nameTtl Name ttl represented in number of blocks (Max value is 50000 blocks)
83
- * @param {(Number|String|BigNumber)} [options.clientTtl=84600] clientTtl a suggestion as to how long any clients should cache this information
77
+ * @param {Boolean} [options.extendPointers] Get the pointers from the node and merge with provided
78
+ * ones. Pointers with the same type will be overwritten
79
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you
80
+ * pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
81
+ * @param {Number|String|BigNumber} [options.fee] fee
82
+ * @param {Number|String|BigNumber} [options.ttl] ttl
83
+ * @param {Number|String|BigNumber} [options.nonce] nonce
84
+ * @param {Number|String|BigNumber} [options.nameTtl=50000] Name ttl represented in number of
85
+ * blocks (Max value is 50000 blocks)
86
+ * @param {Number|String|BigNumber} [options.clientTtl=84600] a suggestion as to how long any
87
+ * clients should cache this information
84
88
  * @return {Promise<Object>}
85
89
  * @throws Invalid pointer array error
86
90
  * @example
@@ -90,25 +94,36 @@ async function revoke(name) {
90
94
  *
91
95
  * await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
92
96
  * // or
93
- * await nameObject.update(pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })
97
+ * await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })
94
98
  */
95
99
 
96
100
 
97
101
  async function update(name) {
98
- let pointers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
99
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
100
- extendPointers: false
101
- };
102
+ let pointers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
103
+ let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
102
104
  ensureNameValid(name);
103
105
  const opt = { ...this.Ae.defaults,
104
106
  ...options
105
107
  };
106
- if (!validatePointers(pointers)) throw new Error('Invalid pointers array');
107
- pointers = [...(options.extendPointers ? (await this.getName(name)).pointers : []), ...pointers.map(p => Object.fromEntries([['id', p], ['key', classify(p)]]))].reduce((acc, el) => [...acc.filter(p => p.key !== el.key), el], []);
108
+ const allPointers = { ...(options.extendPointers && Object.fromEntries((await this.getName(name)).pointers.map(_ref => {
109
+ let {
110
+ key,
111
+ id
112
+ } = _ref;
113
+ return [key, id];
114
+ }))),
115
+ ...pointers
116
+ };
108
117
  const nameUpdateTx = await this.nameUpdateTx({ ...opt,
109
- nameId: produceNameId(name),
118
+ nameId: name,
110
119
  accountId: await this.address(opt),
111
- pointers
120
+ pointers: Object.entries(allPointers).map(_ref2 => {
121
+ let [key, id] = _ref2;
122
+ return {
123
+ key,
124
+ id
125
+ };
126
+ })
112
127
  });
113
128
  return this.send(nameUpdateTx, opt);
114
129
  }
@@ -121,11 +136,11 @@ async function update(name) {
121
136
  * @param {String} name AENS name
122
137
  * @param {String} account Recipient account publick key
123
138
  * @param {Object} [options={}]
124
- * @param {(String|Object)} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
125
- * using provided KeyPair(Can be keypair object or MemoryAccount)
126
- * @param {(Number|String|BigNumber)} [options.fee] fee
127
- * @param {(Number|String|BigNumber)} [options.ttl] ttl
128
- * @param {(Number|String|BigNumber)} [options.nonce] nonce
139
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
140
+ * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
141
+ * @param {Number|String|BigNumber} [options.fee] fee
142
+ * @param {Number|String|BigNumber} [options.ttl] ttl
143
+ * @param {Number|String|BigNumber} [options.nonce] nonce
129
144
  * @return {Promise<Object>} Transaction result
130
145
  * @example
131
146
  * const name = 'test.chain'
@@ -145,7 +160,7 @@ async function transfer(name, account) {
145
160
  ...options
146
161
  };
147
162
  const nameTransferTx = await this.nameTransferTx({ ...opt,
148
- nameId: produceNameId(name),
163
+ nameId: name,
149
164
  accountId: await this.address(opt),
150
165
  recipientId: account
151
166
  });
@@ -183,8 +198,7 @@ async function query(name) {
183
198
  const o = await this.getName(name);
184
199
  return Object.freeze(Object.assign(o, {
185
200
  pointers: o.pointers || [],
186
- update: async function () {
187
- let pointers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
201
+ update: async function (pointers) {
188
202
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
189
203
  return { ...(await _this.aensUpdate(name, pointers, { ...opt,
190
204
  ...options
@@ -209,10 +223,15 @@ async function query(name) {
209
223
  extendTtl: async function () {
210
224
  let nameTtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NAME_TTL;
211
225
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
212
- if (!nameTtl || typeof nameTtl !== 'number' || nameTtl > NAME_TTL) throw new Error('Ttl must be an number and less then 180000 blocks');
213
- return { ...(await _this.aensUpdate(name, o.pointers.map(p => p.id), { ...opt,
226
+
227
+ if (typeof nameTtl !== 'number' || nameTtl > NAME_TTL || nameTtl <= 0) {
228
+ throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, nameTtl);
229
+ }
230
+
231
+ return { ...(await _this.aensUpdate(name, {}, { ...opt,
214
232
  ...options,
215
- nameTtl
233
+ nameTtl,
234
+ extendPointers: true
216
235
  })),
217
236
  ...(await _this.aensQuery(name))
218
237
  };
@@ -229,8 +248,8 @@ async function query(name) {
229
248
  * @param {String} name
230
249
  * @param {Number} salt Salt from pre-claim, or 0 if it's a bid
231
250
  * @param {Object} [options] options
232
- * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
233
- * using provided KeyPair(Can be keypair object or MemoryAccount)
251
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
252
+ * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
234
253
  * @param {Number|String|BigNumber} [options.fee] fee
235
254
  * @param {Number|String|BigNumber} [options.ttl] ttl
236
255
  * @param {Number|String|BigNumber} [options.nonce] nonce
@@ -249,17 +268,10 @@ async function claim(name, salt, options) {
249
268
  const opt = { ...this.Ae.defaults,
250
269
  ...options
251
270
  };
252
- const minNameFee = getMinimumNameFee(name);
253
-
254
- if (opt.nameFee !== this.Ae.defaults.nameFee && minNameFee.gt(opt.nameFee)) {
255
- throw new Error(`the provided fee ${opt.nameFee} is not enough to execute the claim, required: ${minNameFee}`);
256
- }
257
-
258
- opt.nameFee = opt.nameFee !== this.Ae.defaults.nameFee ? opt.nameFee : minNameFee;
259
271
  const claimTx = await this.nameClaimTx({ ...opt,
260
272
  accountId: await this.address(opt),
261
273
  nameSalt: salt,
262
- name: encode(name, 'nm')
274
+ name
263
275
  });
264
276
  const result = await this.send(claimTx, opt);
265
277
 
@@ -280,8 +292,8 @@ async function claim(name, salt, options) {
280
292
  * @alias module:@aeternity/aepp-sdk/es/ae/aens
281
293
  * @param {String} name
282
294
  * @param {Object} [options={}]
283
- * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
284
- * using provided KeyPair(Can be keypair object or MemoryAccount)
295
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
296
+ * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
285
297
  * @param {Number|String|BigNumber} [options.fee] fee
286
298
  * @param {Number|String|BigNumber} [options.ttl] ttl
287
299
  * @param {Number|String|BigNumber} [options.nonce] nonce
@@ -334,8 +346,8 @@ async function preclaim(name) {
334
346
  * @param {String} name Domain name
335
347
  * @param {String|Number} nameFee Name fee (bid fee)
336
348
  * @param {Object} [options={}]
337
- * @param {String|Object} [options.onAccount] onAccount Make operation on specific account from sdk(you pass publickKey) or
338
- * using provided KeyPair(Can be keypair object or MemoryAccount)
349
+ * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass
350
+ * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)
339
351
  * @param {Number|String|BigNumber} [options.fee] fee
340
352
  * @param {Number|String|BigNumber} [options.ttl] ttl
341
353
  * @param {Number|String|BigNumber} [options.nonce] nonce
@@ -348,8 +360,7 @@ async function preclaim(name) {
348
360
  */
349
361
 
350
362
 
351
- async function bid(name) {
352
- let nameFee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NAME_FEE;
363
+ async function bid(name, nameFee) {
353
364
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
354
365
  return this.aensClaim(name, 0, { ...options,
355
366
  nameFee,
@@ -383,12 +394,11 @@ const Aens = Ae.compose({
383
394
  Ae: {
384
395
  defaults: {
385
396
  clientTtl: CLIENT_TTL,
386
- nameTtl: NAME_TTL,
387
- // aec_governance:name_claim_max_expiration() => 50000
388
- nameFee: NAME_FEE
397
+ nameTtl: NAME_TTL // aec_governance:name_claim_max_expiration() => 50000
398
+
389
399
  }
390
400
  }
391
401
  }
392
402
  });
393
403
  export default Aens;
394
- //# sourceMappingURL=aens.js.map
404
+ //# sourceMappingURL=aens.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ae/aens.js"],"names":["salt","commitmentHash","ensureNameValid","isAuctionName","Ae","CLIENT_TTL","NAME_TTL","ArgumentError","revoke","name","options","opt","defaults","nameRevokeTx","nameId","accountId","address","send","update","pointers","allPointers","extendPointers","Object","fromEntries","getName","map","key","id","nameUpdateTx","entries","transfer","account","nameTransferTx","recipientId","query","o","freeze","assign","aensUpdate","aensQuery","aensTransfer","aensRevoke","extendTtl","nameTtl","claim","claimTx","nameClaimTx","nameSalt","result","nameInter","waitMined","nameFee","preclaim","_salt","height","commitmentId","preclaimTx","namePreclaimTx","aensClaim","onAccount","bid","vsn","Aens","compose","methods","aensPreclaim","aensBid","deepProps","clientTtl"],"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 * Aens module - routines to interact with the æternity naming system\n *\n * The high-level description of the naming system is\n * https://github.com/aeternity/protocol/blob/master/AENS.md in the protocol\n * repository.\n * @module @aeternity/aepp-sdk/es/ae/aens\n * @export Aens\n * @example import { Aens } from '@aeternity/aepp-sdk'\n */\n\nimport { salt } from '../utils/crypto'\nimport { commitmentHash, ensureNameValid, isAuctionName } from '../tx/builder/helpers'\nimport Ae from './'\nimport { CLIENT_TTL, NAME_TTL } from '../tx/builder/schema'\nimport { ArgumentError } from '../utils/errors'\n\n/**\n * Revoke a name\n * @instance\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @category async\n * @param {String} name Name hash\n * @param {Object} [options={}] options\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensRevoke(name, { fee, ttl , nonce })\n * // or\n * await nameObject.revoke({ fee, ttl, nonce })\n */\nasync function revoke (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameRevokeTx = await this.nameRevokeTx({\n ...opt,\n nameId: name,\n accountId: await this.address(opt)\n })\n\n return this.send(nameRevokeTx, opt)\n}\n\n/**\n * Update a name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {Object.<string, string>} pointers Map of pointer keys to corresponding addresses\n * @param {Object} [options={}]\n * @param {Boolean} [options.extendPointers] Get the pointers from the node and merge with provided\n * ones. Pointers with the same type will be overwritten\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you\n * pass publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @param {Number|String|BigNumber} [options.nameTtl=50000] Name ttl represented in number of\n * blocks (Max value is 50000 blocks)\n * @param {Number|String|BigNumber} [options.clientTtl=84600] a suggestion as to how long any\n * clients should cache this information\n * @return {Promise<Object>}\n * @throws Invalid pointer array error\n * @example\n * const name = 'test.chain'\n * const pointersArray = ['ak_asd23dasdas...,' 'ct_asdf34fasdasd...']\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensUpdate(name, pointersArray, { nameTtl, ttl, fee, nonce, clientTtl })\n * // or\n * await nameObject.update(pointers, { nameTtl, ttl, fee, nonce, clientTtl })\n */\nasync function update (name, pointers = {}, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n const allPointers = {\n ...options.extendPointers && Object.fromEntries(\n (await this.getName(name)).pointers.map(({ key, id }) => [key, id])\n ),\n ...pointers\n }\n\n const nameUpdateTx = await this.nameUpdateTx({\n ...opt,\n nameId: name,\n accountId: await this.address(opt),\n pointers: Object.entries(allPointers).map(([key, id]) => ({ key, id }))\n })\n\n return this.send(nameUpdateTx, opt)\n}\n\n/**\n * Transfer a domain to another account\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name AENS name\n * @param {String} account Recipient account publick key\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const recipientPub = 'ak_asd23dasdas...'\n * const nameObject = await sdkInstance.aensQuery(name)\n *\n * await sdkInstance.aensTransfer(name, recipientPub, { ttl, fee, nonce })\n * // or\n * await nameObject.transfer(recipientPub, { ttl, fee, nonce })\n */\nasync function transfer (name, account, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const nameTransferTx = await this.nameTransferTx({\n ...opt,\n nameId: name,\n accountId: await this.address(opt),\n recipientId: account\n })\n\n return this.send(nameTransferTx, opt)\n}\n\n/**\n * Query the AENS name info from the node\n * and return the object with info and predefined functions for manipulating name\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} opt Options\n * @return {Promise<Object>}\n * @example\n * const nameObject = sdkInstance.aensQuery('test.chain')\n * console.log(nameObject)\n * {\n * id, // name hash\n * pointers, // array of pointers\n * update, // Update name function\n * extendTtl, // Extend Ttl name function\n * transfer, // Transfer name function\n * revoke // Revoke name function\n * }\n */\nasync function query (name, opt = {}) {\n ensureNameValid(name)\n const o = await this.getName(name)\n\n return Object.freeze(Object.assign(o, {\n pointers: o.pointers || [],\n update: async (pointers, options = {}) => {\n return {\n ...(await this.aensUpdate(name, pointers, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n transfer: async (account, options = {}) => {\n return {\n ...(await this.aensTransfer(name, account, { ...opt, ...options })),\n ...(await this.aensQuery(name))\n }\n },\n revoke: async (options = {}) => this.aensRevoke(name, { ...opt, ...options }),\n extendTtl: async (nameTtl = NAME_TTL, options = {}) => {\n if (typeof nameTtl !== 'number' || nameTtl > NAME_TTL || nameTtl <= 0) {\n throw new ArgumentError('nameTtl', `a number between 1 and ${NAME_TTL} blocks`, nameTtl)\n }\n\n return {\n ...await this.aensUpdate(name, {}, { ...opt, ...options, nameTtl, extendPointers: true }),\n ...await this.aensQuery(name)\n }\n }\n }))\n}\n\n/**\n * Claim a previously preclaimed registration. This can only be done after the\n * preclaim step\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Number} salt Salt from pre-claim, or 0 if it's a bid\n * @param {Object} [options] options\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @param {Number|String} [options.nameFee] Name Fee (By default calculated by sdk)\n * @return {Promise<Object>} the result of the claim\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensClaim(name, salt, { ttl, fee, nonce, nameFee })\n */\nasync function claim (name, salt, options) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n\n const claimTx = await this.nameClaimTx({\n ...opt,\n accountId: await this.address(opt),\n nameSalt: salt,\n name\n })\n\n const result = await this.send(claimTx, opt)\n if (!isAuctionName(name)) {\n const nameInter = opt.waitMined ? await this.aensQuery(name, opt) : {}\n return Object.assign(result, nameInter)\n }\n return { ...result, nameFee: opt.nameFee }\n}\n\n/**\n * Preclaim a name. Sends a hash of the name and a random salt to the node\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>}\n * @example\n * const name = 'test.chain'\n * const salt = preclaimResult.salt // salt from pre-claim transaction\n *\n * await sdkInstance.aensPreclaim(name, { ttl, fee, nonce })\n * {\n * ...transactionResult,\n * claim, // Claim function (options={}) => claimTransactionResult\n * salt,\n * commitmentId\n * }\n */\nasync function preclaim (name, options = {}) {\n ensureNameValid(name)\n const opt = { ...this.Ae.defaults, ...options }\n const _salt = salt()\n const height = await this.height()\n const commitmentId = commitmentHash(name, _salt)\n\n const preclaimTx = await this.namePreclaimTx({\n ...opt,\n accountId: await this.address(opt),\n commitmentId\n })\n\n const result = await this.send(preclaimTx, opt)\n\n return Object.freeze({\n ...result,\n height,\n claim: options => this.aensClaim(name, _salt, { ...options, onAccount: opt.onAccount }),\n salt: _salt,\n commitmentId\n })\n}\n\n/**\n * Bid to name auction\n * @instance\n * @function\n * @category async\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @param {String} name Domain name\n * @param {String|Number} nameFee Name fee (bid fee)\n * @param {Object} [options={}]\n * @param {String|Object} [options.onAccount] Make operation on specific account from sdk (you pass\n * publickKey) or using provided KeyPair(Can be keypair object or MemoryAccount)\n * @param {Number|String|BigNumber} [options.fee] fee\n * @param {Number|String|BigNumber} [options.ttl] ttl\n * @param {Number|String|BigNumber} [options.nonce] nonce\n * @return {Promise<Object>} Transaction result\n * @example\n * const name = 'test.chain'\n * const bidFee = computeBidFee(name, startFee, incrementPercentage)\n *\n * await sdkInstance.aensBid(name, 213109412839123, { ttl, fee, nonce })\n */\nasync function bid (name, nameFee, options = {}) {\n return this.aensClaim(name, 0, { ...options, nameFee, vsn: 2 })\n}\n\n/**\n * Aens Stamp\n *\n * Aens provides name-system related methods atop\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aens\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Aens instance\n */\nconst Aens = Ae.compose({\n methods: {\n aensQuery: query,\n aensPreclaim: preclaim,\n aensClaim: claim,\n aensUpdate: update,\n aensTransfer: transfer,\n aensRevoke: revoke,\n aensBid: bid\n },\n deepProps: {\n Ae: {\n defaults: {\n clientTtl: CLIENT_TTL,\n nameTtl: NAME_TTL // aec_governance:name_claim_max_expiration() => 50000\n }\n }\n }\n})\n\nexport default Aens\n"],"file":"aens.mjs"}
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
3
+ * Copyright (c) 2021 aeternity developers
4
4
  *
5
5
  * Permission to use, copy, modify, and/or distribute this software for any
6
6
  * purpose with or without fee is hereby granted, provided that the above
@@ -21,13 +21,13 @@
21
21
  * @export Aepp
22
22
  * @example import { RpcAepp } from '@aeternity/aepp-sdk'
23
23
  */
24
- import Ae from './';
25
- import Aens from './aens';
26
- import { ContractWithCompiler as Contract } from './contract';
27
- import AeppRpc from '../utils/aepp-wallet-communication/rpc/aepp-rpc';
28
- import Chain from '../chain/node';
29
- import Tx from '../tx/tx';
30
- import Oracle from './oracle';
24
+ import Ae from "./index.mjs";
25
+ import Aens from "./aens.mjs";
26
+ import Contract from "./contract.mjs";
27
+ import AeppRpc from "../utils/aepp-wallet-communication/rpc/aepp-rpc.mjs";
28
+ import Chain from "../chain/node.mjs";
29
+ import Tx from "../tx/tx.mjs";
30
+ import Oracle from "./oracle.mjs";
31
31
  /**
32
32
  * Aepp Stamp
33
33
  *
@@ -42,4 +42,4 @@ import Oracle from './oracle';
42
42
  */
43
43
 
44
44
  export default Ae.compose(Tx, Oracle, Contract, Aens, Chain, AeppRpc);
45
- //# sourceMappingURL=aepp.js.map
45
+ //# sourceMappingURL=aepp.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ae/aepp.js"],"names":["Ae","Aens","Contract","AeppRpc","Chain","Tx","Oracle","compose"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;OAEOA,E;OACAC,I;OACAC,Q;OACAC,O;OACAC,K;OACAC,E;OACAC,M;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeN,EAAE,CAACO,OAAH,CAAWF,EAAX,EAAeC,MAAf,EAAuBJ,QAAvB,EAAiCD,IAAjC,EAAuCG,KAAvC,EAA8CD,OAA9C,CAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2021 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 * Aepp module\n * @module @aeternity/aepp-sdk/es/ae/aepp\n * @export Aepp\n * @example import { RpcAepp } from '@aeternity/aepp-sdk'\n */\n\nimport Ae from './'\nimport Aens from './aens'\nimport Contract from './contract'\nimport AeppRpc from '../utils/aepp-wallet-communication/rpc/aepp-rpc'\nimport Chain from '../chain/node'\nimport Tx from '../tx/tx'\nimport Oracle from './oracle'\n\n/**\n * Aepp Stamp\n *\n * Aepp provides base functionality.\n * Expected to use this stamp with a Wallet.\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/ae/aepp\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Aepp instance\n */\nexport default Ae.compose(Tx, Oracle, Contract, Aens, Chain, AeppRpc)\n"],"file":"aepp.mjs"}