@aeternity/aepp-sdk 13.0.0-alpha.0 → 13.0.0-beta.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 (481) hide show
  1. package/bin/aesophia_cli +0 -0
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.map +1 -1
  4. package/dist/aepp-sdk.browser.js +1 -1
  5. package/dist/aepp-sdk.browser.js.map +1 -1
  6. package/dist/aepp-sdk.js +5595 -2249
  7. package/dist/aepp-sdk.js.map +1 -1
  8. package/es/AeSdk.mjs.map +1 -1
  9. package/es/AeSdkAepp.mjs.map +1 -1
  10. package/es/AeSdkBase.d.ts +3 -3
  11. package/es/AeSdkBase.mjs +4 -0
  12. package/es/AeSdkBase.mjs.map +1 -1
  13. package/es/AeSdkMethods.d.ts +12 -14
  14. package/es/AeSdkMethods.mjs +6 -8
  15. package/es/AeSdkMethods.mjs.map +1 -1
  16. package/es/AeSdkWallet.mjs +1 -1
  17. package/es/AeSdkWallet.mjs.map +1 -1
  18. package/es/Node.d.ts +9 -4
  19. package/es/Node.mjs +12 -6
  20. package/es/Node.mjs.map +1 -1
  21. package/es/account/Base.d.ts +13 -8
  22. package/es/account/Base.mjs +0 -17
  23. package/es/account/Base.mjs.map +1 -1
  24. package/es/account/Generalized.mjs +14 -25
  25. package/es/account/Generalized.mjs.map +1 -1
  26. package/es/account/Ledger.mjs +2 -1
  27. package/es/account/Ledger.mjs.map +1 -1
  28. package/es/account/LedgerFactory.mjs.map +1 -1
  29. package/es/account/Memory.d.ts +2 -1
  30. package/es/account/Memory.mjs +11 -22
  31. package/es/account/Memory.mjs.map +1 -1
  32. package/es/account/Rpc.mjs.map +1 -1
  33. package/es/aens.d.ts +12 -14
  34. package/es/aens.mjs +22 -32
  35. package/es/aens.mjs.map +1 -1
  36. package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
  37. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  38. package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  39. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +19 -20
  40. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  42. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  43. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  44. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  45. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +5 -6
  46. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  47. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  48. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  49. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  50. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  51. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  52. package/es/apis/compiler/compiler.d.ts +1 -1
  53. package/es/apis/compiler/compiler.mjs +4 -20
  54. package/es/apis/compiler/compiler.mjs.map +1 -1
  55. package/es/apis/compiler/models/index.d.ts +3 -2
  56. package/es/apis/compiler/models/index.mjs.map +1 -1
  57. package/es/apis/compiler/models/mappers.d.ts +1 -1
  58. package/es/apis/compiler/models/mappers.mjs +19 -2
  59. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  60. package/es/apis/node/models/index.d.ts +15 -15
  61. package/es/apis/node/models/index.mjs.map +1 -1
  62. package/es/apis/node/models/mappers.d.ts +1 -1
  63. package/es/apis/node/models/mappers.mjs +2 -1
  64. package/es/apis/node/models/mappers.mjs.map +1 -1
  65. package/es/apis/node/models/parameters.d.ts +2 -2
  66. package/es/apis/node/models/parameters.mjs +2 -2
  67. package/es/apis/node/models/parameters.mjs.map +1 -1
  68. package/es/apis/node/node.mjs +3 -19
  69. package/es/apis/node/node.mjs.map +1 -1
  70. package/es/chain.d.ts +17 -9
  71. package/es/chain.mjs +23 -23
  72. package/es/chain.mjs.map +1 -1
  73. package/es/channel/Base.d.ts +27 -9
  74. package/es/channel/Base.mjs +27 -27
  75. package/es/channel/Base.mjs.map +1 -1
  76. package/es/channel/Contract.d.ts +8 -7
  77. package/es/channel/Contract.mjs +8 -21
  78. package/es/channel/Contract.mjs.map +1 -1
  79. package/es/channel/Spend.d.ts +5 -1
  80. package/es/channel/Spend.mjs +4 -18
  81. package/es/channel/Spend.mjs.map +1 -1
  82. package/es/channel/handlers.mjs +16 -26
  83. package/es/channel/handlers.mjs.map +1 -1
  84. package/es/channel/internal.d.ts +19 -2
  85. package/es/channel/internal.mjs +22 -20
  86. package/es/channel/internal.mjs.map +1 -1
  87. package/es/contract/Contract.d.ts +43 -123
  88. package/es/contract/Contract.mjs +230 -250
  89. package/es/contract/Contract.mjs.map +1 -1
  90. package/es/contract/compiler/Base.d.ts +74 -0
  91. package/es/contract/compiler/Base.mjs +5 -0
  92. package/es/contract/compiler/Base.mjs.map +1 -0
  93. package/es/contract/compiler/Cli.d.ts +23 -0
  94. package/es/contract/compiler/Cli.mjs +149 -0
  95. package/es/contract/compiler/Cli.mjs.map +1 -0
  96. package/es/contract/compiler/Http.d.ts +32 -0
  97. package/es/contract/compiler/Http.mjs +94 -0
  98. package/es/contract/compiler/Http.mjs.map +1 -0
  99. package/es/contract/compiler/HttpNode.d.ts +17 -0
  100. package/es/contract/compiler/HttpNode.mjs +26 -0
  101. package/es/contract/compiler/HttpNode.mjs.map +1 -0
  102. package/es/contract/compiler/getFileSystem.d.ts +6 -0
  103. package/es/contract/compiler/getFileSystem.mjs +40 -0
  104. package/es/contract/compiler/getFileSystem.mjs.map +1 -0
  105. package/es/contract/delegation-signature.d.ts +43 -0
  106. package/es/contract/delegation-signature.mjs +45 -0
  107. package/es/contract/delegation-signature.mjs.map +1 -0
  108. package/es/contract/ga.d.ts +27 -10
  109. package/es/contract/ga.mjs +63 -29
  110. package/es/contract/ga.mjs.map +1 -1
  111. package/es/index-browser.d.ts +40 -0
  112. package/es/index-browser.mjs +41 -0
  113. package/es/index-browser.mjs.map +1 -0
  114. package/es/index.d.ts +4 -38
  115. package/es/index.mjs +4 -53
  116. package/es/index.mjs.map +1 -1
  117. package/es/oracle.d.ts +12 -17
  118. package/es/oracle.mjs +29 -49
  119. package/es/oracle.mjs.map +1 -1
  120. package/es/spend.d.ts +19 -27
  121. package/es/spend.mjs +21 -46
  122. package/es/spend.mjs.map +1 -1
  123. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  124. package/es/tx/builder/SchemaTypes.mjs +2 -0
  125. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  126. package/es/tx/builder/constants.d.ts +31 -2
  127. package/es/tx/builder/constants.mjs +34 -3
  128. package/es/tx/builder/constants.mjs.map +1 -1
  129. package/es/tx/builder/field-types/abi-version.d.ts +19 -0
  130. package/es/tx/builder/field-types/abi-version.mjs +40 -0
  131. package/es/tx/builder/field-types/abi-version.mjs.map +1 -0
  132. package/es/tx/builder/field-types/address.d.ts +5 -6
  133. package/es/tx/builder/field-types/address.mjs +17 -8
  134. package/es/tx/builder/field-types/address.mjs.map +1 -1
  135. package/es/tx/builder/field-types/array.d.ts +7 -0
  136. package/es/tx/builder/field-types/array.mjs +11 -0
  137. package/es/tx/builder/field-types/array.mjs.map +1 -0
  138. package/es/tx/builder/field-types/boolean.d.ts +6 -0
  139. package/es/tx/builder/field-types/boolean.mjs +13 -0
  140. package/es/tx/builder/field-types/boolean.mjs.map +1 -0
  141. package/es/tx/builder/field-types/coin-amount.d.ts +4 -5
  142. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  143. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  144. package/es/tx/builder/field-types/ct-version.d.ts +49 -0
  145. package/es/tx/builder/field-types/ct-version.mjs +76 -0
  146. package/es/tx/builder/field-types/ct-version.mjs.map +1 -0
  147. package/es/tx/builder/field-types/deposit.d.ts +3 -2
  148. package/es/tx/builder/field-types/deposit.mjs +3 -2
  149. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  150. package/es/tx/builder/field-types/encoded.d.ts +6 -0
  151. package/es/tx/builder/field-types/encoded.mjs +21 -0
  152. package/es/tx/builder/field-types/encoded.mjs.map +1 -0
  153. package/es/tx/builder/field-types/entry.d.ts +11 -0
  154. package/es/tx/builder/field-types/entry.mjs +34 -0
  155. package/es/tx/builder/field-types/entry.mjs.map +1 -0
  156. package/es/tx/builder/field-types/enumeration.d.ts +5 -3
  157. package/es/tx/builder/field-types/enumeration.mjs +11 -2
  158. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  159. package/es/tx/builder/field-types/fee.d.ts +12 -7
  160. package/es/tx/builder/field-types/fee.mjs +28 -20
  161. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  162. package/es/tx/builder/field-types/field.mjs.map +1 -1
  163. package/es/tx/builder/field-types/gas-limit.d.ts +7 -3
  164. package/es/tx/builder/field-types/gas-limit.mjs +13 -8
  165. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  166. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  167. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  168. package/es/tx/builder/field-types/index.d.ts +107 -30
  169. package/es/tx/builder/field-types/index.mjs +38 -12
  170. package/es/tx/builder/field-types/index.mjs.map +1 -1
  171. package/es/tx/builder/field-types/map.d.ts +13 -0
  172. package/es/tx/builder/field-types/map.mjs +49 -0
  173. package/es/tx/builder/field-types/map.mjs.map +1 -0
  174. package/es/tx/builder/field-types/mptree.d.ts +42 -0
  175. package/es/tx/builder/field-types/mptree.mjs +266 -0
  176. package/es/tx/builder/field-types/mptree.mjs.map +1 -0
  177. package/es/tx/builder/field-types/name-fee.d.ts +2 -3
  178. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  179. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  180. package/es/tx/builder/field-types/name-id.mjs +2 -1
  181. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  182. package/es/tx/builder/field-types/name.mjs.map +1 -1
  183. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  184. package/es/tx/builder/field-types/nonce.mjs +29 -0
  185. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  186. package/es/tx/builder/field-types/pointers.mjs +2 -2
  187. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  188. package/es/tx/builder/field-types/raw.d.ts +6 -0
  189. package/es/tx/builder/field-types/raw.mjs +13 -0
  190. package/es/tx/builder/field-types/raw.mjs.map +1 -0
  191. package/es/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  192. package/es/tx/builder/field-types/short-u-int-const.mjs +20 -0
  193. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -0
  194. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  195. package/es/tx/builder/field-types/string.d.ts +6 -0
  196. package/es/tx/builder/field-types/string.mjs +10 -0
  197. package/es/tx/builder/field-types/string.mjs.map +1 -0
  198. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  199. package/es/tx/builder/field-types/ttl.mjs +21 -0
  200. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  201. package/es/tx/builder/field-types/u-int.d.ts +1 -2
  202. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  203. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  204. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  205. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  206. package/es/tx/builder/helpers.mjs.map +1 -1
  207. package/es/tx/builder/index.d.ts +18 -36
  208. package/es/tx/builder/index.mjs +65 -236
  209. package/es/tx/builder/index.mjs.map +1 -1
  210. package/es/tx/builder/schema.d.ts +2734 -1324
  211. package/es/tx/builder/schema.generated.d.ts +2011 -0
  212. package/es/tx/builder/schema.generated.mjs +2 -0
  213. package/es/tx/builder/schema.generated.mjs.map +1 -0
  214. package/es/tx/builder/schema.mjs +459 -223
  215. package/es/tx/builder/schema.mjs.map +1 -1
  216. package/es/tx/execution-cost.d.ts +35 -0
  217. package/es/tx/execution-cost.mjs +123 -0
  218. package/es/tx/execution-cost.mjs.map +1 -0
  219. package/es/tx/transaction-signer.d.ts +6 -0
  220. package/es/tx/transaction-signer.mjs +27 -0
  221. package/es/tx/transaction-signer.mjs.map +1 -0
  222. package/es/tx/validator.d.ts +3 -5
  223. package/es/tx/validator.mjs +91 -153
  224. package/es/tx/validator.mjs.map +1 -1
  225. package/es/utils/amount-formatter.mjs +0 -16
  226. package/es/utils/amount-formatter.mjs.map +1 -1
  227. package/es/utils/autorest.d.ts +3 -2
  228. package/es/utils/autorest.mjs +43 -11
  229. package/es/utils/autorest.mjs.map +1 -1
  230. package/es/utils/bytes.mjs +1 -17
  231. package/es/utils/bytes.mjs.map +1 -1
  232. package/es/utils/crypto.mjs +0 -16
  233. package/es/utils/crypto.mjs.map +1 -1
  234. package/es/utils/encoder.mjs.map +1 -1
  235. package/es/utils/errors.d.ts +16 -38
  236. package/es/utils/errors.mjs +3 -43
  237. package/es/utils/errors.mjs.map +1 -1
  238. package/es/utils/hd-wallet.mjs.map +1 -1
  239. package/es/utils/json-big.mjs.map +1 -1
  240. package/es/utils/keystore.mjs.map +1 -1
  241. package/es/utils/other.mjs.map +1 -1
  242. package/es/utils/semver-satisfies.mjs.map +1 -1
  243. package/es/utils/string.mjs +0 -17
  244. package/es/utils/string.mjs.map +1 -1
  245. package/package.json +52 -40
  246. package/src/AeSdkBase.ts +6 -3
  247. package/src/AeSdkMethods.ts +12 -18
  248. package/src/AeSdkWallet.ts +1 -1
  249. package/src/Node.ts +23 -9
  250. package/src/account/Base.ts +13 -24
  251. package/src/account/Generalized.ts +9 -24
  252. package/src/account/Ledger.ts +1 -1
  253. package/src/account/Memory.ts +15 -22
  254. package/src/aens.ts +34 -49
  255. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  256. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +18 -24
  257. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  258. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  259. package/src/aepp-wallet-communication/rpc/RpcClient.ts +2 -2
  260. package/src/aepp-wallet-communication/rpc/types.ts +6 -2
  261. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  262. package/src/apis/compiler/compiler.ts +3 -27
  263. package/src/apis/compiler/models/index.ts +3 -2
  264. package/src/apis/compiler/models/mappers.ts +15 -2
  265. package/src/apis/node/models/index.ts +16 -15
  266. package/src/apis/node/models/mappers.ts +2 -1
  267. package/src/apis/node/models/parameters.ts +2 -2
  268. package/src/apis/node/node.ts +3 -27
  269. package/src/chain.ts +33 -30
  270. package/src/channel/Base.ts +39 -31
  271. package/src/channel/Contract.ts +18 -32
  272. package/src/channel/Spend.ts +8 -18
  273. package/src/channel/handlers.ts +14 -26
  274. package/src/channel/internal.ts +41 -23
  275. package/src/contract/Contract.ts +188 -228
  276. package/src/contract/compiler/Base.ts +87 -0
  277. package/src/contract/compiler/Cli.ts +128 -0
  278. package/src/contract/compiler/Http.ts +105 -0
  279. package/src/contract/compiler/HttpNode.ts +26 -0
  280. package/src/contract/compiler/getFileSystem.ts +42 -0
  281. package/src/contract/delegation-signature.ts +56 -0
  282. package/src/contract/ga.ts +61 -37
  283. package/src/index-browser.ts +50 -0
  284. package/src/index.ts +4 -56
  285. package/src/oracle.ts +47 -57
  286. package/src/spend.ts +34 -68
  287. package/src/tx/builder/SchemaTypes.ts +79 -0
  288. package/src/tx/builder/constants.ts +34 -3
  289. package/src/tx/builder/field-types/abi-version.ts +44 -0
  290. package/src/tx/builder/field-types/address.ts +23 -13
  291. package/src/tx/builder/field-types/array.ts +19 -0
  292. package/src/tx/builder/field-types/boolean.ts +9 -0
  293. package/src/tx/builder/field-types/coin-amount.ts +8 -5
  294. package/src/tx/builder/field-types/ct-version.ts +83 -0
  295. package/src/tx/builder/field-types/deposit.ts +4 -2
  296. package/src/tx/builder/field-types/encoded.ts +27 -0
  297. package/src/tx/builder/field-types/entry.ts +36 -0
  298. package/src/tx/builder/field-types/enumeration.ts +15 -4
  299. package/src/tx/builder/field-types/fee.ts +41 -19
  300. package/src/tx/builder/field-types/gas-limit.ts +13 -8
  301. package/src/tx/builder/field-types/index.ts +60 -17
  302. package/src/tx/builder/field-types/map.ts +45 -0
  303. package/src/tx/builder/field-types/mptree.ts +243 -0
  304. package/src/tx/builder/field-types/name-fee.ts +3 -3
  305. package/src/tx/builder/field-types/name-id.ts +1 -1
  306. package/src/tx/builder/field-types/nonce.ts +40 -0
  307. package/src/tx/builder/field-types/pointers.ts +2 -2
  308. package/src/tx/builder/field-types/raw.ts +9 -0
  309. package/src/tx/builder/field-types/short-u-int-const.ts +30 -0
  310. package/src/tx/builder/field-types/string.ts +11 -0
  311. package/src/tx/builder/field-types/ttl.ts +24 -0
  312. package/src/tx/builder/field-types/u-int.ts +1 -3
  313. package/src/tx/builder/field-types/wrapped.ts +32 -0
  314. package/src/tx/builder/index.ts +82 -280
  315. package/src/tx/builder/schema.generated.ts +2013 -0
  316. package/src/tx/builder/schema.ts +536 -666
  317. package/src/tx/execution-cost.ts +146 -0
  318. package/src/tx/transaction-signer.ts +27 -0
  319. package/src/tx/validator.ts +100 -154
  320. package/src/utils/amount-formatter.ts +0 -16
  321. package/src/utils/autorest.ts +52 -11
  322. package/src/utils/bytes.ts +1 -17
  323. package/src/utils/crypto.ts +0 -16
  324. package/src/utils/errors.ts +18 -56
  325. package/src/utils/string.ts +0 -17
  326. package/types-legacy/ts4.2/AeSdkBase.d.ts +3 -3
  327. package/types-legacy/ts4.2/AeSdkMethods.d.ts +12 -14
  328. package/types-legacy/ts4.2/Node.d.ts +8 -4
  329. package/types-legacy/ts4.2/account/Base.d.ts +13 -8
  330. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  331. package/types-legacy/ts4.2/aens.d.ts +12 -14
  332. package/types-legacy/ts4.2/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  333. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  334. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  335. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  336. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  337. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  338. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  339. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  340. package/types-legacy/ts4.2/chain.d.ts +17 -9
  341. package/types-legacy/ts4.2/channel/Base.d.ts +27 -9
  342. package/types-legacy/ts4.2/channel/Contract.d.ts +8 -7
  343. package/types-legacy/ts4.2/channel/Spend.d.ts +5 -1
  344. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  345. package/types-legacy/ts4.2/contract/Contract.d.ts +42 -122
  346. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +74 -0
  347. package/types-legacy/ts4.2/contract/compiler/Cli.d.ts +23 -0
  348. package/types-legacy/ts4.2/contract/compiler/Http.d.ts +32 -0
  349. package/types-legacy/ts4.2/contract/compiler/HttpNode.d.ts +17 -0
  350. package/types-legacy/ts4.2/contract/compiler/getFileSystem.d.ts +6 -0
  351. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  352. package/types-legacy/ts4.2/contract/ga.d.ts +27 -10
  353. package/types-legacy/ts4.2/index-browser.d.ts +40 -0
  354. package/types-legacy/ts4.2/index.d.ts +4 -38
  355. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  356. package/types-legacy/ts4.2/spend.d.ts +19 -27
  357. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  358. package/types-legacy/ts4.2/tx/builder/constants.d.ts +31 -2
  359. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +19 -0
  360. package/types-legacy/ts4.2/tx/builder/field-types/address.d.ts +11 -12
  361. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +7 -0
  362. package/types-legacy/ts4.2/tx/builder/field-types/boolean.d.ts +6 -0
  363. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +4 -5
  364. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +72 -0
  365. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +3 -2
  366. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +6 -0
  367. package/types-legacy/ts4.2/tx/builder/field-types/entry.d.ts +11 -0
  368. package/types-legacy/ts4.2/tx/builder/field-types/enumeration.d.ts +5 -3
  369. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +12 -7
  370. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +7 -3
  371. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  372. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +113 -30
  373. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  374. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +48 -0
  375. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +2 -3
  376. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  377. package/types-legacy/ts4.2/tx/builder/field-types/raw.d.ts +6 -0
  378. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  379. package/types-legacy/ts4.2/tx/builder/field-types/string.d.ts +6 -0
  380. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  381. package/types-legacy/ts4.2/tx/builder/field-types/u-int.d.ts +1 -2
  382. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  383. package/types-legacy/ts4.2/tx/builder/index.d.ts +21 -36
  384. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2971 -2926
  385. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  386. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  387. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  388. package/types-legacy/ts4.2/tx/validator.d.ts +3 -5
  389. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  390. package/types-legacy/ts4.2/utils/errors.d.ts +16 -38
  391. package/types-legacy/ts4.5/AeSdkBase.d.ts +3 -3
  392. package/types-legacy/ts4.5/AeSdkMethods.d.ts +12 -14
  393. package/types-legacy/ts4.5/Node.d.ts +8 -4
  394. package/types-legacy/ts4.5/account/Base.d.ts +13 -8
  395. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  396. package/types-legacy/ts4.5/aens.d.ts +12 -14
  397. package/types-legacy/ts4.5/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -0
  398. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  399. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  400. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  401. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  402. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  403. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  404. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  405. package/types-legacy/ts4.5/chain.d.ts +17 -9
  406. package/types-legacy/ts4.5/channel/Base.d.ts +27 -9
  407. package/types-legacy/ts4.5/channel/Contract.d.ts +8 -7
  408. package/types-legacy/ts4.5/channel/Spend.d.ts +5 -1
  409. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  410. package/types-legacy/ts4.5/contract/Contract.d.ts +42 -122
  411. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +74 -0
  412. package/types-legacy/ts4.5/contract/compiler/Cli.d.ts +23 -0
  413. package/types-legacy/ts4.5/contract/compiler/Http.d.ts +32 -0
  414. package/types-legacy/ts4.5/contract/compiler/HttpNode.d.ts +17 -0
  415. package/types-legacy/ts4.5/contract/compiler/getFileSystem.d.ts +6 -0
  416. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  417. package/types-legacy/ts4.5/contract/ga.d.ts +27 -10
  418. package/types-legacy/ts4.5/index-browser.d.ts +40 -0
  419. package/types-legacy/ts4.5/index.d.ts +4 -38
  420. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  421. package/types-legacy/ts4.5/spend.d.ts +19 -27
  422. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  423. package/types-legacy/ts4.5/tx/builder/constants.d.ts +31 -2
  424. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +19 -0
  425. package/types-legacy/ts4.5/tx/builder/field-types/address.d.ts +11 -12
  426. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +7 -0
  427. package/types-legacy/ts4.5/tx/builder/field-types/boolean.d.ts +6 -0
  428. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +4 -5
  429. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +72 -0
  430. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +3 -2
  431. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +6 -0
  432. package/types-legacy/ts4.5/tx/builder/field-types/entry.d.ts +11 -0
  433. package/types-legacy/ts4.5/tx/builder/field-types/enumeration.d.ts +5 -3
  434. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +12 -7
  435. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +7 -3
  436. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  437. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +113 -30
  438. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  439. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +48 -0
  440. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +2 -3
  441. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  442. package/types-legacy/ts4.5/tx/builder/field-types/raw.d.ts +6 -0
  443. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +7 -0
  444. package/types-legacy/ts4.5/tx/builder/field-types/string.d.ts +6 -0
  445. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  446. package/types-legacy/ts4.5/tx/builder/field-types/u-int.d.ts +1 -2
  447. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  448. package/types-legacy/ts4.5/tx/builder/index.d.ts +21 -36
  449. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2971 -2926
  450. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  451. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  452. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  453. package/types-legacy/ts4.5/tx/validator.d.ts +3 -5
  454. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  455. package/types-legacy/ts4.5/utils/errors.d.ts +16 -38
  456. package/es/contract/CompilerHttp.d.ts +0 -18
  457. package/es/contract/CompilerHttp.mjs +0 -63
  458. package/es/contract/CompilerHttp.mjs.map +0 -1
  459. package/es/tx/builder/field-types/addresses.d.ts +0 -6
  460. package/es/tx/builder/field-types/addresses.mjs +0 -13
  461. package/es/tx/builder/field-types/addresses.mjs.map +0 -1
  462. package/es/tx/index.d.ts +0 -34
  463. package/es/tx/index.mjs +0 -172
  464. package/es/tx/index.mjs.map +0 -1
  465. package/es/utils/mptree.d.ts +0 -26
  466. package/es/utils/mptree.mjs +0 -143
  467. package/es/utils/mptree.mjs.map +0 -1
  468. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  469. package/src/apis/node/code-model-v4.yaml +0 -10080
  470. package/src/contract/CompilerHttp.ts +0 -67
  471. package/src/tx/builder/field-types/addresses.ts +0 -18
  472. package/src/tx/index.ts +0 -196
  473. package/src/utils/mptree.ts +0 -145
  474. package/types-legacy/ts4.2/contract/CompilerHttp.d.ts +0 -18
  475. package/types-legacy/ts4.2/tx/builder/field-types/addresses.d.ts +0 -6
  476. package/types-legacy/ts4.2/tx/index.d.ts +0 -34
  477. package/types-legacy/ts4.2/utils/mptree.d.ts +0 -32
  478. package/types-legacy/ts4.5/contract/CompilerHttp.d.ts +0 -18
  479. package/types-legacy/ts4.5/tx/builder/field-types/addresses.d.ts +0 -6
  480. package/types-legacy/ts4.5/tx/index.d.ts +0 -34
  481. package/types-legacy/ts4.5/utils/mptree.d.ts +0 -32
package/src/index.ts CHANGED
@@ -1,57 +1,5 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2022 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
- */
1
+ export * from './index-browser';
17
2
 
18
- export * from './chain';
19
- export * from './utils/crypto';
20
- export * from './utils/keystore';
21
- export * from './utils/bytes';
22
- export * from './tx';
23
- export * from './tx/builder';
24
- export * from './tx/builder/helpers';
25
- export * from './tx/builder/constants';
26
- export * from './tx/builder/schema';
27
- export * from './utils/amount-formatter';
28
- export * from './utils/hd-wallet';
29
- export { encode, decode, Encoding } from './utils/encoder';
30
- export * from './aens';
31
- export { default as Contract } from './contract/Contract';
32
- export type { ContractMethodsBase } from './contract/Contract';
33
- export * from './oracle';
34
- export * from './spend';
35
- export * from './contract/ga';
36
-
37
- export { default as AeSdkMethods } from './AeSdkMethods';
38
- export { default as AeSdkBase } from './AeSdkBase';
39
- export { default as AeSdk } from './AeSdk';
40
- export { default as AeSdkAepp } from './AeSdkAepp';
41
- export { default as AeSdkWallet } from './AeSdkWallet';
42
- export { default as Node } from './Node';
43
- export { default as verifyTransaction } from './tx/validator';
44
- export { default as AccountBase } from './account/Base';
45
- export { default as MemoryAccount } from './account/Memory';
46
- export { default as AccountGeneralized } from './account/Generalized';
47
- export { default as AccountLedger } from './account/Ledger';
48
- export { default as AccountLedgerFactory } from './account/LedgerFactory';
49
- export { default as CompilerHttp } from './contract/CompilerHttp';
50
- export { default as Channel } from './channel/Contract';
51
-
52
- export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
53
- export * from './aepp-wallet-communication/schema';
54
- export { default as walletDetector } from './aepp-wallet-communication/wallet-detector';
55
- export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';
56
- export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';
57
- export * from './utils/errors';
3
+ export { default as CompilerCli } from './contract/compiler/Cli';
4
+ export { default as getFileSystem } from './contract/compiler/getFileSystem';
5
+ export { default as CompilerHttpNode } from './contract/compiler/HttpNode';
package/src/oracle.ts CHANGED
@@ -1,20 +1,3 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2022 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
1
  /**
19
2
  * Oracle methods - routines to interact with the æternity oracle system
20
3
  *
@@ -23,15 +6,12 @@
23
6
  * repository.
24
7
  */
25
8
 
26
- import BigNumber from 'bignumber.js';
27
- import { send, SendOptions } from './spend';
28
9
  import { mapObject, pause } from './utils/other';
29
10
  import { oracleQueryId } from './tx/builder/helpers';
30
- import { unpackTx } from './tx/builder';
11
+ import { unpackTx, buildTxAsync, BuildTxOptions } from './tx/builder';
31
12
  import {
32
13
  ORACLE_TTL,
33
14
  ORACLE_TTL_TYPES,
34
- QUERY_FEE,
35
15
  QUERY_TTL,
36
16
  RESPONSE_TTL,
37
17
  } from './tx/builder/schema';
@@ -40,8 +20,9 @@ import { RequestTimedOutError } from './utils/errors';
40
20
  import {
41
21
  decode, encode, Encoded, Encoding,
42
22
  } from './utils/encoder';
43
- import { _getPollInterval, getHeight } from './chain';
44
- import { _buildTx, BuildTxOptions } from './tx';
23
+ import {
24
+ _getPollInterval, getHeight, sendTransaction, SendTransactionOptions,
25
+ } from './chain';
45
26
  import Node from './Node';
46
27
  import AccountBase from './account/Base';
47
28
 
@@ -59,7 +40,7 @@ type OracleQueries = Awaited<ReturnType<Node['getOracleQueriesByPubkey']>>['orac
59
40
  */
60
41
  export function pollForQueries(
61
42
  oracleId: Encoded.OracleAddress,
62
- onQuery: (queries: OracleQueries) => void,
43
+ onQuery: (query: OracleQueries[number]) => void,
63
44
  { interval, onNode, ...options }: { interval?: number; onNode: Node }
64
45
  & Parameters<typeof _getPollInterval>[1],
65
46
  ): () => void {
@@ -68,8 +49,10 @@ export function pollForQueries(
68
49
  const checkNewQueries = async (): Promise<void> => {
69
50
  const queries = ((await onNode.getOracleQueriesByPubkey(oracleId)).oracleQueries ?? [])
70
51
  .filter(({ id }) => !knownQueryIds.has(id));
71
- queries.forEach(({ id }) => knownQueryIds.add(id));
72
- if (queries.length > 0) onQuery(queries);
52
+ queries.forEach((query) => {
53
+ knownQueryIds.add(query.id);
54
+ onQuery(query);
55
+ });
73
56
  };
74
57
 
75
58
  let stopped = false;
@@ -135,7 +118,7 @@ export async function getQueryObject(
135
118
  decodedResponse: decode(record.response as Encoded.OracleResponse).toString(),
136
119
  respond: async (response, opt) => (
137
120
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
138
- respondToQuery(oracleId, queryId, response, { ...options, ...opt })
121
+ respondToQuery(queryId, response, { ...options, ...opt })
139
122
  ),
140
123
  pollForResponse: async (opt) => pollForQueryResponse(oracleId, queryId, { ...options, ...opt }),
141
124
  };
@@ -144,7 +127,7 @@ export async function getQueryObject(
144
127
  interface GetQueryObjectReturnType extends Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>> {
145
128
  decodedQuery: string;
146
129
  decodedResponse: string;
147
- respond: (response: string, options?: Parameters<typeof respondToQuery>[3]) =>
130
+ respond: (response: string, options?: Parameters<typeof respondToQuery>[2]) =>
148
131
  ReturnType<typeof respondToQuery>;
149
132
  pollForResponse: (options?: Parameters<typeof pollForQueryResponse>[2]) =>
150
133
  ReturnType<typeof pollForQueryResponse>;
@@ -167,29 +150,32 @@ export async function postQueryToOracle(
167
150
  oracleId: Encoded.OracleAddress,
168
151
  query: string,
169
152
  options: PostQueryToOracleOptions,
170
- ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getQueryObject>>> {
153
+ ): Promise<
154
+ Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getQueryObject>>
155
+ > {
171
156
  options.queryFee ??= (await options.onNode.getOracleByPubkey(oracleId)).queryFee.toString();
172
157
  const senderId = options.onAccount.address;
173
158
 
174
- const oracleQueryTx = await _buildTx(Tag.OracleQueryTx, {
159
+ const oracleQueryTx = await buildTxAsync({
175
160
  queryTtlType: QUERY_TTL.type,
176
161
  queryTtlValue: QUERY_TTL.value,
177
162
  responseTtlType: RESPONSE_TTL.type,
178
163
  responseTtlValue: RESPONSE_TTL.value,
179
164
  ...options,
165
+ tag: Tag.OracleQueryTx,
180
166
  oracleId,
181
167
  senderId,
182
168
  query,
183
169
  });
184
- const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx).tx;
170
+ const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);
185
171
  const queryId = oracleQueryId(senderId, nonce, oracleId);
186
172
  return {
187
- ...await send(oracleQueryTx, options),
173
+ ...await sendTransaction(oracleQueryTx, options),
188
174
  ...await getQueryObject(oracleId, queryId, options),
189
175
  };
190
176
  }
191
177
 
192
- type PostQueryToOracleOptionsType = Parameters<typeof send>[1]
178
+ type PostQueryToOracleOptionsType = Parameters<typeof sendTransaction>[1]
193
179
  & Parameters<typeof getQueryObject>[2]
194
180
  & BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query' | 'queryTtlType' | 'queryTtlValue' | 'responseTtlType' | 'responseTtlValue'>
195
181
  & {
@@ -203,7 +189,6 @@ interface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {}
203
189
  /**
204
190
  * Extend oracle ttl
205
191
  * @category oracle
206
- * @param oracleId - Oracle public key
207
192
  * @param options - Options object
208
193
  * @param options.fee - fee Transaction fee
209
194
  * @param options.ttl - Transaction time to leave
@@ -211,25 +196,25 @@ interface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {}
211
196
  * @param options.oracleTtlValue - Oracle time to leave for extend
212
197
  * @returns Oracle object
213
198
  */
214
- export async function extendOracleTtl(
215
- oracleId: Encoded.OracleAddress,
216
- options: ExtendOracleTtlOptions,
217
- ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {
218
- const oracleExtendTx = await _buildTx(Tag.OracleExtendTx, {
199
+ export async function extendOracleTtl(options: ExtendOracleTtlOptions): Promise<
200
+ Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>
201
+ > {
202
+ const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);
203
+ const oracleExtendTx = await buildTxAsync({
219
204
  oracleTtlType: ORACLE_TTL.type,
220
205
  oracleTtlValue: ORACLE_TTL.value,
221
206
  ...options,
222
- callerId: options.onAccount.address,
207
+ tag: Tag.OracleExtendTx,
223
208
  oracleId,
224
209
  });
225
210
  return {
226
- ...await send(oracleExtendTx, options),
211
+ ...await sendTransaction(oracleExtendTx, options),
227
212
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
228
213
  ...await getOracleObject(oracleId, options),
229
214
  };
230
215
  }
231
216
 
232
- type ExtendOracleTtlOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]
217
+ type ExtendOracleTtlOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]
233
218
  & BuildTxOptions<Tag.OracleExtendTx, 'oracleTtlType' | 'oracleTtlValue' | 'callerId' | 'oracleId'>
234
219
  & { oracleTtlType?: ORACLE_TTL_TYPES; oracleTtlValue?: number };
235
220
  interface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {}
@@ -237,7 +222,6 @@ interface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {}
237
222
  /**
238
223
  * Extend oracle ttl
239
224
  * @category oracle
240
- * @param oracleId - Oracle public key
241
225
  * @param queryId - Oracle query id
242
226
  * @param response - Oracle query response
243
227
  * @param options - Options object
@@ -247,28 +231,30 @@ interface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {}
247
231
  * @returns Oracle object
248
232
  */
249
233
  export async function respondToQuery(
250
- oracleId: Encoded.OracleAddress,
251
234
  queryId: Encoded.OracleQueryId,
252
235
  response: string,
253
236
  options: RespondToQueryOptions,
254
- ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {
255
- const oracleRespondTx = await _buildTx(Tag.OracleResponseTx, {
237
+ ): Promise<
238
+ Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>
239
+ > {
240
+ const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);
241
+ const oracleRespondTx = await buildTxAsync({
256
242
  responseTtlType: RESPONSE_TTL.type,
257
243
  responseTtlValue: RESPONSE_TTL.value,
258
244
  ...options,
259
- callerId: options.onAccount.address,
245
+ tag: Tag.OracleResponseTx,
260
246
  oracleId,
261
247
  queryId,
262
248
  response,
263
249
  });
264
250
  return {
265
- ...await send(oracleRespondTx, options),
251
+ ...await sendTransaction(oracleRespondTx, options),
266
252
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
267
253
  ...await getOracleObject(oracleId, options),
268
254
  };
269
255
  }
270
256
 
271
- type RespondToQueryOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]
257
+ type RespondToQueryOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]
272
258
  & BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response' | 'responseTtlType' | 'responseTtlValue'>
273
259
  & { responseTtlType?: ORACLE_TTL_TYPES; responseTtlValue?: number };
274
260
  interface RespondToQueryOptions extends RespondToQueryOptionsType {}
@@ -302,7 +288,10 @@ export async function getOracleObject(
302
288
  if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {
303
289
  Object.assign(lastArg, { ...options, ...lastArg });
304
290
  } else args.push(options);
305
- return handler(oracleId, ...args);
291
+ return handler(
292
+ ...['extendOracle', 'respondToQuery'].includes(name) ? [] : [oracleId],
293
+ ...args,
294
+ );
306
295
  },
307
296
  ],
308
297
  ),
@@ -337,27 +326,28 @@ export async function registerOracle(
337
326
  queryFormat: string,
338
327
  responseFormat: string,
339
328
  options: RegisterOracleOptions,
340
- ): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {
329
+ ): Promise<
330
+ Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>
331
+ > {
341
332
  const accountId = options.onAccount.address;
342
- const oracleRegisterTx = await _buildTx(Tag.OracleRegisterTx, {
343
- queryFee: QUERY_FEE,
333
+ const oracleRegisterTx = await buildTxAsync({
344
334
  oracleTtlValue: ORACLE_TTL.value,
345
335
  oracleTtlType: ORACLE_TTL.type,
346
336
  ...options,
337
+ tag: Tag.OracleRegisterTx,
347
338
  accountId,
348
339
  queryFormat,
349
340
  responseFormat,
350
341
  });
351
342
  return {
352
- ...await send(oracleRegisterTx, options),
343
+ ...await sendTransaction(oracleRegisterTx, options),
353
344
  ...await getOracleObject(encode(decode(accountId), Encoding.OracleAddress), options),
354
345
  };
355
346
  }
356
347
 
357
- type RegisterOracleOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]
358
- & BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'queryFee' | 'oracleTtlType' | 'oracleTtlValue'>
348
+ type RegisterOracleOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]
349
+ & BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'oracleTtlType' | 'oracleTtlValue'>
359
350
  & {
360
- queryFee?: number | string | BigNumber;
361
351
  oracleTtlType?: ORACLE_TTL_TYPES;
362
352
  oracleTtlValue?: number;
363
353
  };
package/src/spend.ts CHANGED
@@ -1,56 +1,13 @@
1
- /*
2
- * ISC License (ISC)
3
- * Copyright (c) 2022 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
1
  import BigNumber from 'bignumber.js';
18
- import { sendTransaction, getBalance, resolveName } from './chain';
19
- import { _buildTx, BuildTxOptions } from './tx';
20
- import { buildTxHash, unpackTx } from './tx/builder';
2
+ import {
3
+ sendTransaction, getBalance, resolveName, SendTransactionOptions,
4
+ } from './chain';
5
+ import { buildTxAsync, BuildTxOptions, unpackTx } from './tx/builder';
21
6
  import { ArgumentError } from './utils/errors';
22
7
  import { Encoded, Encoding } from './utils/encoder';
23
8
  import { Tag, AensName } from './tx/builder/constants';
24
9
  import AccountBase from './account/Base';
25
10
 
26
- /**
27
- * Sign and post a transaction to the chain
28
- * @category chain
29
- * @param tx - Transaction
30
- * @param options - Options
31
- * @param options.verify - Verify transaction before broadcast, throw error if not
32
- * valid
33
- * @returns Transaction
34
- */
35
- export async function send(
36
- tx: Encoded.Transaction,
37
- options: SendOptions,
38
- ): Promise<SendReturnType> {
39
- const signed = await options.onAccount.signTransaction(tx, {
40
- ...options,
41
- networkId: await options.onNode.getNetworkId(),
42
- });
43
-
44
- return options.innerTx === true
45
- ? { hash: buildTxHash(signed), rawTx: signed }
46
- : sendTransaction(signed, options);
47
- }
48
-
49
- type SendOptionsType = Parameters<AccountBase['signTransaction']>[1]
50
- & Parameters<typeof sendTransaction>[1] & { onAccount: AccountBase };
51
- export interface SendOptions extends SendOptionsType {}
52
- interface SendReturnType extends Awaited<ReturnType<typeof sendTransaction>> {}
53
-
54
11
  /**
55
12
  * Send coins to another account
56
13
  * @category chain
@@ -63,10 +20,11 @@ export async function spend(
63
20
  amount: number | string,
64
21
  recipientIdOrName: Encoded.AccountAddress | AensName,
65
22
  options: SpendOptions,
66
- ): ReturnType<typeof send> {
67
- return send(
68
- await _buildTx(Tag.SpendTx, {
23
+ ): ReturnType<typeof sendTransaction> {
24
+ return sendTransaction(
25
+ await buildTxAsync({
69
26
  ...options,
27
+ tag: Tag.SpendTx,
70
28
  senderId: options.onAccount.address,
71
29
  recipientId: await resolveName<Encoding.AccountAddress>(
72
30
  recipientIdOrName,
@@ -80,23 +38,32 @@ export async function spend(
80
38
  }
81
39
 
82
40
  type SpendOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>
83
- & Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendOptions;
41
+ & Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendTransactionOptions;
84
42
  interface SpendOptions extends SpendOptionsType {}
85
43
 
86
44
  // TODO: Rename to spendFraction
87
45
  /**
88
- * Send a fraction of coin balance to another account
46
+ * Spend a fraction of coin balance to another account. Useful if needed to drain account balance
47
+ * completely, sending funds to another account (with fraction set to 1).
89
48
  * @category chain
90
49
  * @param fraction - Fraction of balance to spend (between 0 and 1)
91
50
  * @param recipientIdOrName - Address or name of recipient account
92
51
  * @param options - Options
93
- * @returns Transaction
52
+ * @example
53
+ * ```js
54
+ * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)
55
+ * const { blockHeight } = await aeSdk.transferFunds(
56
+ * 0.42,
57
+ * 'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',
58
+ * );
59
+ * console.log('Transaction mined at', blockHeight);
60
+ * ```
94
61
  */
95
62
  export async function transferFunds(
96
63
  fraction: number | string,
97
64
  recipientIdOrName: AensName | Encoded.AccountAddress,
98
65
  options: TransferFundsOptions,
99
- ): ReturnType<typeof send> {
66
+ ): ReturnType<typeof sendTransaction> {
100
67
  if (fraction < 0 || fraction > 1) {
101
68
  throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);
102
69
  }
@@ -110,24 +77,24 @@ export async function transferFunds(
110
77
  await getBalance.bind(options.onAccount)(senderId, options),
111
78
  );
112
79
  const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);
113
- const { tx: { fee } } = unpackTx(
114
- await _buildTx(Tag.SpendTx, {
115
- ...options, senderId, recipientId, amount: desiredAmount,
80
+ const { fee } = unpackTx(
81
+ await buildTxAsync({
82
+ ...options, tag: Tag.SpendTx, senderId, recipientId, amount: desiredAmount,
116
83
  }),
117
84
  Tag.SpendTx,
118
85
  );
119
86
  // Reducing of the amount may reduce transaction fee, so this is not completely accurate
120
87
  const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;
121
- return send(
122
- await _buildTx(Tag.SpendTx, {
123
- ...options, senderId, recipientId, amount,
88
+ return sendTransaction(
89
+ await buildTxAsync({
90
+ ...options, tag: Tag.SpendTx, senderId, recipientId, amount,
124
91
  }),
125
92
  options,
126
93
  );
127
94
  }
128
95
 
129
96
  type TransferFundsOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>
130
- & Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendOptions;
97
+ & Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendTransactionOptions;
131
98
  interface TransferFundsOptions extends TransferFundsOptionsType {}
132
99
 
133
100
  /**
@@ -140,17 +107,16 @@ interface TransferFundsOptions extends TransferFundsOptionsType {}
140
107
  export async function payForTransaction(
141
108
  transaction: Encoded.Transaction,
142
109
  options: PayForTransactionOptions,
143
- ): ReturnType<typeof send> {
144
- return send(
145
- await _buildTx(
146
- Tag.PayingForTx,
147
- { ...options, payerId: options.onAccount.address, tx: transaction },
148
- ),
110
+ ): ReturnType<typeof sendTransaction> {
111
+ return sendTransaction(
112
+ await buildTxAsync({
113
+ ...options, tag: Tag.PayingForTx, payerId: options.onAccount.address, tx: transaction,
114
+ }),
149
115
  options,
150
116
  );
151
117
  }
152
118
 
153
119
  interface PayForTransactionOptions extends
154
- BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx'>, SendOptions {
120
+ BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx' | 'onNode'>, SendTransactionOptions {
155
121
  onAccount: AccountBase;
156
122
  }
@@ -0,0 +1,79 @@
1
+ import { Field as OriginalField } from './field-types';
2
+ import { UnionToIntersection } from '../../utils/other';
3
+
4
+ // TODO: figure out why this override is necessary
5
+ export interface Field extends OriginalField {
6
+ serialize: (...args: any[]) => any;
7
+ }
8
+
9
+ type NullablePartial<
10
+ T,
11
+ NK extends keyof T = { [K in keyof T]: undefined extends T[K] ? K : never }[keyof T],
12
+ > = Partial<Pick<T, NK>> & Omit<T, NK>;
13
+
14
+ type Or<A, B> = A extends undefined ? B : A;
15
+
16
+ type TxParamsBySchemaInternal<SchemaItem> = {
17
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field
18
+ ? Parameters<SchemaItem[key]['serialize']>[0]
19
+ : never;
20
+ };
21
+
22
+ type TxParamsBySchemaInternalParams<
23
+ SchemaItem,
24
+ SchemaItemValues = SchemaItem[keyof SchemaItem],
25
+ > = UnionToIntersection<
26
+ SchemaItemValues extends Field
27
+ ? Or<Parameters<SchemaItemValues['serialize']>[2], {}> : never
28
+ >;
29
+
30
+ type PickIsRec<SchemaItem, Recursive extends boolean> = {
31
+ [Key in keyof SchemaItem
32
+ as SchemaItem[Key] extends Field & { recursiveType: true }
33
+ ? (Recursive extends true ? Key : never)
34
+ : (Recursive extends true ? never : Key)]: SchemaItem[Key];
35
+ };
36
+
37
+ type TxParamsBySchema<SchemaItem> = SchemaItem extends Object
38
+ ? TxParamsBySchemaInternal<PickIsRec<SchemaItem, true>> &
39
+ NullablePartial<TxParamsBySchemaInternal<PickIsRec<SchemaItem, false>>> &
40
+ TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>>
41
+ : never;
42
+
43
+ type TxParamsAsyncBySchemaInternal<SchemaItem> = {
44
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field & { prepare: Function }
45
+ ? Parameters<SchemaItem[key]['prepare']>[0]
46
+ : SchemaItem[key] extends Field
47
+ ? Parameters<SchemaItem[key]['serialize']>[0]
48
+ : never;
49
+ };
50
+
51
+ type TxParamsAsyncBySchemaInternalParams<
52
+ SchemaItem,
53
+ SchemaItemValues = SchemaItem[keyof SchemaItem],
54
+ > = UnionToIntersection<
55
+ SchemaItemValues extends Field & { prepare: Function }
56
+ ? Or<Parameters<SchemaItemValues['prepare']>[2], {}> : {}
57
+ >;
58
+
59
+ type TxParamsAsyncBySchema<SchemaItem> = SchemaItem extends Object
60
+ ? TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, true>>
61
+ & NullablePartial<TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, false>>>
62
+ & TxParamsAsyncBySchemaInternalParams<PickIsRec<SchemaItem, false>>
63
+ & TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>>
64
+ : never;
65
+
66
+ type TxUnpackedBySchema<SchemaItem> = {
67
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field
68
+ ? ReturnType<SchemaItem[key]['deserialize']>
69
+ : never;
70
+ };
71
+
72
+ export default interface SchemaTypes<
73
+ Schema extends readonly any[],
74
+ SchemaItems = Schema[number],
75
+ > {
76
+ TxParams: TxParamsBySchema<SchemaItems>;
77
+ TxParamsAsync: TxParamsAsyncBySchema<SchemaItems>;
78
+ TxUnpacked: TxUnpackedBySchema<SchemaItems>;
79
+ }
@@ -2,6 +2,7 @@ import BigNumber from 'bignumber.js';
2
2
  import { mapObject } from '../../utils/other';
3
3
 
4
4
  export const MAX_AUTH_FUN_GAS = 50000;
5
+ export type Int = number | string | BigNumber;
5
6
  // # AENS
6
7
  export type AensName = `${string}.chain`;
7
8
  export const NAME_TTL = 180000;
@@ -57,6 +58,35 @@ export const NAME_BID_RANGES = mapObject({
57
58
  1: 5702887,
58
59
  }, ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)]);
59
60
 
61
+ export enum ConsensusProtocolVersion {
62
+ Iris = 5,
63
+ Ceres = 6,
64
+ }
65
+
66
+ /**
67
+ * @category transaction builder
68
+ * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
69
+ */
70
+ export enum VmVersion {
71
+ NoVm = 0,
72
+ Sophia = 1,
73
+ SophiaImprovementsMinerva = 3,
74
+ SophiaImprovementsFortuna = 4,
75
+ Fate = 5,
76
+ SophiaImprovementsLima = 6,
77
+ Fate2 = 7,
78
+ }
79
+
80
+ /**
81
+ * @category transaction builder
82
+ * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
83
+ */
84
+ export enum AbiVersion {
85
+ NoAbi = 0,
86
+ Sophia = 1,
87
+ Fate = 3,
88
+ }
89
+
60
90
  /**
61
91
  * Enum with tag types
62
92
  * @category transaction builder
@@ -68,13 +98,13 @@ export enum Tag {
68
98
  Account = 10,
69
99
  SignedTx = 11,
70
100
  SpendTx = 12,
71
- // Oracle = 20,
101
+ Oracle = 20,
72
102
  // OracleQuery = 21,
73
103
  OracleRegisterTx = 22,
74
104
  OracleQueryTx = 23,
75
105
  OracleResponseTx = 24,
76
106
  OracleExtendTx = 25,
77
- // Name = 30,
107
+ Name = 30,
78
108
  // NameCommitment = 31,
79
109
  NameClaimTx = 32,
80
110
  NamePreclaimTx = 33,
@@ -116,10 +146,11 @@ export enum Tag {
116
146
  NameserviceMtree = 624,
117
147
  OraclesMtree = 625,
118
148
  AccountsMtree = 626,
119
- CompilerSophia = 70,
149
+ // CompilerSophia = 70,
120
150
  GaAttachTx = 80,
121
151
  GaMetaTx = 81,
122
152
  PayingForTx = 82,
153
+ GaMetaTxAuthData = 810,
123
154
  // KeyBlock = 100,
124
155
  // MicroBlock = 101,
125
156
  // LightMicroBlock = 102,