@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/es/index.d.ts CHANGED
@@ -1,38 +1,4 @@
1
- export * from './chain';
2
- export * from './utils/crypto';
3
- export * from './utils/keystore';
4
- export * from './utils/bytes';
5
- export * from './tx';
6
- export * from './tx/builder';
7
- export * from './tx/builder/helpers';
8
- export * from './tx/builder/constants';
9
- export * from './tx/builder/schema';
10
- export * from './utils/amount-formatter';
11
- export * from './utils/hd-wallet';
12
- export { encode, decode, Encoding } from './utils/encoder';
13
- export * from './aens';
14
- export { default as Contract } from './contract/Contract';
15
- export type { ContractMethodsBase } from './contract/Contract';
16
- export * from './oracle';
17
- export * from './spend';
18
- export * from './contract/ga';
19
- export { default as AeSdkMethods } from './AeSdkMethods';
20
- export { default as AeSdkBase } from './AeSdkBase';
21
- export { default as AeSdk } from './AeSdk';
22
- export { default as AeSdkAepp } from './AeSdkAepp';
23
- export { default as AeSdkWallet } from './AeSdkWallet';
24
- export { default as Node } from './Node';
25
- export { default as verifyTransaction } from './tx/validator';
26
- export { default as AccountBase } from './account/Base';
27
- export { default as MemoryAccount } from './account/Memory';
28
- export { default as AccountGeneralized } from './account/Generalized';
29
- export { default as AccountLedger } from './account/Ledger';
30
- export { default as AccountLedgerFactory } from './account/LedgerFactory';
31
- export { default as CompilerHttp } from './contract/CompilerHttp';
32
- export { default as Channel } from './channel/Contract';
33
- export { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';
34
- export * from './aepp-wallet-communication/schema';
35
- export { default as walletDetector } from './aepp-wallet-communication/wallet-detector';
36
- export { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';
37
- export { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';
38
- export * from './utils/errors';
1
+ export * from './index-browser';
2
+ export { default as CompilerCli } from './contract/compiler/Cli';
3
+ export { default as getFileSystem } from './contract/compiler/getFileSystem';
4
+ export { default as CompilerHttpNode } from './contract/compiler/HttpNode';
package/es/index.mjs CHANGED
@@ -1,54 +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
- */
17
- export * from "./chain.mjs";
18
- export * from "./utils/crypto.mjs";
19
- export * from "./utils/keystore.mjs";
20
- export * from "./utils/bytes.mjs";
21
- export * from "./tx/index.mjs";
22
- export * from "./tx/builder/index.mjs";
23
- export * from "./tx/builder/helpers.mjs";
24
- export * from "./tx/builder/constants.mjs";
25
- export * from "./tx/builder/schema.mjs";
26
- export * from "./utils/amount-formatter.mjs";
27
- export * from "./utils/hd-wallet.mjs";
28
- export { encode, decode, Encoding } from "./utils/encoder.mjs";
29
- export * from "./aens.mjs";
30
- export { default as Contract } from "./contract/Contract.mjs";
31
- export * from "./oracle.mjs";
32
- export * from "./spend.mjs";
33
- export * from "./contract/ga.mjs";
34
- export { default as AeSdkMethods } from "./AeSdkMethods.mjs";
35
- export { default as AeSdkBase } from "./AeSdkBase.mjs";
36
- export { default as AeSdk } from "./AeSdk.mjs";
37
- export { default as AeSdkAepp } from "./AeSdkAepp.mjs";
38
- export { default as AeSdkWallet } from "./AeSdkWallet.mjs";
39
- export { default as Node } from "./Node.mjs";
40
- export { default as verifyTransaction } from "./tx/validator.mjs";
41
- export { default as AccountBase } from "./account/Base.mjs";
42
- export { default as MemoryAccount } from "./account/Memory.mjs";
43
- export { default as AccountGeneralized } from "./account/Generalized.mjs";
44
- export { default as AccountLedger } from "./account/Ledger.mjs";
45
- export { default as AccountLedgerFactory } from "./account/LedgerFactory.mjs";
46
- export { default as CompilerHttp } from "./contract/CompilerHttp.mjs";
47
- export { default as Channel } from "./channel/Contract.mjs";
48
- export { default as connectionProxy } from "./aepp-wallet-communication/connection-proxy.mjs";
49
- export * from "./aepp-wallet-communication/schema.mjs";
50
- export { default as walletDetector } from "./aepp-wallet-communication/wallet-detector.mjs";
51
- export { default as BrowserRuntimeConnection } from "./aepp-wallet-communication/connection/BrowserRuntime.mjs";
52
- export { default as BrowserWindowMessageConnection } from "./aepp-wallet-communication/connection/BrowserWindowMessage.mjs";
53
- export * from "./utils/errors.mjs";
1
+ export * from "./index-browser.mjs";
2
+ export { default as CompilerCli } from "./contract/compiler/Cli.mjs";
3
+ export { default as getFileSystem } from "./contract/compiler/getFileSystem.mjs";
4
+ export { default as CompilerHttpNode } from "./contract/compiler/HttpNode.mjs";
54
5
  //# sourceMappingURL=index.mjs.map
package/es/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["encode","decode","Encoding","default","Contract","AeSdkMethods","AeSdkBase","AeSdk","AeSdkAepp","AeSdkWallet","Node","verifyTransaction","AccountBase","MemoryAccount","AccountGeneralized","AccountLedger","AccountLedgerFactory","CompilerHttp","Channel","connectionProxy","walletDetector","BrowserRuntimeConnection","BrowserWindowMessageConnection"],"sources":["../src/index.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\nexport * from './chain';\nexport * from './utils/crypto';\nexport * from './utils/keystore';\nexport * from './utils/bytes';\nexport * from './tx';\nexport * from './tx/builder';\nexport * from './tx/builder/helpers';\nexport * from './tx/builder/constants';\nexport * from './tx/builder/schema';\nexport * from './utils/amount-formatter';\nexport * from './utils/hd-wallet';\nexport { encode, decode, Encoding } from './utils/encoder';\nexport * from './aens';\nexport { default as Contract } from './contract/Contract';\nexport type { ContractMethodsBase } from './contract/Contract';\nexport * from './oracle';\nexport * from './spend';\nexport * from './contract/ga';\n\nexport { default as AeSdkMethods } from './AeSdkMethods';\nexport { default as AeSdkBase } from './AeSdkBase';\nexport { default as AeSdk } from './AeSdk';\nexport { default as AeSdkAepp } from './AeSdkAepp';\nexport { default as AeSdkWallet } from './AeSdkWallet';\nexport { default as Node } from './Node';\nexport { default as verifyTransaction } from './tx/validator';\nexport { default as AccountBase } from './account/Base';\nexport { default as MemoryAccount } from './account/Memory';\nexport { default as AccountGeneralized } from './account/Generalized';\nexport { default as AccountLedger } from './account/Ledger';\nexport { default as AccountLedgerFactory } from './account/LedgerFactory';\nexport { default as CompilerHttp } from './contract/CompilerHttp';\nexport { default as Channel } from './channel/Contract';\n\nexport { default as connectionProxy } from './aepp-wallet-communication/connection-proxy';\nexport * from './aepp-wallet-communication/schema';\nexport { default as walletDetector } from './aepp-wallet-communication/wallet-detector';\nexport { default as BrowserRuntimeConnection } from './aepp-wallet-communication/connection/BrowserRuntime';\nexport { default as BrowserWindowMessageConnection } from './aepp-wallet-communication/connection/BrowserWindowMessage';\nexport * from './utils/errors';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SA4BSA,MAAM,EAAEC,MAAM,EAAEC,QAAQ;AAAA;AAAA,SAExBC,OAAO,IAAIC,QAAQ;AAAA;AAAA;AAAA;AAAA,SAMnBD,OAAO,IAAIE,YAAY;AAAA,SACvBF,OAAO,IAAIG,SAAS;AAAA,SACpBH,OAAO,IAAII,KAAK;AAAA,SAChBJ,OAAO,IAAIK,SAAS;AAAA,SACpBL,OAAO,IAAIM,WAAW;AAAA,SACtBN,OAAO,IAAIO,IAAI;AAAA,SACfP,OAAO,IAAIQ,iBAAiB;AAAA,SAC5BR,OAAO,IAAIS,WAAW;AAAA,SACtBT,OAAO,IAAIU,aAAa;AAAA,SACxBV,OAAO,IAAIW,kBAAkB;AAAA,SAC7BX,OAAO,IAAIY,aAAa;AAAA,SACxBZ,OAAO,IAAIa,oBAAoB;AAAA,SAC/Bb,OAAO,IAAIc,YAAY;AAAA,SACvBd,OAAO,IAAIe,OAAO;AAAA,SAElBf,OAAO,IAAIgB,eAAe;AAAA;AAAA,SAE1BhB,OAAO,IAAIiB,cAAc;AAAA,SACzBjB,OAAO,IAAIkB,wBAAwB;AAAA,SACnClB,OAAO,IAAImB,8BAA8B;AAAA"}
1
+ {"version":3,"file":"index.mjs","names":["default","CompilerCli","getFileSystem","CompilerHttpNode"],"sources":["../src/index.ts"],"sourcesContent":["export * from './index-browser';\n\nexport { default as CompilerCli } from './contract/compiler/Cli';\nexport { default as getFileSystem } from './contract/compiler/getFileSystem';\nexport { default as CompilerHttpNode } from './contract/compiler/HttpNode';\n"],"mappings":";SAESA,OAAO,IAAIC,WAAW;AAAA,SACtBD,OAAO,IAAIE,aAAa;AAAA,SACxBF,OAAO,IAAIG,gBAAgB"}
package/es/oracle.d.ts CHANGED
@@ -5,13 +5,11 @@
5
5
  * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol
6
6
  * repository.
7
7
  */
8
- import BigNumber from 'bignumber.js';
9
- import { send, SendOptions } from './spend';
8
+ import { BuildTxOptions } from './tx/builder';
10
9
  import { ORACLE_TTL_TYPES } from './tx/builder/schema';
11
10
  import { Tag } from './tx/builder/constants';
12
11
  import { Encoded } from './utils/encoder';
13
- import { _getPollInterval } from './chain';
14
- import { BuildTxOptions } from './tx';
12
+ import { _getPollInterval, sendTransaction, SendTransactionOptions } from './chain';
15
13
  import Node from './Node';
16
14
  import AccountBase from './account/Base';
17
15
  type OracleQueries = Awaited<ReturnType<Node['getOracleQueriesByPubkey']>>['oracleQueries'];
@@ -25,7 +23,7 @@ type OracleQueries = Awaited<ReturnType<Node['getOracleQueriesByPubkey']>>['orac
25
23
  * @param options.onNode - Node to use
26
24
  * @returns Callback to stop polling function
27
25
  */
28
- export declare function pollForQueries(oracleId: Encoded.OracleAddress, onQuery: (queries: OracleQueries) => void, { interval, onNode, ...options }: {
26
+ export declare function pollForQueries(oracleId: Encoded.OracleAddress, onQuery: (query: OracleQueries[number]) => void, { interval, onNode, ...options }: {
29
27
  interval?: number;
30
28
  onNode: Node;
31
29
  } & Parameters<typeof _getPollInterval>[1]): () => void;
@@ -55,7 +53,7 @@ export declare function getQueryObject(oracleId: Encoded.OracleAddress, queryId:
55
53
  interface GetQueryObjectReturnType extends Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>> {
56
54
  decodedQuery: string;
57
55
  decodedResponse: string;
58
- respond: (response: string, options?: Parameters<typeof respondToQuery>[3]) => ReturnType<typeof respondToQuery>;
56
+ respond: (response: string, options?: Parameters<typeof respondToQuery>[2]) => ReturnType<typeof respondToQuery>;
59
57
  pollForResponse: (options?: Parameters<typeof pollForQueryResponse>[2]) => ReturnType<typeof pollForQueryResponse>;
60
58
  }
61
59
  /**
@@ -71,8 +69,8 @@ interface GetQueryObjectReturnType extends Awaited<ReturnType<Node['getOracleQue
71
69
  * @param options.ttl - Transaction time to leave
72
70
  * @returns Query object
73
71
  */
74
- export declare function postQueryToOracle(oracleId: Encoded.OracleAddress, query: string, options: PostQueryToOracleOptions): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getQueryObject>>>;
75
- type PostQueryToOracleOptionsType = Parameters<typeof send>[1] & Parameters<typeof getQueryObject>[2] & BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query' | 'queryTtlType' | 'queryTtlValue' | 'responseTtlType' | 'responseTtlValue'> & {
72
+ export declare function postQueryToOracle(oracleId: Encoded.OracleAddress, query: string, options: PostQueryToOracleOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getQueryObject>>>;
73
+ type PostQueryToOracleOptionsType = Parameters<typeof sendTransaction>[1] & Parameters<typeof getQueryObject>[2] & BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query' | 'queryTtlType' | 'queryTtlValue' | 'responseTtlType' | 'responseTtlValue'> & {
76
74
  queryTtlType?: ORACLE_TTL_TYPES;
77
75
  queryTtlValue?: number;
78
76
  responseTtlType?: ORACLE_TTL_TYPES;
@@ -83,7 +81,6 @@ interface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {
83
81
  /**
84
82
  * Extend oracle ttl
85
83
  * @category oracle
86
- * @param oracleId - Oracle public key
87
84
  * @param options - Options object
88
85
  * @param options.fee - fee Transaction fee
89
86
  * @param options.ttl - Transaction time to leave
@@ -91,8 +88,8 @@ interface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {
91
88
  * @param options.oracleTtlValue - Oracle time to leave for extend
92
89
  * @returns Oracle object
93
90
  */
94
- export declare function extendOracleTtl(oracleId: Encoded.OracleAddress, options: ExtendOracleTtlOptions): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>>;
95
- type ExtendOracleTtlOptionsType = SendOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleExtendTx, 'oracleTtlType' | 'oracleTtlValue' | 'callerId' | 'oracleId'> & {
91
+ export declare function extendOracleTtl(options: ExtendOracleTtlOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>>;
92
+ type ExtendOracleTtlOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleExtendTx, 'oracleTtlType' | 'oracleTtlValue' | 'callerId' | 'oracleId'> & {
96
93
  oracleTtlType?: ORACLE_TTL_TYPES;
97
94
  oracleTtlValue?: number;
98
95
  };
@@ -101,7 +98,6 @@ interface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {
101
98
  /**
102
99
  * Extend oracle ttl
103
100
  * @category oracle
104
- * @param oracleId - Oracle public key
105
101
  * @param queryId - Oracle query id
106
102
  * @param response - Oracle query response
107
103
  * @param options - Options object
@@ -110,8 +106,8 @@ interface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {
110
106
  * @param options.ttl - Transaction time to leave
111
107
  * @returns Oracle object
112
108
  */
113
- export declare function respondToQuery(oracleId: Encoded.OracleAddress, queryId: Encoded.OracleQueryId, response: string, options: RespondToQueryOptions): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>>;
114
- type RespondToQueryOptionsType = SendOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response' | 'responseTtlType' | 'responseTtlValue'> & {
109
+ export declare function respondToQuery(queryId: Encoded.OracleQueryId, response: string, options: RespondToQueryOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>>;
110
+ type RespondToQueryOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response' | 'responseTtlType' | 'responseTtlValue'> & {
115
111
  responseTtlType?: ORACLE_TTL_TYPES;
116
112
  responseTtlValue?: number;
117
113
  };
@@ -150,9 +146,8 @@ interface GetOracleObjectReturnType extends Awaited<ReturnType<Node['getOracleBy
150
146
  * @param options.ttl - Transaction time to leave
151
147
  * @returns Oracle object
152
148
  */
153
- export declare function registerOracle(queryFormat: string, responseFormat: string, options: RegisterOracleOptions): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>>;
154
- type RegisterOracleOptionsType = SendOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'queryFee' | 'oracleTtlType' | 'oracleTtlValue'> & {
155
- queryFee?: number | string | BigNumber;
149
+ export declare function registerOracle(queryFormat: string, responseFormat: string, options: RegisterOracleOptions): Promise<Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>>;
150
+ type RegisterOracleOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1] & BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'oracleTtlType' | 'oracleTtlValue'> & {
156
151
  oracleTtlType?: ORACLE_TTL_TYPES;
157
152
  oracleTtlValue?: number;
158
153
  };
package/es/oracle.mjs CHANGED
@@ -1,19 +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
1
  /**
18
2
  * Oracle methods - routines to interact with the æternity oracle system
19
3
  *
@@ -21,16 +5,14 @@
21
5
  * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol
22
6
  * repository.
23
7
  */
24
- import { send } from "./spend.mjs";
25
8
  import { mapObject, pause } from "./utils/other.mjs";
26
9
  import { oracleQueryId } from "./tx/builder/helpers.mjs";
27
- import { unpackTx } from "./tx/builder/index.mjs";
28
- import { ORACLE_TTL, QUERY_FEE, QUERY_TTL, RESPONSE_TTL } from "./tx/builder/schema.mjs";
10
+ import { unpackTx, buildTxAsync } from "./tx/builder/index.mjs";
11
+ import { ORACLE_TTL, QUERY_TTL, RESPONSE_TTL } from "./tx/builder/schema.mjs";
29
12
  import { Tag } from "./tx/builder/constants.mjs";
30
13
  import { RequestTimedOutError } from "./utils/errors.mjs";
31
14
  import { decode, encode, Encoding } from "./utils/encoder.mjs";
32
- import { _getPollInterval, getHeight } from "./chain.mjs";
33
- import { _buildTx } from "./tx/index.mjs";
15
+ import { _getPollInterval, getHeight, sendTransaction } from "./chain.mjs";
34
16
  /**
35
17
  * Poll for oracle queries
36
18
  * @category oracle
@@ -58,13 +40,10 @@ export function pollForQueries(oracleId, onQuery, _ref) {
58
40
  } = _ref2;
59
41
  return !knownQueryIds.has(id);
60
42
  });
61
- queries.forEach(_ref3 => {
62
- let {
63
- id
64
- } = _ref3;
65
- return knownQueryIds.add(id);
43
+ queries.forEach(query => {
44
+ knownQueryIds.add(query.id);
45
+ onQuery(query);
66
46
  });
67
- if (queries.length > 0) onQuery(queries);
68
47
  };
69
48
  let stopped = false;
70
49
 
@@ -92,13 +71,13 @@ export function pollForQueries(oracleId, onQuery, _ref) {
92
71
  * @param options.onNode - Node to use
93
72
  * @returns OracleQuery object
94
73
  */
95
- export async function pollForQueryResponse(oracleId, queryId, _ref4) {
74
+ export async function pollForQueryResponse(oracleId, queryId, _ref3) {
96
75
  var _interval2;
97
76
  let {
98
77
  interval,
99
78
  onNode,
100
79
  ...options
101
- } = _ref4;
80
+ } = _ref3;
102
81
  (_interval2 = interval) !== null && _interval2 !== void 0 ? _interval2 : interval = _getPollInterval('microblock', options);
103
82
  let height;
104
83
  let ttl;
@@ -134,7 +113,7 @@ export async function getQueryObject(oracleId, queryId, options) {
134
113
  decodedResponse: decode(record.response).toString(),
135
114
  respond: async (response, opt) =>
136
115
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
137
- respondToQuery(oracleId, queryId, response, {
116
+ respondToQuery(queryId, response, {
138
117
  ...options,
139
118
  ...opt
140
119
  }),
@@ -161,29 +140,29 @@ export async function postQueryToOracle(oracleId, query, options) {
161
140
  var _options$queryFee;
162
141
  (_options$queryFee = options.queryFee) !== null && _options$queryFee !== void 0 ? _options$queryFee : options.queryFee = (await options.onNode.getOracleByPubkey(oracleId)).queryFee.toString();
163
142
  const senderId = options.onAccount.address;
164
- const oracleQueryTx = await _buildTx(Tag.OracleQueryTx, {
143
+ const oracleQueryTx = await buildTxAsync({
165
144
  queryTtlType: QUERY_TTL.type,
166
145
  queryTtlValue: QUERY_TTL.value,
167
146
  responseTtlType: RESPONSE_TTL.type,
168
147
  responseTtlValue: RESPONSE_TTL.value,
169
148
  ...options,
149
+ tag: Tag.OracleQueryTx,
170
150
  oracleId,
171
151
  senderId,
172
152
  query
173
153
  });
174
154
  const {
175
155
  nonce
176
- } = unpackTx(oracleQueryTx, Tag.OracleQueryTx).tx;
156
+ } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);
177
157
  const queryId = oracleQueryId(senderId, nonce, oracleId);
178
158
  return {
179
- ...(await send(oracleQueryTx, options)),
159
+ ...(await sendTransaction(oracleQueryTx, options)),
180
160
  ...(await getQueryObject(oracleId, queryId, options))
181
161
  };
182
162
  }
183
163
  /**
184
164
  * Extend oracle ttl
185
165
  * @category oracle
186
- * @param oracleId - Oracle public key
187
166
  * @param options - Options object
188
167
  * @param options.fee - fee Transaction fee
189
168
  * @param options.ttl - Transaction time to leave
@@ -191,16 +170,17 @@ export async function postQueryToOracle(oracleId, query, options) {
191
170
  * @param options.oracleTtlValue - Oracle time to leave for extend
192
171
  * @returns Oracle object
193
172
  */
194
- export async function extendOracleTtl(oracleId, options) {
195
- const oracleExtendTx = await _buildTx(Tag.OracleExtendTx, {
173
+ export async function extendOracleTtl(options) {
174
+ const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);
175
+ const oracleExtendTx = await buildTxAsync({
196
176
  oracleTtlType: ORACLE_TTL.type,
197
177
  oracleTtlValue: ORACLE_TTL.value,
198
178
  ...options,
199
- callerId: options.onAccount.address,
179
+ tag: Tag.OracleExtendTx,
200
180
  oracleId
201
181
  });
202
182
  return {
203
- ...(await send(oracleExtendTx, options)),
183
+ ...(await sendTransaction(oracleExtendTx, options)),
204
184
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
205
185
  ...(await getOracleObject(oracleId, options))
206
186
  };
@@ -208,7 +188,6 @@ export async function extendOracleTtl(oracleId, options) {
208
188
  /**
209
189
  * Extend oracle ttl
210
190
  * @category oracle
211
- * @param oracleId - Oracle public key
212
191
  * @param queryId - Oracle query id
213
192
  * @param response - Oracle query response
214
193
  * @param options - Options object
@@ -217,18 +196,19 @@ export async function extendOracleTtl(oracleId, options) {
217
196
  * @param options.ttl - Transaction time to leave
218
197
  * @returns Oracle object
219
198
  */
220
- export async function respondToQuery(oracleId, queryId, response, options) {
221
- const oracleRespondTx = await _buildTx(Tag.OracleResponseTx, {
199
+ export async function respondToQuery(queryId, response, options) {
200
+ const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);
201
+ const oracleRespondTx = await buildTxAsync({
222
202
  responseTtlType: RESPONSE_TTL.type,
223
203
  responseTtlValue: RESPONSE_TTL.value,
224
204
  ...options,
225
- callerId: options.onAccount.address,
205
+ tag: Tag.OracleResponseTx,
226
206
  oracleId,
227
207
  queryId,
228
208
  response
229
209
  });
230
210
  return {
231
- ...(await send(oracleRespondTx, options)),
211
+ ...(await sendTransaction(oracleRespondTx, options)),
232
212
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
233
213
  ...(await getOracleObject(oracleId, options))
234
214
  };
@@ -250,8 +230,8 @@ export async function getOracleObject(oracleId, options) {
250
230
  respondToQuery,
251
231
  extendOracle: extendOracleTtl,
252
232
  getQuery: getQueryObject
253
- }, _ref5 => {
254
- let [name, handler] = _ref5;
233
+ }, _ref4 => {
234
+ let [name, handler] = _ref4;
255
235
  return [name, function () {
256
236
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
257
237
  args[_key] = arguments[_key];
@@ -263,7 +243,7 @@ export async function getOracleObject(oracleId, options) {
263
243
  ...lastArg
264
244
  });
265
245
  } else args.push(options);
266
- return handler(oracleId, ...args);
246
+ return handler(...(['extendOracle', 'respondToQuery'].includes(name) ? [] : [oracleId]), ...args);
267
247
  }];
268
248
  })
269
249
  };
@@ -283,17 +263,17 @@ export async function getOracleObject(oracleId, options) {
283
263
  */
284
264
  export async function registerOracle(queryFormat, responseFormat, options) {
285
265
  const accountId = options.onAccount.address;
286
- const oracleRegisterTx = await _buildTx(Tag.OracleRegisterTx, {
287
- queryFee: QUERY_FEE,
266
+ const oracleRegisterTx = await buildTxAsync({
288
267
  oracleTtlValue: ORACLE_TTL.value,
289
268
  oracleTtlType: ORACLE_TTL.type,
290
269
  ...options,
270
+ tag: Tag.OracleRegisterTx,
291
271
  accountId,
292
272
  queryFormat,
293
273
  responseFormat
294
274
  });
295
275
  return {
296
- ...(await send(oracleRegisterTx, options)),
276
+ ...(await sendTransaction(oracleRegisterTx, options)),
297
277
  ...(await getOracleObject(encode(decode(accountId), Encoding.OracleAddress), options))
298
278
  };
299
279
  }
package/es/oracle.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.mjs","names":["send","mapObject","pause","oracleQueryId","unpackTx","ORACLE_TTL","QUERY_FEE","QUERY_TTL","RESPONSE_TTL","Tag","RequestTimedOutError","decode","encode","Encoding","_getPollInterval","getHeight","_buildTx","pollForQueries","oracleId","onQuery","interval","onNode","options","knownQueryIds","Set","checkNewQueries","queries","getOracleQueriesByPubkey","oracleQueries","filter","id","has","forEach","add","length","stopped","catch","console","error","pollForQueryResponse","queryId","height","ttl","response","getOracleQueryByPubkeyAndQueryId","responseBuffer","toString","getQueryObject","record","decodedQuery","query","decodedResponse","respond","opt","respondToQuery","pollForResponse","postQueryToOracle","queryFee","getOracleByPubkey","senderId","onAccount","address","oracleQueryTx","OracleQueryTx","queryTtlType","type","queryTtlValue","value","responseTtlType","responseTtlValue","nonce","tx","extendOracleTtl","oracleExtendTx","OracleExtendTx","oracleTtlType","oracleTtlValue","callerId","getOracleObject","oracleRespondTx","OracleResponseTx","pollQueries","postQuery","extendOracle","getQuery","name","handler","args","lastArg","constructor","Object","assign","push","registerOracle","queryFormat","responseFormat","accountId","oracleRegisterTx","OracleRegisterTx","OracleAddress"],"sources":["../src/oracle.ts"],"sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2022 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Oracle methods - routines to interact with the æternity oracle system\n *\n * The high-level description of the oracle system is\n * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol\n * repository.\n */\n\nimport BigNumber from 'bignumber.js';\nimport { send, SendOptions } from './spend';\nimport { mapObject, pause } from './utils/other';\nimport { oracleQueryId } from './tx/builder/helpers';\nimport { unpackTx } from './tx/builder';\nimport {\n ORACLE_TTL,\n ORACLE_TTL_TYPES,\n QUERY_FEE,\n QUERY_TTL,\n RESPONSE_TTL,\n} from './tx/builder/schema';\nimport { Tag } from './tx/builder/constants';\nimport { RequestTimedOutError } from './utils/errors';\nimport {\n decode, encode, Encoded, Encoding,\n} from './utils/encoder';\nimport { _getPollInterval, getHeight } from './chain';\nimport { _buildTx, BuildTxOptions } from './tx';\nimport Node from './Node';\nimport AccountBase from './account/Base';\n\ntype OracleQueries = Awaited<ReturnType<Node['getOracleQueriesByPubkey']>>['oracleQueries'];\n\n/**\n * Poll for oracle queries\n * @category oracle\n * @param oracleId - Oracle public key\n * @param onQuery - OnQuery callback\n * @param options - Options object\n * @param options.interval - Poll interval(default: 5000)\n * @param options.onNode - Node to use\n * @returns Callback to stop polling function\n */\nexport function pollForQueries(\n oracleId: Encoded.OracleAddress,\n onQuery: (queries: OracleQueries) => void,\n { interval, onNode, ...options }: { interval?: number; onNode: Node }\n & Parameters<typeof _getPollInterval>[1],\n): () => void {\n interval ??= _getPollInterval('microblock', options);\n const knownQueryIds = new Set();\n const checkNewQueries = async (): Promise<void> => {\n const queries = ((await onNode.getOracleQueriesByPubkey(oracleId)).oracleQueries ?? [])\n .filter(({ id }) => !knownQueryIds.has(id));\n queries.forEach(({ id }) => knownQueryIds.add(id));\n if (queries.length > 0) onQuery(queries);\n };\n\n let stopped = false;\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (async () => {\n while (!stopped) { // eslint-disable-line no-unmodified-loop-condition\n // TODO: allow to handle this error somehow\n await checkNewQueries().catch(console.error);\n await pause(interval);\n }\n })();\n return () => { stopped = true; };\n}\n\n/**\n * Poll for oracle query response\n * @category oracle\n * @param oracleId - Oracle public key\n * @param queryId - Oracle Query id\n * @param options - Options object\n * @param options.interval - Poll interval\n * @param options.onNode - Node to use\n * @returns OracleQuery object\n */\nexport async function pollForQueryResponse(\n oracleId: Encoded.OracleAddress,\n queryId: Encoded.OracleQueryId,\n { interval, onNode, ...options }:\n { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<string> {\n interval ??= _getPollInterval('microblock', options);\n let height;\n let ttl;\n let response;\n do {\n ({ response, ttl } = await onNode.getOracleQueryByPubkeyAndQueryId(oracleId, queryId));\n const responseBuffer = decode(response as Encoded.OracleResponse);\n if (responseBuffer.length > 0) return responseBuffer.toString();\n await pause(interval);\n height = await getHeight({ onNode });\n } while (ttl >= height);\n throw new RequestTimedOutError(height);\n}\n\n/**\n * Constructor for OracleQuery Object (helper object for using OracleQuery)\n * @category oracle\n * @param oracleId - Oracle public key\n * @param queryId - Oracle Query id\n * @param options - Options\n * @returns OracleQuery object\n */\nexport async function getQueryObject(\n oracleId: Encoded.OracleAddress,\n queryId: Encoded.OracleQueryId,\n options: RespondToQueryOptions & Parameters<typeof pollForQueryResponse>[2],\n): Promise<GetQueryObjectReturnType> {\n const record = await options.onNode.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);\n return {\n ...record,\n decodedQuery: decode(record.query as Encoded.OracleQueryId).toString(),\n decodedResponse: decode(record.response as Encoded.OracleResponse).toString(),\n respond: async (response, opt) => (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n respondToQuery(oracleId, queryId, response, { ...options, ...opt })\n ),\n pollForResponse: async (opt) => pollForQueryResponse(oracleId, queryId, { ...options, ...opt }),\n };\n}\n\ninterface GetQueryObjectReturnType extends Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>> {\n decodedQuery: string;\n decodedResponse: string;\n respond: (response: string, options?: Parameters<typeof respondToQuery>[3]) =>\n ReturnType<typeof respondToQuery>;\n pollForResponse: (options?: Parameters<typeof pollForQueryResponse>[2]) =>\n ReturnType<typeof pollForQueryResponse>;\n}\n\n/**\n * Post query to oracle\n * @category oracle\n * @param oracleId - Oracle public key\n * @param query - Oracle query object\n * @param options - Options object\n * @param options.queryTtl - queryTtl Oracle query time to leave\n * @param options.responseTtl - queryFee Oracle query response time to leave\n * @param options.queryFee - queryFee Oracle query fee\n * @param options.fee - fee Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Query object\n */\nexport async function postQueryToOracle(\n oracleId: Encoded.OracleAddress,\n query: string,\n options: PostQueryToOracleOptions,\n): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getQueryObject>>> {\n options.queryFee ??= (await options.onNode.getOracleByPubkey(oracleId)).queryFee.toString();\n const senderId = options.onAccount.address;\n\n const oracleQueryTx = await _buildTx(Tag.OracleQueryTx, {\n queryTtlType: QUERY_TTL.type,\n queryTtlValue: QUERY_TTL.value,\n responseTtlType: RESPONSE_TTL.type,\n responseTtlValue: RESPONSE_TTL.value,\n ...options,\n oracleId,\n senderId,\n query,\n });\n const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx).tx;\n const queryId = oracleQueryId(senderId, nonce, oracleId);\n return {\n ...await send(oracleQueryTx, options),\n ...await getQueryObject(oracleId, queryId, options),\n };\n}\n\ntype PostQueryToOracleOptionsType = Parameters<typeof send>[1]\n& Parameters<typeof getQueryObject>[2]\n& BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query' | 'queryTtlType' | 'queryTtlValue' | 'responseTtlType' | 'responseTtlValue'>\n& {\n queryTtlType?: ORACLE_TTL_TYPES;\n queryTtlValue?: number;\n responseTtlType?: ORACLE_TTL_TYPES;\n responseTtlValue?: number;\n};\ninterface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {}\n\n/**\n * Extend oracle ttl\n * @category oracle\n * @param oracleId - Oracle public key\n * @param options - Options object\n * @param options.fee - fee Transaction fee\n * @param options.ttl - Transaction time to leave\n * @param options.oracleTtlType - Oracle time to leave for extend\n * @param options.oracleTtlValue - Oracle time to leave for extend\n * @returns Oracle object\n */\nexport async function extendOracleTtl(\n oracleId: Encoded.OracleAddress,\n options: ExtendOracleTtlOptions,\n): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {\n const oracleExtendTx = await _buildTx(Tag.OracleExtendTx, {\n oracleTtlType: ORACLE_TTL.type,\n oracleTtlValue: ORACLE_TTL.value,\n ...options,\n callerId: options.onAccount.address,\n oracleId,\n });\n return {\n ...await send(oracleExtendTx, options),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...await getOracleObject(oracleId, options),\n };\n}\n\ntype ExtendOracleTtlOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleExtendTx, 'oracleTtlType' | 'oracleTtlValue' | 'callerId' | 'oracleId'>\n& { oracleTtlType?: ORACLE_TTL_TYPES; oracleTtlValue?: number };\ninterface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {}\n\n/**\n * Extend oracle ttl\n * @category oracle\n * @param oracleId - Oracle public key\n * @param queryId - Oracle query id\n * @param response - Oracle query response\n * @param options - Options object\n * @param options.responseTtl - responseTtl Query response time to leave\n * @param options.fee - Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Oracle object\n */\nexport async function respondToQuery(\n oracleId: Encoded.OracleAddress,\n queryId: Encoded.OracleQueryId,\n response: string,\n options: RespondToQueryOptions,\n): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {\n const oracleRespondTx = await _buildTx(Tag.OracleResponseTx, {\n responseTtlType: RESPONSE_TTL.type,\n responseTtlValue: RESPONSE_TTL.value,\n ...options,\n callerId: options.onAccount.address,\n oracleId,\n queryId,\n response,\n });\n return {\n ...await send(oracleRespondTx, options),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...await getOracleObject(oracleId, options),\n };\n}\n\ntype RespondToQueryOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response' | 'responseTtlType' | 'responseTtlValue'>\n& { responseTtlType?: ORACLE_TTL_TYPES; responseTtlValue?: number };\ninterface RespondToQueryOptions extends RespondToQueryOptionsType {}\n\n/**\n * Constructor for Oracle Object (helper object for using Oracle)\n * @category oracle\n * @param oracleId - Oracle public key\n * @param options - Options\n * @returns Oracle object\n */\nexport async function getOracleObject(\n oracleId: Encoded.OracleAddress,\n options: { onNode: Node; onAccount: AccountBase },\n): Promise<GetOracleObjectReturnType> {\n return {\n ...await options.onNode.getOracleByPubkey(oracleId),\n queries: (await options.onNode.getOracleQueriesByPubkey(oracleId)).oracleQueries,\n ...mapObject<Function, Function>(\n {\n pollQueries: pollForQueries,\n postQuery: postQueryToOracle,\n respondToQuery,\n extendOracle: extendOracleTtl,\n getQuery: getQueryObject,\n },\n ([name, handler]) => [\n name,\n (...args: any) => {\n const lastArg = args[args.length - 1];\n if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {\n Object.assign(lastArg, { ...options, ...lastArg });\n } else args.push(options);\n return handler(oracleId, ...args);\n },\n ],\n ),\n } as any;\n}\n\ninterface GetOracleObjectReturnType extends Awaited<ReturnType<Node['getOracleByPubkey']>> {\n id: Encoded.OracleAddress;\n queries: OracleQueries;\n // TODO: replace getOracleObject with a class\n pollQueries: (cb: Parameters<typeof pollForQueries>[1]) => ReturnType<typeof pollForQueries>;\n postQuery: Function;\n respondToQuery: Function;\n extendOracle: Function;\n getQuery: Function;\n}\n\n/**\n * Register oracle\n * @category oracle\n * @param queryFormat - Format of query\n * @param responseFormat - Format of query response\n * @param options - Options\n * @param options.queryFee - Oracle query Fee\n * @param options - Options object\n * @param options.abiVersion - Always 0 (do not use virtual machine)\n * @param options.fee - Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Oracle object\n */\nexport async function registerOracle(\n queryFormat: string,\n responseFormat: string,\n options: RegisterOracleOptions,\n): Promise<Awaited<ReturnType<typeof send>> & Awaited<ReturnType<typeof getOracleObject>>> {\n const accountId = options.onAccount.address;\n const oracleRegisterTx = await _buildTx(Tag.OracleRegisterTx, {\n queryFee: QUERY_FEE,\n oracleTtlValue: ORACLE_TTL.value,\n oracleTtlType: ORACLE_TTL.type,\n ...options,\n accountId,\n queryFormat,\n responseFormat,\n });\n return {\n ...await send(oracleRegisterTx, options),\n ...await getOracleObject(encode(decode(accountId), Encoding.OracleAddress), options),\n };\n}\n\ntype RegisterOracleOptionsType = SendOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'queryFee' | 'oracleTtlType' | 'oracleTtlValue'>\n& {\n queryFee?: number | string | BigNumber;\n oracleTtlType?: ORACLE_TTL_TYPES;\n oracleTtlValue?: number;\n};\ninterface RegisterOracleOptions extends RegisterOracleOptionsType {}\n"],"mappings":"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"}
1
+ {"version":3,"file":"oracle.mjs","names":["mapObject","pause","oracleQueryId","unpackTx","buildTxAsync","ORACLE_TTL","QUERY_TTL","RESPONSE_TTL","Tag","RequestTimedOutError","decode","encode","Encoding","_getPollInterval","getHeight","sendTransaction","pollForQueries","oracleId","onQuery","_ref","_interval","interval","onNode","options","knownQueryIds","Set","checkNewQueries","_await$onNode$getOrac","queries","getOracleQueriesByPubkey","oracleQueries","filter","_ref2","id","has","forEach","query","add","stopped","catch","console","error","pollForQueryResponse","queryId","_ref3","_interval2","height","ttl","response","getOracleQueryByPubkeyAndQueryId","responseBuffer","length","toString","getQueryObject","record","decodedQuery","decodedResponse","respond","opt","respondToQuery","pollForResponse","postQueryToOracle","_options$queryFee","queryFee","getOracleByPubkey","senderId","onAccount","address","oracleQueryTx","queryTtlType","type","queryTtlValue","value","responseTtlType","responseTtlValue","tag","OracleQueryTx","nonce","extendOracleTtl","OracleAddress","oracleExtendTx","oracleTtlType","oracleTtlValue","OracleExtendTx","getOracleObject","oracleRespondTx","OracleResponseTx","pollQueries","postQuery","extendOracle","getQuery","_ref4","name","handler","_len","arguments","args","Array","_key","lastArg","constructor","Object","assign","push","includes","registerOracle","queryFormat","responseFormat","accountId","oracleRegisterTx","OracleRegisterTx"],"sources":["../src/oracle.ts"],"sourcesContent":["/**\n * Oracle methods - routines to interact with the æternity oracle system\n *\n * The high-level description of the oracle system is\n * https://github.com/aeternity/protocol/blob/master/ORACLE.md in the protocol\n * repository.\n */\n\nimport { mapObject, pause } from './utils/other';\nimport { oracleQueryId } from './tx/builder/helpers';\nimport { unpackTx, buildTxAsync, BuildTxOptions } from './tx/builder';\nimport {\n ORACLE_TTL,\n ORACLE_TTL_TYPES,\n QUERY_TTL,\n RESPONSE_TTL,\n} from './tx/builder/schema';\nimport { Tag } from './tx/builder/constants';\nimport { RequestTimedOutError } from './utils/errors';\nimport {\n decode, encode, Encoded, Encoding,\n} from './utils/encoder';\nimport {\n _getPollInterval, getHeight, sendTransaction, SendTransactionOptions,\n} from './chain';\nimport Node from './Node';\nimport AccountBase from './account/Base';\n\ntype OracleQueries = Awaited<ReturnType<Node['getOracleQueriesByPubkey']>>['oracleQueries'];\n\n/**\n * Poll for oracle queries\n * @category oracle\n * @param oracleId - Oracle public key\n * @param onQuery - OnQuery callback\n * @param options - Options object\n * @param options.interval - Poll interval(default: 5000)\n * @param options.onNode - Node to use\n * @returns Callback to stop polling function\n */\nexport function pollForQueries(\n oracleId: Encoded.OracleAddress,\n onQuery: (query: OracleQueries[number]) => void,\n { interval, onNode, ...options }: { interval?: number; onNode: Node }\n & Parameters<typeof _getPollInterval>[1],\n): () => void {\n interval ??= _getPollInterval('microblock', options);\n const knownQueryIds = new Set();\n const checkNewQueries = async (): Promise<void> => {\n const queries = ((await onNode.getOracleQueriesByPubkey(oracleId)).oracleQueries ?? [])\n .filter(({ id }) => !knownQueryIds.has(id));\n queries.forEach((query) => {\n knownQueryIds.add(query.id);\n onQuery(query);\n });\n };\n\n let stopped = false;\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (async () => {\n while (!stopped) { // eslint-disable-line no-unmodified-loop-condition\n // TODO: allow to handle this error somehow\n await checkNewQueries().catch(console.error);\n await pause(interval);\n }\n })();\n return () => { stopped = true; };\n}\n\n/**\n * Poll for oracle query response\n * @category oracle\n * @param oracleId - Oracle public key\n * @param queryId - Oracle Query id\n * @param options - Options object\n * @param options.interval - Poll interval\n * @param options.onNode - Node to use\n * @returns OracleQuery object\n */\nexport async function pollForQueryResponse(\n oracleId: Encoded.OracleAddress,\n queryId: Encoded.OracleQueryId,\n { interval, onNode, ...options }:\n { interval?: number; onNode: Node } & Parameters<typeof _getPollInterval>[1],\n): Promise<string> {\n interval ??= _getPollInterval('microblock', options);\n let height;\n let ttl;\n let response;\n do {\n ({ response, ttl } = await onNode.getOracleQueryByPubkeyAndQueryId(oracleId, queryId));\n const responseBuffer = decode(response as Encoded.OracleResponse);\n if (responseBuffer.length > 0) return responseBuffer.toString();\n await pause(interval);\n height = await getHeight({ onNode });\n } while (ttl >= height);\n throw new RequestTimedOutError(height);\n}\n\n/**\n * Constructor for OracleQuery Object (helper object for using OracleQuery)\n * @category oracle\n * @param oracleId - Oracle public key\n * @param queryId - Oracle Query id\n * @param options - Options\n * @returns OracleQuery object\n */\nexport async function getQueryObject(\n oracleId: Encoded.OracleAddress,\n queryId: Encoded.OracleQueryId,\n options: RespondToQueryOptions & Parameters<typeof pollForQueryResponse>[2],\n): Promise<GetQueryObjectReturnType> {\n const record = await options.onNode.getOracleQueryByPubkeyAndQueryId(oracleId, queryId);\n return {\n ...record,\n decodedQuery: decode(record.query as Encoded.OracleQueryId).toString(),\n decodedResponse: decode(record.response as Encoded.OracleResponse).toString(),\n respond: async (response, opt) => (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n respondToQuery(queryId, response, { ...options, ...opt })\n ),\n pollForResponse: async (opt) => pollForQueryResponse(oracleId, queryId, { ...options, ...opt }),\n };\n}\n\ninterface GetQueryObjectReturnType extends Awaited<ReturnType<Node['getOracleQueryByPubkeyAndQueryId']>> {\n decodedQuery: string;\n decodedResponse: string;\n respond: (response: string, options?: Parameters<typeof respondToQuery>[2]) =>\n ReturnType<typeof respondToQuery>;\n pollForResponse: (options?: Parameters<typeof pollForQueryResponse>[2]) =>\n ReturnType<typeof pollForQueryResponse>;\n}\n\n/**\n * Post query to oracle\n * @category oracle\n * @param oracleId - Oracle public key\n * @param query - Oracle query object\n * @param options - Options object\n * @param options.queryTtl - queryTtl Oracle query time to leave\n * @param options.responseTtl - queryFee Oracle query response time to leave\n * @param options.queryFee - queryFee Oracle query fee\n * @param options.fee - fee Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Query object\n */\nexport async function postQueryToOracle(\n oracleId: Encoded.OracleAddress,\n query: string,\n options: PostQueryToOracleOptions,\n): Promise<\n Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getQueryObject>>\n > {\n options.queryFee ??= (await options.onNode.getOracleByPubkey(oracleId)).queryFee.toString();\n const senderId = options.onAccount.address;\n\n const oracleQueryTx = await buildTxAsync({\n queryTtlType: QUERY_TTL.type,\n queryTtlValue: QUERY_TTL.value,\n responseTtlType: RESPONSE_TTL.type,\n responseTtlValue: RESPONSE_TTL.value,\n ...options,\n tag: Tag.OracleQueryTx,\n oracleId,\n senderId,\n query,\n });\n const { nonce } = unpackTx(oracleQueryTx, Tag.OracleQueryTx);\n const queryId = oracleQueryId(senderId, nonce, oracleId);\n return {\n ...await sendTransaction(oracleQueryTx, options),\n ...await getQueryObject(oracleId, queryId, options),\n };\n}\n\ntype PostQueryToOracleOptionsType = Parameters<typeof sendTransaction>[1]\n& Parameters<typeof getQueryObject>[2]\n& BuildTxOptions<Tag.OracleQueryTx, 'oracleId' | 'senderId' | 'query' | 'queryTtlType' | 'queryTtlValue' | 'responseTtlType' | 'responseTtlValue'>\n& {\n queryTtlType?: ORACLE_TTL_TYPES;\n queryTtlValue?: number;\n responseTtlType?: ORACLE_TTL_TYPES;\n responseTtlValue?: number;\n};\ninterface PostQueryToOracleOptions extends PostQueryToOracleOptionsType {}\n\n/**\n * Extend oracle ttl\n * @category oracle\n * @param options - Options object\n * @param options.fee - fee Transaction fee\n * @param options.ttl - Transaction time to leave\n * @param options.oracleTtlType - Oracle time to leave for extend\n * @param options.oracleTtlValue - Oracle time to leave for extend\n * @returns Oracle object\n */\nexport async function extendOracleTtl(options: ExtendOracleTtlOptions): Promise<\nAwaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>\n> {\n const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);\n const oracleExtendTx = await buildTxAsync({\n oracleTtlType: ORACLE_TTL.type,\n oracleTtlValue: ORACLE_TTL.value,\n ...options,\n tag: Tag.OracleExtendTx,\n oracleId,\n });\n return {\n ...await sendTransaction(oracleExtendTx, options),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...await getOracleObject(oracleId, options),\n };\n}\n\ntype ExtendOracleTtlOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleExtendTx, 'oracleTtlType' | 'oracleTtlValue' | 'callerId' | 'oracleId'>\n& { oracleTtlType?: ORACLE_TTL_TYPES; oracleTtlValue?: number };\ninterface ExtendOracleTtlOptions extends ExtendOracleTtlOptionsType {}\n\n/**\n * Extend oracle ttl\n * @category oracle\n * @param queryId - Oracle query id\n * @param response - Oracle query response\n * @param options - Options object\n * @param options.responseTtl - responseTtl Query response time to leave\n * @param options.fee - Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Oracle object\n */\nexport async function respondToQuery(\n queryId: Encoded.OracleQueryId,\n response: string,\n options: RespondToQueryOptions,\n): Promise<\n Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>\n > {\n const oracleId = encode(decode(options.onAccount.address), Encoding.OracleAddress);\n const oracleRespondTx = await buildTxAsync({\n responseTtlType: RESPONSE_TTL.type,\n responseTtlValue: RESPONSE_TTL.value,\n ...options,\n tag: Tag.OracleResponseTx,\n oracleId,\n queryId,\n response,\n });\n return {\n ...await sendTransaction(oracleRespondTx, options),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n ...await getOracleObject(oracleId, options),\n };\n}\n\ntype RespondToQueryOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleResponseTx, 'callerId' | 'oracleId' | 'queryId' | 'response' | 'responseTtlType' | 'responseTtlValue'>\n& { responseTtlType?: ORACLE_TTL_TYPES; responseTtlValue?: number };\ninterface RespondToQueryOptions extends RespondToQueryOptionsType {}\n\n/**\n * Constructor for Oracle Object (helper object for using Oracle)\n * @category oracle\n * @param oracleId - Oracle public key\n * @param options - Options\n * @returns Oracle object\n */\nexport async function getOracleObject(\n oracleId: Encoded.OracleAddress,\n options: { onNode: Node; onAccount: AccountBase },\n): Promise<GetOracleObjectReturnType> {\n return {\n ...await options.onNode.getOracleByPubkey(oracleId),\n queries: (await options.onNode.getOracleQueriesByPubkey(oracleId)).oracleQueries,\n ...mapObject<Function, Function>(\n {\n pollQueries: pollForQueries,\n postQuery: postQueryToOracle,\n respondToQuery,\n extendOracle: extendOracleTtl,\n getQuery: getQueryObject,\n },\n ([name, handler]) => [\n name,\n (...args: any) => {\n const lastArg = args[args.length - 1];\n if (lastArg != null && typeof lastArg === 'object' && lastArg.constructor === Object) {\n Object.assign(lastArg, { ...options, ...lastArg });\n } else args.push(options);\n return handler(\n ...['extendOracle', 'respondToQuery'].includes(name) ? [] : [oracleId],\n ...args,\n );\n },\n ],\n ),\n } as any;\n}\n\ninterface GetOracleObjectReturnType extends Awaited<ReturnType<Node['getOracleByPubkey']>> {\n id: Encoded.OracleAddress;\n queries: OracleQueries;\n // TODO: replace getOracleObject with a class\n pollQueries: (cb: Parameters<typeof pollForQueries>[1]) => ReturnType<typeof pollForQueries>;\n postQuery: Function;\n respondToQuery: Function;\n extendOracle: Function;\n getQuery: Function;\n}\n\n/**\n * Register oracle\n * @category oracle\n * @param queryFormat - Format of query\n * @param responseFormat - Format of query response\n * @param options - Options\n * @param options.queryFee - Oracle query Fee\n * @param options - Options object\n * @param options.abiVersion - Always 0 (do not use virtual machine)\n * @param options.fee - Transaction fee\n * @param options.ttl - Transaction time to leave\n * @returns Oracle object\n */\nexport async function registerOracle(\n queryFormat: string,\n responseFormat: string,\n options: RegisterOracleOptions,\n): Promise<\n Awaited<ReturnType<typeof sendTransaction>> & Awaited<ReturnType<typeof getOracleObject>>\n > {\n const accountId = options.onAccount.address;\n const oracleRegisterTx = await buildTxAsync({\n oracleTtlValue: ORACLE_TTL.value,\n oracleTtlType: ORACLE_TTL.type,\n ...options,\n tag: Tag.OracleRegisterTx,\n accountId,\n queryFormat,\n responseFormat,\n });\n return {\n ...await sendTransaction(oracleRegisterTx, options),\n ...await getOracleObject(encode(decode(accountId), Encoding.OracleAddress), options),\n };\n}\n\ntype RegisterOracleOptionsType = SendTransactionOptions & Parameters<typeof getOracleObject>[1]\n& BuildTxOptions<Tag.OracleRegisterTx, 'accountId' | 'queryFormat' | 'responseFormat' | 'oracleTtlType' | 'oracleTtlValue'>\n& {\n oracleTtlType?: ORACLE_TTL_TYPES;\n oracleTtlValue?: number;\n};\ninterface RegisterOracleOptions extends RegisterOracleOptionsType {}\n"],"mappings":"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"}
package/es/spend.d.ts CHANGED
@@ -1,25 +1,8 @@
1
- import { sendTransaction, resolveName } from './chain';
2
- import { BuildTxOptions } from './tx';
1
+ import { sendTransaction, resolveName, SendTransactionOptions } from './chain';
2
+ import { BuildTxOptions } from './tx/builder';
3
3
  import { Encoded } from './utils/encoder';
4
4
  import { Tag, AensName } from './tx/builder/constants';
5
5
  import AccountBase from './account/Base';
6
- /**
7
- * Sign and post a transaction to the chain
8
- * @category chain
9
- * @param tx - Transaction
10
- * @param options - Options
11
- * @param options.verify - Verify transaction before broadcast, throw error if not
12
- * valid
13
- * @returns Transaction
14
- */
15
- export declare function send(tx: Encoded.Transaction, options: SendOptions): Promise<SendReturnType>;
16
- type SendOptionsType = Parameters<AccountBase['signTransaction']>[1] & Parameters<typeof sendTransaction>[1] & {
17
- onAccount: AccountBase;
18
- };
19
- export interface SendOptions extends SendOptionsType {
20
- }
21
- interface SendReturnType extends Awaited<ReturnType<typeof sendTransaction>> {
22
- }
23
6
  /**
24
7
  * Send coins to another account
25
8
  * @category chain
@@ -28,24 +11,33 @@ interface SendReturnType extends Awaited<ReturnType<typeof sendTransaction>> {
28
11
  * @param options - Options
29
12
  * @returns Transaction
30
13
  */
31
- export declare function spend(amount: number | string, recipientIdOrName: Encoded.AccountAddress | AensName, options: SpendOptions): ReturnType<typeof send>;
14
+ export declare function spend(amount: number | string, recipientIdOrName: Encoded.AccountAddress | AensName, options: SpendOptions): ReturnType<typeof sendTransaction>;
32
15
  type SpendOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'> & Parameters<typeof resolveName>[2] & {
33
16
  onAccount: AccountBase;
34
- } & SendOptions;
17
+ } & SendTransactionOptions;
35
18
  interface SpendOptions extends SpendOptionsType {
36
19
  }
37
20
  /**
38
- * Send a fraction of coin balance to another account
21
+ * Spend a fraction of coin balance to another account. Useful if needed to drain account balance
22
+ * completely, sending funds to another account (with fraction set to 1).
39
23
  * @category chain
40
24
  * @param fraction - Fraction of balance to spend (between 0 and 1)
41
25
  * @param recipientIdOrName - Address or name of recipient account
42
26
  * @param options - Options
43
- * @returns Transaction
27
+ * @example
28
+ * ```js
29
+ * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)
30
+ * const { blockHeight } = await aeSdk.transferFunds(
31
+ * 0.42,
32
+ * 'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',
33
+ * );
34
+ * console.log('Transaction mined at', blockHeight);
35
+ * ```
44
36
  */
45
- export declare function transferFunds(fraction: number | string, recipientIdOrName: AensName | Encoded.AccountAddress, options: TransferFundsOptions): ReturnType<typeof send>;
37
+ export declare function transferFunds(fraction: number | string, recipientIdOrName: AensName | Encoded.AccountAddress, options: TransferFundsOptions): ReturnType<typeof sendTransaction>;
46
38
  type TransferFundsOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'> & Parameters<typeof resolveName>[2] & {
47
39
  onAccount: AccountBase;
48
- } & SendOptions;
40
+ } & SendTransactionOptions;
49
41
  interface TransferFundsOptions extends TransferFundsOptionsType {
50
42
  }
51
43
  /**
@@ -55,8 +47,8 @@ interface TransferFundsOptions extends TransferFundsOptionsType {
55
47
  * @param options - Options
56
48
  * @returns Object Transaction
57
49
  */
58
- export declare function payForTransaction(transaction: Encoded.Transaction, options: PayForTransactionOptions): ReturnType<typeof send>;
59
- interface PayForTransactionOptions extends BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx'>, SendOptions {
50
+ export declare function payForTransaction(transaction: Encoded.Transaction, options: PayForTransactionOptions): ReturnType<typeof sendTransaction>;
51
+ interface PayForTransactionOptions extends BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx' | 'onNode'>, SendTransactionOptions {
60
52
  onAccount: AccountBase;
61
53
  }
62
54
  export {};