@aeternity/aepp-sdk 11.0.1 → 12.1.1

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 (444) hide show
  1. package/LICENSE +1 -1
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -22
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +2 -1
  6. package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
  7. package/dist/aepp-sdk.browser.js.map +1 -1
  8. package/dist/aepp-sdk.js +20765 -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 +70 -0
  14. package/es/AeSdkAepp.mjs +176 -0
  15. package/es/AeSdkAepp.mjs.map +1 -0
  16. package/es/AeSdkBase.d.ts +213 -0
  17. package/es/AeSdkBase.mjs +314 -0
  18. package/es/AeSdkBase.mjs.map +1 -0
  19. package/es/AeSdkWallet.d.ts +104 -0
  20. package/es/AeSdkWallet.mjs +326 -0
  21. package/es/AeSdkWallet.mjs.map +1 -0
  22. package/es/Node.d.ts +41 -0
  23. package/es/Node.mjs +147 -0
  24. package/es/Node.mjs.map +1 -0
  25. package/es/account/Base.d.ts +68 -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 +26 -0
  29. package/es/account/Memory.mjs +103 -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 +80 -0
  33. package/es/account/Rpc.mjs.map +1 -0
  34. package/es/aens.d.ts +222 -0
  35. package/es/aens.mjs +338 -0
  36. package/es/aens.mjs.map +1 -0
  37. package/es/aepp-wallet-communication/connection/Browser.d.ts +33 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs +73 -0
  39. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +58 -0
  42. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +146 -0
  45. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  46. package/es/aepp-wallet-communication/connection-proxy.d.ts +11 -0
  47. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +16 -11
  48. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -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 +105 -46
  56. package/es/aepp-wallet-communication/schema.mjs +251 -0
  57. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  58. package/es/aepp-wallet-communication/wallet-detector.d.ts +25 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs +62 -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 +1065 -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 +4166 -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 +248 -0
  92. package/es/chain.mjs +560 -0
  93. package/es/chain.mjs.map +1 -0
  94. package/es/channel/handlers.d.ts +34 -0
  95. package/es/channel/handlers.mjs +164 -131
  96. package/es/channel/handlers.mjs.map +1 -1
  97. package/es/channel/index.d.ts +625 -0
  98. package/es/channel/index.mjs +897 -902
  99. package/es/channel/index.mjs.map +1 -1
  100. package/es/channel/internal.d.ts +101 -0
  101. package/es/channel/internal.mjs +136 -85
  102. package/es/channel/internal.mjs.map +1 -1
  103. package/es/contract/Compiler.d.ts +18 -0
  104. package/es/contract/Compiler.mjs +68 -0
  105. package/es/contract/Compiler.mjs.map +1 -0
  106. package/es/contract/aci.d.ts +127 -0
  107. package/es/contract/aci.mjs +225 -193
  108. package/es/contract/aci.mjs.map +1 -1
  109. package/es/contract/ga.d.ts +69 -0
  110. package/es/contract/ga.mjs +195 -0
  111. package/es/contract/ga.mjs.map +1 -0
  112. package/es/contract/methods.d.ts +71 -0
  113. package/es/contract/methods.mjs +104 -0
  114. package/es/contract/methods.mjs.map +1 -0
  115. package/es/deprecated/index.d.ts +143 -0
  116. package/es/deprecated/index.mjs +162 -0
  117. package/es/deprecated/index.mjs.map +1 -0
  118. package/es/deprecated/methods.d.ts +18 -0
  119. package/es/deprecated/methods.mjs +26 -0
  120. package/es/deprecated/methods.mjs.map +1 -0
  121. package/es/index.d.ts +35 -0
  122. package/es/index.mjs +35 -40
  123. package/es/index.mjs.map +1 -1
  124. package/es/oracle.d.ts +161 -0
  125. package/es/oracle.mjs +306 -0
  126. package/es/oracle.mjs.map +1 -0
  127. package/es/spend.d.ts +62 -0
  128. package/es/spend.mjs +111 -0
  129. package/es/spend.mjs.map +1 -0
  130. package/es/tx/builder/address.d.ts +25 -0
  131. package/es/tx/builder/address.mjs +45 -0
  132. package/es/tx/builder/address.mjs.map +1 -0
  133. package/es/tx/builder/constants.d.ts +70 -0
  134. package/es/tx/builder/constants.mjs +61 -47
  135. package/es/tx/builder/constants.mjs.map +1 -1
  136. package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
  137. package/es/tx/builder/field-types/coin-amount.mjs +26 -0
  138. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
  139. package/es/tx/builder/field-types/deposit.d.ts +15 -0
  140. package/es/tx/builder/field-types/deposit.mjs +19 -0
  141. package/es/tx/builder/field-types/deposit.mjs.map +1 -0
  142. package/es/tx/builder/field-types/fee.d.ts +25 -0
  143. package/es/tx/builder/field-types/fee.mjs +150 -0
  144. package/es/tx/builder/field-types/fee.mjs.map +1 -0
  145. package/es/tx/builder/field-types/field.d.ts +6 -0
  146. package/es/tx/builder/field-types/field.mjs +15 -0
  147. package/es/tx/builder/field-types/field.mjs.map +1 -0
  148. package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
  149. package/es/tx/builder/field-types/gas-limit.mjs +33 -0
  150. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
  151. package/es/tx/builder/field-types/gas-price.d.ts +8 -0
  152. package/es/tx/builder/field-types/gas-price.mjs +18 -0
  153. package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
  154. package/es/tx/builder/field-types/index.d.ts +70 -0
  155. package/es/tx/builder/field-types/index.mjs +25 -0
  156. package/es/tx/builder/field-types/index.mjs.map +1 -0
  157. package/es/tx/builder/field-types/name-fee.d.ts +20 -0
  158. package/es/tx/builder/field-types/name-fee.mjs +24 -0
  159. package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
  160. package/es/tx/builder/field-types/name-id.d.ts +14 -0
  161. package/es/tx/builder/field-types/name-id.mjs +19 -0
  162. package/es/tx/builder/field-types/name-id.mjs.map +1 -0
  163. package/es/tx/builder/field-types/name.d.ts +13 -0
  164. package/es/tx/builder/field-types/name.mjs +18 -0
  165. package/es/tx/builder/field-types/name.mjs.map +1 -0
  166. package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
  167. package/es/tx/builder/field-types/short-u-int.mjs +12 -0
  168. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
  169. package/es/tx/builder/field-types/u-int.d.ts +8 -0
  170. package/es/tx/builder/field-types/u-int.mjs +14 -0
  171. package/es/tx/builder/field-types/u-int.mjs.map +1 -0
  172. package/es/tx/builder/helpers.d.ts +125 -0
  173. package/es/tx/builder/helpers.mjs +94 -198
  174. package/es/tx/builder/helpers.mjs.map +1 -1
  175. package/es/tx/builder/index.d.ts +88 -0
  176. package/es/tx/builder/index.mjs +167 -358
  177. package/es/tx/builder/index.mjs.map +1 -1
  178. package/es/tx/builder/schema.d.ts +1201 -0
  179. package/es/tx/builder/schema.mjs +175 -561
  180. package/es/tx/builder/schema.mjs.map +1 -1
  181. package/es/tx/index.d.ts +64 -0
  182. package/es/tx/index.mjs +151 -265
  183. package/es/tx/index.mjs.map +1 -1
  184. package/es/tx/validator.d.ts +20 -0
  185. package/es/tx/validator.mjs +104 -124
  186. package/es/tx/validator.mjs.map +1 -1
  187. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  188. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  189. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  190. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  191. package/es/typings/bip32-path/index.d.mjs +2 -0
  192. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  193. package/es/typings/blakejs/index.d.mjs.map +1 -1
  194. package/es/typings/sha-js/index.d.mjs +2 -0
  195. package/es/typings/sha-js/index.d.mjs.map +1 -0
  196. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  197. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  198. package/es/utils/amount-formatter.d.ts +42 -0
  199. package/es/utils/amount-formatter.mjs +36 -49
  200. package/es/utils/amount-formatter.mjs.map +1 -1
  201. package/es/utils/autorest.d.ts +6 -0
  202. package/es/utils/autorest.mjs +97 -0
  203. package/es/utils/autorest.mjs.map +1 -0
  204. package/es/utils/bignumber.d.ts +13 -0
  205. package/es/utils/bignumber.mjs +11 -8
  206. package/es/utils/bignumber.mjs.map +1 -1
  207. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  208. package/es/utils/bytes.mjs +11 -15
  209. package/es/utils/bytes.mjs.map +1 -1
  210. package/es/utils/crypto.d.ts +88 -0
  211. package/es/utils/crypto.mjs +64 -98
  212. package/es/utils/crypto.mjs.map +1 -1
  213. package/es/utils/encoder-types.d.ts +61 -0
  214. package/es/utils/encoder-types.mjs +36 -0
  215. package/es/utils/encoder-types.mjs.map +1 -0
  216. package/es/utils/encoder.d.ts +25 -0
  217. package/es/utils/encoder.mjs +71 -59
  218. package/es/utils/encoder.mjs.map +1 -1
  219. package/es/{errors.d.ts → utils/errors.d.ts} +246 -59
  220. package/es/utils/errors.mjs +313 -136
  221. package/es/utils/errors.mjs.map +1 -1
  222. package/es/utils/hd-wallet.d.ts +50 -0
  223. package/es/utils/hd-wallet.mjs +86 -45
  224. package/es/utils/hd-wallet.mjs.map +1 -1
  225. package/es/utils/json-big.d.ts +5 -0
  226. package/es/utils/json-big.mjs +12 -16
  227. package/es/utils/json-big.mjs.map +1 -1
  228. package/es/utils/keystore.d.ts +51 -0
  229. package/es/utils/keystore.mjs +101 -194
  230. package/es/utils/keystore.mjs.map +1 -1
  231. package/es/{mptree.d.ts → utils/mptree.d.ts} +6 -9
  232. package/es/utils/mptree.mjs +22 -18
  233. package/es/utils/mptree.mjs.map +1 -1
  234. package/es/utils/other.d.ts +20 -0
  235. package/es/utils/other.mjs +32 -35
  236. package/es/utils/other.mjs.map +1 -1
  237. package/es/utils/semver-satisfies.d.ts +1 -0
  238. package/es/utils/semver-satisfies.mjs +2 -2
  239. package/es/utils/semver-satisfies.mjs.map +1 -1
  240. package/es/utils/string.d.ts +24 -0
  241. package/es/utils/string.mjs +8 -10
  242. package/es/utils/string.mjs.map +1 -1
  243. package/package.json +55 -43
  244. package/src/AeSdk.ts +68 -0
  245. package/src/AeSdkAepp.ts +176 -0
  246. package/src/AeSdkBase.ts +338 -0
  247. package/src/AeSdkWallet.ts +348 -0
  248. package/src/Node.ts +173 -0
  249. package/src/account/Base.ts +124 -0
  250. package/src/account/Memory.ts +98 -0
  251. package/src/account/Rpc.ts +69 -0
  252. package/src/aens.ts +407 -0
  253. package/src/aepp-wallet-communication/connection/Browser.ts +71 -0
  254. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +59 -0
  255. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +122 -0
  256. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +18 -18
  257. package/src/aepp-wallet-communication/rpc/RpcClient.ts +143 -0
  258. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  259. package/src/aepp-wallet-communication/schema.ts +224 -0
  260. package/src/aepp-wallet-communication/wallet-detector.ts +72 -0
  261. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  262. package/src/apis/compiler/compiler.ts +585 -0
  263. package/src/apis/compiler/index.ts +2 -0
  264. package/src/apis/compiler/models/index.ts +301 -0
  265. package/src/apis/compiler/models/mappers.ts +583 -0
  266. package/src/apis/compiler/models/parameters.ts +93 -0
  267. package/src/apis/node/code-model-v4.yaml +10080 -0
  268. package/src/apis/node/index.ts +2 -0
  269. package/src/apis/node/models/index.ts +1257 -0
  270. package/src/apis/node/models/mappers.ts +4280 -0
  271. package/src/apis/node/models/parameters.ts +188 -0
  272. package/src/apis/node/node.ts +1299 -0
  273. package/src/chain.ts +502 -0
  274. package/src/channel/handlers.ts +817 -0
  275. package/src/channel/index.ts +1025 -0
  276. package/src/channel/internal.ts +361 -0
  277. package/src/contract/Compiler.ts +67 -0
  278. package/src/contract/aci.ts +538 -0
  279. package/src/contract/ga.ts +199 -0
  280. package/src/contract/methods.ts +123 -0
  281. package/src/deprecated/index.ts +172 -0
  282. package/src/deprecated/methods.ts +25 -0
  283. package/src/index.ts +56 -0
  284. package/src/oracle.ts +364 -0
  285. package/src/spend.ts +164 -0
  286. package/src/tx/builder/address.ts +50 -0
  287. package/src/tx/builder/constants.ts +126 -0
  288. package/src/tx/builder/field-types/coin-amount.ts +27 -0
  289. package/src/tx/builder/field-types/deposit.ts +21 -0
  290. package/src/tx/builder/field-types/fee.ts +143 -0
  291. package/src/tx/builder/field-types/field.ts +9 -0
  292. package/src/tx/builder/field-types/gas-limit.ts +41 -0
  293. package/src/tx/builder/field-types/gas-price.ts +16 -0
  294. package/src/tx/builder/field-types/index.ts +45 -0
  295. package/src/tx/builder/field-types/name-fee.ts +32 -0
  296. package/src/tx/builder/field-types/name-id.ts +20 -0
  297. package/src/tx/builder/field-types/name.ts +18 -0
  298. package/src/tx/builder/field-types/short-u-int.ts +11 -0
  299. package/src/tx/builder/field-types/u-int.ts +16 -0
  300. package/src/tx/builder/helpers.ts +248 -0
  301. package/src/tx/builder/index.ts +400 -0
  302. package/src/tx/builder/schema.ts +727 -0
  303. package/src/tx/index.ts +192 -0
  304. package/src/tx/validator.ts +230 -0
  305. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  306. package/src/typings/@aeternity__uuid/index.d.ts +5 -0
  307. package/src/typings/bip32-path/index.d.ts +33 -0
  308. package/src/typings/blakejs/index.d.ts +4 -32
  309. package/src/typings/sha-js/index.d.ts +5 -0
  310. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  311. package/src/utils/amount-formatter.ts +56 -69
  312. package/src/utils/autorest.ts +93 -0
  313. package/src/utils/bignumber.ts +11 -12
  314. package/src/utils/bytes.ts +29 -31
  315. package/src/utils/crypto.ts +205 -0
  316. package/src/utils/encoder-types.ts +63 -0
  317. package/src/utils/encoder.ts +116 -71
  318. package/src/utils/errors.ts +482 -366
  319. package/src/utils/hd-wallet.ts +166 -0
  320. package/src/utils/json-big.ts +27 -0
  321. package/src/utils/keystore.ts +182 -0
  322. package/src/utils/mptree.ts +64 -61
  323. package/src/utils/other.ts +34 -41
  324. package/src/utils/semver-satisfies.ts +15 -11
  325. package/src/utils/string.ts +18 -20
  326. package/es/account/base.mjs +0 -179
  327. package/es/account/base.mjs.map +0 -1
  328. package/es/account/memory.mjs +0 -99
  329. package/es/account/memory.mjs.map +0 -1
  330. package/es/account/multiple.mjs +0 -179
  331. package/es/account/multiple.mjs.map +0 -1
  332. package/es/ae/aens.mjs +0 -404
  333. package/es/ae/aens.mjs.map +0 -1
  334. package/es/ae/aepp.mjs +0 -45
  335. package/es/ae/aepp.mjs.map +0 -1
  336. package/es/ae/contract.mjs +0 -159
  337. package/es/ae/contract.mjs.map +0 -1
  338. package/es/ae/index.mjs +0 -207
  339. package/es/ae/index.mjs.map +0 -1
  340. package/es/ae/oracle.mjs +0 -339
  341. package/es/ae/oracle.mjs.map +0 -1
  342. package/es/ae/universal.mjs +0 -45
  343. package/es/ae/universal.mjs.map +0 -1
  344. package/es/ae/wallet.mjs +0 -50
  345. package/es/ae/wallet.mjs.map +0 -1
  346. package/es/amount-formatter.d.ts +0 -58
  347. package/es/bignumber.d.ts +0 -18
  348. package/es/chain/index.mjs +0 -272
  349. package/es/chain/index.mjs.map +0 -1
  350. package/es/chain/node.mjs +0 -442
  351. package/es/chain/node.mjs.map +0 -1
  352. package/es/contract/compiler.mjs +0 -115
  353. package/es/contract/compiler.mjs.map +0 -1
  354. package/es/contract/ga/helpers.mjs +0 -30
  355. package/es/contract/ga/helpers.mjs.map +0 -1
  356. package/es/contract/ga/index.mjs +0 -178
  357. package/es/contract/ga/index.mjs.map +0 -1
  358. package/es/crypto-ts.d.ts +0 -9
  359. package/es/encoder.d.ts +0 -26
  360. package/es/node-pool/index.mjs +0 -188
  361. package/es/node-pool/index.mjs.map +0 -1
  362. package/es/node.mjs +0 -133
  363. package/es/node.mjs.map +0 -1
  364. package/es/other.d.ts +0 -31
  365. package/es/semver-satisfies.d.ts +0 -1
  366. package/es/string.d.ts +0 -26
  367. package/es/tx/builder/field-types.mjs +0 -74
  368. package/es/tx/builder/field-types.mjs.map +0 -1
  369. package/es/tx/tx-object.mjs +0 -283
  370. package/es/tx/tx-object.mjs.map +0 -1
  371. package/es/tx/tx.mjs +0 -938
  372. package/es/tx/tx.mjs.map +0 -1
  373. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  374. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  375. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  376. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  377. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  378. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  379. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  380. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  381. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  382. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  383. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  384. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  385. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  386. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  387. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  388. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  389. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  390. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  391. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  392. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  393. package/es/utils/async-init.mjs +0 -64
  394. package/es/utils/async-init.mjs.map +0 -1
  395. package/es/utils/crypto-ts.mjs.map +0 -1
  396. package/es/utils/swagger.mjs +0 -164
  397. package/es/utils/swagger.mjs.map +0 -1
  398. package/src/account/base.js +0 -153
  399. package/src/account/memory.js +0 -83
  400. package/src/account/multiple.js +0 -162
  401. package/src/ae/aens.js +0 -361
  402. package/src/ae/aepp.js +0 -45
  403. package/src/ae/contract.js +0 -148
  404. package/src/ae/index.js +0 -168
  405. package/src/ae/oracle.js +0 -311
  406. package/src/ae/universal.js +0 -47
  407. package/src/ae/wallet.js +0 -50
  408. package/src/chain/index.js +0 -269
  409. package/src/chain/node.js +0 -320
  410. package/src/channel/handlers.js +0 -673
  411. package/src/channel/index.js +0 -903
  412. package/src/channel/internal.js +0 -236
  413. package/src/contract/aci.js +0 -376
  414. package/src/contract/compiler.js +0 -100
  415. package/src/contract/ga/helpers.js +0 -19
  416. package/src/contract/ga/index.js +0 -150
  417. package/src/index.js +0 -89
  418. package/src/node-pool/index.js +0 -172
  419. package/src/node.js +0 -116
  420. package/src/tx/builder/constants.js +0 -100
  421. package/src/tx/builder/field-types.js +0 -61
  422. package/src/tx/builder/helpers.js +0 -334
  423. package/src/tx/builder/index.js +0 -465
  424. package/src/tx/builder/schema.js +0 -1100
  425. package/src/tx/index.js +0 -301
  426. package/src/tx/tx-object.js +0 -187
  427. package/src/tx/tx.js +0 -631
  428. package/src/tx/validator.js +0 -181
  429. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  430. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  431. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  432. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  433. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  434. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  435. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  436. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  437. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  438. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  439. package/src/utils/async-init.js +0 -45
  440. package/src/utils/crypto.js +0 -219
  441. package/src/utils/hd-wallet.js +0 -100
  442. package/src/utils/json-big.js +0 -26
  443. package/src/utils/keystore.js +0 -219
  444. package/src/utils/swagger.js +0 -156
@@ -1,100 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2021 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * ContractCompilerHttp module
20
- *
21
- * @module @aeternity/aepp-sdk/es/contract/compiler
22
- * @export ContractCompilerHttp
23
- * @example import { ContractCompilerHttp } from '@aeternity/aepp-sdk'
24
- */
25
-
26
- import semverSatisfies from '../utils/semver-satisfies'
27
- import AsyncInit from '../utils/async-init'
28
- import genSwaggerClient from '../utils/swagger'
29
- import { MissingParamError, UnsupportedVersionError } from '../utils/errors'
30
- import { mapObject } from '../utils/other'
31
-
32
- /**
33
- * Contract Compiler Stamp
34
- *
35
- * This stamp include api call's related to contract compiler functionality.
36
- * @function
37
- * @alias module:@aeternity/aepp-sdk/es/contract/compiler
38
- * @rtype Stamp
39
- * @param {Object} [options={}] - Initializer object
40
- * @param {String} [options.compilerUrl] compilerUrl - Url for compiler API
41
- * @return {Object} Contract compiler instance
42
- * @example ContractCompilerHttp({ compilerUrl: 'COMPILER_URL' })
43
- */
44
- export default AsyncInit.compose({
45
- async init ({ compilerUrl, ignoreVersion }) {
46
- if (!compilerUrl) return
47
- await this.setCompilerUrl(compilerUrl, { ignoreVersion })
48
- },
49
- methods: {
50
- async setCompilerUrl (compilerUrl, { ignoreVersion = false } = {}) {
51
- if (!compilerUrl) throw new MissingParamError('compilerUrl required')
52
- compilerUrl = compilerUrl.replace(/\/$/, '')
53
- const client = await genSwaggerClient(`${compilerUrl}/api`, {
54
- disableBigNumbers: true,
55
- disableCaseConversion: true,
56
- responseInterceptor: response => {
57
- if (response.ok) return
58
- let message = `${new URL(response.url).pathname.slice(1)} error`
59
- if (response.body.reason) {
60
- message += ': ' + response.body.reason +
61
- (response.body.parameter ? ` in ${response.body.parameter}` : '') +
62
- // TODO: revising after improving documentation https://github.com/aeternity/aesophia_http/issues/78
63
- (response.body.info ? ` (${JSON.stringify(response.body.info)})` : '')
64
- }
65
- if (Array.isArray(response.body)) {
66
- message += ':\n' + response.body
67
- .map(e => `${e.type}:${e.pos.line}:${e.pos.col}: ${e.message}${e.context ? `(${e.context})` : ''}`)
68
- .map(e => e.trim()) // TODO: remove after fixing https://github.com/aeternity/aesophia_http/issues/80
69
- .join('\n')
70
- }
71
- response.statusText = message
72
- return response
73
- }
74
- })
75
- this.compilerVersion = client.spec.info.version
76
- this.compilerApi = mapObject(
77
- client.api,
78
- ([key, fn]) => [
79
- key,
80
- ({ options: { filesystem, ...options } = {}, ...args } = {}) => fn({
81
- ...args, options: { ...options, file_system: filesystem }
82
- })
83
- ]
84
- )
85
-
86
- if (ignoreVersion) return
87
- if (!semverSatisfies(this.compilerVersion, COMPILER_GE_VERSION, COMPILER_LT_VERSION)) {
88
- throw new UnsupportedVersionError(
89
- 'compiler', this.compilerVersion, COMPILER_GE_VERSION, COMPILER_LT_VERSION
90
- )
91
- }
92
- }
93
- },
94
- props: {
95
- compilerVersion: null
96
- }
97
- })
98
-
99
- const COMPILER_GE_VERSION = '6.1.0'
100
- const COMPILER_LT_VERSION = '7.0.0'
@@ -1,19 +0,0 @@
1
- import BigNumber from 'bignumber.js'
2
- import { MAX_AUTH_FUN_GAS } from '../../tx/builder/schema'
3
- import { InvalidAuthDataError } from '../../utils/errors'
4
-
5
- export const prepareGaParams = (ins) => async (authData, authFnName) => {
6
- if (typeof authData !== 'object') throw new InvalidAuthDataError('AuthData must be an object')
7
- if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) { throw new InvalidAuthDataError(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`) }
8
- const gas = authData.gas || MAX_AUTH_FUN_GAS
9
- if (authData.callData) {
10
- if (authData.callData.split('_')[0] !== 'cb') throw new InvalidAuthDataError('Auth data must be a string with "cb" prefix.')
11
- return { authCallData: authData.callData, gas }
12
- }
13
- if (!authData.source || !authData.args) throw new InvalidAuthDataError('Auth data must contain source code and arguments.')
14
- const contract = await ins.getContractInstance({ source: authData.source })
15
- return {
16
- authCallData: contract.calldata.encode(contract._name, authFnName, authData.args),
17
- gas
18
- }
19
- }
@@ -1,150 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2021 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Generalized Account module - routines to use generalized account
20
- *
21
- * @module @aeternity/aepp-sdk/es/contract/ga
22
- * @export GeneralizedAccount
23
- * @example import { GeneralizedAccount } from '@aeternity/aepp-sdk'
24
- */
25
- import Contract from '../../ae/contract'
26
- import { TX_TYPE } from '../../tx/builder/schema'
27
- import { buildTx, unpackTx } from '../../tx/builder'
28
- import { prepareGaParams } from './helpers'
29
- import { hash } from '../../utils/crypto'
30
- import { IllegalArgumentError, MissingParamError } from '../../utils/errors'
31
-
32
- /**
33
- * GeneralizedAccount Stamp
34
- *
35
- * Provide Generalized Account implementation
36
- * {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.
37
- * @function
38
- * @alias module:@aeternity/aepp-sdk/es/contract/ga
39
- * @rtype Stamp
40
- * @param {Object} [options={}] - Initializer object
41
- * @return {Object} GeneralizedAccount instance
42
- * @example
43
- * const authContract = ``
44
- * await aeSdk.createGeneralizedAccount(authFnName, authContract, [...authFnArguments]
45
- * // Make spend using GA
46
- * const callData = 'cb_...' // encoded call data for auth contract
47
- * await aeSdk.spend(10000, receiverPub, { authData: { callData } })
48
- * // or
49
- * await aeSdk.spend(10000, receiverPub, {
50
- * authData: { source: authContract, args: [...authContractArgs] }
51
- * }) // sdk will prepare callData itself
52
- */
53
- export const GeneralizedAccount = Contract.compose({
54
- methods: {
55
- createGeneralizedAccount,
56
- createMetaTx,
57
- isGA
58
- }
59
- })
60
- export default GeneralizedAccount
61
-
62
- /**
63
- * @alias module:@aeternity/aepp-sdk/es/contract/ga
64
- * @function
65
- * Check if account is GA
66
- * @param {String} address - Account address
67
- * @return {Boolean}
68
- */
69
- async function isGA (address) {
70
- const { contractId } = await this.getAccount(address)
71
- return !!contractId
72
- }
73
-
74
- /**
75
- * Convert current account to GA
76
- * @alias module:@aeternity/aepp-sdk/es/contract/ga
77
- * @function
78
- * @param {String} authFnName - Authorization function name
79
- * @param {String} source - Auth contract source code
80
- * @param {Array} [args] - init arguments
81
- * @param {Object} [options] - Options
82
- * @return {Promise<Readonly<{
83
- * result: *, owner: *, address, rawTx: *, transaction: *
84
- * }>>}
85
- */
86
- async function createGeneralizedAccount (authFnName, source, args = [], options = {}) {
87
- const opt = { ...this.Ae.defaults, ...options }
88
- const ownerId = await this.address(opt)
89
- if (await this.isGA(ownerId)) throw new IllegalArgumentError(`Account ${ownerId} is already GA`)
90
-
91
- const contract = await this.getContractInstance({ source })
92
- await contract.compile()
93
- const { tx, contractId } = await this.gaAttachTx({
94
- ...opt,
95
- gas: opt.gas ?? await contract._estimateGas('init', args, opt),
96
- ownerId,
97
- code: contract.bytecode,
98
- callData: contract.calldata.encode(contract._name, 'init', args),
99
- authFun: hash(authFnName)
100
- })
101
-
102
- const { hash: transaction, rawTx } = await this.send(tx, opt)
103
-
104
- return Object.freeze({
105
- owner: ownerId,
106
- transaction,
107
- rawTx,
108
- gaContractId: contractId
109
- })
110
- }
111
-
112
- const wrapInEmptySignedTx = (tx) => buildTx({ encodedTx: tx, signatures: [] }, TX_TYPE.signed)
113
-
114
- /**
115
- * Create a metaTx transaction
116
- * @alias module:@aeternity/aepp-sdk/es/contract/ga
117
- * @function
118
- * @param {String} rawTransaction Inner transaction
119
- * @param {Object} authData Object with gaMeta params
120
- * @param {String} authFnName - Authorization function name
121
- * @param {Object} options - Options
122
- * @return {String}
123
- */
124
- async function createMetaTx (rawTransaction, authData, authFnName, options = {}) {
125
- if (!authData) throw new MissingParamError('authData is required')
126
- // Check if authData is callData or if it's an object prepare a callData from source and args
127
- const { authCallData, gas } = await prepareGaParams(this)(authData, authFnName)
128
- const opt = { ...this.Ae.defaults, ...options }
129
- const { abiVersion } = await this.getVmVersion(TX_TYPE.contractCall)
130
- const wrappedTx = wrapInEmptySignedTx(unpackTx(rawTransaction))
131
- const params = {
132
- ...opt,
133
- tx: {
134
- ...wrappedTx,
135
- tx: wrappedTx.txObject
136
- },
137
- gaId: await this.address(opt),
138
- abiVersion,
139
- authData: authCallData,
140
- gas,
141
- vsn: 2
142
- }
143
- const { fee } = await this.prepareTxParams(TX_TYPE.gaMeta, params)
144
- const { rlpEncoded: metaTxRlp } = buildTx(
145
- { ...params, fee: `${fee}` },
146
- TX_TYPE.gaMeta,
147
- { vsn: 2 }
148
- )
149
- return wrapInEmptySignedTx(metaTxRlp).tx
150
- }
package/src/index.js DELETED
@@ -1,89 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2021 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- import * as Crypto from './utils/crypto'
19
- import * as Keystore from './utils/keystore'
20
- import * as Bytes from './utils/bytes'
21
- import * as TxBuilder from './tx/builder'
22
- import * as TxBuilderHelper from './tx/builder/helpers'
23
- import * as SCHEMA from './tx/builder/schema'
24
- import * as AmountFormatter from './utils/amount-formatter'
25
- import * as HdWallet from './utils/hd-wallet'
26
-
27
- import Ae from './ae'
28
- import Chain from './chain'
29
- import ChainNode from './chain/node'
30
- import Node from './node'
31
- import NodePool from './node-pool'
32
- import Tx from './tx'
33
- import Transaction from './tx/tx'
34
- import verifyTransaction from './tx/validator'
35
- import AccountBase from './account/base'
36
- import AccountMultiple from './account/multiple'
37
- import MemoryAccount from './account/memory'
38
- import Aens from './ae/aens'
39
- import Contract from './ae/contract'
40
- import GeneralizedAccount from './contract/ga'
41
- import ContractCompilerHttp from './contract/compiler'
42
- import RpcAepp from './ae/aepp'
43
- import RpcWallet from './ae/wallet'
44
- import Oracle from './ae/oracle'
45
- import genSwaggerClient from './utils/swagger'
46
- import Channel from './channel'
47
- import Universal from './ae/universal'
48
-
49
- export { default as ContentScriptBridge } from './utils/aepp-wallet-communication/content-script-bridge'
50
- export * as AeppWalletHelpers from './utils/aepp-wallet-communication/helpers'
51
- export * as AeppWalletSchema from './utils/aepp-wallet-communication/schema'
52
- export { default as WalletDetector } from './utils/aepp-wallet-communication/wallet-detector'
53
- export { default as BrowserRuntimeConnection } from './utils/aepp-wallet-communication/connection/browser-runtime'
54
- export { default as BrowserWindowMessageConnection } from './utils/aepp-wallet-communication/connection/browser-window-message'
55
- export * from './utils/errors'
56
-
57
- export const getDefaultPointerKey = TxBuilderHelper.getDefaultPointerKey
58
-
59
- export {
60
- AmountFormatter,
61
- AccountBase,
62
- AccountMultiple,
63
- Ae,
64
- Aens,
65
- Bytes,
66
- Contract,
67
- ContractCompilerHttp,
68
- ChainNode,
69
- RpcAepp,
70
- RpcWallet,
71
- Channel,
72
- Crypto,
73
- Keystore,
74
- Chain,
75
- GeneralizedAccount,
76
- HdWallet,
77
- MemoryAccount,
78
- Node,
79
- NodePool,
80
- Oracle,
81
- genSwaggerClient,
82
- Transaction,
83
- verifyTransaction,
84
- Tx,
85
- TxBuilder,
86
- TxBuilderHelper,
87
- Universal,
88
- SCHEMA
89
- }
@@ -1,172 +0,0 @@
1
- /**
2
- * NodePool module
3
- * @module @aeternity/aepp-sdk/es/node-pool
4
- * @export NodePool
5
- * @example import { NodePool } from '@aeternity/aepp-sdk'
6
- */
7
- import stampit from '@stamp/it'
8
- import { getNetworkId } from '../node'
9
- import { DisconnectedError, DuplicateNodeError, NodeNotFoundError, TypeError } from '../utils/errors'
10
-
11
- /**
12
- * Node Pool Stamp
13
- * This stamp allow you to make basic manipulation(add, remove, select) on list of nodes
14
- * @function
15
- * @alias module:@aeternity/aepp-sdk/es/node-pool
16
- * @rtype Stamp
17
- * @param {Object} [options={}] - Initializer object
18
- * @param {Array} [options.nodes] - Array with Node instances
19
- * @return {Object} NodePool instance
20
- */
21
- export default stampit({
22
- init ({ nodes = [] } = {}) {
23
- this.pool = new Map()
24
- this.validateNodes(nodes)
25
-
26
- nodes.forEach((node, i) => {
27
- const { name, instance } = node
28
- this.addNode(name, instance, i === 0)
29
- })
30
- if (nodes.length) this.selectNode(nodes[0].name)
31
- },
32
- propertyDescriptors: {
33
- api: {
34
- enumerable: true,
35
- configurable: false,
36
- get () {
37
- if (!this.selectedNode || !this.selectedNode.instance) {
38
- throw new NodeNotFoundError('You can\'t use Node API. Node is not connected or not defined!')
39
- }
40
- return this.selectedNode.instance.api
41
- }
42
- }
43
- },
44
- methods: {
45
- /**
46
- * Add Node
47
- * @function
48
- * @alias module:@aeternity/aepp-sdk/es/node-pool
49
- * @rtype (name: String, nodeInstance: Object, select: Boolean) => void
50
- * @param {String} name - Node name
51
- * @param {Object} node - Node instance
52
- * @param {Boolean} select - Select this node as current
53
- * @return {void}
54
- * @example
55
- * // add and select new node with name 'testNode'
56
- * nodePool.addNode('testNode', awaitNode({ url, internalUrl }), true)
57
- */
58
- addNode (name, node, select = false) {
59
- if (this.pool.has(name)) throw new DuplicateNodeError(name)
60
-
61
- this.validateNodes([{ name, instance: node }])
62
-
63
- this.pool.set(name, {
64
- name,
65
- instance: node,
66
- url: node.url,
67
- internalUrl: node.internalUrl,
68
- networkId: node.nodeNetworkId,
69
- version: node.version,
70
- consensusProtocolVersion: node.consensusProtocolVersion
71
- })
72
- if (select || !this.selectedNode) {
73
- this.selectNode(name)
74
- }
75
- },
76
- /**
77
- * Select Node
78
- * @function
79
- * @alias module:@aeternity/aepp-sdk/es/node-pool
80
- * @rtype (name: String) => void
81
- * @param {String} name - Node name
82
- * @return {void}
83
- * @example
84
- * nodePool.selectNode('testNode')
85
- */
86
- selectNode (name) {
87
- if (!this.pool.has(name)) throw new NodeNotFoundError(`Node with name ${name} not in pool`)
88
-
89
- this.selectedNode = this.pool.get(name)
90
- },
91
- /**
92
- * Get NetworkId of current Node
93
- * @function
94
- * @alias module:@aeternity/aepp-sdk/es/node-pool
95
- * @rtype () => String
96
- * @return {String}
97
- * @example
98
- * nodePool.getNetworkId()
99
- */
100
- getNetworkId,
101
- /**
102
- * Check if you have selected node
103
- * @function
104
- * @alias module:@aeternity/aepp-sdk/es/node-pool
105
- * @rtype () => Boolean
106
- * @return {Boolean}
107
- * @example
108
- * nodePool.isNodeConnected()
109
- */
110
- isNodeConnected () {
111
- return !!this.selectedNode.instance
112
- },
113
- /**
114
- * Get information about node
115
- * @function
116
- * @alias module:@aeternity/aepp-sdk/es/node-pool
117
- * @rtype () => Object
118
- * @return {Object}
119
- * @example
120
- * nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
121
- */
122
- getNodeInfo () {
123
- if (!this.isNodeConnected()) throw new DisconnectedError()
124
- return {
125
- name: this.selectedNode.name,
126
- ...this.selectedNode.instance.getNodeInfo()
127
- }
128
- },
129
- /**
130
- * Get array of available nodes
131
- * @function
132
- * @alias module:@aeternity/aepp-sdk/es/node-pool
133
- * @rtype () => Object[]
134
- * @return {Object[]}
135
- * @example
136
- * nodePool.getNodesInPool()
137
- */
138
- getNodesInPool () {
139
- return Array.from(this.pool.entries()).map(([name, node]) => ({
140
- name,
141
- ...node.instance.getNodeInfo()
142
- }))
143
- },
144
- validateNodes (nodes) {
145
- // TODO: validate it on TypeScript level instead
146
- // (to speedup development, save runtime resources)
147
- if (!Array.isArray(nodes)) throw new TypeError('"nodes" should be an array')
148
- const notObject = nodes.map(n => typeof n).find(t => t !== 'object')
149
- if (notObject) throw new TypeError(`Each node should be an object, got ${notObject} instead`)
150
- const wrongFields = nodes.find(n => typeof n.name !== 'string' || typeof n.instance !== 'object')
151
- if (notObject) {
152
- throw new TypeError(
153
- 'Each node should have name (string), instance (object) ' +
154
- `fields, got ${JSON.stringify(wrongFields)} instead`
155
- )
156
- }
157
- const wrongInstanceFields = nodes
158
- .map(n => n.instance)
159
- .find(i => typeof i.api !== 'object' || typeof i.genesisHash !== 'string' ||
160
- typeof i.consensusProtocolVersion !== 'number')
161
- if (wrongInstanceFields) {
162
- throw new TypeError(
163
- 'Each node instance should have api (object), consensusProtocolVersion (number), ' +
164
- `genesisHash (string) fields, got ${JSON.stringify(wrongInstanceFields)} instead`
165
- )
166
- }
167
- }
168
- },
169
- props: {
170
- selectedNode: {}
171
- }
172
- })
package/src/node.js DELETED
@@ -1,116 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2021 aeternity developers
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
- * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
- * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
- * PERFORMANCE OF THIS SOFTWARE.
16
- */
17
-
18
- /**
19
- * Node module
20
- * @module @aeternity/aepp-sdk/es/node
21
- * @export Node
22
- * @example import { Node } from '@aeternity/aepp-sdk'
23
- */
24
-
25
- import AsyncInit from './utils/async-init'
26
- import genSwaggerClient from './utils/swagger'
27
- import semverSatisfies from './utils/semver-satisfies'
28
- import { MissingParamError, UnsupportedVersionError } from './utils/errors'
29
-
30
- /**
31
- * Obtain networkId from account or node
32
- * @instance
33
- * @category async
34
- * @rtype () => networkId: String
35
- * @return {String} NetworkId
36
- */
37
- export function getNetworkId ({ networkId, force = false } = {}) {
38
- const res = networkId || this.networkId || this.selectedNode?.networkId
39
- if (!force && !res) throw new MissingParamError('networkId is not provided')
40
- if (force && !res) return null
41
- return res
42
- }
43
-
44
- /**
45
- * {@link genSwaggerClient} based Node remote API Stamp
46
- * @function
47
- * @alias module:@aeternity/aepp-sdk/es/node
48
- * @rtype Stamp
49
- * @param {Object} [options={}] - Options
50
- * @param {String} options.url - Base URL for Node
51
- * @param {String} options.internalUrl - Base URL for internal requests
52
- * @param {Object} options.axiosConfig - Object with axios configuration
53
- * @param {Object} options.axiosConfig.config
54
- * @param {Function} options.axiosConfig.errorHandler - (err) => throw err
55
- * @return {Object} Node client
56
- * @example Node({url: 'https://testnet.aeternity.io'})
57
- */
58
- const Node = AsyncInit.compose({
59
- async init ({ url, internalUrl, ignoreVersion }) {
60
- if (!url) throw new MissingParamError('"url" required')
61
- this.url = url.replace(/\/$/, '')
62
- this.internalUrl = internalUrl?.replace(/\/$/, '')
63
- const client = await genSwaggerClient(`${this.url}/api?oas3`, {
64
- internalUrl: this.internalUrl,
65
- responseInterceptor: response => {
66
- if (response.ok) return
67
- return Object.assign(response, {
68
- statusText: `${new URL(response.url).pathname.slice(1)} error: ` + response.body.reason
69
- })
70
- }
71
- })
72
- this.version = client.spec.info.version
73
- if (
74
- !semverSatisfies(this.version, NODE_GE_VERSION, NODE_LT_VERSION) &&
75
- !ignoreVersion
76
- ) {
77
- throw new UnsupportedVersionError('node', this.version, NODE_GE_VERSION, NODE_LT_VERSION)
78
- }
79
- this.api = client.api
80
-
81
- const {
82
- nodeRevision: revision, genesisKeyBlockHash: genesisHash, networkId,
83
- protocols, topBlockHeight
84
- } = await this.api.getStatus()
85
- this.consensusProtocolVersion = protocols
86
- .filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)
87
- .reduce(
88
- (acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc,
89
- { effectiveAtHeight: -1, version: 0 }
90
- )
91
- .version
92
- this.nodeNetworkId = networkId
93
- return Object.assign(this, { revision, genesisHash })
94
- },
95
- methods: {
96
- getNodeInfo () {
97
- return {
98
- url: this.url,
99
- internalUrl: this.internalUrl,
100
- nodeNetworkId: this.nodeNetworkId,
101
- version: this.version,
102
- consensusProtocolVersion: this.consensusProtocolVersion
103
- }
104
- }
105
- },
106
- props: {
107
- version: null,
108
- consensusProtocolVersion: null,
109
- nodeNetworkId: null
110
- }
111
- })
112
-
113
- const NODE_GE_VERSION = '6.2.0'
114
- const NODE_LT_VERSION = '7.0.0'
115
-
116
- export default Node