@aeternity/aepp-sdk 11.0.1 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) 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 +12 -19
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/AeSdk.d.ts +37 -0
  10. package/es/AeSdk.mjs +81 -0
  11. package/es/AeSdk.mjs.map +1 -0
  12. package/es/AeSdkAepp.d.ts +69 -0
  13. package/es/AeSdkAepp.mjs +175 -0
  14. package/es/AeSdkAepp.mjs.map +1 -0
  15. package/es/AeSdkBase.d.ts +212 -0
  16. package/es/AeSdkBase.mjs +310 -0
  17. package/es/AeSdkBase.mjs.map +1 -0
  18. package/es/AeSdkWallet.d.ts +103 -0
  19. package/es/AeSdkWallet.mjs +322 -0
  20. package/es/AeSdkWallet.mjs.map +1 -0
  21. package/es/Node.d.ts +44 -0
  22. package/es/Node.mjs +141 -0
  23. package/es/Node.mjs.map +1 -0
  24. package/es/account/Base.d.ts +65 -0
  25. package/es/account/Base.mjs +123 -0
  26. package/es/account/Base.mjs.map +1 -0
  27. package/es/account/Memory.d.ts +25 -0
  28. package/es/account/Memory.mjs +81 -0
  29. package/es/account/Memory.mjs.map +1 -0
  30. package/es/account/Rpc.d.ts +27 -0
  31. package/es/account/Rpc.mjs +79 -0
  32. package/es/account/Rpc.mjs.map +1 -0
  33. package/es/aens.d.ts +209 -0
  34. package/es/aens.mjs +332 -0
  35. package/es/aens.mjs.map +1 -0
  36. package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
  37. package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
  38. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
  41. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
  43. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
  44. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
  45. package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
  46. package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
  47. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
  48. package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
  49. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
  50. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
  51. package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
  52. package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
  53. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
  54. package/es/aepp-wallet-communication/schema.d.ts +90 -46
  55. package/es/aepp-wallet-communication/schema.mjs +214 -0
  56. package/es/aepp-wallet-communication/schema.mjs.map +1 -0
  57. package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
  58. package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
  59. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
  60. package/es/apis/compiler/compiler.d.ts +92 -0
  61. package/es/apis/compiler/compiler.mjs +576 -0
  62. package/es/apis/compiler/compiler.mjs.map +1 -0
  63. package/es/apis/compiler/index.d.ts +2 -0
  64. package/es/apis/compiler/index.mjs +3 -0
  65. package/es/apis/compiler/index.mjs.map +1 -0
  66. package/es/apis/compiler/models/index.d.ts +248 -0
  67. package/es/apis/compiler/models/index.mjs +48 -0
  68. package/es/apis/compiler/models/index.mjs.map +1 -0
  69. package/es/apis/compiler/models/mappers.d.ts +23 -0
  70. package/es/apis/compiler/models/mappers.mjs +585 -0
  71. package/es/apis/compiler/models/mappers.mjs.map +1 -0
  72. package/es/apis/compiler/models/parameters.d.ts +13 -0
  73. package/es/apis/compiler/models/parameters.mjs +71 -0
  74. package/es/apis/compiler/models/parameters.mjs.map +1 -0
  75. package/es/apis/node/index.d.ts +2 -0
  76. package/es/apis/node/index.mjs +3 -0
  77. package/es/apis/node/index.mjs.map +1 -0
  78. package/es/apis/node/models/index.d.ts +1061 -0
  79. package/es/apis/node/models/index.mjs +2 -0
  80. package/es/apis/node/models/index.mjs.map +1 -0
  81. package/es/apis/node/models/mappers.d.ts +95 -0
  82. package/es/apis/node/models/mappers.mjs +4164 -0
  83. package/es/apis/node/models/mappers.mjs.map +1 -0
  84. package/es/apis/node/models/parameters.d.ts +17 -0
  85. package/es/apis/node/models/parameters.mjs +165 -0
  86. package/es/apis/node/models/parameters.mjs.map +1 -0
  87. package/es/apis/node/node.d.ts +215 -0
  88. package/es/apis/node/node.mjs +1165 -0
  89. package/es/apis/node/node.mjs.map +1 -0
  90. package/es/chain.d.ts +220 -0
  91. package/es/chain.mjs +524 -0
  92. package/es/chain.mjs.map +1 -0
  93. package/es/channel/handlers.d.ts +34 -0
  94. package/es/channel/handlers.mjs +147 -112
  95. package/es/channel/handlers.mjs.map +1 -1
  96. package/es/channel/index.d.ts +634 -0
  97. package/es/channel/index.mjs +898 -900
  98. package/es/channel/index.mjs.map +1 -1
  99. package/es/channel/internal.d.ts +100 -0
  100. package/es/channel/internal.mjs +97 -51
  101. package/es/channel/internal.mjs.map +1 -1
  102. package/es/contract/Compiler.d.ts +17 -0
  103. package/es/contract/Compiler.mjs +67 -0
  104. package/es/contract/Compiler.mjs.map +1 -0
  105. package/es/contract/aci.d.ts +125 -0
  106. package/es/contract/aci.mjs +199 -180
  107. package/es/contract/aci.mjs.map +1 -1
  108. package/es/contract/ga.d.ts +68 -0
  109. package/es/contract/ga.mjs +190 -0
  110. package/es/contract/ga.mjs.map +1 -0
  111. package/es/contract/methods.d.ts +68 -0
  112. package/es/contract/methods.mjs +101 -0
  113. package/es/contract/methods.mjs.map +1 -0
  114. package/es/index.d.ts +32 -0
  115. package/es/index.mjs +32 -40
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +154 -0
  118. package/es/oracle.mjs +288 -0
  119. package/es/oracle.mjs.map +1 -0
  120. package/es/spend.d.ts +61 -0
  121. package/es/spend.mjs +122 -0
  122. package/es/spend.mjs.map +1 -0
  123. package/es/tx/builder/constants.d.ts +41 -0
  124. package/es/tx/builder/constants.mjs +11 -19
  125. package/es/tx/builder/constants.mjs.map +1 -1
  126. package/es/tx/builder/field-types.d.ts +62 -0
  127. package/es/tx/builder/field-types.mjs +62 -10
  128. package/es/tx/builder/field-types.mjs.map +1 -1
  129. package/es/tx/builder/helpers.d.ts +131 -0
  130. package/es/tx/builder/helpers.mjs +71 -169
  131. package/es/tx/builder/helpers.mjs.map +1 -1
  132. package/es/tx/builder/index.d.ts +75 -0
  133. package/es/tx/builder/index.mjs +141 -323
  134. package/es/tx/builder/index.mjs.map +1 -1
  135. package/es/tx/builder/schema.d.ts +350 -0
  136. package/es/tx/builder/schema.mjs +173 -510
  137. package/es/tx/builder/schema.mjs.map +1 -1
  138. package/es/tx/index.d.ts +63 -0
  139. package/es/tx/index.mjs +171 -265
  140. package/es/tx/index.mjs.map +1 -1
  141. package/es/tx/min-fee.d.ts +20 -0
  142. package/es/tx/min-fee.mjs +148 -0
  143. package/es/tx/min-fee.mjs.map +1 -0
  144. package/es/tx/validator.d.ts +19 -0
  145. package/es/tx/validator.mjs +64 -71
  146. package/es/tx/validator.mjs.map +1 -1
  147. package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
  148. package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
  149. package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
  150. package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
  151. package/es/typings/bip32-path/index.d.mjs +2 -0
  152. package/es/typings/bip32-path/index.d.mjs.map +1 -0
  153. package/es/typings/blakejs/index.d.mjs.map +1 -1
  154. package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
  155. package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
  156. package/es/utils/amount-formatter.d.ts +42 -0
  157. package/es/utils/amount-formatter.mjs +28 -41
  158. package/es/utils/amount-formatter.mjs.map +1 -1
  159. package/es/utils/autorest.d.ts +6 -0
  160. package/es/utils/autorest.mjs +97 -0
  161. package/es/utils/autorest.mjs.map +1 -0
  162. package/es/utils/bignumber.d.ts +13 -0
  163. package/es/utils/bignumber.mjs +10 -8
  164. package/es/utils/bignumber.mjs.map +1 -1
  165. package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
  166. package/es/utils/bytes.mjs +10 -14
  167. package/es/utils/bytes.mjs.map +1 -1
  168. package/es/utils/crypto.d.ts +103 -0
  169. package/es/utils/crypto.mjs +60 -68
  170. package/es/utils/crypto.mjs.map +1 -1
  171. package/es/utils/encoder.d.ts +26 -0
  172. package/es/utils/encoder.mjs +47 -51
  173. package/es/utils/encoder.mjs.map +1 -1
  174. package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
  175. package/es/utils/errors.mjs +318 -125
  176. package/es/utils/errors.mjs.map +1 -1
  177. package/es/utils/hd-wallet.d.ts +34 -0
  178. package/es/utils/hd-wallet.mjs +27 -16
  179. package/es/utils/hd-wallet.mjs.map +1 -1
  180. package/es/utils/json-big.d.ts +5 -0
  181. package/es/utils/json-big.mjs +10 -14
  182. package/es/utils/json-big.mjs.map +1 -1
  183. package/es/utils/keystore.d.ts +51 -0
  184. package/es/utils/keystore.mjs +98 -193
  185. package/es/utils/keystore.mjs.map +1 -1
  186. package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
  187. package/es/utils/mptree.mjs +13 -14
  188. package/es/utils/mptree.mjs.map +1 -1
  189. package/es/utils/other.d.ts +14 -0
  190. package/es/utils/other.mjs +21 -36
  191. package/es/utils/other.mjs.map +1 -1
  192. package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
  193. package/es/utils/semver-satisfies.mjs.map +1 -1
  194. package/es/utils/string.d.ts +24 -0
  195. package/es/utils/string.mjs +8 -10
  196. package/es/utils/string.mjs.map +1 -1
  197. package/package.json +49 -39
  198. package/src/AeSdk.ts +65 -0
  199. package/src/AeSdkAepp.ts +167 -0
  200. package/src/AeSdkBase.ts +320 -0
  201. package/src/AeSdkWallet.ts +332 -0
  202. package/src/Node.ts +167 -0
  203. package/src/account/Base.ts +114 -0
  204. package/src/account/Memory.ts +83 -0
  205. package/src/account/Rpc.ts +67 -0
  206. package/src/aens.ts +391 -0
  207. package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
  208. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
  209. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
  210. package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
  211. package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
  212. package/src/aepp-wallet-communication/rpc/types.ts +66 -0
  213. package/src/aepp-wallet-communication/schema.ts +181 -0
  214. package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
  215. package/src/apis/compiler/code-model-v4.yaml +2649 -0
  216. package/src/apis/compiler/compiler.ts +585 -0
  217. package/src/apis/compiler/index.ts +2 -0
  218. package/src/apis/compiler/models/index.ts +301 -0
  219. package/src/apis/compiler/models/mappers.ts +583 -0
  220. package/src/apis/compiler/models/parameters.ts +93 -0
  221. package/src/apis/node/code-model-v4.yaml +10046 -0
  222. package/src/apis/node/index.ts +2 -0
  223. package/src/apis/node/models/index.ts +1253 -0
  224. package/src/apis/node/models/mappers.ts +4278 -0
  225. package/src/apis/node/models/parameters.ts +188 -0
  226. package/src/apis/node/node.ts +1299 -0
  227. package/src/chain.ts +444 -0
  228. package/src/channel/{handlers.js → handlers.ts} +220 -128
  229. package/src/channel/index.ts +991 -0
  230. package/src/channel/internal.ts +345 -0
  231. package/src/contract/Compiler.ts +66 -0
  232. package/src/contract/aci.ts +529 -0
  233. package/src/contract/ga.ts +178 -0
  234. package/src/contract/methods.ts +118 -0
  235. package/src/index.ts +51 -0
  236. package/src/oracle.ts +342 -0
  237. package/src/spend.ts +152 -0
  238. package/src/tx/builder/{constants.js → constants.ts} +12 -16
  239. package/src/tx/builder/field-types.ts +111 -0
  240. package/src/tx/builder/helpers.ts +253 -0
  241. package/src/tx/builder/index.ts +394 -0
  242. package/src/tx/builder/schema.ts +771 -0
  243. package/src/tx/index.ts +199 -0
  244. package/src/tx/min-fee.ts +136 -0
  245. package/src/tx/validator.ts +226 -0
  246. package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
  247. package/src/typings/@aeternity__uuid/index.d.ts +3 -0
  248. package/src/typings/bip32-path/index.d.ts +33 -0
  249. package/src/typings/tweetnacl-auth/index.d.ts +14 -0
  250. package/src/utils/amount-formatter.ts +29 -42
  251. package/src/utils/autorest.ts +90 -0
  252. package/src/utils/bignumber.ts +9 -11
  253. package/src/utils/bytes.ts +12 -14
  254. package/src/utils/crypto.ts +217 -0
  255. package/src/utils/encoder.ts +52 -55
  256. package/src/utils/errors.ts +268 -134
  257. package/src/utils/hd-wallet.ts +134 -0
  258. package/src/utils/json-big.ts +26 -0
  259. package/src/utils/keystore.ts +179 -0
  260. package/src/utils/mptree.ts +14 -14
  261. package/src/utils/other.ts +28 -43
  262. package/src/utils/string.ts +8 -10
  263. package/es/account/base.mjs +0 -179
  264. package/es/account/base.mjs.map +0 -1
  265. package/es/account/memory.mjs +0 -99
  266. package/es/account/memory.mjs.map +0 -1
  267. package/es/account/multiple.mjs +0 -179
  268. package/es/account/multiple.mjs.map +0 -1
  269. package/es/ae/aens.mjs +0 -404
  270. package/es/ae/aens.mjs.map +0 -1
  271. package/es/ae/aepp.mjs +0 -45
  272. package/es/ae/aepp.mjs.map +0 -1
  273. package/es/ae/contract.mjs +0 -159
  274. package/es/ae/contract.mjs.map +0 -1
  275. package/es/ae/index.mjs +0 -207
  276. package/es/ae/index.mjs.map +0 -1
  277. package/es/ae/oracle.mjs +0 -339
  278. package/es/ae/oracle.mjs.map +0 -1
  279. package/es/ae/universal.mjs +0 -45
  280. package/es/ae/universal.mjs.map +0 -1
  281. package/es/ae/wallet.mjs +0 -50
  282. package/es/ae/wallet.mjs.map +0 -1
  283. package/es/amount-formatter.d.ts +0 -58
  284. package/es/bignumber.d.ts +0 -18
  285. package/es/chain/index.mjs +0 -272
  286. package/es/chain/index.mjs.map +0 -1
  287. package/es/chain/node.mjs +0 -442
  288. package/es/chain/node.mjs.map +0 -1
  289. package/es/contract/compiler.mjs +0 -115
  290. package/es/contract/compiler.mjs.map +0 -1
  291. package/es/contract/ga/helpers.mjs +0 -30
  292. package/es/contract/ga/helpers.mjs.map +0 -1
  293. package/es/contract/ga/index.mjs +0 -178
  294. package/es/contract/ga/index.mjs.map +0 -1
  295. package/es/crypto-ts.d.ts +0 -9
  296. package/es/encoder.d.ts +0 -26
  297. package/es/node-pool/index.mjs +0 -188
  298. package/es/node-pool/index.mjs.map +0 -1
  299. package/es/node.mjs +0 -133
  300. package/es/node.mjs.map +0 -1
  301. package/es/other.d.ts +0 -31
  302. package/es/string.d.ts +0 -26
  303. package/es/tx/tx-object.mjs +0 -283
  304. package/es/tx/tx-object.mjs.map +0 -1
  305. package/es/tx/tx.mjs +0 -938
  306. package/es/tx/tx.mjs.map +0 -1
  307. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
  308. package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
  309. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
  310. package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
  311. package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
  312. package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
  313. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
  314. package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
  315. package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
  316. package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
  317. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
  318. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
  319. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
  320. package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
  321. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
  322. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
  323. package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
  324. package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
  325. package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
  326. package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
  327. package/es/utils/async-init.mjs +0 -64
  328. package/es/utils/async-init.mjs.map +0 -1
  329. package/es/utils/crypto-ts.mjs.map +0 -1
  330. package/es/utils/swagger.mjs +0 -164
  331. package/es/utils/swagger.mjs.map +0 -1
  332. package/src/account/base.js +0 -153
  333. package/src/account/memory.js +0 -83
  334. package/src/account/multiple.js +0 -162
  335. package/src/ae/aens.js +0 -361
  336. package/src/ae/aepp.js +0 -45
  337. package/src/ae/contract.js +0 -148
  338. package/src/ae/index.js +0 -168
  339. package/src/ae/oracle.js +0 -311
  340. package/src/ae/universal.js +0 -47
  341. package/src/ae/wallet.js +0 -50
  342. package/src/chain/index.js +0 -269
  343. package/src/chain/node.js +0 -320
  344. package/src/channel/index.js +0 -903
  345. package/src/channel/internal.js +0 -236
  346. package/src/contract/aci.js +0 -376
  347. package/src/contract/compiler.js +0 -100
  348. package/src/contract/ga/helpers.js +0 -19
  349. package/src/contract/ga/index.js +0 -150
  350. package/src/index.js +0 -89
  351. package/src/node-pool/index.js +0 -172
  352. package/src/node.js +0 -116
  353. package/src/tx/builder/field-types.js +0 -61
  354. package/src/tx/builder/helpers.js +0 -334
  355. package/src/tx/builder/index.js +0 -465
  356. package/src/tx/builder/schema.js +0 -1100
  357. package/src/tx/index.js +0 -301
  358. package/src/tx/tx-object.js +0 -187
  359. package/src/tx/tx.js +0 -631
  360. package/src/tx/validator.js +0 -181
  361. package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
  362. package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
  363. package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
  364. package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
  365. package/src/utils/aepp-wallet-communication/helpers.js +0 -60
  366. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
  367. package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
  368. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
  369. package/src/utils/aepp-wallet-communication/schema.ts +0 -80
  370. package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
  371. package/src/utils/async-init.js +0 -45
  372. package/src/utils/crypto.js +0 -219
  373. package/src/utils/hd-wallet.js +0 -100
  374. package/src/utils/json-big.js +0 -26
  375. package/src/utils/keystore.js +0 -219
  376. package/src/utils/swagger.js +0 -156
package/src/tx/index.js DELETED
@@ -1,301 +0,0 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2018 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
- * Tx module
20
- * @module @aeternity/aepp-sdk/es/tx
21
- * @export Tx
22
- * @example import { Tx } from '@aeternity/aepp-sdk'
23
- */
24
-
25
- import stampit from '@stamp/it'
26
- import { required } from '@stamp/required'
27
-
28
- /**
29
- * Basic Tx Stamp
30
- *
31
- * Attempting to create instances from the Stamp without overwriting all
32
- * abstract methods using composition will result in an exception.
33
- *
34
- * Tx is one of the three basic building blocks of an
35
- * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides methods to
36
- * create aeternity transactions.
37
- * @function
38
- * @alias module:@aeternity/aepp-sdk/es/tx
39
- * @rtype Stamp
40
- * @param {Object} [options={}] - Initializer object
41
- * @return {Object} Tx instance
42
- * @example Tx()
43
- */
44
- const Tx = stampit(required({
45
- methods: {
46
- spendTx: required,
47
- namePreclaimTx: required,
48
- nameClaimTx: required,
49
- nameTransferTx: required,
50
- nameUpdateTx: required,
51
- nameRevokeTx: required,
52
- contractCreateTx: required,
53
- contractCallTx: required,
54
- oracleRegisterTx: required,
55
- oracleExtendTx: required,
56
- oraclePostQueryTx: required,
57
- oracleRespondTx: required,
58
- getAccountNonce: required,
59
- channelCloseSoloTx: required,
60
- channelSlashTx: required,
61
- channelSettleTx: required,
62
- channelSnapshotSoloTx: required,
63
- gaAttachTx: required,
64
- getVmVersion: required,
65
- prepareTxParams: required
66
- }
67
- }))
68
-
69
- /**
70
- * Create a `spend_tx` transaction
71
- * @function spendTx
72
- * @instance
73
- * @abstract
74
- * @category async
75
- * @rtype ({
76
- * sender?: String,
77
- * recipientId: String,
78
- * amount: Number,
79
- * fee?: Number,
80
- * ttl?: Number,
81
- * nonce?: Number,
82
- * payload?: String
83
- * }) => tx: Promise[String]
84
- * @param {Object} options - The object to extract properties from
85
- * @return {String} `spend_tx` transaction
86
- */
87
-
88
- /**
89
- * Create a `name_preclaim_tx` transaction
90
- * @function namePreclaimTx
91
- * @instance
92
- * @abstract
93
- * @category async
94
- * @rtype ({
95
- * account?: String, commitment: String, fee?: Number, ttl?: Number, nonce?: Number
96
- * }) => tx: Promise[String]
97
- * @param {Object} options - The object to extract properties from
98
- * @return {String} `name_preclaim_tx` transaction
99
- */
100
-
101
- /**
102
- * Create a `name_claim_tx` transaction
103
- * @function nameClaimTx
104
- * @instance
105
- * @abstract
106
- * @category async
107
- * @rtype ({
108
- * account?: String, name: String, nameSalt: String, fee?: Number, ttl?: Number, nonce?: Number
109
- * }) => tx: Promise[String]
110
- * @param {Object} options - The object to extract properties from
111
- * @return {String} `name_claim_tx` transaction
112
- */
113
-
114
- /**
115
- * Create a `name_transfer_tx` transaction
116
- * @function nameTransferTx
117
- * @instance
118
- * @abstract
119
- * @category async
120
- * @rtype ({
121
- * account?: String,
122
- * nameId: String,
123
- * recipientId: String,
124
- * fee?: Number,
125
- * ttl?: Number,
126
- * nonce?: Number
127
- * }) => tx: Promise[String]
128
- * @param {Object} options - The object to extract properties from
129
- * @return {String} `name_transfer_tx` transaction
130
- */
131
-
132
- /**
133
- * Create a `name_update_tx` transaction
134
- * @function nameUpdateTx
135
- * @instance
136
- * @abstract
137
- * @category async
138
- * @rtype ({
139
- * account?: String,
140
- * nameId: String,
141
- * pointers: Object,
142
- * nameTtl: Number,
143
- * clientTtl: Number,
144
- * fee?: Number,
145
- * ttl?: Number,
146
- * nonce?: Number
147
- * }) => tx: Promise[String]
148
- * @param {Object} options - The object to extract properties from
149
- * @return {String} `name_update_tx` transaction
150
- */
151
-
152
- /**
153
- * Create a `name_revoke_tx` transaction
154
- * @function nameRevokeTx
155
- * @instance
156
- * @abstract
157
- * @category async
158
- * @rtype ({
159
- * account?: String, nameId: String, fee?: Number, ttl?: Number, nonce?: Number
160
- * }) => tx: Promise[String]
161
- * @param {Object} options - The object to extract properties from
162
- * @return {String} `name_revoke_tx` transaction
163
- */
164
-
165
- /**
166
- * Create a `contract_create_tx` transaction
167
- * @function contractCreateTx
168
- * @instance
169
- * @abstract
170
- * @category async
171
- * @rtype ({
172
- * owner: String,
173
- * code: String,
174
- * callData: String,
175
- * vmVersion: Number,
176
- * deposit: Number,
177
- * amount: Number,
178
- * gas: Number,
179
- * gasPrice: Number,
180
- * fee?: Number,
181
- * ttl?: Number,
182
- * nonce?: Number
183
- * }) => tx: Promise[String]
184
- * @param {Object} options - The object to extract properties from
185
- * @return {String} `contract_create_tx` transaction
186
- */
187
-
188
- /**
189
- * Create a `contract_call_tx` transaction
190
- * @function contractCallTx
191
- * @instance
192
- * @abstract
193
- * @category async
194
- * @rtype ({
195
- * callerId: String,
196
- * contract: String,
197
- * callData: String,
198
- * vmVersion: Number,
199
- * amount: Number,
200
- * gas: Number,
201
- * gasPrice: Number,
202
- * fee?: Number,
203
- * ttl?: Number,
204
- * nonce?: Number
205
- * }) => tx: Promise[String]
206
- * @param {Object} options - The object to extract properties from
207
- * @return {String} `contract_call_tx` transaction
208
- */
209
-
210
- /**
211
- * Create a `oracle_register_tx` transaction
212
- * @function oracleRegisterTx
213
- * @instance
214
- * @abstract
215
- * @category async
216
- * @rtype ({
217
- * accountId: String,
218
- * queryFormat: String,
219
- * responseFormat: String,
220
- * queryFee: String|Number,
221
- * oracleTtl: Object,
222
- * vmVersion: Number = ORACLE_VM_VERSION,
223
- * fee?: Number,
224
- * ttl?: Number,
225
- * nonce?: Number
226
- * }) => tx: Promise[String]
227
- * @param {Object} options - The object to extract properties from
228
- * @return {String} `oracle_register_tx` transaction
229
- */
230
-
231
- /**
232
- * Create a `oracle_extend_tx` transaction
233
- * @function oracleExtendTx
234
- * @instance
235
- * @abstract
236
- * @category async
237
- * @rtype ({
238
- * oracleId: String,
239
- * callerId: String,
240
- * oracleTtl: Object,
241
- * fee?: Number,
242
- * ttl: Number,
243
- * nonce?: Number
244
- * }) => tx: Promise[String]
245
- * @param {Object} options - The object to extract properties from
246
- * @return {String} `oracle_extend_tx` transaction
247
- */
248
-
249
- /**
250
- * Create a `oracle_post_query_tx` transaction
251
- * @function oraclePostQuery
252
- * @instance
253
- * @abstract
254
- * @category async
255
- * @rtype ({
256
- * oracleId: String,
257
- * responseTtl: Object,
258
- * query: String,
259
- * queryTtl: Object,
260
- * queryFee: String|Number,
261
- * senderId: String,
262
- * fee?: Number,
263
- * ttl: Number,
264
- * nonce?: Number
265
- * }) => tx: Promise[String]
266
- * @param {Object} options - The object to extract properties from
267
- * @return {String} `oracle_post_query_tx` transaction
268
- */
269
-
270
- /**
271
- * Create a `oracle_respond_tx` transaction
272
- * @function oracleRespondTx
273
- * @instance
274
- * @abstract
275
- * @category async
276
- * @rtype ({
277
- * oracleId: String,
278
- * callerId: String,
279
- * responseTtl: Object,
280
- * queryId: String,
281
- * response: String,
282
- * fee?: Number,
283
- * ttl?: Number,
284
- * nonce?: Number
285
- * }) => tx: Promise[String]
286
- * @param {Object} options - The object to extract properties from
287
- * @return {String} `oracle_respond_tx` transaction
288
- */
289
-
290
- /**
291
- * Get Account Nonce
292
- * @function getAccountNonce
293
- * @instance
294
- * @abstract
295
- * @category async
296
- * @rtype (address) => result: Number
297
- * @param {String} address - Account public key
298
- * @return {Number} Result
299
- */
300
-
301
- export default Tx
@@ -1,187 +0,0 @@
1
- /**
2
- * TxObject module
3
- * @module @aeternity/aepp-sdk/es/tx/tx-object
4
- * @export TxObject
5
- * @example import TxObject from '@aeternity/aepp-sdk/es/tx/tx-object'
6
- */
7
- import stampit from '@stamp/it'
8
- import { buildTx, calculateFee, unpackTx } from './builder'
9
- import { TX_TYPE } from './builder/schema'
10
- import { encode } from './builder/helpers'
11
- import { isHex } from '../utils/string'
12
- import { InvalidTxError, TypeError, UnknownTxError, InvalidSignatureError } from '../utils/errors'
13
-
14
- /**
15
- * Build transaction from object
16
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
17
- * @param {String} type Transaction type
18
- * @param {Object} params Transaction params
19
- * @param {Object} [options={}] Options
20
- * @throws {Error} Arguments validation error's
21
- * @return {{
22
- * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, params: Object, type: String
23
- * }}
24
- */
25
- const buildTransaction = (type, params, options = {}) => {
26
- if (typeof params !== 'object') throw new TypeError('tx "params" should be an object')
27
- if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new UnknownTxError(`Unknown transaction type ${type}`)
28
- const fee = calculateFee(params.fee, type, { gas: params.gas, params, vsn: params.vsn })
29
- const { rlpEncoded, binary, tx: encodedTx, txObject } = buildTx(
30
- { ...params, fee }, type, { vsn: params.vsn, ...options }
31
- )
32
- return { rlpEncoded, binary, encodedTx, params: txObject, type }
33
- }
34
-
35
- /**
36
- * Unpack transaction from RLP encoded binary or base64c string
37
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
38
- * @param {Uint8Array|String} tx RLP encoded binary or base64c(rlpBinary) string
39
- * @throws {Error} Arguments validation error's
40
- * @return {{
41
- * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object
42
- * }}
43
- */
44
- const unpackTransaction = (tx) => {
45
- if (!tx) throw new InvalidTxError(`Invalid transaction: ${tx}`)
46
- if (typeof tx === 'string') {
47
- const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx)
48
- return { encodedTx: tx, type, params, rlpEncoded, binary }
49
- }
50
- if (tx instanceof Uint8Array) {
51
- const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx, true)
52
- return { encodedTx: encode(tx, 'tx'), type, params, rlpEncoded, binary }
53
- }
54
- throw new InvalidTxError(`"tx" should be a string or Uint8Array, got ${tx} instead`)
55
- }
56
-
57
- /**
58
- * Helper which build or unpack transaction base on constructor arguments
59
- * Need to provide one of arguments: [tx] -> unpack flow or [params, type] -> build flow
60
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
61
- * @param {Buffer|String} [tx] Transaction rlp binary or vase64c string
62
- * @param {Object} params Transaction params
63
- * @param {String} type Transaction type
64
- * @param {Object} [options={}] Options
65
- * @throws {Error} Arguments validation error's
66
- * @return {{
67
- * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object
68
- * }}
69
- */
70
- const initTransaction = ({ tx, params, type, options = {} } = {}) => {
71
- if (params && type) return buildTransaction(type, params, options)
72
- if (tx) return unpackTransaction(tx)
73
- throw new InvalidTxError('Invalid TxObject arguments. Please provide one of { tx: "tx_asdasd23..." } or { type: "spendTx", params: {...} }')
74
- }
75
-
76
- /**
77
- * Transaction Validator Stamp
78
- * This stamp give us possibility to unpack and validate some of transaction properties,
79
- * to make sure we can post it to the chain
80
- * @function
81
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
82
- * @rtype Stamp
83
- * @param {Object} [options={}] - Initializer object
84
- * @param {Buffer|String} [options.tx] - Rlp binary or base64c transaction
85
- * @param {Object} [options.params] - Transaction params
86
- * @param {String} [options.type] - Transaction type
87
- * @param {Object} [options.options] - Build options
88
- * @return {Object} TxObject instance
89
- * @example TxObject({ params: {...}, type: 'spendTx' })
90
- */
91
- export const TxObject = stampit({
92
- init ({ tx, params, type, options = {} } = {}) {
93
- this.options = options
94
- this.signatures = []
95
- Object.assign(this, initTransaction({ tx, params, type, options }))
96
-
97
- if (this.type === TX_TYPE.signed) {
98
- const { signatures, encodedTx: { txType, tx } } = this.params
99
- this.signatures = signatures
100
- this.params = tx
101
- this.type = txType
102
- this.isSigned = true
103
- }
104
- },
105
- statics: {
106
- /**
107
- * Create txObject from base64c RLP encoded transaction string with 'tx_' prefix
108
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
109
- * @static
110
- * @param {String} tx Transaction string (tx_23fsdgsdfg...)
111
- * @return {TxObject}
112
- */
113
- fromString: (tx) => TxObject({ tx }),
114
- /**
115
- * Create txObject from transaction RLP binary
116
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
117
- * @static
118
- * @param {Buffer} tx Transaction RLP binary
119
- * @return {TxObject}
120
- */
121
- fromRlp: (tx) => TxObject({ tx })
122
- },
123
- methods: {
124
- /**
125
- * Rebuild transaction with new params and recalculate fee
126
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
127
- * @param {Object} props Transaction properties for update
128
- * @param options
129
- * @return {TxObject}
130
- */
131
- setProp (props = {}, options = {}) {
132
- if (typeof props !== 'object') throw new TypeError('Props should be an object')
133
- this.isSigned = false
134
- this.signatures = []
135
- Object.assign(
136
- this,
137
- buildTransaction(
138
- this.type, { ...this.params, ...props, fee: null }, { ...this.options, ...options }
139
- )
140
- )
141
- return this
142
- },
143
- /**
144
- * Get signatures
145
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
146
- * @return {Array} Array of signatures
147
- */
148
- getSignatures () {
149
- return this.signatures
150
- },
151
- /**
152
- * Add signature
153
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
154
- * @param {Buffer|String} signature Signature to add ( Can be: Buffer | Uint8Array | HexString )
155
- * @return {void}
156
- */
157
- addSignature (signature) {
158
- signature = isHex(signature) ? Buffer.from(signature, 'hex') : signature
159
- if (!Buffer.isBuffer(signature) && !(signature instanceof Uint8Array)) throw new InvalidSignatureError('Invalid signature, signature must be of type Buffer or Uint8Array')
160
- Object.assign(
161
- this,
162
- buildTransaction(
163
- TX_TYPE.signed,
164
- { encodedTx: this.rlpEncoded, signatures: [[...this.signatures, signature]] }
165
- )
166
- )
167
-
168
- const { signatures, encodedTx: { txType, tx } } = this.params
169
- this.signatures = signatures
170
- this.params = tx
171
- this.type = txType
172
- this.isSigned = true
173
- },
174
- /**
175
- * Calculate fee
176
- * @alias module:@aeternity/aepp-sdk/es/tx/tx-object
177
- * @param {Object} props
178
- * @return {String} fee
179
- */
180
- calculateMinFee (props = {}) {
181
- const params = { ...this.params, ...props }
182
- return calculateFee(0, this.type, { gas: params.gas, params, vsn: params.vsn })
183
- }
184
- }
185
- })
186
-
187
- export default TxObject