@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
@@ -0,0 +1,30 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { MAX_AUTH_FUN_GAS } from "../../tx/builder/schema.mjs";
3
+ import { InvalidAuthDataError } from "../../utils/errors.mjs";
4
+ export const prepareGaParams = ins => async (authData, authFnName) => {
5
+ if (typeof authData !== 'object') throw new InvalidAuthDataError('AuthData must be an object');
6
+
7
+ if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) {
8
+ throw new InvalidAuthDataError(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`);
9
+ }
10
+
11
+ const gas = authData.gas || MAX_AUTH_FUN_GAS;
12
+
13
+ if (authData.callData) {
14
+ if (authData.callData.split('_')[0] !== 'cb') throw new InvalidAuthDataError('Auth data must be a string with "cb" prefix.');
15
+ return {
16
+ authCallData: authData.callData,
17
+ gas
18
+ };
19
+ }
20
+
21
+ if (!authData.source || !authData.args) throw new InvalidAuthDataError('Auth data must contain source code and arguments.');
22
+ const contract = await ins.getContractInstance({
23
+ source: authData.source
24
+ });
25
+ return {
26
+ authCallData: contract.calldata.encode(contract._name, authFnName, authData.args),
27
+ gas
28
+ };
29
+ };
30
+ //# sourceMappingURL=helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/contract/ga/helpers.js"],"names":["BigNumber","MAX_AUTH_FUN_GAS","InvalidAuthDataError","prepareGaParams","ins","authData","authFnName","gas","gt","callData","split","authCallData","source","args","contract","getContractInstance","calldata","encode","_name"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,cAAtB;SACSC,gB;SACAC,oB;AAET,OAAO,MAAMC,eAAe,GAAIC,GAAD,IAAS,OAAOC,QAAP,EAAiBC,UAAjB,KAAgC;AACtE,MAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC,MAAM,IAAIH,oBAAJ,CAAyB,4BAAzB,CAAN;;AAClC,MAAIG,QAAQ,CAACE,GAAT,IAAgBP,SAAS,CAACK,QAAQ,CAACE,GAAV,CAAT,CAAwBC,EAAxB,CAA2BP,gBAA3B,CAApB,EAAkE;AAAE,UAAM,IAAIC,oBAAJ,CAA0B,2CAA0CD,gBAAiB,SAAQI,QAAQ,CAACE,GAAI,EAA1G,CAAN;AAAoH;;AACxL,QAAMA,GAAG,GAAGF,QAAQ,CAACE,GAAT,IAAgBN,gBAA5B;;AACA,MAAII,QAAQ,CAACI,QAAb,EAAuB;AACrB,QAAIJ,QAAQ,CAACI,QAAT,CAAkBC,KAAlB,CAAwB,GAAxB,EAA6B,CAA7B,MAAoC,IAAxC,EAA8C,MAAM,IAAIR,oBAAJ,CAAyB,8CAAzB,CAAN;AAC9C,WAAO;AAAES,MAAAA,YAAY,EAAEN,QAAQ,CAACI,QAAzB;AAAmCF,MAAAA;AAAnC,KAAP;AACD;;AACD,MAAI,CAACF,QAAQ,CAACO,MAAV,IAAoB,CAACP,QAAQ,CAACQ,IAAlC,EAAwC,MAAM,IAAIX,oBAAJ,CAAyB,mDAAzB,CAAN;AACxC,QAAMY,QAAQ,GAAG,MAAMV,GAAG,CAACW,mBAAJ,CAAwB;AAAEH,IAAAA,MAAM,EAAEP,QAAQ,CAACO;AAAnB,GAAxB,CAAvB;AACA,SAAO;AACLD,IAAAA,YAAY,EAAEG,QAAQ,CAACE,QAAT,CAAkBC,MAAlB,CAAyBH,QAAQ,CAACI,KAAlC,EAAyCZ,UAAzC,EAAqDD,QAAQ,CAACQ,IAA9D,CADT;AAELN,IAAAA;AAFK,GAAP;AAID,CAdM","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { MAX_AUTH_FUN_GAS } from '../../tx/builder/schema'\nimport { InvalidAuthDataError } from '../../utils/errors'\n\nexport const prepareGaParams = (ins) => async (authData, authFnName) => {\n if (typeof authData !== 'object') throw new InvalidAuthDataError('AuthData must be an object')\n if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) { throw new InvalidAuthDataError(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`) }\n const gas = authData.gas || MAX_AUTH_FUN_GAS\n if (authData.callData) {\n if (authData.callData.split('_')[0] !== 'cb') throw new InvalidAuthDataError('Auth data must be a string with \"cb\" prefix.')\n return { authCallData: authData.callData, gas }\n }\n if (!authData.source || !authData.args) throw new InvalidAuthDataError('Auth data must contain source code and arguments.')\n const contract = await ins.getContractInstance({ source: authData.source })\n return {\n authCallData: contract.calldata.encode(contract._name, authFnName, authData.args),\n gas\n }\n}\n"],"file":"helpers.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
@@ -16,51 +16,52 @@
16
16
  */
17
17
 
18
18
  /**
19
- * Generalize Account module - routines to use generalize account
19
+ * Generalized Account module - routines to use generalized account
20
20
  *
21
21
  * @module @aeternity/aepp-sdk/es/contract/ga
22
- * @export GeneralizeAccount
23
- * @example import { GeneralizeAccount } from '@aeternity/aepp-sdk'
22
+ * @export GeneralizedAccount
23
+ * @example import { GeneralizedAccount } from '@aeternity/aepp-sdk'
24
24
  */
25
- import { ContractAPI } from '../../ae/contract';
26
- import { TX_TYPE } from '../../tx/builder/schema';
27
- import { buildTx, unpackTx } from '../../tx/builder';
28
- import { prepareGaParams } from './helpers';
29
- import { hash } from '../../utils/crypto';
25
+ import Contract from "../../ae/contract.mjs";
26
+ import { TX_TYPE } from "../../tx/builder/schema.mjs";
27
+ import { buildTx, unpackTx } from "../../tx/builder/index.mjs";
28
+ import { prepareGaParams } from "./helpers.mjs";
29
+ import { hash } from "../../utils/crypto.mjs";
30
+ import { IllegalArgumentError, MissingParamError } from "../../utils/errors.mjs";
30
31
  /**
31
- * GeneralizeAccount Stamp
32
+ * GeneralizedAccount Stamp
32
33
  *
33
- * Provide Generalize Account implementation
34
+ * Provide Generalized Account implementation
34
35
  * {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.
35
36
  * @function
36
37
  * @alias module:@aeternity/aepp-sdk/es/contract/ga
37
38
  * @rtype Stamp
38
39
  * @param {Object} [options={}] - Initializer object
39
- * @return {Object} GeneralizeAccount instance
40
+ * @return {Object} GeneralizedAccount instance
40
41
  * @example
41
42
  * const authContract = ``
42
- * await client.createGeneralizeAccount(authFnName, authContract, [...authFnArguments]
43
+ * await aeSdk.createGeneralizedAccount(authFnName, authContract, [...authFnArguments]
43
44
  * // Make spend using GA
44
45
  * const callData = 'cb_...' // encoded call data for auth contract
45
- * await client.spend(10000, receiverPub, { authData: { callData } })
46
+ * await aeSdk.spend(10000, receiverPub, { authData: { callData } })
46
47
  * // or
47
- * await client.spend(10000, receiverPub, {
48
+ * await aeSdk.spend(10000, receiverPub, {
48
49
  * authData: { source: authContract, args: [...authContractArgs] }
49
50
  * }) // sdk will prepare callData itself
50
51
  */
51
52
 
52
- export const GeneralizeAccount = ContractAPI.compose({
53
+ export const GeneralizedAccount = Contract.compose({
53
54
  methods: {
54
- createGeneralizeAccount,
55
+ createGeneralizedAccount,
55
56
  createMetaTx,
56
57
  isGA
57
58
  }
58
59
  });
59
- export default GeneralizeAccount;
60
+ export default GeneralizedAccount;
60
61
  /**
61
62
  * @alias module:@aeternity/aepp-sdk/es/contract/ga
62
63
  * @function
63
- * Check if account is GA account
64
+ * Check if account is GA
64
65
  * @param {String} address - Account address
65
66
  * @return {Boolean}
66
67
  */
@@ -72,7 +73,7 @@ async function isGA(address) {
72
73
  return !!contractId;
73
74
  }
74
75
  /**
75
- * Convert current account to GA account
76
+ * Convert current account to GA
76
77
  * @alias module:@aeternity/aepp-sdk/es/contract/ga
77
78
  * @function
78
79
  * @param {String} authFnName - Authorization function name
@@ -80,26 +81,33 @@ async function isGA(address) {
80
81
  * @param {Array} [args] - init arguments
81
82
  * @param {Object} [options] - Options
82
83
  * @return {Promise<Readonly<{
83
- * result: *, owner: *, createdAt: Date, address, rawTx: *, transaction: *
84
+ * result: *, owner: *, address, rawTx: *, transaction: *
84
85
  * }>>}
85
86
  */
86
87
 
87
88
 
88
- async function createGeneralizeAccount(authFnName, source) {
89
+ async function createGeneralizedAccount(authFnName, source) {
90
+ var _opt$gas;
91
+
89
92
  let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
90
93
  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
91
94
  const opt = { ...this.Ae.defaults,
92
95
  ...options
93
96
  };
94
97
  const ownerId = await this.address(opt);
95
- if (await this.isGA(ownerId)) throw new Error(`Account ${ownerId} is already GA`);
98
+ if (await this.isGA(ownerId)) throw new IllegalArgumentError(`Account ${ownerId} is already GA`);
99
+ const contract = await this.getContractInstance({
100
+ source
101
+ });
102
+ await contract.compile();
96
103
  const {
97
104
  tx,
98
105
  contractId
99
106
  } = await this.gaAttachTx({ ...opt,
107
+ gas: (_opt$gas = opt.gas) !== null && _opt$gas !== void 0 ? _opt$gas : await contract._estimateGas('init', args, opt),
100
108
  ownerId,
101
- code: (await this.contractCompile(source)).bytecode,
102
- callData: await this.contractEncodeCallDataAPI(source, 'init', args),
109
+ code: contract.bytecode,
110
+ callData: contract.calldata.encode(contract._name, 'init', args),
103
111
  authFun: hash(authFnName)
104
112
  });
105
113
  const {
@@ -132,7 +140,7 @@ const wrapInEmptySignedTx = tx => buildTx({
132
140
 
133
141
  async function createMetaTx(rawTransaction, authData, authFnName) {
134
142
  let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
135
- if (!authData) throw new Error('authData is required'); // Check if authData is callData or if it's an object prepare a callData from source and args
143
+ if (!authData) throw new MissingParamError('authData is required'); // Check if authData is callData or if it's an object prepare a callData from source and args
136
144
 
137
145
  const {
138
146
  authCallData,
@@ -150,7 +158,7 @@ async function createMetaTx(rawTransaction, authData, authFnName) {
150
158
  tx: wrappedTx.txObject
151
159
  },
152
160
  gaId: await this.address(opt),
153
- abiVersion: abiVersion,
161
+ abiVersion,
154
162
  authData: authCallData,
155
163
  gas,
156
164
  vsn: 2
@@ -167,4 +175,4 @@ async function createMetaTx(rawTransaction, authData, authFnName) {
167
175
  });
168
176
  return wrapInEmptySignedTx(metaTxRlp).tx;
169
177
  }
170
- //# sourceMappingURL=index.js.map
178
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/contract/ga/index.js"],"names":["Contract","TX_TYPE","buildTx","unpackTx","prepareGaParams","hash","IllegalArgumentError","MissingParamError","GeneralizedAccount","compose","methods","createGeneralizedAccount","createMetaTx","isGA","address","contractId","getAccount","authFnName","source","args","options","opt","Ae","defaults","ownerId","contract","getContractInstance","compile","tx","gaAttachTx","gas","_estimateGas","code","bytecode","callData","calldata","encode","_name","authFun","transaction","rawTx","send","Object","freeze","owner","gaContractId","wrapInEmptySignedTx","encodedTx","signatures","signed","rawTransaction","authData","authCallData","abiVersion","getVmVersion","contractCall","wrappedTx","params","txObject","gaId","vsn","fee","prepareTxParams","gaMeta","rlpEncoded","metaTxRlp"],"mappings":"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","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 * Generalized Account module - routines to use generalized account\n *\n * @module @aeternity/aepp-sdk/es/contract/ga\n * @export GeneralizedAccount\n * @example import { GeneralizedAccount } from '@aeternity/aepp-sdk'\n */\nimport Contract from '../../ae/contract'\nimport { TX_TYPE } from '../../tx/builder/schema'\nimport { buildTx, unpackTx } from '../../tx/builder'\nimport { prepareGaParams } from './helpers'\nimport { hash } from '../../utils/crypto'\nimport { IllegalArgumentError, MissingParamError } from '../../utils/errors'\n\n/**\n * GeneralizedAccount Stamp\n *\n * Provide Generalized Account implementation\n * {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} GeneralizedAccount instance\n * @example\n * const authContract = ``\n * await aeSdk.createGeneralizedAccount(authFnName, authContract, [...authFnArguments]\n * // Make spend using GA\n * const callData = 'cb_...' // encoded call data for auth contract\n * await aeSdk.spend(10000, receiverPub, { authData: { callData } })\n * // or\n * await aeSdk.spend(10000, receiverPub, {\n * authData: { source: authContract, args: [...authContractArgs] }\n * }) // sdk will prepare callData itself\n */\nexport const GeneralizedAccount = Contract.compose({\n methods: {\n createGeneralizedAccount,\n createMetaTx,\n isGA\n }\n})\nexport default GeneralizedAccount\n\n/**\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * Check if account is GA\n * @param {String} address - Account address\n * @return {Boolean}\n */\nasync function isGA (address) {\n const { contractId } = await this.getAccount(address)\n return !!contractId\n}\n\n/**\n * Convert current account to GA\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} authFnName - Authorization function name\n * @param {String} source - Auth contract source code\n * @param {Array} [args] - init arguments\n * @param {Object} [options] - Options\n * @return {Promise<Readonly<{\n * result: *, owner: *, address, rawTx: *, transaction: *\n * }>>}\n */\nasync function createGeneralizedAccount (authFnName, source, args = [], options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const ownerId = await this.address(opt)\n if (await this.isGA(ownerId)) throw new IllegalArgumentError(`Account ${ownerId} is already GA`)\n\n const contract = await this.getContractInstance({ source })\n await contract.compile()\n const { tx, contractId } = await this.gaAttachTx({\n ...opt,\n gas: opt.gas ?? await contract._estimateGas('init', args, opt),\n ownerId,\n code: contract.bytecode,\n callData: contract.calldata.encode(contract._name, 'init', args),\n authFun: hash(authFnName)\n })\n\n const { hash: transaction, rawTx } = await this.send(tx, opt)\n\n return Object.freeze({\n owner: ownerId,\n transaction,\n rawTx,\n gaContractId: contractId\n })\n}\n\nconst wrapInEmptySignedTx = (tx) => buildTx({ encodedTx: tx, signatures: [] }, TX_TYPE.signed)\n\n/**\n * Create a metaTx transaction\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} rawTransaction Inner transaction\n * @param {Object} authData Object with gaMeta params\n * @param {String} authFnName - Authorization function name\n * @param {Object} options - Options\n * @return {String}\n */\nasync function createMetaTx (rawTransaction, authData, authFnName, options = {}) {\n if (!authData) throw new MissingParamError('authData is required')\n // Check if authData is callData or if it's an object prepare a callData from source and args\n const { authCallData, gas } = await prepareGaParams(this)(authData, authFnName)\n const opt = { ...this.Ae.defaults, ...options }\n const { abiVersion } = await this.getVmVersion(TX_TYPE.contractCall)\n const wrappedTx = wrapInEmptySignedTx(unpackTx(rawTransaction))\n const params = {\n ...opt,\n tx: {\n ...wrappedTx,\n tx: wrappedTx.txObject\n },\n gaId: await this.address(opt),\n abiVersion,\n authData: authCallData,\n gas,\n vsn: 2\n }\n const { fee } = await this.prepareTxParams(TX_TYPE.gaMeta, params)\n const { rlpEncoded: metaTxRlp } = buildTx(\n { ...params, fee: `${fee}` },\n TX_TYPE.gaMeta,\n { vsn: 2 }\n )\n return wrapInEmptySignedTx(metaTxRlp).tx\n}\n"],"file":"index.mjs"}
package/es/errors.d.ts ADDED
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Error module
3
+ * @module @aeternity/aepp-sdk/es/utils/errors
4
+ * @example import { BytecodeMismatchError } from '@aeternity/aepp-sdk'
5
+ */
6
+ /**
7
+ * aepp-sdk originated error
8
+ */
9
+ export declare abstract class BaseError extends Error {
10
+ constructor(message: string);
11
+ }
12
+ export declare class AccountError extends BaseError {
13
+ constructor(message: string);
14
+ }
15
+ export declare class AensError extends BaseError {
16
+ constructor(message: string);
17
+ }
18
+ export declare class AeppError extends BaseError {
19
+ constructor(message: string);
20
+ }
21
+ export declare class ChannelError extends BaseError {
22
+ constructor(message: string);
23
+ }
24
+ export declare class CompilerError extends BaseError {
25
+ constructor(message: string);
26
+ }
27
+ export declare class ContractError extends BaseError {
28
+ constructor(message: string);
29
+ }
30
+ export declare class CryptographyError extends BaseError {
31
+ constructor(message: string);
32
+ }
33
+ export declare class NodeError extends BaseError {
34
+ constructor(message: string);
35
+ }
36
+ export declare class TransactionError extends BaseError {
37
+ constructor(message: string);
38
+ }
39
+ export declare class WalletError extends BaseError {
40
+ constructor(message: string);
41
+ }
42
+ export declare class ArgumentError extends BaseError {
43
+ constructor(argumentName: string, requirement: string, argumentValue: any);
44
+ }
45
+ export declare class IllegalArgumentError extends CryptographyError {
46
+ constructor(message: string);
47
+ }
48
+ export declare class ArgumentCountMismatchError extends BaseError {
49
+ constructor(functionName: string, requiredCount: number, providedCount: number);
50
+ }
51
+ export declare class InsufficientBalanceError extends BaseError {
52
+ constructor(message: string);
53
+ }
54
+ export declare class InvalidDenominationError extends BaseError {
55
+ constructor(message: string);
56
+ }
57
+ export declare class InvalidNameError extends BaseError {
58
+ constructor(message: string);
59
+ }
60
+ export declare class MissingParamError extends BaseError {
61
+ constructor(message: string);
62
+ }
63
+ export declare class NoBrowserFoundError extends BaseError {
64
+ constructor();
65
+ }
66
+ export declare class NoSerializerFoundError extends BaseError {
67
+ constructor();
68
+ }
69
+ export declare class RequestTimedOutError extends BaseError {
70
+ constructor(requestTime: number);
71
+ }
72
+ export declare class TxTimedOutError extends BaseError {
73
+ constructor(blocks: number, th: string, status?: string);
74
+ }
75
+ export declare class TypeError extends BaseError {
76
+ constructor(message: string);
77
+ }
78
+ export declare class UnsupportedPlatformError extends BaseError {
79
+ constructor(message: string);
80
+ }
81
+ export declare class UnsupportedProtocolError extends BaseError {
82
+ constructor(message: string);
83
+ }
84
+ export declare class NotImplementedError extends BaseError {
85
+ constructor(message: string);
86
+ }
87
+ export declare class UnsupportedVersionError extends BaseError {
88
+ constructor(dependency: string, version: string, geVersion: string, ltVersion: string);
89
+ }
90
+ export declare class InternalError extends BaseError {
91
+ constructor(message: string);
92
+ }
93
+ export declare class InvalidKeypairError extends AccountError {
94
+ constructor(message: string);
95
+ }
96
+ export declare class UnavailableAccountError extends AccountError {
97
+ constructor(address: string);
98
+ }
99
+ export declare class AensPointerContextError extends AensError {
100
+ constructor(nameOrId: string, prefix: string);
101
+ }
102
+ export declare class InsufficientNameFeeError extends AensError {
103
+ constructor(nameFee: number, minNameFee: number);
104
+ }
105
+ export declare class InvalidAensNameError extends AensError {
106
+ constructor(message: string);
107
+ }
108
+ export declare class DuplicateCallbackError extends AeppError {
109
+ constructor();
110
+ }
111
+ export declare class InvalidRpcMessageError extends AeppError {
112
+ constructor(message: string);
113
+ }
114
+ export declare class MissingCallbackError extends AeppError {
115
+ constructor(id: string);
116
+ }
117
+ export declare class UnAuthorizedAccountError extends AeppError {
118
+ constructor(onAccount: string);
119
+ }
120
+ export declare class UnknownRpcClientError extends AeppError {
121
+ constructor(id: string);
122
+ }
123
+ export declare class UnsubscribedAccountError extends AeppError {
124
+ constructor();
125
+ }
126
+ export declare class ChannelCallError extends ChannelError {
127
+ constructor(message: string);
128
+ }
129
+ export declare class ChannelConnectionError extends ChannelError {
130
+ constructor(message: string);
131
+ }
132
+ export declare class ChannelPingTimedOutError extends ChannelError {
133
+ constructor();
134
+ }
135
+ export declare class UnexpectedChannelMessageError extends ChannelError {
136
+ constructor(message: string);
137
+ }
138
+ export declare class UnknownChannelStateError extends ChannelError {
139
+ constructor();
140
+ }
141
+ export declare class InvalidAuthDataError extends CompilerError {
142
+ constructor(message: string);
143
+ }
144
+ export declare class BytecodeMismatchError extends ContractError {
145
+ constructor(source: string);
146
+ }
147
+ export declare class DuplicateContractError extends ContractError {
148
+ constructor();
149
+ }
150
+ export declare class InactiveContractError extends ContractError {
151
+ constructor(contractAddress: string);
152
+ }
153
+ export declare class InvalidMethodInvocationError extends ContractError {
154
+ constructor(message: string);
155
+ }
156
+ export declare class MissingContractAddressError extends ContractError {
157
+ constructor(message: string);
158
+ }
159
+ export declare class MissingContractDefError extends ContractError {
160
+ constructor();
161
+ }
162
+ export declare class MissingFunctionNameError extends ContractError {
163
+ constructor();
164
+ }
165
+ export declare class NodeInvocationError extends ContractError {
166
+ constructor(message?: string);
167
+ }
168
+ export declare class NoSuchContractFunctionError extends ContractError {
169
+ constructor(name: string);
170
+ }
171
+ export declare class NotPayableFunctionError extends ContractError {
172
+ constructor(amount: string, fn: string);
173
+ }
174
+ export declare class MissingEventDefinitionError extends ContractError {
175
+ constructor(eventNameHash: string, eventAddress: string);
176
+ }
177
+ export declare class AmbiguousEventDefinitionError extends ContractError {
178
+ constructor(eventAddress: string, matchedEvents: [string, string][]);
179
+ }
180
+ export declare class InvalidChecksumError extends CryptographyError {
181
+ constructor();
182
+ }
183
+ export declare class InvalidDerivationPathError extends CryptographyError {
184
+ constructor();
185
+ }
186
+ export declare class InvalidKeyError extends CryptographyError {
187
+ constructor(message: string);
188
+ }
189
+ export declare class InvalidPasswordError extends CryptographyError {
190
+ constructor(message: string);
191
+ }
192
+ export declare class MerkleTreeHashMismatchError extends CryptographyError {
193
+ constructor();
194
+ }
195
+ export declare class MissingNodeInTreeError extends CryptographyError {
196
+ constructor(message: string);
197
+ }
198
+ export declare class UnsupportedAlgorithmError extends CryptographyError {
199
+ constructor(algo: string);
200
+ }
201
+ export declare class NotHardenedSegmentError extends CryptographyError {
202
+ constructor(message: string);
203
+ }
204
+ export declare class UnknownNodeLengthError extends CryptographyError {
205
+ constructor(nodeLength: number);
206
+ }
207
+ export declare class UnknownPathNibbleError extends CryptographyError {
208
+ constructor(nibble: number);
209
+ }
210
+ export declare class UnsupportedChildIndexError extends CryptographyError {
211
+ constructor(index: string);
212
+ }
213
+ export declare class DisconnectedError extends NodeError {
214
+ constructor();
215
+ }
216
+ export declare class DuplicateNodeError extends NodeError {
217
+ constructor(name: string);
218
+ }
219
+ export declare class NodeNotFoundError extends NodeError {
220
+ constructor(message: string);
221
+ }
222
+ export declare class DecodeError extends TransactionError {
223
+ constructor(message: string);
224
+ }
225
+ export declare class EncodeError extends TransactionError {
226
+ constructor(message: string);
227
+ }
228
+ export declare class PayloadLengthError extends TransactionError {
229
+ constructor(message: string);
230
+ }
231
+ export declare class DryRunError extends TransactionError {
232
+ constructor(message: string);
233
+ }
234
+ export declare class IllegalBidFeeError extends TransactionError {
235
+ constructor(message: string);
236
+ }
237
+ export declare class InvalidSignatureError extends TransactionError {
238
+ constructor(message: string);
239
+ }
240
+ export declare class InvalidTxError extends TransactionError {
241
+ constructor(message: string);
242
+ }
243
+ export declare class InvalidTxParamsError extends TransactionError {
244
+ constructor(message: string);
245
+ }
246
+ export declare class NoDefaultAensPointerError extends TransactionError {
247
+ constructor(prefix: string);
248
+ }
249
+ export declare class PrefixMismatchError extends TransactionError {
250
+ constructor(prefix: string, requiredPrefix: string);
251
+ }
252
+ export declare class PrefixNotFoundError extends TransactionError {
253
+ constructor(tag: string);
254
+ }
255
+ export declare class SchemaNotFoundError extends TransactionError {
256
+ constructor(message: string);
257
+ }
258
+ export declare class TagNotFoundError extends TransactionError {
259
+ constructor(prefix: string);
260
+ }
261
+ export declare class TxNotInChainError extends TransactionError {
262
+ constructor(txHash: string);
263
+ }
264
+ export declare class UnknownTxError extends TransactionError {
265
+ constructor(message: string);
266
+ }
267
+ export declare class UnsupportedABIversionError extends TransactionError {
268
+ constructor(message: string);
269
+ }
270
+ export declare class UnsupportedVMversionError extends TransactionError {
271
+ constructor(message: string);
272
+ }
273
+ export declare class AlreadyConnectedError extends WalletError {
274
+ constructor(message: string);
275
+ }
276
+ export declare class MessageDirectionError extends WalletError {
277
+ constructor(message: string);
278
+ }
279
+ export declare class NoWalletConnectedError extends WalletError {
280
+ constructor(message: string);
281
+ }
282
+ export declare class RpcConnectionError extends WalletError {
283
+ constructor(message: string);
284
+ }
package/es/index.mjs ADDED
@@ -0,0 +1,57 @@
1
+ /*
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2021 aeternity developers
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ * PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+ import * as Crypto from "./utils/crypto.mjs";
18
+ import * as Keystore from "./utils/keystore.mjs";
19
+ import * as Bytes from "./utils/bytes.mjs";
20
+ import * as TxBuilder from "./tx/builder/index.mjs";
21
+ import * as TxBuilderHelper from "./tx/builder/helpers.mjs";
22
+ import * as SCHEMA from "./tx/builder/schema.mjs";
23
+ import * as AmountFormatter from "./utils/amount-formatter.mjs";
24
+ import * as HdWallet from "./utils/hd-wallet.mjs";
25
+ import Ae from "./ae/index.mjs";
26
+ import Chain from "./chain/index.mjs";
27
+ import ChainNode from "./chain/node.mjs";
28
+ import Node from "./node.mjs";
29
+ import NodePool from "./node-pool/index.mjs";
30
+ import Tx from "./tx/index.mjs";
31
+ import Transaction from "./tx/tx.mjs";
32
+ import verifyTransaction from "./tx/validator.mjs";
33
+ import AccountBase from "./account/base.mjs";
34
+ import AccountMultiple from "./account/multiple.mjs";
35
+ import MemoryAccount from "./account/memory.mjs";
36
+ import Aens from "./ae/aens.mjs";
37
+ import Contract from "./ae/contract.mjs";
38
+ import GeneralizedAccount from "./contract/ga/index.mjs";
39
+ import ContractCompilerHttp from "./contract/compiler.mjs";
40
+ import RpcAepp from "./ae/aepp.mjs";
41
+ import RpcWallet from "./ae/wallet.mjs";
42
+ import Oracle from "./ae/oracle.mjs";
43
+ import genSwaggerClient from "./utils/swagger.mjs";
44
+ import Channel from "./channel/index.mjs";
45
+ import Universal from "./ae/universal.mjs";
46
+ export { default as ContentScriptBridge } from "./utils/aepp-wallet-communication/content-script-bridge.mjs";
47
+ import * as _AeppWalletHelpers from "./utils/aepp-wallet-communication/helpers.mjs";
48
+ export { _AeppWalletHelpers as AeppWalletHelpers };
49
+ import * as _AeppWalletSchema from "./utils/aepp-wallet-communication/schema.mjs";
50
+ export { _AeppWalletSchema as AeppWalletSchema };
51
+ export { default as WalletDetector } from "./utils/aepp-wallet-communication/wallet-detector.mjs";
52
+ export { default as BrowserRuntimeConnection } from "./utils/aepp-wallet-communication/connection/browser-runtime.mjs";
53
+ export { default as BrowserWindowMessageConnection } from "./utils/aepp-wallet-communication/connection/browser-window-message.mjs";
54
+ export * from "./utils/errors.mjs";
55
+ export const getDefaultPointerKey = TxBuilderHelper.getDefaultPointerKey;
56
+ export { AmountFormatter, AccountBase, AccountMultiple, Ae, Aens, Bytes, Contract, ContractCompilerHttp, ChainNode, RpcAepp, RpcWallet, Channel, Crypto, Keystore, Chain, GeneralizedAccount, HdWallet, MemoryAccount, Node, NodePool, Oracle, genSwaggerClient, Transaction, verifyTransaction, Tx, TxBuilder, TxBuilderHelper, Universal, SCHEMA };
57
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":["Crypto","Keystore","Bytes","TxBuilder","TxBuilderHelper","SCHEMA","AmountFormatter","HdWallet","Ae","Chain","ChainNode","Node","NodePool","Tx","Transaction","verifyTransaction","AccountBase","AccountMultiple","MemoryAccount","Aens","Contract","GeneralizedAccount","ContractCompilerHttp","RpcAepp","RpcWallet","Oracle","genSwaggerClient","Channel","Universal","default","ContentScriptBridge","AeppWalletHelpers","AeppWalletSchema","WalletDetector","BrowserRuntimeConnection","BrowserWindowMessageConnection","getDefaultPointerKey"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;OAEO,KAAKA,M;OACL,KAAKC,Q;OACL,KAAKC,K;OACL,KAAKC,S;OACL,KAAKC,e;OACL,KAAKC,M;OACL,KAAKC,e;OACL,KAAKC,Q;OAELC,E;OACAC,K;OACAC,S;OACAC,I;OACAC,Q;OACAC,E;OACAC,W;OACAC,iB;OACAC,W;OACAC,e;OACAC,a;OACAC,I;OACAC,Q;OACAC,kB;OACAC,oB;OACAC,O;OACAC,S;OACAC,M;OACAC,gB;OACAC,O;OACAC,S;SAEEC,OAAO,IAAIC,mB;;+BACRC,iB;;8BACAC,gB;SACHH,OAAO,IAAII,c;SACXJ,OAAO,IAAIK,wB;SACXL,OAAO,IAAIM,8B;;AAGpB,OAAO,MAAMC,oBAAoB,GAAGhC,eAAe,CAACgC,oBAA7C;AAEP,SACE9B,eADF,EAEEU,WAFF,EAGEC,eAHF,EAIET,EAJF,EAKEW,IALF,EAMEjB,KANF,EAOEkB,QAPF,EAQEE,oBARF,EASEZ,SATF,EAUEa,OAVF,EAWEC,SAXF,EAYEG,OAZF,EAaE3B,MAbF,EAcEC,QAdF,EAeEQ,KAfF,EAgBEY,kBAhBF,EAiBEd,QAjBF,EAkBEW,aAlBF,EAmBEP,IAnBF,EAoBEC,QApBF,EAqBEa,MArBF,EAsBEC,gBAtBF,EAuBEZ,WAvBF,EAwBEC,iBAxBF,EAyBEF,EAzBF,EA0BEV,SA1BF,EA2BEC,eA3BF,EA4BEwB,SA5BF,EA6BEvB,MA7BF","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\nimport * as Crypto from './utils/crypto'\nimport * as Keystore from './utils/keystore'\nimport * as Bytes from './utils/bytes'\nimport * as TxBuilder from './tx/builder'\nimport * as TxBuilderHelper from './tx/builder/helpers'\nimport * as SCHEMA from './tx/builder/schema'\nimport * as AmountFormatter from './utils/amount-formatter'\nimport * as HdWallet from './utils/hd-wallet'\n\nimport Ae from './ae'\nimport Chain from './chain'\nimport ChainNode from './chain/node'\nimport Node from './node'\nimport NodePool from './node-pool'\nimport Tx from './tx'\nimport Transaction from './tx/tx'\nimport verifyTransaction from './tx/validator'\nimport AccountBase from './account/base'\nimport AccountMultiple from './account/multiple'\nimport MemoryAccount from './account/memory'\nimport Aens from './ae/aens'\nimport Contract from './ae/contract'\nimport GeneralizedAccount from './contract/ga'\nimport ContractCompilerHttp from './contract/compiler'\nimport RpcAepp from './ae/aepp'\nimport RpcWallet from './ae/wallet'\nimport Oracle from './ae/oracle'\nimport genSwaggerClient from './utils/swagger'\nimport Channel from './channel'\nimport Universal from './ae/universal'\n\nexport { default as ContentScriptBridge } from './utils/aepp-wallet-communication/content-script-bridge'\nexport * as AeppWalletHelpers from './utils/aepp-wallet-communication/helpers'\nexport * as AeppWalletSchema from './utils/aepp-wallet-communication/schema'\nexport { default as WalletDetector } from './utils/aepp-wallet-communication/wallet-detector'\nexport { default as BrowserRuntimeConnection } from './utils/aepp-wallet-communication/connection/browser-runtime'\nexport { default as BrowserWindowMessageConnection } from './utils/aepp-wallet-communication/connection/browser-window-message'\nexport * from './utils/errors'\n\nexport const getDefaultPointerKey = TxBuilderHelper.getDefaultPointerKey\n\nexport {\n AmountFormatter,\n AccountBase,\n AccountMultiple,\n Ae,\n Aens,\n Bytes,\n Contract,\n ContractCompilerHttp,\n ChainNode,\n RpcAepp,\n RpcWallet,\n Channel,\n Crypto,\n Keystore,\n Chain,\n GeneralizedAccount,\n HdWallet,\n MemoryAccount,\n Node,\n NodePool,\n Oracle,\n genSwaggerClient,\n Transaction,\n verifyTransaction,\n Tx,\n TxBuilder,\n TxBuilderHelper,\n Universal,\n SCHEMA\n}\n"],"file":"index.mjs"}
@@ -5,7 +5,8 @@
5
5
  * @example import { NodePool } from '@aeternity/aepp-sdk'
6
6
  */
7
7
  import stampit from '@stamp/it';
8
- import { getNetworkId } from '../node';
8
+ import { getNetworkId } from "../node.mjs";
9
+ import { DisconnectedError, DuplicateNodeError, NodeNotFoundError, TypeError } from "../utils/errors.mjs";
9
10
  /**
10
11
  * Node Pool Stamp
11
12
  * This stamp allow you to make basic manipulation(add, remove, select) on list of nodes
@@ -41,7 +42,7 @@ export default stampit({
41
42
 
42
43
  get() {
43
44
  if (!this.selectedNode || !this.selectedNode.instance) {
44
- throw new Error('You can\'t use Node API. Node is not connected or not defined!');
45
+ throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!');
45
46
  }
46
47
 
47
48
  return this.selectedNode.instance.api;
@@ -65,7 +66,7 @@ export default stampit({
65
66
  */
66
67
  addNode(name, node) {
67
68
  let select = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
68
- if (this.pool.has(name)) throw new Error(`Node with name ${name} already exist`);
69
+ if (this.pool.has(name)) throw new DuplicateNodeError(name);
69
70
  this.validateNodes([{
70
71
  name,
71
72
  instance: node
@@ -96,7 +97,7 @@ export default stampit({
96
97
  * nodePool.selectNode('testNode')
97
98
  */
98
99
  selectNode(name) {
99
- if (!this.pool.has(name)) throw new Error(`Node with name ${name} not in pool`);
100
+ if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`);
100
101
  this.selectedNode = this.pool.get(name);
101
102
  },
102
103
 
@@ -134,7 +135,7 @@ export default stampit({
134
135
  * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
135
136
  */
136
137
  getNodeInfo() {
137
- if (!this.isNodeConnected()) throw new Error('Can not get node info. Node is not connected');
138
+ if (!this.isNodeConnected()) throw new DisconnectedError();
138
139
  return {
139
140
  name: this.selectedNode.name,
140
141
  ...this.selectedNode.instance.getNodeInfo()
@@ -163,19 +164,19 @@ export default stampit({
163
164
  validateNodes(nodes) {
164
165
  // TODO: validate it on TypeScript level instead
165
166
  // (to speedup development, save runtime resources)
166
- if (!Array.isArray(nodes)) throw new Error('"nodes" should be an array');
167
+ if (!Array.isArray(nodes)) throw new TypeError('"nodes" should be an array');
167
168
  const notObject = nodes.map(n => typeof n).find(t => t !== 'object');
168
- if (notObject) throw new Error(`Each node should be an object, got ${notObject} instead`);
169
+ if (notObject) throw new TypeError(`Each node should be an object, got ${notObject} instead`);
169
170
  const wrongFields = nodes.find(n => typeof n.name !== 'string' || typeof n.instance !== 'object');
170
171
 
171
172
  if (notObject) {
172
- throw new Error('Each node should have name (string), instance (object) ' + `fields, got ${JSON.stringify(wrongFields)} instead`);
173
+ throw new TypeError('Each node should have name (string), instance (object) ' + `fields, got ${JSON.stringify(wrongFields)} instead`);
173
174
  }
174
175
 
175
176
  const wrongInstanceFields = nodes.map(n => n.instance).find(i => typeof i.api !== 'object' || typeof i.genesisHash !== 'string' || typeof i.consensusProtocolVersion !== 'number');
176
177
 
177
178
  if (wrongInstanceFields) {
178
- throw new Error('Each node instance should have api (object), consensusProtocolVersion (number), ' + `genesisHash (string) fields, got ${JSON.stringify(wrongInstanceFields)} instead`);
179
+ throw new TypeError('Each node instance should have api (object), consensusProtocolVersion (number), ' + `genesisHash (string) fields, got ${JSON.stringify(wrongInstanceFields)} instead`);
179
180
  }
180
181
  }
181
182
 
@@ -184,4 +185,4 @@ export default stampit({
184
185
  selectedNode: {}
185
186
  }
186
187
  });
187
- //# sourceMappingURL=index.js.map
188
+ //# sourceMappingURL=index.mjs.map