@aeternity/aepp-sdk 11.0.0 → 12.1.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 (442) 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 +20764 -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 +138 -88
  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 +122 -0
  135. package/es/tx/builder/constants.mjs.map +1 -0
  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 -240
  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 -664
  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 -108
  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 +118 -0
  218. package/es/utils/encoder.mjs.map +1 -0
  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 +56 -42
  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 +170 -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 +146 -0
  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/node-pool/index.mjs +0 -188
  360. package/es/node-pool/index.mjs.map +0 -1
  361. package/es/node.mjs +0 -133
  362. package/es/node.mjs.map +0 -1
  363. package/es/other.d.ts +0 -31
  364. package/es/semver-satisfies.d.ts +0 -1
  365. package/es/string.d.ts +0 -26
  366. package/es/tx/builder/field-types.mjs +0 -74
  367. package/es/tx/builder/field-types.mjs.map +0 -1
  368. package/es/tx/tx-object.mjs +0 -283
  369. package/es/tx/tx-object.mjs.map +0 -1
  370. package/es/tx/tx.mjs +0 -938
  371. package/es/tx/tx.mjs.map +0 -1
  372. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  373. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  374. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  375. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  376. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  377. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  378. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  379. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  380. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  381. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  382. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  383. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  384. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  385. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  386. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  387. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  388. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  389. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  390. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  391. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  392. package/es/utils/async-init.mjs +0 -64
  393. package/es/utils/async-init.mjs.map +0 -1
  394. package/es/utils/crypto-ts.mjs.map +0 -1
  395. package/es/utils/swagger.mjs +0 -164
  396. package/es/utils/swagger.mjs.map +0 -1
  397. package/src/account/base.js +0 -153
  398. package/src/account/memory.js +0 -83
  399. package/src/account/multiple.js +0 -162
  400. package/src/ae/aens.js +0 -361
  401. package/src/ae/aepp.js +0 -45
  402. package/src/ae/contract.js +0 -148
  403. package/src/ae/index.js +0 -168
  404. package/src/ae/oracle.js +0 -311
  405. package/src/ae/universal.js +0 -47
  406. package/src/ae/wallet.js +0 -50
  407. package/src/chain/index.js +0 -269
  408. package/src/chain/node.js +0 -320
  409. package/src/channel/handlers.js +0 -673
  410. package/src/channel/index.js +0 -898
  411. package/src/channel/internal.js +0 -237
  412. package/src/contract/aci.js +0 -376
  413. package/src/contract/compiler.js +0 -100
  414. package/src/contract/ga/helpers.js +0 -19
  415. package/src/contract/ga/index.js +0 -150
  416. package/src/index.js +0 -89
  417. package/src/node-pool/index.js +0 -172
  418. package/src/node.js +0 -116
  419. package/src/tx/builder/field-types.js +0 -61
  420. package/src/tx/builder/helpers.js +0 -380
  421. package/src/tx/builder/index.js +0 -465
  422. package/src/tx/builder/schema.js +0 -1197
  423. package/src/tx/index.js +0 -301
  424. package/src/tx/tx-object.js +0 -187
  425. package/src/tx/tx.js +0 -631
  426. package/src/tx/validator.js +0 -181
  427. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  428. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  429. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  430. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  431. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  432. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  433. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  434. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  435. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  436. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  437. package/src/utils/async-init.js +0 -45
  438. package/src/utils/crypto.js +0 -229
  439. package/src/utils/hd-wallet.js +0 -100
  440. package/src/utils/json-big.js +0 -26
  441. package/src/utils/keystore.js +0 -219
  442. 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