@aeternity/aepp-sdk 10.0.0 → 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 (424) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +15 -14
  3. package/dist/aepp-sdk.browser-script.js +1 -1
  4. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
  5. package/dist/aepp-sdk.browser-script.js.map +1 -1
  6. package/dist/aepp-sdk.browser.js +1 -1
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +1 -1
  9. package/dist/aepp-sdk.js.map +1 -1
  10. package/es/AeSdk.d.ts +37 -0
  11. package/es/AeSdk.mjs +81 -0
  12. package/es/AeSdk.mjs.map +1 -0
  13. package/es/AeSdkAepp.d.ts +69 -0
  14. package/es/AeSdkAepp.mjs +175 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +212 -0
  17. package/es/AeSdkBase.mjs +310 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +103 -0
  20. package/es/AeSdkWallet.mjs +322 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +44 -0
  23. package/es/Node.mjs +141 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +65 -0
  26. package/es/account/Base.mjs +123 -0
  27. package/es/account/Base.mjs.map +1 -0
  28. package/es/account/Memory.d.ts +25 -0
  29. package/es/account/Memory.mjs +81 -0
  30. package/es/account/Memory.mjs.map +1 -0
  31. package/es/account/Rpc.d.ts +27 -0
  32. package/es/account/Rpc.mjs +79 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +209 -0
  35. package/es/aens.mjs +332 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  51. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  52. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  54. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  55. package/es/aepp-wallet-communication/schema.d.ts +118 -0
  56. package/es/aepp-wallet-communication/schema.mjs +214 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  60. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  61. package/es/apis/compiler/compiler.d.ts +92 -0
  62. package/es/apis/compiler/compiler.mjs +576 -0
  63. package/es/apis/compiler/compiler.mjs.map +1 -0
  64. package/es/apis/compiler/index.d.ts +2 -0
  65. package/es/apis/compiler/index.mjs +3 -0
  66. package/es/apis/compiler/index.mjs.map +1 -0
  67. package/es/apis/compiler/models/index.d.ts +248 -0
  68. package/es/apis/compiler/models/index.mjs +48 -0
  69. package/es/apis/compiler/models/index.mjs.map +1 -0
  70. package/es/apis/compiler/models/mappers.d.ts +23 -0
  71. package/es/apis/compiler/models/mappers.mjs +585 -0
  72. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  73. package/es/apis/compiler/models/parameters.d.ts +13 -0
  74. package/es/apis/compiler/models/parameters.mjs +71 -0
  75. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  76. package/es/apis/node/index.d.ts +2 -0
  77. package/es/apis/node/index.mjs +3 -0
  78. package/es/apis/node/index.mjs.map +1 -0
  79. package/es/apis/node/models/index.d.ts +1061 -0
  80. package/es/apis/node/models/index.mjs +2 -0
  81. package/es/apis/node/models/index.mjs.map +1 -0
  82. package/es/apis/node/models/mappers.d.ts +95 -0
  83. package/es/apis/node/models/mappers.mjs +4164 -0
  84. package/es/apis/node/models/mappers.mjs.map +1 -0
  85. package/es/apis/node/models/parameters.d.ts +17 -0
  86. package/es/apis/node/models/parameters.mjs +165 -0
  87. package/es/apis/node/models/parameters.mjs.map +1 -0
  88. package/es/apis/node/node.d.ts +215 -0
  89. package/es/apis/node/node.mjs +1165 -0
  90. package/es/apis/node/node.mjs.map +1 -0
  91. package/es/chain.d.ts +220 -0
  92. package/es/chain.mjs +524 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/{handlers.js → handlers.mjs} +163 -130
  96. package/es/channel/handlers.mjs.map +1 -0
  97. package/es/channel/index.d.ts +634 -0
  98. package/es/channel/index.mjs +978 -0
  99. package/es/channel/index.mjs.map +1 -0
  100. package/es/channel/internal.d.ts +100 -0
  101. package/es/channel/internal.mjs +328 -0
  102. package/es/channel/internal.mjs.map +1 -0
  103. package/es/contract/Compiler.d.ts +17 -0
  104. package/es/contract/Compiler.mjs +67 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +125 -0
  107. package/es/contract/aci.mjs +496 -0
  108. package/es/contract/aci.mjs.map +1 -0
  109. package/es/contract/ga.d.ts +68 -0
  110. package/es/contract/ga.mjs +190 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +68 -0
  113. package/es/contract/methods.mjs +101 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/index.d.ts +32 -0
  116. package/es/index.mjs +49 -0
  117. package/es/index.mjs.map +1 -0
  118. package/es/oracle.d.ts +154 -0
  119. package/es/oracle.mjs +288 -0
  120. package/es/oracle.mjs.map +1 -0
  121. package/es/spend.d.ts +61 -0
  122. package/es/spend.mjs +122 -0
  123. package/es/spend.mjs.map +1 -0
  124. package/es/tx/builder/constants.d.ts +41 -0
  125. package/es/tx/builder/constants.mjs +100 -0
  126. package/es/tx/builder/constants.mjs.map +1 -0
  127. package/es/tx/builder/field-types.d.ts +62 -0
  128. package/es/tx/builder/field-types.mjs +126 -0
  129. package/es/tx/builder/field-types.mjs.map +1 -0
  130. package/es/tx/builder/helpers.d.ts +131 -0
  131. package/es/tx/builder/helpers.mjs +223 -0
  132. package/es/tx/builder/helpers.mjs.map +1 -0
  133. package/es/tx/builder/index.d.ts +75 -0
  134. package/es/tx/builder/index.mjs +424 -0
  135. package/es/tx/builder/index.mjs.map +1 -0
  136. package/es/tx/builder/schema.d.ts +350 -0
  137. package/es/tx/builder/schema.mjs +320 -0
  138. package/es/tx/builder/schema.mjs.map +1 -0
  139. package/es/tx/index.d.ts +63 -0
  140. package/es/tx/index.mjs +209 -0
  141. package/es/tx/index.mjs.map +1 -0
  142. package/es/tx/min-fee.d.ts +20 -0
  143. package/es/tx/min-fee.mjs +148 -0
  144. package/es/tx/min-fee.mjs.map +1 -0
  145. package/es/tx/validator.d.ts +19 -0
  146. package/es/tx/validator.mjs +240 -0
  147. package/es/tx/validator.mjs.map +1 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  149. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  151. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  152. package/es/typings/bip32-path/index.d.mjs +2 -0
  153. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  154. package/es/typings/blakejs/index.d.mjs +2 -0
  155. package/es/typings/blakejs/index.d.mjs.map +1 -0
  156. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  157. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  158. package/es/utils/amount-formatter.d.ts +42 -0
  159. package/es/utils/{amount-formatter.js → amount-formatter.mjs} +38 -44
  160. package/es/utils/amount-formatter.mjs.map +1 -0
  161. package/es/utils/autorest.d.ts +6 -0
  162. package/es/utils/autorest.mjs +97 -0
  163. package/es/utils/autorest.mjs.map +1 -0
  164. package/es/utils/bignumber.d.ts +13 -0
  165. package/es/utils/bignumber.mjs +23 -0
  166. package/es/utils/bignumber.mjs.map +1 -0
  167. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  168. package/es/utils/{bytes.js → bytes.mjs} +26 -22
  169. package/es/utils/bytes.mjs.map +1 -0
  170. package/es/utils/crypto.d.ts +103 -0
  171. package/es/utils/crypto.mjs +221 -0
  172. package/es/utils/crypto.mjs.map +1 -0
  173. package/es/utils/encoder.d.ts +26 -0
  174. package/es/utils/encoder.mjs +102 -0
  175. package/es/utils/encoder.mjs.map +1 -0
  176. package/es/utils/errors.d.ts +481 -0
  177. package/es/utils/errors.mjs +882 -0
  178. package/es/utils/errors.mjs.map +1 -0
  179. package/es/utils/hd-wallet.d.ts +34 -0
  180. package/es/utils/hd-wallet.mjs +122 -0
  181. package/es/utils/hd-wallet.mjs.map +1 -0
  182. package/es/utils/json-big.d.ts +5 -0
  183. package/es/utils/json-big.mjs +41 -0
  184. package/es/utils/json-big.mjs.map +1 -0
  185. package/es/utils/keystore.d.ts +51 -0
  186. package/es/utils/keystore.mjs +145 -0
  187. package/es/utils/keystore.mjs.map +1 -0
  188. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  189. package/es/utils/{mptree.js → mptree.mjs} +33 -25
  190. package/es/utils/mptree.mjs.map +1 -0
  191. package/es/utils/other.d.ts +14 -0
  192. package/es/utils/other.mjs +28 -0
  193. package/es/utils/other.mjs.map +1 -0
  194. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  195. package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
  196. package/es/utils/semver-satisfies.mjs.map +1 -0
  197. package/es/utils/string.d.ts +24 -0
  198. package/es/utils/{string.js → string.mjs} +9 -11
  199. package/es/utils/string.mjs.map +1 -0
  200. package/package.json +67 -64
  201. package/src/AeSdk.ts +65 -0
  202. package/src/AeSdkAepp.ts +167 -0
  203. package/src/AeSdkBase.ts +320 -0
  204. package/src/AeSdkWallet.ts +332 -0
  205. package/src/Node.ts +167 -0
  206. package/src/account/Base.ts +114 -0
  207. package/src/account/Memory.ts +83 -0
  208. package/src/account/Rpc.ts +67 -0
  209. package/src/aens.ts +391 -0
  210. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  211. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  212. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  213. package/{es/utils/crypto-ts.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
  214. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  215. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  216. package/src/aepp-wallet-communication/schema.ts +181 -0
  217. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  218. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  219. package/src/apis/compiler/compiler.ts +585 -0
  220. package/src/apis/compiler/index.ts +2 -0
  221. package/src/apis/compiler/models/index.ts +301 -0
  222. package/src/apis/compiler/models/mappers.ts +583 -0
  223. package/src/apis/compiler/models/parameters.ts +93 -0
  224. package/src/apis/node/code-model-v4.yaml +10046 -0
  225. package/src/apis/node/index.ts +2 -0
  226. package/src/apis/node/models/index.ts +1253 -0
  227. package/src/apis/node/models/mappers.ts +4278 -0
  228. package/src/apis/node/models/parameters.ts +188 -0
  229. package/src/apis/node/node.ts +1299 -0
  230. package/src/chain.ts +444 -0
  231. package/src/channel/{handlers.js → handlers.ts} +238 -143
  232. package/src/channel/index.ts +991 -0
  233. package/src/channel/internal.ts +345 -0
  234. package/src/contract/Compiler.ts +66 -0
  235. package/src/contract/aci.ts +529 -0
  236. package/src/contract/ga.ts +178 -0
  237. package/src/contract/methods.ts +118 -0
  238. package/src/index.ts +51 -0
  239. package/src/oracle.ts +342 -0
  240. package/src/spend.ts +152 -0
  241. package/src/tx/builder/constants.ts +96 -0
  242. package/src/tx/builder/field-types.ts +111 -0
  243. package/src/tx/builder/helpers.ts +253 -0
  244. package/src/tx/builder/index.ts +394 -0
  245. package/src/tx/builder/schema.ts +771 -0
  246. package/src/tx/index.ts +199 -0
  247. package/src/tx/min-fee.ts +136 -0
  248. package/src/tx/validator.ts +226 -0
  249. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  250. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  251. package/src/typings/bip32-path/index.d.ts +33 -0
  252. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  253. package/src/utils/amount-formatter.ts +29 -41
  254. package/src/utils/autorest.ts +90 -0
  255. package/src/utils/bignumber.ts +9 -19
  256. package/src/utils/bytes.ts +15 -16
  257. package/src/utils/crypto.ts +217 -0
  258. package/src/utils/encoder.ts +98 -0
  259. package/src/utils/errors.ts +817 -0
  260. package/src/utils/hd-wallet.ts +134 -0
  261. package/src/utils/json-big.ts +26 -0
  262. package/src/utils/keystore.ts +179 -0
  263. package/src/utils/mptree.ts +26 -20
  264. package/src/utils/other.ts +28 -43
  265. package/src/utils/string.ts +8 -10
  266. package/CHANGELOG.md +0 -1603
  267. package/es/account/base.js +0 -169
  268. package/es/account/base.js.map +0 -1
  269. package/es/account/memory.js +0 -84
  270. package/es/account/memory.js.map +0 -1
  271. package/es/account/multiple.js +0 -178
  272. package/es/account/multiple.js.map +0 -1
  273. package/es/ae/aens.js +0 -408
  274. package/es/ae/aens.js.map +0 -1
  275. package/es/ae/aepp.js +0 -45
  276. package/es/ae/aepp.js.map +0 -1
  277. package/es/ae/contract.js +0 -312
  278. package/es/ae/contract.js.map +0 -1
  279. package/es/ae/index.js +0 -206
  280. package/es/ae/index.js.map +0 -1
  281. package/es/ae/oracle.js +0 -322
  282. package/es/ae/oracle.js.map +0 -1
  283. package/es/ae/universal.js +0 -45
  284. package/es/ae/universal.js.map +0 -1
  285. package/es/ae/wallet.js +0 -50
  286. package/es/ae/wallet.js.map +0 -1
  287. package/es/amount-formatter.d.ts +0 -58
  288. package/es/bignumber.d.ts +0 -24
  289. package/es/chain/index.js +0 -256
  290. package/es/chain/index.js.map +0 -1
  291. package/es/chain/node.js +0 -394
  292. package/es/chain/node.js.map +0 -1
  293. package/es/channel/handlers.js.map +0 -1
  294. package/es/channel/index.js +0 -980
  295. package/es/channel/index.js.map +0 -1
  296. package/es/channel/internal.js +0 -266
  297. package/es/channel/internal.js.map +0 -1
  298. package/es/contract/aci/helpers.js +0 -298
  299. package/es/contract/aci/helpers.js.map +0 -1
  300. package/es/contract/aci/index.js +0 -361
  301. package/es/contract/aci/index.js.map +0 -1
  302. package/es/contract/aci/transformation.js +0 -66
  303. package/es/contract/aci/transformation.js.map +0 -1
  304. package/es/contract/compiler.js +0 -244
  305. package/es/contract/compiler.js.map +0 -1
  306. package/es/contract/ga/helpers.js +0 -22
  307. package/es/contract/ga/helpers.js.map +0 -1
  308. package/es/contract/ga/index.js +0 -170
  309. package/es/contract/ga/index.js.map +0 -1
  310. package/es/contract/index.js +0 -162
  311. package/es/contract/index.js.map +0 -1
  312. package/es/crypto-ts.d.ts +0 -9
  313. package/es/index.js +0 -57
  314. package/es/index.js.map +0 -1
  315. package/es/node-pool/index.js +0 -187
  316. package/es/node-pool/index.js.map +0 -1
  317. package/es/node.js +0 -132
  318. package/es/node.js.map +0 -1
  319. package/es/other.d.ts +0 -31
  320. package/es/string.d.ts +0 -26
  321. package/es/tx/builder/helpers.js +0 -305
  322. package/es/tx/builder/helpers.js.map +0 -1
  323. package/es/tx/builder/index.js +0 -595
  324. package/es/tx/builder/index.js.map +0 -1
  325. package/es/tx/builder/schema.js +0 -814
  326. package/es/tx/builder/schema.js.map +0 -1
  327. package/es/tx/index.js +0 -300
  328. package/es/tx/index.js.map +0 -1
  329. package/es/tx/tx-object.js +0 -276
  330. package/es/tx/tx-object.js.map +0 -1
  331. package/es/tx/tx.js +0 -937
  332. package/es/tx/tx.js.map +0 -1
  333. package/es/tx/validator.js +0 -208
  334. package/es/tx/validator.js.map +0 -1
  335. package/es/typings/blakejs/index.d.js +0 -2
  336. package/es/typings/blakejs/index.d.js.map +0 -1
  337. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
  338. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
  339. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
  340. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
  341. package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
  342. package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
  343. package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
  344. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
  345. package/es/utils/aepp-wallet-communication/helpers.js +0 -103
  346. package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
  347. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
  348. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
  349. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
  350. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
  351. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
  352. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
  353. package/es/utils/aepp-wallet-communication/schema.js +0 -107
  354. package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
  355. package/es/utils/aepp-wallet-communication/wallet-detector.js +0 -109
  356. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
  357. package/es/utils/amount-formatter.js.map +0 -1
  358. package/es/utils/async-init.js +0 -67
  359. package/es/utils/async-init.js.map +0 -1
  360. package/es/utils/bignumber.js +0 -28
  361. package/es/utils/bignumber.js.map +0 -1
  362. package/es/utils/bytes.js.map +0 -1
  363. package/es/utils/crypto-ts.js.map +0 -1
  364. package/es/utils/crypto.js +0 -304
  365. package/es/utils/crypto.js.map +0 -1
  366. package/es/utils/hd-wallet.js +0 -112
  367. package/es/utils/hd-wallet.js.map +0 -1
  368. package/es/utils/json-big.js +0 -45
  369. package/es/utils/json-big.js.map +0 -1
  370. package/es/utils/keystore.js +0 -228
  371. package/es/utils/keystore.js.map +0 -1
  372. package/es/utils/mptree.js.map +0 -1
  373. package/es/utils/other.js +0 -43
  374. package/es/utils/other.js.map +0 -1
  375. package/es/utils/semver-satisfies.js.map +0 -1
  376. package/es/utils/string.js.map +0 -1
  377. package/es/utils/swagger.js +0 -132
  378. package/es/utils/swagger.js.map +0 -1
  379. package/src/account/base.js +0 -153
  380. package/src/account/memory.js +0 -78
  381. package/src/account/multiple.js +0 -154
  382. package/src/ae/aens.js +0 -366
  383. package/src/ae/aepp.js +0 -45
  384. package/src/ae/contract.js +0 -285
  385. package/src/ae/index.js +0 -167
  386. package/src/ae/oracle.js +0 -296
  387. package/src/ae/universal.js +0 -47
  388. package/src/ae/wallet.js +0 -50
  389. package/src/chain/index.js +0 -250
  390. package/src/chain/node.js +0 -293
  391. package/src/channel/index.js +0 -898
  392. package/src/channel/internal.js +0 -231
  393. package/src/contract/aci/index.js +0 -317
  394. package/src/contract/aci/transformation.js +0 -72
  395. package/src/contract/compiler.js +0 -195
  396. package/src/contract/ga/helpers.js +0 -17
  397. package/src/contract/ga/index.js +0 -147
  398. package/src/contract/index.js +0 -163
  399. package/src/index.js +0 -90
  400. package/src/node-pool/index.js +0 -171
  401. package/src/node.js +0 -118
  402. package/src/tx/builder/helpers.js +0 -325
  403. package/src/tx/builder/index.js +0 -460
  404. package/src/tx/builder/schema.js +0 -1211
  405. package/src/tx/index.js +0 -301
  406. package/src/tx/tx-object.js +0 -186
  407. package/src/tx/tx.js +0 -622
  408. package/src/tx/validator.js +0 -161
  409. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
  410. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
  411. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  412. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
  413. package/src/utils/aepp-wallet-communication/helpers.js +0 -70
  414. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
  415. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
  416. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
  417. package/src/utils/aepp-wallet-communication/schema.js +0 -108
  418. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
  419. package/src/utils/async-init.js +0 -41
  420. package/src/utils/crypto.js +0 -312
  421. package/src/utils/hd-wallet.js +0 -115
  422. package/src/utils/json-big.js +0 -26
  423. package/src/utils/keystore.js +0 -223
  424. package/src/utils/swagger.js +0 -133
package/src/chain.ts ADDED
@@ -0,0 +1,444 @@
1
+ /*
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2022 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 { AE_AMOUNT_FORMATS, formatAmount } from './utils/amount-formatter'
18
+ import verifyTransaction from './tx/validator'
19
+ import { pause } from './utils/other'
20
+ import { isNameValid, produceNameId, decode } from './tx/builder/helpers'
21
+ import { DRY_RUN_ACCOUNT, AensName } from './tx/builder/schema'
22
+ import {
23
+ AensPointerContextError, DryRunError, InvalidAensNameError, InvalidTxError,
24
+ RequestTimedOutError, TxTimedOutError, TxNotInChainError, InternalError
25
+ } from './utils/errors'
26
+ import Node, { TransformNodeType } from './Node'
27
+ import {
28
+ Account as AccountNode, ByteCode, ContractObject, DryRunResult, DryRunResults,
29
+ Generation, KeyBlock, MicroBlockHeader, NameEntry, SignedTx
30
+ } from './apis/node'
31
+ import { EncodedData } from './utils/encoder'
32
+ import AccountBase from './account/Base'
33
+
34
+ export function _getPollInterval (
35
+ type: 'block' | 'microblock',
36
+ { _expectedMineRate = 180000, _microBlockCycle = 3000, _maxPollInterval = 5000 }:
37
+ { _expectedMineRate?: number, _microBlockCycle?: number, _maxPollInterval?: number }
38
+ ): number {
39
+ const base = {
40
+ block: _expectedMineRate,
41
+ microblock: _microBlockCycle
42
+ }[type]
43
+ return Math.min(base / 3, _maxPollInterval)
44
+ }
45
+
46
+ /**
47
+ * Submit a signed transaction for mining
48
+ * @param tx - Transaction to submit
49
+ * @param options - Options
50
+ * @param options.onNode - Node to use
51
+ * @param options.onAccount - Account to use
52
+ * @param options.verify - Verify transaction before sending
53
+ * @param options.waitMined - Ensure that transaction get into block
54
+ * @param options.confirm - Number of micro blocks that should be mined after tx get included
55
+ * @returns Transaction details
56
+ */
57
+ export async function sendTransaction (
58
+ tx: EncodedData<'tx'>,
59
+ { onNode, onAccount, verify = true, waitMined = true, confirm, ...options }:
60
+ SendTransactionOptions
61
+ ): Promise<SendTransactionReturnType> {
62
+ if (verify) {
63
+ const validation = await verifyTransaction(tx, onNode)
64
+ if (validation.length > 0) {
65
+ const message = 'Transaction verification errors: ' +
66
+ validation.map((v: { message: string }) => v.message).join(', ')
67
+ throw new InvalidTxError(message, validation, tx)
68
+ }
69
+ }
70
+
71
+ try {
72
+ const { txHash } = await onNode.postTransaction({ tx }, {
73
+ requestOptions: {
74
+ customHeaders: {
75
+ __queue: `tx-${await onAccount?.address(options).catch(() => '') ?? ''}`
76
+ }
77
+ }
78
+ })
79
+
80
+ if (waitMined) {
81
+ const pollResult = await poll(txHash, { onNode, ...options })
82
+ const txData = {
83
+ ...pollResult,
84
+ hash: pollResult.hash as EncodedData<'th'>,
85
+ rawTx: tx
86
+ }
87
+ // wait for transaction confirmation
88
+ if (confirm != null && (confirm === true || confirm > 0)) {
89
+ const c = typeof confirm === 'boolean' ? undefined : confirm
90
+ return {
91
+ ...txData,
92
+ confirmationHeight: await waitForTxConfirm(txHash, { onNode, confirm: c, ...options })
93
+ }
94
+ }
95
+ return txData
96
+ }
97
+ return { hash: txHash, rawTx: tx }
98
+ } catch (error) {
99
+ throw Object.assign(error, {
100
+ rawTx: tx,
101
+ verifyTx: async () => await verifyTransaction(tx, onNode)
102
+ })
103
+ }
104
+ }
105
+
106
+ type SendTransactionOptionsType = {
107
+ onNode: Node
108
+ onAccount?: AccountBase
109
+ verify?: boolean
110
+ waitMined?: boolean
111
+ confirm?: boolean | number
112
+ } & Parameters<typeof poll>[1] & Omit<Parameters<typeof waitForTxConfirm>[1], 'confirm'>
113
+ interface SendTransactionOptions extends SendTransactionOptionsType {}
114
+ interface SendTransactionReturnType extends Partial<TransformNodeType<SignedTx>> {
115
+ hash: EncodedData<'th'>
116
+ rawTx: EncodedData<'tx'>
117
+ confirmationHeight?: number
118
+ }
119
+
120
+ /**
121
+ * Wait for transaction confirmation
122
+ * @param txHash - Transaction hash
123
+ * @param options - Options
124
+ * @param options.confirm - Number of micro blocks to wait for transaction confirmation
125
+ * @param options.onNode - Node to use
126
+ * @returns Current Height
127
+ */
128
+ export async function waitForTxConfirm (
129
+ txHash: EncodedData<'th'>,
130
+ { confirm = 3, onNode, ...options }:
131
+ { confirm?: number, onNode: Node } & Parameters<typeof awaitHeight>[1]
132
+ ): Promise<number> {
133
+ const { blockHeight } = await onNode.getTransactionByHash(txHash)
134
+ const height = await awaitHeight(blockHeight + confirm, { onNode, ...options })
135
+ const { blockHeight: newBlockHeight } = await onNode.getTransactionByHash(txHash)
136
+ switch (newBlockHeight) {
137
+ case -1:
138
+ throw new TxNotInChainError(txHash)
139
+ case blockHeight:
140
+ return height
141
+ default:
142
+ return await waitForTxConfirm(txHash, { onNode, confirm, ...options })
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Get account by account public key
148
+ * @param address - Account address (public key)
149
+ * @param options - Options
150
+ * @param options.height - Get account on specific block by block height
151
+ * @param options.hash - Get account on specific block by micro block hash or key block hash
152
+ * @param options.onNode - Node to use
153
+ */
154
+ export async function getAccount (
155
+ address: EncodedData<'ak' | 'ct'>,
156
+ { height, hash, onNode }:
157
+ { height?: number, hash?: EncodedData<'kh' | 'mh'>, onNode: Node }
158
+ ): Promise<TransformNodeType<AccountNode>> {
159
+ if (height != null) return await onNode.getAccountByPubkeyAndHeight(address, height)
160
+ if (hash != null) return await onNode.getAccountByPubkeyAndHash(address, hash)
161
+ return await onNode.getAccountByPubkey(address)
162
+ }
163
+
164
+ /**
165
+ * Request the balance of specified account
166
+ * @param address - The public account address to obtain the balance for
167
+ * @param options - Options
168
+ * @param options.format
169
+ * @param options.height - The chain height at which to obtain the balance for
170
+ * (default: top of chain)
171
+ * @param options.hash - The block hash on which to obtain the balance for (default: top of chain)
172
+ */
173
+ export async function getBalance (
174
+ address: EncodedData<'ak' | 'ct'>,
175
+ { format = AE_AMOUNT_FORMATS.AETTOS, ...options }:
176
+ { format?: AE_AMOUNT_FORMATS } & Parameters<typeof getAccount>[1]
177
+ ): Promise<string> {
178
+ const { balance } = await getAccount(address, options).catch(() => ({ balance: 0n }))
179
+
180
+ return formatAmount(balance, { targetDenomination: format })
181
+ }
182
+
183
+ /**
184
+ * Obtain current height of the chain
185
+ * @returns Current chain height
186
+ */
187
+ export async function height ({ onNode }: { onNode: Node }): Promise<number> {
188
+ return (await onNode.getCurrentKeyBlockHeight()).height
189
+ }
190
+
191
+ /**
192
+ * Wait for the chain to reach a specific height
193
+ * @param height - Height to wait for
194
+ * @param options - Options
195
+ * @param options.interval - Interval (in ms) at which to poll the chain
196
+ * @param options.attempts - Number of polling attempts after which to fail
197
+ * @param options.onNode - Node to use
198
+ * @returns Current chain height
199
+ */
200
+ export async function awaitHeight (
201
+ height: number,
202
+ { interval, attempts = 20, onNode, ...options }:
203
+ { interval?: number, attempts?: number, onNode: Node }
204
+ & Parameters<typeof _getPollInterval>[1]
205
+ ): Promise<number> {
206
+ interval ??= _getPollInterval('block', options)
207
+ let currentHeight
208
+ for (let i = 0; i < attempts; i++) {
209
+ if (i !== 0) await pause(interval)
210
+ currentHeight = (await onNode.getCurrentKeyBlockHeight()).height
211
+ if (currentHeight >= height) return currentHeight
212
+ }
213
+ throw new RequestTimedOutError((attempts - 1) * interval, currentHeight, height)
214
+ }
215
+
216
+ /**
217
+ * Wait for a transaction to be mined
218
+ * @param th - The hash of transaction to poll
219
+ * @param options - Options
220
+ * @param options.interval - Interval (in ms) at which to poll the chain
221
+ * @param options.blocks - Number of blocks mined after which to fail
222
+ * @param options.onNode - Node to use
223
+ * @returns The transaction as it was mined
224
+ */
225
+ export async function poll (
226
+ th: EncodedData<'th'>,
227
+ { blocks = 10, interval, onNode, ...options }:
228
+ { blocks?: number, interval?: number, onNode: Node } & Parameters<typeof _getPollInterval>[1]
229
+ ): Promise<TransformNodeType<SignedTx>> {
230
+ interval ??= _getPollInterval('microblock', options)
231
+ const max = await height({ onNode }) + blocks
232
+ do {
233
+ const tx = await onNode.getTransactionByHash(th)
234
+ if (tx.blockHeight !== -1) return tx
235
+ await pause(interval)
236
+ } while (await height({ onNode }) < max)
237
+ throw new TxTimedOutError(blocks, th)
238
+ }
239
+
240
+ /**
241
+ * Obtain current generation
242
+ * @param options - Options
243
+ * @param options.onNode - Node to use
244
+ * @returns Current Generation
245
+ */
246
+ export async function getCurrentGeneration (
247
+ { onNode }: { onNode: Node }
248
+ ): Promise<TransformNodeType<Generation>> {
249
+ return await onNode.getCurrentGeneration()
250
+ }
251
+
252
+ /**
253
+ * Get generation by hash or height
254
+ * @param hashOrHeight - Generation hash or height
255
+ * @param options - Options
256
+ * @param options.onNode - Node to use
257
+ * @returns Generation
258
+ */
259
+ export async function getGeneration (
260
+ hashOrHeight: EncodedData<'kh'> | number, { onNode }: { onNode: Node }
261
+ ): Promise<TransformNodeType<Generation>> {
262
+ if (typeof hashOrHeight === 'number') return await onNode.getGenerationByHeight(hashOrHeight)
263
+ return await onNode.getGenerationByHash(hashOrHeight)
264
+ }
265
+
266
+ /**
267
+ * Get micro block transactions
268
+ * @param hash - Micro block hash
269
+ * @param options - Options
270
+ * @param options.onNode - Node to use
271
+ * @returns Transactions
272
+ */
273
+ export async function getMicroBlockTransactions (
274
+ hash: EncodedData<'mh'>, { onNode }: { onNode: Node }
275
+ ): Promise<TransformNodeType<SignedTx[]>> {
276
+ return (await onNode.getMicroBlockTransactionsByHash(hash)).transactions
277
+ }
278
+
279
+ /**
280
+ * Get key block
281
+ * @param hashOrHeight - Key block hash or height
282
+ * @param options - Options
283
+ * @param options.onNode - Node to use
284
+ * @returns Key Block
285
+ */
286
+ export async function getKeyBlock (
287
+ hashOrHeight: EncodedData<'kh'> | number, { onNode }: { onNode: Node }
288
+ ): Promise<TransformNodeType<KeyBlock>> {
289
+ if (typeof hashOrHeight === 'number') return await onNode.getKeyBlockByHeight(hashOrHeight)
290
+ return await onNode.getKeyBlockByHash(hashOrHeight)
291
+ }
292
+
293
+ /**
294
+ * Get micro block header
295
+ * @param hash - Micro block hash
296
+ * @param options - Options
297
+ * @param options.onNode - Node to use
298
+ * @returns Micro block header
299
+ */
300
+ export async function getMicroBlockHeader (
301
+ hash: EncodedData<'mh'>, { onNode }: { onNode: Node }
302
+ ): Promise<TransformNodeType<MicroBlockHeader>> {
303
+ return await onNode.getMicroBlockHeaderByHash(hash)
304
+ }
305
+
306
+ interface TxDryRunArguments {
307
+ tx: EncodedData<'tx'>
308
+ accountAddress: EncodedData<'ak'>
309
+ top?: number
310
+ txEvents?: any
311
+ resolve: Function
312
+ reject: Function
313
+ }
314
+ const txDryRunRequests: Map<string, TxDryRunArguments[] & { timeout?: NodeJS.Timeout }> = new Map()
315
+
316
+ async function txDryRunHandler (key: string, onNode: Node): Promise<void> {
317
+ const rs = txDryRunRequests.get(key)
318
+ txDryRunRequests.delete(key)
319
+ if (rs == null) throw new InternalError('Can\'t get dry-run request')
320
+
321
+ let dryRunRes
322
+ try {
323
+ dryRunRes = await onNode.protectedDryRunTxs({
324
+ top: rs[0].top,
325
+ txEvents: rs[0].txEvents,
326
+ txs: rs.map(req => ({ tx: req.tx })),
327
+ accounts: Array.from(new Set(rs.map(req => req.accountAddress)))
328
+ .map(pubKey => ({ pubKey, amount: DRY_RUN_ACCOUNT.amount }))
329
+ })
330
+ } catch (error) {
331
+ rs.forEach(({ reject }) => reject(error))
332
+ return
333
+ }
334
+
335
+ const { results, txEvents } = dryRunRes
336
+ results.forEach(({ result, reason, ...resultPayload }, idx) => {
337
+ const { resolve, reject, tx, accountAddress } = rs[idx]
338
+ if (result === 'ok') return resolve({ ...resultPayload, txEvents })
339
+ reject(Object.assign(
340
+ new DryRunError(reason as string), { tx, accountAddress }
341
+ ))
342
+ })
343
+ }
344
+
345
+ /**
346
+ * Transaction dry-run
347
+ * @param tx - transaction to execute
348
+ * @param accountAddress - address that will be used to execute transaction
349
+ * @param options - Options
350
+ * @param options.top - hash of block on which to make dry-run
351
+ * @param options.txEvents - collect and return on-chain tx events that would result from the call
352
+ * @param options.combine - Enables combining of similar requests to a single dry-run call
353
+ * @param options.onNode - Node to use
354
+ */
355
+ export async function txDryRun (
356
+ tx: EncodedData<'tx'>,
357
+ accountAddress: EncodedData<'ak'>,
358
+ { top, txEvents, combine, onNode }:
359
+ { top?: number, txEvents?: boolean, combine?: boolean, onNode: Node }
360
+ ): Promise<{
361
+ txEvents?: TransformNodeType<DryRunResults['txEvents']>
362
+ } & TransformNodeType<DryRunResult>> {
363
+ const key = combine === true ? [top, txEvents].join() : 'immediate'
364
+ const requests = txDryRunRequests.get(key) ?? []
365
+ txDryRunRequests.set(key, requests)
366
+ return await new Promise((resolve, reject) => {
367
+ requests.push({ tx, accountAddress, top, txEvents, resolve, reject })
368
+ if (combine !== true) {
369
+ void txDryRunHandler(key, onNode)
370
+ return
371
+ }
372
+ requests.timeout ??= setTimeout(() => { void txDryRunHandler(key, onNode) })
373
+ })
374
+ }
375
+
376
+ /**
377
+ * Get contract byte code
378
+ * @param contractId - Contract address
379
+ * @param options - Options
380
+ * @param options.onNode - Node to use
381
+ */
382
+ export async function getContractByteCode (
383
+ contractId: EncodedData<'ct'>, { onNode }: { onNode: Node }
384
+ ): Promise<TransformNodeType<ByteCode>> {
385
+ return await onNode.getContractCode(contractId)
386
+ }
387
+
388
+ /**
389
+ * Get contract entry
390
+ * @param contractId - Contract address
391
+ * @param options - Options
392
+ * @param options.onNode - Node to use
393
+ */
394
+ export async function getContract (
395
+ contractId: EncodedData<'ct'>, { onNode }: { onNode: Node }
396
+ ): Promise<TransformNodeType<ContractObject>> {
397
+ return await onNode.getContract(contractId)
398
+ }
399
+
400
+ /**
401
+ * Get name entry
402
+ * @param name - AENS name
403
+ * @param options - Options
404
+ * @param options.onNode - Node to use
405
+ */
406
+ export async function getName (
407
+ name: AensName, { onNode }: { onNode: Node }
408
+ ): Promise<TransformNodeType<NameEntry>> {
409
+ return await onNode.getNameEntryByName(name)
410
+ }
411
+
412
+ /**
413
+ * Resolve AENS name and return name hash
414
+ * @param nameOrId - AENS name or address
415
+ * @param key - in AENS pointers record
416
+ * @param options - Options
417
+ * @param options.verify - To ensure that name exist and have a corresponding pointer
418
+ * // TODO: avoid that to don't trust to current api gateway
419
+ * @param options.resolveByNode - Enables pointer resolving using node
420
+ * @param options.onNode - Node to use
421
+ * @returns Address or AENS name hash
422
+ */
423
+ export async function resolveName <Type extends 'ak' | 'ct'> (
424
+ nameOrId: AensName | EncodedData<Type>,
425
+ key: string,
426
+ { verify = true, resolveByNode = false, onNode }:
427
+ { verify?: boolean, resolveByNode?: boolean, onNode: Node }
428
+ ): Promise<EncodedData<Type | 'nm'>> {
429
+ try {
430
+ const id = nameOrId as EncodedData<Type>
431
+ decode(id)
432
+ return id
433
+ } catch (error) {}
434
+ if (isNameValid(nameOrId)) {
435
+ if (verify || resolveByNode) {
436
+ const name = await onNode.getNameEntryByName(nameOrId)
437
+ const pointer = name.pointers.find(pointer => pointer.key === key)
438
+ if (pointer == null) throw new AensPointerContextError(nameOrId, key)
439
+ if (resolveByNode) return pointer.id as EncodedData<Type>
440
+ }
441
+ return produceNameId(nameOrId)
442
+ }
443
+ throw new InvalidAensNameError(`Invalid name or address: ${nameOrId}`)
444
+ }