@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
@@ -0,0 +1,394 @@
1
+ import { EncodedData, EncodingType } from './../../utils/encoder'
2
+ import BigNumber from 'bignumber.js'
3
+ import { decode as rlpDecode, encode as rlpEncode, NestedUint8Array } from 'rlp'
4
+ import { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'
5
+ import { hash } from '../../utils/crypto'
6
+ import { Field } from './field-types'
7
+
8
+ import {
9
+ FIELD_TYPES,
10
+ RawTxObject,
11
+ TxField,
12
+ TxTypeSchemas,
13
+ TxParamsCommon,
14
+ TX_SCHEMA,
15
+ TX_TYPE,
16
+ TxSchema
17
+ } from './schema'
18
+ import {
19
+ readInt,
20
+ readId,
21
+ readPointers,
22
+ writeId,
23
+ writeInt,
24
+ buildPointers,
25
+ encode,
26
+ decode,
27
+ Pointer,
28
+ buildContractId
29
+ } from './helpers'
30
+ import { toBytes } from '../../utils/bytes'
31
+ import MPTree, { MPTreeBinary } from '../../utils/mptree'
32
+ import { ArgumentError, InvalidTxParamsError, SchemaNotFoundError, DecodeError } from '../../utils/errors'
33
+ import { isKeyOfObject } from '../../utils/other'
34
+
35
+ /**
36
+ * JavaScript-based Transaction builder
37
+ */
38
+
39
+ // SERIALIZE AND DESERIALIZE PART
40
+ function deserializeField (
41
+ value: any,
42
+ type: FIELD_TYPES | typeof Field,
43
+ prefix?: EncodingType | EncodingType[]
44
+ ): any {
45
+ if (value == null) return ''
46
+ switch (type) {
47
+ case FIELD_TYPES.ctVersion: {
48
+ const [vm, , abi] = value
49
+ return {
50
+ vmVersion: readInt(Buffer.from([vm])),
51
+ abiVersion: readInt(Buffer.from([abi]))
52
+ }
53
+ }
54
+ case FIELD_TYPES.amount:
55
+ case FIELD_TYPES.int:
56
+ case FIELD_TYPES.abiVersion:
57
+ case FIELD_TYPES.ttlType:
58
+ return readInt(value)
59
+ case FIELD_TYPES.shortInt:
60
+ return +readInt(value)
61
+ case FIELD_TYPES.id:
62
+ return readId(value)
63
+ case FIELD_TYPES.ids:
64
+ return value.map(readId)
65
+ case FIELD_TYPES.bool:
66
+ return value[0] === 1
67
+ case FIELD_TYPES.binary:
68
+ return encode(value, prefix as EncodingType)
69
+ case FIELD_TYPES.stateTree:
70
+ return encode(value, 'ss')
71
+ case FIELD_TYPES.string:
72
+ return value.toString()
73
+ case FIELD_TYPES.payload:
74
+ return encode(value, 'ba')
75
+ case FIELD_TYPES.pointers:
76
+ return readPointers(value)
77
+ case FIELD_TYPES.rlpBinary:
78
+ return unpackTx(encode(value, 'tx'))
79
+ case FIELD_TYPES.rlpBinaries:
80
+ return value.map((v: Buffer) => unpackTx(encode(v, 'tx')))
81
+ case FIELD_TYPES.rawBinary:
82
+ return value
83
+ case FIELD_TYPES.hex:
84
+ return value.toString('hex')
85
+ case FIELD_TYPES.offChainUpdates:
86
+ return value.map((v: Buffer) => unpackTx(encode(v, 'tx')))
87
+ case FIELD_TYPES.callStack:
88
+ // TODO: fix this
89
+ return [readInt(value)]
90
+ case FIELD_TYPES.mptrees:
91
+ return value.map((t: MPTreeBinary) => new MPTree(t))
92
+ case FIELD_TYPES.callReturnType:
93
+ switch (readInt(value)) {
94
+ case '0':
95
+ return 'ok'
96
+ case '1':
97
+ return 'error'
98
+ case '2':
99
+ return 'revert'
100
+ default:
101
+ return value
102
+ }
103
+ case FIELD_TYPES.sophiaCodeTypeInfo:
104
+ return value.reduce(
105
+ (acc: object, [funHash, fnName, argType, outType]: [
106
+ funHash: Buffer,
107
+ fnName: string,
108
+ argType: string,
109
+ outType: string
110
+ ]) => ({
111
+ ...acc,
112
+ [fnName.toString()]: { funHash, argType, outType }
113
+ }),
114
+ {}
115
+ )
116
+ default:
117
+ if (type instanceof Object && 'deserialize' in type) return type.deserialize(value)
118
+ return value
119
+ }
120
+ }
121
+
122
+ function serializeField (
123
+ value: any, type: FIELD_TYPES | typeof Field, params: any
124
+ ): any {
125
+ switch (type) {
126
+ case FIELD_TYPES.amount:
127
+ case FIELD_TYPES.int:
128
+ case FIELD_TYPES.shortInt:
129
+ case FIELD_TYPES.abiVersion:
130
+ case FIELD_TYPES.ttlType:
131
+ return writeInt(value)
132
+ case FIELD_TYPES.id:
133
+ return writeId(value)
134
+ case FIELD_TYPES.ids:
135
+ return value.map(writeId)
136
+ case FIELD_TYPES.bool:
137
+ return Buffer.from([(value === true) ? 1 : 0])
138
+ case FIELD_TYPES.binary:
139
+ return decode(value)
140
+ case FIELD_TYPES.stateTree:
141
+ return decode(value)
142
+ case FIELD_TYPES.hex:
143
+ return Buffer.from(value, 'hex')
144
+ case FIELD_TYPES.signatures:
145
+ return value.map(Buffer.from)
146
+ case FIELD_TYPES.payload:
147
+ return typeof value === 'string' && value.split('_')[0] === 'ba'
148
+ ? decode(value as EncodedData<'ba'>)
149
+ : toBytes(value)
150
+ case FIELD_TYPES.string:
151
+ return toBytes(value)
152
+ case FIELD_TYPES.pointers:
153
+ return buildPointers(value)
154
+ case FIELD_TYPES.rlpBinary:
155
+ return value.rlpEncoded ?? value
156
+ case FIELD_TYPES.mptrees:
157
+ return value.map((t: typeof Field) => t.serialize(''))
158
+ case FIELD_TYPES.ctVersion:
159
+ return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])
160
+ case FIELD_TYPES.callReturnType:
161
+ switch (value) {
162
+ case 'ok': return writeInt(0)
163
+ case 'error': return writeInt(1)
164
+ case 'revert': return writeInt(2)
165
+ default: return value
166
+ }
167
+ default:
168
+ if (type instanceof Object && 'serialize' in type) return type.serialize(value, params)
169
+ return value
170
+ }
171
+ }
172
+
173
+ function validateField (
174
+ value: any,
175
+ type: FIELD_TYPES | typeof Field,
176
+ prefix?: EncodingType | EncodingType[]
177
+ ): string | undefined {
178
+ // All fields are required
179
+ if (value == null) return 'Field is required'
180
+
181
+ // Validate type of value
182
+ switch (type) {
183
+ case FIELD_TYPES.amount:
184
+ case FIELD_TYPES.int:
185
+ case FIELD_TYPES.shortInt: {
186
+ if (isNaN(value) && !BigNumber.isBigNumber(value)) {
187
+ return `${String(value)} is not of type Number or BigNumber`
188
+ }
189
+ if (new BigNumber(value).lt(0)) return `${String(value)} must be >= 0`
190
+ return
191
+ }
192
+ case FIELD_TYPES.id: {
193
+ const prefixes = Array.isArray(prefix) ? prefix : [prefix]
194
+ if (!prefixes.includes(value.split('_')[0])) {
195
+ if (prefix == null) { return `'${String(value)}' prefix doesn't exist'` }
196
+ return `'${String(value)}' prefix doesn't match expected prefix '${prefix.toString()}'`
197
+ }
198
+ return
199
+ }
200
+ case FIELD_TYPES.ctVersion:
201
+ if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {
202
+ return 'Value must be an object with "vmVersion" and "abiVersion" fields'
203
+ }
204
+ return
205
+ case FIELD_TYPES.pointers:
206
+ if (!Array.isArray(value)) return 'Value must be of type Array'
207
+ if (value.some((p: Pointer) => !(Boolean(p.key) && Boolean(p.id)))) {
208
+ return 'Value must contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\''
209
+ }
210
+ if (value.length > 32) {
211
+ return `Expected 32 pointers or less, got ${value.length} instead`
212
+ }
213
+ }
214
+ }
215
+
216
+ function transformParams (
217
+ params: TxParamsCommon,
218
+ schema: TxField[],
219
+ { denomination }: {denomination?: AE_AMOUNT_FORMATS} = {}
220
+ ): any {
221
+ params = schema
222
+ .filter(([, t]) => t === FIELD_TYPES.amount)
223
+ .reduce(
224
+ (params: TxParamsCommon, [key]) => ({
225
+ ...params,
226
+ [key]: formatAmount(params[key as keyof TxParamsCommon], { denomination })
227
+ }),
228
+ params
229
+ )
230
+ return params
231
+ }
232
+
233
+ /**
234
+ * Validate transaction params
235
+ * @param params - Object with tx params
236
+ * @param schema - Transaction schema
237
+ * @param excludeKeys - Array of keys to exclude for validation
238
+ * @returns Object with validation errors
239
+ */
240
+ export function validateParams (
241
+ params: any, schema: TxField[], { excludeKeys = [] }: { excludeKeys: string[] }
242
+ ): object {
243
+ return Object.fromEntries(
244
+ schema
245
+ // TODO: allow optional keys in schema
246
+ .filter(([key]) => !excludeKeys.includes(key) &&
247
+ !['payload', 'nameFee', 'deposit', 'gasPrice'].includes(key))
248
+ .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])
249
+ .filter(([, message]) => message)
250
+ )
251
+ }
252
+
253
+ /**
254
+ * Unpack binary transaction
255
+ * @param binary - Array with binary transaction field's
256
+ * @param schema - Transaction schema
257
+ * @returns Object with transaction field's
258
+ */
259
+ export function unpackRawTx<Tx extends TxSchema> (
260
+ binary: Uint8Array | NestedUint8Array,
261
+ schema: TxField[]
262
+ ): RawTxObject<Tx> {
263
+ return schema
264
+ .reduce<any>(
265
+ (
266
+ acc,
267
+ [key, fieldType, prefix],
268
+ index
269
+ ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),
270
+ {}
271
+ )
272
+ }
273
+
274
+ export interface BuiltTx<Tx extends TxSchema, Prefix extends EncodingType> {
275
+ tx: EncodedData<Prefix>
276
+ rlpEncoded: Uint8Array
277
+ binary: Uint8Array
278
+ txObject: RawTxObject<Tx>
279
+ }
280
+
281
+ /**
282
+ * Build transaction hash
283
+ * @param _params - Object with tx params
284
+ * @param type - Transaction type
285
+ * @param options - options
286
+ * @param options.excludeKeys - Array of keys to exclude for validation and build
287
+ * @param options.denomination - Denomination of amounts
288
+ * @param options.prefix - Prefix of transaction
289
+ * @throws {@link InvalidTxParamsError}
290
+ * @returns object
291
+ * @returns object.tx Base64Check transaction hash with 'tx_' prefix
292
+ * @returns object.rlpEncoded rlp encoded transaction
293
+ * @returns object.binary binary transaction
294
+ */
295
+ export function buildTx<TxType extends TX_TYPE, Prefix> (
296
+ _params: Omit<TxTypeSchemas[TxType], 'tag' | 'VSN'> & { VSN?: number },
297
+ type: TxType,
298
+ { excludeKeys = [], prefix = 'tx', vsn, denomination = AE_AMOUNT_FORMATS.AETTOS }: {
299
+ excludeKeys?: string[]
300
+ prefix?: EncodingType
301
+ vsn?: number
302
+ denomination?: AE_AMOUNT_FORMATS
303
+ } = {}
304
+ ): BuiltTx<TxSchema, Prefix extends EncodingType ? Prefix : 'tx'> {
305
+ const schemas = TX_SCHEMA[type]
306
+
307
+ vsn ??= Math.max(...Object.keys(schemas).map(a => +a))
308
+ if (!isKeyOfObject(vsn, schemas)) throw new SchemaNotFoundError('serialization', TX_TYPE[type], vsn)
309
+
310
+ const schema = schemas[vsn] as unknown as TxField[]
311
+
312
+ let params = _params as TxParamsCommon & { onNode: Node }
313
+ params.VSN = vsn
314
+ params.tag = type
315
+ const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))
316
+
317
+ // Transform `amount` type fields to `aettos`
318
+ params = transformParams(params, filteredSchema, { denomination })
319
+ // Validation
320
+ const valid = validateParams(params, schema, { excludeKeys })
321
+ if (Object.keys(valid).length > 0) {
322
+ throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))
323
+ }
324
+
325
+ const binary = filteredSchema
326
+ .map(([key, fieldType]: [keyof TxSchema, FIELD_TYPES, EncodingType]) => serializeField(
327
+ params[key], fieldType, params))
328
+ .filter(e => e !== undefined)
329
+
330
+ const rlpEncoded = rlpEncode(binary)
331
+ const tx = encode(rlpEncoded, prefix)
332
+ return {
333
+ tx,
334
+ rlpEncoded,
335
+ binary,
336
+ txObject: unpackRawTx<TxTypeSchemas[TX_TYPE]>(binary, schema)
337
+ } as any
338
+ }
339
+
340
+ export interface TxUnpacked<Tx extends TxSchema> {
341
+ txType: TX_TYPE
342
+ tx: RawTxObject<Tx>
343
+ rlpEncoded: Uint8Array
344
+ }
345
+ /**
346
+ * Unpack transaction hash
347
+ * @param encodedTx - Transaction to unpack
348
+ * @param txType - Expected transaction type
349
+ * @returns object
350
+ * @returns object.tx Object with transaction param's
351
+ * @returns object.txType Transaction type
352
+ */
353
+ export function unpackTx<TxType extends TX_TYPE> (
354
+ encodedTx: EncodedData<'tx' | 'pi'>, txType?: TxType
355
+ ): TxUnpacked<TxTypeSchemas[TxType]> {
356
+ const rlpEncoded = decode(encodedTx)
357
+ const binary = rlpDecode(rlpEncoded)
358
+ const objId = +readInt(binary[0] as Buffer)
359
+ if (!isKeyOfObject(objId, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${objId}`)
360
+ if (txType != null && txType !== objId) throw new DecodeError(`Expected transaction to have ${TX_TYPE[txType]} tag, got ${TX_TYPE[objId]} instead`)
361
+ const vsn = +readInt(binary[1] as Buffer)
362
+ if (!isKeyOfObject(vsn, TX_SCHEMA[objId])) throw new SchemaNotFoundError('deserialization', `tag ${objId}`, vsn)
363
+ const schema = TX_SCHEMA[objId][vsn]
364
+ return {
365
+ txType: objId,
366
+ tx: unpackRawTx<TxTypeSchemas[TxType]>(binary, schema),
367
+ rlpEncoded
368
+ }
369
+ }
370
+
371
+ /**
372
+ * Build a transaction hash
373
+ * @param rawTx - base64 or rlp encoded transaction
374
+ * @returns Transaction hash
375
+ */
376
+ export function buildTxHash (rawTx: EncodedData<'tx'> | Uint8Array): EncodedData<'th'> {
377
+ const data = typeof rawTx === 'string' && rawTx.startsWith('tx_')
378
+ ? decode(rawTx)
379
+ : rawTx
380
+ return encode(hash(data), 'th')
381
+ }
382
+
383
+ /**
384
+ * Build a contract public key by contractCreateTx or gaAttach
385
+ * @param contractTx - Transaction
386
+ * @returns Contract public key
387
+ */
388
+ export function buildContractIdByContractTx (contractTx: EncodedData<'tx'>): EncodedData<'ct'> {
389
+ const { txType, tx } = unpackTx<TX_TYPE.contractCreate | TX_TYPE.gaAttach>(contractTx)
390
+ if (![TX_TYPE.contractCreate, TX_TYPE.gaAttach].includes(txType)) {
391
+ throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', txType)
392
+ }
393
+ return buildContractId(tx.ownerId, +tx.nonce)
394
+ }