@aeternity/aepp-sdk 11.0.1 → 12.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 (376) hide show
  1. package/LICENSE +1 -1
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
  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/AeSdk.d.ts +37 -0
  10. package/es/AeSdk.mjs +81 -0
  11. package/es/AeSdk.mjs.map +1 -0
  12. package/es/AeSdkAepp.d.ts +69 -0
  13. package/es/AeSdkAepp.mjs +175 -0
  14. package/es/AeSdkAepp.mjs.map +1 -0
  15. package/es/AeSdkBase.d.ts +212 -0
  16. package/es/AeSdkBase.mjs +310 -0
  17. package/es/AeSdkBase.mjs.map +1 -0
  18. package/es/AeSdkWallet.d.ts +103 -0
  19. package/es/AeSdkWallet.mjs +322 -0
  20. package/es/AeSdkWallet.mjs.map +1 -0
  21. package/es/Node.d.ts +44 -0
  22. package/es/Node.mjs +141 -0
  23. package/es/Node.mjs.map +1 -0
  24. package/es/account/Base.d.ts +65 -0
  25. package/es/account/Base.mjs +123 -0
  26. package/es/account/Base.mjs.map +1 -0
  27. package/es/account/Memory.d.ts +25 -0
  28. package/es/account/Memory.mjs +81 -0
  29. package/es/account/Memory.mjs.map +1 -0
  30. package/es/account/Rpc.d.ts +27 -0
  31. package/es/account/Rpc.mjs +79 -0
  32. package/es/account/Rpc.mjs.map +1 -0
  33. package/es/aens.d.ts +209 -0
  34. package/es/aens.mjs +332 -0
  35. package/es/aens.mjs.map +1 -0
  36. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  37. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  46. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  47. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  51. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  52. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  54. package/es/aepp-wallet-communication/schema.d.ts +90 -46
  55. package/es/aepp-wallet-communication/schema.mjs +214 -0
  56. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  57. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  58. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  60. package/es/apis/compiler/compiler.d.ts +92 -0
  61. package/es/apis/compiler/compiler.mjs +576 -0
  62. package/es/apis/compiler/compiler.mjs.map +1 -0
  63. package/es/apis/compiler/index.d.ts +2 -0
  64. package/es/apis/compiler/index.mjs +3 -0
  65. package/es/apis/compiler/index.mjs.map +1 -0
  66. package/es/apis/compiler/models/index.d.ts +248 -0
  67. package/es/apis/compiler/models/index.mjs +48 -0
  68. package/es/apis/compiler/models/index.mjs.map +1 -0
  69. package/es/apis/compiler/models/mappers.d.ts +23 -0
  70. package/es/apis/compiler/models/mappers.mjs +585 -0
  71. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  72. package/es/apis/compiler/models/parameters.d.ts +13 -0
  73. package/es/apis/compiler/models/parameters.mjs +71 -0
  74. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  75. package/es/apis/node/index.d.ts +2 -0
  76. package/es/apis/node/index.mjs +3 -0
  77. package/es/apis/node/index.mjs.map +1 -0
  78. package/es/apis/node/models/index.d.ts +1061 -0
  79. package/es/apis/node/models/index.mjs +2 -0
  80. package/es/apis/node/models/index.mjs.map +1 -0
  81. package/es/apis/node/models/mappers.d.ts +95 -0
  82. package/es/apis/node/models/mappers.mjs +4164 -0
  83. package/es/apis/node/models/mappers.mjs.map +1 -0
  84. package/es/apis/node/models/parameters.d.ts +17 -0
  85. package/es/apis/node/models/parameters.mjs +165 -0
  86. package/es/apis/node/models/parameters.mjs.map +1 -0
  87. package/es/apis/node/node.d.ts +215 -0
  88. package/es/apis/node/node.mjs +1165 -0
  89. package/es/apis/node/node.mjs.map +1 -0
  90. package/es/chain.d.ts +220 -0
  91. package/es/chain.mjs +524 -0
  92. package/es/chain.mjs.map +1 -0
  93. package/es/channel/handlers.d.ts +34 -0
  94. package/es/channel/handlers.mjs +147 -112
  95. package/es/channel/handlers.mjs.map +1 -1
  96. package/es/channel/index.d.ts +634 -0
  97. package/es/channel/index.mjs +898 -900
  98. package/es/channel/index.mjs.map +1 -1
  99. package/es/channel/internal.d.ts +100 -0
  100. package/es/channel/internal.mjs +97 -51
  101. package/es/channel/internal.mjs.map +1 -1
  102. package/es/contract/Compiler.d.ts +17 -0
  103. package/es/contract/Compiler.mjs +67 -0
  104. package/es/contract/Compiler.mjs.map +1 -0
  105. package/es/contract/aci.d.ts +125 -0
  106. package/es/contract/aci.mjs +199 -180
  107. package/es/contract/aci.mjs.map +1 -1
  108. package/es/contract/ga.d.ts +68 -0
  109. package/es/contract/ga.mjs +190 -0
  110. package/es/contract/ga.mjs.map +1 -0
  111. package/es/contract/methods.d.ts +68 -0
  112. package/es/contract/methods.mjs +101 -0
  113. package/es/contract/methods.mjs.map +1 -0
  114. package/es/index.d.ts +32 -0
  115. package/es/index.mjs +32 -40
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +154 -0
  118. package/es/oracle.mjs +288 -0
  119. package/es/oracle.mjs.map +1 -0
  120. package/es/spend.d.ts +61 -0
  121. package/es/spend.mjs +122 -0
  122. package/es/spend.mjs.map +1 -0
  123. package/es/tx/builder/constants.d.ts +41 -0
  124. package/es/tx/builder/constants.mjs +11 -19
  125. package/es/tx/builder/constants.mjs.map +1 -1
  126. package/es/tx/builder/field-types.d.ts +62 -0
  127. package/es/tx/builder/field-types.mjs +62 -10
  128. package/es/tx/builder/field-types.mjs.map +1 -1
  129. package/es/tx/builder/helpers.d.ts +131 -0
  130. package/es/tx/builder/helpers.mjs +71 -169
  131. package/es/tx/builder/helpers.mjs.map +1 -1
  132. package/es/tx/builder/index.d.ts +75 -0
  133. package/es/tx/builder/index.mjs +141 -323
  134. package/es/tx/builder/index.mjs.map +1 -1
  135. package/es/tx/builder/schema.d.ts +350 -0
  136. package/es/tx/builder/schema.mjs +173 -510
  137. package/es/tx/builder/schema.mjs.map +1 -1
  138. package/es/tx/index.d.ts +63 -0
  139. package/es/tx/index.mjs +171 -265
  140. package/es/tx/index.mjs.map +1 -1
  141. package/es/tx/min-fee.d.ts +20 -0
  142. package/es/tx/min-fee.mjs +148 -0
  143. package/es/tx/min-fee.mjs.map +1 -0
  144. package/es/tx/validator.d.ts +19 -0
  145. package/es/tx/validator.mjs +64 -71
  146. package/es/tx/validator.mjs.map +1 -1
  147. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  149. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  151. package/es/typings/bip32-path/index.d.mjs +2 -0
  152. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  153. package/es/typings/blakejs/index.d.mjs.map +1 -1
  154. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  155. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  156. package/es/utils/amount-formatter.d.ts +42 -0
  157. package/es/utils/amount-formatter.mjs +28 -41
  158. package/es/utils/amount-formatter.mjs.map +1 -1
  159. package/es/utils/autorest.d.ts +6 -0
  160. package/es/utils/autorest.mjs +97 -0
  161. package/es/utils/autorest.mjs.map +1 -0
  162. package/es/utils/bignumber.d.ts +13 -0
  163. package/es/utils/bignumber.mjs +10 -8
  164. package/es/utils/bignumber.mjs.map +1 -1
  165. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  166. package/es/utils/bytes.mjs +10 -14
  167. package/es/utils/bytes.mjs.map +1 -1
  168. package/es/utils/crypto.d.ts +103 -0
  169. package/es/utils/crypto.mjs +60 -68
  170. package/es/utils/crypto.mjs.map +1 -1
  171. package/es/utils/encoder.d.ts +26 -0
  172. package/es/utils/encoder.mjs +47 -51
  173. package/es/utils/encoder.mjs.map +1 -1
  174. package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
  175. package/es/utils/errors.mjs +318 -125
  176. package/es/utils/errors.mjs.map +1 -1
  177. package/es/utils/hd-wallet.d.ts +34 -0
  178. package/es/utils/hd-wallet.mjs +27 -16
  179. package/es/utils/hd-wallet.mjs.map +1 -1
  180. package/es/utils/json-big.d.ts +5 -0
  181. package/es/utils/json-big.mjs +10 -14
  182. package/es/utils/json-big.mjs.map +1 -1
  183. package/es/utils/keystore.d.ts +51 -0
  184. package/es/utils/keystore.mjs +98 -193
  185. package/es/utils/keystore.mjs.map +1 -1
  186. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  187. package/es/utils/mptree.mjs +13 -14
  188. package/es/utils/mptree.mjs.map +1 -1
  189. package/es/utils/other.d.ts +14 -0
  190. package/es/utils/other.mjs +21 -36
  191. package/es/utils/other.mjs.map +1 -1
  192. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  193. package/es/utils/semver-satisfies.mjs.map +1 -1
  194. package/es/utils/string.d.ts +24 -0
  195. package/es/utils/string.mjs +8 -10
  196. package/es/utils/string.mjs.map +1 -1
  197. package/package.json +49 -39
  198. package/src/AeSdk.ts +65 -0
  199. package/src/AeSdkAepp.ts +167 -0
  200. package/src/AeSdkBase.ts +320 -0
  201. package/src/AeSdkWallet.ts +332 -0
  202. package/src/Node.ts +167 -0
  203. package/src/account/Base.ts +114 -0
  204. package/src/account/Memory.ts +83 -0
  205. package/src/account/Rpc.ts +67 -0
  206. package/src/aens.ts +391 -0
  207. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  208. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  209. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  210. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
  211. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  212. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  213. package/src/aepp-wallet-communication/schema.ts +181 -0
  214. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  215. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  216. package/src/apis/compiler/compiler.ts +585 -0
  217. package/src/apis/compiler/index.ts +2 -0
  218. package/src/apis/compiler/models/index.ts +301 -0
  219. package/src/apis/compiler/models/mappers.ts +583 -0
  220. package/src/apis/compiler/models/parameters.ts +93 -0
  221. package/src/apis/node/code-model-v4.yaml +10046 -0
  222. package/src/apis/node/index.ts +2 -0
  223. package/src/apis/node/models/index.ts +1253 -0
  224. package/src/apis/node/models/mappers.ts +4278 -0
  225. package/src/apis/node/models/parameters.ts +188 -0
  226. package/src/apis/node/node.ts +1299 -0
  227. package/src/chain.ts +444 -0
  228. package/src/channel/{handlers.js → handlers.ts} +220 -128
  229. package/src/channel/index.ts +991 -0
  230. package/src/channel/internal.ts +345 -0
  231. package/src/contract/Compiler.ts +66 -0
  232. package/src/contract/aci.ts +529 -0
  233. package/src/contract/ga.ts +178 -0
  234. package/src/contract/methods.ts +118 -0
  235. package/src/index.ts +51 -0
  236. package/src/oracle.ts +342 -0
  237. package/src/spend.ts +152 -0
  238. package/src/tx/builder/{constants.js → constants.ts} +12 -16
  239. package/src/tx/builder/field-types.ts +111 -0
  240. package/src/tx/builder/helpers.ts +253 -0
  241. package/src/tx/builder/index.ts +394 -0
  242. package/src/tx/builder/schema.ts +771 -0
  243. package/src/tx/index.ts +199 -0
  244. package/src/tx/min-fee.ts +136 -0
  245. package/src/tx/validator.ts +226 -0
  246. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  247. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  248. package/src/typings/bip32-path/index.d.ts +33 -0
  249. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  250. package/src/utils/amount-formatter.ts +29 -42
  251. package/src/utils/autorest.ts +90 -0
  252. package/src/utils/bignumber.ts +9 -11
  253. package/src/utils/bytes.ts +12 -14
  254. package/src/utils/crypto.ts +217 -0
  255. package/src/utils/encoder.ts +52 -55
  256. package/src/utils/errors.ts +268 -134
  257. package/src/utils/hd-wallet.ts +134 -0
  258. package/src/utils/json-big.ts +26 -0
  259. package/src/utils/keystore.ts +179 -0
  260. package/src/utils/mptree.ts +14 -14
  261. package/src/utils/other.ts +28 -43
  262. package/src/utils/string.ts +8 -10
  263. package/es/account/base.mjs +0 -179
  264. package/es/account/base.mjs.map +0 -1
  265. package/es/account/memory.mjs +0 -99
  266. package/es/account/memory.mjs.map +0 -1
  267. package/es/account/multiple.mjs +0 -179
  268. package/es/account/multiple.mjs.map +0 -1
  269. package/es/ae/aens.mjs +0 -404
  270. package/es/ae/aens.mjs.map +0 -1
  271. package/es/ae/aepp.mjs +0 -45
  272. package/es/ae/aepp.mjs.map +0 -1
  273. package/es/ae/contract.mjs +0 -159
  274. package/es/ae/contract.mjs.map +0 -1
  275. package/es/ae/index.mjs +0 -207
  276. package/es/ae/index.mjs.map +0 -1
  277. package/es/ae/oracle.mjs +0 -339
  278. package/es/ae/oracle.mjs.map +0 -1
  279. package/es/ae/universal.mjs +0 -45
  280. package/es/ae/universal.mjs.map +0 -1
  281. package/es/ae/wallet.mjs +0 -50
  282. package/es/ae/wallet.mjs.map +0 -1
  283. package/es/amount-formatter.d.ts +0 -58
  284. package/es/bignumber.d.ts +0 -18
  285. package/es/chain/index.mjs +0 -272
  286. package/es/chain/index.mjs.map +0 -1
  287. package/es/chain/node.mjs +0 -442
  288. package/es/chain/node.mjs.map +0 -1
  289. package/es/contract/compiler.mjs +0 -115
  290. package/es/contract/compiler.mjs.map +0 -1
  291. package/es/contract/ga/helpers.mjs +0 -30
  292. package/es/contract/ga/helpers.mjs.map +0 -1
  293. package/es/contract/ga/index.mjs +0 -178
  294. package/es/contract/ga/index.mjs.map +0 -1
  295. package/es/crypto-ts.d.ts +0 -9
  296. package/es/encoder.d.ts +0 -26
  297. package/es/node-pool/index.mjs +0 -188
  298. package/es/node-pool/index.mjs.map +0 -1
  299. package/es/node.mjs +0 -133
  300. package/es/node.mjs.map +0 -1
  301. package/es/other.d.ts +0 -31
  302. package/es/string.d.ts +0 -26
  303. package/es/tx/tx-object.mjs +0 -283
  304. package/es/tx/tx-object.mjs.map +0 -1
  305. package/es/tx/tx.mjs +0 -938
  306. package/es/tx/tx.mjs.map +0 -1
  307. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  308. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  309. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  310. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  311. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  312. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  313. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  314. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  315. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  316. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  317. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  318. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  319. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  320. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  321. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  322. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  323. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  324. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  325. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  326. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  327. package/es/utils/async-init.mjs +0 -64
  328. package/es/utils/async-init.mjs.map +0 -1
  329. package/es/utils/crypto-ts.mjs.map +0 -1
  330. package/es/utils/swagger.mjs +0 -164
  331. package/es/utils/swagger.mjs.map +0 -1
  332. package/src/account/base.js +0 -153
  333. package/src/account/memory.js +0 -83
  334. package/src/account/multiple.js +0 -162
  335. package/src/ae/aens.js +0 -361
  336. package/src/ae/aepp.js +0 -45
  337. package/src/ae/contract.js +0 -148
  338. package/src/ae/index.js +0 -168
  339. package/src/ae/oracle.js +0 -311
  340. package/src/ae/universal.js +0 -47
  341. package/src/ae/wallet.js +0 -50
  342. package/src/chain/index.js +0 -269
  343. package/src/chain/node.js +0 -320
  344. package/src/channel/index.js +0 -903
  345. package/src/channel/internal.js +0 -236
  346. package/src/contract/aci.js +0 -376
  347. package/src/contract/compiler.js +0 -100
  348. package/src/contract/ga/helpers.js +0 -19
  349. package/src/contract/ga/index.js +0 -150
  350. package/src/index.js +0 -89
  351. package/src/node-pool/index.js +0 -172
  352. package/src/node.js +0 -116
  353. package/src/tx/builder/field-types.js +0 -61
  354. package/src/tx/builder/helpers.js +0 -334
  355. package/src/tx/builder/index.js +0 -465
  356. package/src/tx/builder/schema.js +0 -1100
  357. package/src/tx/index.js +0 -301
  358. package/src/tx/tx-object.js +0 -187
  359. package/src/tx/tx.js +0 -631
  360. package/src/tx/validator.js +0 -181
  361. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  362. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  363. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  364. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  365. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  366. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  367. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  368. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  369. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  370. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  371. package/src/utils/async-init.js +0 -45
  372. package/src/utils/crypto.js +0 -219
  373. package/src/utils/hd-wallet.js +0 -100
  374. package/src/utils/json-big.js +0 -26
  375. package/src/utils/keystore.js +0 -219
  376. package/src/utils/swagger.js +0 -156
package/src/ae/wallet.js DELETED
@@ -1,50 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Wallet module
20
- * @module @aeternity/aepp-sdk/es/ae/wallet
21
- * @export Wallet
22
- * @example import { RpcWallet } from '@aeternity/aepp-sdk'
23
- */
24
-
25
- import Ae from './'
26
- import Chain from '../chain/node'
27
- import Tx from '../tx/tx'
28
- import Contract from './contract'
29
- import GeneralizedAccount from '../contract/ga'
30
- import WalletRpc from '../utils/aepp-wallet-communication/rpc/wallet-rpc'
31
- import Oracle from './oracle'
32
- import Aens from './aens'
33
-
34
- /**
35
- * Wallet Stamp
36
- * @function
37
- * @alias module:@aeternity/aepp-sdk/es/ae/wallet
38
- * @rtype Stamp
39
- * @param {Object} [options={}] - Initializer object
40
- * @param {String} options.url - Node instance to connect to
41
- * @param {Account[]} [options.accounts] - Accounts to initialize with
42
- * @param {String} [options.account] - Public key of account to preselect
43
- * @return {Object} Wallet instance
44
- * @example Wallet({
45
- url: 'https://testnet.aeternity.io/',
46
- accounts: [MemoryAccount({keypair})],
47
- address: keypair.publicKey,
48
- })
49
- */
50
- export default Ae.compose(WalletRpc, Tx, Contract, Oracle, Aens, GeneralizedAccount, Chain)
@@ -1,269 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Chain module
20
- * @module @aeternity/aepp-sdk/es/chain
21
- * @export Chain
22
- * @example import { Chain } from '@aeternity/aepp-sdk'
23
- */
24
-
25
- import stampit from '@stamp/it'
26
- import { required } from '@stamp/required'
27
-
28
- /**
29
- * Basic Chain Stamp
30
- *
31
- * Attempting to create instances from the Stamp without overwriting all
32
- * abstract methods using composition will result in an exception.
33
- * @function
34
- * @alias module:@aeternity/aepp-sdk/es/chain
35
- * @rtype Stamp
36
- * @param {Object} [options={}] - Initializer object
37
- * @return {Object} Chain instance
38
- */
39
- const Chain = stampit({
40
- deepProps: {
41
- Ae: {
42
- defaults: {
43
- waitMined: true,
44
- verify: true,
45
- _expectedMineRate: 180000,
46
- _microBlockCycle: 3000,
47
- _maxPollInterval: 5000
48
- }
49
- }
50
- },
51
- methods: {
52
- _getPollInterval (type) {
53
- const base = {
54
- block: this.Ae.defaults._expectedMineRate,
55
- microblock: this.Ae.defaults._microBlockCycle
56
- }[type]
57
- if (!base) throw new Error(`Unknown poll type: ${type}`)
58
- return Math.min(base / 3, this.Ae.defaults._maxPollInterval)
59
- }
60
- }
61
- }, required({
62
- methods: {
63
- sendTransaction: required,
64
- height: required,
65
- awaitHeight: required,
66
- poll: required,
67
- balance: required,
68
- getBalance: required,
69
- tx: required,
70
- getTxInfo: required,
71
- mempool: required,
72
- txDryRun: required,
73
- getAccount: required
74
- }
75
- }))
76
-
77
- /**
78
- * Submit a signed transaction for mining
79
- * @function sendTransaction
80
- * @instance
81
- * @abstract
82
- * @category async
83
- * @rtype (tx: String, options?: Object) => tx: Promise[Object]|txHash: Promise[String]
84
- * @param {String} tx - Transaction to submit
85
- * @param {String} [options={}] - Options to pass to the implementation
86
- * @param {String} [options.verify=true] - Verify transaction before broadcast.
87
- * @return {Object} Transaction
88
- */
89
-
90
- /**
91
- * Obtain current height of the chain
92
- * @function height
93
- * @instance
94
- * @abstract
95
- * @category async
96
- * @rtype () => height: Number
97
- * @return {Number} Current chain height
98
- */
99
-
100
- /**
101
- * Wait for the chain to reach a specific height
102
- * @function awaitHeight
103
- * @instance
104
- * @abstract
105
- * @category async
106
- * @rtype (height: Number, options?: Object) => height: Number
107
- * @param {Object} [options={}] - Options
108
- * @param {Number} options.interval - Interval (in ms) at which to poll the chain
109
- * @param {Number} options.attempts - Number of polling attempts after which to fail
110
- * @return {Number} Current chain height
111
- */
112
-
113
- /**
114
- * Wait for a transaction to be mined
115
- * @function poll
116
- * @instance
117
- * @abstract
118
- * @category async
119
- * @rtype (th: String, options?: Object) => tx: Object
120
- * @param {Object} [options={}] - Options
121
- * @param {Number} options.interval - Interval (in ms) at which to poll the chain
122
- * @param {Number} options.blocks - Number of blocks mined after which to fail
123
- * @return {Object} The transaction as it was mined
124
- */
125
-
126
- /**
127
- * Request the balance of specified account
128
- * @function balance
129
- * @instance
130
- * @abstract
131
- * @category async
132
- * @rtype (address: String, options?: Object) => balance: Number
133
- * @param {String} address - The public account address to obtain the balance for
134
- * @param {Object} [options={}] - Options
135
- * @param {Number} options.height - The chain height at which to obtain the balance for (default:
136
- * top of chain)
137
- * @param {String} options.hash - The block hash on which to obtain the balance for (default: top
138
- * of chain)
139
- * @return {Object} The transaction as it was mined
140
- */
141
-
142
- /**
143
- * Obtain a transaction based on its hash
144
- * @function tx
145
- * @instance
146
- * @abstract
147
- * @category async
148
- * @rtype (hash: String, info = false) => tx: Object
149
- * @param {String} hash - Transaction hash
150
- * @param {Boolean} info - Retrieve additional transaction date. Works only for (ContractCreate and
151
- * ContractCall transaction's)
152
- * @return {Object} Transaction
153
- */
154
-
155
- /**
156
- * Obtain a transaction info based on its hash
157
- * @function getTxInfo
158
- * @instance
159
- * @abstract
160
- * @category async
161
- * @rtype (hash: String) => tx: Object
162
- * @param {String} hash - Transaction hash
163
- * @return {Object} Transaction
164
- */
165
-
166
- /**
167
- * Obtain transaction's from mempool
168
- * @function mempool
169
- * @instance
170
- * @abstract
171
- * @category async
172
- * @rtype () => txs: [...Object]
173
- * @return {Object[]} Transactions
174
- */
175
-
176
- /**
177
- * Obtain current generation
178
- * @function getCurrentGeneration
179
- * @instance
180
- * @abstract
181
- * @category async
182
- * @rtype () => generation: Object
183
- * @return {Object} Current Generation
184
- */
185
-
186
- /**
187
- * Get generation by hash or height
188
- * @function getGeneration
189
- * @instance
190
- * @abstract
191
- * @category async
192
- * @rtype (hashOrHeight) => generation: Object
193
- * @param {String|Number} hashOrHeight - Generation hash or height
194
- * @return {Object} Generation
195
- */
196
-
197
- /**
198
- * Wait for transaction confirmation
199
- * @function waitForTxConfirm
200
- * @instance
201
- * @abstract
202
- * @category async
203
- * @rtype (txHash: String, { confirm: Number | Boolean } = { confirm: 3 }) => Promise<Number>
204
- * @param {String} txHash - Transaction hash
205
- * @param {Object} [options] - options
206
- * @param {Number} [options.confirm=3] - Number of blocks to wait for transaction confirmation
207
- * @return {Promise<Number>} Current Height
208
- */
209
-
210
- /**
211
- * Get micro block transactions
212
- * @function getMicroBlockTransactions
213
- * @instance
214
- * @abstract
215
- * @category async
216
- * @rtype (hash) => txs: [...Object]
217
- * @return {Object[]} Transactions
218
- */
219
-
220
- /**
221
- * Get key block
222
- * @function getKeyBlock
223
- * @instance
224
- * @abstract
225
- * @category async
226
- * @rtype (hashOrHeight) => keyBlock: Object
227
- * @return {Object} Key Block
228
- */
229
-
230
- /**
231
- * Get micro block header
232
- * @function getMicroBlockHeader
233
- * @instance
234
- * @abstract
235
- * @category async
236
- * @rtype (hash) => header: Object
237
- * @return {Object} Micro block header
238
- */
239
-
240
- /**
241
- * Get account by account public key
242
- * @function getAccount
243
- * @instance
244
- * @abstract
245
- * @category async
246
- * @rtype (address, { hash, height }) => account: Object
247
- * @param {String} address - Account public key
248
- * @param {Object} [options={}] - Options
249
- * @param {Number} [options.height] - Get account on specific block by block height
250
- * @param {String} [options.hash] - Get account on specific block by block hash
251
- * @return {Object} Account
252
- */
253
-
254
- /**
255
- * Transaction dry-run
256
- * @function txDryRun
257
- * @instance
258
- * @abstract
259
- * @category async
260
- * @rtype (tx, accountAddress, options) => result: Object
261
- * @param {String} tx - transaction to execute
262
- * @param {String} accountAddress - address that will be used to execute transaction
263
- * @param {String|Number} [options.top] - hash of block on which to make dry-run
264
- * @param {Boolean} [options.txEvents] - collect and return on-chain tx events that would result
265
- * from the call
266
- * @return {Object} Result
267
- */
268
-
269
- export default Chain
package/src/chain/node.js DELETED
@@ -1,320 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
- import Chain from './'
18
- import { AE_AMOUNT_FORMATS, formatAmount } from '../utils/amount-formatter'
19
- import verifyTransaction from '../tx/validator'
20
- import NodePool from '../node-pool'
21
- import { pause } from '../utils/other'
22
- import { isNameValid, produceNameId, decode } from '../tx/builder/helpers'
23
- import { DRY_RUN_ACCOUNT } from '../tx/builder/schema'
24
- import {
25
- AensPointerContextError,
26
- DryRunError,
27
- InvalidAensNameError,
28
- InvalidTxError,
29
- RequestTimedOutError,
30
- TxTimedOutError,
31
- TxNotInChainError,
32
- ArgumentError
33
- } from '../utils/errors'
34
-
35
- /**
36
- * ChainNode module
37
- *
38
- * This is the complement to {@link module:@aeternity/aepp-sdk/es/chain}.
39
- * @module @aeternity/aepp-sdk/es/chain/node
40
- * @export ChainNode
41
- * @example import { ChainNode } from '@aeternity/aepp-sdk'
42
- */
43
-
44
- async function sendTransaction (tx, options = {}) {
45
- const opt = { ...this.Ae.defaults, ...options }
46
- if (opt.verify) {
47
- const validation = await verifyTransaction(tx, this.selectedNode.instance)
48
- if (validation.length) {
49
- const message = 'Transaction verification errors: ' +
50
- validation.map(v => v.message).join(', ')
51
- throw Object.assign(new InvalidTxError(message), {
52
- code: 'TX_VERIFICATION_ERROR',
53
- validation,
54
- transaction: tx
55
- })
56
- }
57
- }
58
-
59
- try {
60
- const { txHash } = await this.api.postTransaction({ tx }, {
61
- __queue: `tx-${await this.address?.(options).catch(() => '')}`
62
- })
63
-
64
- if (opt.waitMined) {
65
- const txData = { ...await this.poll(txHash, options), rawTx: tx }
66
- // wait for transaction confirmation
67
- if (options.confirm) {
68
- return { ...txData, confirmationHeight: await this.waitForTxConfirm(txHash, options) }
69
- }
70
- return txData
71
- }
72
- return { hash: txHash, rawTx: tx }
73
- } catch (error) {
74
- throw Object.assign(error, {
75
- rawTx: tx,
76
- verifyTx: () => verifyTransaction(tx, this.selectedNode.instance)
77
- })
78
- }
79
- }
80
-
81
- async function waitForTxConfirm (txHash, options = { confirm: 3 }) {
82
- options.confirm = options.confirm === true ? 3 : options.confirm
83
- const { blockHeight } = await this.api.getTransactionByHash(txHash)
84
- const height = await this.awaitHeight(blockHeight + options.confirm, options)
85
- const { blockHeight: newBlockHeight } = await this.api.getTransactionByHash(txHash)
86
- switch (newBlockHeight) {
87
- case -1:
88
- throw new TxNotInChainError(txHash)
89
- case blockHeight:
90
- return height
91
- default:
92
- return waitForTxConfirm(txHash, options)
93
- }
94
- }
95
-
96
- async function getAccount (address, { height, hash } = {}) {
97
- if (height) return this.api.getAccountByPubkeyAndHeight(address, height)
98
- if (hash) return this.api.getAccountByPubkeyAndHash(address, hash)
99
- return this.api.getAccountByPubkey(address)
100
- }
101
-
102
- /**
103
- * @function
104
- * @deprecated
105
- */
106
- async function balance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {
107
- const { balance } = await this.getAccount(address, { hash, height })
108
-
109
- return formatAmount(balance, { targetDenomination: format }).toString()
110
- }
111
-
112
- async function getBalance (address, { height, hash, format = AE_AMOUNT_FORMATS.AETTOS } = {}) {
113
- const { balance } = await this.getAccount(address, { hash, height }).catch(_ => ({ balance: 0 }))
114
-
115
- return formatAmount(balance, { targetDenomination: format }).toString()
116
- }
117
-
118
- /**
119
- * @deprecated use `sdk.api.getTransactionByHash/getTransactionInfoByHash` instead
120
- */
121
- async function tx (hash, info = true) {
122
- const tx = await this.api.getTransactionByHash(hash)
123
- if (['ContractCreateTx', 'ContractCallTx', 'ChannelForceProgressTx'].includes(tx.tx.type) && info && tx.blockHeight !== -1) {
124
- try {
125
- return { ...tx, ...await this.getTxInfo(hash) }
126
- } catch (e) {}
127
- }
128
- return tx
129
- }
130
-
131
- async function height () {
132
- return (await this.api.getCurrentKeyBlockHeight()).height
133
- }
134
-
135
- async function awaitHeight (
136
- height,
137
- { interval = this._getPollInterval('block'), attempts = 20 } = {}
138
- ) {
139
- let currentHeight
140
- for (let i = 0; i < attempts; i++) {
141
- if (i) await pause(interval)
142
- currentHeight = await this.height()
143
- if (currentHeight >= height) return currentHeight
144
- }
145
- throw new RequestTimedOutError((attempts - 1) * interval, currentHeight, height)
146
- }
147
-
148
- async function poll (th, { blocks = 10, interval = this._getPollInterval('microblock') } = {}) {
149
- const max = await this.height() + blocks
150
- do {
151
- const tx = await this.api.getTransactionByHash(th)
152
- if (tx.blockHeight !== -1) return tx
153
- await pause(interval)
154
- } while (await this.height() < max)
155
- const status = this.api.getCheckTxInPool && (await this.api.getCheckTxInPool(th)).status
156
- throw new TxTimedOutError(blocks, th, status)
157
- }
158
-
159
- /**
160
- * @deprecated use `sdk.api.getTransactionInfoByHash` instead
161
- */
162
- async function getTxInfo (hash) {
163
- const result = await this.api.getTransactionInfoByHash(hash)
164
- return result.callInfo || result
165
- }
166
-
167
- async function mempool () {
168
- return this.api.getPendingTransactions()
169
- }
170
-
171
- async function getCurrentGeneration () {
172
- return this.api.getCurrentGeneration()
173
- }
174
-
175
- async function getGeneration (hashOrHeight) {
176
- if (typeof hashOrHeight === 'string') return this.api.getGenerationByHash(hashOrHeight)
177
- if (typeof hashOrHeight === 'number') return this.api.getGenerationByHeight(hashOrHeight)
178
- throw new ArgumentError('hashOrHeight', 'a string or number', hashOrHeight)
179
- }
180
-
181
- async function getMicroBlockTransactions (hash) {
182
- return (await this.api.getMicroBlockTransactionsByHash(hash)).transactions
183
- }
184
-
185
- async function getKeyBlock (hashOrHeight) {
186
- if (typeof hashOrHeight === 'string') return this.api.getKeyBlockByHash(hashOrHeight)
187
- if (typeof hashOrHeight === 'number') return this.api.getKeyBlockByHeight(hashOrHeight)
188
- throw new ArgumentError('hashOrHeight', 'a string or number', hashOrHeight)
189
- }
190
-
191
- async function getMicroBlockHeader (hash) {
192
- return this.api.getMicroBlockHeaderByHash(hash)
193
- }
194
-
195
- async function txDryRunHandler (key) {
196
- const rs = this._txDryRun[key]
197
- delete this._txDryRun[key]
198
-
199
- let dryRunRes
200
- try {
201
- dryRunRes = await this.api.protectedDryRunTxs({
202
- top: rs[0].top,
203
- txEvents: rs[0].txEvents,
204
- txs: rs.map(req => ({ tx: req.tx })),
205
- accounts: Array.from(new Set(rs.map(req => req.accountAddress)))
206
- .map(pubKey => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount }))
207
- })
208
- } catch (error) {
209
- rs.forEach(({ reject }) => reject(error))
210
- return
211
- }
212
-
213
- const { results, txEvents } = dryRunRes
214
- results.forEach(({ result, reason, ...resultPayload }, idx) => {
215
- const { resolve, reject, tx, options, accountAddress } = rs[idx]
216
- if (result === 'ok') return resolve({ ...resultPayload, txEvents })
217
- reject(Object.assign(
218
- new DryRunError(reason), { tx, accountAddress, options }
219
- ))
220
- })
221
- }
222
-
223
- async function txDryRun (tx, accountAddress, { top, txEvents, combine }) {
224
- const key = combine ? [top, txEvents].join() : 'immediate'
225
- this._txDryRun ??= {}
226
- this._txDryRun[key] ??= []
227
- return new Promise((resolve, reject) => {
228
- this._txDryRun[key].push({ tx, accountAddress, top, txEvents, resolve, reject })
229
- if (!combine) {
230
- txDryRunHandler.call(this, key)
231
- return
232
- }
233
- this._txDryRun[key].timeout ??= setTimeout(txDryRunHandler.bind(this, key))
234
- })
235
- }
236
-
237
- async function getContractByteCode (contractId) {
238
- return this.api.getContractCode(contractId)
239
- }
240
-
241
- async function getContract (contractId) {
242
- return this.api.getContract(contractId)
243
- }
244
-
245
- async function getName (name) {
246
- return this.api.getNameEntryByName(name)
247
- }
248
-
249
- /**
250
- * Resolve AENS name and return name hash
251
- * @param {String} nameOrId
252
- * @param {String} key in AENS pointers record
253
- * @param {Object} [options]
254
- * @param {Boolean} [options.verify] To ensure that name exist and have a corresponding pointer
255
- * // TODO: avoid that to don't trust to current api gateway
256
- * @param {Boolean} [options.resolveByNode] Enables pointer resolving using node
257
- * @return {String} Address or AENS name hash
258
- */
259
- async function resolveName (nameOrId, key, { verify, resolveByNode } = {}) {
260
- if (!nameOrId || typeof nameOrId !== 'string') {
261
- throw new InvalidAensNameError(`Name or address should be a string: ${nameOrId}`)
262
- }
263
- try {
264
- decode(nameOrId)
265
- return nameOrId
266
- } catch (error) {}
267
- if (isNameValid(nameOrId)) {
268
- if (verify || resolveByNode) {
269
- const name = await this.api.getNameEntryByName(nameOrId)
270
- const pointer = name.pointers.find(pointer => pointer.key === key)
271
- if (!pointer) {
272
- throw new AensPointerContextError(`Name ${nameOrId} don't have pointers for ${key}`)
273
- }
274
- if (resolveByNode) return pointer.id
275
- }
276
- return produceNameId(nameOrId)
277
- }
278
- throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`)
279
- }
280
-
281
- /**
282
- * ChainNode Stamp
283
- *
284
- * This is implementation of {@link module:@aeternity/aepp-sdk/es/chain--Chain}
285
- * composed with {@link module:@aeternity/aepp-sdk/es/contract/node--ContractNodeAPI} and
286
- * {@link module:@aeternity/aepp-sdk/es/oracle/node--OracleNodeAPI}
287
- * @function
288
- * @alias module:@aeternity/aepp-sdk/es/chain/node
289
- * @rtype Stamp
290
- * @param {Object} [options={}] - Initializer object
291
- * @return {Object} ChainNode instance
292
- * @example ChainNode({url: 'https://testnet.aeternity.io/'})
293
- */
294
- const ChainNode = Chain.compose(NodePool, {
295
- methods: {
296
- sendTransaction,
297
- balance,
298
- getBalance,
299
- getAccount,
300
- tx,
301
- height,
302
- awaitHeight,
303
- poll,
304
- getTxInfo,
305
- mempool,
306
- getCurrentGeneration,
307
- getGeneration,
308
- getMicroBlockHeader,
309
- getMicroBlockTransactions,
310
- getKeyBlock,
311
- txDryRun,
312
- getContractByteCode,
313
- getContract,
314
- getName,
315
- waitForTxConfirm,
316
- resolveName
317
- }
318
- })
319
-
320
- export default ChainNode