@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
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","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);\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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SASSA,IAAI;AAAA,SACJC,SAAS,EAAEC,KAAK;AAAA,SAChBC,aAAa;AAAA,SACbC,QAAQ;AAAA,SAEfC,UAAU,EAEVC,SAAS,EACTC,SAAS,EACTC,YAAY;AAAA,SAELC,GAAG;AAAA,SACHC,oBAAoB;AAAA,SAE3BC,MAAM,EAAEC,MAAM,EAAWC,QAAQ;AAAA,SAE1BC,gBAAgB,EAAEC,SAAS;AAAA,SAC3BC,QAAQ;AAMjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAc,CAC5BC,QAA+B,EAC/BC,OAAyC,QAG7B;EAAA;EAAA,IAFZ;IAAEC,QAAQ;IAAEC,MAAM;IAAE,GAAGC;EACgB,CAAC;EAExC,aAAAF,QAAQ,iDAARA,QAAQ,GAAKN,gBAAgB,CAAC,YAAY,EAAEQ,OAAO,CAAC;EACpD,MAAMC,aAAa,GAAG,IAAIC,GAAG,EAAE;EAC/B,MAAMC,eAAe,GAAG,YAA2B;IAAA;IACjD,MAAMC,OAAO,GAAG,0BAAC,CAAC,MAAML,MAAM,CAACM,wBAAwB,CAACT,QAAQ,CAAC,EAAEU,aAAa,yEAAI,EAAE,EACnFC,MAAM,CAAC;MAAA,IAAC;QAAEC;MAAG,CAAC;MAAA,OAAK,CAACP,aAAa,CAACQ,GAAG,CAACD,EAAE,CAAC;IAAA,EAAC;IAC7CJ,OAAO,CAACM,OAAO,CAAC;MAAA,IAAC;QAAEF;MAAG,CAAC;MAAA,OAAKP,aAAa,CAACU,GAAG,CAACH,EAAE,CAAC;IAAA,EAAC;IAClD,IAAIJ,OAAO,CAACQ,MAAM,GAAG,CAAC,EAAEf,OAAO,CAACO,OAAO,CAAC;EAC1C,CAAC;EAED,IAAIS,OAAO,GAAG,KAAK;;EAEnB;EACA,CAAC,YAAY;IACX,OAAO,CAACA,OAAO,EAAE;MAAE;MACjB;MACA,MAAMV,eAAe,EAAE,CAACW,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC;MAC5C,MAAMpC,KAAK,CAACkB,QAAQ,CAAC;IACvB;EACF,CAAC,GAAG;EACJ,OAAO,MAAM;IAAEe,OAAO,GAAG,IAAI;EAAE,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,oBAAoB,CACxCrB,QAA+B,EAC/BsB,OAA8B,SAGb;EAAA;EAAA,IAFjB;IAAEpB,QAAQ;IAAEC,MAAM;IAAE,GAAGC;EACoD,CAAC;EAE5E,cAAAF,QAAQ,mDAARA,QAAQ,GAAKN,gBAAgB,CAAC,YAAY,EAAEQ,OAAO,CAAC;EACpD,IAAImB,MAAM;EACV,IAAIC,GAAG;EACP,IAAIC,QAAQ;EACZ,GAAG;IACD,CAAC;MAAEA,QAAQ;MAAED;IAAI,CAAC,GAAG,MAAMrB,MAAM,CAACuB,gCAAgC,CAAC1B,QAAQ,EAAEsB,OAAO,CAAC;IACrF,MAAMK,cAAc,GAAGlC,MAAM,CAACgC,QAAQ,CAA2B;IACjE,IAAIE,cAAc,CAACX,MAAM,GAAG,CAAC,EAAE,OAAOW,cAAc,CAACC,QAAQ,EAAE;IAC/D,MAAM5C,KAAK,CAACkB,QAAQ,CAAC;IACrBqB,MAAM,GAAG,MAAM1B,SAAS,CAAC;MAAEM;IAAO,CAAC,CAAC;EACtC,CAAC,QAAQqB,GAAG,IAAID,MAAM;EACtB,MAAM,IAAI/B,oBAAoB,CAAC+B,MAAM,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,cAAc,CAClC7B,QAA+B,EAC/BsB,OAA8B,EAC9BlB,OAA2E,EACxC;EACnC,MAAM0B,MAAM,GAAG,MAAM1B,OAAO,CAACD,MAAM,CAACuB,gCAAgC,CAAC1B,QAAQ,EAAEsB,OAAO,CAAC;EACvF,OAAO;IACL,GAAGQ,MAAM;IACTC,YAAY,EAAEtC,MAAM,CAACqC,MAAM,CAACE,KAAK,CAA0B,CAACJ,QAAQ,EAAE;IACtEK,eAAe,EAAExC,MAAM,CAACqC,MAAM,CAACL,QAAQ,CAA2B,CAACG,QAAQ,EAAE;IAC7EM,OAAO,EAAE,OAAOT,QAAQ,EAAEU,GAAG;IAC3B;IACAC,cAAc,CAACpC,QAAQ,EAAEsB,OAAO,EAAEG,QAAQ,EAAE;MAAE,GAAGrB,OAAO;MAAE,GAAG+B;IAAI,CAAC,CACnE;IACDE,eAAe,EAAE,MAAOF,GAAG,IAAKd,oBAAoB,CAACrB,QAAQ,EAAEsB,OAAO,EAAE;MAAE,GAAGlB,OAAO;MAAE,GAAG+B;IAAI,CAAC;EAChG,CAAC;AACH;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeG,iBAAiB,CACrCtC,QAA+B,EAC/BgC,KAAa,EACb5B,OAAiC,EACuD;EAAA;EACxF,qBAAAA,OAAO,CAACmC,QAAQ,iEAAhBnC,OAAO,CAACmC,QAAQ,GAAK,CAAC,MAAMnC,OAAO,CAACD,MAAM,CAACqC,iBAAiB,CAACxC,QAAQ,CAAC,EAAEuC,QAAQ,CAACX,QAAQ,EAAE;EAC3F,MAAMa,QAAQ,GAAGrC,OAAO,CAACsC,SAAS,CAACC,OAAO;EAE1C,MAAMC,aAAa,GAAG,MAAM9C,QAAQ,CAACP,GAAG,CAACsD,aAAa,EAAE;IACtDC,YAAY,EAAEzD,SAAS,CAAC0D,IAAI;IAC5BC,aAAa,EAAE3D,SAAS,CAAC4D,KAAK;IAC9BC,eAAe,EAAE5D,YAAY,CAACyD,IAAI;IAClCI,gBAAgB,EAAE7D,YAAY,CAAC2D,KAAK;IACpC,GAAG7C,OAAO;IACVJ,QAAQ;IACRyC,QAAQ;IACRT;EACF,CAAC,CAAC;EACF,MAAM;IAAEoB;EAAM,CAAC,GAAGlE,QAAQ,CAAC0D,aAAa,EAAErD,GAAG,CAACsD,aAAa,CAAC;EAC5D,MAAMvB,OAAO,GAAGrC,aAAa,CAACwD,QAAQ,EAAEW,KAAK,EAAEpD,QAAQ,CAAC;EACxD,OAAO;IACL,IAAG,MAAMlB,IAAI,CAAC8D,aAAa,EAAExC,OAAO,CAAC;IACrC,IAAG,MAAMyB,cAAc,CAAC7B,QAAQ,EAAEsB,OAAO,EAAElB,OAAO,CAAC;EACrD,CAAC;AACH;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeiD,eAAe,CACnCrD,QAA+B,EAC/BI,OAA+B,EAC0D;EACzF,MAAMkD,cAAc,GAAG,MAAMxD,QAAQ,CAACP,GAAG,CAACgE,cAAc,EAAE;IACxDC,aAAa,EAAErE,UAAU,CAAC4D,IAAI;IAC9BU,cAAc,EAAEtE,UAAU,CAAC8D,KAAK;IAChC,GAAG7C,OAAO;IACVsD,QAAQ,EAAEtD,OAAO,CAACsC,SAAS,CAACC,OAAO;IACnC3C;EACF,CAAC,CAAC;EACF,OAAO;IACL,IAAG,MAAMlB,IAAI,CAACwE,cAAc,EAAElD,OAAO,CAAC;IACtC;IACA,IAAG,MAAMuD,eAAe,CAAC3D,QAAQ,EAAEI,OAAO,CAAC;EAC7C,CAAC;AACH;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAegC,cAAc,CAClCpC,QAA+B,EAC/BsB,OAA8B,EAC9BG,QAAgB,EAChBrB,OAA8B,EAC2D;EACzF,MAAMwD,eAAe,GAAG,MAAM9D,QAAQ,CAACP,GAAG,CAACsE,gBAAgB,EAAE;IAC3DX,eAAe,EAAE5D,YAAY,CAACyD,IAAI;IAClCI,gBAAgB,EAAE7D,YAAY,CAAC2D,KAAK;IACpC,GAAG7C,OAAO;IACVsD,QAAQ,EAAEtD,OAAO,CAACsC,SAAS,CAACC,OAAO;IACnC3C,QAAQ;IACRsB,OAAO;IACPG;EACF,CAAC,CAAC;EACF,OAAO;IACL,IAAG,MAAM3C,IAAI,CAAC8E,eAAe,EAAExD,OAAO,CAAC;IACvC;IACA,IAAG,MAAMuD,eAAe,CAAC3D,QAAQ,EAAEI,OAAO,CAAC;EAC7C,CAAC;AACH;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeuD,eAAe,CACnC3D,QAA+B,EAC/BI,OAAiD,EACb;EACpC,OAAO;IACL,IAAG,MAAMA,OAAO,CAACD,MAAM,CAACqC,iBAAiB,CAACxC,QAAQ,CAAC;IACnDQ,OAAO,EAAE,CAAC,MAAMJ,OAAO,CAACD,MAAM,CAACM,wBAAwB,CAACT,QAAQ,CAAC,EAAEU,aAAa;IAChF,GAAG3B,SAAS,CACV;MACE+E,WAAW,EAAE/D,cAAc;MAC3BgE,SAAS,EAAEzB,iBAAiB;MAC5BF,cAAc;MACd4B,YAAY,EAAEX,eAAe;MAC7BY,QAAQ,EAAEpC;IACZ,CAAC,EACD;MAAA,IAAC,CAACqC,IAAI,EAAEC,OAAO,CAAC;MAAA,OAAK,CACnBD,IAAI,EACJ,YAAkB;QAAA,kCAAdE,IAAI;UAAJA,IAAI;QAAA;QACN,MAAMC,OAAO,GAAGD,IAAI,CAACA,IAAI,CAACpD,MAAM,GAAG,CAAC,CAAC;QACrC,IAAIqD,OAAO,IAAI,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAACC,WAAW,KAAKC,MAAM,EAAE;UACpFA,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;YAAE,GAAGjE,OAAO;YAAE,GAAGiE;UAAQ,CAAC,CAAC;QACpD,CAAC,MAAMD,IAAI,CAACK,IAAI,CAACrE,OAAO,CAAC;QACzB,OAAO+D,OAAO,CAACnE,QAAQ,EAAE,GAAGoE,IAAI,CAAC;MACnC,CAAC,CACF;IAAA;EAEL,CAAC;AACH;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,cAAc,CAClCC,WAAmB,EACnBC,cAAsB,EACtBxE,OAA8B,EAC2D;EACzF,MAAMyE,SAAS,GAAGzE,OAAO,CAACsC,SAAS,CAACC,OAAO;EAC3C,MAAMmC,gBAAgB,GAAG,MAAMhF,QAAQ,CAACP,GAAG,CAACwF,gBAAgB,EAAE;IAC5DxC,QAAQ,EAAEnD,SAAS;IACnBqE,cAAc,EAAEtE,UAAU,CAAC8D,KAAK;IAChCO,aAAa,EAAErE,UAAU,CAAC4D,IAAI;IAC9B,GAAG3C,OAAO;IACVyE,SAAS;IACTF,WAAW;IACXC;EACF,CAAC,CAAC;EACF,OAAO;IACL,IAAG,MAAM9F,IAAI,CAACgG,gBAAgB,EAAE1E,OAAO,CAAC;IACxC,IAAG,MAAMuD,eAAe,CAACjE,MAAM,CAACD,MAAM,CAACoF,SAAS,CAAC,EAAElF,QAAQ,CAACqF,aAAa,CAAC,EAAE5E,OAAO,CAAC;EACtF,CAAC;AACH"}
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 {};
package/es/spend.mjs CHANGED
@@ -1,44 +1,8 @@
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
2
  import { sendTransaction, getBalance, resolveName } from "./chain.mjs";
19
- import { _buildTx } from "./tx/index.mjs";
20
- import { buildTxHash, unpackTx } from "./tx/builder/index.mjs";
3
+ import { buildTxAsync, unpackTx } from "./tx/builder/index.mjs";
21
4
  import { ArgumentError } from "./utils/errors.mjs";
22
5
  import { Tag } from "./tx/builder/constants.mjs";
23
- /**
24
- * Sign and post a transaction to the chain
25
- * @category chain
26
- * @param tx - Transaction
27
- * @param options - Options
28
- * @param options.verify - Verify transaction before broadcast, throw error if not
29
- * valid
30
- * @returns Transaction
31
- */
32
- export async function send(tx, options) {
33
- const signed = await options.onAccount.signTransaction(tx, {
34
- ...options,
35
- networkId: await options.onNode.getNetworkId()
36
- });
37
- return options.innerTx === true ? {
38
- hash: buildTxHash(signed),
39
- rawTx: signed
40
- } : sendTransaction(signed, options);
41
- }
42
6
  /**
43
7
  * Send coins to another account
44
8
  * @category chain
@@ -48,8 +12,9 @@ export async function send(tx, options) {
48
12
  * @returns Transaction
49
13
  */
50
14
  export async function spend(amount, recipientIdOrName, options) {
51
- return send(await _buildTx(Tag.SpendTx, {
15
+ return sendTransaction(await buildTxAsync({
52
16
  ...options,
17
+ tag: Tag.SpendTx,
53
18
  senderId: options.onAccount.address,
54
19
  recipientId: await resolveName(recipientIdOrName, 'account_pubkey', options),
55
20
  amount
@@ -57,12 +22,21 @@ export async function spend(amount, recipientIdOrName, options) {
57
22
  }
58
23
  // TODO: Rename to spendFraction
59
24
  /**
60
- * Send a fraction of coin balance to another account
25
+ * Spend a fraction of coin balance to another account. Useful if needed to drain account balance
26
+ * completely, sending funds to another account (with fraction set to 1).
61
27
  * @category chain
62
28
  * @param fraction - Fraction of balance to spend (between 0 and 1)
63
29
  * @param recipientIdOrName - Address or name of recipient account
64
30
  * @param options - Options
65
- * @returns Transaction
31
+ * @example
32
+ * ```js
33
+ * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)
34
+ * const { blockHeight } = await aeSdk.transferFunds(
35
+ * 0.42,
36
+ * 'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',
37
+ * );
38
+ * console.log('Transaction mined at', blockHeight);
39
+ * ```
66
40
  */
67
41
  export async function transferFunds(fraction, recipientIdOrName, options) {
68
42
  if (fraction < 0 || fraction > 1) {
@@ -74,16 +48,18 @@ export async function transferFunds(fraction, recipientIdOrName, options) {
74
48
  const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);
75
49
  const {
76
50
  fee
77
- } = unpackTx(await _buildTx(Tag.SpendTx, {
51
+ } = unpackTx(await buildTxAsync({
78
52
  ...options,
53
+ tag: Tag.SpendTx,
79
54
  senderId,
80
55
  recipientId,
81
56
  amount: desiredAmount
82
57
  }), Tag.SpendTx);
83
58
  // Reducing of the amount may reduce transaction fee, so this is not completely accurate
84
59
  const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;
85
- return send(await _buildTx(Tag.SpendTx, {
60
+ return sendTransaction(await buildTxAsync({
86
61
  ...options,
62
+ tag: Tag.SpendTx,
87
63
  senderId,
88
64
  recipientId,
89
65
  amount
@@ -97,8 +73,9 @@ export async function transferFunds(fraction, recipientIdOrName, options) {
97
73
  * @returns Object Transaction
98
74
  */
99
75
  export async function payForTransaction(transaction, options) {
100
- return send(await _buildTx(Tag.PayingForTx, {
76
+ return sendTransaction(await buildTxAsync({
101
77
  ...options,
78
+ tag: Tag.PayingForTx,
102
79
  payerId: options.onAccount.address,
103
80
  tx: transaction
104
81
  }), options);
package/es/spend.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"spend.mjs","names":["BigNumber","sendTransaction","getBalance","resolveName","_buildTx","buildTxHash","unpackTx","ArgumentError","Tag","send","tx","options","signed","onAccount","signTransaction","networkId","onNode","getNetworkId","innerTx","hash","rawTx","spend","amount","recipientIdOrName","SpendTx","senderId","address","recipientId","transferFunds","fraction","balance","bind","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","plus","gt","minus","payForTransaction","transaction","PayingForTx","payerId"],"sources":["../src/spend.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 */\nimport BigNumber from 'bignumber.js';\nimport { sendTransaction, getBalance, resolveName } from './chain';\nimport { _buildTx, BuildTxOptions } from './tx';\nimport { buildTxHash, unpackTx } from './tx/builder';\nimport { ArgumentError } from './utils/errors';\nimport { Encoded, Encoding } from './utils/encoder';\nimport { Tag, AensName } from './tx/builder/constants';\nimport AccountBase from './account/Base';\n\n/**\n * Sign and post a transaction to the chain\n * @category chain\n * @param tx - Transaction\n * @param options - Options\n * @param options.verify - Verify transaction before broadcast, throw error if not\n * valid\n * @returns Transaction\n */\nexport async function send(\n tx: Encoded.Transaction,\n options: SendOptions,\n): Promise<SendReturnType> {\n const signed = await options.onAccount.signTransaction(tx, {\n ...options,\n networkId: await options.onNode.getNetworkId(),\n });\n\n return options.innerTx === true\n ? { hash: buildTxHash(signed), rawTx: signed }\n : sendTransaction(signed, options);\n}\n\ntype SendOptionsType = Parameters<AccountBase['signTransaction']>[1]\n& Parameters<typeof sendTransaction>[1] & { onAccount: AccountBase };\nexport interface SendOptions extends SendOptionsType {}\ninterface SendReturnType extends Awaited<ReturnType<typeof sendTransaction>> {}\n\n/**\n * Send coins to another account\n * @category chain\n * @param amount - Amount to spend\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @returns Transaction\n */\nexport async function spend(\n amount: number | string,\n recipientIdOrName: Encoded.AccountAddress | AensName,\n options: SpendOptions,\n): ReturnType<typeof send> {\n return send(\n await _buildTx(Tag.SpendTx, {\n ...options,\n senderId: options.onAccount.address,\n recipientId: await resolveName<Encoding.AccountAddress>(\n recipientIdOrName,\n 'account_pubkey',\n options,\n ),\n amount,\n }),\n options,\n );\n}\n\ntype SpendOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>\n& Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendOptions;\ninterface SpendOptions extends SpendOptionsType {}\n\n// TODO: Rename to spendFraction\n/**\n * Send a fraction of coin balance to another account\n * @category chain\n * @param fraction - Fraction of balance to spend (between 0 and 1)\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @returns Transaction\n */\nexport async function transferFunds(\n fraction: number | string,\n recipientIdOrName: AensName | Encoded.AccountAddress,\n options: TransferFundsOptions,\n): ReturnType<typeof send> {\n if (fraction < 0 || fraction > 1) {\n throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);\n }\n const recipientId = await resolveName<Encoding.AccountAddress>(\n recipientIdOrName,\n 'account_pubkey',\n options,\n );\n const senderId = options.onAccount.address;\n const balance = new BigNumber(\n await getBalance.bind(options.onAccount)(senderId, options),\n );\n const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);\n const { fee } = unpackTx(\n await _buildTx(Tag.SpendTx, {\n ...options, senderId, recipientId, amount: desiredAmount,\n }),\n Tag.SpendTx,\n );\n // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;\n return send(\n await _buildTx(Tag.SpendTx, {\n ...options, senderId, recipientId, amount,\n }),\n options,\n );\n}\n\ntype TransferFundsOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>\n& Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendOptions;\ninterface TransferFundsOptions extends TransferFundsOptionsType {}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @category chain\n * @param transaction - tx_<base64>-encoded transaction\n * @param options - Options\n * @returns Object Transaction\n */\nexport async function payForTransaction(\n transaction: Encoded.Transaction,\n options: PayForTransactionOptions,\n): ReturnType<typeof send> {\n return send(\n await _buildTx(\n Tag.PayingForTx,\n { ...options, payerId: options.onAccount.address, tx: transaction },\n ),\n options,\n );\n}\n\ninterface PayForTransactionOptions extends\n BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx'>, SendOptions {\n onAccount: AccountBase;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"spend.mjs","names":["BigNumber","sendTransaction","getBalance","resolveName","buildTxAsync","unpackTx","ArgumentError","Tag","spend","amount","recipientIdOrName","options","tag","SpendTx","senderId","onAccount","address","recipientId","transferFunds","fraction","balance","bind","desiredAmount","times","integerValue","ROUND_HALF_UP","fee","plus","gt","minus","payForTransaction","transaction","PayingForTx","payerId","tx"],"sources":["../src/spend.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport {\n sendTransaction, getBalance, resolveName, SendTransactionOptions,\n} from './chain';\nimport { buildTxAsync, BuildTxOptions, unpackTx } from './tx/builder';\nimport { ArgumentError } from './utils/errors';\nimport { Encoded, Encoding } from './utils/encoder';\nimport { Tag, AensName } from './tx/builder/constants';\nimport AccountBase from './account/Base';\n\n/**\n * Send coins to another account\n * @category chain\n * @param amount - Amount to spend\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @returns Transaction\n */\nexport async function spend(\n amount: number | string,\n recipientIdOrName: Encoded.AccountAddress | AensName,\n options: SpendOptions,\n): ReturnType<typeof sendTransaction> {\n return sendTransaction(\n await buildTxAsync({\n ...options,\n tag: Tag.SpendTx,\n senderId: options.onAccount.address,\n recipientId: await resolveName<Encoding.AccountAddress>(\n recipientIdOrName,\n 'account_pubkey',\n options,\n ),\n amount,\n }),\n options,\n );\n}\n\ntype SpendOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>\n& Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendTransactionOptions;\ninterface SpendOptions extends SpendOptionsType {}\n\n// TODO: Rename to spendFraction\n/**\n * Spend a fraction of coin balance to another account. Useful if needed to drain account balance\n * completely, sending funds to another account (with fraction set to 1).\n * @category chain\n * @param fraction - Fraction of balance to spend (between 0 and 1)\n * @param recipientIdOrName - Address or name of recipient account\n * @param options - Options\n * @example\n * ```js\n * // `fraction` * 100 = % of AE to be transferred (e.g. `0.42` for 42% or `1` for 100%)\n * const { blockHeight } = await aeSdk.transferFunds(\n * 0.42,\n * 'ak_21A27UVVt3hDkBE5J7rhhqnH5YNb4Y1dqo4PnSybrH85pnWo7E',\n * );\n * console.log('Transaction mined at', blockHeight);\n * ```\n */\nexport async function transferFunds(\n fraction: number | string,\n recipientIdOrName: AensName | Encoded.AccountAddress,\n options: TransferFundsOptions,\n): ReturnType<typeof sendTransaction> {\n if (fraction < 0 || fraction > 1) {\n throw new ArgumentError('fraction', 'a number between 0 and 1', fraction);\n }\n const recipientId = await resolveName<Encoding.AccountAddress>(\n recipientIdOrName,\n 'account_pubkey',\n options,\n );\n const senderId = options.onAccount.address;\n const balance = new BigNumber(\n await getBalance.bind(options.onAccount)(senderId, options),\n );\n const desiredAmount = balance.times(fraction).integerValue(BigNumber.ROUND_HALF_UP);\n const { fee } = unpackTx(\n await buildTxAsync({\n ...options, tag: Tag.SpendTx, senderId, recipientId, amount: desiredAmount,\n }),\n Tag.SpendTx,\n );\n // Reducing of the amount may reduce transaction fee, so this is not completely accurate\n const amount = desiredAmount.plus(fee).gt(balance) ? balance.minus(fee) : desiredAmount;\n return sendTransaction(\n await buildTxAsync({\n ...options, tag: Tag.SpendTx, senderId, recipientId, amount,\n }),\n options,\n );\n}\n\ntype TransferFundsOptionsType = BuildTxOptions<Tag.SpendTx, 'senderId' | 'recipientId' | 'amount'>\n& Parameters<typeof resolveName>[2] & { onAccount: AccountBase } & SendTransactionOptions;\ninterface TransferFundsOptions extends TransferFundsOptionsType {}\n\n/**\n * Submit transaction of another account paying for it (fee and gas)\n * @category chain\n * @param transaction - tx_<base64>-encoded transaction\n * @param options - Options\n * @returns Object Transaction\n */\nexport async function payForTransaction(\n transaction: Encoded.Transaction,\n options: PayForTransactionOptions,\n): ReturnType<typeof sendTransaction> {\n return sendTransaction(\n await buildTxAsync({\n ...options, tag: Tag.PayingForTx, payerId: options.onAccount.address, tx: transaction,\n }),\n options,\n );\n}\n\ninterface PayForTransactionOptions extends\n BuildTxOptions<Tag.PayingForTx, 'payerId' | 'tx' | 'onNode'>, SendTransactionOptions {\n onAccount: AccountBase;\n}\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,cAAc;AAAC,SAEnCC,eAAe,EAAEC,UAAU,EAAEC,WAAW;AAAA,SAEjCC,YAAY,EAAkBC,QAAQ;AAAA,SACtCC,aAAa;AAAA,SAEbC,GAAG;AAGZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,KAAKA,CACzBC,MAAuB,EACvBC,iBAAoD,EACpDC,OAAqB,EACe;EACpC,OAAOV,eAAe,CACpB,MAAMG,YAAY,CAAC;IACjB,GAAGO,OAAO;IACVC,GAAG,EAAEL,GAAG,CAACM,OAAO;IAChBC,QAAQ,EAAEH,OAAO,CAACI,SAAS,CAACC,OAAO;IACnCC,WAAW,EAAE,MAAMd,WAAW,CAC5BO,iBAAiB,EACjB,gBAAgB,EAChBC,OAAO,CACR;IACDF;EACF,CAAC,CAAC,EACFE,OAAO,CACR;AACH;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeO,aAAaA,CACjCC,QAAyB,EACzBT,iBAAoD,EACpDC,OAA6B,EACO;EACpC,IAAIQ,QAAQ,GAAG,CAAC,IAAIA,QAAQ,GAAG,CAAC,EAAE;IAChC,MAAM,IAAIb,aAAa,CAAC,UAAU,EAAE,0BAA0B,EAAEa,QAAQ,CAAC;EAC3E;EACA,MAAMF,WAAW,GAAG,MAAMd,WAAW,CACnCO,iBAAiB,EACjB,gBAAgB,EAChBC,OAAO,CACR;EACD,MAAMG,QAAQ,GAAGH,OAAO,CAACI,SAAS,CAACC,OAAO;EAC1C,MAAMI,OAAO,GAAG,IAAIpB,SAAS,CAC3B,MAAME,UAAU,CAACmB,IAAI,CAACV,OAAO,CAACI,SAAS,CAAC,CAACD,QAAQ,EAAEH,OAAO,CAAC,CAC5D;EACD,MAAMW,aAAa,GAAGF,OAAO,CAACG,KAAK,CAACJ,QAAQ,CAAC,CAACK,YAAY,CAACxB,SAAS,CAACyB,aAAa,CAAC;EACnF,MAAM;IAAEC;EAAI,CAAC,GAAGrB,QAAQ,CACtB,MAAMD,YAAY,CAAC;IACjB,GAAGO,OAAO;IAAEC,GAAG,EAAEL,GAAG,CAACM,OAAO;IAAEC,QAAQ;IAAEG,WAAW;IAAER,MAAM,EAAEa;EAC/D,CAAC,CAAC,EACFf,GAAG,CAACM,OAAO,CACZ;EACD;EACA,MAAMJ,MAAM,GAAGa,aAAa,CAACK,IAAI,CAACD,GAAG,CAAC,CAACE,EAAE,CAACR,OAAO,CAAC,GAAGA,OAAO,CAACS,KAAK,CAACH,GAAG,CAAC,GAAGJ,aAAa;EACvF,OAAOrB,eAAe,CACpB,MAAMG,YAAY,CAAC;IACjB,GAAGO,OAAO;IAAEC,GAAG,EAAEL,GAAG,CAACM,OAAO;IAAEC,QAAQ;IAAEG,WAAW;IAAER;EACvD,CAAC,CAAC,EACFE,OAAO,CACR;AACH;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAemB,iBAAiBA,CACrCC,WAAgC,EAChCpB,OAAiC,EACG;EACpC,OAAOV,eAAe,CACpB,MAAMG,YAAY,CAAC;IACjB,GAAGO,OAAO;IAAEC,GAAG,EAAEL,GAAG,CAACyB,WAAW;IAAEC,OAAO,EAAEtB,OAAO,CAACI,SAAS,CAACC,OAAO;IAAEkB,EAAE,EAAEH;EAC5E,CAAC,CAAC,EACFpB,OAAO,CACR;AACH"}
@@ -0,0 +1,37 @@
1
+ import { Field as OriginalField } from './field-types';
2
+ import { UnionToIntersection } from '../../utils/other';
3
+ export interface Field extends OriginalField {
4
+ serialize: (...args: any[]) => any;
5
+ }
6
+ type NullablePartial<T, NK extends keyof T = {
7
+ [K in keyof T]: undefined extends T[K] ? K : never;
8
+ }[keyof T]> = Partial<Pick<T, NK>> & Omit<T, NK>;
9
+ type Or<A, B> = A extends undefined ? B : A;
10
+ type TxParamsBySchemaInternal<SchemaItem> = {
11
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field ? Parameters<SchemaItem[key]['serialize']>[0] : never;
12
+ };
13
+ type TxParamsBySchemaInternalParams<SchemaItem, SchemaItemValues = SchemaItem[keyof SchemaItem]> = UnionToIntersection<SchemaItemValues extends Field ? Or<Parameters<SchemaItemValues['serialize']>[2], {}> : never>;
14
+ type PickIsRec<SchemaItem, Recursive extends boolean> = {
15
+ [Key in keyof SchemaItem as SchemaItem[Key] extends Field & {
16
+ recursiveType: true;
17
+ } ? (Recursive extends true ? Key : never) : (Recursive extends true ? never : Key)]: SchemaItem[Key];
18
+ };
19
+ type TxParamsBySchema<SchemaItem> = SchemaItem extends Object ? TxParamsBySchemaInternal<PickIsRec<SchemaItem, true>> & NullablePartial<TxParamsBySchemaInternal<PickIsRec<SchemaItem, false>>> & TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>> : never;
20
+ type TxParamsAsyncBySchemaInternal<SchemaItem> = {
21
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field & {
22
+ prepare: Function;
23
+ } ? Parameters<SchemaItem[key]['prepare']>[0] : SchemaItem[key] extends Field ? Parameters<SchemaItem[key]['serialize']>[0] : never;
24
+ };
25
+ type TxParamsAsyncBySchemaInternalParams<SchemaItem, SchemaItemValues = SchemaItem[keyof SchemaItem]> = UnionToIntersection<SchemaItemValues extends Field & {
26
+ prepare: Function;
27
+ } ? Or<Parameters<SchemaItemValues['prepare']>[2], {}> : {}>;
28
+ type TxParamsAsyncBySchema<SchemaItem> = SchemaItem extends Object ? TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, true>> & NullablePartial<TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, false>>> & TxParamsAsyncBySchemaInternalParams<PickIsRec<SchemaItem, false>> & TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>> : never;
29
+ type TxUnpackedBySchema<SchemaItem> = {
30
+ -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field ? ReturnType<SchemaItem[key]['deserialize']> : never;
31
+ };
32
+ export default interface SchemaTypes<Schema extends readonly any[], SchemaItems = Schema[number]> {
33
+ TxParams: TxParamsBySchema<SchemaItems>;
34
+ TxParamsAsync: TxParamsAsyncBySchema<SchemaItems>;
35
+ TxUnpacked: TxUnpackedBySchema<SchemaItems>;
36
+ }
37
+ export {};
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=SchemaTypes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaTypes.mjs","names":[],"sources":["../../../src/tx/builder/SchemaTypes.ts"],"sourcesContent":["import { Field as OriginalField } from './field-types';\nimport { UnionToIntersection } from '../../utils/other';\n\n// TODO: figure out why this override is necessary\nexport interface Field extends OriginalField {\n serialize: (...args: any[]) => any;\n}\n\ntype NullablePartial<\n T,\n NK extends keyof T = { [K in keyof T]: undefined extends T[K] ? K : never }[keyof T],\n> = Partial<Pick<T, NK>> & Omit<T, NK>;\n\ntype Or<A, B> = A extends undefined ? B : A;\n\ntype TxParamsBySchemaInternal<SchemaItem> = {\n -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field\n ? Parameters<SchemaItem[key]['serialize']>[0]\n : never;\n};\n\ntype TxParamsBySchemaInternalParams<\n SchemaItem,\n SchemaItemValues = SchemaItem[keyof SchemaItem],\n> = UnionToIntersection<\nSchemaItemValues extends Field\n ? Or<Parameters<SchemaItemValues['serialize']>[2], {}> : never\n>;\n\ntype PickIsRec<SchemaItem, Recursive extends boolean> = {\n [Key in keyof SchemaItem\n as SchemaItem[Key] extends Field & { recursiveType: true }\n ? (Recursive extends true ? Key : never)\n : (Recursive extends true ? never : Key)]: SchemaItem[Key];\n};\n\ntype TxParamsBySchema<SchemaItem> = SchemaItem extends Object\n ? TxParamsBySchemaInternal<PickIsRec<SchemaItem, true>> &\n NullablePartial<TxParamsBySchemaInternal<PickIsRec<SchemaItem, false>>> &\n TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>>\n : never;\n\ntype TxParamsAsyncBySchemaInternal<SchemaItem> = {\n -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field & { prepare: Function }\n ? Parameters<SchemaItem[key]['prepare']>[0]\n : SchemaItem[key] extends Field\n ? Parameters<SchemaItem[key]['serialize']>[0]\n : never;\n};\n\ntype TxParamsAsyncBySchemaInternalParams<\n SchemaItem,\n SchemaItemValues = SchemaItem[keyof SchemaItem],\n> = UnionToIntersection<\nSchemaItemValues extends Field & { prepare: Function }\n ? Or<Parameters<SchemaItemValues['prepare']>[2], {}> : {}\n>;\n\ntype TxParamsAsyncBySchema<SchemaItem> = SchemaItem extends Object\n ? TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, true>>\n & NullablePartial<TxParamsAsyncBySchemaInternal<PickIsRec<SchemaItem, false>>>\n & TxParamsAsyncBySchemaInternalParams<PickIsRec<SchemaItem, false>>\n & TxParamsBySchemaInternalParams<PickIsRec<SchemaItem, false>>\n : never;\n\ntype TxUnpackedBySchema<SchemaItem> = {\n -readonly [key in keyof SchemaItem]: SchemaItem[key] extends Field\n ? ReturnType<SchemaItem[key]['deserialize']>\n : never;\n};\n\nexport default interface SchemaTypes<\n Schema extends readonly any[],\n SchemaItems = Schema[number],\n> {\n TxParams: TxParamsBySchema<SchemaItems>;\n TxParamsAsync: TxParamsAsyncBySchema<SchemaItems>;\n TxUnpacked: TxUnpackedBySchema<SchemaItems>;\n}\n"],"mappings":""}
@@ -16,7 +16,8 @@ export declare const NAME_BID_RANGES: {
16
16
  [k: string]: BigNumber;
17
17
  };
18
18
  export declare enum ConsensusProtocolVersion {
19
- Iris = 5
19
+ Iris = 5,
20
+ Ceres = 6
20
21
  }
21
22
  /**
22
23
  * @category transaction builder
@@ -94,5 +95,6 @@ export declare enum Tag {
94
95
  AccountsMtree = 626,
95
96
  GaAttachTx = 80,
96
97
  GaMetaTx = 81,
97
- PayingForTx = 82
98
+ PayingForTx = 82,
99
+ GaMetaTxAuthData = 810
98
100
  }
@@ -64,6 +64,7 @@ export let ConsensusProtocolVersion;
64
64
  */
65
65
  (function (ConsensusProtocolVersion) {
66
66
  ConsensusProtocolVersion[ConsensusProtocolVersion["Iris"] = 5] = "Iris";
67
+ ConsensusProtocolVersion[ConsensusProtocolVersion["Ceres"] = 6] = "Ceres";
67
68
  })(ConsensusProtocolVersion || (ConsensusProtocolVersion = {}));
68
69
  export let VmVersion;
69
70
 
@@ -147,5 +148,6 @@ export let Tag; // KeyBlock = 100,
147
148
  Tag[Tag["GaAttachTx"] = 80] = "GaAttachTx";
148
149
  Tag[Tag["GaMetaTx"] = 81] = "GaMetaTx";
149
150
  Tag[Tag["PayingForTx"] = 82] = "PayingForTx";
151
+ Tag[Tag["GaMetaTxAuthData"] = 810] = "GaMetaTxAuthData";
150
152
  })(Tag || (Tag = {}));
151
153
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","names":["BigNumber","mapObject","MAX_AUTH_FUN_GAS","NAME_TTL","NAME_MAX_TTL","NAME_MAX_CLIENT_TTL","CLIENT_TTL","MIN_GAS_PRICE","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_MAX_LENGTH","NAME_BID_RANGES","key","value","times","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag"],"sources":["../../../src/tx/builder/constants.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { mapObject } from '../../utils/other';\n\nexport const MAX_AUTH_FUN_GAS = 50000;\nexport type Int = number | string | BigNumber;\n// # AENS\nexport type AensName = `${string}.chain`;\nexport const NAME_TTL = 180000;\n// # max number of block into the future that the name is going to be available\n// # https://github.com/aeternity/protocol/blob/epoch-v0.22.0/AENS.md#update\n// # https://github.com/aeternity/protocol/blob/44a93d3aab957ca820183c3520b9daf6b0fedff4/AENS.md#aens-entry\nexport const NAME_MAX_TTL = 36000;\nexport const NAME_MAX_CLIENT_TTL = 84600;\nexport const CLIENT_TTL = NAME_MAX_CLIENT_TTL;\nexport const MIN_GAS_PRICE = 1e9;\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67\nexport const NAME_FEE_MULTIPLIER = 1e14; // 100000000000000\nexport const NAME_FEE_BID_INCREMENT = 0.05; // # the increment is in percentage\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272\nexport const NAME_BID_TIMEOUT_BLOCKS = 480; // # ~1 day\n// # this is the max length for a domain that requires a base fee to be paid\nexport const NAME_MAX_LENGTH_FEE = 31;\nexport const NAME_BID_MAX_LENGTH = 12; // # this is the max length for a domain to be part of a bid\n// # https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290\n// # https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times\n// # bid ranges:\nexport const NAME_BID_RANGES = mapObject({\n 31: 3,\n 30: 5,\n 29: 8,\n 28: 13,\n 27: 21,\n 26: 34,\n 25: 55,\n 24: 89,\n 23: 144,\n 22: 233,\n 21: 377,\n 20: 610,\n 19: 987,\n 18: 1597,\n 17: 2584,\n 16: 4181,\n 15: 6765,\n 14: 10946,\n 13: 17711,\n 12: 28657,\n 11: 46368,\n 10: 75025,\n 9: 121393,\n 8: 196418,\n 7: 317811,\n 6: 514229,\n 5: 832040,\n 4: 1346269,\n 3: 2178309,\n 2: 3524578,\n 1: 5702887,\n}, ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)]);\n\nexport enum ConsensusProtocolVersion {\n Iris = 5,\n}\n\n/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum VmVersion {\n NoVm = 0,\n Sophia = 1,\n SophiaImprovementsMinerva = 3,\n SophiaImprovementsFortuna = 4,\n Fate = 5,\n SophiaImprovementsLima = 6,\n Fate2 = 7,\n}\n\n/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum AbiVersion {\n NoAbi = 0,\n Sophia = 1,\n Fate = 3,\n}\n\n/**\n * Enum with tag types\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_chain_objects.erl#L39-L97}\n */\n// TODO: implement serialisation for commented-out tags\nexport enum Tag {\n Account = 10,\n SignedTx = 11,\n SpendTx = 12,\n Oracle = 20,\n // OracleQuery = 21,\n OracleRegisterTx = 22,\n OracleQueryTx = 23,\n OracleResponseTx = 24,\n OracleExtendTx = 25,\n Name = 30,\n // NameCommitment = 31,\n NameClaimTx = 32,\n NamePreclaimTx = 33,\n NameUpdateTx = 34,\n NameRevokeTx = 35,\n NameTransferTx = 36,\n // NameAuction = 37,\n Contract = 40,\n ContractCall = 41,\n ContractCreateTx = 42,\n ContractCallTx = 43,\n ChannelCreateTx = 50,\n // ChannelSetDelegatesTx = 501,\n ChannelDepositTx = 51,\n ChannelWithdrawTx = 52,\n ChannelForceProgressTx = 521,\n ChannelCloseMutualTx = 53,\n ChannelCloseSoloTx = 54,\n ChannelSlashTx = 55,\n ChannelSettleTx = 56,\n ChannelOffChainTx = 57,\n ChannelOffChainUpdateTransfer = 570,\n ChannelOffChainUpdateDeposit = 571,\n ChannelOffChainUpdateWithdraw = 572,\n ChannelOffChainUpdateCreateContract = 573,\n ChannelOffChainUpdateCallContract = 574,\n // ChannelOffChainUpdateMeta = 576,\n ChannelClientReconnectTx = 575,\n Channel = 58,\n ChannelSnapshotSoloTx = 59,\n TreesPoi = 60,\n // TreesDb = 61,\n StateTrees = 62,\n Mtree = 63,\n MtreeValue = 64,\n ContractsMtree = 621,\n CallsMtree = 622,\n ChannelsMtree = 623,\n NameserviceMtree = 624,\n OraclesMtree = 625,\n AccountsMtree = 626,\n // CompilerSophia = 70,\n GaAttachTx = 80,\n GaMetaTx = 81,\n PayingForTx = 82,\n // KeyBlock = 100,\n // MicroBlock = 101,\n // LightMicroBlock = 102,\n // Pof = 200,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"constants.mjs","names":["BigNumber","mapObject","MAX_AUTH_FUN_GAS","NAME_TTL","NAME_MAX_TTL","NAME_MAX_CLIENT_TTL","CLIENT_TTL","MIN_GAS_PRICE","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_MAX_LENGTH","NAME_BID_RANGES","_ref","key","value","times","ConsensusProtocolVersion","VmVersion","AbiVersion","Tag"],"sources":["../../../src/tx/builder/constants.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { mapObject } from '../../utils/other';\n\nexport const MAX_AUTH_FUN_GAS = 50000;\nexport type Int = number | string | BigNumber;\n// # AENS\nexport type AensName = `${string}.chain`;\nexport const NAME_TTL = 180000;\n// # max number of block into the future that the name is going to be available\n// # https://github.com/aeternity/protocol/blob/epoch-v0.22.0/AENS.md#update\n// # https://github.com/aeternity/protocol/blob/44a93d3aab957ca820183c3520b9daf6b0fedff4/AENS.md#aens-entry\nexport const NAME_MAX_TTL = 36000;\nexport const NAME_MAX_CLIENT_TTL = 84600;\nexport const CLIENT_TTL = NAME_MAX_CLIENT_TTL;\nexport const MIN_GAS_PRICE = 1e9;\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67\nexport const NAME_FEE_MULTIPLIER = 1e14; // 100000000000000\nexport const NAME_FEE_BID_INCREMENT = 0.05; // # the increment is in percentage\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272\nexport const NAME_BID_TIMEOUT_BLOCKS = 480; // # ~1 day\n// # this is the max length for a domain that requires a base fee to be paid\nexport const NAME_MAX_LENGTH_FEE = 31;\nexport const NAME_BID_MAX_LENGTH = 12; // # this is the max length for a domain to be part of a bid\n// # https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290\n// # https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times\n// # bid ranges:\nexport const NAME_BID_RANGES = mapObject({\n 31: 3,\n 30: 5,\n 29: 8,\n 28: 13,\n 27: 21,\n 26: 34,\n 25: 55,\n 24: 89,\n 23: 144,\n 22: 233,\n 21: 377,\n 20: 610,\n 19: 987,\n 18: 1597,\n 17: 2584,\n 16: 4181,\n 15: 6765,\n 14: 10946,\n 13: 17711,\n 12: 28657,\n 11: 46368,\n 10: 75025,\n 9: 121393,\n 8: 196418,\n 7: 317811,\n 6: 514229,\n 5: 832040,\n 4: 1346269,\n 3: 2178309,\n 2: 3524578,\n 1: 5702887,\n}, ([key, value]) => [key, new BigNumber(value).times(NAME_FEE_MULTIPLIER)]);\n\nexport enum ConsensusProtocolVersion {\n Iris = 5,\n Ceres = 6,\n}\n\n/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum VmVersion {\n NoVm = 0,\n Sophia = 1,\n SophiaImprovementsMinerva = 3,\n SophiaImprovementsFortuna = 4,\n Fate = 5,\n SophiaImprovementsLima = 6,\n Fate2 = 7,\n}\n\n/**\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}\n */\nexport enum AbiVersion {\n NoAbi = 0,\n Sophia = 1,\n Fate = 3,\n}\n\n/**\n * Enum with tag types\n * @category transaction builder\n * @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_chain_objects.erl#L39-L97}\n */\n// TODO: implement serialisation for commented-out tags\nexport enum Tag {\n Account = 10,\n SignedTx = 11,\n SpendTx = 12,\n Oracle = 20,\n // OracleQuery = 21,\n OracleRegisterTx = 22,\n OracleQueryTx = 23,\n OracleResponseTx = 24,\n OracleExtendTx = 25,\n Name = 30,\n // NameCommitment = 31,\n NameClaimTx = 32,\n NamePreclaimTx = 33,\n NameUpdateTx = 34,\n NameRevokeTx = 35,\n NameTransferTx = 36,\n // NameAuction = 37,\n Contract = 40,\n ContractCall = 41,\n ContractCreateTx = 42,\n ContractCallTx = 43,\n ChannelCreateTx = 50,\n // ChannelSetDelegatesTx = 501,\n ChannelDepositTx = 51,\n ChannelWithdrawTx = 52,\n ChannelForceProgressTx = 521,\n ChannelCloseMutualTx = 53,\n ChannelCloseSoloTx = 54,\n ChannelSlashTx = 55,\n ChannelSettleTx = 56,\n ChannelOffChainTx = 57,\n ChannelOffChainUpdateTransfer = 570,\n ChannelOffChainUpdateDeposit = 571,\n ChannelOffChainUpdateWithdraw = 572,\n ChannelOffChainUpdateCreateContract = 573,\n ChannelOffChainUpdateCallContract = 574,\n // ChannelOffChainUpdateMeta = 576,\n ChannelClientReconnectTx = 575,\n Channel = 58,\n ChannelSnapshotSoloTx = 59,\n TreesPoi = 60,\n // TreesDb = 61,\n StateTrees = 62,\n Mtree = 63,\n MtreeValue = 64,\n ContractsMtree = 621,\n CallsMtree = 622,\n ChannelsMtree = 623,\n NameserviceMtree = 624,\n OraclesMtree = 625,\n AccountsMtree = 626,\n // CompilerSophia = 70,\n GaAttachTx = 80,\n GaMetaTx = 81,\n PayingForTx = 82,\n GaMetaTxAuthData = 810,\n // KeyBlock = 100,\n // MicroBlock = 101,\n // LightMicroBlock = 102,\n // Pof = 200,\n}\n"],"mappings":"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AAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;EAAHA,GAAG,CAAHA,GAAG;AAAA,GAAHA,GAAG,KAAHA,GAAG"}
@@ -1,10 +1,19 @@
1
1
  /// <reference types="node" />
2
2
  import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants';
3
+ import Node from '../../../Node';
3
4
  declare const _default: {
4
- serialize(value: AbiVersion | undefined, { tag, consensusProtocolVersion }: {
5
+ _getProtocolDetails(c: ConsensusProtocolVersion, tag: Tag): AbiVersion;
6
+ serialize(value: AbiVersion | undefined, { tag }: {
5
7
  tag: Tag;
6
- consensusProtocolVersion: ConsensusProtocolVersion;
8
+ }, { consensusProtocolVersion }: {
9
+ consensusProtocolVersion?: ConsensusProtocolVersion | undefined;
7
10
  }): Buffer;
11
+ prepare(value: AbiVersion | undefined, { tag }: {
12
+ tag: Tag;
13
+ }, options: {
14
+ consensusProtocolVersion?: ConsensusProtocolVersion;
15
+ onNode?: Node;
16
+ }): Promise<AbiVersion | undefined>;
8
17
  deserialize(buffer: Buffer): AbiVersion;
9
18
  };
10
19
  export default _default;
@@ -5,14 +5,34 @@ const {
5
5
  import { Tag, ConsensusProtocolVersion } from "../constants.mjs";
6
6
  import { getProtocolDetails } from "./ct-version.mjs";
7
7
  export default {
8
- serialize(value, _ref) {
8
+ _getProtocolDetails(c, tag) {
9
+ const kind = Tag.ContractCallTx === tag || Tag.GaMetaTx === tag ? 'contract-call' : 'oracle-call';
10
+ return getProtocolDetails(c, kind).abiVersion;
11
+ },
12
+ serialize(value, _ref, _ref2) {
9
13
  let {
10
- tag,
11
- consensusProtocolVersion = ConsensusProtocolVersion.Iris
14
+ tag
12
15
  } = _ref;
13
- const result = value !== null && value !== void 0 ? value : getProtocolDetails(consensusProtocolVersion, Tag.ContractCallTx === tag || Tag.GaMetaTx === tag ? 'contract-call' : 'oracle-call').abiVersion;
16
+ let {
17
+ consensusProtocolVersion = ConsensusProtocolVersion.Iris
18
+ } = _ref2;
19
+ const result = value !== null && value !== void 0 ? value : this._getProtocolDetails(consensusProtocolVersion, tag);
14
20
  return _Buffer.from([result]);
15
21
  },
22
+ async prepare(value, _ref3,
23
+ // TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}
24
+ options) {
25
+ let {
26
+ tag
27
+ } = _ref3;
28
+ if (value != null) return value;
29
+ if (options.consensusProtocolVersion != null) return undefined;
30
+ if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;
31
+ if (options.onNode != null) {
32
+ return this._getProtocolDetails((await options.onNode.getNodeInfo()).consensusProtocolVersion, tag);
33
+ }
34
+ return undefined;
35
+ },
16
36
  deserialize(buffer) {
17
37
  return buffer[0];
18
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"abi-version.mjs","names":["Tag","ConsensusProtocolVersion","getProtocolDetails","serialize","value","tag","consensusProtocolVersion","Iris","result","ContractCallTx","GaMetaTx","abiVersion","from","deserialize","buffer"],"sources":["../../../../src/tx/builder/field-types/abi-version.ts"],"sourcesContent":["import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants';\nimport { getProtocolDetails } from './ct-version';\n\nexport default {\n serialize(\n value: AbiVersion | undefined,\n { tag, consensusProtocolVersion = ConsensusProtocolVersion.Iris }:\n { tag: Tag; consensusProtocolVersion: ConsensusProtocolVersion },\n ): Buffer {\n const result = value ?? getProtocolDetails(\n consensusProtocolVersion,\n Tag.ContractCallTx === tag || Tag.GaMetaTx === tag ? 'contract-call' : 'oracle-call',\n ).abiVersion;\n\n return Buffer.from([result]);\n },\n\n deserialize(buffer: Buffer): AbiVersion {\n return buffer[0];\n },\n};\n"],"mappings":";;;;SAASA,GAAG,EAAEC,wBAAwB;AAAA,SAC7BC,kBAAkB;AAE3B,eAAe;EACbC,SAAS,CACPC,KAA6B,QAGrB;IAAA,IAFR;MAAEC,GAAG;MAAEC,wBAAwB,GAAGL,wBAAwB,CAACM;IACI,CAAC;IAEhE,MAAMC,MAAM,GAAGJ,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIF,kBAAkB,CACxCI,wBAAwB,EACxBN,GAAG,CAACS,cAAc,KAAKJ,GAAG,IAAIL,GAAG,CAACU,QAAQ,KAAKL,GAAG,GAAG,eAAe,GAAG,aAAa,CACrF,CAACM,UAAU;IAEZ,OAAO,QAAOC,IAAI,CAAC,CAACJ,MAAM,CAAC,CAAC;EAC9B,CAAC;EAEDK,WAAW,CAACC,MAAc,EAAc;IACtC,OAAOA,MAAM,CAAC,CAAC,CAAC;EAClB;AACF,CAAC"}
1
+ {"version":3,"file":"abi-version.mjs","names":["Tag","ConsensusProtocolVersion","getProtocolDetails","_getProtocolDetails","c","tag","kind","ContractCallTx","GaMetaTx","abiVersion","serialize","value","_ref","_ref2","consensusProtocolVersion","Iris","result","_Buffer","from","prepare","_ref3","options","undefined","Object","keys","length","onNode","getNodeInfo","deserialize","buffer"],"sources":["../../../../src/tx/builder/field-types/abi-version.ts"],"sourcesContent":["import { Tag, ConsensusProtocolVersion, AbiVersion } from '../constants';\nimport { getProtocolDetails } from './ct-version';\nimport Node from '../../../Node';\n\nexport default {\n _getProtocolDetails(c: ConsensusProtocolVersion, tag: Tag): AbiVersion {\n const kind = Tag.ContractCallTx === tag || Tag.GaMetaTx === tag\n ? 'contract-call' : 'oracle-call';\n return getProtocolDetails(c, kind).abiVersion;\n },\n\n serialize(\n value: AbiVersion | undefined,\n { tag }: { tag: Tag },\n { consensusProtocolVersion = ConsensusProtocolVersion.Iris }:\n { consensusProtocolVersion?: ConsensusProtocolVersion },\n ): Buffer {\n const result = value ?? this._getProtocolDetails(consensusProtocolVersion, tag);\n\n return Buffer.from([result]);\n },\n\n async prepare(\n value: AbiVersion | undefined,\n { tag }: { tag: Tag },\n // TODO: { consensusProtocolVersion: ConsensusProtocolVersion } | { onNode: Node } | {}\n options: { consensusProtocolVersion?: ConsensusProtocolVersion; onNode?: Node },\n ): Promise<AbiVersion | undefined> {\n if (value != null) return value;\n if (options.consensusProtocolVersion != null) return undefined;\n if (Object.keys(ConsensusProtocolVersion).length === 2) return undefined;\n if (options.onNode != null) {\n return this._getProtocolDetails(\n (await options.onNode.getNodeInfo()).consensusProtocolVersion,\n tag,\n );\n }\n return undefined;\n },\n\n deserialize(buffer: Buffer): AbiVersion {\n return buffer[0];\n },\n};\n"],"mappings":";;;;SAASA,GAAG,EAAEC,wBAAwB;AAAA,SAC7BC,kBAAkB;AAG3B,eAAe;EACbC,mBAAmBA,CAACC,CAA2B,EAAEC,GAAQ,EAAc;IACrE,MAAMC,IAAI,GAAGN,GAAG,CAACO,cAAc,KAAKF,GAAG,IAAIL,GAAG,CAACQ,QAAQ,KAAKH,GAAG,GAC3D,eAAe,GAAG,aAAa;IACnC,OAAOH,kBAAkB,CAACE,CAAC,EAAEE,IAAI,CAAC,CAACG,UAAU;EAC/C,CAAC;EAEDC,SAASA,CACPC,KAA6B,EAAAC,IAAA,EAAAC,KAAA,EAIrB;IAAA,IAHR;MAAER;IAAkB,CAAC,GAAAO,IAAA;IAAA,IACrB;MAAEE,wBAAwB,GAAGb,wBAAwB,CAACc;IACA,CAAC,GAAAF,KAAA;IAEvD,MAAMG,MAAM,GAAGL,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI,CAACR,mBAAmB,CAACW,wBAAwB,EAAET,GAAG,CAAC;IAE/E,OAAOY,OAAA,CAAOC,IAAI,CAAC,CAACF,MAAM,CAAC,CAAC;EAC9B,CAAC;EAED,MAAMG,OAAOA,CACXR,KAA6B,EAAAS,KAAA;EAE7B;EACAC,OAA+E,EAC9C;IAAA,IAHjC;MAAEhB;IAAkB,CAAC,GAAAe,KAAA;IAIrB,IAAIT,KAAK,IAAI,IAAI,EAAE,OAAOA,KAAK;IAC/B,IAAIU,OAAO,CAACP,wBAAwB,IAAI,IAAI,EAAE,OAAOQ,SAAS;IAC9D,IAAIC,MAAM,CAACC,IAAI,CAACvB,wBAAwB,CAAC,CAACwB,MAAM,KAAK,CAAC,EAAE,OAAOH,SAAS;IACxE,IAAID,OAAO,CAACK,MAAM,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI,CAACvB,mBAAmB,CAC7B,CAAC,MAAMkB,OAAO,CAACK,MAAM,CAACC,WAAW,EAAE,EAAEb,wBAAwB,EAC7DT,GAAG,CACJ;IACH;IACA,OAAOiB,SAAS;EAClB,CAAC;EAEDM,WAAWA,CAACC,MAAc,EAAc;IACtC,OAAOA,MAAM,CAAC,CAAC,CAAC;EAClB;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"address.mjs","names":["ArgumentError","PrefixNotFoundError","TagNotFoundError","toBytes","decode","encode","Encoding","isItemOfArray","idTagToEncoding","AccountAddress","Name","Commitment","OracleAddress","ContractAddress","Channel","genAddressField","encodings","serialize","hashId","enc","slice","join","idTag","indexOf","from","deserialize","buf","readUIntBE","subarray"],"sources":["../../../../src/tx/builder/field-types/address.ts"],"sourcesContent":["import { ArgumentError, PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';\nimport { toBytes } from '../../../utils/bytes';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../../../utils/encoder';\nimport { isItemOfArray } from '../../../utils/other';\n\n/**\n * Map of prefix to ID tag constant\n * @see {@link https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}\n */\nexport const idTagToEncoding = [\n Encoding.AccountAddress,\n Encoding.Name,\n Encoding.Commitment,\n Encoding.OracleAddress,\n Encoding.ContractAddress,\n Encoding.Channel,\n] as const;\n\nexport type AddressEncodings = typeof idTagToEncoding[number];\n\nexport default function genAddressField<Encoding extends AddressEncodings>(\n ...encodings: Encoding[]\n): {\n serialize: (value: Encoded.Generic<Encoding>) => Buffer;\n deserialize: (value: Buffer) => Encoded.Generic<Encoding>;\n } {\n return {\n /**\n * Utility function to create and _id type\n * @param hashId - Encoded hash\n * @returns Buffer Buffer with ID tag and decoded HASh\n */\n serialize(hashId) {\n const enc = hashId.slice(0, 2);\n if (!isItemOfArray(enc, idTagToEncoding)) throw new TagNotFoundError(enc);\n if (!isItemOfArray(enc, encodings)) {\n throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n }\n const idTag = idTagToEncoding.indexOf(enc) + 1;\n return Buffer.from([...toBytes(idTag), ...decode(hashId)]);\n },\n\n /**\n * Utility function to read and _id type\n * @param buf - Data\n * @returns Encoded hash string with prefix\n */\n deserialize(buf) {\n const idTag = Buffer.from(buf).readUIntBE(0, 1);\n const enc = idTagToEncoding[idTag - 1];\n if (enc == null) throw new PrefixNotFoundError(idTag);\n if (!isItemOfArray(enc, encodings)) {\n throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n }\n return encode(buf.subarray(1), enc) as Encoded.Generic<Encoding>;\n },\n };\n}\n"],"mappings":";;;;SAASA,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB;AAAA,SACpDC,OAAO;AAAA,SAEdC,MAAM,EAAEC,MAAM,EAAWC,QAAQ;AAAA,SAE1BC,aAAa;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG,CAC7BF,QAAQ,CAACG,cAAc,EACvBH,QAAQ,CAACI,IAAI,EACbJ,QAAQ,CAACK,UAAU,EACnBL,QAAQ,CAACM,aAAa,EACtBN,QAAQ,CAACO,eAAe,EACxBP,QAAQ,CAACQ,OAAO,CACR;AAIV,eAAe,SAASC,eAAe,GAKnC;EAAA,kCAJCC,SAAS;IAATA,SAAS;EAAA;EAKZ,OAAO;IACL;AACJ;AACA;AACA;AACA;IACIC,SAAS,CAACC,MAAM,EAAE;MAChB,MAAMC,GAAG,GAAGD,MAAM,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAC9B,IAAI,CAACb,aAAa,CAACY,GAAG,EAAEX,eAAe,CAAC,EAAE,MAAM,IAAIN,gBAAgB,CAACiB,GAAG,CAAC;MACzE,IAAI,CAACZ,aAAa,CAACY,GAAG,EAAEH,SAAS,CAAC,EAAE;QAClC,MAAM,IAAIhB,aAAa,CAAC,kBAAkB,EAAEgB,SAAS,CAACK,IAAI,CAAC,IAAI,CAAC,EAAEF,GAAG,CAAC;MACxE;MACA,MAAMG,KAAK,GAAGd,eAAe,CAACe,OAAO,CAACJ,GAAG,CAAC,GAAG,CAAC;MAC9C,OAAO,QAAOK,IAAI,CAAC,CAAC,GAAGrB,OAAO,CAACmB,KAAK,CAAC,EAAE,GAAGlB,MAAM,CAACc,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIO,WAAW,CAACC,GAAG,EAAE;MACf,MAAMJ,KAAK,GAAG,QAAOE,IAAI,CAACE,GAAG,CAAC,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;MAC/C,MAAMR,GAAG,GAAGX,eAAe,CAACc,KAAK,GAAG,CAAC,CAAC;MACtC,IAAIH,GAAG,IAAI,IAAI,EAAE,MAAM,IAAIlB,mBAAmB,CAACqB,KAAK,CAAC;MACrD,IAAI,CAACf,aAAa,CAACY,GAAG,EAAEH,SAAS,CAAC,EAAE;QAClC,MAAM,IAAIhB,aAAa,CAAC,kBAAkB,EAAEgB,SAAS,CAACK,IAAI,CAAC,IAAI,CAAC,EAAEF,GAAG,CAAC;MACxE;MACA,OAAOd,MAAM,CAACqB,GAAG,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAET,GAAG,CAAC;IACrC;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"address.mjs","names":["ArgumentError","PrefixNotFoundError","TagNotFoundError","toBytes","decode","encode","Encoding","isItemOfArray","idTagToEncoding","AccountAddress","Name","Commitment","OracleAddress","ContractAddress","Channel","genAddressField","_len","arguments","length","encodings","Array","_key","serialize","hashId","enc","slice","join","idTag","indexOf","_Buffer","from","deserialize","buf","readUIntBE","subarray"],"sources":["../../../../src/tx/builder/field-types/address.ts"],"sourcesContent":["import { ArgumentError, PrefixNotFoundError, TagNotFoundError } from '../../../utils/errors';\nimport { toBytes } from '../../../utils/bytes';\nimport {\n decode, encode, Encoded, Encoding,\n} from '../../../utils/encoder';\nimport { isItemOfArray } from '../../../utils/other';\n\n/**\n * Map of prefix to ID tag constant\n * @see {@link https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_id.erl#L97-L102}\n * @see {@link https://github.com/aeternity/aeserialization/blob/eb68fe331bd476910394966b7f5ede7a74d37e35/src/aeser_api_encoder.erl#L163-L168}\n */\nexport const idTagToEncoding = [\n Encoding.AccountAddress,\n Encoding.Name,\n Encoding.Commitment,\n Encoding.OracleAddress,\n Encoding.ContractAddress,\n Encoding.Channel,\n] as const;\n\nexport type AddressEncodings = typeof idTagToEncoding[number];\n\nexport default function genAddressField<Encoding extends AddressEncodings>(\n ...encodings: Encoding[]\n): {\n serialize: (value: Encoded.Generic<Encoding>) => Buffer;\n deserialize: (value: Buffer) => Encoded.Generic<Encoding>;\n } {\n return {\n /**\n * Utility function to create and _id type\n * @param hashId - Encoded hash\n * @returns Buffer Buffer with ID tag and decoded HASh\n */\n serialize(hashId) {\n const enc = hashId.slice(0, 2);\n if (!isItemOfArray(enc, idTagToEncoding)) throw new TagNotFoundError(enc);\n if (!isItemOfArray(enc, encodings)) {\n throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n }\n const idTag = idTagToEncoding.indexOf(enc) + 1;\n return Buffer.from([...toBytes(idTag), ...decode(hashId)]);\n },\n\n /**\n * Utility function to read and _id type\n * @param buf - Data\n * @returns Encoded hash string with prefix\n */\n deserialize(buf) {\n const idTag = Buffer.from(buf).readUIntBE(0, 1);\n const enc = idTagToEncoding[idTag - 1];\n if (enc == null) throw new PrefixNotFoundError(idTag);\n if (!isItemOfArray(enc, encodings)) {\n throw new ArgumentError('Address encoding', encodings.join(', '), enc);\n }\n return encode(buf.subarray(1), enc) as Encoded.Generic<Encoding>;\n },\n };\n}\n"],"mappings":";;;;SAASA,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB;AAAA,SACpDC,OAAO;AAAA,SAEdC,MAAM,EAAEC,MAAM,EAAWC,QAAQ;AAAA,SAE1BC,aAAa;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG,CAC7BF,QAAQ,CAACG,cAAc,EACvBH,QAAQ,CAACI,IAAI,EACbJ,QAAQ,CAACK,UAAU,EACnBL,QAAQ,CAACM,aAAa,EACtBN,QAAQ,CAACO,eAAe,EACxBP,QAAQ,CAACQ,OAAO,CACR;AAIV,eAAe,SAASC,eAAeA,CAAA,EAKnC;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAJCC,SAAS,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAATF,SAAS,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;EAAA;EAKZ,OAAO;IACL;AACJ;AACA;AACA;AACA;IACIC,SAASA,CAACC,MAAM,EAAE;MAChB,MAAMC,GAAG,GAAGD,MAAM,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;MAC9B,IAAI,CAAClB,aAAa,CAACiB,GAAG,EAAEhB,eAAe,CAAC,EAAE,MAAM,IAAIN,gBAAgB,CAACsB,GAAG,CAAC;MACzE,IAAI,CAACjB,aAAa,CAACiB,GAAG,EAAEL,SAAS,CAAC,EAAE;QAClC,MAAM,IAAInB,aAAa,CAAC,kBAAkB,EAAEmB,SAAS,CAACO,IAAI,CAAC,IAAI,CAAC,EAAEF,GAAG,CAAC;MACxE;MACA,MAAMG,KAAK,GAAGnB,eAAe,CAACoB,OAAO,CAACJ,GAAG,CAAC,GAAG,CAAC;MAC9C,OAAOK,OAAA,CAAOC,IAAI,CAAC,CAAC,GAAG3B,OAAO,CAACwB,KAAK,CAAC,EAAE,GAAGvB,MAAM,CAACmB,MAAM,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIQ,WAAWA,CAACC,GAAG,EAAE;MACf,MAAML,KAAK,GAAGE,OAAA,CAAOC,IAAI,CAACE,GAAG,CAAC,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;MAC/C,MAAMT,GAAG,GAAGhB,eAAe,CAACmB,KAAK,GAAG,CAAC,CAAC;MACtC,IAAIH,GAAG,IAAI,IAAI,EAAE,MAAM,IAAIvB,mBAAmB,CAAC0B,KAAK,CAAC;MACrD,IAAI,CAACpB,aAAa,CAACiB,GAAG,EAAEL,SAAS,CAAC,EAAE;QAClC,MAAM,IAAInB,aAAa,CAAC,kBAAkB,EAAEmB,SAAS,CAACO,IAAI,CAAC,IAAI,CAAC,EAAEF,GAAG,CAAC;MACxE;MACA,OAAOnB,MAAM,CAAC2B,GAAG,CAACE,QAAQ,CAAC,CAAC,CAAC,EAAEV,GAAG,CAAC;IACrC;EACF,CAAC;AACH"}
@@ -2,6 +2,6 @@ export default function genArrayField<Input, Output, Binary>(itemHandler: {
2
2
  serialize: (value: Input, params: unknown) => Binary;
3
3
  deserialize: (value: Binary, params: unknown) => Output;
4
4
  }): {
5
- serialize: (value: Input[], params: unknown) => Binary[];
5
+ serialize: (value: readonly Input[], params: unknown) => Binary[];
6
6
  deserialize: (value: Binary[], params: unknown) => Output[];
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"array.mjs","names":["genArrayField","itemHandler","serialize","items","params","map","item","deserialize","buffers","buffer"],"sources":["../../../../src/tx/builder/field-types/array.ts"],"sourcesContent":["export default function genArrayField<Input, Output, Binary>(\n itemHandler: {\n serialize: (value: Input, params: unknown) => Binary;\n deserialize: (value: Binary, params: unknown) => Output;\n },\n): {\n serialize: (value: Input[], params: unknown) => Binary[];\n deserialize: (value: Binary[], params: unknown) => Output[];\n } {\n return {\n serialize(items, params) {\n return items.map((item) => itemHandler.serialize(item, params));\n },\n\n deserialize(buffers, params) {\n return buffers.map((buffer) => itemHandler.deserialize(buffer, params));\n },\n };\n}\n"],"mappings":"AAAA,eAAe,SAASA,aAAa,CACnCC,WAGC,EAIC;EACF,OAAO;IACLC,SAAS,CAACC,KAAK,EAAEC,MAAM,EAAE;MACvB,OAAOD,KAAK,CAACE,GAAG,CAAEC,IAAI,IAAKL,WAAW,CAACC,SAAS,CAACI,IAAI,EAAEF,MAAM,CAAC,CAAC;IACjE,CAAC;IAEDG,WAAW,CAACC,OAAO,EAAEJ,MAAM,EAAE;MAC3B,OAAOI,OAAO,CAACH,GAAG,CAAEI,MAAM,IAAKR,WAAW,CAACM,WAAW,CAACE,MAAM,EAAEL,MAAM,CAAC,CAAC;IACzE;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"array.mjs","names":["genArrayField","itemHandler","serialize","items","params","map","item","deserialize","buffers","buffer"],"sources":["../../../../src/tx/builder/field-types/array.ts"],"sourcesContent":["export default function genArrayField<Input, Output, Binary>(\n itemHandler: {\n serialize: (value: Input, params: unknown) => Binary;\n deserialize: (value: Binary, params: unknown) => Output;\n },\n): {\n serialize: (value: readonly Input[], params: unknown) => Binary[];\n deserialize: (value: Binary[], params: unknown) => Output[];\n } {\n return {\n serialize(items, params) {\n return items.map((item) => itemHandler.serialize(item, params));\n },\n\n deserialize(buffers, params) {\n return buffers.map((buffer) => itemHandler.deserialize(buffer, params));\n },\n };\n}\n"],"mappings":"AAAA,eAAe,SAASA,aAAaA,CACnCC,WAGC,EAIC;EACF,OAAO;IACLC,SAASA,CAACC,KAAK,EAAEC,MAAM,EAAE;MACvB,OAAOD,KAAK,CAACE,GAAG,CAAEC,IAAI,IAAKL,WAAW,CAACC,SAAS,CAACI,IAAI,EAAEF,MAAM,CAAC,CAAC;IACjE,CAAC;IAEDG,WAAWA,CAACC,OAAO,EAAEJ,MAAM,EAAE;MAC3B,OAAOI,OAAO,CAACH,GAAG,CAAEI,MAAM,IAAKR,WAAW,CAACM,WAAW,CAACE,MAAM,EAAEL,MAAM,CAAC,CAAC;IACzE;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"boolean.mjs","names":["serialize","value","from","deserialize","buffer"],"sources":["../../../../src/tx/builder/field-types/boolean.ts"],"sourcesContent":["export default {\n serialize(value: boolean): Buffer {\n return Buffer.from([value ? 1 : 0]);\n },\n\n deserialize(buffer: Buffer): boolean {\n return buffer[0] === 1;\n },\n};\n"],"mappings":";;;;AAAA,eAAe;EACbA,SAAS,CAACC,KAAc,EAAU;IAChC,OAAO,QAAOC,IAAI,CAAC,CAACD,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACrC,CAAC;EAEDE,WAAW,CAACC,MAAc,EAAW;IACnC,OAAOA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;EACxB;AACF,CAAC"}
1
+ {"version":3,"file":"boolean.mjs","names":["serialize","value","_Buffer","from","deserialize","buffer"],"sources":["../../../../src/tx/builder/field-types/boolean.ts"],"sourcesContent":["export default {\n serialize(value: boolean): Buffer {\n return Buffer.from([value ? 1 : 0]);\n },\n\n deserialize(buffer: Buffer): boolean {\n return buffer[0] === 1;\n },\n};\n"],"mappings":";;;;AAAA,eAAe;EACbA,SAASA,CAACC,KAAc,EAAU;IAChC,OAAOC,OAAA,CAAOC,IAAI,CAAC,CAACF,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACrC,CAAC;EAEDG,WAAWA,CAACC,MAAc,EAAW;IACnC,OAAOA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;EACxB;AACF,CAAC"}