@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,167 @@
1
+ import AeSdkBase, { Account } from './AeSdkBase'
2
+ import AccountBase from './account/Base'
3
+ import AccountRpc from './account/Rpc'
4
+ import { decode, EncodedData } from './utils/encoder'
5
+ import { Accounts, RPC_VERSION, WalletInfo, Network, WalletApi, AeppApi } from './aepp-wallet-communication/rpc/types'
6
+ import RpcClient from './aepp-wallet-communication/rpc/RpcClient'
7
+ import { METHODS, SUBSCRIPTION_TYPES } from './aepp-wallet-communication/schema'
8
+ import {
9
+ AlreadyConnectedError,
10
+ NoWalletConnectedError,
11
+ UnsubscribedAccountError,
12
+ UnAuthorizedAccountError,
13
+ RpcConnectionError
14
+ } from './utils/errors'
15
+ import Node from './Node'
16
+ import BrowserConnection from './aepp-wallet-communication/connection/Browser'
17
+
18
+ /**
19
+ * RPC handler for AEPP side
20
+ * Contain functionality for wallet interaction and connect it to sdk
21
+ */
22
+ export default class AeSdkAepp extends AeSdkBase {
23
+ name: string
24
+ onAddressChange: (a: Accounts) => void
25
+ onDisconnect: (p: any) => void
26
+ onNetworkChange: (a: Network) => void
27
+ rpcClient?: RpcClient<WalletApi, AeppApi>
28
+ _accounts?: Accounts
29
+
30
+ /**
31
+ * @param options - Options
32
+ * @param options.name - Aepp name
33
+ * @param options.onAddressChange - Call-back function for update address event
34
+ * @param options.onDisconnect - Call-back function for disconnect event
35
+ * @param options.onNetworkChange - Call-back function for update network event
36
+ */
37
+ constructor ({
38
+ name,
39
+ onAddressChange = () => {},
40
+ onDisconnect = () => {},
41
+ onNetworkChange = () => {},
42
+ ...other
43
+ }: {
44
+ name: string
45
+ onAddressChange: (a: Accounts) => void
46
+ onDisconnect: (p: any) => void
47
+ onNetworkChange: (a: Network) => void
48
+ } & ConstructorParameters<typeof AeSdkBase>[0]) {
49
+ super(other)
50
+ this.onAddressChange = onAddressChange
51
+ this.onDisconnect = onDisconnect
52
+ this.onNetworkChange = onNetworkChange
53
+ this.name = name
54
+ }
55
+
56
+ _resolveAccount (account: Account = this.addresses()[0]): AccountBase {
57
+ if (typeof account === 'string') {
58
+ const address = account as EncodedData<'ak'>
59
+ decode(address)
60
+ if (!this.addresses().includes(address)) throw new UnAuthorizedAccountError(address)
61
+ account = new AccountRpc({ rpcClient: this.rpcClient, address })
62
+ }
63
+ if (account == null) this._ensureAccountAccess()
64
+ return super._resolveAccount(account)
65
+ }
66
+
67
+ addresses (): Array<EncodedData<'ak'>> {
68
+ if (this._accounts == null) return []
69
+ const current = Object.keys(this._accounts.current)[0]
70
+ return [
71
+ ...current != null ? [current] : [], ...Object.keys(this._accounts.connected)
72
+ ] as Array<EncodedData<'ak'>>
73
+ }
74
+
75
+ /**
76
+ * Connect to wallet
77
+ * @param connection - Wallet connection object
78
+ * @param options - Options
79
+ * @param options.connectNode - Request wallet to bind node
80
+ * @param options.name - Node name
81
+ * @param options.select - Select this node as current
82
+ */
83
+ async connectToWallet (
84
+ connection: BrowserConnection,
85
+ { connectNode = false, name = 'wallet-node', select = false }:
86
+ { connectNode?: boolean, name?: string, select?: boolean } = {}
87
+ ): Promise<WalletInfo> {
88
+ if (this.rpcClient != null) throw new AlreadyConnectedError('You are already connected to wallet')
89
+ let disconnectParams: any
90
+ const client = new RpcClient<WalletApi, AeppApi>(
91
+ connection,
92
+ () => {
93
+ delete this.rpcClient
94
+ delete this._accounts
95
+ this.onDisconnect(disconnectParams)
96
+ }, {
97
+ [METHODS.updateAddress]: (params) => {
98
+ this._accounts = params
99
+ this.onAddressChange(params)
100
+ },
101
+ [METHODS.updateNetwork]: (params) => {
102
+ const { node } = params
103
+ if (node != null) this.addNode(node.name, new Node(node.url), true)
104
+ this.onNetworkChange(params)
105
+ },
106
+ [METHODS.closeConnection]: (params) => {
107
+ disconnectParams = params
108
+ client.connection.disconnect()
109
+ },
110
+ [METHODS.readyToConnect]: () => {}
111
+ }
112
+ )
113
+ const { node, ...walletInfo } = await client.request(
114
+ METHODS.connect, { name: this.name, version: RPC_VERSION, connectNode }
115
+ )
116
+ if (connectNode) {
117
+ if (node == null) throw new RpcConnectionError('Missing URLs of the Node')
118
+ this.addNode(name, new Node(node.url), select)
119
+ }
120
+ this.rpcClient = client
121
+ return walletInfo
122
+ }
123
+
124
+ /**
125
+ * Disconnect from wallet
126
+ */
127
+ disconnectWallet (): void {
128
+ this._ensureConnected()
129
+ this.rpcClient.notify(METHODS.closeConnection, { reason: 'bye' })
130
+ this.rpcClient.connection.disconnect()
131
+ }
132
+
133
+ /**
134
+ * Ask addresses from wallet
135
+ * @returns Addresses from wallet
136
+ */
137
+ async askAddresses (): Promise<Array<EncodedData<'ak'>>> {
138
+ this._ensureAccountAccess()
139
+ return await this.rpcClient.request(METHODS.address, undefined)
140
+ }
141
+
142
+ /**
143
+ * Subscribe for addresses from wallet
144
+ * @param type - Subscription type
145
+ * @param value - Should be one of 'current' (the selected account), 'connected' (all)
146
+ * @returns Accounts from wallet
147
+ */
148
+ async subscribeAddress (
149
+ type: SUBSCRIPTION_TYPES, value: 'current' | 'connected'
150
+ ): Promise<ReturnType<WalletApi[METHODS.subscribeAddress]>> {
151
+ this._ensureConnected()
152
+ const result = await this.rpcClient.request(METHODS.subscribeAddress, { type, value })
153
+ this._accounts = result.address
154
+ return result
155
+ }
156
+
157
+ _ensureConnected (): asserts this is AeSdkAepp & { rpcClient: NonNullable<AeSdkAepp['rpcClient']> } {
158
+ if (this.rpcClient != null) return
159
+ throw new NoWalletConnectedError('You are not connected to Wallet')
160
+ }
161
+
162
+ _ensureAccountAccess (): asserts this is AeSdkAepp & { rpcClient: NonNullable<AeSdkAepp['rpcClient']> } {
163
+ this._ensureConnected()
164
+ if (this.addresses().length !== 0) return
165
+ throw new UnsubscribedAccountError()
166
+ }
167
+ }
@@ -0,0 +1,320 @@
1
+ import * as chainMethods from './chain'
2
+ import * as txMethods from './tx'
3
+ import * as aensMethods from './aens'
4
+ import * as spendMethods from './spend'
5
+ import * as oracleMethods from './oracle'
6
+ import * as contractMethods from './contract/methods'
7
+ import * as contractGaMethods from './contract/ga'
8
+ import { _buildTx } from './tx'
9
+ import { mapObject } from './utils/other'
10
+ import Node, { getNetworkId } from './Node'
11
+ import { AE_AMOUNT_FORMATS } from './utils/amount-formatter'
12
+ import { AMOUNT, TX_TYPE } from './tx/builder/schema'
13
+ import MemoryAccount, { Keypair } from './account/Memory'
14
+ import AccountBase, { isAccountBase } from './account/Base'
15
+ import {
16
+ CompilerError,
17
+ DuplicateNodeError,
18
+ NodeNotFoundError,
19
+ NotImplementedError,
20
+ TypeError
21
+ } from './utils/errors'
22
+ import { EncodedData } from './utils/encoder'
23
+ import Compiler from './contract/Compiler'
24
+
25
+ export type Account = Keypair | AccountBase | any
26
+
27
+ type NodeInfo = Awaited<ReturnType<Node['getNodeInfo']>> & { name: string }
28
+
29
+ function getValueOrErrorProxy<Value extends object> (valueCb: () => Value): Value {
30
+ try {
31
+ return valueCb()
32
+ } catch (error) {
33
+ return new Proxy(
34
+ {},
35
+ Object.fromEntries(['get', 'set', 'has'].map(name => [name, () => { throw error }]))
36
+ ) as Value
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Basic AeSdk class
42
+ *
43
+ * AeSdkBase objects are the composition of:
44
+ * - chain methods
45
+ * - tx methods
46
+ * - aens methods
47
+ * - spend methods
48
+ * - oracle methods
49
+ * - contract methods
50
+ * - contract ga methods
51
+ * Only by providing the joint functionality of them, most more advanced
52
+ * operations, i.e. the ones with actual use value on the chain, become
53
+ * available.
54
+ */
55
+ class AeSdkBase {
56
+ _options: {
57
+ denomination: AE_AMOUNT_FORMATS
58
+ amount: number
59
+ [key: string]: any
60
+ } = { denomination: AE_AMOUNT_FORMATS.AETTOS, amount: AMOUNT }
61
+
62
+ pool: Map<string, Node> = new Map()
63
+ selectedNodeName?: string
64
+ compilerApi: Compiler
65
+
66
+ /**
67
+ * @param options - Options
68
+ * @param options.nodes - Array of nodes
69
+ * @param options.compilerUrl - Url for compiler API
70
+ * @param options.ignoreVersion - Don't check node or compiler version
71
+ */
72
+ constructor (
73
+ { nodes = [], compilerUrl, ignoreVersion = false, ...options }:
74
+ {
75
+ nodes?: Array<{ name: string, instance: Node }>
76
+ compilerUrl?: string
77
+ ignoreVersion?: boolean
78
+ [key: string]: any // TODO: consider combining all possible options instead
79
+ } = {}
80
+ ) {
81
+ Object.assign(this._options, options)
82
+
83
+ nodes.forEach(({ name, instance }, i) => this.addNode(name, instance, i === 0))
84
+
85
+ if (compilerUrl == null) {
86
+ this.compilerApi = getValueOrErrorProxy(() => {
87
+ throw new CompilerError('You can\'t use Compiler API. Compiler is not ready!')
88
+ })
89
+ } else this.setCompilerUrl(compilerUrl, { ignoreVersion })
90
+ }
91
+
92
+ setCompilerUrl (
93
+ compilerUrl: string, { ignoreVersion = false }: { ignoreVersion?: boolean } = {}
94
+ ): void {
95
+ this.compilerApi = new Compiler(compilerUrl, { ignoreVersion })
96
+ }
97
+
98
+ get api (): Node {
99
+ this.ensureNodeConnected()
100
+ return this.pool.get(this.selectedNodeName) as Node
101
+ }
102
+
103
+ /**
104
+ * Add Node
105
+ * @param name - Node name
106
+ * @param node - Node instance
107
+ * @param select - Select this node as current
108
+ * @example
109
+ * ```js
110
+ * // add and select new node with name 'testNode'
111
+ * aeSdkBase.addNode('testNode', new Node({ url }), true)
112
+ * ```
113
+ */
114
+ addNode (name: string, node: Node, select = false): void {
115
+ if (this.pool.has(name)) throw new DuplicateNodeError(name)
116
+
117
+ this.pool.set(name, node)
118
+ if (select || this.selectedNodeName == null) {
119
+ this.selectNode(name)
120
+ }
121
+ }
122
+
123
+ /**
124
+ * Select Node
125
+ * @param name - Node name
126
+ * @example
127
+ * nodePool.selectNode('testNode')
128
+ */
129
+ selectNode (name: string): void {
130
+ if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)
131
+ this.selectedNodeName = name
132
+ }
133
+
134
+ /**
135
+ * Get NetworkId of current Node
136
+ * @example
137
+ * nodePool.getNetworkId()
138
+ */
139
+ readonly getNetworkId = getNetworkId
140
+
141
+ /**
142
+ * Check if you have selected node
143
+ * @example
144
+ * nodePool.isNodeConnected()
145
+ */
146
+ isNodeConnected (): this is AeSdkBase & { selectedNodeName: string } {
147
+ return this.selectedNodeName != null
148
+ }
149
+
150
+ protected ensureNodeConnected (): asserts this is AeSdkBase & { selectedNodeName: string } {
151
+ if (!this.isNodeConnected()) {
152
+ throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!')
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Get information about node
158
+ * @example
159
+ * ```js
160
+ * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
161
+ * ```
162
+ */
163
+ async getNodeInfo (): Promise<NodeInfo> {
164
+ this.ensureNodeConnected()
165
+ return {
166
+ name: this.selectedNodeName,
167
+ ...await this.api.getNodeInfo()
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Get array of available nodes
173
+ * @example
174
+ * nodePool.getNodesInPool()
175
+ */
176
+ async getNodesInPool (): Promise<NodeInfo[]> {
177
+ return await Promise.all(
178
+ Array.from(this.pool.entries()).map(async ([name, node]) => ({
179
+ name,
180
+ ...await node.getNodeInfo()
181
+ }))
182
+ )
183
+ }
184
+
185
+ addresses (): Array<EncodedData<'ak'>> {
186
+ return []
187
+ }
188
+
189
+ async address ({ onAccount }: { onAccount?: Account } = {}): Promise<EncodedData<'ak'>> {
190
+ return await this._resolveAccount(onAccount).address()
191
+ }
192
+
193
+ async sign (
194
+ data: string | Uint8Array, { onAccount, ...options }: { onAccount?: Account } = {}
195
+ ): Promise<Uint8Array> {
196
+ return await this._resolveAccount(onAccount).sign(data, options)
197
+ }
198
+
199
+ async signTransaction (
200
+ tx: EncodedData<'tx'>,
201
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signTransaction']>[1] = {}
202
+ ): Promise<EncodedData<'tx'>> {
203
+ return await this._resolveAccount(onAccount)
204
+ .signTransaction(tx, { ...options, networkId: await this.getNetworkId(options) })
205
+ }
206
+
207
+ async signMessage (
208
+ message: string,
209
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['signMessage']>[1] = {}
210
+ ): Promise<string | Uint8Array> {
211
+ return await this._resolveAccount(onAccount).signMessage(message, options)
212
+ }
213
+
214
+ async verifyMessage (
215
+ message: string,
216
+ signature: string | Uint8Array,
217
+ { onAccount, ...options }: { onAccount?: Account } & Parameters<AccountBase['verifyMessage']>[2] = {}
218
+ ): Promise<boolean> {
219
+ return await this._resolveAccount(onAccount).verifyMessage(message, signature, options)
220
+ }
221
+
222
+ /**
223
+ * Resolves an account
224
+ * @param account - ak-address, instance of AccountBase, or keypair
225
+ */
226
+ _resolveAccount (account?: Account): AccountBase {
227
+ switch (account !== null && typeof account) {
228
+ case 'string':
229
+ throw new NotImplementedError('Address in AccountResolver')
230
+ case 'object':
231
+ return isAccountBase(account) ? account : new MemoryAccount({ keypair: account })
232
+ default:
233
+ throw new TypeError(
234
+ 'Account should be an address (ak-prefixed string), ' +
235
+ `keypair, or instance of AccountBase, got ${String(account)} instead`)
236
+ }
237
+ }
238
+
239
+ async _getOptions (
240
+ ): Promise<{ onNode: Node, onAccount: AccountBase, onCompiler: Compiler, networkId: string }> {
241
+ return {
242
+ ...this._options,
243
+ onNode: getValueOrErrorProxy(() => this.api),
244
+ onAccount: getValueOrErrorProxy(() => this._resolveAccount()),
245
+ onCompiler: getValueOrErrorProxy(() => this.compilerApi),
246
+ // TODO: remove networkId
247
+ networkId: (await this.api?.getStatus()).networkId
248
+ }
249
+ }
250
+
251
+ async buildTx<TxType extends TX_TYPE> (
252
+ txType: TxType,
253
+ options: Omit<Parameters<typeof _buildTx<TxType>>[1], 'onNode'> & { onNode?: Node }
254
+ ): Promise<EncodedData<'tx'>> {
255
+ // @ts-expect-error
256
+ return await _buildTx<TxType>(txType, {
257
+ ...await this._getOptions(),
258
+ ...options
259
+ })
260
+ }
261
+ }
262
+
263
+ const { _buildTx: _, ...txMethodsOther } = txMethods
264
+
265
+ const methods = {
266
+ ...chainMethods,
267
+ ...txMethodsOther,
268
+ ...aensMethods,
269
+ ...spendMethods,
270
+ ...oracleMethods,
271
+ ...contractMethods,
272
+ ...contractGaMethods
273
+ } as const
274
+
275
+ type RequiredKeys<T> = {
276
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K
277
+ }[keyof T]
278
+
279
+ type OptionalIfNotRequired<T extends [any]> = RequiredKeys<T[0]> extends never ? T | [] : T
280
+
281
+ type MakeOptional<Args extends any[]> = Args extends [infer Head, ...infer Tail]
282
+ ? Tail extends []
283
+ ? Head extends object
284
+ ? OptionalIfNotRequired<[Omit<Head, 'onNode' | 'onCompiler' | 'onAccount'>
285
+ & { onNode?: Node, onCompiler?: Compiler, onAccount?: AccountBase | EncodedData<'ak'> | Keypair }]>
286
+ : [Head]
287
+ : [Head, ...MakeOptional<Tail>]
288
+ : never
289
+
290
+ type TransformMethods <Methods extends { [key: string]: Function }> =
291
+ {
292
+ [Name in keyof Methods]:
293
+ Methods[Name] extends (...args: infer Args) => infer Ret
294
+ ? (...args: MakeOptional<Args>) => Ret
295
+ : never
296
+ }
297
+
298
+ interface AeSdkBaseMethods extends TransformMethods<typeof methods> {}
299
+
300
+ Object.assign(AeSdkBase.prototype, mapObject<Function, Function>(
301
+ methods,
302
+ ([name, handler]) => [
303
+ name,
304
+ async function (...args: any[]) {
305
+ const instanceOptions = await this._getOptions()
306
+ const lastArg = args[args.length - 1]
307
+ if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {
308
+ Object.assign(lastArg, {
309
+ ...instanceOptions,
310
+ ...lastArg,
311
+ ...lastArg.onAccount != null && { onAccount: this._resolveAccount(lastArg.onAccount) }
312
+ })
313
+ } else args.push(instanceOptions)
314
+ return handler(...args)
315
+ }
316
+ ]
317
+ ))
318
+
319
+ export default AeSdkBase as new (options: ConstructorParameters<typeof AeSdkBase>[0]) =>
320
+ AeSdkBase & AeSdkBaseMethods