@aeternity/aepp-sdk 10.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) 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} +20 -10
  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} +10 -9
  14. package/es/account/multiple.mjs.map +1 -0
  15. package/es/ae/{aens.js → aens.mjs} +18 -22
  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} +8 -7
  22. package/es/ae/index.mjs.map +1 -0
  23. package/es/ae/{oracle.js → oracle.mjs} +33 -16
  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} +20 -4
  32. package/es/chain/index.mjs.map +1 -0
  33. package/es/chain/{node.js → node.mjs} +121 -73
  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} +7 -7
  38. package/es/channel/index.mjs.map +1 -0
  39. package/es/channel/{internal.js → internal.mjs} +49 -32
  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} +36 -28
  48. package/es/contract/ga/index.mjs.map +1 -0
  49. package/es/errors.d.ts +284 -0
  50. package/es/index.mjs +57 -0
  51. package/es/index.mjs.map +1 -0
  52. package/es/node-pool/{index.js → index.mjs} +11 -10
  53. package/es/node-pool/index.mjs.map +1 -0
  54. package/es/{node.js → node.mjs} +9 -8
  55. package/es/node.mjs.map +1 -0
  56. package/es/tx/builder/field-types.mjs +74 -0
  57. package/es/tx/builder/field-types.mjs.map +1 -0
  58. package/es/tx/builder/{helpers.js → helpers.mjs} +114 -56
  59. package/es/tx/builder/helpers.mjs.map +1 -0
  60. package/es/tx/builder/{index.js → index.mjs} +79 -68
  61. package/es/tx/builder/index.mjs.map +1 -0
  62. package/es/tx/builder/{schema.js → schema.mjs} +11 -65
  63. package/es/tx/builder/schema.mjs.map +1 -0
  64. package/es/tx/{index.js → index.mjs} +5 -2
  65. package/es/tx/index.mjs.map +1 -0
  66. package/es/tx/{tx-object.js → tx-object.mjs} +22 -15
  67. package/es/tx/tx-object.mjs.map +1 -0
  68. package/es/tx/{tx.js → tx.mjs} +15 -14
  69. package/es/tx/tx.mjs.map +1 -0
  70. package/es/tx/{validator.js → validator.mjs} +72 -33
  71. package/es/tx/validator.mjs.map +1 -0
  72. package/es/typings/blakejs/index.d.mjs +2 -0
  73. package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
  74. package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +7 -6
  75. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
  76. package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +10 -11
  77. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
  78. package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +5 -2
  79. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
  80. package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +6 -5
  81. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
  82. package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
  83. package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
  84. package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +113 -67
  85. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
  86. package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +14 -9
  87. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
  88. package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +71 -63
  89. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
  90. package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
  91. package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
  92. package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
  93. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  94. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
  95. package/es/utils/amount-formatter.mjs.map +1 -0
  96. package/es/utils/{async-init.js → async-init.mjs} +8 -11
  97. package/es/utils/async-init.mjs.map +1 -0
  98. package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
  99. package/es/utils/bignumber.mjs.map +1 -0
  100. package/es/utils/{bytes.js → bytes.mjs} +16 -8
  101. package/es/utils/bytes.mjs.map +1 -0
  102. package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
  103. package/es/utils/crypto-ts.mjs.map +1 -0
  104. package/es/utils/{crypto.js → crypto.mjs} +40 -105
  105. package/es/utils/crypto.mjs.map +1 -0
  106. package/es/utils/errors.mjs +689 -0
  107. package/es/utils/errors.mjs.map +1 -0
  108. package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
  109. package/es/utils/hd-wallet.mjs.map +1 -0
  110. package/es/utils/{json-big.js → json-big.mjs} +1 -1
  111. package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
  112. package/es/utils/{keystore.js → keystore.mjs} +63 -51
  113. package/es/utils/keystore.mjs.map +1 -0
  114. package/es/utils/{mptree.js → mptree.mjs} +21 -12
  115. package/es/utils/mptree.mjs.map +1 -0
  116. package/es/utils/{other.js → other.mjs} +2 -2
  117. package/es/utils/other.mjs.map +1 -0
  118. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  119. package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
  120. package/es/utils/{string.js → string.mjs} +1 -1
  121. package/es/utils/{string.js.map → string.mjs.map} +1 -1
  122. package/es/utils/{swagger.js → swagger.mjs} +46 -14
  123. package/es/utils/swagger.mjs.map +1 -0
  124. package/package.json +46 -55
  125. package/src/account/memory.js +13 -8
  126. package/src/account/multiple.js +12 -4
  127. package/src/ae/aens.js +12 -17
  128. package/src/ae/aepp.js +2 -2
  129. package/src/ae/contract.js +15 -152
  130. package/src/ae/index.js +2 -1
  131. package/src/ae/oracle.js +25 -10
  132. package/src/ae/universal.js +2 -2
  133. package/src/ae/wallet.js +2 -2
  134. package/src/chain/index.js +21 -2
  135. package/src/chain/node.js +80 -53
  136. package/src/channel/handlers.js +20 -17
  137. package/src/channel/internal.js +30 -24
  138. package/src/contract/{aci/index.js → aci.js} +152 -93
  139. package/src/contract/compiler.js +22 -117
  140. package/src/contract/ga/helpers.js +7 -5
  141. package/src/contract/ga/index.js +27 -24
  142. package/src/index.js +7 -8
  143. package/src/node-pool/index.js +9 -8
  144. package/src/node.js +5 -7
  145. package/src/tx/builder/field-types.js +61 -0
  146. package/src/tx/builder/helpers.js +113 -58
  147. package/src/tx/builder/index.js +39 -34
  148. package/src/tx/builder/schema.js +11 -25
  149. package/src/tx/tx-object.js +10 -9
  150. package/src/tx/tx.js +17 -8
  151. package/src/tx/validator.js +25 -5
  152. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +8 -3
  153. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +10 -6
  154. package/src/utils/aepp-wallet-communication/content-script-bridge.js +5 -4
  155. package/src/utils/aepp-wallet-communication/helpers.js +2 -12
  156. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +81 -55
  157. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +15 -6
  158. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +60 -49
  159. package/src/utils/aepp-wallet-communication/schema.ts +80 -0
  160. package/src/utils/aepp-wallet-communication/wallet-detector.js +3 -2
  161. package/src/utils/amount-formatter.ts +4 -3
  162. package/src/utils/async-init.js +10 -6
  163. package/src/utils/bignumber.ts +1 -9
  164. package/src/utils/bytes.ts +3 -2
  165. package/src/utils/crypto-ts.ts +2 -2
  166. package/src/utils/crypto.js +9 -92
  167. package/src/utils/errors.ts +683 -0
  168. package/src/utils/hd-wallet.js +11 -26
  169. package/src/utils/keystore.js +47 -51
  170. package/src/utils/mptree.ts +12 -6
  171. package/src/utils/swagger.js +67 -44
  172. package/CHANGELOG.md +0 -1603
  173. package/es/account/base.js.map +0 -1
  174. package/es/account/memory.js.map +0 -1
  175. package/es/account/multiple.js.map +0 -1
  176. package/es/ae/aens.js.map +0 -1
  177. package/es/ae/aepp.js.map +0 -1
  178. package/es/ae/contract.js +0 -312
  179. package/es/ae/contract.js.map +0 -1
  180. package/es/ae/index.js.map +0 -1
  181. package/es/ae/oracle.js.map +0 -1
  182. package/es/ae/universal.js.map +0 -1
  183. package/es/ae/wallet.js.map +0 -1
  184. package/es/chain/index.js.map +0 -1
  185. package/es/chain/node.js.map +0 -1
  186. package/es/channel/handlers.js.map +0 -1
  187. package/es/channel/index.js.map +0 -1
  188. package/es/channel/internal.js.map +0 -1
  189. package/es/contract/aci/helpers.js +0 -298
  190. package/es/contract/aci/helpers.js.map +0 -1
  191. package/es/contract/aci/index.js +0 -361
  192. package/es/contract/aci/index.js.map +0 -1
  193. package/es/contract/aci/transformation.js +0 -66
  194. package/es/contract/aci/transformation.js.map +0 -1
  195. package/es/contract/compiler.js +0 -244
  196. package/es/contract/compiler.js.map +0 -1
  197. package/es/contract/ga/helpers.js +0 -22
  198. package/es/contract/ga/helpers.js.map +0 -1
  199. package/es/contract/ga/index.js.map +0 -1
  200. package/es/contract/index.js +0 -162
  201. package/es/contract/index.js.map +0 -1
  202. package/es/index.js +0 -57
  203. package/es/index.js.map +0 -1
  204. package/es/node-pool/index.js.map +0 -1
  205. package/es/node.js.map +0 -1
  206. package/es/tx/builder/helpers.js.map +0 -1
  207. package/es/tx/builder/index.js.map +0 -1
  208. package/es/tx/builder/schema.js.map +0 -1
  209. package/es/tx/index.js.map +0 -1
  210. package/es/tx/tx-object.js.map +0 -1
  211. package/es/tx/tx.js.map +0 -1
  212. package/es/tx/validator.js.map +0 -1
  213. package/es/typings/blakejs/index.d.js +0 -2
  214. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  215. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  216. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  217. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  218. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  219. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  220. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  221. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  222. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  223. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  224. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  225. package/es/utils/amount-formatter.js.map +0 -1
  226. package/es/utils/async-init.js.map +0 -1
  227. package/es/utils/bignumber.js.map +0 -1
  228. package/es/utils/bytes.js.map +0 -1
  229. package/es/utils/crypto-ts.js.map +0 -1
  230. package/es/utils/crypto.js.map +0 -1
  231. package/es/utils/hd-wallet.js.map +0 -1
  232. package/es/utils/keystore.js.map +0 -1
  233. package/es/utils/mptree.js.map +0 -1
  234. package/es/utils/other.js.map +0 -1
  235. package/es/utils/swagger.js.map +0 -1
  236. package/src/contract/aci/transformation.js +0 -72
  237. package/src/contract/index.js +0 -163
  238. 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,7 +94,7 @@ 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
@@ -102,7 +112,7 @@ async function signMessage(message) {
102
112
 
103
113
  async function verifyMessage(message, signature) {
104
114
  let opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
105
- 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)));
106
116
  }
107
117
  /**
108
118
  * AccountBase Stamp
@@ -166,4 +176,4 @@ export default stampit({
166
176
  * @rtype () => address: Promise[String]
167
177
  * @return {String} Public account address
168
178
  */
169
- //# 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
  *
@@ -142,7 +143,7 @@ export default AccountBase.compose(AsyncInit, {
142
143
  */
143
144
  selectAccount(address) {
144
145
  decode(address, 'ak');
145
- if (!this.accounts[address]) throw new Error(`Account for ${address} not available`);
146
+ if (!this.accounts[address]) throw new UnavailableAccountError(address);
146
147
  this.selectedAddress = address;
147
148
  },
148
149
 
@@ -154,12 +155,12 @@ export default AccountBase.compose(AsyncInit, {
154
155
  */
155
156
  _resolveAccount(account) {
156
157
  if (account === null) {
157
- 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');
158
159
  } else {
159
160
  switch (typeof account) {
160
161
  case 'string':
161
162
  decode(account, 'ak');
162
- if (!this.accounts[account]) throw new Error(`Account for ${account} not available`);
163
+ if (!this.accounts[account]) throw new UnavailableAccountError(account);
163
164
  return this.accounts[account];
164
165
 
165
166
  case 'object':
@@ -168,11 +169,11 @@ export default AccountBase.compose(AsyncInit, {
168
169
  });
169
170
 
170
171
  default:
171
- 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`);
172
173
  }
173
174
  }
174
175
  }
175
176
 
176
177
  }
177
178
  });
178
- //# 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, isAuctionName, 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
@@ -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);
@@ -114,7 +115,7 @@ async function update(name) {
114
115
  ...pointers
115
116
  };
116
117
  const nameUpdateTx = await this.nameUpdateTx({ ...opt,
117
- nameId: produceNameId(name),
118
+ nameId: name,
118
119
  accountId: await this.address(opt),
119
120
  pointers: Object.entries(allPointers).map(_ref2 => {
120
121
  let [key, id] = _ref2;
@@ -159,7 +160,7 @@ async function transfer(name, account) {
159
160
  ...options
160
161
  };
161
162
  const nameTransferTx = await this.nameTransferTx({ ...opt,
162
- nameId: produceNameId(name),
163
+ nameId: name,
163
164
  accountId: await this.address(opt),
164
165
  recipientId: account
165
166
  });
@@ -222,7 +223,11 @@ async function query(name) {
222
223
  extendTtl: async function () {
223
224
  let nameTtl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NAME_TTL;
224
225
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
225
- if (!nameTtl || typeof nameTtl !== 'number' || nameTtl > NAME_TTL) throw new Error('Ttl must be an number and less then 180000 blocks');
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
+
226
231
  return { ...(await _this.aensUpdate(name, {}, { ...opt,
227
232
  ...options,
228
233
  nameTtl,
@@ -263,17 +268,10 @@ async function claim(name, salt, options) {
263
268
  const opt = { ...this.Ae.defaults,
264
269
  ...options
265
270
  };
266
- const minNameFee = getMinimumNameFee(name);
267
-
268
- if (opt.nameFee !== this.Ae.defaults.nameFee && minNameFee.gt(opt.nameFee)) {
269
- throw new Error(`the provided fee ${opt.nameFee} is not enough to execute the claim, required: ${minNameFee}`);
270
- }
271
-
272
- opt.nameFee = opt.nameFee !== this.Ae.defaults.nameFee ? opt.nameFee : minNameFee;
273
271
  const claimTx = await this.nameClaimTx({ ...opt,
274
272
  accountId: await this.address(opt),
275
273
  nameSalt: salt,
276
- name: encode(name, 'nm')
274
+ name
277
275
  });
278
276
  const result = await this.send(claimTx, opt);
279
277
 
@@ -362,8 +360,7 @@ async function preclaim(name) {
362
360
  */
363
361
 
364
362
 
365
- async function bid(name) {
366
- let nameFee = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NAME_FEE;
363
+ async function bid(name, nameFee) {
367
364
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
368
365
  return this.aensClaim(name, 0, { ...options,
369
366
  nameFee,
@@ -397,12 +394,11 @@ const Aens = Ae.compose({
397
394
  Ae: {
398
395
  defaults: {
399
396
  clientTtl: CLIENT_TTL,
400
- nameTtl: NAME_TTL,
401
- // aec_governance:name_claim_max_expiration() => 50000
402
- nameFee: NAME_FEE
397
+ nameTtl: NAME_TTL // aec_governance:name_claim_max_expiration() => 50000
398
+
403
399
  }
404
400
  }
405
401
  }
406
402
  });
407
403
  export default Aens;
408
- //# 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"}
@@ -0,0 +1,159 @@
1
+ import _buffer from "buffer";
2
+ const {
3
+ Buffer: _Buffer
4
+ } = _buffer;
5
+
6
+ /*
7
+ * ISC License (ISC)
8
+ * Copyright (c) 2021 aeternity developers
9
+ *
10
+ * Permission to use, copy, modify, and/or distribute this software for any
11
+ * purpose with or without fee is hereby granted, provided that the above
12
+ * copyright notice and this permission notice appear in all copies.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
15
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
16
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
17
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
18
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
+ * PERFORMANCE OF THIS SOFTWARE.
21
+ */
22
+
23
+ /**
24
+ * Contract module - routines to interact with the æternity contract
25
+ *
26
+ * High level documentation of the contracts are available at
27
+ * https://github.com/aeternity/protocol/tree/master/contracts and
28
+ *
29
+ * @module @aeternity/aepp-sdk/es/ae/contract
30
+ * @export Contract
31
+ * @example import { Contract } from '@aeternity/aepp-sdk'
32
+ */
33
+ import Ae from "./index.mjs";
34
+ import ContractCompilerHttp from "../contract/compiler.mjs";
35
+ import getContractInstance from "../contract/aci.mjs";
36
+ import { AMOUNT, MIN_GAS_PRICE } from "../tx/builder/schema.mjs";
37
+ import { decode, produceNameId } from "../tx/builder/helpers.mjs";
38
+ /**
39
+ * Utility method to create a delegate signature for a contract
40
+ * @function
41
+ * @alias module:@aeternity/aepp-sdk/es/ae/contract
42
+ * @category async
43
+ * @param {String[]} ids The list of id's to prepend
44
+ * @param {Object} [opt={}] options
45
+ * @param {{ onAccount: String | Object }} [opt={}] opt Options
46
+ * @return {Promise<String>} Signature in hex representation
47
+ */
48
+
49
+ async function delegateSignatureCommon() {
50
+ let ids = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
51
+ let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
52
+ const signature = await this.sign(_Buffer.concat([_Buffer.from(this.getNetworkId(opt)), ...ids.map(e => decode(e))]), opt);
53
+ return _Buffer.from(signature).toString('hex');
54
+ }
55
+ /**
56
+ * Helper to generate a signature to delegate pre-claim/claim/transfer/revoke of a name to
57
+ * a contract.
58
+ * @function
59
+ * @alias module:@aeternity/aepp-sdk/es/ae/contract
60
+ * @category async
61
+ * @param {String} contractId Contract Id
62
+ * @param {String} [name] The name
63
+ * @param {{ onAccount: String | Object }} [opt={}] opt Options
64
+ * @return {Promise<String>} Signature for delegation
65
+ * @example
66
+ * const aeSdk = await Universal({ ... })
67
+ * const contractId = 'ct_asd2ks...' // contract address
68
+ * const name = 'example.chain' // AENS name
69
+ * const onAccount = await aeSdk.address() // Sign with a specific account
70
+ * // Preclaim signature
71
+ * const params = { contractId }
72
+ * const preclaimSig = await aeSdk.createAensDelegationSignature(params, { onAccount: current })
73
+ * // Claim, transfer and revoke signature
74
+ * const params = { contractId, name }
75
+ * const aensDelegationSig = await contract.createAensDelegationSignature(
76
+ * params, name, { onAccount: current }
77
+ * )
78
+ */
79
+
80
+
81
+ async function createAensDelegationSignature(_ref) {
82
+ let {
83
+ contractId,
84
+ name
85
+ } = _ref;
86
+ let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
87
+ return this.delegateSignatureCommon([await this.address(opt), ...(name ? [produceNameId(name)] : []), contractId], opt);
88
+ }
89
+ /**
90
+ * Helper to generate a signature to delegate register/extend/respond of a Oracle to a contract.
91
+ * @function
92
+ * @alias module:@aeternity/aepp-sdk/es/ae/contract
93
+ * @category async
94
+ * @param {String} contractId Contract Id
95
+ * @param {String} [queryId] Oracle Query Id
96
+ * @param {{ onAccount: String | Object }} [opt={}] opt Options
97
+ * @return {Promise<String>} Signature for delegation
98
+ * @example
99
+ * const aeSdk = await Universal({ ... })
100
+ * const contractId = 'ct_asd2ks...' // contract address
101
+ * const queryId = 'oq_...' // Oracle Query Id
102
+ * const onAccount = await aeSdk.address() // Sign with a specific account
103
+ * // Oracle register and extend signature
104
+ * const params = { contractId }
105
+ * const oracleDelegationSig = await contract.createOracleDelegationSignature(params, { onAccount })
106
+ * // Oracle respond signature
107
+ * const params = { contractId, queryId }
108
+ * const respondSig = await contract.createOracleDelegationSignature(params, queryId)
109
+ */
110
+
111
+
112
+ async function createOracleDelegationSignature(_ref2) {
113
+ let {
114
+ contractId,
115
+ queryId
116
+ } = _ref2;
117
+ let opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
118
+ return this.delegateSignatureCommon([...(queryId ? [queryId] : []), contractId], opt);
119
+ }
120
+ /**
121
+ * Contract Stamp
122
+ *
123
+ * Provide contract implementation
124
+ * {@link module:@aeternity/aepp-sdk/es/ae--Ae} clients.
125
+ * @function
126
+ * @alias module:@aeternity/aepp-sdk/es/ae/contract
127
+ * @rtype Stamp
128
+ * @param {Object} [options={}] - Initializer object
129
+ * @return {Object} Contract instance
130
+ * @example
131
+ * import { Transaction, MemoryAccount, ChainNode } from '@aeternity/aepp-sdk
132
+ *
133
+ * const ContractWithAE = await Contract
134
+ * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation
135
+ * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })
136
+ *
137
+ */
138
+
139
+
140
+ export default Ae.compose(ContractCompilerHttp, {
141
+ methods: {
142
+ getContractInstance,
143
+ // Delegation for contract
144
+ delegateSignatureCommon,
145
+ // AENS
146
+ createAensDelegationSignature,
147
+ // Oracle
148
+ createOracleDelegationSignature
149
+ },
150
+ deepProps: {
151
+ Ae: {
152
+ defaults: {
153
+ gasPrice: MIN_GAS_PRICE,
154
+ amount: AMOUNT
155
+ }
156
+ }
157
+ }
158
+ });
159
+ //# sourceMappingURL=contract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ae/contract.js"],"names":["Ae","ContractCompilerHttp","getContractInstance","AMOUNT","MIN_GAS_PRICE","decode","produceNameId","delegateSignatureCommon","ids","opt","signature","sign","concat","from","getNetworkId","map","e","toString","createAensDelegationSignature","contractId","name","address","createOracleDelegationSignature","queryId","compose","methods","deepProps","defaults","gasPrice","amount"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;OAEOA,E;OACAC,oB;OACAC,mB;SACEC,M,EAAQC,a;SACRC,M,EAAQC,a;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAeC,uBAAf,GAA4D;AAAA,MAApBC,GAAoB,uEAAd,EAAc;AAAA,MAAVC,GAAU,uEAAJ,EAAI;AAC1D,QAAMC,SAAS,GAAG,MAAM,KAAKC,IAAL,CACtB,QAAOC,MAAP,CAAc,CACZ,QAAOC,IAAP,CAAY,KAAKC,YAAL,CAAkBL,GAAlB,CAAZ,CADY,EAEZ,GAAGD,GAAG,CAACO,GAAJ,CAAQC,CAAC,IAAIX,MAAM,CAACW,CAAD,CAAnB,CAFS,CAAd,CADsB,EAKtBP,GALsB,CAAxB;AAOA,SAAO,QAAOI,IAAP,CAAYH,SAAZ,EAAuBO,QAAvB,CAAgC,KAAhC,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeC,6BAAf,OAA8E;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AAAA,MAAVX,GAAU,uEAAJ,EAAI;AAC5E,SAAO,KAAKF,uBAAL,CACL,CAAC,MAAM,KAAKc,OAAL,CAAaZ,GAAb,CAAP,EAA0B,IAAGW,IAAI,GAAG,CAACd,aAAa,CAACc,IAAD,CAAd,CAAH,GAA2B,EAAlC,CAA1B,EAAgED,UAAhE,CADK,EAELV,GAFK,CAAP;AAID;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAea,+BAAf,QAAmF;AAAA,MAAnC;AAAEH,IAAAA,UAAF;AAAcI,IAAAA;AAAd,GAAmC;AAAA,MAAVd,GAAU,uEAAJ,EAAI;AACjF,SAAO,KAAKF,uBAAL,CAA6B,CAAC,IAAGgB,OAAO,GAAG,CAACA,OAAD,CAAH,GAAe,EAAzB,CAAD,EAA8BJ,UAA9B,CAA7B,EAAwEV,GAAxE,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAeT,EAAE,CAACwB,OAAH,CAAWvB,oBAAX,EAAiC;AAC9CwB,EAAAA,OAAO,EAAE;AACPvB,IAAAA,mBADO;AAEP;AACAK,IAAAA,uBAHO;AAIP;AACAW,IAAAA,6BALO;AAMP;AACAI,IAAAA;AAPO,GADqC;AAU9CI,EAAAA,SAAS,EAAE;AACT1B,IAAAA,EAAE,EAAE;AACF2B,MAAAA,QAAQ,EAAE;AACRC,QAAAA,QAAQ,EAAExB,aADF;AAERyB,QAAAA,MAAM,EAAE1B;AAFA;AADR;AADK;AAVmC,CAAjC,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 * 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 ContractCompilerHttp from '../contract/compiler'\nimport getContractInstance from '../contract/aci'\nimport { AMOUNT, MIN_GAS_PRICE } from '../tx/builder/schema'\nimport { decode, produceNameId } from '../tx/builder/helpers'\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 ...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\n * 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 aeSdk = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const name = 'example.chain' // AENS name\n * const onAccount = await aeSdk.address() // Sign with a specific account\n * // Preclaim signature\n * const params = { contractId }\n * const preclaimSig = await aeSdk.createAensDelegationSignature(params, { onAccount: current })\n * // Claim, transfer and revoke signature\n * const params = { contractId, name }\n * const aensDelegationSig = await contract.createAensDelegationSignature(\n * params, name, { onAccount: current }\n * )\n */\nasync function createAensDelegationSignature ({ contractId, name }, opt = {}) {\n return this.delegateSignatureCommon(\n [await this.address(opt), ...name ? [produceNameId(name)] : [], contractId],\n opt\n )\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 aeSdk = await Universal({ ... })\n * const contractId = 'ct_asd2ks...' // contract address\n * const queryId = 'oq_...' // Oracle Query Id\n * const onAccount = await aeSdk.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, MemoryAccount, ChainNode } from '@aeternity/aepp-sdk\n *\n * const ContractWithAE = await Contract\n * .compose(Transaction, MemoryAccount, ChainNode) // AE implementation\n * const client = await ContractWithAe({ url, internalUrl, compilerUrl, keypair, ... })\n *\n */\nexport default Ae.compose(ContractCompilerHttp, {\n methods: {\n getContractInstance,\n // Delegation for contract\n delegateSignatureCommon,\n // AENS\n createAensDelegationSignature,\n // Oracle\n createOracleDelegationSignature\n },\n deepProps: {\n Ae: {\n defaults: {\n gasPrice: MIN_GAS_PRICE,\n amount: AMOUNT\n }\n }\n }\n})\n"],"file":"contract.mjs"}