@aeternity/aepp-sdk 13.0.0-alpha.1 → 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 (388) 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 +1792 -1525
  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.mjs.map +1 -1
  11. package/es/AeSdkMethods.d.ts +11 -12
  12. package/es/AeSdkMethods.mjs +6 -8
  13. package/es/AeSdkMethods.mjs.map +1 -1
  14. package/es/AeSdkWallet.mjs +1 -1
  15. package/es/AeSdkWallet.mjs.map +1 -1
  16. package/es/Node.d.ts +5 -1
  17. package/es/Node.mjs +11 -5
  18. package/es/Node.mjs.map +1 -1
  19. package/es/account/Base.d.ts +11 -6
  20. package/es/account/Base.mjs +0 -17
  21. package/es/account/Base.mjs.map +1 -1
  22. package/es/account/Generalized.mjs +11 -24
  23. package/es/account/Generalized.mjs.map +1 -1
  24. package/es/account/Ledger.mjs.map +1 -1
  25. package/es/account/LedgerFactory.mjs.map +1 -1
  26. package/es/account/Memory.d.ts +2 -1
  27. package/es/account/Memory.mjs +9 -21
  28. package/es/account/Memory.mjs.map +1 -1
  29. package/es/account/Rpc.mjs.map +1 -1
  30. package/es/aens.d.ts +12 -14
  31. package/es/aens.mjs +17 -31
  32. package/es/aens.mjs.map +1 -1
  33. package/es/aepp-wallet-communication/connection/Browser.mjs +0 -16
  34. package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -1
  35. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +0 -16
  36. package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -1
  37. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +0 -16
  38. package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -1
  39. package/es/aepp-wallet-communication/connection-proxy.mjs +0 -17
  40. package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -1
  41. package/es/aepp-wallet-communication/rpc/RpcClient.mjs +4 -5
  42. package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -1
  43. package/es/aepp-wallet-communication/rpc/types.d.ts +6 -2
  44. package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -1
  45. package/es/aepp-wallet-communication/schema.mjs.map +1 -1
  46. package/es/aepp-wallet-communication/wallet-detector.mjs +0 -16
  47. package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -1
  48. package/es/apis/compiler/compiler.d.ts +1 -1
  49. package/es/apis/compiler/compiler.mjs +4 -20
  50. package/es/apis/compiler/compiler.mjs.map +1 -1
  51. package/es/apis/compiler/models/index.d.ts +3 -2
  52. package/es/apis/compiler/models/index.mjs.map +1 -1
  53. package/es/apis/compiler/models/mappers.d.ts +1 -1
  54. package/es/apis/compiler/models/mappers.mjs +19 -2
  55. package/es/apis/compiler/models/mappers.mjs.map +1 -1
  56. package/es/apis/node/models/index.d.ts +15 -15
  57. package/es/apis/node/models/index.mjs.map +1 -1
  58. package/es/apis/node/models/mappers.d.ts +1 -1
  59. package/es/apis/node/models/mappers.mjs +2 -1
  60. package/es/apis/node/models/mappers.mjs.map +1 -1
  61. package/es/apis/node/models/parameters.d.ts +2 -2
  62. package/es/apis/node/models/parameters.mjs +2 -2
  63. package/es/apis/node/models/parameters.mjs.map +1 -1
  64. package/es/apis/node/node.mjs +3 -19
  65. package/es/apis/node/node.mjs.map +1 -1
  66. package/es/chain.d.ts +8 -8
  67. package/es/chain.mjs +19 -22
  68. package/es/chain.mjs.map +1 -1
  69. package/es/channel/Base.d.ts +25 -12
  70. package/es/channel/Base.mjs +23 -26
  71. package/es/channel/Base.mjs.map +1 -1
  72. package/es/channel/Contract.mjs +8 -21
  73. package/es/channel/Contract.mjs.map +1 -1
  74. package/es/channel/Spend.d.ts +4 -2
  75. package/es/channel/Spend.mjs +0 -16
  76. package/es/channel/Spend.mjs.map +1 -1
  77. package/es/channel/handlers.mjs +6 -18
  78. package/es/channel/handlers.mjs.map +1 -1
  79. package/es/channel/internal.d.ts +19 -2
  80. package/es/channel/internal.mjs +19 -19
  81. package/es/channel/internal.mjs.map +1 -1
  82. package/es/contract/Contract.d.ts +30 -85
  83. package/es/contract/Contract.mjs +174 -211
  84. package/es/contract/Contract.mjs.map +1 -1
  85. package/es/contract/compiler/Base.d.ts +7 -14
  86. package/es/contract/compiler/Base.mjs.map +1 -1
  87. package/es/contract/compiler/Cli.mjs +5 -11
  88. package/es/contract/compiler/Cli.mjs.map +1 -1
  89. package/es/contract/compiler/Http.mjs +6 -30
  90. package/es/contract/compiler/Http.mjs.map +1 -1
  91. package/es/contract/compiler/HttpNode.mjs.map +1 -1
  92. package/es/contract/compiler/getFileSystem.mjs.map +1 -1
  93. package/es/contract/delegation-signature.d.ts +43 -0
  94. package/es/contract/delegation-signature.mjs +45 -0
  95. package/es/contract/delegation-signature.mjs.map +1 -0
  96. package/es/contract/ga.d.ts +23 -7
  97. package/es/contract/ga.mjs +52 -27
  98. package/es/contract/ga.mjs.map +1 -1
  99. package/es/index-browser.d.ts +4 -3
  100. package/es/index-browser.mjs +6 -20
  101. package/es/index-browser.mjs.map +1 -1
  102. package/es/oracle.d.ts +12 -17
  103. package/es/oracle.mjs +28 -48
  104. package/es/oracle.mjs.map +1 -1
  105. package/es/spend.d.ts +19 -27
  106. package/es/spend.mjs +20 -43
  107. package/es/spend.mjs.map +1 -1
  108. package/es/tx/builder/SchemaTypes.d.ts +37 -0
  109. package/es/tx/builder/SchemaTypes.mjs +2 -0
  110. package/es/tx/builder/SchemaTypes.mjs.map +1 -0
  111. package/es/tx/builder/constants.d.ts +4 -2
  112. package/es/tx/builder/constants.mjs +2 -0
  113. package/es/tx/builder/constants.mjs.map +1 -1
  114. package/es/tx/builder/field-types/abi-version.d.ts +11 -2
  115. package/es/tx/builder/field-types/abi-version.mjs +24 -4
  116. package/es/tx/builder/field-types/abi-version.mjs.map +1 -1
  117. package/es/tx/builder/field-types/address.mjs.map +1 -1
  118. package/es/tx/builder/field-types/array.d.ts +1 -1
  119. package/es/tx/builder/field-types/array.mjs.map +1 -1
  120. package/es/tx/builder/field-types/boolean.mjs.map +1 -1
  121. package/es/tx/builder/field-types/coin-amount.d.ts +3 -4
  122. package/es/tx/builder/field-types/coin-amount.mjs +4 -5
  123. package/es/tx/builder/field-types/coin-amount.mjs.map +1 -1
  124. package/es/tx/builder/field-types/ct-version.d.ts +22 -3
  125. package/es/tx/builder/field-types/ct-version.mjs +32 -4
  126. package/es/tx/builder/field-types/ct-version.mjs.map +1 -1
  127. package/es/tx/builder/field-types/deposit.d.ts +2 -1
  128. package/es/tx/builder/field-types/deposit.mjs +3 -2
  129. package/es/tx/builder/field-types/deposit.mjs.map +1 -1
  130. package/es/tx/builder/field-types/encoded.d.ts +1 -1
  131. package/es/tx/builder/field-types/encoded.mjs.map +1 -1
  132. package/es/tx/builder/field-types/entry.mjs +3 -0
  133. package/es/tx/builder/field-types/entry.mjs.map +1 -1
  134. package/es/tx/builder/field-types/enumeration.mjs.map +1 -1
  135. package/es/tx/builder/field-types/fee.d.ts +3 -1
  136. package/es/tx/builder/field-types/fee.mjs +5 -1
  137. package/es/tx/builder/field-types/fee.mjs.map +1 -1
  138. package/es/tx/builder/field-types/field.mjs.map +1 -1
  139. package/es/tx/builder/field-types/gas-limit.d.ts +3 -2
  140. package/es/tx/builder/field-types/gas-limit.mjs +4 -2
  141. package/es/tx/builder/field-types/gas-limit.mjs.map +1 -1
  142. package/es/tx/builder/field-types/gas-price.d.ts +3 -1
  143. package/es/tx/builder/field-types/gas-price.mjs.map +1 -1
  144. package/es/tx/builder/field-types/index.d.ts +52 -13
  145. package/es/tx/builder/field-types/index.mjs +10 -2
  146. package/es/tx/builder/field-types/index.mjs.map +1 -1
  147. package/es/tx/builder/field-types/map.d.ts +13 -0
  148. package/es/tx/builder/field-types/map.mjs +49 -0
  149. package/es/tx/builder/field-types/map.mjs.map +1 -0
  150. package/es/tx/builder/field-types/mptree.d.ts +7 -2
  151. package/es/tx/builder/field-types/mptree.mjs +5 -7
  152. package/es/tx/builder/field-types/mptree.mjs.map +1 -1
  153. package/es/tx/builder/field-types/name-fee.d.ts +1 -1
  154. package/es/tx/builder/field-types/name-fee.mjs +2 -2
  155. package/es/tx/builder/field-types/name-fee.mjs.map +1 -1
  156. package/es/tx/builder/field-types/name-id.mjs.map +1 -1
  157. package/es/tx/builder/field-types/name.mjs.map +1 -1
  158. package/es/tx/builder/field-types/nonce.d.ts +14 -0
  159. package/es/tx/builder/field-types/nonce.mjs +29 -0
  160. package/es/tx/builder/field-types/nonce.mjs.map +1 -0
  161. package/es/tx/builder/field-types/pointers.mjs.map +1 -1
  162. package/es/tx/builder/field-types/raw.mjs.map +1 -1
  163. package/es/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  164. package/es/tx/builder/field-types/short-u-int-const.mjs +12 -8
  165. package/es/tx/builder/field-types/short-u-int-const.mjs.map +1 -1
  166. package/es/tx/builder/field-types/short-u-int.mjs.map +1 -1
  167. package/es/tx/builder/field-types/string.mjs.map +1 -1
  168. package/es/tx/builder/field-types/ttl.d.ts +11 -0
  169. package/es/tx/builder/field-types/ttl.mjs +21 -0
  170. package/es/tx/builder/field-types/ttl.mjs.map +1 -0
  171. package/es/tx/builder/field-types/u-int.mjs.map +1 -1
  172. package/es/tx/builder/field-types/wrapped.d.ts +14 -0
  173. package/es/tx/builder/field-types/wrapped.mjs +22 -0
  174. package/es/tx/builder/field-types/wrapped.mjs.map +1 -0
  175. package/es/tx/builder/helpers.mjs.map +1 -1
  176. package/es/tx/builder/index.d.ts +20 -20
  177. package/es/tx/builder/index.mjs +54 -64
  178. package/es/tx/builder/index.mjs.map +1 -1
  179. package/es/tx/builder/schema.d.ts +2735 -2865
  180. package/es/tx/builder/schema.generated.d.ts +2011 -0
  181. package/es/tx/builder/schema.generated.mjs +2 -0
  182. package/es/tx/builder/schema.generated.mjs.map +1 -0
  183. package/es/tx/builder/schema.mjs +459 -155
  184. package/es/tx/builder/schema.mjs.map +1 -1
  185. package/es/tx/execution-cost.d.ts +35 -0
  186. package/es/tx/execution-cost.mjs +123 -0
  187. package/es/tx/execution-cost.mjs.map +1 -0
  188. package/es/tx/transaction-signer.d.ts +6 -0
  189. package/es/tx/transaction-signer.mjs +27 -0
  190. package/es/tx/transaction-signer.mjs.map +1 -0
  191. package/es/tx/validator.mjs +60 -109
  192. package/es/tx/validator.mjs.map +1 -1
  193. package/es/utils/amount-formatter.mjs +0 -16
  194. package/es/utils/amount-formatter.mjs.map +1 -1
  195. package/es/utils/autorest.d.ts +3 -2
  196. package/es/utils/autorest.mjs +43 -11
  197. package/es/utils/autorest.mjs.map +1 -1
  198. package/es/utils/bytes.mjs +0 -16
  199. package/es/utils/bytes.mjs.map +1 -1
  200. package/es/utils/crypto.mjs +0 -16
  201. package/es/utils/crypto.mjs.map +1 -1
  202. package/es/utils/encoder.mjs.map +1 -1
  203. package/es/utils/errors.d.ts +14 -31
  204. package/es/utils/errors.mjs +2 -32
  205. package/es/utils/errors.mjs.map +1 -1
  206. package/es/utils/hd-wallet.mjs.map +1 -1
  207. package/es/utils/json-big.mjs.map +1 -1
  208. package/es/utils/keystore.mjs.map +1 -1
  209. package/es/utils/other.d.ts +1 -1
  210. package/es/utils/other.mjs.map +1 -1
  211. package/es/utils/semver-satisfies.mjs.map +1 -1
  212. package/es/utils/string.mjs +0 -17
  213. package/es/utils/string.mjs.map +1 -1
  214. package/package.json +34 -30
  215. package/src/AeSdkMethods.ts +11 -16
  216. package/src/AeSdkWallet.ts +1 -1
  217. package/src/Node.ts +17 -6
  218. package/src/account/Base.ts +11 -22
  219. package/src/account/Generalized.ts +8 -23
  220. package/src/account/Memory.ts +14 -21
  221. package/src/aens.ts +31 -47
  222. package/src/aepp-wallet-communication/connection/Browser.ts +0 -17
  223. package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +0 -17
  224. package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +0 -17
  225. package/src/aepp-wallet-communication/connection-proxy.ts +0 -17
  226. package/src/aepp-wallet-communication/rpc/types.ts +6 -2
  227. package/src/aepp-wallet-communication/wallet-detector.ts +0 -17
  228. package/src/apis/compiler/compiler.ts +3 -27
  229. package/src/apis/compiler/models/index.ts +3 -2
  230. package/src/apis/compiler/models/mappers.ts +15 -2
  231. package/src/apis/node/models/index.ts +16 -15
  232. package/src/apis/node/models/mappers.ts +2 -1
  233. package/src/apis/node/models/parameters.ts +2 -2
  234. package/src/apis/node/node.ts +3 -27
  235. package/src/chain.ts +28 -27
  236. package/src/channel/Base.ts +33 -33
  237. package/src/channel/Contract.ts +8 -23
  238. package/src/channel/Spend.ts +2 -17
  239. package/src/channel/handlers.ts +5 -18
  240. package/src/channel/internal.ts +40 -22
  241. package/src/contract/Contract.ts +133 -163
  242. package/src/contract/compiler/Base.ts +7 -14
  243. package/src/contract/compiler/Cli.ts +5 -11
  244. package/src/contract/compiler/Http.ts +6 -25
  245. package/src/contract/delegation-signature.ts +56 -0
  246. package/src/contract/ga.ts +53 -32
  247. package/src/index-browser.ts +12 -20
  248. package/src/oracle.ts +46 -56
  249. package/src/spend.ts +33 -67
  250. package/src/tx/builder/SchemaTypes.ts +79 -0
  251. package/src/tx/builder/constants.ts +2 -0
  252. package/src/tx/builder/field-types/abi-version.ts +29 -6
  253. package/src/tx/builder/field-types/array.ts +1 -1
  254. package/src/tx/builder/field-types/coin-amount.ts +6 -4
  255. package/src/tx/builder/field-types/ct-version.ts +37 -4
  256. package/src/tx/builder/field-types/deposit.ts +3 -1
  257. package/src/tx/builder/field-types/encoded.ts +1 -1
  258. package/src/tx/builder/field-types/entry.ts +8 -3
  259. package/src/tx/builder/field-types/fee.ts +6 -4
  260. package/src/tx/builder/field-types/gas-limit.ts +2 -2
  261. package/src/tx/builder/field-types/index.ts +15 -1
  262. package/src/tx/builder/field-types/map.ts +45 -0
  263. package/src/tx/builder/field-types/mptree.ts +4 -3
  264. package/src/tx/builder/field-types/name-fee.ts +2 -1
  265. package/src/tx/builder/field-types/nonce.ts +40 -0
  266. package/src/tx/builder/field-types/short-u-int-const.ts +18 -8
  267. package/src/tx/builder/field-types/ttl.ts +24 -0
  268. package/src/tx/builder/field-types/wrapped.ts +32 -0
  269. package/src/tx/builder/index.ts +57 -71
  270. package/src/tx/builder/schema.generated.ts +2013 -0
  271. package/src/tx/builder/schema.ts +544 -624
  272. package/src/tx/execution-cost.ts +146 -0
  273. package/src/tx/transaction-signer.ts +27 -0
  274. package/src/tx/validator.ts +60 -91
  275. package/src/utils/amount-formatter.ts +0 -16
  276. package/src/utils/autorest.ts +52 -11
  277. package/src/utils/bytes.ts +0 -16
  278. package/src/utils/crypto.ts +0 -16
  279. package/src/utils/errors.ts +15 -44
  280. package/src/utils/string.ts +0 -17
  281. package/types-legacy/ts4.2/AeSdkMethods.d.ts +11 -12
  282. package/types-legacy/ts4.2/Node.d.ts +5 -1
  283. package/types-legacy/ts4.2/account/Base.d.ts +11 -6
  284. package/types-legacy/ts4.2/account/Memory.d.ts +2 -1
  285. package/types-legacy/ts4.2/aens.d.ts +12 -14
  286. package/types-legacy/ts4.2/aepp-wallet-communication/rpc/types.d.ts +6 -2
  287. package/types-legacy/ts4.2/apis/compiler/compiler.d.ts +1 -1
  288. package/types-legacy/ts4.2/apis/compiler/models/index.d.ts +3 -2
  289. package/types-legacy/ts4.2/apis/compiler/models/mappers.d.ts +1 -1
  290. package/types-legacy/ts4.2/apis/node/models/index.d.ts +15 -15
  291. package/types-legacy/ts4.2/apis/node/models/mappers.d.ts +1 -1
  292. package/types-legacy/ts4.2/apis/node/models/parameters.d.ts +2 -2
  293. package/types-legacy/ts4.2/chain.d.ts +8 -8
  294. package/types-legacy/ts4.2/channel/Base.d.ts +25 -12
  295. package/types-legacy/ts4.2/channel/Spend.d.ts +4 -2
  296. package/types-legacy/ts4.2/channel/internal.d.ts +22 -2
  297. package/types-legacy/ts4.2/contract/Contract.d.ts +29 -84
  298. package/types-legacy/ts4.2/contract/compiler/Base.d.ts +7 -14
  299. package/types-legacy/ts4.2/contract/delegation-signature.d.ts +43 -0
  300. package/types-legacy/ts4.2/contract/ga.d.ts +23 -7
  301. package/types-legacy/ts4.2/index-browser.d.ts +4 -3
  302. package/types-legacy/ts4.2/oracle.d.ts +12 -17
  303. package/types-legacy/ts4.2/spend.d.ts +19 -27
  304. package/types-legacy/ts4.2/tx/builder/SchemaTypes.d.ts +37 -0
  305. package/types-legacy/ts4.2/tx/builder/constants.d.ts +4 -2
  306. package/types-legacy/ts4.2/tx/builder/field-types/abi-version.d.ts +11 -2
  307. package/types-legacy/ts4.2/tx/builder/field-types/array.d.ts +1 -1
  308. package/types-legacy/ts4.2/tx/builder/field-types/coin-amount.d.ts +3 -4
  309. package/types-legacy/ts4.2/tx/builder/field-types/ct-version.d.ts +33 -3
  310. package/types-legacy/ts4.2/tx/builder/field-types/deposit.d.ts +2 -1
  311. package/types-legacy/ts4.2/tx/builder/field-types/encoded.d.ts +1 -1
  312. package/types-legacy/ts4.2/tx/builder/field-types/fee.d.ts +3 -1
  313. package/types-legacy/ts4.2/tx/builder/field-types/gas-limit.d.ts +3 -2
  314. package/types-legacy/ts4.2/tx/builder/field-types/gas-price.d.ts +3 -1
  315. package/types-legacy/ts4.2/tx/builder/field-types/index.d.ts +52 -13
  316. package/types-legacy/ts4.2/tx/builder/field-types/map.d.ts +13 -0
  317. package/types-legacy/ts4.2/tx/builder/field-types/mptree.d.ts +7 -2
  318. package/types-legacy/ts4.2/tx/builder/field-types/name-fee.d.ts +1 -1
  319. package/types-legacy/ts4.2/tx/builder/field-types/nonce.d.ts +14 -0
  320. package/types-legacy/ts4.2/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  321. package/types-legacy/ts4.2/tx/builder/field-types/ttl.d.ts +11 -0
  322. package/types-legacy/ts4.2/tx/builder/field-types/wrapped.d.ts +14 -0
  323. package/types-legacy/ts4.2/tx/builder/index.d.ts +23 -20
  324. package/types-legacy/ts4.2/tx/builder/schema.d.ts +2962 -4629
  325. package/types-legacy/ts4.2/tx/builder/schema.generated.d.ts +2011 -0
  326. package/types-legacy/ts4.2/tx/execution-cost.d.ts +35 -0
  327. package/types-legacy/ts4.2/tx/transaction-signer.d.ts +6 -0
  328. package/types-legacy/ts4.2/utils/autorest.d.ts +3 -2
  329. package/types-legacy/ts4.2/utils/errors.d.ts +14 -31
  330. package/types-legacy/ts4.2/utils/other.d.ts +1 -1
  331. package/types-legacy/ts4.5/AeSdkMethods.d.ts +11 -12
  332. package/types-legacy/ts4.5/Node.d.ts +5 -1
  333. package/types-legacy/ts4.5/account/Base.d.ts +11 -6
  334. package/types-legacy/ts4.5/account/Memory.d.ts +2 -1
  335. package/types-legacy/ts4.5/aens.d.ts +12 -14
  336. package/types-legacy/ts4.5/aepp-wallet-communication/rpc/types.d.ts +6 -2
  337. package/types-legacy/ts4.5/apis/compiler/compiler.d.ts +1 -1
  338. package/types-legacy/ts4.5/apis/compiler/models/index.d.ts +3 -2
  339. package/types-legacy/ts4.5/apis/compiler/models/mappers.d.ts +1 -1
  340. package/types-legacy/ts4.5/apis/node/models/index.d.ts +15 -15
  341. package/types-legacy/ts4.5/apis/node/models/mappers.d.ts +1 -1
  342. package/types-legacy/ts4.5/apis/node/models/parameters.d.ts +2 -2
  343. package/types-legacy/ts4.5/chain.d.ts +8 -8
  344. package/types-legacy/ts4.5/channel/Base.d.ts +25 -12
  345. package/types-legacy/ts4.5/channel/Spend.d.ts +4 -2
  346. package/types-legacy/ts4.5/channel/internal.d.ts +22 -2
  347. package/types-legacy/ts4.5/contract/Contract.d.ts +29 -84
  348. package/types-legacy/ts4.5/contract/compiler/Base.d.ts +7 -14
  349. package/types-legacy/ts4.5/contract/delegation-signature.d.ts +43 -0
  350. package/types-legacy/ts4.5/contract/ga.d.ts +23 -7
  351. package/types-legacy/ts4.5/index-browser.d.ts +4 -3
  352. package/types-legacy/ts4.5/oracle.d.ts +12 -17
  353. package/types-legacy/ts4.5/spend.d.ts +19 -27
  354. package/types-legacy/ts4.5/tx/builder/SchemaTypes.d.ts +37 -0
  355. package/types-legacy/ts4.5/tx/builder/constants.d.ts +4 -2
  356. package/types-legacy/ts4.5/tx/builder/field-types/abi-version.d.ts +11 -2
  357. package/types-legacy/ts4.5/tx/builder/field-types/array.d.ts +1 -1
  358. package/types-legacy/ts4.5/tx/builder/field-types/coin-amount.d.ts +3 -4
  359. package/types-legacy/ts4.5/tx/builder/field-types/ct-version.d.ts +33 -3
  360. package/types-legacy/ts4.5/tx/builder/field-types/deposit.d.ts +2 -1
  361. package/types-legacy/ts4.5/tx/builder/field-types/encoded.d.ts +1 -1
  362. package/types-legacy/ts4.5/tx/builder/field-types/fee.d.ts +3 -1
  363. package/types-legacy/ts4.5/tx/builder/field-types/gas-limit.d.ts +3 -2
  364. package/types-legacy/ts4.5/tx/builder/field-types/gas-price.d.ts +3 -1
  365. package/types-legacy/ts4.5/tx/builder/field-types/index.d.ts +52 -13
  366. package/types-legacy/ts4.5/tx/builder/field-types/map.d.ts +13 -0
  367. package/types-legacy/ts4.5/tx/builder/field-types/mptree.d.ts +7 -2
  368. package/types-legacy/ts4.5/tx/builder/field-types/name-fee.d.ts +1 -1
  369. package/types-legacy/ts4.5/tx/builder/field-types/nonce.d.ts +14 -0
  370. package/types-legacy/ts4.5/tx/builder/field-types/short-u-int-const.d.ts +4 -2
  371. package/types-legacy/ts4.5/tx/builder/field-types/ttl.d.ts +11 -0
  372. package/types-legacy/ts4.5/tx/builder/field-types/wrapped.d.ts +14 -0
  373. package/types-legacy/ts4.5/tx/builder/index.d.ts +23 -20
  374. package/types-legacy/ts4.5/tx/builder/schema.d.ts +2962 -4629
  375. package/types-legacy/ts4.5/tx/builder/schema.generated.d.ts +2011 -0
  376. package/types-legacy/ts4.5/tx/execution-cost.d.ts +35 -0
  377. package/types-legacy/ts4.5/tx/transaction-signer.d.ts +6 -0
  378. package/types-legacy/ts4.5/utils/autorest.d.ts +3 -2
  379. package/types-legacy/ts4.5/utils/errors.d.ts +14 -31
  380. package/types-legacy/ts4.5/utils/other.d.ts +1 -1
  381. package/es/tx/index.d.ts +0 -19
  382. package/es/tx/index.mjs +0 -115
  383. package/es/tx/index.mjs.map +0 -1
  384. package/src/apis/compiler/code-model-v4.yaml +0 -2442
  385. package/src/apis/node/code-model-v4.yaml +0 -10080
  386. package/src/tx/index.ts +0 -129
  387. package/types-legacy/ts4.2/tx/index.d.ts +0 -19
  388. package/types-legacy/ts4.5/tx/index.d.ts +0 -19
@@ -0,0 +1,56 @@
1
+ import { decode, Encoded } from '../utils/encoder';
2
+ import { AensName } from '../tx/builder/constants';
3
+ import AccountBase from '../account/Base';
4
+ import { concatBuffers } from '../utils/other';
5
+ import { isNameValid, produceNameId } from '../tx/builder/helpers';
6
+ import Node from '../Node';
7
+
8
+ /**
9
+ * Helper to generate a signature to delegate
10
+ * - pre-claim/claim/transfer/revoke of a name to a contract.
11
+ * - register/extend/respond of an Oracle to a contract.
12
+ * @category contract
13
+ * @param contractAddress - Address of contract to delegate access
14
+ * @param ids - The list of id's to prepend
15
+ * @param options - Options
16
+ * @param options.omitAddress - Prepend delegation signature with an account address
17
+ * @param options.onAccount - Account to use
18
+ * @param options.onNode - Node to use
19
+ * @returns Signature
20
+ * @example
21
+ * ```js
22
+ * const aeSdk = new AeSdk({ ... })
23
+ * const contractAddress = 'ct_asd2ks...'
24
+ * const aensName = 'example.chain'
25
+ * const onAccount = new MemoryAccount(...) // Sign with a specific account
26
+ * // Preclaim signature
27
+ * const preclaimSig = await aeSdk.createDelegationSignature(contractAddress, [], { onAccount })
28
+ * // Claim, transfer and revoke signature
29
+ * const aensDelegationSig = await aeSdk
30
+ * .createDelegationSignature(contractAddress, [aensName], { onAccount })
31
+ *
32
+ * const oracleQueryId = 'oq_...'
33
+ * const onAccount = new MemoryAccount(...) // Sign with a specific account
34
+ * // Oracle register and extend signature
35
+ * const oracleDelegationSig = await aeSdk
36
+ * .createDelegationSignature(contractAddress, [], { onAccount })
37
+ * // Oracle respond signature
38
+ * const respondSig = await aeSdk
39
+ * .createDelegationSignature(contractAddress, [oracleQueryId], { onAccount, omitAddress: true })
40
+ * ```
41
+ */
42
+ export default async function createDelegationSignature(
43
+ contractAddress: Encoded.ContractAddress,
44
+ ids: Array<Encoded.Any | AensName>,
45
+ options: { omitAddress?: boolean; onAccount: AccountBase; onNode: Node },
46
+ ): Promise<Uint8Array> {
47
+ return options.onAccount.sign(
48
+ concatBuffers([
49
+ Buffer.from(await options.onNode.getNetworkId()),
50
+ ...options.omitAddress === true ? [] : [decode(options.onAccount.address)],
51
+ ...ids.map((e) => (isNameValid(e) ? produceNameId(e) : e)).map((e) => decode(e)),
52
+ decode(contractAddress),
53
+ ]),
54
+ options,
55
+ );
56
+ }
@@ -1,36 +1,21 @@
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
  * Generalized Account module - routines to use generalized account
20
3
  */
21
4
 
22
- import { Tag } from '../tx/builder/constants';
23
- import { buildContractIdByContractTx } from '../tx/builder';
24
- import { _buildTx, BuildTxOptions } from '../tx';
5
+ import { ConsensusProtocolVersion, Int, Tag } from '../tx/builder/constants';
6
+ import {
7
+ buildContractIdByContractTx, buildTx, buildTxAsync, BuildTxOptions, unpackTx,
8
+ } from '../tx/builder';
25
9
  import { hash } from '../utils/crypto';
26
- import { decode, Encoded } from '../utils/encoder';
27
- import { IllegalArgumentError } from '../utils/errors';
10
+ import {
11
+ decode, encode, Encoded, Encoding,
12
+ } from '../utils/encoder';
13
+ import { ArgumentError, IllegalArgumentError } from '../utils/errors';
28
14
  import { concatBuffers } from '../utils/other';
29
15
  import AccountBase from '../account/Base';
30
16
  import Contract from './Contract';
31
- import { send, SendOptions } from '../spend';
32
17
  import Node from '../Node';
33
- import { getAccount } from '../chain';
18
+ import { sendTransaction, SendTransactionOptions, getAccount } from '../chain';
34
19
  import CompilerBase from './compiler/Base';
35
20
 
36
21
  /**
@@ -63,8 +48,9 @@ export async function createGeneralizedAccount(
63
48
  onAccount, onCompiler, onNode, bytecode, aci, sourceCodePath, sourceCode, fileSystem,
64
49
  });
65
50
 
66
- const tx = await _buildTx(Tag.GaAttachTx, {
51
+ const tx = await buildTxAsync({
67
52
  ...options,
53
+ tag: Tag.GaAttachTx,
68
54
  onNode,
69
55
  code: await contract.$compile(),
70
56
  gasLimit: options.gasLimit ?? await contract._estimateGas('init', args, options),
@@ -73,7 +59,7 @@ export async function createGeneralizedAccount(
73
59
  authFun: hash(authFnName),
74
60
  });
75
61
  const contractId = buildContractIdByContractTx(tx);
76
- const { hash: transaction, rawTx } = await send(tx, {
62
+ const { hash: transaction, rawTx } = await sendTransaction(tx, {
77
63
  onNode, onAccount, onCompiler, ...options,
78
64
  });
79
65
 
@@ -87,7 +73,7 @@ export async function createGeneralizedAccount(
87
73
 
88
74
  interface CreateGeneralizedAccountOptions extends
89
75
  BuildTxOptions<Tag.GaAttachTx, 'authFun' | 'callData' | 'code' | 'ownerId' | 'gasLimit'>,
90
- SendOptions,
76
+ SendTransactionOptions,
91
77
  Pick<
92
78
  Parameters<typeof Contract.initialize>[0],
93
79
  'bytecode' | 'aci' | 'sourceCodePath' | 'sourceCode' | 'fileSystem'
@@ -99,18 +85,53 @@ interface CreateGeneralizedAccountOptions extends
99
85
  }
100
86
 
101
87
  /**
102
- * Build a transaction hash the same as `Auth.tx_hash`
88
+ * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx payload
103
89
  * @category contract
104
90
  * @param transaction - tx-encoded transaction
105
91
  * @param options - Options
92
+ * @param options.fee - GaMetaTx fee, required in Ceres
93
+ * @param options.gasPrice - GaMetaTx gasPrice, required in Ceres
106
94
  * @param options.onNode - Node to use
107
95
  * @returns Transaction hash
108
96
  */
109
97
  export async function buildAuthTxHash(
98
+ transaction: Encoded.Transaction,
99
+ { fee, gasPrice, onNode }: { fee?: Int; gasPrice?: Int; onNode: Node },
100
+ ): Promise<Buffer> {
101
+ const { nodeNetworkId, consensusProtocolVersion } = await onNode.getNodeInfo();
102
+ let payload = hash(concatBuffers([Buffer.from(nodeNetworkId), decode(transaction)]));
103
+ if (consensusProtocolVersion === ConsensusProtocolVersion.Ceres) {
104
+ if (fee == null) throw new ArgumentError('fee', 'provided (in Ceres)', fee);
105
+ if (gasPrice == null) throw new ArgumentError('gasPrice', 'provided (in Ceres)', gasPrice);
106
+ payload = hash(decode(buildTx({
107
+ tag: Tag.GaMetaTxAuthData,
108
+ fee,
109
+ gasPrice,
110
+ txHash: encode(payload, Encoding.TxHash),
111
+ })));
112
+ }
113
+ return payload;
114
+ }
115
+
116
+ /**
117
+ * Build a transaction hash the same as `Auth.tx_hash` by GaMetaTx
118
+ * @category contract
119
+ * @param transaction - tx-encoded signed GaMeta transaction
120
+ * @param options - Options
121
+ * @param options.onNode - Node to use
122
+ * @returns Transaction hash
123
+ */
124
+ export async function buildAuthTxHashByGaMetaTx(
110
125
  transaction: Encoded.Transaction,
111
126
  { onNode }: { onNode: Node },
112
- ): Promise<Uint8Array> {
113
- return new Uint8Array(hash(
114
- concatBuffers([Buffer.from(await onNode.getNetworkId()), decode(transaction)]),
115
- ));
127
+ ): Promise<Buffer> {
128
+ const txParams = unpackTx(transaction, Tag.SignedTx);
129
+ if (txParams.encodedTx.tag !== Tag.GaMetaTx) {
130
+ throw new ArgumentError('transaction', 'to include GaMetaTx', Tag[txParams.encodedTx.tag]);
131
+ }
132
+ return buildAuthTxHash(buildTx(txParams.encodedTx.tx.encodedTx), {
133
+ fee: txParams.encodedTx.fee,
134
+ gasPrice: txParams.encodedTx.gasPrice,
135
+ onNode,
136
+ });
116
137
  }
@@ -1,29 +1,21 @@
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
+ // TODO: avoid `export * from`
18
2
  export * from './chain';
19
3
  export * from './utils/crypto';
20
4
  export * from './utils/keystore';
21
5
  export * from './utils/bytes';
22
- export * from './tx';
23
- export * from './tx/builder';
6
+ export {
7
+ buildTx, buildTxAsync, buildTxHash, unpackTx, buildContractIdByContractTx,
8
+ } from './tx/builder';
24
9
  export * from './tx/builder/helpers';
25
10
  export * from './tx/builder/constants';
26
- export * from './tx/builder/schema';
11
+ // TODO: move to constants
12
+ export {
13
+ ORACLE_TTL_TYPES, ORACLE_TTL, QUERY_TTL, RESPONSE_TTL, DRY_RUN_ACCOUNT, CallReturnType,
14
+ } from './tx/builder/schema';
15
+ export {
16
+ getExecutionCost, getExecutionCostBySignedTx, getExecutionCostUsingNode,
17
+ } from './tx/execution-cost';
18
+ export { default as getTransactionSignerAddress } from './tx/transaction-signer';
27
19
  export * from './utils/amount-formatter';
28
20
  export * from './utils/hd-wallet';
29
21
  export { encode, decode, Encoding } from './utils/encoder';
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,16 +150,19 @@ 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,
@@ -184,12 +170,12 @@ export async function postQueryToOracle(
184
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
  }
@@ -111,23 +78,23 @@ export async function transferFunds(
111
78
  );
112
79
  const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);
113
80
  const { fee } = unpackTx(
114
- await _buildTx(Tag.SpendTx, {
115
- ...options, senderId, recipientId, amount: desiredAmount,
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
  }