@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 +1 @@
1
- {"version":3,"sources":["../../../src/tx/builder/index.js"],"names":["BigNumber","AE_AMOUNT_FORMATS","formatAmount","hash","Field","DEFAULT_FEE","FIELD_TYPES","OBJECT_ID_TX_TYPE","TX_DESERIALIZATION_SCHEMA","TX_FEE_BASE_GAS","TX_FEE_OTHER_GAS","TX_SERIALIZATION_SCHEMA","TX_TYPE","VSN","readInt","readId","readPointers","writeId","writeInt","buildPointers","encode","decode","toBytes","MPTree","InvalidTxParamsError","SchemaNotFoundError","ORACLE_TTL_TYPES","delta","block","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","amount","int","id","ids","map","bool","binary","stateTree","string","toString","payload","pointers","rlpBinary","unpackTx","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","prototype","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","undefined","isNaN","isBigNumber","lt","prefixes","Array","isArray","includes","some","p","key","length","transformParams","schema","denomination","filter","_","schemaKeys","k","Object","entries","getOracleRelativeTtl","txType","ttlKey","oracleRegister","oracleExtend","oracleQuery","oracleResponse","calculateMinFee","gas","vsn","multiplier","times","actualFee","buildFee","fee","expected","eq","txWithOutFee","buildTx","txSize","plus","relativeTtl","innerTxSize","gaMeta","payingFor","tx","encodedTx","calculateFee","showWarning","console","warn","validateParams","excludeKeys","fromEntries","message","buildRawTx","AETTOS","filteredSchema","valid","keys","JSON","stringify","fieldType","unpackRawTx","index","assign","getSchema","objId","isDeserialize","firstKey","tag","e","rlpEncode","txObject","fromRlpBinary","rlpDecode","buildTxHash","rawTx","data","startsWith"],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { decode as rlpDecode, encode as rlpEncode } from 'rlp'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'\nimport { hash } from '../../utils/crypto'\nimport { Field } from './field-types'\n\nimport {\n DEFAULT_FEE,\n FIELD_TYPES,\n OBJECT_ID_TX_TYPE,\n TX_DESERIALIZATION_SCHEMA,\n TX_FEE_BASE_GAS,\n TX_FEE_OTHER_GAS,\n TX_SERIALIZATION_SCHEMA,\n TX_TYPE,\n VSN\n} from './schema'\nimport {\n readInt,\n readId,\n readPointers,\n writeId,\n writeInt,\n buildPointers,\n encode,\n decode\n} from './helpers'\nimport { toBytes } from '../../utils/bytes'\nimport MPTree from '../../utils/mptree'\nimport { InvalidTxParamsError, SchemaNotFoundError } from '../../utils/errors'\n\n/**\n * JavaScript-based Transaction builder\n * @module @aeternity/aepp-sdk/es/tx/builder\n * @export TxBuilder\n * @example import { TxBuilder } from '@aeternity/aepp-sdk'\n */\n\nconst ORACLE_TTL_TYPES = {\n delta: 'delta',\n block: 'block'\n}\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField (value, type, prefix) {\n if (!value) return ''\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value\n return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) }\n }\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return readInt(value)\n case FIELD_TYPES.id:\n return readId(value)\n case FIELD_TYPES.ids:\n return value.map(readId)\n case FIELD_TYPES.bool:\n return value[0] === 1\n case FIELD_TYPES.binary:\n return encode(value, prefix)\n case FIELD_TYPES.stateTree:\n return encode(value, 'ss')\n case FIELD_TYPES.string:\n return value.toString()\n case FIELD_TYPES.payload:\n return encode(value, 'ba')\n case FIELD_TYPES.pointers:\n return readPointers(value)\n case FIELD_TYPES.rlpBinary:\n return unpackTx(value, true)\n case FIELD_TYPES.rlpBinaries:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.rawBinary:\n return value\n case FIELD_TYPES.hex:\n return value.toString('hex')\n case FIELD_TYPES.offChainUpdates:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)]\n case FIELD_TYPES.mptrees:\n return value.map(t => new MPTree(t))\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0': return 'ok'\n case '1': return 'error'\n case '2': return 'revert'\n default: return value\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value\n .reduce(\n (acc, [funHash, fnName, argType, outType]) =>\n ({ ...acc, [fnName.toString()]: { funHash, argType, outType } }),\n {}\n )\n default:\n if (type.prototype instanceof Field) return type.deserialize(value)\n return value\n }\n}\n\nfunction serializeField (value, type, prefix, params) {\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return writeInt(value)\n case FIELD_TYPES.id:\n return writeId(value)\n case FIELD_TYPES.ids:\n return value.map(writeId)\n case FIELD_TYPES.bool:\n return Buffer.from([value ? 1 : 0])\n case FIELD_TYPES.binary:\n return decode(value, prefix)\n case FIELD_TYPES.stateTree:\n return decode(value, 'ss')\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex')\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from)\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value, 'ba')\n : toBytes(value)\n case FIELD_TYPES.string:\n return toBytes(value)\n case FIELD_TYPES.pointers:\n return buildPointers(value)\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value\n case FIELD_TYPES.mptrees:\n return value.map(t => t.serialize())\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0)\n case 'error': return writeInt(1)\n case 'revert': return writeInt(2)\n default: return value\n }\n default:\n if (type.prototype instanceof Field) return type.serialize(value, params)\n return value\n }\n}\n\nfunction validateField (value, type, prefix) {\n // All fields are required\n if (value === undefined || value === null) return 'Field is required'\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int: {\n if (isNaN(value) && !BigNumber.isBigNumber(value)) {\n return `${value} is not of type Number or BigNumber`\n }\n if (new BigNumber(value).lt(0)) return `${value} must be >= 0`\n return\n }\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix]\n if (!prefixes.includes(value.split('_')[0])) {\n return `'${value}' prefix doesn't match expected prefix '${prefix}'`\n }\n return\n }\n case FIELD_TYPES.ctVersion:\n if (!value?.abiVersion || !value?.vmVersion) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields'\n }\n return\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array'\n if (value.some(p => !p?.key || !p?.id)) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\''\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`\n }\n }\n}\n\nfunction transformParams (params, schema, { denomination } = {}) {\n params = schema\n .filter(([_, t]) => t === FIELD_TYPES.amount)\n .reduce(\n (acc, [key]) => ({ ...params, [key]: formatAmount(params[key], { denomination }) }),\n params\n )\n const schemaKeys = schema.map(([k]) => k)\n return Object\n .entries(params)\n .reduce(\n (acc, [key, value]) => {\n if (schemaKeys.includes(key)) acc[key] = value\n if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) {\n acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1\n acc[`${key}Value`] = value.value\n }\n return acc\n },\n {}\n )\n}\n\n// INTERFACE\n\nfunction getOracleRelativeTtl (params, txType) {\n const ttlKey = {\n [TX_TYPE.oracleRegister]: 'oracleTtl',\n [TX_TYPE.oracleExtend]: 'oracleTtl',\n [TX_TYPE.oracleQuery]: 'queryTtl',\n [TX_TYPE.oracleResponse]: 'responseTtl'\n }[txType]\n\n if (params[ttlKey] || params[`${ttlKey}Value`]) {\n return params[`${ttlKey}Value`] || params[ttlKey].value\n }\n return 1\n}\n\n/**\n * Calculate min fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder/index\n * @rtype (txType, { gas = 0, params }) => String\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateMinFee('spendTx', { gas, params })\n */\nexport function calculateMinFee (txType, { gas = 0, params, vsn }) {\n const multiplier = BigNumber(1e9) // 10^9 GAS_PRICE\n if (!params) return BigNumber(DEFAULT_FEE).times(multiplier).toString(10)\n\n let actualFee = buildFee(txType, { params: { ...params, fee: 0 }, multiplier, gas, vsn })\n let expected = BigNumber(0)\n\n while (!actualFee.eq(expected)) {\n actualFee = buildFee(txType, { params: { ...params, fee: actualFee }, multiplier, gas, vsn })\n expected = actualFee\n }\n return expected.toString(10)\n}\n\n/**\n * Calculate fee based on tx type and params\n * @param txType\n * @param params\n * @param gas\n * @param multiplier\n * @param vsn\n * @return {BigNumber}\n */\nfunction buildFee (txType, { params, gas = 0, multiplier, vsn }) {\n const { rlpEncoded: txWithOutFee } = buildTx({ ...params }, txType, { vsn })\n const txSize = txWithOutFee.length\n return TX_FEE_BASE_GAS(txType)\n .plus(TX_FEE_OTHER_GAS(txType, txSize, {\n relativeTtl: getOracleRelativeTtl(params, txType),\n innerTxSize: [TX_TYPE.gaMeta, TX_TYPE.payingFor].includes(txType)\n ? params.tx.tx.encodedTx.rlpEncoded.length\n : 0\n }))\n .times(multiplier)\n}\n\n/**\n * Calculate fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @rtype (fee, txType, gas = 0) => String\n * @param {String|Number} fee - fee\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateFee(null, 'spendTx', { gas, params })\n */\nexport function calculateFee (fee = 0, txType, { gas = 0, params, showWarning = true, vsn } = {}) {\n if (!params && showWarning) console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${DEFAULT_FEE})`)\n\n return fee || calculateMinFee(txType, { params, gas, vsn })\n}\n\n/**\n * Validate transaction params\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Array} excludeKeys Array of keys to exclude for validation\n * @return {Object} Object with validation errors\n */\nexport function validateParams (params, schema, { excludeKeys = [] }) {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key) &&\n !['payload', 'nameFee', 'deposit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message)\n )\n}\n\n/**\n * Build binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys=[]] Array of keys to exclude for validation and build\n * @param {String} [options.denomination='aettos'] Denomination of amounts\n * @throws {Error} Validation error\n * @return {Array} Array with binary fields of transaction\n */\nexport function buildRawTx (\n params,\n schema,\n { excludeKeys = [], denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))\n\n // Transform `amount` type fields to `aettos`\n params = transformParams(params, filteredSchema, { denomination })\n // Validation\n const valid = validateParams(params, schema, { excludeKeys })\n if (Object.keys(valid).length) {\n throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))\n }\n\n return filteredSchema\n .map(([key, fieldType, prefix]) => serializeField(params[key], fieldType, prefix, params))\n}\n\n/**\n * Unpack binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Array} binary Array with binary transaction field's\n * @param {Array} schema Transaction schema\n * @return {Object} Object with transaction field's\n */\nexport function unpackRawTx (binary, schema) {\n return schema\n .reduce(\n (\n acc,\n [key, fieldType, prefix],\n index\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {}\n )\n}\n\n/**\n * Get transaction serialization/deserialization schema\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {{ vsn: String, objId: Number, type: String }}\n * @throws {Error} Schema not found error\n * @return {Object} Schema\n */\nconst getSchema = ({ vsn, objId, type }) => {\n const isDeserialize = !!objId\n const firstKey = isDeserialize ? objId : type\n const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA\n\n if (!schema[firstKey]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`)\n }\n if (!schema[firstKey][vsn]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`)\n }\n return schema[firstKey][vsn]\n}\n\n/**\n * Build transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {String} type Transaction type\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys] Array of keys to exclude for validation and build\n * @param {String} [options.prefix] Prefix of transaction\n * @throws {Error} Validation error\n * @returns {Object} object\n * @returns {String} object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function buildTx (\n params,\n type,\n { excludeKeys = [], prefix = 'tx', vsn = VSN, denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const [schema, tag] = getSchema({ type, vsn })\n const binary = buildRawTx(\n { ...params, VSN: vsn, tag },\n schema,\n { excludeKeys, denomination: params.denomination || denomination }\n ).filter(e => e !== undefined)\n\n const rlpEncoded = rlpEncode(binary)\n const tx = encode(rlpEncoded, prefix)\n\n return { tx, rlpEncoded, binary, txObject: unpackRawTx(binary, schema) }\n}\n\n/**\n * Unpack transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String|Buffer} encodedTx String or RLP encoded transaction array\n * (if fromRlpBinary flag is true)\n * @param {Boolean} fromRlpBinary Unpack from RLP encoded transaction (default: false)\n * @param {String} prefix - Prefix of data\n * @returns {Object} object\n * @returns {Object} object.tx Object with transaction param's\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function unpackTx (encodedTx, fromRlpBinary = false, prefix = 'tx') {\n const rlpEncoded = fromRlpBinary ? encodedTx : decode(encodedTx, prefix)\n const binary = rlpDecode(rlpEncoded)\n\n const objId = readInt(binary[0])\n const vsn = readInt(binary[1])\n const [schema] = getSchema({ objId, vsn })\n\n return { txType: OBJECT_ID_TX_TYPE[objId], tx: unpackRawTx(binary, schema), rlpEncoded, binary }\n}\n\n/**\n * Build a transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String | Buffer} rawTx base64 or rlp encoded transaction\n * @return {String} Transaction hash\n */\nexport function buildTxHash (rawTx) {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx, 'tx') : rawTx\n return encode(hash(data), 'th')\n}\n\nexport default {\n calculateMinFee,\n calculateFee,\n unpackTx,\n unpackRawTx,\n buildTx,\n buildRawTx,\n validateParams,\n buildTxHash\n}\n"],"file":"index.mjs"}
1
+ {"version":3,"file":"index.mjs","names":["decode","encode","Encoding","AE_AMOUNT_FORMATS","hash","FIELD_TYPES","TX_SCHEMA","Tag","buildContractId","buildPointers","readInt","readPointers","writeInt","readId","writeId","toBytes","MPTree","ArgumentError","DecodeError","InvalidTxParamsError","SchemaNotFoundError","isKeyOfObject","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","ttlType","id","ids","map","bool","binary","stateTree","StateTrees","string","toString","payload","Bytearray","pointers","rlpBinary","unpackTx","Transaction","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","prefixes","Array","isArray","String","undefined","Boolean","some","p","key","length","validateParams","schema","excludeKeys","Object","fromEntries","filter","message","unpackRawTx","index","fieldType","assign","buildTx","_params","vsn","denomination","AETTOS","schemas","Math","max","keys","a","VSN","tag","filteredSchema","valid","JSON","stringify","txType","rebuildTx","overrideParams","e","rlpEncode","tx","txObject","encodedTx","rlpDecode","objId","buildTxHash","rawTx","data","startsWith","TxHash","buildContractIdByContractTx","contractTx","ContractCreateTx","GaAttachTx","ownerId","nonce"],"sources":["../../../src/tx/builder/index.ts"],"sourcesContent":["import { decode as rlpDecode, encode as rlpEncode, NestedUint8Array } from 'rlp';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../../utils/encoder';\nimport { AE_AMOUNT_FORMATS } from '../../utils/amount-formatter';\nimport { hash } from '../../utils/crypto';\nimport { Field } from './field-types';\nimport {\n FIELD_TYPES,\n RawTxObject,\n TX_SCHEMA,\n TxField,\n TxParamsCommon,\n TxSchema,\n TxTypeSchemas,\n} from './schema';\nimport { Tag } from './constants';\nimport {\n buildContractId, buildPointers, readInt, readPointers, writeInt,\n} from './helpers';\nimport { readId, writeId } from './address';\nimport { toBytes } from '../../utils/bytes';\nimport MPTree, { MPTreeBinary } from '../../utils/mptree';\nimport {\n ArgumentError,\n DecodeError,\n InvalidTxParamsError,\n SchemaNotFoundError,\n} from '../../utils/errors';\nimport { isKeyOfObject } from '../../utils/other';\nimport { NamePointer } from '../../apis/node';\n\n/**\n * JavaScript-based Transaction builder\n */\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField(\n value: any,\n type: FIELD_TYPES | Field,\n prefix?: Encoding | Encoding[],\n): any {\n if (value == null) return '';\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value;\n return {\n vmVersion: readInt(Buffer.from([vm])),\n abiVersion: readInt(Buffer.from([abi])),\n };\n }\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return readInt(value);\n case FIELD_TYPES.id:\n return readId(value);\n case FIELD_TYPES.ids:\n return value.map(readId);\n case FIELD_TYPES.bool:\n return value[0] === 1;\n case FIELD_TYPES.binary:\n return encode(value, prefix as Encoding);\n case FIELD_TYPES.stateTree:\n return encode(value, Encoding.StateTrees);\n case FIELD_TYPES.string:\n return value.toString();\n case FIELD_TYPES.payload:\n return encode(value, Encoding.Bytearray);\n case FIELD_TYPES.pointers:\n return readPointers(value);\n case FIELD_TYPES.rlpBinary:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return unpackTx(encode(value, Encoding.Transaction));\n case FIELD_TYPES.rlpBinaries:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));\n case FIELD_TYPES.rawBinary:\n return value;\n case FIELD_TYPES.hex:\n return value.toString('hex');\n case FIELD_TYPES.offChainUpdates:\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return value.map((v: Buffer) => unpackTx(encode(v, Encoding.Transaction)));\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)];\n case FIELD_TYPES.mptrees:\n return value.map((t: MPTreeBinary) => new MPTree(t));\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0':\n return 'ok';\n case '1':\n return 'error';\n case '2':\n return 'revert';\n default:\n return value;\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value.reduce(\n (acc: object, [funHash, fnName, argType, outType]: [\n funHash: Buffer,\n fnName: string,\n argType: string,\n outType: string,\n ]) => ({\n ...acc,\n [fnName.toString()]: { funHash, argType, outType },\n }),\n {},\n );\n default:\n if (typeof type === 'number') return value;\n return type.deserialize(value);\n }\n}\n\nfunction serializeField(value: any, type: FIELD_TYPES | Field, params: any): any {\n switch (type) {\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return writeInt(value);\n case FIELD_TYPES.id:\n return writeId(value);\n case FIELD_TYPES.ids:\n return value.map(writeId);\n case FIELD_TYPES.bool:\n return Buffer.from([(value === true) ? 1 : 0]);\n case FIELD_TYPES.binary:\n return decode(value);\n case FIELD_TYPES.stateTree:\n return decode(value);\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex');\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from);\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value as Encoded.Bytearray)\n : toBytes(value);\n case FIELD_TYPES.string:\n return toBytes(value);\n case FIELD_TYPES.pointers:\n return buildPointers(value);\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value;\n case FIELD_TYPES.mptrees:\n return value.map((t: MPTree) => t.serialize());\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0);\n case 'error': return writeInt(1);\n case 'revert': return writeInt(2);\n default: return value;\n }\n default:\n if (typeof type === 'number') return value;\n // @ts-expect-error will be solved after removing the whole serializeField function\n return type.serialize(value, params);\n }\n}\n\nfunction validateField(\n value: any,\n type: FIELD_TYPES | Field,\n prefix?: Encoding | Encoding[],\n): string | undefined {\n // All fields are required\n if (value == null) return 'Field is required';\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix];\n if (!prefixes.includes(value.split('_')[0])) {\n if (prefix == null) { return `'${String(value)}' prefix doesn't exist'`; }\n return `'${String(value)}' prefix doesn't match expected prefix '${prefix.toString()}'`;\n }\n return undefined;\n }\n case FIELD_TYPES.ctVersion:\n if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields';\n }\n return undefined;\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array';\n if (value.some((p: NamePointer) => !(Boolean(p.key) && Boolean(p.id)))) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\'';\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`;\n }\n return undefined;\n default:\n return undefined;\n }\n}\n\n/**\n * Validate transaction params\n * @category transaction builder\n * @param params - Object with tx params\n * @param schema - Transaction schema\n * @param excludeKeys - Array of keys to exclude for validation\n * @returns Object with validation errors\n */\nexport function validateParams(\n params: any,\n schema: TxField[],\n { excludeKeys = [] }: { excludeKeys: string[] },\n): object {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key)\n && !['payload', 'nameFee', 'deposit', 'gasPrice', 'fee', 'gasLimit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message),\n );\n}\n\n/**\n * Unpack binary transaction\n * @category transaction builder\n * @param binary - Array with binary transaction field's\n * @param schema - Transaction schema\n * @returns Object with transaction field's\n */\nexport function unpackRawTx<Tx extends TxSchema>(\n binary: Uint8Array | NestedUint8Array,\n schema: TxField[],\n): RawTxObject<Tx> {\n return schema\n .reduce<any>(\n (\n acc,\n [key, fieldType, prefix],\n index,\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {},\n );\n}\n\n/**\n * @category transaction builder\n */\nexport interface BuiltTx<Tx extends TxSchema, Prefix extends Encoding> {\n tx: Encoded.Generic<Prefix>;\n rlpEncoded: Uint8Array;\n binary: Uint8Array;\n txObject: RawTxObject<Tx>;\n}\n\n/**\n * Build transaction hash\n * @category transaction builder\n * @param _params - Object with tx params\n * @param type - Transaction type\n * @param options - options\n * @param options.excludeKeys - Array of keys to exclude for validation and build\n * @param options.denomination - Denomination of amounts\n * @param options.prefix - Prefix of transaction\n * @throws {@link InvalidTxParamsError}\n * @returns object\n * @returns object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns object.rlpEncoded rlp encoded transaction\n * @returns object.binary binary transaction\n */\nexport function buildTx<TxType extends Tag, Prefix>(\n _params: Omit<TxTypeSchemas[TxType], 'tag' | 'VSN'> & { VSN?: number },\n type: TxType,\n {\n excludeKeys = [],\n prefix = Encoding.Transaction,\n vsn,\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n }: {\n excludeKeys?: string[];\n prefix?: Encoding;\n vsn?: number;\n denomination?: AE_AMOUNT_FORMATS;\n } = {},\n): BuiltTx<TxSchema, Prefix extends Encoding ? Prefix : Encoding.Transaction> {\n const schemas = TX_SCHEMA[type];\n\n vsn ??= Math.max(...Object.keys(schemas).map((a) => +a));\n if (!isKeyOfObject(vsn, schemas)) throw new SchemaNotFoundError('serialization', Tag[type], vsn);\n\n const schema = schemas[vsn] as unknown as TxField[];\n\n const params = _params as TxParamsCommon & { onNode: Node; denomination?: AE_AMOUNT_FORMATS };\n params.VSN = vsn;\n params.tag = type;\n params.denomination = denomination;\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key));\n\n // Validation\n const valid = validateParams(params, schema, { excludeKeys });\n if (Object.keys(valid).length > 0) {\n throw new InvalidTxParamsError(`Transaction build error. ${JSON.stringify(valid)}`);\n }\n\n const binary = filteredSchema\n .map(([key, fieldType]: [keyof TxSchema, FIELD_TYPES, Encoding]) => (\n serializeField(\n params[key],\n fieldType,\n {\n ...params,\n txType: type,\n rebuildTx: (overrideParams: any) => buildTx(\n { ...params, ...overrideParams },\n type,\n {\n excludeKeys, prefix: Encoding.Transaction, vsn, denomination,\n },\n ),\n },\n )\n ))\n .filter((e) => e !== undefined);\n\n const rlpEncoded = rlpEncode(binary);\n const tx = encode(rlpEncoded, prefix);\n return {\n tx,\n rlpEncoded,\n binary,\n txObject: unpackRawTx<TxTypeSchemas[Tag]>(binary, schema),\n } as any;\n}\n\n/**\n * @category transaction builder\n */\nexport interface TxUnpacked<Tx extends TxSchema> {\n txType: Tag;\n tx: RawTxObject<Tx>;\n rlpEncoded: Uint8Array;\n}\n/**\n * Unpack transaction hash\n * @category transaction builder\n * @param encodedTx - Transaction to unpack\n * @param txType - Expected transaction type\n * @returns object\n * @returns object.tx Object with transaction param's\n * @returns object.txType Transaction type\n */\nexport function unpackTx<TxType extends Tag>(\n encodedTx: Encoded.Transaction | Encoded.Poi,\n txType?: TxType,\n): TxUnpacked<TxTypeSchemas[TxType]> {\n const rlpEncoded = decode(encodedTx);\n const binary = rlpDecode(rlpEncoded);\n const objId = +readInt(binary[0] as Buffer);\n if (!isKeyOfObject(objId, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${objId}`);\n if (txType != null && txType !== objId) throw new DecodeError(`Expected transaction to have ${Tag[txType]} tag, got ${Tag[objId]} instead`);\n const vsn = +readInt(binary[1] as Buffer);\n if (!isKeyOfObject(vsn, TX_SCHEMA[objId])) throw new SchemaNotFoundError('deserialization', `tag ${objId}`, vsn);\n const schema = TX_SCHEMA[objId][vsn];\n return {\n txType: objId,\n tx: unpackRawTx<TxTypeSchemas[TxType]>(binary, schema),\n rlpEncoded,\n };\n}\n\n/**\n * Build a transaction hash\n * @category transaction builder\n * @param rawTx - base64 or rlp encoded transaction\n * @returns Transaction hash\n */\nexport function buildTxHash(rawTx: Encoded.Transaction | Uint8Array): Encoded.TxHash {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_')\n ? decode(rawTx)\n : rawTx;\n return encode(hash(data), Encoding.TxHash);\n}\n\n/**\n * Build a contract public key by contractCreateTx or gaAttach\n * @category contract\n * @param contractTx - Transaction\n * @returns Contract public key\n */\nexport function buildContractIdByContractTx(\n contractTx: Encoded.Transaction,\n): Encoded.ContractAddress {\n const { txType, tx } = unpackTx<Tag.ContractCreateTx | Tag.GaAttachTx>(contractTx);\n if (![Tag.ContractCreateTx, Tag.GaAttachTx].includes(txType)) {\n throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', txType);\n }\n return buildContractId(tx.ownerId, +tx.nonce);\n}\n"],"mappings":"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"}